vue的rule中使用validator,异步请求验证

export default {
  data() {
    return {
      form: {
        code: "",
        name: "",
        enable: true
      },
      rules: {
        code: [
          {
            required: true,
            validator: (rule, value, callback) => {
              if (value != "") {
                httpGet(`/cyclops/rwlx/checkCode/?code=${value}`)
                  .then(rst => {
                    if (rst) {
                      callback();
                    } else {
                      callback(new Error("审查任务类型编码已存在,请重新输入"));
                    }
                  })
                  .catch(e => callback(new Error(e.message)));
              } else {
                callback(new Error("请输入审查任务类型编码"));
              }
            },
            trigger: "change"
          }
        ],
..............................

注意所有的情况都需要回调callback(),如果触发不了校验,可能是漏掉了某种情况的回调callback()。