From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/src/views/LoginView.vue |  238 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 128 insertions(+), 110 deletions(-)

diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 7ee9b8d..6431f47 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -1,103 +1,114 @@
 <script lang="ts" setup>
-import {onMounted, onUnmounted, reactive, ref} from "vue"
+import {onMounted, onUnmounted, reactive, ref} from 'vue'
 import {useRoute, useRouter} from 'vue-router'
 import type {FormInstance, FormRules} from 'element-plus'
-import {ElMessage} from "element-plus";
+import {ElMessage} from 'element-plus'
 import request from '@/utils/request'
 import userInfo from '@/stores/userInfo'
-
-
-const store=userInfo()
-let ruleFormRef  = ref<FormInstance>()
+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({
-  userId: '',
-  pass: ''
+  userName: '',
+  password: '',
 })
-
-if (typeof(route.query.id) != "undefined"){
+ 
+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' }]
+  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('/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("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
-        loginLoadings.value=false
-        return false
-      })
+          })
+          .catch((error) => {
+            ElMessage.error(t('main.connectErr'))
+            store.$patch({
+              user: null,
+              })
+            loginLoadings.value = false
+            return false
+          })
     }
   })
 }
-
+ 
 function register() {
-
   router.push({
-    path:'/register',
+    path: '/register',
   })
 }
-
-let loginLoadings= ref(false)
-let registerLoadings= ref(false)
-
+ 
+let loginLoadings = ref(false)
+let registerLoadings = ref(false)
+ 
 const keyDown = (e) => {
   // 鍥炶溅鍒欐墽琛岀櫥褰曟柟娉� enter閿殑ASCII鏄�13
   if (e.keyCode == 13 || e.keyCode == 100) {
     submitForm(ruleFormRef.value)
   }
 }
-onMounted(()=>{
+onMounted(() => {
   window.addEventListener('keydown', keyDown)
 })
 onUnmounted(() => {
   window.removeEventListener('keydown', keyDown)
 })
-
 </script>
-
+ 
 <template>
-  <div class="mainDiv" >
+  <div class="mainDiv">
     <div id="main-login">
       <!-- <img
         style="width: 100%; height: 99vh"
@@ -107,82 +118,84 @@
         <div style="position: absolute; left: 8vw; top: 6vw; ">
           <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绯荤粺
-      </div>
-    </div>
-      <div id="div-login">
-        <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>
-          <el-form-item prop="userId">
-            <el-input
-            style="width: 340px;"
-                v-model="userForm.userId"
-                type="text"
-                autocomplete="off"
-                :prefix-icon="Avatar"
-                placeholder="璇疯緭鍏ヨ处鍙�"
-            />
-          </el-form-item>
-            <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div>
-          <el-form-item prop="pass">
-            <el-input
-            style="width: 340px;"
-                v-model="userForm.pass"
-                type="password"
-                autocomplete="off"
-                :prefix-icon="Lock"
-                show-password
-                placeholder="璇疯緭鍏ュ瘑鐮�"
-            />
-          </el-form-item>
-          <el-form-item id="submitForm">
-            <el-button
-                :loading="loginLoadings"
-                type="primary"
-                native-type="submit"
-                @click="submitForm(ruleFormRef)"
-                @keyup.enter.native="keyDown(e)"
-                plain
-            >鐧诲綍
-            </el-button>
-            <el-button
-                :loading="registerLoadings"
-                type="primary"
-                @click="register"
-                plain
-            >娉ㄥ唽
-            </el-button>
-
-          </el-form-item>
+        <div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
+          {{ $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;">{{ $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="$t('login.userErr')"/>
+            </el-form-item>
+            <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"
+                        type="password"
+                        autocomplete="off"
+                        :prefix-icon="Lock"
+                        show-password
+                        :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>{{ $t('login.login') }}
+              </el-button>
+              <!-- <el-button :loading="registerLoadings"
+                         type="primary"
+                         @click="register"
+                         plain>{{ $t('login.register') }}
+              </el-button> -->
+ 
+            </el-form-item>
+          </div>
         </el-form>
       </div>
     </div>
-
+ 
   </div>
 </template>
-
+ 
 <style scoped>
-.mainDiv{
+.mainDiv {
   overflow: hidden;
   min-width: 718px;
-  background-image: url("../../src/assets/background.jpg");
-
+  background-image: url('../../src/assets/background.jpg');
 }
-#main-login{
+ 
+#main-login {
   margin: 150px auto 0 auto;
   height: 70vh;
   width: 80vw;
 }
-#img-div{
+ 
+#img-div {
   width: 55%;
   height: 100%;
   display: flex;
@@ -190,11 +203,13 @@
   align-items: center;
   float: left;
 }
-#img-pic{
+ 
+#img-pic {
   max-height: 90%;
   max-width: 100%;
 }
-#div-login{
+ 
+#div-login {
   margin-top: 5%;
   /* margin-top: 20%; */
   /* margin-left: 650px; */
@@ -204,22 +219,25 @@
   height: 60%;
   min-width: 318px;
   border-radius: 4px;
-  box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
+  box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0), 0 6px 5px 0 rgba(0, 0, 0, 0.19);
 }
-#center{
+ 
+#center {
   margin-top: -30px;
 }
-.el-form{
+ 
+.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
-
+ 
+:deep(.el-form-item__content) {
+  flex: unset;
 }
 </style>
\ No newline at end of file

--
Gitblit v1.8.0