From a951e53a3d35c67e9a97aca03558ab7721edcad3 Mon Sep 17 00:00:00 2001
From: china <527956374@qq.com>
Date: 星期一, 17 四月 2023 11:25:06 +0800
Subject: [PATCH] 拼图滑块验证

---
 src/views/user/login.vue |   53 +++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 37 insertions(+), 16 deletions(-)

diff --git a/src/views/user/login.vue b/src/views/user/login.vue
index f36717b..6e8be39 100644
--- a/src/views/user/login.vue
+++ b/src/views/user/login.vue
@@ -42,8 +42,8 @@
       </el-form-item>
       <el-form-item v-if="loginForm.verifyType==='jigsaw'">
 <!--        <drag-verify @success="verifyTrue" ref="verify"/>-->
-        <transition duration="1000" name="el-fade-in">
-          <jigsaw-verify v-if="loginForm.verifyType==='jigsaw'" :left="left" :top="top" @hide="verifyFalse" @success="handleLogin" />
+        <transition duration="1000" name="el-fade-in" v-if="verify">
+          <jigsaw-verify v-if="loginForm.verifyType==='jigsaw'" :left="left" :top="top" @hide="verifyFalse" @success="jigsawLogin" />
         </transition>
       </el-form-item>
       <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">璁颁綇瀵嗙爜</el-checkbox>
@@ -86,8 +86,8 @@
     return {
       verify:false,  // 婊戝姩鏍¢獙
       codeUrl: "",
-      left: null,    // 鎷煎浘楠岃瘉鐮佷綅缃�
-      top: null,     // 鎷煎浘楠岃瘉鐮佷綅缃�
+      left: '50%',    // 鎷煎浘楠岃瘉鐮佷綅缃�
+      top: '220px',     // 鎷煎浘楠岃瘉鐮佷綅缃�
       loginForm: {
         username: 'supervisor',
         password: '123456',
@@ -177,19 +177,45 @@
     },
     handleLogin(param) {
       if(this.loginForm.verifyType==='jigsaw' && param != null){
-        // console.log(param);
-        // console.log("鎷煎浘鎻愪氦鍙傛暟");
         // 鎷煎浘楠岃瘉鐮佹椂锛岃皟鐢ㄦ柟浼氫紶鍏ode锛堢敤鎴烽獙璇佺爜浣嶇疆锛夛紝uuid
         this.loginForm.code = param.x;
         this.loginForm.uuid = param.uuid;
+        this.verify = true
+      }else{
+        this.$refs.loginForm.validate(valid => {
+          if (valid) {
+            if (this.loginForm.verifyType==='slide' && !this.verify) {
+              this.$message.error('璇峰厛瀹屾垚楠岃瘉')
+              this.loading = false
+              return
+            }
+            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');
+            }
+            // console.log(this.loginForm);
+            // console.log("-----------------------------");
+            this.$store.dispatch("Login", this.loginForm).then(() => {
+              this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
+            }).catch(() => {
+              this.loading = false;
+              if (this.captchaEnabled && this.loginForm.verifyType==='code') {
+                this.getCode();
+              }
+            });
+          }
+        });
       }
+    },
+    jigsawLogin(){
       this.$refs.loginForm.validate(valid => {
         if (valid) {
-          if (this.loginForm.verifyType==='slide' && !this.verify) {
-            this.$message.error('璇峰厛瀹屾垚楠岃瘉')
-            this.loading = false
-            return
-          }
           this.loading = true;
           if (this.loginForm.rememberMe) {
             Cookies.set("username", this.loginForm.username, { expires: 30 });
@@ -200,15 +226,10 @@
             Cookies.remove("password");
             Cookies.remove('rememberMe');
           }
-          // console.log(this.loginForm);
-          // console.log("-----------------------------");
           this.$store.dispatch("Login", this.loginForm).then(() => {
             this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
           }).catch(() => {
             this.loading = false;
-            if (this.captchaEnabled && this.loginForm.verifyType==='code') {
-              this.getCode();
-            }
           });
         }
       });

--
Gitblit v1.9.1