From e203223922e6fe636485afcb774a68fc4056b4a5 Mon Sep 17 00:00:00 2001 From: XingQue Date: Mon, 27 Jul 2026 04:58:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=99=BB=E5=BD=95=E9=A1=B5=E5=8F=AA?= =?UTF-8?q?=E4=BF=9D=E7=95=99=E4=B8=80=E9=94=AE=E7=99=BB=E5=BD=95=EF=BC=9B?= =?UTF-8?q?=E5=95=86=E5=AE=B6=E6=8C=89=E9=92=AE=E4=B8=A5=E6=A0=BC=E6=8C=89?= =?UTF-8?q?=E7=9C=9F=E5=AE=9E=E8=BA=AB=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- pages/fighter/fighter.js | 25 +++++++++++++++++-------- pages/fighter/fighter.wxml | 21 +++++++++++++-------- utils/fighter-only.js | 5 ++++- utils/role-tab-bar.js | 3 ++- 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/pages/fighter/fighter.js b/pages/fighter/fighter.js index d162fa6..268eed6 100644 --- a/pages/fighter/fighter.js +++ b/pages/fighter/fighter.js @@ -376,11 +376,11 @@ Page(createPage({ push('goToKefu', '在线客服', img.iconKefu); push('goToComplaintCreate', '投诉反馈', img.iconComplaint || img.iconContact); push('goToComplaintList', '投诉记录', img.iconComplaint || img.iconRecord); - // 仅 shangjiastatus===1 的商家老板显示;客服入口另算 + // 仅真实商家老板显示;客服工作台仅真实客服显示(互斥) + // 注意:后端曾错误把 shangjiastatus 恒置 1,前端这里再严格校验一次 if (isShangjiaCertified()) { push('onTapShangjiaAuth', '进入商家端', img.iconShangjia); - } - if (isStaffMode()) { + } else if (isStaffMode()) { push('onTapStaffAuth', '商家客服工作台', img.iconKefu || img.iconShangjia); } if (d.showPindaoEntry) { @@ -958,15 +958,16 @@ Page(createPage({ return; }, - /** 一键登录:不依赖输入框,固定用硬编码邀请码传后端 */ + /** 一键登录:有填邀请码用填写的,否则用硬编码;清缓存后无输入框也用硬编码 */ handleWechatLogin() { clearSkipAutoAuth(); - const code = PLATFORM_INVITE_CODE; + const typed = (this.data.inviteCode || '').trim(); + const code = typed || PLATFORM_INVITE_CODE; if (!code) { wx.showToast({ title: '注册配置异常', icon: 'none' }); return; } - this.setData({ inviteCode: code, isAutoRegistering: true, showInviteForm: this.data.showInviteForm }); + this.setData({ inviteCode: code, isAutoRegistering: true }); this.handleInviteCodeWithLoginCheck(code); }, @@ -1029,10 +1030,18 @@ Page(createPage({ const identityFields = ['nicheng', 'uid', 'touxiang', 'dashoustatus', 'guanshistatus', 'shangjiastatus', 'zuzhangstatus']; identityFields.forEach(field => { if (userData[field] !== undefined) { - wx.setStorageSync(field, userData[field]); - app.globalData[field] = userData[field]; + let val = userData[field]; + // 身份状态强制归一成 0/1,避免脏数据误展示商家入口 + if (field.endsWith('status')) { + val = Number(val) === 1 ? 1 : 0; + } + wx.setStorageSync(field, val); + app.globalData[field] = val; } }); + // 登录后立刻按真实值刷新「更多功能」列表 + that.checkRoleStatuses(); + that._buildMoreFuncList && that._buildMoreFuncList(); const groupFields = ['dashouqun', 'dashouqunid', 'guanshiqun', 'guanshiqunid']; groupFields.forEach(field => { if (userData[field] !== undefined) { diff --git a/pages/fighter/fighter.wxml b/pages/fighter/fighter.wxml index 13be070..0f0481f 100644 --- a/pages/fighter/fighter.wxml +++ b/pages/fighter/fighter.wxml @@ -1,6 +1,6 @@ - + @@ -9,16 +9,21 @@ - {{isAutoRegistering ? '正在登录注册...' : '接单员登录'}} + {{isAutoRegistering ? '正在登录...' : '接单员登录'}} 请稍候 - 可填写邀请码,也可直接用默认邀请码登录 + 可填写邀请码,不填则用默认邀请码 请点击一键登录 - - - - 立即注册 - + 一键登录 diff --git a/utils/fighter-only.js b/utils/fighter-only.js index d2afd21..1c97e71 100644 --- a/utils/fighter-only.js +++ b/utils/fighter-only.js @@ -65,5 +65,8 @@ export function getLoginPageUrl() { /** 严格判断是否已开通商家老板身份 */ export function isShangjiaCertified() { - return Number(wx.getStorageSync('shangjiastatus')) === 1 + // 只认数字 1;排除 true/"true"/脏数据 + const raw = wx.getStorageSync('shangjiastatus') + if (raw === true || raw === 'true') return false + return Number(raw) === 1 } diff --git a/utils/role-tab-bar.js b/utils/role-tab-bar.js index 9eddf45..14f771c 100644 --- a/utils/role-tab-bar.js +++ b/utils/role-tab-bar.js @@ -124,7 +124,8 @@ export function syncRoleStatuses(data) { roleFields.forEach((field) => { if (Object.prototype.hasOwnProperty.call(data, field)) { const val = Number(data[field]); - const normalized = Number.isNaN(val) ? 0 : val; + // 只认严格的 1,其余一律 0(避免 true/"1 "/脏数据) + const normalized = val === 1 ? 1 : 0; wx.setStorageSync(field, normalized); app.globalData[field] = normalized; }