Переглянути джерело

fix解决切换账号的之后串号问题

liuzhenlin 2 тижнів тому
батько
коміт
1998f06428
3 змінених файлів з 22 додано та 9 видалено
  1. 2 1
      src/api/login/index.ts
  2. 3 0
      src/stores/userInfo.ts
  3. 17 8
      src/view/user/index.vue

+ 2 - 1
src/api/login/index.ts

@@ -23,7 +23,8 @@ export function useLoginApi() {
       return request.postRequest(basePath, 'System', 'Logout', query)
     },
     WeChatUnBindOpenId: (query?: object) => {
-      return request.postRequest(basePath, 'System', 'WeChatUnBindOpenId', query)
+      return request.postRequestWithClientInfo(basePath, 'System', 'UnbindWeChatUnIdOpenIdByUser', query)
+      // return request.postRequest(basePath, 'System', 'WeChatUnBindOpenId', query)
     },
     getCaptchaImg: (query?: object) => {
       return request.postRequest(basePath, 'System', 'GetCaptchaImg', query)

+ 3 - 0
src/stores/userInfo.ts

@@ -139,9 +139,11 @@ export const useUserInfo = defineStore('userInfo', {
       })
     },
     async setOpenId(code: string) {
+      
       if(this.openIdFlag || this.openId) return
       const openId = localStorage.getItem('openId')
       const unionId = localStorage.getItem('unionId')
+  
       if(openId && unionId) {
         this.openId = openId
         this.unionId = unionId
@@ -155,6 +157,7 @@ export const useUserInfo = defineStore('userInfo', {
       }
       this.openId = res?.data?.openid || ''
       this.unionId = res?.data?.unionid || ''
+
       localStorage.setItem('openId', this.openId)
       localStorage.setItem('unionId', this.unionId)
       this.openIdFlag = false

+ 17 - 8
src/view/user/index.vue

@@ -114,7 +114,7 @@
 import { ref, onMounted } from 'vue'
 import { storeToRefs } from 'pinia'
 import to from 'await-to-js'
-import { showConfirmDialog, showToast } from 'vant'
+import { showConfirmDialog, showDialog, showToast } from 'vant'
 import { useRouter } from 'vue-router'
 
 import { useUserInfo } from '/@/stores/userInfo'
@@ -176,24 +176,33 @@ const signOut = () => {
   showConfirmDialog({
     message: '确认切换账号?',
   }).then(async () => {
-    // 如果有 openId,先解绑微信
-    // if (openId.value) {
-    //   await to(loginApi.WeChatUnBindOpenId({ openId: openId.value }))
-    // }
+    // 先解绑微信
+    const [unbindErr]: ToResponse = await to(
+      loginApi.WeChatUnBindOpenId()
+    )
+    // 解绑失败则终止流程
+    if (unbindErr) {
+      showToast('解绑失败,请重试')
+      return
+    }
 
     // 调用退出登录接口
     const [err]: ToResponse = await to(loginApi.signOut())
-    if (err) return
+    if (err) {
+      showToast('退出登录失败,请重试')
+      return
+    }
 
     // 清理所有本地缓存
     Local.clear()
     Session.clear()
+
     // 重置用户信息
     storesUseUserInfo.resetUserInfo()
     // 关闭窗口
-    // wx.closeWindow()
+    wx.closeWindow()
     // 跳转登录重新走授权
-    router.replace('/login')
+    // router.replace('/login')
   })
 }
 const handleSubscribe = (errMsg: any, subscribeDetails: any) => {