From e5454b769d44a34af423bf87ac8a740bf8c20341 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期二, 29 四月 2025 13:25:29 +0800 Subject: [PATCH] Merge branch 'dev' into dev_tides --- src/views/login.vue | 136 ++++++++++++++++++++++----------------------- 1 files changed, 66 insertions(+), 70 deletions(-) diff --git a/src/views/login.vue b/src/views/login.vue index 107f37f..ad52f89 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -5,52 +5,32 @@ </div> <div class="rightForm"> <div class="title_big">娆㈣繋鎮ㄧ櫥褰曪紒</div> - <div class="title_small">LIMS瀹為獙瀹ょ鐞嗙郴缁�</div> + <div class="title_small">瑁呭LIMS瀹為獙瀹ょ鐞嗙郴缁�</div> <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> <el-form-item prop="username"> - <el-input - v-model="loginForm.username" - type="text" - auto-complete="off" - placeholder="璐﹀彿" - > + <el-input v-model="loginForm.username" type="text" auto-complete="off" placeholder="璐﹀彿"> <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> </el-input> </el-form-item> <el-form-item prop="password"> - <el-input - v-model="loginForm.password" - type="password" - auto-complete="off" - placeholder="瀵嗙爜" - @keyup.enter.native="handleLogin" - > + <el-input v-model="loginForm.password" type="password" auto-complete="off" placeholder="瀵嗙爜" + @keyup.enter.native="handleLogin" show-password> <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> </el-input> </el-form-item> - <el-form-item prop="code" v-if="captchaEnabled"> - <el-input - v-model="loginForm.code" - auto-complete="off" - placeholder="楠岃瘉鐮�" - style="width: 63%" - @keyup.enter.native="handleLogin" - > - <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> - </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 prop="code" v-if="captchaEnabled">--> +<!-- <el-input v-model="loginForm.code" auto-complete="off" placeholder="楠岃瘉鐮�" style="width: 63%"--> +<!-- @keyup.enter.native="handleLogin">--> +<!-- <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />--> +<!-- </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="medium" - type="primary" - style="width:100%;" - @click.native.prevent="handleLogin" - > + <el-button :loading="loading" size="medium" type="primary" style="width:100%;" + @click.native.prevent="handleLogin"> <span v-if="!loading">鐧� 褰�</span> <span v-else>鐧� 褰� 涓�...</span> </el-button> @@ -58,18 +38,18 @@ <router-link class="link-type" :to="'/register'">绔嬪嵆娉ㄥ唽</router-link> </div> </el-form-item> + <el-button v-if="true" type="primary" plain @click="goLogin">闆嗗洟闆嗘垚鐧诲綍</el-button> </el-form> </div> <!-- 搴曢儴 --> -<!-- <div class="el-login-footer">--> -<!-- <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span>--> -<!-- </div>--> + <!-- <div class="el-login-footer">--> + <!-- <span>Copyright 漏 2018-2025 ruoyi.vip All Rights Reserved.</span>--> + <!-- </div>--> </div> </template> <script> -import { getCodeImg } from "@/api/login"; -import Cookies from "js-cookie"; +import { getCodeImg, getSsoAuthUrl } from "@/api/login"; import { encrypt, decrypt } from '@/utils/jsencrypt' export default { @@ -78,8 +58,8 @@ return { codeUrl: "", loginForm: { - username: "admin", - password: "admin123", + username: "ZT-", + password: "", rememberMe: false, code: "", uuid: "" @@ -103,17 +83,22 @@ }, watch: { $route: { - handler: function(route) { + handler: function (route) { this.redirect = route.query && route.query.redirect; }, immediate: true } }, created() { - this.getCode(); - this.getCookie(); + // this.getCode(); + // this.getCookie(); }, methods: { + async goLogin() { + await getSsoAuthUrl().then(res => { + window.location.href = res.data + }) + }, getCode() { getCodeImg().then(res => { this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; @@ -124,9 +109,9 @@ }); }, getCookie() { - const username = Cookies.get("username"); - const password = Cookies.get("password"); - const rememberMe = Cookies.get('rememberMe') + const username = localStorage.getItem("username"); + const password = localStorage.getItem("password"); + const rememberMe = localStorage.getItem('rememberMe') this.loginForm = { username: username === undefined ? this.loginForm.username : username, password: password === undefined ? this.loginForm.password : decrypt(password), @@ -137,22 +122,22 @@ this.$refs.loginForm.validate(valid => { if (valid) { this.loading = true; - if (this.loginForm.rememberMe) { - Cookies.set("username", this.loginForm.username, { expires: 30 }); - Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); - Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); - } else { - Cookies.remove("username"); - Cookies.remove("password"); - Cookies.remove('rememberMe'); - } + // if (this.loginForm.rememberMe) { + // localStorage.setItem("username", this.loginForm.username, { expires: 30 }); + // localStorage.setItem("password", encrypt(this.loginForm.password), { expires: 30 }); + // localStorage.setItem('rememberMe', this.loginForm.rememberMe, { expires: 30 }); + // } else { + // localStorage.removeItem("username"); + // localStorage.removeItem("password"); + // localStorage.removeItem('rememberMe'); + // } this.$store.dispatch("Login", this.loginForm).then(() => { - this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); + this.$router.push({ path: "/" }).catch(() => { }); }).catch(() => { this.loading = false; - if (this.captchaEnabled) { - this.getCode(); - } + // if (this.captchaEnabled) { + // this.getCode(); + // } }); } }); @@ -162,24 +147,26 @@ </script> <style rel="stylesheet/scss" lang="scss"> -//.login { -// display: flex; -// justify-content: center; -// align-items: center; -// height: 100%; -// background-image: url("../assets/images/login-background.jpg"); -// background-size: cover; -//} +.login { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + background-image: url("../assets/images/login-background.jpg"); + background-size: cover; +} .login { width: 100vw; height: 100vh; display: flex; background-image: url("~@/assets/images/login.png"); background-size: 100% 100%; + .leftImg { width: calc(100% - 500px); height: 100%; overflow: hidden; + img { width: 100%; min-height: 100%; @@ -193,6 +180,7 @@ align-items: center; flex-direction: column; justify-content: center; + .title_big { color: #004EA2; font-size: 40px; @@ -203,30 +191,37 @@ color: #004EA2; font-size: 24px; } + .login-form { border-radius: 6px; background: #ffffff; width: 400px; padding: 25px 25px 5px 25px; + .el-input { height: 38px; + input { height: 38px; } } + .input-icon { height: 39px; width: 14px; margin-left: 2px; } + .login-code { width: 33%; height: 38px; float: right; + img { cursor: pointer; vertical-align: middle; } + .login-code-img { height: 38px; } @@ -234,6 +229,7 @@ } } } + .el-login-footer { height: 40px; line-height: 40px; -- Gitblit v1.9.3