// 子组件封装方法
 validateForm() {
      return new Promise((resolve, reject) => {
        // 收集所有表单引用
        const forms = [
          this.$refs.guaranteeForm,
          this.$refs.mortgageForm,
          this.$refs.pledgeForm,
        ];

        // 过滤掉不存在的表单
        const validForms = forms.filter((form) => form);

        if (validForms.length === 0) {
          resolve(true);
          return;
        }

        // 存储所有表单的校验结果
        const validResults = [];

        // 遍历所有表单进行校验
        validForms.forEach((form, index) => {
          form.validate((valid) => {
            validResults.push(valid);
            console.log(validResults, "validResults");

            // 当所有表单都校验完成后
            if (validResults.length === validForms.length) {
              // 检查是否所有表单都通过校验
              const allValid = validResults.every((result) => result === true);
              console.log(allValid, "allValid");

              if (allValid) {
                resolve(true);
              } else {
                resolve(false);
              }
            }
          });
        });
      });
    }

// 父组件调用
		this.$refs['xxx']
          .validateForm()
          .then(() => {
            // console.log("通过");
            // 校验通过,执行后续操作
 
          })
          .catch((error) => {
            // 校验失败逻辑
   
          });
Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐