china
2023-04-17 2a125174ea501d53c59f627347bdec9012928960
src/views/user/login.vue
@@ -42,7 +42,7 @@
      </el-form-item>
      <el-form-item v-if="loginForm.verifyType==='jigsaw'">
<!--        <drag-verify @success="verifyTrue" ref="verify"/>-->
        <transition duration="1000" name="el-fade-in">
        <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>
@@ -86,8 +86,8 @@
    return {
      verify:false,  // 滑动校验
      codeUrl: "",
      left: null,    // 拼图验证码位置
      top: null,     // 拼图验证码位置
      left: '50%',    // 拼图验证码位置
      top: '220px',     // 拼图验证码位置
      loginForm: {
        username: 'supervisor',
        password: '123456',
@@ -176,41 +176,46 @@
      this.loginForm.rememberMe = rememberMe === undefined ? this.loginForm.rememberMe : rememberMe
    },
    handleLogin(param) {
      // console.log(param);
      if(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.$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();
              }
            });
          }
        });
    }
  }
};