添加登录、注册、重置密码、谷歌验证码处理中

This commit is contained in:
2025-12-26 16:26:26 +08:00
parent e9bca8163d
commit a325efb57f
23 changed files with 1464 additions and 40 deletions

View File

@@ -75,7 +75,9 @@ export default {
cartServerCount: 0,
navigation: mainNavigation,
// 用户邮箱
userEmail: ''
userEmail: '',
// 登录状态(改为 data 属性,支持响应式更新)
isLoggedIn: false
}
},
computed: {
@@ -87,15 +89,12 @@ export default {
// 计算面包屑导航
breadcrumbs() {
return getBreadcrumb(this.$route.path)
},
// 判断是否已登录检查localStorage中是否有token
isLoggedIn() {
const token = JSON.parse(localStorage.getItem('leasToken'))
return !!token // 有token就是已登录没有就是未登录
}
},
watch: {},
mounted() {
// 初始化登录状态
this.updateLoginStatus()
this.loadCart()
// 监听购物车变化
window.addEventListener('storage', this.handleStorageChange)
@@ -103,12 +102,15 @@ export default {
this.loadServerCartCount()
// 监听应用内购物车更新事件
window.addEventListener('cart-updated', this.handleCartUpdated)
// 监听登录状态变化事件(当 token 被清除时触发)
window.addEventListener('login-status-changed', this.handleLoginStatusChanged)
// 加载用户信息(邮箱)
this.loadUserEmail()
},
beforeDestroy() {
window.removeEventListener('storage', this.handleStorageChange)
window.removeEventListener('cart-updated', this.handleCartUpdated)
window.removeEventListener('login-status-changed', this.handleLoginStatusChanged)
},
methods: {
loadCart() {
@@ -151,6 +153,38 @@ export default {
if (event.key === 'power_leasing_cart_v1') {
this.loadCart()
this.loadServerCartCount()
} else if (event.key === 'leasToken') {
// 当 token 变化时,更新登录状态
this.updateLoginStatus()
// 如果 token 被清除,同时清除用户信息
if (!event.newValue) {
this.userEmail = ''
} else {
this.loadUserEmail()
}
}
},
/**
* 处理登录状态变化事件
*/
handleLoginStatusChanged() {
this.updateLoginStatus()
// 如果未登录,清除用户信息
if (!this.isLoggedIn) {
this.userEmail = ''
} else {
this.loadUserEmail()
}
},
/**
* 更新登录状态
*/
updateLoginStatus() {
try {
const token = localStorage.getItem('leasToken')
this.isLoggedIn = !!token && token !== 'null' && token !== 'undefined'
} catch (e) {
this.isLoggedIn = false
}
},
handleCartUpdated(event) {
@@ -207,11 +241,17 @@ export default {
localStorage.removeItem('userId')
localStorage.removeItem('username')
// 更新登录状态
this.updateLoginStatus()
// 清空购物车
this.user = null
this.cart = []
this.userEmail = ''
// 触发登录状态变化事件
window.dispatchEvent(new CustomEvent('login-status-changed'))
// 提示用户
this.$message.success('退出登录成功')