china
2023-04-17 2a125174ea501d53c59f627347bdec9012928960
拼图滑块验证
1个文件已修改
35 ■■■■ 已修改文件
src/views/user/login.vue 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/login.vue
@@ -43,7 +43,7 @@
      <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="jigsawLogin" />
          <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>
@@ -176,12 +176,17 @@
      this.loginForm.rememberMe = rememberMe === undefined ? this.loginForm.rememberMe : rememberMe
    },
    handleLogin(param) {
      if(this.loginForm.verifyType==='jigsaw' && param != null){
      // 拼图验证  没有返回param时候
      if(this.loginForm.verifyType==='jigsaw' && !param.uuid){
        this.verify = true
        return false
      }
      // 拼图验证  返回param时候
      if(this.loginForm.verifyType==='jigsaw' && param.uuid){
        // 拼图验证码时,调用方会传入code(用户验证码位置),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) {
@@ -208,28 +213,6 @@
              if (this.captchaEnabled && this.loginForm.verifyType==='code') {
                this.getCode();
              }
            });
          }
        });
      }
    },
    jigsawLogin(){
      this.$refs.loginForm.validate(valid => {
        if (valid) {
          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');
          }
          this.$store.dispatch("Login", this.loginForm).then(() => {
            this.$router.push({ path: this.redirect || "/" }).catch(()=>{});
          }).catch(() => {
            this.loading = false;
          });
        }
      });