zbb 1 週間 前
コミット
743d2ca32c
3 ファイル変更57 行追加3 行削除
  1. 47 0
      pages/mine/index.vue
  2. 6 3
      pages/splash/splash.vue
  3. 4 0
      store/modules/user.js

+ 47 - 0
pages/mine/index.vue

@@ -121,6 +121,14 @@
 					<text class="menu-text">关于我们</text>
 					<uni-icons type="right" size="16" color="#cccccc"></uni-icons>
 				</view>
+				<view class="menu-divider"></view>
+				<view class="menu-item" @click="logout" style="color: #ff4d4f;">
+					<view class="menu-icon-wrapper icon-red">
+						<uni-icons type="close" size="24" color="#ff4d4f"></uni-icons>
+					</view>
+					<text class="menu-text">退出登录</text>
+					<uni-icons type="right" size="16" color="#cccccc"></uni-icons>
+				</view>
 			</view>
 
 			<!-- 底部占位 -->
@@ -201,6 +209,41 @@
 			url: '/pages/mine/card'
 		})
 	}
+
+	// 退出登录
+	const logout = () => {
+		uni.showModal({
+			title: '提示',
+			content: '确定要退出登录吗?',
+			success: (res) => {
+				if (res.confirm) {
+					console.log('用户确认退出登录')
+					
+					// 1. 清除 token
+					uni.removeStorageSync('token')
+					
+					// 2. 清除 store 中的用户数据
+					userStore.$reset()
+					
+					// 3. 清除其他可能存储的数据
+					uni.removeStorageSync('userInfo')
+					uni.removeStorageSync('companyInfo')
+					
+					console.log('已清除所有登录数据')
+					
+					// 4. 跳转到登录页
+					uni.reLaunch({
+						url: '/pages/login/login'
+					})
+					
+					uni.showToast({
+						title: '已退出登录',
+						icon: 'success'
+					})
+				}
+			}
+		})
+	}
 </script>
 
 <style lang="scss" scoped>
@@ -456,6 +499,10 @@
 				&.icon-blue {
 					background: rgba(74, 144, 226, 0.1);
 				}
+				
+				&.icon-red {
+					background: rgba(255, 77, 79, 0.1);
+				}
 			}
 
 			.menu-text {

+ 6 - 3
pages/splash/splash.vue

@@ -59,12 +59,15 @@
 	let version = ref('')
 	// 页面加载
 
-	onMounted(async (options) => {
+	onMounted(async () => {
 		const config = await getCurrentConfig()
 		appName.value = config.appName
 		version.value = config.appVersion
-		initApp(options?.userId || "2052227008040439810")
 	})
+	onLoad((options) => {
+		initApp(options?.userId)
+	})
+	
 	/**
 	 * 初始化应用
 	 */
@@ -88,7 +91,7 @@
 				await userStore.queryCompanyInfo(userId)
 				await userStore.queryCardQrcode(userId)
 				uni.reLaunch({
-					url: !userId ? '/pages/mine/userCard' : '/pages/index/index'
+					url: !!userId ? '/pages/mine/userCard' : '/pages/index/index'
 				})
 			} else {
 				clearUserInfo()

+ 4 - 0
store/modules/user.js

@@ -68,6 +68,10 @@ export const useUserStore = defineStore('user', {
 				resolve(res.data)
 			})
 		},
+		// 退出登录,重置状态
+		logout() {
+			this.$reset()
+		}
 	}
 
 })