From e1c5dd1b209b7f444dd86d686e83d6e9f76b5632 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 14 十月 2025 13:10:32 +0800
Subject: [PATCH] 生产管控-智能排产页面联调
---
src/views/login.vue | 204 +++++++++++++++++++++++++++++---------------------
1 files changed, 119 insertions(+), 85 deletions(-)
diff --git a/src/views/login.vue b/src/views/login.vue
index 8b64e6b..8d85937 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -1,71 +1,76 @@
<template>
<div class="login">
- <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
- <h3 class="title">{{ title }}</h3>
- <el-form-item prop="username">
- <el-input
- v-model="loginForm.username"
- type="text"
- size="large"
- auto-complete="off"
- placeholder="璐﹀彿"
- >
- <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
- </el-input>
- </el-form-item>
- <el-form-item prop="password">
- <el-input
- v-model="loginForm.password"
- type="password"
- size="large"
- auto-complete="off"
- placeholder="瀵嗙爜"
- @keyup.enter="handleLogin"
- >
- <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
- </el-input>
- </el-form-item>
- <el-form-item prop="code" v-if="captchaEnabled">
- <el-input
- v-model="loginForm.code"
- size="large"
- auto-complete="off"
- placeholder="楠岃瘉鐮�"
- style="width: 63%"
- @keyup.enter="handleLogin"
- >
- <template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>
- </el-input>
- <div class="login-code">
- <img :src="codeUrl" @click="getCode" class="login-code-img"/>
- </div>
- </el-form-item>
- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox>
- <el-form-item style="width:100%;">
- <el-button
- :loading="loading"
- size="large"
- type="primary"
- style="width:100%;"
- @click.prevent="handleLogin"
- >
- <span v-if="!loading">鐧� 褰�</span>
- <span v-else>鐧� 褰� 涓�...</span>
- </el-button>
- <div style="float: right;" v-if="register">
- <router-link class="link-type" :to="'/register'">绔嬪嵆娉ㄥ唽</router-link>
- </div>
- </el-form-item>
- </el-form>
- <!-- 搴曢儴 -->
- <div class="el-login-footer">
- <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span>
+ <div class="login-card">
+ <div class="title">{{ title }}</div>
+ <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form" label-position="top">
+ <el-form-item prop="username" label="璐﹀彿">
+ <el-input
+ v-model="loginForm.username"
+ type="text"
+ size="large"
+ clearable
+ auto-complete="off"
+ placeholder="璇疯緭鍏ョ櫥褰曡处鍙�"
+ >
+ <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
+ </el-input>
+ </el-form-item>
+ <el-form-item prop="password" label="瀵嗙爜">
+ <el-input
+ v-model="loginForm.password"
+ type="password"
+ size="large"
+ clearable
+ auto-complete="off"
+ show-password
+ placeholder="璇疯緭鍏ュ瘑鐮�"
+ @keyup.enter="handleLogin"
+ >
+ <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template>
+ </el-input>
+ </el-form-item>
+<!-- <el-form-item prop="code" v-if="captchaEnabled">-->
+<!-- <el-input-->
+<!-- v-model="loginForm.code"-->
+<!-- size="large"-->
+<!-- auto-complete="off"-->
+<!-- placeholder="楠岃瘉鐮�"-->
+<!-- style="width: 63%"-->
+<!-- @keyup.enter="handleLogin"-->
+<!-- >-->
+<!-- <template #prefix><svg-icon icon-class="validCode" class="el-input__icon input-icon" /></template>-->
+<!-- </el-input>-->
+<!-- <div class="login-code">-->
+<!-- <img :src="codeUrl" @click="getCode" class="login-code-img"/>-->
+<!-- </div>-->
+<!-- </el-form-item>-->
+ <el-form-item style="margin-top: 40px">
+ <el-button
+ :loading="loading"
+ size="large"
+ type="primary"
+ style="width:100%;"
+ @click.prevent="handleLogin"
+ >
+ <span v-if="!loading">鐧� 褰�</span>
+ <span v-else>鐧� 褰� 涓�...</span>
+ </el-button>
+ <div style="float: right;" v-if="register">
+ <router-link class="link-type" :to="'/register'">绔嬪嵆娉ㄥ唽</router-link>
+ </div>
+ </el-form-item>
+ <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox>
+ </el-form>
</div>
+ <!-- 搴曢儴 -->
+<!-- <div class="el-login-footer">-->
+<!-- <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span>-->
+<!-- </div>-->
</div>
</template>
<script setup>
-import { getCodeImg } from "@/api/login"
+// import { getCodeImg } from "@/api/login"
import Cookies from "js-cookie"
import { encrypt, decrypt } from "@/utils/jsencrypt"
import useUserStore from '@/store/modules/user'
@@ -80,14 +85,14 @@
username: "admin",
password: "admin123",
rememberMe: false,
- code: "",
+ // code: "",
uuid: ""
})
const loginRules = {
username: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" }],
password: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" }],
- code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }]
+ // code: [{ required: true, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }]
}
const codeUrl = ref("")
@@ -130,23 +135,23 @@
}).catch(() => {
loading.value = false
// 閲嶆柊鑾峰彇楠岃瘉鐮�
- if (captchaEnabled.value) {
- getCode()
- }
+ // if (captchaEnabled.value) {
+ // getCode()
+ // }
})
}
})
}
-function getCode() {
- getCodeImg().then(res => {
- captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
- if (captchaEnabled.value) {
- codeUrl.value = "data:image/gif;base64," + res.img
- loginForm.value.uuid = res.uuid
- }
- })
-}
+// function getCode() {
+// getCodeImg().then(res => {
+// captchaEnabled.value = res.captchaEnabled === undefined ? true : res.captchaEnabled
+// if (captchaEnabled.value) {
+// codeUrl.value = "data:image/gif;base64," + res.img
+// loginForm.value.uuid = res.uuid
+// }
+// })
+// }
function getCookie() {
const username = Cookies.get("username")
@@ -159,30 +164,48 @@
}
}
-getCode()
+// getCode()
getCookie()
</script>
<style lang='scss' scoped>
.login {
- display: flex;
- justify-content: center;
- align-items: center;
+ //display: flex;
+ //justify-content: center;
+ //align-items: center;
height: 100%;
- background-image: url("../assets/images/login-background.jpg");
+ background-image: url("../assets/images/Logo3Back.jpg");
background-size: cover;
+ position: relative;
}
.title {
margin: 0px auto 30px auto;
- text-align: center;
- color: #707070;
+ font-weight: 700;
+ font-size: 32px;
+ color: #165DFF;
+ text-align: center;
}
-
+.login-card {
+ background: #ffffff;
+ padding: 20px;
+ width: 430px;
+ position: absolute;
+ top: 50%;
+ transform: translate(0, -50%);
+ right: 206px;
+}
+@media (max-width: 992px) {
+ .login-card {
+ width: 300px;
+ position: absolute;
+ top: 50%;
+ left: 50%; /* 鏂板姘村钩瀹氫綅鍩哄噯 */
+ transform: translate(-50%, -50%); /* 鍚屾椂澶勭悊XY杞村亸绉� */
+ }
+}
.login-form {
border-radius: 6px;
- background: #ffffff;
width: 400px;
- padding: 25px 25px 5px 25px;
z-index: 1;
.el-input {
height: 40px;
@@ -226,4 +249,15 @@
height: 40px;
padding-left: 12px;
}
+:deep(.el-form-item__label) {
+ font-weight: 400;
+ font-size: 20px;
+ color: #000000;
+}
+@media (max-width: 992px) {
+ :deep(.el-form-item__content) {
+ width: 260px;
+
+ }
+}
</style>
--
Gitblit v1.9.3