From 3003552ffd3f7bd0bb6dd1a747ce1e63118c6db5 Mon Sep 17 00:00:00 2001 From: huliyong <2783385703@qq.com> Date: Mon, 31 Mar 2025 21:19:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(auth):=20=E4=BC=98=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=80=BB=E8=BE=91=E5=92=8C=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除不再使用的登录页面路径 - 修复用户信息验证中的手机号提示错误 - 重构登录逻辑,支持分享路径和参数传递 - 调整全局分享路径为登录页面 - 优化用户角色显示逻辑 --- api/model/login.js | 1 - mixins/configList.js | 16 +++++++++++++++- pages.json | 3 --- pages/index/center.vue | 22 +++++++--------------- pages_order/auth/wxLogin.vue | 13 +++++++++++-- pages_order/auth/wxUserInfo.vue | 2 +- store/store.js | 20 +++++++++++++++++--- utils/utils.js | 26 +++++++++++++++++++++++++- 8 files changed, 76 insertions(+), 27 deletions(-) diff --git a/api/model/login.js b/api/model/login.js index c818a04..4503642 100644 --- a/api/model/login.js +++ b/api/model/login.js @@ -8,7 +8,6 @@ const api = { url: '/login_common/appletLogin', method: 'GET', limit : 500, - showLoading : true, }, // 获取绑定手机号码 bindPhone: { diff --git a/mixins/configList.js b/mixins/configList.js index a79666f..6b5fcc1 100644 --- a/mixins/configList.js +++ b/mixins/configList.js @@ -7,13 +7,27 @@ export default { // 默认的全局分享内容 Gshare: { // title: '三只青蛙', - path: '/pages/index/index', // 全局分享的路径,比如 首页 + path: '/pages_order/auth/wxLogin', // 全局分享的路径,比如 首页 // imageUrl: '/static/image/login/logo.png', // 全局分享的图片(可本地可网络) } } }, computed: { ...mapState(['configList', 'userInfo', 'riceInfo']), + currentPagePath() { + const pages = getCurrentPages(); + const currentPage = pages[pages.length - 1]; + let path = `/${currentPage.route}`; + + // 获取当前页面的参数 + const options = currentPage.options; + if (options && Object.keys(options).length > 0) { + const params = this.$utils.objectToUrlParams(options); + path += `?${params}`; + } + + return path; + }, }, // 定义全局分享 // 1.发送给朋友 diff --git a/pages.json b/pages.json index 7250bd8..c285778 100644 --- a/pages.json +++ b/pages.json @@ -75,9 +75,6 @@ { "path": "auth/wxUserInfo" }, - { - "path": "auth/loginAndRegisterAndForgetPassword" - }, { "path": "mine/help" }, diff --git a/pages/index/center.vue b/pages/index/center.vue index 7b0d2e3..65eadae 100644 --- a/pages/index/center.vue +++ b/pages/index/center.vue @@ -17,20 +17,13 @@ {{ userInfo.nickName}} - - - @@ -55,8 +48,9 @@ - + @@ -74,8 +68,7 @@ - + :class="{'brokerage-data-mt' : !userInfo.role}"> @@ -205,11 +198,10 @@ data() { return { vipType: ['普通会员', '黄金会员', '渠道商'], - vipImage: ['', 'vip_vip', 'vip_user', 'vip_shop'], + vipImage: ['vip_vip', 'vip_user', 'vip_shop'], vipList: [], showAdvertising: true, - userRole: ['用户', '会员', '渠道'], - // userRole: ['会员', '用户', '渠道'], + userRole: ['会员', '用户', '渠道'], indicatorDots: true, duration: 500 } @@ -354,7 +346,7 @@ .earnings { padding: 0rpx 20rpx; box-sizing: border-box; - margin-top: -80rpx; + margin-top: -18%; .member-item { position: relative; diff --git a/pages_order/auth/wxLogin.vue b/pages_order/auth/wxLogin.vue index b6e80c7..0cc5df2 100644 --- a/pages_order/auth/wxLogin.vue +++ b/pages_order/auth/wxLogin.vue @@ -55,7 +55,16 @@ name : 'Login', data() { return { - checkboxValue : [] + checkboxValue : [], + config : {}, + } + }, + onLoad(query) { + if (query.shareId) { + uni.setStorageSync('shareId', query.shareId) + } + if(query.path){ + this.config = query } }, methods: { @@ -70,7 +79,7 @@ icon:'none' }) } - this.$store.commit('login', phoneCode) + this.$store.commit('login', this.config) }, //打开应用配置 diff --git a/pages_order/auth/wxUserInfo.vue b/pages_order/auth/wxUserInfo.vue index fa13612..0db37e1 100644 --- a/pages_order/auth/wxUserInfo.vue +++ b/pages_order/auth/wxUserInfo.vue @@ -120,7 +120,7 @@ if (self.$utils.verificationAll(self.userInfoForm, { headImage: '请选择头像', nickName: '请填写昵称', - phone: '请填写昵称', + phone: '请填写手机号', })) { return } diff --git a/store/store.js b/store/store.js index 9222839..0151305 100644 --- a/store/store.js +++ b/store/store.js @@ -1,5 +1,6 @@ import Vue from 'vue' import Vuex from 'vuex' +import utils from '../utils/utils.js' Vue.use(Vuex); //vue的插件机制 @@ -42,12 +43,12 @@ const store = new Vuex.Store({ // }) // }) }, - login(state, config) { + login(state, config = {}) { uni.showLoading({ title: '登录中...' }) uni.login({ - success(res) { + success : res => { if (res.errMsg != "login:ok") { return } @@ -70,6 +71,19 @@ const store = new Vuex.Store({ state.userInfo = res.result.userInfo uni.setStorageSync('token', res.result.token) + + if(config.path){ + let path = config.path + + delete config.path + delete config.shareId + + let para = utils.objectToUrlParams(config) + uni.reLaunch({ + url: `${path}?${para}`, + }) + return + } if (!state.userInfo.nickName || !state.userInfo.headImage || @@ -79,7 +93,7 @@ const store = new Vuex.Store({ url: '/pages_order/auth/wxUserInfo' }) } else { - uni.navigateBack(-1) + utils.navigateBack(-1) } }) } diff --git a/utils/utils.js b/utils/utils.js index 2dd6729..b418508 100644 --- a/utils/utils.js +++ b/utils/utils.js @@ -198,6 +198,12 @@ export function navigateTo(...args){ * @param {number} num - 返回的页面数,默认为-1 */ export function navigateBack(num = -1){ + if(getCurrentPages().length == 1){ + uni.reLaunch({ + url: '/pages/index/index' + }) + return + } uni.navigateBack(num) } @@ -226,6 +232,23 @@ export const toLogin = function(){ } }() +// 将对象转换为URL参数 +function objectToUrlParams(obj) { + if (!obj || typeof obj !== 'object') { + return ''; + } + + return Object.keys(obj) + .filter(key => obj[key] !== undefined && obj[key] !== null) + .map(key => { + const value = typeof obj[key] === 'object' + ? JSON.stringify(obj[key]) + : obj[key]; + return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`; + }) + .join('&'); +} + export default { toArray, generateUUID, @@ -240,5 +263,6 @@ export default { redirectTo, copyText, stringFormatHtml, - toLogin + toLogin, + objectToUrlParams, } \ No newline at end of file