From f996c7437b0a7d4e7bafeb7c71b7c86b7170c8bd Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期四, 27 二月 2025 17:15:13 +0800
Subject: [PATCH] 地图图标展示

---
 src/layout/component/login/Login.vue |  130 ++++++++++++++++++++++---------------------
 1 files changed, 66 insertions(+), 64 deletions(-)

diff --git a/src/layout/component/login/Login.vue b/src/layout/component/login/Login.vue
index 4ab566e..d0d0bb9 100644
--- a/src/layout/component/login/Login.vue
+++ b/src/layout/component/login/Login.vue
@@ -1,52 +1,54 @@
 <template>
-	<div class="pc-login items-center justify-center" style="display: flex" v-show="isShowLogin">
-		<div class="login_box">
-			<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="handleUserClick">
-					<el-tab-pane label="璐︽埛瀵嗙爜鐧诲綍" name="accountUser">
-						<el-form
-							ref="loginFormRef"
-							:model="state.loginForm"
-							:rules="loginRules"
-							class="demo-ruleForm mt-[24px] min-h-[140px]"
-							size="large"
-						>
-							<el-form-item label="璐﹀彿" prop="account">
-								<el-input v-model="state.loginForm.account" clearable />
-							</el-form-item>
-							<el-form-item label="瀵嗙爜" prop="pwd">
-								<el-input v-model="state.loginForm.pwd" type="password" autocomplete="off" clearable />
-							</el-form-item>
-						</el-form>
-					</el-tab-pane>
-					<el-tab-pane label="鎵嬫満鍙风櫥褰�" name="phoneUser">
-						<el-form
-							ref="formPhoneRef"
-							:rules="loginPhoneRules"
-							:model="state.loginPhoneForm"
-							size="large"
-							class="mt-[24px] min-h-[140px]"
-						>
-							<el-form-item label="鎵嬫満鍙�" prop="phoneUser">
-								<el-input v-model="state.loginPhoneForm.phoneUser" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" clearable>
-									<template #prepend>+86</template>
-								</el-input>
-							</el-form-item>
-							<el-form-item prop="verifyCode" label="楠岃瘉鐮�">
-								<el-input v-model="state.loginPhoneForm.verifyCode" placeholder="璇疯緭鍏ュ洓浣嶉獙璇佺爜" maxlength="6" clearable>
-									<template #append>
-										<el-button type="primary" @click="handleSendVerifyCode" :disabled="hasSended">{{ sendCodeMsg }}</el-button>
-									</template>
-								</el-input>
-							</el-form-item>
-						</el-form>
-					</el-tab-pane>
-				</el-tabs>
+	<div class="pc-login" v-if="isShowLogin">
+		<div class="items-center justify-center flex">
+			<div class="login_box">
+				<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="handleUserClick">
+						<el-tab-pane label="璐︽埛瀵嗙爜鐧诲綍" name="accountUser">
+							<el-form
+								ref="loginFormRef"
+								:model="state.loginForm"
+								:rules="loginRules"
+								class="demo-ruleForm mt-[24px] min-h-[140px]"
+								size="large"
+							>
+								<el-form-item label="璐﹀彿" prop="account">
+									<el-input v-model="state.loginForm.account" clearable v-focus />
+								</el-form-item>
+								<el-form-item label="瀵嗙爜" prop="pwd">
+									<el-input v-model="state.loginForm.pwd" type="password" autocomplete="off" clearable />
+								</el-form-item>
+							</el-form>
+						</el-tab-pane>
+						<el-tab-pane label="鎵嬫満鍙风櫥褰�" name="phoneUser">
+							<el-form
+								ref="formPhoneRef"
+								:rules="loginPhoneRules"
+								:model="state.loginPhoneForm"
+								size="large"
+								class="mt-[24px] min-h-[140px]"
+							>
+								<el-form-item label="鎵嬫満鍙�" prop="phoneUser">
+									<el-input v-model="state.loginPhoneForm.phoneUser" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" clearable>
+										<template #prepend>+86</template>
+									</el-input>
+								</el-form-item>
+								<el-form-item prop="verifyCode" label="楠岃瘉鐮�">
+									<el-input v-model="state.loginPhoneForm.verifyCode" placeholder="璇疯緭鍏ュ洓浣嶉獙璇佺爜" maxlength="6" clearable>
+										<template #append>
+											<el-button type="primary" @click="handleSendVerifyCode" :disabled="hasSended">{{ sendCodeMsg }}</el-button>
+										</template>
+									</el-input>
+								</el-form-item>
+							</el-form>
+						</el-tab-pane>
+					</el-tabs>
 
-				<div class="mt-[24px]">
-					<el-button type="primary" @click="onSubmit" class="set-login_btn">鐧诲綍</el-button>
+					<div class="mt-[24px]">
+						<el-button type="primary" @click="onSubmit" class="set-login_btn">鐧诲綍</el-button>
+					</div>
 				</div>
 			</div>
 		</div>
@@ -55,10 +57,11 @@
 <script setup lang="ts">
 import { ElMessage, type FormInstance } from 'element-plus';
 import { computed, reactive, ref } from 'vue';
-import { PostLogin, loginMessageUser, loginVerifyMessage } from '/@/api/ai/user';
-import { isLoginStatus, isShowLogin, userInfo } from '/@/stores/chatRoom';
-
-import { LoginInfo } from '/@/utils/storage';
+import { ACCOUNT_EXPIRE_DAY, handleAfterLogin, LOGIN_CLIENT, STORED_ACCOUNT_KEY } from './login';
+import { loginMessageUser, loginVerifyMessage, PostLogin } from '/@/api/ai/user';
+import { isShowLogin } from '/@/stores/chatRoom';
+import { encrypt } from '/@/utils/cypto';
+import { LocalPlus } from '/@/utils/storage';
 
 const handleClose = () => {
 	isShowLogin.value = false;
@@ -67,8 +70,6 @@
 //鍒囨崲鐢ㄦ埛鐧诲綍椤甸潰
 const handleUserClick = (item) => {
 	state.activeLoginName = item;
-	// formPhoneRef?.value?.resetFields();
-	// loginFormRef.value.resetFields();
 };
 const state = reactive({
 	activeLoginName: 'accountUser',
@@ -92,7 +93,6 @@
 	],
 	verifyCode: [{ required: true, message: '璇疯緭鍏ラ獙璇佺爜', trigger: 'blur' }],
 };
-const LOGIN_CLIENT = 'Web绔�';
 const loginFormRef = ref<FormInstance>(null); //璐︽埛瀵嗙爜鐧诲綍
 const formPhoneRef = ref(); //鎵嬫満鍙风櫥褰�
 const hasSended = computed(() => {
@@ -103,11 +103,12 @@
 });
 //鐧诲綍
 const onSubmit = async () => {
+	let res;
 	if (state.activeLoginName === 'accountUser') {
 		//璐︽埛瀵嗙爜鐧诲綍
 		const isValid = await loginFormRef.value.validate().catch(() => {});
 		if (!isValid) return;
-		const res = await PostLogin({
+		res = await PostLogin({
 			user: state.loginForm.account,
 			pass: state.loginForm.pwd,
 			client: LOGIN_CLIENT,
@@ -115,13 +116,11 @@
 		if (!res.json_ok) {
 			return ElMessage.error(res.json_msg);
 		}
-		userInfo.set(res);
-		LoginInfo.set(res.hswatersession, state.loginForm.account);
 	} else if (state.activeLoginName === 'phoneUser') {
 		//鎵嬫満鐧诲綍
 		const isValid = await formPhoneRef.value.validate().catch(() => {});
 		if (!isValid) return;
-		const res = await loginMessageUser({
+		res = await loginMessageUser({
 			phone: state.loginPhoneForm.phoneUser,
 			code: state.loginPhoneForm.verifyCode,
 			client: LOGIN_CLIENT,
@@ -129,13 +128,16 @@
 		if (!res.json_ok) {
 			return ElMessage.error(res.json_msg);
 		}
-		LoginInfo.set(res.hswatersession, state.loginPhoneForm.phoneUser);
-		userInfo.set(res);
-
 	}
-	isShowLogin.value = false;
-	isLoginStatus.value = true;
-	 window.location.reload();
+
+	if (state.activeLoginName === 'accountUser') {
+		const accountEncryptStr = encrypt({
+			username: state.loginForm.account,
+			password: state.loginForm.pwd,
+		});
+		LocalPlus.set(STORED_ACCOUNT_KEY, accountEncryptStr, ACCOUNT_EXPIRE_DAY);
+	}
+	handleAfterLogin(res);
 };
 const countdown = ref(null);
 

--
Gitblit v1.9.3