feat: 🐛 新增备用登录方案、并优化店铺名称过长导致显示错乱的样式问题、优化自动发券功能
parent
6a8e666fb8
commit
af4cfe7fba
|
@ -22,5 +22,6 @@ export default {
|
||||||
mainColor: "#ff3c2a", // 主题色
|
mainColor: "#ff3c2a", // 主题色
|
||||||
lightColor: "#ff6b35", // 高亮主题色
|
lightColor: "#ff6b35", // 高亮主题色
|
||||||
aiderLightColor: "#ff9f28", // 辅助高亮颜色
|
aiderLightColor: "#ff9f28", // 辅助高亮颜色
|
||||||
defaultUserPhoto:"/static/missing-face.png" // 默认用户头像
|
defaultUserPhoto: "/static/missing-face.png", // 默认用户头像
|
||||||
|
enableFetchMobileLogin: true // 是否启用获取手机号登录 如果微信小程序提示封禁手机号获取权限 可将此选项设置成false作为备用登录方案
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
>
|
>
|
||||||
<!-- 店铺名称 -->
|
<!-- 店铺名称 -->
|
||||||
<view class="seller-info u-flex u-row-between">
|
<view class="seller-info u-flex u-row-between">
|
||||||
<view class="seller-name" @click="navigateToStore(order)">
|
<view class="seller-name wes" @click="navigateToStore(order)">
|
||||||
<view class="name">{{ order.storeName }}</view>
|
<view class="name wes">{{ order.storeName }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-sn">{{
|
<view class="order-sn">{{
|
||||||
order.orderStatus | orderStatusList
|
order.orderStatus | orderStatusList
|
||||||
|
@ -689,6 +689,7 @@ page,
|
||||||
padding: 0 20rpx;
|
padding: 0 20rpx;
|
||||||
|
|
||||||
.seller-name {
|
.seller-name {
|
||||||
|
flex:10;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -701,6 +702,9 @@ page,
|
||||||
}
|
}
|
||||||
|
|
||||||
.order-sn {
|
.order-sn {
|
||||||
|
flex:2;
|
||||||
|
width:120rpx;
|
||||||
|
text-align: center;
|
||||||
color: $aider-light-color;
|
color: $aider-light-color;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,6 +156,12 @@
|
||||||
order.createTime
|
order.createTime
|
||||||
}}</view>
|
}}</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="order-info-view">
|
||||||
|
<view class="title">订单备注:</view>
|
||||||
|
<view class="value">{{
|
||||||
|
order.remark
|
||||||
|
}}</view>
|
||||||
|
</view>
|
||||||
<view class="order-info-view">
|
<view class="order-info-view">
|
||||||
<view class="title">支付状态:</view>
|
<view class="title">支付状态:</view>
|
||||||
<view class="value">
|
<view class="value">
|
||||||
|
@ -753,4 +759,12 @@ page,
|
||||||
.address-line-height{
|
.address-line-height{
|
||||||
line-height: 1.75;
|
line-height: 1.75;
|
||||||
}
|
}
|
||||||
|
.seller-name{
|
||||||
|
>.name{
|
||||||
|
flex:10 !important;
|
||||||
|
}
|
||||||
|
>.status{
|
||||||
|
flex:2;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<u-navbar :custom-back="back" title="小程序登录"></u-navbar>
|
<u-navbar :custom-back="back" title="小程序登录"></u-navbar>
|
||||||
<u-modal v-model="phoneAuthPopup" :mask-close-able="true" :title="projectName+'商城'" :show-confirm-button="false">
|
<u-modal v-model="phoneAuthPopup" :mask-close-able="true" :title="projectName+'商城'"
|
||||||
|
:show-confirm-button="false">
|
||||||
<div class="tips">
|
<div class="tips">
|
||||||
为了更好地用户体验,需要您授权手机号
|
为了更好地用户体验,需要您授权手机号
|
||||||
</div>
|
</div>
|
||||||
|
@ -19,7 +20,8 @@
|
||||||
<view>您的公开信息(昵称、头像)</view>
|
<view>您的公开信息(昵称、头像)</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btns">
|
<view class="btns">
|
||||||
<button type="primary" bindtap="getUserProfile" @click="getUserProfile()" class="btn-auth">使用微信授权</button>
|
<button type="primary" bindtap="getUserProfile" @click="getUserProfile()"
|
||||||
|
class="btn-auth">使用微信授权</button>
|
||||||
<div @click="backToHome" class="btn-callback">暂不登录</div>
|
<div @click="backToHome" class="btn-callback">暂不登录</div>
|
||||||
</view>
|
</view>
|
||||||
</div>
|
</div>
|
||||||
|
@ -28,15 +30,22 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { mpAutoLogin } from "@/api/connect.js";
|
import {
|
||||||
|
mpAutoLogin
|
||||||
|
} from "@/api/connect.js";
|
||||||
|
|
||||||
import { whetherNavigate } from "@/utils/Foundation"; //登录跳转
|
import {
|
||||||
import { getUserInfo } from "@/api/members";
|
whetherNavigate
|
||||||
|
} from "@/utils/Foundation"; //登录跳转
|
||||||
|
import {
|
||||||
|
getUserInfo
|
||||||
|
} from "@/api/members";
|
||||||
import storage from "@/utils/storage.js";
|
import storage from "@/utils/storage.js";
|
||||||
import config from '@/config/config'
|
import config from '@/config/config'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
configs:config,
|
||||||
// 是否展示手机号码授权弹窗,默认第一步不展示,要先获取用户基础信息
|
// 是否展示手机号码授权弹窗,默认第一步不展示,要先获取用户基础信息
|
||||||
phoneAuthPopup: false,
|
phoneAuthPopup: false,
|
||||||
// 授权信息展示,商城名称
|
// 授权信息展示,商城名称
|
||||||
|
@ -53,15 +62,12 @@ export default {
|
||||||
//微信小程序进入页面,先获取code,否则几率出现code和后续交互数据不对应情况
|
//微信小程序进入页面,先获取code,否则几率出现code和后续交互数据不对应情况
|
||||||
mounted() {
|
mounted() {
|
||||||
// 小程序默认分享
|
// 小程序默认分享
|
||||||
uni.showShareMenu({ withShareTicket: true });
|
uni.showShareMenu({
|
||||||
|
withShareTicket: true
|
||||||
|
});
|
||||||
|
|
||||||
let that = this;
|
let that = this;
|
||||||
//获取code
|
|
||||||
uni.login({
|
|
||||||
success: (res) => {
|
|
||||||
that.code = res.code;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/**
|
/**
|
||||||
|
@ -81,27 +87,71 @@ export default {
|
||||||
url: `/pages/tabbar/home/index`,
|
url: `/pages/tabbar/home/index`,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//获取用户信息
|
//获取用户信息
|
||||||
getUserProfile(e) {
|
async getUserProfile(e) {
|
||||||
let that = this;
|
let that = this;
|
||||||
|
//获取code
|
||||||
|
await uni.login({
|
||||||
|
success: (res) => {
|
||||||
|
that.code = res.code;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
|
// 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
|
||||||
uni.getUserProfile({
|
await uni.getUserProfile({
|
||||||
desc: "用于完善会员资料", // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
|
desc: "用于完善会员资料", // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
that.nickName = res.userInfo.nickName;
|
that.nickName = res.userInfo.nickName;
|
||||||
that.image = res.userInfo.avatarUrl;
|
that.image = res.userInfo.avatarUrl;
|
||||||
//展示手机号获取授权
|
|
||||||
|
/**
|
||||||
|
* 根据公有的配置设置登录方式
|
||||||
|
*/
|
||||||
|
if(this.configs.enableFetchMobileLogin){
|
||||||
this.phoneAuthPopup = true;
|
this.phoneAuthPopup = true;
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
let iv = res.iv;
|
||||||
|
let encryptedData = res.encryptedData;
|
||||||
|
|
||||||
|
let code = this.code;
|
||||||
|
let image = this.image;
|
||||||
|
let nickName = this.nickName;
|
||||||
|
mpAutoLogin({
|
||||||
|
encryptedData,
|
||||||
|
iv,
|
||||||
|
code,
|
||||||
|
image,
|
||||||
|
nickName,
|
||||||
|
}).then((apiRes) => {
|
||||||
|
storage.setAccessToken(apiRes.data.result.accessToken);
|
||||||
|
storage.setRefreshToken(apiRes.data.result.refreshToken);
|
||||||
|
// 登录成功
|
||||||
|
uni.showToast({
|
||||||
|
title: "登录成功!",
|
||||||
|
icon: "none",
|
||||||
|
});
|
||||||
|
//获取用户信息
|
||||||
|
getUserInfo().then((user) => {
|
||||||
|
storage.setUserInfo(user.data.result);
|
||||||
|
storage.setHasLogin(true);
|
||||||
|
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
},
|
},
|
||||||
fail: (res) => {
|
fail: (res) => {
|
||||||
that.nickName = "微信用户";
|
|
||||||
that.image =
|
|
||||||
"https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132";
|
|
||||||
//展示手机号获取授权
|
|
||||||
this.phoneAuthPopup = true;
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
//获取手机号授权
|
//获取手机号授权
|
||||||
getPhoneNumber(e) {
|
getPhoneNumber(e) {
|
||||||
let iv = e.detail.iv;
|
let iv = e.detail.iv;
|
||||||
|
@ -142,6 +192,10 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -241,6 +295,7 @@ text.shop {
|
||||||
// -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
|
// -webkit-animation-direction: alternate; /*轮流反向播放动画。*/
|
||||||
// -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
|
// -webkit-animation-timing-function: ease-in-out; /*动画的速度曲线*/
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-callback {
|
.btn-callback {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
|
@ -262,14 +317,19 @@ text.shop {
|
||||||
|
|
||||||
@keyframes mymove {
|
@keyframes mymove {
|
||||||
0% {
|
0% {
|
||||||
transform: scale(1); /*开始为原始大小*/
|
transform: scale(1);
|
||||||
|
/*开始为原始大小*/
|
||||||
}
|
}
|
||||||
|
|
||||||
25% {
|
25% {
|
||||||
transform: scale(1.1); /*放大1.1倍*/
|
transform: scale(1.1);
|
||||||
|
/*放大1.1倍*/
|
||||||
}
|
}
|
||||||
|
|
||||||
50% {
|
50% {
|
||||||
transform: scale(1);
|
transform: scale(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
75% {
|
75% {
|
||||||
transform: scale(1.1);
|
transform: scale(1.1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
@change="checkboxChangeDP(item)"></u-checkbox>
|
@change="checkboxChangeDP(item)"></u-checkbox>
|
||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
</u-checkbox-group>
|
</u-checkbox-group>
|
||||||
<span class="store-name store-line-desc" @click.stop="navigateToStore(item)">{{
|
<span class="store-name wes store-line-desc" @click.stop="navigateToStore(item)">{{
|
||||||
item.storeName
|
item.storeName
|
||||||
}}</span>
|
}}</span>
|
||||||
<u-icon @click="navigateToStore(item)" size="24" style="margin-left:10rpx;" name="arrow-right"></u-icon>
|
<u-icon @click="navigateToStore(item)" size="24" style="margin-left:10rpx;" name="arrow-right"></u-icon>
|
||||||
|
@ -740,6 +740,7 @@ page {
|
||||||
display: flex;
|
display: flex;
|
||||||
// #endif
|
// #endif
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
flex:10;
|
||||||
}
|
}
|
||||||
|
|
||||||
.goods-config {
|
.goods-config {
|
||||||
|
@ -758,6 +759,9 @@ page {
|
||||||
}
|
}
|
||||||
|
|
||||||
.right-col {
|
.right-col {
|
||||||
|
flex:2;
|
||||||
|
text-align: center;
|
||||||
|
width: 100rpx;
|
||||||
color: $light-color;
|
color: $light-color;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
|
|
||||||
|
|
|
@ -100,13 +100,11 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
firstGetAuto() {
|
firstGetAuto() {
|
||||||
|
if(!this.$options.filters.isLogin('auth')) return false
|
||||||
let data = new Date();
|
let data = new Date();
|
||||||
let now = data.getDate();
|
let now = data.getDate();
|
||||||
let hours = data.getHours();
|
let hours = data.getHours();
|
||||||
let flagCoup = storage.getAutoCp();
|
let flagCoup = storage.getAutoCp();
|
||||||
console.log(flagCoup);
|
|
||||||
console.log(now);
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
storage.getAutoCp() &&
|
storage.getAutoCp() &&
|
||||||
storage.getAutoCp() != "" &&
|
storage.getAutoCp() != "" &&
|
||||||
|
|
Loading…
Reference in New Issue