shikeying
2023-04-07 c192f834c4e092bc7c0f2722c343c25c1be619ab
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">
          <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: null,    // 拼图验证码位置
      top: null,     // 拼图验证码位置
      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'){
        // 不需要验证码,但仍需要请求接口获取uuid
@@ -160,7 +175,13 @@
      this.loginForm.password = password === undefined ? this.loginForm.password : password
      this.loginForm.rememberMe = rememberMe === undefined ? this.loginForm.rememberMe : rememberMe
    },
    handleLogin() {
    handleLogin(param) {
      // console.log(param);
      if(param != null){
        // 拼图验证码时,调用方会传入code(用户验证码位置),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) {