From 1c598b62976901679a6ba723d6fbe2dc6771f11f Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 18 三月 2025 19:07:04 +0800
Subject: [PATCH] 检验任务&首页代码迁移

---
 src/views/login.vue |  134 +++++++++++++++++++++++++++++---------------
 1 files changed, 87 insertions(+), 47 deletions(-)

diff --git a/src/views/login.vue b/src/views/login.vue
index 107f37f..a67d503 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -1,12 +1,17 @@
 <template>
   <div class="login">
     <div class="leftImg">
-      <img src="@/assets/images/loginBackground.png" alt="">
+      <img src="@/assets/images/loginBackground.png" alt="" />
     </div>
     <div class="rightForm">
       <div class="title_big">娆㈣繋鎮ㄧ櫥褰曪紒</div>
       <div class="title_small">LIMS瀹為獙瀹ょ鐞嗙郴缁�</div>
-      <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
+      <el-form
+        ref="loginForm"
+        :model="loginForm"
+        :rules="loginRules"
+        class="login-form"
+      >
         <el-form-item prop="username">
           <el-input
             v-model="loginForm.username"
@@ -14,7 +19,11 @@
             auto-complete="off"
             placeholder="璐﹀彿"
           >
-            <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />
+            <svg-icon
+              slot="prefix"
+              icon-class="user"
+              class="el-input__icon input-icon"
+            />
           </el-input>
         </el-form-item>
         <el-form-item prop="password">
@@ -25,7 +34,11 @@
             placeholder="瀵嗙爜"
             @keyup.enter.native="handleLogin"
           >
-            <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" />
+            <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">
@@ -36,41 +49,54 @@
             style="width: 63%"
             @keyup.enter.native="handleLogin"
           >
-            <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" />
+            <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"/>
+            <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-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%;"
+            style="width: 100%"
             @click.native.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 style="float: right" v-if="register">
+            <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 { getCodeImg, getSsoAuthUrl } from "@/api/login";
 import Cookies from "js-cookie";
-import { encrypt, decrypt } from '@/utils/jsencrypt'
+import { encrypt, decrypt } from "@/utils/jsencrypt";
 
 export default {
   name: "Login",
@@ -78,45 +104,51 @@
     return {
       codeUrl: "",
       loginForm: {
-        username: "admin",
-        password: "admin123",
+        username: "",
+        password: "",
         rememberMe: false,
         code: "",
-        uuid: ""
+        uuid: "",
       },
       loginRules: {
         username: [
-          { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" }
+          { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勮处鍙�" },
         ],
         password: [
-          { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" }
+          { required: true, trigger: "blur", message: "璇疯緭鍏ユ偍鐨勫瘑鐮�" },
         ],
-        code: [{ required: false, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }]
+        code: [{ required: false, trigger: "change", message: "璇疯緭鍏ラ獙璇佺爜" }],
       },
       loading: false,
       // 楠岃瘉鐮佸紑鍏�
       captchaEnabled: true,
       // 娉ㄥ唽寮�鍏�
       register: false,
-      redirect: undefined
+      redirect: undefined,
     };
   },
   watch: {
     $route: {
-      handler: function(route) {
+      handler: function (route) {
         this.redirect = route.query && route.query.redirect;
       },
-      immediate: true
-    }
+      immediate: true,
+    },
   },
   created() {
     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;
+      getCodeImg().then((res) => {
+        this.captchaEnabled =
+          res.captchaEnabled === undefined ? true : res.captchaEnabled;
         if (this.captchaEnabled) {
           this.codeUrl = "data:image/gif;base64," + res.img;
           this.loginForm.uuid = res.uuid;
@@ -126,38 +158,46 @@
     getCookie() {
       const username = Cookies.get("username");
       const password = Cookies.get("password");
-      const rememberMe = Cookies.get('rememberMe')
+      const rememberMe = Cookies.get("rememberMe");
       this.loginForm = {
         username: username === undefined ? this.loginForm.username : username,
-        password: password === undefined ? this.loginForm.password : decrypt(password),
-        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
+        password:
+          password === undefined ? this.loginForm.password : decrypt(password),
+        rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
       };
     },
     handleLogin() {
-      this.$refs.loginForm.validate(valid => {
+      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 });
+            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');
+            Cookies.remove("rememberMe");
           }
-          this.$store.dispatch("Login", this.loginForm).then(() => {
-            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
-          }).catch(() => {
-            this.loading = false;
-            if (this.captchaEnabled) {
-              this.getCode();
-            }
-          });
+          this.$store
+            .dispatch("Login", this.loginForm)
+            .then(() => {
+              this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+            })
+            .catch(() => {
+              this.loading = false;
+              if (this.captchaEnabled) {
+                this.getCode();
+              }
+            });
         }
       });
-    }
-  }
+    },
+  },
 };
 </script>
 
@@ -194,13 +234,13 @@
     flex-direction: column;
     justify-content: center;
     .title_big {
-      color: #004EA2;
+      color: #004ea2;
       font-size: 40px;
       margin-bottom: 8px;
     }
 
     .title_small {
-      color: #004EA2;
+      color: #004ea2;
       font-size: 24px;
     }
     .login-form {

--
Gitblit v1.9.3