From 33308e16bbb153d9aac76fd703ec0f38ea7e344a Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期三, 09 十月 2024 15:47:59 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- UI-Project/src/views/LoginView.vue | 102 +++++++++++++++++++++++++++++++------------------- 1 files changed, 63 insertions(+), 39 deletions(-) diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue index 70fd9e6..6431f47 100644 --- a/UI-Project/src/views/LoginView.vue +++ b/UI-Project/src/views/LoginView.vue @@ -5,81 +5,94 @@ import {ElMessage} from 'element-plus' import request from '@/utils/request' import userInfo from '@/stores/userInfo' - +import { useI18n } from 'vue-i18n' const store = userInfo() let ruleFormRef = ref<FormInstance>() const router = useRouter() const route = useRoute() - +const { t } = useI18n() +let language = ref(localStorage.getItem('lang') || 'zh') +const changeLanguage = () =>{ + localStorage.setItem('lang',language.value) + location.reload() +} const userForm = reactive({ userName: '', password: '', }) - + if (typeof route.query.id != 'undefined') { userForm.userId = <string>route.query.id } - + const validateUser = (rule: any, value: any, callback: any) => { if (value === '') { - callback(new Error('璇疯緭鍏ヤ綘鐨勮处鍙�')) + callback(new Error(t('login.userErr'))) } else { callback() } } - + const validatePass = (rule: any, value: any, callback: any) => { if (value === '') { - callback(new Error('璇疯緭鍏ヤ綘鐨勫瘑鐮�')) + callback(new Error(t('login.pwErr'))) } else { callback() } } - + const rules = reactive<FormRules<typeof userForm>>({ userId: [{validator: validateUser, trigger: 'blur'}], pass: [{validator: validatePass, trigger: 'blur'}], }) - + //鐧婚檰鏂规硶 const submitForm = (formEl: FormInstance | undefined) => { + store.$patch({ + user: null, + }) if (!formEl) return formEl.validate((valid) => { if (valid) { loginLoadings.value = true request - .post('/loadGlass/userinfo/login', userForm) + // .post('/loadGlass/userinfo/login', userForm) + .post('/loadGlass/sys/user/login', userForm) .then((res) => { if (res['code'] == 200) { store.$patch({user: res.data}) - console.log(res.data) - router.push('/main') - ElMessage.success(`鐧诲綍鎴愬姛`) + ElMessage.success(t('login.loginSuccessful')) } else { - ElMessage.error(res['msg']) + // ElMessage.error(res['msg']) + store.$patch({ + user: null, + }) loginLoadings.value = false return false } }) .catch((error) => { - ElMessage.error('鏈嶅姟鍣ㄨ繛鎺ュけ璐�') + ElMessage.error(t('main.connectErr')) + store.$patch({ + user: null, + }) loginLoadings.value = false return false }) } }) } - + function register() { router.push({ path: '/register', }) } - + let loginLoadings = ref(false) let registerLoadings = ref(false) - + const keyDown = (e) => { // 鍥炶溅鍒欐墽琛岀櫥褰曟柟娉� enter閿殑ASCII鏄�13 if (e.keyCode == 13 || e.keyCode == 100) { @@ -93,7 +106,7 @@ window.removeEventListener('keydown', keyDown) }) </script> - + <template> <div class="mainDiv"> <div id="main-login"> @@ -106,26 +119,35 @@ <img src="../../src/assets/3.png"> </div> <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);"> - 鍖楃幓MES绯荤粺 + {{ $t('northglassMESsystem') }} </div> </div> <div id="div-login"> + <!--璇█鍒囨崲鎸夐挳--> + <el-select + @change="changeLanguage" + v-model="language" + placeholder=" " + style="float: right;width: 9rem"> + <el-option value="zh" label="涓枃" /> + <el-option value="en" label="袪褍褋褋泻懈泄 褟蟹褘泻" /> + </el-select> <el-form @submit.native.prevent ref="ruleFormRef" :model="userForm" status-icon :rules="rules"> <div id="center"> - <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">璐﹀彿</div> + <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">{{ $t('login.user') }}</div> <el-form-item prop="userId"> <el-input style="width: 340px;" v-model="userForm.userName" type="text" autocomplete="off" :prefix-icon="Avatar" - placeholder="璇疯緭鍏ヨ处鍙�"/> + :placeholder="$t('login.userErr')"/> </el-form-item> - <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div> + <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">{{ $t('login.password') }}</div> <el-form-item prop="pass"> <el-input style="width: 340px;" v-model="userForm.password" @@ -133,44 +155,46 @@ autocomplete="off" :prefix-icon="Lock" show-password - placeholder="璇疯緭鍏ュ瘑鐮�"/> + :placeholder="$t('login.pwErr')" + /> </el-form-item> <el-form-item id="submitForm"> <el-button :loading="loginLoadings" type="primary" native-type="submit" + style="width: 80px;" @click="submitForm(ruleFormRef)" @keyup.enter.native="keyDown(e)" - plain>鐧诲綍 + plain>{{ $t('login.login') }} </el-button> - <el-button :loading="registerLoadings" + <!-- <el-button :loading="registerLoadings" type="primary" @click="register" - plain>娉ㄥ唽 - </el-button> - + plain>{{ $t('login.register') }} + </el-button> --> + </el-form-item> </div> </el-form> </div> </div> - + </div> </template> - + <style scoped> .mainDiv { overflow: hidden; min-width: 718px; background-image: url('../../src/assets/background.jpg'); } - + #main-login { margin: 150px auto 0 auto; height: 70vh; width: 80vw; } - + #img-div { width: 55%; height: 100%; @@ -179,12 +203,12 @@ align-items: center; float: left; } - + #img-pic { max-height: 90%; max-width: 100%; } - + #div-login { margin-top: 5%; /* margin-top: 20%; */ @@ -197,22 +221,22 @@ border-radius: 4px; box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0), 0 6px 5px 0 rgba(0, 0, 0, 0.19); } - + #center { margin-top: -30px; } - + .el-form { width: 60%; margin: 20% auto auto; } - + #submitForm { display: flex; justify-content: space-evenly; margin-top: 2rem; } - + :deep(.el-form-item__content) { flex: unset; } -- Gitblit v1.8.0