From f7a2fcdda7f1120498c5c5f75c5a99955fc54b43 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 16 十二月 2025 16:54:09 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/northglass-erp/src/views/LoginView.vue |  107 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 81 insertions(+), 26 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/LoginView.vue b/north-glass-erp/northglass-erp/src/views/LoginView.vue
index 154d12b..1779d37 100644
--- a/north-glass-erp/northglass-erp/src/views/LoginView.vue
+++ b/north-glass-erp/northglass-erp/src/views/LoginView.vue
@@ -7,16 +7,26 @@
 import request from '@/utils/request'
 import userInfo from '@/stores/userInfo'
 import { sendSock, createWebSocket, closeSock,global_callback1 } from "@/utils/webSocket"
-
+import userOrderInfo from '@/stores/sd/order/orderInfo'
+import { useI18n } from 'vue-i18n'
+import i18n from "@/lang/index"
+import { VxeUI } from 'vxe-table'
+//璇█鑾峰彇
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh-CN')
 const store=userInfo()
 let ruleFormRef  = ref<FormInstance>()
 const router = useRouter()
 const route = useRoute()
+const orderInfo = userOrderInfo()
+
 
 const userForm = reactive({
   userId: '',
   pass: ''
 })
+
+let registerState = ref(true)
 
 if (typeof(route.query.id) != "undefined"){
   userForm.userId = <string>route.query.id
@@ -24,7 +34,7 @@
 
 const validateUser = (rule: any, value: any, callback: any) => {
   if (value === '') {
-    callback(new Error('璇疯緭鍏ヤ綘鐨勮处鍙�'))
+    callback(new Error(t('login.userErr')))
   } else {
     callback()
   }
@@ -32,7 +42,7 @@
 
 const validatePass = (rule: any, value: any, callback: any) => {
   if (value === '') {
-    callback(new Error('璇疯緭鍏ヤ綘鐨勫瘑鐮�'))
+    callback(new Error(  t('login.pwErr')  ))
   } else {
     callback()
   }
@@ -49,22 +59,26 @@
   formEl.validate((valid) => {
     if (valid) {
       loginLoadings.value=true
-      request.post('/user/login',
+      userForm.pass = btoa(userForm.pass)
+      request.post('/userInfo/login',
           userForm).then((res) => {
-        if(res['code']==200){
+        if(res['code']==200 && res['data']){
           store.$patch({user:res.data})
-
+          localStorage.setItem('saToken', store.user.token)
+          orderInfo.clearSelectDate()
           router.push('/main')
-          ElMessage.success(`鐧诲綍鎴愬姛`)
+          ElMessage.success(t('login.loginSuccessful'))
         } else {
-          ElMessage.error(res['msg'])
+          ElMessage.error(t('login.loginErr'))
           loginLoadings.value=false
           return false
         }
       }).catch(error => {
-        ElMessage.error("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
+        ElMessage.error(t('login.connectErr'))
         loginLoadings.value=false
         return false
+      }).then(() => {
+        userForm.pass = atob(userForm.pass)
       })
     }
   })
@@ -82,7 +96,7 @@
 
 const keyDown = (e) => {
   // 鍥炶溅鍒欐墽琛岀櫥褰曟柟娉� enter閿殑ASCII鏄�13
-  if (e.keyCode == 13 || e.keyCode == 100) {
+  if (e.keyCode == 13 ) {
     submitForm(ruleFormRef.value)
   }
 }
@@ -92,17 +106,40 @@
 onUnmounted(() => {
   window.removeEventListener('keydown', keyDown)
 })
+const changeLanguage = () =>{
+  localStorage.setItem('lang',language.value)
+  location.reload()
+}
 
+//娉ㄥ唽鎸夐挳鐨勬樉绀�
+const changeRegister = ()=>{
+  if(userForm.pass=='admin'){
+    registerState.value =false
+  }else {
+    registerState.value =true
+  }
+}
 </script>
 
 <template>
-  <div class="mainDiv" >
+  <div class="mainDiv1" >
     <div id="main-login">
       <div id="img-div">
         <img id="img-pic" src="@/assets/img.png" alt="">
       </div>
       <div id="div-login">
-        <h2>鍖楃幓鑷姩鍖朎RP绠$悊绯荤粺</h2>
+        <el-select
+            @change="changeLanguage"
+            v-model="language"
+            placeholder=" "
+            style="float: right;width: 6rem">
+          <el-option value="zh-CN"  label="涓枃" />
+          <el-option value="en-US"  label="English" />
+          <el-option value="ru"  label="袪褍褋褋泻懈泄 褟蟹褘泻" />
+          <el-option value="ar"  label="亘丕賱毓乇亘賷丞" />
+          <el-option value="ko-KR"  label="頃滉淡鞏�" />
+        </el-select>
+        <h2>{{$t('login.SysName')}}</h2>
         <el-form
             @submit.native.prevent
             ref="ruleFormRef"
@@ -110,30 +147,32 @@
             status-icon
             :rules="rules"
         >
-          <el-form-item label="鐢ㄦ埛锛�" prop="userId">
+          <el-form-item :label="$t('login.user')+':'" prop="userId">
             <el-input
                 v-model="userForm.userId"
                 type="text"
                 autocomplete="off"
                 :prefix-icon="Avatar"
-                placeholder="璇疯緭鍏ヤ綘鐨勮处鍙�"
+                :placeholder="$t('login.userErr')"
             />
           </el-form-item>
-          <el-form-item label="瀵嗙爜锛�" prop="pass">
+          <el-form-item :label="$t('login.password')+':'" prop="pass">
             <el-input
                 v-model="userForm.pass"
+                @blur="changeRegister"
                 type="password"
                 autocomplete="off"
                 :prefix-icon="Lock"
-                placeholder="璇疯緭鍏ヤ綘鐨勫瘑鐮�"
+                :placeholder="$t('login.pwErr')"
             />
           </el-form-item>
           <el-form-item id="submitForm">
             <el-button
                 :loading="registerLoadings"
+                :disabled="registerState"
                 type="primary"
                 @click="register"
-            >娉ㄥ唽
+            >{{$t('login.register')}}
             </el-button>
             <el-button
                 :loading="loginLoadings"
@@ -141,7 +180,7 @@
                 native-type="submit"
                 @click="submitForm(ruleFormRef)"
                 @keyup.enter.native="keyDown(e)"
-            >鐧诲綍
+            >{{$t('login.login')}}
             </el-button>
 
           </el-form-item>
@@ -153,17 +192,21 @@
 </template>
 
 <style scoped>
-.mainDiv{
-  //background-color: #1890FF;
-  overflow: hidden;
-  min-width: 718px;
+
+.mainDiv1{
+//background-color: #1890FF;
+  //overflow: hidden;
+  width: 100vw;
+  height: 100vh;
+
+  display: grid;
+  place-items: center; /* 鍚屾椂姘村钩鍜屽瀭鐩村眳涓� */
 }
 #main-login{
-  margin: 150px auto 0 auto;
-  height: 60vh;
-  width: 70vw;
+  height: 60%;
+  width: 70%;
 
-  //background-color: #f2f2f2;
+//background-color: #f2f2f2;
 }
 #img-div{
   width: 55%;
@@ -177,6 +220,17 @@
   max-height: 90%;
   max-width: 100%;
 }
+
+@media (max-width: 1030px) {
+  #img-div {
+    display: none;
+  }
+  #main-login{
+    display: flex;
+    justify-content: center;
+  }
+}
+
 #div-login{
   margin-top: 5%;
   background-color: #fff;
@@ -185,6 +239,7 @@
   height: 80%;
   border-radius: 12px;
   min-width: 318px;
+  min-height: 300px;
   box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
 }
 h2{

--
Gitblit v1.8.0