| | |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <!-- <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 v-if="loginForm.verifyType==='code' && 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-form-item v-if="loginForm.verifyType==='slide'"> |
| | | <drag-verify @success="verifyTrue" ref="verify"/> |
| | | </el-form-item> |
| | | <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getCodeImg } from "@/api/login"; |
| | | import dragVerify from './dragVerify/index.vue'// 滑动验证组件 |
| | | import Cookies from "js-cookie"; |
| | | import { encrypt, decrypt } from '@/utils/jsencrypt' |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | verify:false, |
| | | verify:false, // 滑动校验 |
| | | codeUrl: "", |
| | | loginForm: { |
| | | verifyType: 'code',// 'code': 验证码 'slide':滑块 'jigsaw':拼图 |
| | | username: "supervisor", |
| | | password: "123456", |
| | | rememberMe: false, |
| | | code:'', |
| | | uuid: "" |
| | | }, |
| | | loginRules: { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getCode(); |
| | | if(this.loginForm.verifyType==='code'){ |
| | | this.getCode(); |
| | | } |
| | | this.getCookie(); |
| | | }, |
| | | methods: { |
| | |
| | | const username = Cookies.get("username"); |
| | | const password = Cookies.get("password"); |
| | | 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) |
| | | }; |
| | | this.loginForm.username = username === undefined ? this.loginForm.username : username |
| | | this.loginForm.password = password === undefined ? this.loginForm.password : password |
| | | this.loginForm.rememberMe = rememberMe === undefined ? this.loginForm.rememberMe : rememberMe |
| | | }, |
| | | handleLogin() { |
| | | this.$refs.loginForm.validate(valid => { |
| | | if (valid) { |
| | | if (!this.verify) { |
| | | if (this.loginForm.verifyType==='slide' && !this.verify) { |
| | | this.$message.error('请先完成验证') |
| | | this.loading = false |
| | | return |
| | |
| | | this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | // if (this.captchaEnabled) { |
| | | // this.getCode(); |
| | | // } |
| | | if (this.captchaEnabled && this.loginForm.verifyType==='code') { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | } |
| | | }); |