From d7f48693762cb5c3bc3334576034db7fbb45c15f Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Thu, 25 Mar 2021 08:58:43 +0800 Subject: [PATCH] 优化 rem to px 转换计算 --- forms/form/CFormItem.vue | 41 ++++++++++++++++++++++------------------- 1 files changed, 22 insertions(+), 19 deletions(-) diff --git a/forms/form/CFormItem.vue b/forms/form/CFormItem.vue index ffbf570..6a2fbdf 100644 --- a/forms/form/CFormItem.vue +++ b/forms/form/CFormItem.vue @@ -6,7 +6,7 @@ <template> <view class="c-form-item"> - <slot :itemData="itemData" /> + <slot :itemRes="itemRes" /> </view> </template> @@ -21,7 +21,7 @@ label: String, required: Boolean, rules: Array, - formData: Object, + formRes: Object, }, data() { return { @@ -29,14 +29,14 @@ }; }, computed: { - itemData() { + itemRes() { return { - formData: this.formData, + formData: this.formRes.formData, name: this.name, label: this.label, required: this.isRequired, error: this.error, - onChange: (evt) => this.onChange(evt), + onChange: evt => this.onChange(evt), }; }, isRequired() { @@ -66,15 +66,16 @@ !hasOwn.call(evt, 'constructor') && !hasOwn.call(evt.constructor.prototype, 'isPrototypeOf') ) { - throw new Error('错误的表单项 onChange 参数类型!(At: ' + this.name + ')'); - return; + throw new Error( + '错误的表单项 onChange 参数类型!(At: ' + this.name + ')' + ); } } // 未改变值不触发 - if (this.formData[this.name] === evt) { + if (this.formRes.formData[this.name] === evt) { return; } - this.formData.$handleChange({ + this.formRes.$handleChange({ [this.name]: evt, }); }, @@ -83,7 +84,7 @@ this.$nextTick(() => { // 未设置验证 if (!this.required && !this.rules) { - this.formData.$regItemValidator(this.name, () => { + this.formRes.$regItemValidator(this.name, validateType => { this.error = false; return Promise.resolve({ name: this.name, @@ -105,13 +106,13 @@ validator.messages(validateMsgs); // 注册验证 let errTimer = null; - this.formData.$regItemValidator(this.name, () => { + this.formRes.$regItemValidator(this.name, validateType => { return validator .validate({ - [this.name]: this.formData[this.name], + [this.name]: this.formRes.formData[this.name], }) .then( - (res) => { + res => { this.error = false; return { name: this.name, @@ -119,11 +120,13 @@ }; }, ({ errors, fields }) => { - this.error = true; - clearTimeout(errTimer); - errTimer = setTimeout(() => { - this.error = false; - }, 5000); + if (validateType !== 'msgOnly') { + this.error = true; + clearTimeout(errTimer); + errTimer = setTimeout(() => { + this.error = false; + }, 5000); + } return { name: this.name, passed: false, @@ -139,7 +142,7 @@ }); }, beforeDestroy() { - this.formData.$regItemValidator(this.name, null); + this.formRes.$regItemValidator(this.name, null); }, }; </script> \ No newline at end of file -- Gitblit v1.9.1