From 07b0cdcb34db682b51ca972f5c23da653aa5d32d Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期一, 21 十月 2024 15:49:01 +0800
Subject: [PATCH] 钢化完整版图样式逻辑更改
---
UI-Project/src/views/LoginView.vue | 277 +++++++++++++++++++++++++++++++------------------------
1 files changed, 156 insertions(+), 121 deletions(-)
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 154d12b..40a1353 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -1,171 +1,202 @@
<script lang="ts" setup>
-import {onMounted, onUnmounted, reactive, ref} from "vue"
-import {useRouter,useRoute } from 'vue-router'
+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 { Lock,Avatar } from '@element-plus/icons-vue'
+import {ElMessage} from 'element-plus'
import request from '@/utils/request'
import userInfo from '@/stores/userInfo'
-import { sendSock, createWebSocket, closeSock,global_callback1 } from "@/utils/webSocket"
-
-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('/user/login',
- userForm).then((res) => {
- if(res['code']==200){
- store.$patch({user:res.data})
-
- router.push('/main')
- ElMessage.success(`鐧诲綍鎴愬姛`)
- } else {
- ElMessage.error(res['msg'])
- loginLoadings.value=false
- return false
- }
- }).catch(error => {
- ElMessage.error("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
- loginLoadings.value=false
- return false
- })
+ loginLoadings.value = true
+ request
+ // .post('/loadGlass/userinfo/login', userForm)
+ .post('/loadGlass/sys/user/login', userForm)
+ .then((res) => {
+ if (res['code'] == 200) {
+ store.$patch({user: res.data})
+ router.push('/main')
+ ElMessage.success(t('login.loginSuccessful'))
+ } else {
+ // ElMessage.error(res['msg'])
+ store.$patch({
+ user: null,
+ })
+ 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">
- <div id="img-div">
- <img id="img-pic" src="@/assets/img.png" alt="">
+ <!-- <img
+ style="width: 100%; height: 99vh"
+ src="../../src/assets/background.jpg"
+ /> -->
+ <div>
+ <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);">
+ {{ $t('northglassMESsystem') }}
+ </div>
</div>
<div id="div-login">
- <h2>鍖楃幓鑷姩鍖朎RP绠$悊绯荤粺</h2>
- <el-form
- @submit.native.prevent
- ref="ruleFormRef"
- :model="userForm"
- status-icon
- :rules="rules"
- >
- <el-form-item label="鐢ㄦ埛锛�" prop="userId">
- <el-input
- v-model="userForm.userId"
- type="text"
- autocomplete="off"
- :prefix-icon="Avatar"
- placeholder="璇疯緭鍏ヤ綘鐨勮处鍙�"
- />
- </el-form-item>
- <el-form-item label="瀵嗙爜锛�" prop="pass">
- <el-input
- v-model="userForm.pass"
- type="password"
- autocomplete="off"
- :prefix-icon="Lock"
- placeholder="璇疯緭鍏ヤ綘鐨勫瘑鐮�"
- />
- </el-form-item>
- <el-form-item id="submitForm">
- <el-button
- :loading="registerLoadings"
- type="primary"
- @click="register"
- >娉ㄥ唽
- </el-button>
- <el-button
- :loading="loginLoadings"
- type="primary"
- native-type="submit"
- @click="submitForm(ruleFormRef)"
- @keyup.enter.native="keyDown(e)"
- >鐧诲綍
- </el-button>
-
- </el-form-item>
+ <!--璇█鍒囨崲鎸夐挳-->
+ <el-select
+ @change="changeLanguage"
+ v-model="language"
+ placeholder=" "
+ style="float: right;width: 9rem">
+ <el-option value="zh" label="涓枃" />
+ <el-option value="py" label="袪褍褋褋泻懈泄 褟蟹褘泻" />
+ <el-option value="en" label="English" />
+ </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{
- //background-color: #1890FF;
+.mainDiv {
overflow: hidden;
min-width: 718px;
+ background-image: url('../../src/assets/background.jpg');
}
-#main-login{
+
+#main-login {
margin: 150px auto 0 auto;
- height: 60vh;
- width: 70vw;
-
- //background-color: #f2f2f2;
+ height: 70vh;
+ width: 80vw;
}
-#img-div{
+
+#img-div {
width: 55%;
height: 100%;
display: flex;
@@ -173,37 +204,41 @@
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; */
background-color: #fff;
float: right;
width: 40%;
- height: 80%;
- border-radius: 12px;
+ height: 60%;
min-width: 318px;
- box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
+ border-radius: 4px;
+ box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0), 0 6px 5px 0 rgba(0, 0, 0, 0.19);
}
-h2{
- color: #1890FF;
- width: 100%;
- text-align: center;
- margin-top: 20%;
+
+#center {
+ margin-top: -30px;
}
-.el-form{
- width: 50%;
- margin: 5% auto auto;
+
+.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