From b6b6e38c45b8181c217b26eaedc451dc26e6482f Mon Sep 17 00:00:00 2001 From: chenjiahan Date: Wed, 19 Aug 2020 17:50:34 +0800 Subject: [PATCH] feat: migrate Form component --- components.js | 1 + src/checkbox/index.js | 2 ++ src/field/index.js | 3 ++- src/form/demo/FieldTypeArea.vue | 4 ++-- src/form/demo/FieldTypeCalendar.vue | 4 ++-- src/form/demo/FieldTypeDatetimePicker.vue | 4 ++-- src/form/demo/FieldTypePicker.vue | 4 ++-- src/form/index.js | 9 ++++++--- src/mixins/checkbox.js | 3 +-- src/mixins/field.js | 1 + src/mixins/relation.js | 2 ++ vant.config.js | 16 ++++++++-------- 12 files changed, 31 insertions(+), 22 deletions(-) diff --git a/components.js b/components.js index b2ebf7b8d..55da3420b 100644 --- a/components.js +++ b/components.js @@ -81,4 +81,5 @@ module.exports = [ 'goods-action-icon', 'goods-action-button', 'address-edit', + 'form', ]; diff --git a/src/checkbox/index.js b/src/checkbox/index.js index 4ad225a3a..880e1e286 100644 --- a/src/checkbox/index.js +++ b/src/checkbox/index.js @@ -1,10 +1,12 @@ import { createNamespace } from '../utils'; +import { FieldMixin } from '../mixins/field'; import { CheckboxMixin } from '../mixins/checkbox'; const [createComponent, bem] = createNamespace('checkbox'); export default createComponent({ mixins: [ + FieldMixin, CheckboxMixin({ bem, role: 'checkbox', diff --git a/src/field/index.js b/src/field/index.js index 72bf54d42..bae9f3289 100644 --- a/src/field/index.js +++ b/src/field/index.js @@ -27,6 +27,7 @@ export default createComponent({ inject: { vanForm: { + from: 'vanForm', default: null, }, }, @@ -152,7 +153,7 @@ export default createComponent({ formValue() { if (this.children && this.$slots.input) { - return this.children.modelValue || this.children.value; + return this.children.modelValue; } return this.modelValue; }, diff --git a/src/form/demo/FieldTypeArea.vue b/src/form/demo/FieldTypeArea.vue index 73e96d06e..f0e0901ed 100644 --- a/src/form/demo/FieldTypeArea.vue +++ b/src/form/demo/FieldTypeArea.vue @@ -3,14 +3,14 @@ readonly clickable name="area" - :value="value" :label="t('picker')" + :model-value="value" :placeholder="t('placeholder')" @click="showArea = true" >