From 863b5f27a3c9c89551b67569fd4e74e3ea8fb8e2 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期五, 14 三月 2025 16:24:01 +0800
Subject: [PATCH] openWechatLogin

---
 src/layout/component/login/Login.vue |   61 ++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 5 deletions(-)

diff --git a/src/layout/component/login/Login.vue b/src/layout/component/login/Login.vue
index 1211701..158ca09 100644
--- a/src/layout/component/login/Login.vue
+++ b/src/layout/component/login/Login.vue
@@ -5,7 +5,7 @@
 				<div class="sign_in">
 					<i class="ywifont ywicon-guanbi closes" @click="handleClose"></i>
 					<h1><span>鐧诲綍 WI 姘村姟鏅鸿兘</span></h1>
-					<el-tabs v-model="state.activeLoginName" class="mt-[24px]" @tab-change="handleTabChange">
+					<el-tabs v-model="state.activeLoginName" class="w-full mt-[24px]" @tab-change="handleTabChange">
 						<el-tab-pane label="璐︽埛瀵嗙爜鐧诲綍" name="accountUser">
 							<el-form
 								ref="loginFormRef"
@@ -45,11 +45,19 @@
 							</el-form>
 						</el-tab-pane>
 						<el-tab-pane label="寰俊鐧诲綍" name="wechat">
-							<div id="wechat-login"></div>
+							<!-- <div id="wechat-login"></div> -->
+							<div id="wechat-login" class="flex justify-center items-center">
+								<iframe
+									ref="wechatQrRef"
+									sandbox="allow-top-navigation allow-scripts"
+									style="width: 300px; height: 232px; overflow: hidden"
+									frameborder="0"
+								></iframe>
+							</div>
 						</el-tab-pane>
 					</el-tabs>
 
-					<div class="mt-[24px]">
+					<div class="mt-[24px]" v-if="state.activeLoginName !== 'wechat'">
 						<el-button type="primary" @click="onSubmit" class="set-login_btn">鐧诲綍</el-button>
 
 						<!-- <el-button type="primary" @click="loginByWechat">寰俊鐧诲綍</el-button> -->
@@ -78,13 +86,55 @@
 	const state = (new Date().getTime() / 1000).toString();
 	// JJJHHH 琛ㄧず锛冨彿
 	const url = `${SERVE_URL}JJJHHH/home?isWxLogin=Y`;
+
+	const base64 =
+		'LmltcG93ZXJCb3ggLnRpdGxlIHtkaXNwbGF5Om5vbmU7fQoKLmltcG93ZXJCb3ggLnN0YXR1cy5zdGF0dXNfYnJvd3NlciAgcDpudGgtb2YtdHlwZSgyKXsKICAgIGRpc3BsYXk6IG5vbmU7Cn0=';
 	const obj = new window.WxLogin({
 		id: 'wechat-login',
 		appid: 'wx4ea2dca37170074c',
 		scope: 'snsapi_login',
 		redirect_uri: encodeURIComponent(`http://apiv3.xpump.net/User/wxUserLoginCB.html?from=wi&url=${url}`),
 		state: state,
+		href: `data:text/css;base64,${base64}`,
 	});
+};
+
+const wechatQrRef = ref<HTMLIFrameElement>();
+
+const openWechatLogin = () => {
+	if (!wechatQrRef.value) return;
+	const url = `${SERVE_URL}JJJHHH/home?isWxLogin=Y`;
+	const appid = 'wx4ea2dca37170074c';
+	const state = (new Date().getTime() / 1000).toString();
+	const base64 = btoa(`
+	.impowerBox .title {display:none;}
+
+	.impowerBox .status.status_browser  p:nth-of-type(2){
+		display: none;
+	}
+
+	.impowerBox .qrcode {
+	width: 160px;
+	margin-top:0;
+
+	}
+	.impowerBox .status{
+	}
+	#tpl_for_iframe{
+		height:100%;
+		overflow: hidden;
+
+		    display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+	
+	`);
+	const wechatAuthUrl = `https://open.weixin.qq.com/connect/qrconnect?appid=${appid}&redirect_uri=${encodeURIComponent(
+		`http://apiv3.xpump.net/User/wxUserLoginCB.html?from=wi&url=${url}`
+	)}&response_type=code&scope=snsapi_login&state=${state}&href=data:text/css;base64,${base64}#wechat_redirect`;
+	wechatQrRef.value.src = wechatAuthUrl;
 };
 
 //鍒囨崲鐢ㄦ埛鐧诲綍椤甸潰
@@ -92,7 +142,8 @@
 	state.activeLoginName = item;
 	switch (item) {
 		case 'wechat':
-			getWechartQrCode();
+			// getWechartQrCode();
+			openWechatLogin();
 			break;
 		case 'accountUser':
 			break;
@@ -106,7 +157,7 @@
 	(val) => {
 		if (val && state.activeLoginName === 'wechat') {
 			nextTick(() => {
-				getWechartQrCode();
+				openWechatLogin();
 			});
 		}
 	}

--
Gitblit v1.9.3