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