From 2a125174ea501d53c59f627347bdec9012928960 Mon Sep 17 00:00:00 2001 From: china <527956374@qq.com> Date: 星期一, 17 四月 2023 13:55:52 +0800 Subject: [PATCH] 拼图滑块验证 --- src/views/user/login.vue | 88 ++++++++++++++++++++++++++++--------------- 1 files changed, 57 insertions(+), 31 deletions(-) diff --git a/src/views/user/login.vue b/src/views/user/login.vue index 53cec33..3096f7a 100644 --- a/src/views/user/login.vue +++ b/src/views/user/login.vue @@ -40,6 +40,12 @@ <el-form-item v-if="loginForm.verifyType==='slide'"> <drag-verify @success="verifyTrue" ref="verify"/> </el-form-item> + <el-form-item v-if="loginForm.verifyType==='jigsaw'"> +<!-- <drag-verify @success="verifyTrue" ref="verify"/>--> + <transition duration="1000" name="el-fade-in" v-if="verify"> + <jigsaw-verify v-if="loginForm.verifyType==='jigsaw'" :left="left" :top="top" @hide="verifyFalse" @success="handleLogin" /> + </transition> + </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 @@ -67,24 +73,28 @@ <script> import {getCodeImg, getCodeNone} from "@/api/login"; import dragVerify from './dragVerify/index.vue' // 婊戝姩楠岃瘉缁勪欢 + import jigsawVerify from '@/views/components/verify' // 鎷煎浘楠岃瘉缁勪欢锛�2023-04-06 import Cookies from "js-cookie"; - import {encrypt} from '@/utils/jsencrypt' + // import {encrypt} from '@/utils/jsencrypt' export default { components: { - 'drag-verify': dragVerify + 'drag-verify': dragVerify, + 'jigsaw-verify': jigsawVerify }, data() { return { verify:false, // 婊戝姩鏍¢獙 codeUrl: "", + left: '50%', // 鎷煎浘楠岃瘉鐮佷綅缃� + top: '220px', // 鎷煎浘楠岃瘉鐮佷綅缃� loginForm: { username: 'supervisor', password: '123456', code:'', uuid: '', loginType: 'user_pass', // 鐢ㄦ埛鍚嶃�佸瘑鐮佹柟寮忕櫥褰� - verifyType: 'slide'// 'code': 楠岃瘉鐮� 'slide':婊戝潡 'jigsaw':鎷煎浘 + verifyType: 'jigsaw'// 'code': 楠岃瘉鐮� 'slide':婊戝潡 'jigsaw':鎷煎浘 // rememberMe: false, }, loginRules: { @@ -122,6 +132,9 @@ verifyTrue () { this.verify = true }, + verifyFalse() { + this.verify = false + }, getCode() { if(this.loginForm.verifyType==='code'){ getCodeImg().then(res => { @@ -141,6 +154,8 @@ } else if(this.loginForm.verifyType==='jigsaw'){ // 鎷煎浘鏂瑰紡锛岀湅闇�瑕佸暐鍙傛暟锛屾殏鏈疄鐜� + console.log('jigsaw...'); + this.loginForm.code = 'jigsaw'; // 濉厖code榛樿鍊硷紝鍚﹀垯楠岃瘉涓嶉�氳繃銆�2023-04-06 } else if(this.loginForm.verifyType==='slide' || this.loginForm.verifyType==='sms'){ // 涓嶉渶瑕侀獙璇佺爜锛屼絾浠嶉渶瑕佽姹傛帴鍙h幏鍙杣uid @@ -160,36 +175,47 @@ this.loginForm.password = password === undefined ? this.loginForm.password : password this.loginForm.rememberMe = rememberMe === undefined ? this.loginForm.rememberMe : rememberMe }, - handleLogin() { + handleLogin(param) { + // 鎷煎浘楠岃瘉 娌℃湁杩斿洖param鏃跺�� + if(this.loginForm.verifyType==='jigsaw' && !param.uuid){ + this.verify = true + return false + } + // 鎷煎浘楠岃瘉 杩斿洖param鏃跺�� + if(this.loginForm.verifyType==='jigsaw' && param.uuid){ + // 鎷煎浘楠岃瘉鐮佹椂锛岃皟鐢ㄦ柟浼氫紶鍏ode锛堢敤鎴烽獙璇佺爜浣嶇疆锛夛紝uuid + this.loginForm.code = param.x; + this.loginForm.uuid = param.uuid; + } 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(); + 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(); + } + }); + } + }); } } }; -- Gitblit v1.9.1