From 7cde297f0a99e060aea9bce60d1c121a14ae74d7 Mon Sep 17 00:00:00 2001
From: lixuliang <lixuliang_hd@126.com>
Date: 星期四, 29 八月 2024 17:58:54 +0800
Subject: [PATCH] 新版

---
 src/components/login.vue |  119 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 79 insertions(+), 40 deletions(-)

diff --git a/src/components/login.vue b/src/components/login.vue
index 8c78917..eaa8230 100644
--- a/src/components/login.vue
+++ b/src/components/login.vue
@@ -14,18 +14,12 @@
       hoverMode="grab"
       :clickEffect="false"
       clickMode="bubble"
-    >
-    </vue-particles>
+    ></vue-particles>
     <div class="MapMenu">
-      <iframe
-        id="ifream"
-        style="border: none"
-        width="100%"
-        height="100%"
-        v-bind:src="reportUrl"
-      ></iframe>
+      <iframe id="ifream" style="border: none" width="100%" height="100%" v-bind:src="reportUrl"></iframe>
     </div>
     <div class="title_img">
+      <h1>浣滄垬瀹為獙鏉′欢寤鸿</h1>
       <!-- <img src="../assets/img/lg_03.png" alt /> -->
     </div>
     <div class="login">
@@ -33,9 +27,9 @@
         <span>鐢ㄦ埛鐧诲綍</span>
       </div>
       <el-form :model="loginForm" :rules="rules" ref="loginForm" class="loginForm">
-        <el-form-item prop="uid">
+        <el-form-item prop="username">
           <el-input
-            v-model="loginForm.uid"
+            v-model="loginForm.username"
             placeholder="杈撳叆鐧诲綍璐﹀彿"
             class="nobr"
             size="meddle"
@@ -45,10 +39,10 @@
           </el-input>
         </el-form-item>
 
-        <el-form-item prop="pwd">
+        <el-form-item prop="password">
           <el-input
             show-password
-            v-model="loginForm.pwd"
+            v-model="loginForm.password"
             placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�"
             class="nobr"
             autocomplete="off"
@@ -57,25 +51,22 @@
           </el-input>
         </el-form-item>
 
-        <!-- <el-form-item required>
+        <el-form-item required>
           <el-col :span="18">
             <el-form-item prop="validCode">
-              <el-input v-model="loginForm.validCode" placeholder="璇疯緭鍏ラ獙璇佺爜锛堝拷鐣ュぇ灏忓啓锛�" class="nobr"></el-input>
+              <el-input
+                @keyup.enter.native="submitForm('loginForm')"
+                v-model="loginForm.validCode"
+                placeholder="璇疯緭鍏ラ獙璇佺爜锛堝拷鐣ュぇ灏忓啓锛�"
+                class="nobr"
+              ></el-input>
             </el-form-item>
           </el-col>
 
           <el-col :span="6" align="right">
             <validCode v-model="validCode" ref="refresh" @sendData="getCode"></validCode>
           </el-col>
-        </el-form-item> -->
-        <!-- <el-form-item>
-          <img src="../assets/img/zhengshu.png" alt />
-          <span style="color: black">璇佷功瀹夎涓庢坊鍔犱俊浠荤珯鐐�</span>
         </el-form-item>
-        <el-form-item>
-          <img src="../assets/img/document.png" alt />
-          <span style="color: black">浣跨敤甯姪鏂囨。</span>
-        </el-form-item> -->
         <el-form-item>
           <el-button
             type="primary"
@@ -92,6 +83,7 @@
 
 <script>
 import validCode from "./verificationCode.vue";
+import Cookies from "js-cookie";
 
 export default {
   name: "login",
@@ -122,22 +114,17 @@
         callback();
       }
     };
-    // loginForm: {
-    //     uid: "admin",
-    //     pwd: "Admin@1234_lf",
-    //   }
     return {
       validCode: "",
       loading: false,
       loginForm: {
-        uid: "",
-        pwd: ""
+        username: "",
+        password: ""
       },
       rules: {
-        uid: [{ validator: validUserName, trigger: "blur" }],
-        pwd: [{ validator: validPassword, trigger: "blur" }],
+        username: [{ validator: validUserName, trigger: "blur" }],
+        password: [{ validator: validPassword, trigger: "blur" }],
         validCode: [{ validator: checkValidCode, trigger: "blur" }],
-        showSessionId: "",
         reportUrl: ""
       }
     };
@@ -152,16 +139,65 @@
     startURL() {
       var url = window.location.href;
       var testurl = "";
-      if (url.indexOf("web") != -1) {
-        testurl = "/web";
+      if (url.indexOf("sso") != -1) {
+        testurl = "/sso";
       }
       this.reportUrl =
         window.location.origin + testurl + "/static/mapscreen/index.html";
     },
+    getCookie() {
+      const username = Cookies.get("username");
+      const password = Cookies.get("password");
+
+      this.loginForm = {
+        username: username === undefined ? this.loginForm.username : username,
+        password:
+          password === undefined ? this.loginForm.password : decrypt(password)
+      };
+    },
     // 璐﹀彿瀵嗙爜鐧诲綍
     submitForm(formName) {
-      this.$router.push("/index");
-     
+      this.$refs[formName].validate(valid => {
+        if (valid) {
+          // this.$router.push("/index");
+          const loading = this.$loading({
+            lock: true,
+            text: "Loading",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)"
+          });
+          this.$store
+            .dispatch("Login", this.loginForm)
+            .then(() => {
+              loading.close();
+              this.$router.push("/index");
+              // }
+            })
+            .catch(error => {
+              //缃戠粶瓒呮椂寮傚父澶勭悊
+              loading.close();
+              if (
+                error.code === "ECONNABORTED" ||
+                error.message === "Network Error" ||
+                error.message.includes("timeout")
+              ) {
+                this.$message.error("璇锋眰瓒呮椂锛岃绋嶅悗閲嶈瘯");
+              }
+              return Promise.resolve(error.response);
+              // reject(error);
+            });
+          this.validCode = ""; //娓呯┖楠岃瘉鐮佽緭鍏ユ鐨勫唴瀹�
+          this.refreshVcode(); //鍒锋柊楠岃瘉鐮�
+        } else {
+          this.validCode = ""; //娓呯┖楠岃瘉鐮佽緭鍏ユ鐨勫唴瀹�
+          this.refreshVcode(); //鍒锋柊楠岃瘉鐮�
+
+          return false;
+        }
+      });
+    },
+    refreshVcode() {
+      this.$refs.refresh.createdCode();
     }
   }
 };
@@ -189,10 +225,13 @@
 }
 .title_img {
   position: absolute;
-  left: 20%;
-  top: 8%;
-  width: 20%;
-  /* transform: translateX(-50%); */
+  left: 75%;
+  top: 20%;
+  width: 16em;
+  color: white;
+  font-size: 30px;
+  // background-color: #bfa;
+  transform: translate(-50%, -40%);
 }
 .title_img img {
   width: 100%;

--
Gitblit v1.9.3