From 8f540e3257e903deeb9fdba22d45c938057cb914 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Mon, 25 Jan 2021 21:30:08 +0800 Subject: [PATCH] 表单预验证的项,改由指定字段决定 --- forms/form/CForm.vue | 23 ++++++++++++----------- 1 files changed, 12 insertions(+), 11 deletions(-) diff --git a/forms/form/CForm.vue b/forms/form/CForm.vue index e50dd75..6008449 100644 --- a/forms/form/CForm.vue +++ b/forms/form/CForm.vue @@ -34,14 +34,13 @@ methods: { handleSubmit() { const checklist = []; - // 所有项验证 - Object.keys(this.validators).forEach(key => { + Object.keys(this.validators).forEach((key) => { // 仍有效的验证器 if (this.validators[key]) { checklist.push(this.validators[key]()); } }); - Promise.all(checklist).then(validations => { + Promise.all(checklist).then((validations) => { for (let validation of validations) { // 第一个不通过项提示 if (!validation.passed) { @@ -58,18 +57,20 @@ this.onFinish && this.onFinish(); }); }, - preCheckValidators(keys, callback) { + preCheckValidators(callback) { const checklist = []; - // 从选定的项中验证 - keys.forEach(key => { - // 效的验证器 + Object.keys(this.validators).forEach((key) => { + // 仍有效的验证器 if (this.validators[key]) { checklist.push(this.validators[key]('msgOnly')); } }); - Promise.all(checklist).then(validations => { + Promise.all(checklist).then((validations) => { for (let validation of validations) { - // 第一个不通过项提示 + // 跳过同意协议 + if (validation.name === '$agreement') { + continue; + } if (!validation.passed) { Taro.showToast({ title: validation.msg, @@ -82,7 +83,7 @@ return; } } - // 所有检查通过 + // 检查通过 callback && callback(true); }); }, @@ -90,7 +91,7 @@ mounted() { // 当表单项变化时 this.formRes.$handleChange = (evt = []) => { - Object.keys(evt).forEach(key => { + Object.keys(evt).forEach((key) => { // 直接改值 if (typeof this.formRes.formData[key] === 'undefined') { this.$set(this.formRes.formData, key, evt[key]); -- Gitblit v1.9.1