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