From 7fbce1ecd95b4e12ceda0a5b874ec8f3951625f7 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期五, 17 一月 2025 17:58:59 +0800 Subject: [PATCH] WI水务智能助理 --- src/layout/component/login/Login.vue | 134 +++++++++++++++++++++++++------------------- 1 files changed, 77 insertions(+), 57 deletions(-) diff --git a/src/layout/component/login/Login.vue b/src/layout/component/login/Login.vue index 18b3533..5af5bc6 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> @@ -56,9 +58,9 @@ import { ElMessage, type FormInstance } from 'element-plus'; import { computed, reactive, ref } from 'vue'; import { PostLogin, loginMessageUser, loginVerifyMessage } from '/@/api/ai/user'; -import { isLoginStatus, isNewOldUser, isShowLogin } from '/@/stores/chatRoom'; - -import { LoginInfo } from '/@/utils/storage'; +import { isLoginStatus, isShowLogin, userInfo } from '/@/stores/chatRoom'; +import { Local, LoginInfo } from '/@/utils/storage'; +import { userInfoKey } from '/@/utils/request'; const handleClose = () => { isShowLogin.value = false; @@ -67,8 +69,6 @@ //鍒囨崲鐢ㄦ埛鐧诲綍椤甸潰 const handleUserClick = (item) => { state.activeLoginName = item; - // formPhoneRef?.value?.resetFields(); - // loginFormRef.value.resetFields(); }; const state = reactive({ activeLoginName: 'accountUser', @@ -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,22 @@ if (!res.json_ok) { return ElMessage.error(res.json_msg); } - isNewOldUser.value = res.web_login; + Local.set(userInfoKey, { + id: res.id, + realName: res.real_name, + department: res.part, + sex: res.sex, + note: res.note, + userName: res.name, + phoneNumber: res.phone, + email: res.email, + } as any); 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,12 +139,22 @@ if (!res.json_ok) { return ElMessage.error(res.json_msg); } + Local.set(userInfoKey, { + id: res.id, + realName: res.real_name, + department: res.part, + sex: res.sex, + note: res.note, + userName: res.name, + phoneNumber: res.phone, + email: res.email, + } as any); LoginInfo.set(res.hswatersession, state.loginPhoneForm.phoneUser); - isNewOldUser.value = res.web_login; } + Local.set('isNewUser', !res?.web_login); isShowLogin.value = false; isLoginStatus.value = true; - // window.location.reload(); + window.location.reload(); }; const countdown = ref(null); -- Gitblit v1.9.3