From ea7752f554d74a15aade6f65a91749e411e99fb3 Mon Sep 17 00:00:00 2001 From: H1d3rOne Date: Mon, 9 Mar 2026 21:56:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A8=E5=B1=80=E6=9C=AA?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=8B=A6=E6=88=AA=EF=BC=8C=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E4=BB=BB=E4=BD=95=E5=9C=B0=E6=96=B9=E5=BC=B9=E5=87=BA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 功能改进: 1. 全局事件监听 - App.vue添加setupGlobalListeners方法 - 监听showAuthModal和hideAuthModal事件 - 在onHide时移除监听器 2. 统一的登录拦截机制 - authCheck.js使用uni.$emit触发全局事件 - 点击"去登录"按钮触发showAuthModal事件 - App.vue接收事件后显示授权窗口 3. 用户体验优化 - 未登录时点击任何功能都会弹出提示 - 提示框包含"去登录"按钮 - 点击"去登录"后从底部滑出授权窗口 - 授权窗口占据屏幕70% 工作流程: 1. 用户点击功能模块 2. 检查登录状态 3. 未登录弹出提示框 4. 点击"去登录" 5. 触发showAuthModal事件 6. App.vue显示授权窗口 7. 用户完成授权 8. 继续使用功能 --- xuan-deduct-uniapp/src/App.vue | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/xuan-deduct-uniapp/src/App.vue b/xuan-deduct-uniapp/src/App.vue index bcdd040..24ef7f8 100644 --- a/xuan-deduct-uniapp/src/App.vue +++ b/xuan-deduct-uniapp/src/App.vue @@ -13,14 +13,33 @@ export default { onLaunch: function() { console.log('App Launch') this.checkUserAuth() + this.setupGlobalListeners() }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') + this.removeGlobalListeners() }, methods: { + setupGlobalListeners() { + uni.$on('showAuthModal', () => { + console.log('收到showAuthModal事件,显示授权窗口') + this.showAuthModal = true + }) + + uni.$on('hideAuthModal', () => { + console.log('收到hideAuthModal事件,隐藏授权窗口') + this.showAuthModal = false + }) + }, + + removeGlobalListeners() { + uni.$off('showAuthModal') + uni.$off('hideAuthModal') + }, + checkUserAuth() { const userInfo = uni.getStorageSync('userInfo') const hasShownAuth = uni.getStorageSync('hasShownAuth')