From f4ac65acced0af8418b2db065e56264ff08a14a9 Mon Sep 17 00:00:00 2001 From: sexygoat <1538832180@qq.com> Date: Thu, 16 Apr 2026 18:09:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=99=BB=E5=BD=95=E6=89=AB=E4=B8=80?= =?UTF-8?q?=E6=89=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/login/login.vue | 80 +++++++++---------------------------------- utils/env.js | 4 +-- 2 files changed, 17 insertions(+), 67 deletions(-) diff --git a/pages/login/login.vue b/pages/login/login.vue index 378aefe..d868731 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -68,7 +68,6 @@ import { ref, onMounted } from 'vue'; import { authApi } from '@/api/index.js'; import { useUserStore } from '@/store/index.js'; - import { APP_ID, USE_WECHAT_AUTH } from '@/utils/env.js'; import { initWxSdk } from '@/utils/wxsdk.js'; const userStore = useUserStore(); @@ -78,7 +77,6 @@ if (token) { uni.reLaunch({ url: '/pages/index/index' }); } - handleWechatCallback(); getPathDeviceId(); }); @@ -88,22 +86,6 @@ const inputFocus = ref(false); const showError = ref(false); - const getCode = () => { - const params = new URLSearchParams(window.location.search); - return params.get('code'); - }; - - const clearCode = () => { - window.history.replaceState({}, '', window.location.pathname); - }; - - const redirectToWxAuth = (assetToken) => { - sessionStorage.setItem('assetToken', assetToken); - const redirectUri = encodeURIComponent('https://cmp-c.boss160.cn/'); - const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${APP_ID}&redirect_uri=${redirectUri}&response_type=code&scope=snsapi_userinfo&state=wechat_auth#wechat_redirect`; - window.location.href = url; - }; - const clearInput = () => { identifier.value = ''; showError.value = false; @@ -136,9 +118,20 @@ scanType: ['qrCode', 'barCode'], success: (res) => { const result = res.resultStr; - const match = result.match(/=([^=]+)$/); - if (match && match[1]) { - identifier.value = match[1]; + let value = ''; + + if (result.includes('?')) { + const params = new URLSearchParams(result.split('?')[1]); + value = params.get('cardNum') || ''; + } + + if (!value) { + const match = result.match(/=([^=]+)$/); + value = match ? match[1] : ''; + } + + if (value) { + identifier.value = value; handleLogin(); } else { uni.showToast({ title: '无效的二维码', icon: 'none' }); @@ -170,58 +163,17 @@ userStore.setAssetToken(verifyData.asset_token); userStore.setIdentifier(identifier.value); - if (!USE_WECHAT_AUTH) { - const loginData = await authApi.wechatLogin(verifyData.asset_token, 'mock_code'); - userStore.setToken(loginData.token); - uni.setStorageSync('identifier', userStore.state.identifier); - - if (loginData.need_bind_phone) { - uni.redirectTo({ url: '/pages/bind/bind?fromLogin=true' }); - } else { - uni.redirectTo({ url: '/pages/index/index' }); - } - return; - } - - redirectToWxAuth(verifyData.asset_token); - } catch (e) { - console.error('登录失败', e); - loading.value = false; - } - }; - - const handleWechatCallback = async () => { - if (!USE_WECHAT_AUTH) return; - - const code = getCode(); - const assetToken = sessionStorage.getItem('assetToken'); - - if (!code || !assetToken) return; - - loading.value = true; - clearCode(); - - try { - const loginData = await authApi.wechatLogin(assetToken, code); + const loginData = await authApi.wechatLogin(verifyData.asset_token, 'mock_code'); userStore.setToken(loginData.token); uni.setStorageSync('identifier', userStore.state.identifier); - // #ifdef H5 - if (loginData.user_info) { - userStore.setUserInfo({ - avatar: loginData.user_info.avatar || '', - nickname: loginData.user_info.nickname || '' - }); - } - // #endif - if (loginData.need_bind_phone) { uni.redirectTo({ url: '/pages/bind/bind?fromLogin=true' }); } else { uni.redirectTo({ url: '/pages/index/index' }); } } catch (e) { - console.error('微信登录失败', e); + console.error('登录失败', e); loading.value = false; } }; diff --git a/utils/env.js b/utils/env.js index 5095e95..ada0313 100644 --- a/utils/env.js +++ b/utils/env.js @@ -2,6 +2,4 @@ export const BASE_URL = 'https://cmp-api.boss160.cn'; export const APP_TYPE = 'official_account'; -export const APP_ID = 'wx404dc822ce15c5f0'; - -export const USE_WECHAT_AUTH = true; \ No newline at end of file +export const APP_ID = 'wx404dc822ce15c5f0'; \ No newline at end of file