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