From 86688394d2421727e27578ab6a97496b451d1cc6 Mon Sep 17 00:00:00 2001 From: neverland Date: Sun, 22 Oct 2023 08:07:42 +0800 Subject: [PATCH] feat(Form): add required prop and support auto display (#12380) * feat(Form): add required prop and support auto display * fix: type * chore: fix * chore: shorter --- packages/vant/src/cell/Cell.tsx | 7 +- .../test/__snapshots__/demo-ssr.spec.ts.snap | 2 +- .../test/__snapshots__/demo.spec.ts.snap | 2 +- packages/vant/src/field/Field.tsx | 17 +-- packages/vant/src/field/README.md | 50 +++++-- packages/vant/src/field/README.zh-CN.md | 48 ++++++- packages/vant/src/field/demo/ErrorInfo.vue | 2 - packages/vant/src/field/demo/Required.vue | 65 +++++++++ packages/vant/src/field/demo/index.vue | 2 + .../test/__snapshots__/demo-ssr.spec.ts.snap | 128 +++++++++++++++++- .../test/__snapshots__/demo.spec.ts.snap | 98 +++++++++++++- packages/vant/src/field/test/index.spec.js | 5 +- packages/vant/src/field/types.ts | 1 + packages/vant/src/form/Form.tsx | 1 + packages/vant/src/form/README.md | 1 + packages/vant/src/form/README.zh-CN.md | 1 + .../test/__snapshots__/demo-ssr.spec.ts.snap | 4 +- .../form/test/__snapshots__/demo.spec.ts.snap | 4 +- 18 files changed, 403 insertions(+), 35 deletions(-) create mode 100644 packages/vant/src/field/demo/Required.vue diff --git a/packages/vant/src/cell/Cell.tsx b/packages/vant/src/cell/Cell.tsx index c1cc9f51a..e4ea70d25 100644 --- a/packages/vant/src/cell/Cell.tsx +++ b/packages/vant/src/cell/Cell.tsx @@ -38,13 +38,16 @@ export const cellSharedProps = { center: Boolean, isLink: Boolean, border: truthProp, - required: Boolean, iconPrefix: String, valueClass: unknownProp, labelClass: unknownProp, titleClass: unknownProp, titleStyle: null as unknown as PropType, arrowDirection: String as PropType, + required: { + type: [Boolean, String] as PropType, + default: null, + }, clickable: { type: Boolean as PropType, default: null, @@ -147,7 +150,7 @@ export default defineComponent({ const classes: Record = { center, - required, + required: !!required, clickable, borderless: !border, }; diff --git a/packages/vant/src/contact-edit/test/__snapshots__/demo-ssr.spec.ts.snap b/packages/vant/src/contact-edit/test/__snapshots__/demo-ssr.spec.ts.snap index 33ec0b423..df9992547 100644 --- a/packages/vant/src/contact-edit/test/__snapshots__/demo-ssr.spec.ts.snap +++ b/packages/vant/src/contact-edit/test/__snapshots__/demo-ssr.spec.ts.snap @@ -8,7 +8,7 @@ exports[`should render demo and match snapshot 1`] = `
diff --git a/packages/vant/src/contact-edit/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/contact-edit/test/__snapshots__/demo.spec.ts.snap index ef89c1148..8200abbb9 100644 --- a/packages/vant/src/contact-edit/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/contact-edit/test/__snapshots__/demo.spec.ts.snap @@ -5,7 +5,7 @@ exports[`should render demo and match snapshot 1`] = `
-
+
+ +
+ +
+ +
+
+ + +
+
+ +
+ +
+
+
+
+
+ + +
+
+ +
+ +
+
+
+
+
+
+ +
+ + + +
+
+ + +
+
+ +
+ +
+
+
+
+
+ + +
+
+ +
+ +
+
+
+ +
+
@@ -362,7 +486,7 @@ exports[`should render demo and match snapshot 1`] = `
diff --git a/packages/vant/src/field/test/__snapshots__/demo.spec.ts.snap b/packages/vant/src/field/test/__snapshots__/demo.spec.ts.snap index c45110fc0..da7d03c49 100644 --- a/packages/vant/src/field/test/__snapshots__/demo.spec.ts.snap +++ b/packages/vant/src/field/test/__snapshots__/demo.spec.ts.snap @@ -247,7 +247,7 @@ exports[`should render demo and match snapshot 1`] = `
-
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+ +
-
+