@regenbio/regenbio-components-react 1.2.14 → 1.2.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codecov.yml +6 -0
- package/.dumi/app.tsx +1 -0
- package/.dumi/tsconfig.json +4 -0
- package/.dumirc.ts +426 -0
- package/.eslintignore +12 -0
- package/.eslintrc.js +6 -0
- package/.fatherrc.base.ts +23 -0
- package/.github/ISSUE_TEMPLATE/bug_report.md +49 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +41 -0
- package/.github/ISSUE_TEMPLATE/question.md +29 -0
- package/.github/dependabot.yml +11 -0
- package/.github/workflows/build.yml +27 -0
- package/.github/workflows/codeql.yml +41 -0
- package/.github/workflows/coverage.yml +31 -0
- package/.github/workflows/issue-labeled.yml +37 -0
- package/.github/workflows/issue-open-check.yml +34 -0
- package/.github/workflows/pkg.pr.new.yml +37 -0
- package/.github/workflows/preview-build.yml +46 -0
- package/.github/workflows/preview-deploy.yml +92 -0
- package/.github/workflows/preview-start.yml +18 -0
- package/.github/workflows/rebase.yml +17 -0
- package/.prettierignore +9 -0
- package/.prettierrc.js +7 -0
- package/CONTRIBUTING.md +77 -0
- package/LICENSE.md +7 -0
- package/README.es-PR.md +199 -0
- package/README.md +203 -0
- package/README.zh-CN.md +203 -0
- package/docs/changelog.en-US.md +1115 -0
- package/docs/changelog.md +1136 -0
- package/docs/components/customization-value-type.tsx +222 -0
- package/docs/components/schema.$tab-api.md +8 -0
- package/docs/components/schema.en-US.md +477 -0
- package/docs/components/schema.md +477 -0
- package/docs/components/valueEnum-map.tsx +45 -0
- package/docs/components/valueType.tsx +299 -0
- package/docs/components.en-US.md +183 -0
- package/docs/components.md +78 -0
- package/docs/docs/faq.en-US.md +75 -0
- package/docs/docs/faq.md +75 -0
- package/docs/docs/index.en-US.md +53 -0
- package/docs/docs/index.md +56 -0
- package/docs/docs/intro.en-US.md +125 -0
- package/docs/docs/intro.md +126 -0
- package/docs/index.en-US.md +87 -0
- package/docs/index.md +56 -0
- package/docs/playground/index.en-US.md +14 -0
- package/docs/playground/index.md +14 -0
- package/docs/playground/pro-descriptions.en-US.md +10 -0
- package/docs/playground/pro-descriptions.md +10 -0
- package/docs/playground/pro-form.en-US.md +18 -0
- package/docs/playground/pro-form.md +19 -0
- package/docs/playground/pro-layout.en-US.md +16 -0
- package/docs/playground/pro-layout.md +17 -0
- package/docs/playground/pro-table.en-US.md +11 -0
- package/docs/playground/pro-table.md +11 -0
- package/lerna.json +21 -0
- package/package.json +164 -36
- package/packages/card/.fatherrc.ts +5 -0
- package/packages/card/CHANGELOG.md +1489 -0
- package/packages/card/README.md +19 -0
- package/packages/card/package.json +61 -0
- package/packages/card/src/ProCard.tsx +29 -0
- package/packages/card/src/components/Actions/index.tsx +40 -0
- package/packages/card/src/components/Actions/style.ts +102 -0
- package/packages/card/src/components/Card/index.tsx +293 -0
- package/packages/card/src/components/Card/style.ts +314 -0
- package/packages/card/src/components/CheckCard/Group.tsx +474 -0
- package/packages/card/src/components/CheckCard/demos/avatar.tsx +16 -0
- package/packages/card/src/components/CheckCard/demos/basic.tsx +18 -0
- package/packages/card/src/components/CheckCard/demos/compose.tsx +28 -0
- package/packages/card/src/components/CheckCard/demos/custom.tsx +9 -0
- package/packages/card/src/components/CheckCard/demos/defaultChecked.tsx +12 -0
- package/packages/card/src/components/CheckCard/demos/description.tsx +35 -0
- package/packages/card/src/components/CheckCard/demos/disabled.tsx +34 -0
- package/packages/card/src/components/CheckCard/demos/extra.tsx +41 -0
- package/packages/card/src/components/CheckCard/demos/form.tsx +58 -0
- package/packages/card/src/components/CheckCard/demos/grid.tsx +30 -0
- package/packages/card/src/components/CheckCard/demos/group.tsx +56 -0
- package/packages/card/src/components/CheckCard/demos/image.tsx +20 -0
- package/packages/card/src/components/CheckCard/demos/list.tsx +83 -0
- package/packages/card/src/components/CheckCard/demos/loading.tsx +3 -0
- package/packages/card/src/components/CheckCard/demos/multiple.tsx +51 -0
- package/packages/card/src/components/CheckCard/demos/single.tsx +23 -0
- package/packages/card/src/components/CheckCard/demos/size.tsx +23 -0
- package/packages/card/src/components/CheckCard/demos/title.tsx +22 -0
- package/packages/card/src/components/CheckCard/index.en-US.md +154 -0
- package/packages/card/src/components/CheckCard/index.md +154 -0
- package/packages/card/src/components/CheckCard/index.tsx +379 -0
- package/packages/card/src/components/CheckCard/style.ts +216 -0
- package/packages/card/src/components/Divider/index.tsx +42 -0
- package/packages/card/src/components/Divider/style.ts +48 -0
- package/packages/card/src/components/Loading/index.tsx +64 -0
- package/packages/card/src/components/Loading/style.ts +55 -0
- package/packages/card/src/components/Operation/index.tsx +38 -0
- package/packages/card/src/components/Operation/style.ts +33 -0
- package/packages/card/src/components/Statistic/index.tsx +129 -0
- package/packages/card/src/components/Statistic/style.ts +110 -0
- package/packages/card/src/components/StatisticCard/demos/basic.tsx +40 -0
- package/packages/card/src/components/StatisticCard/demos/chart.tsx +20 -0
- package/packages/card/src/components/StatisticCard/demos/fomula.tsx +37 -0
- package/packages/card/src/components/StatisticCard/demos/footer.tsx +42 -0
- package/packages/card/src/components/StatisticCard/demos/group-chart.tsx +65 -0
- package/packages/card/src/components/StatisticCard/demos/group.tsx +57 -0
- package/packages/card/src/components/StatisticCard/demos/horizontal-left.tsx +31 -0
- package/packages/card/src/components/StatisticCard/demos/horizontal.tsx +31 -0
- package/packages/card/src/components/StatisticCard/demos/icon.tsx +77 -0
- package/packages/card/src/components/StatisticCard/demos/layout.tsx +90 -0
- package/packages/card/src/components/StatisticCard/demos/status.tsx +46 -0
- package/packages/card/src/components/StatisticCard/demos/tabs-statistic.tsx +55 -0
- package/packages/card/src/components/StatisticCard/demos/tabs.tsx +55 -0
- package/packages/card/src/components/StatisticCard/demos/total-layout.tsx +136 -0
- package/packages/card/src/components/StatisticCard/demos/total.tsx +58 -0
- package/packages/card/src/components/StatisticCard/demos/trend.tsx +15 -0
- package/packages/card/src/components/StatisticCard/index.en-US.md +152 -0
- package/packages/card/src/components/StatisticCard/index.md +152 -0
- package/packages/card/src/components/StatisticCard/index.tsx +107 -0
- package/packages/card/src/components/StatisticCard/style.ts +48 -0
- package/packages/card/src/components/TabPane/index.tsx +94 -0
- package/packages/card/src/components/card.en-US.md +219 -0
- package/packages/card/src/components/card.md +212 -0
- package/packages/card/src/demos/actions.tsx +59 -0
- package/packages/card/src/demos/basic.tsx +54 -0
- package/packages/card/src/demos/bordered.tsx +15 -0
- package/packages/card/src/demos/collapsible.tsx +110 -0
- package/packages/card/src/demos/colspan.tsx +80 -0
- package/packages/card/src/demos/divider.tsx +36 -0
- package/packages/card/src/demos/group.tsx +19 -0
- package/packages/card/src/demos/gutter.tsx +29 -0
- package/packages/card/src/demos/headerBordered.tsx +15 -0
- package/packages/card/src/demos/headless.tsx +5 -0
- package/packages/card/src/demos/hoverable.tsx +11 -0
- package/packages/card/src/demos/inner.tsx +32 -0
- package/packages/card/src/demos/layout.tsx +18 -0
- package/packages/card/src/demos/loading.tsx +28 -0
- package/packages/card/src/demos/multipleLine.tsx +43 -0
- package/packages/card/src/demos/responsive.tsx +72 -0
- package/packages/card/src/demos/split.tsx +46 -0
- package/packages/card/src/demos/split2.tsx +30 -0
- package/packages/card/src/demos/split23.tsx +14 -0
- package/packages/card/src/demos/steps-v.tsx +59 -0
- package/packages/card/src/demos/tabs-card.tsx +18 -0
- package/packages/card/src/demos/tabs.tsx +56 -0
- package/packages/card/src/index.tsx +30 -0
- package/packages/card/src/typing.ts +100 -0
- package/packages/card/tsconfig.json +21 -0
- package/packages/components/.fatherrc.ts +15 -0
- package/packages/components/CHANGELOG.md +841 -0
- package/packages/components/README.md +19 -0
- package/packages/components/package.json +62 -0
- package/packages/components/src/index.tsx +12 -0
- package/packages/components/tsconfig.json +32 -0
- package/packages/descriptions/.fatherrc.ts +5 -0
- package/packages/descriptions/CHANGELOG.md +1740 -0
- package/packages/descriptions/README.md +53 -0
- package/packages/descriptions/package.json +60 -0
- package/packages/descriptions/src/components/descriptions.en-US.md +168 -0
- package/packages/descriptions/src/components/descriptions.md +173 -0
- package/packages/descriptions/src/demos/arrayDataIndex.tsx +66 -0
- package/packages/descriptions/src/demos/base.demo-test.tsx +36 -0
- package/packages/descriptions/src/demos/base.tsx +115 -0
- package/packages/descriptions/src/demos/columns.tsx +127 -0
- package/packages/descriptions/src/demos/customization-value-type.tsx +166 -0
- package/packages/descriptions/src/demos/dynamic-descriptions.tsx +319 -0
- package/packages/descriptions/src/demos/editable.tsx +138 -0
- package/packages/descriptions/src/demos/format.tsx +62 -0
- package/packages/descriptions/src/demos/request.tsx +37 -0
- package/packages/descriptions/src/demos/use-data-source.tsx +78 -0
- package/packages/descriptions/src/index.tsx +676 -0
- package/packages/descriptions/src/useFetchData.tsx +93 -0
- package/packages/descriptions/tsconfig.json +26 -0
- package/packages/field/.fatherrc.ts +5 -0
- package/packages/field/CHANGELOG.md +2017 -0
- package/packages/field/README.md +17 -0
- package/packages/field/package.json +56 -0
- package/packages/field/src/FieldHOC/index.tsx +55 -0
- package/packages/field/src/components/Cascader/index.tsx +167 -0
- package/packages/field/src/components/Checkbox/index.tsx +149 -0
- package/packages/field/src/components/Code/index.tsx +78 -0
- package/packages/field/src/components/ColorPicker/index.tsx +117 -0
- package/packages/field/src/components/ColorPicker/old.tsx +121 -0
- package/packages/field/src/components/DatePicker/index.tsx +143 -0
- package/packages/field/src/components/Digit/index.tsx +93 -0
- package/packages/field/src/components/DigitRange/index.tsx +150 -0
- package/packages/field/src/components/FromNow/index.tsx +67 -0
- package/packages/field/src/components/Image/index.tsx +61 -0
- package/packages/field/src/components/IndexColumn/index.tsx +54 -0
- package/packages/field/src/components/Money/index.tsx +454 -0
- package/packages/field/src/components/Options/index.tsx +89 -0
- package/packages/field/src/components/Password/index.tsx +71 -0
- package/packages/field/src/components/Percent/index.tsx +109 -0
- package/packages/field/src/components/Percent/util.ts +26 -0
- package/packages/field/src/components/Progress/index.tsx +81 -0
- package/packages/field/src/components/Radio/index.tsx +128 -0
- package/packages/field/src/components/RangePicker/index.tsx +166 -0
- package/packages/field/src/components/Rate/index.tsx +36 -0
- package/packages/field/src/components/Second/index.tsx +88 -0
- package/packages/field/src/components/Segmented/index.tsx +93 -0
- package/packages/field/src/components/Select/LightSelect/index.tsx +286 -0
- package/packages/field/src/components/Select/SearchSelect/index.tsx +334 -0
- package/packages/field/src/components/Select/index.tsx +562 -0
- package/packages/field/src/components/Slider/index.tsx +42 -0
- package/packages/field/src/components/Status/index.tsx +47 -0
- package/packages/field/src/components/Switch/index.tsx +77 -0
- package/packages/field/src/components/Text/index.tsx +68 -0
- package/packages/field/src/components/TextArea/index.tsx +53 -0
- package/packages/field/src/components/TextArea/readonly.tsx +46 -0
- package/packages/field/src/components/TimePicker/index.tsx +261 -0
- package/packages/field/src/components/TreeSelect/index.tsx +258 -0
- package/packages/field/src/components/field.md +42 -0
- package/packages/field/src/demos/base.tsx +431 -0
- package/packages/field/src/demos/base_test.tsx +509 -0
- package/packages/field/src/demos/search-value-autoClearSearchValue.tsx +41 -0
- package/packages/field/src/demos/search-value.tsx +96 -0
- package/packages/field/src/demos/select-request.tsx +30 -0
- package/packages/field/src/demos/tree-select-search-value.tsx +151 -0
- package/packages/field/src/index.tsx +678 -0
- package/packages/field/tsconfig.json +22 -0
- package/packages/form/.fatherrc.ts +5 -0
- package/packages/form/CHANGELOG.md +2781 -0
- package/packages/form/README.md +15 -0
- package/packages/form/package.json +70 -0
- package/packages/form/src/BaseForm/BaseForm.tsx +839 -0
- package/packages/form/src/BaseForm/EditOrReadOnlyContext.ts +7 -0
- package/packages/form/src/BaseForm/LightWrapper/index.tsx +159 -0
- package/packages/form/src/BaseForm/LightWrapper/style.ts +31 -0
- package/packages/form/src/BaseForm/createField.tsx +384 -0
- package/packages/form/src/BaseForm/index.ts +3 -0
- package/packages/form/src/FieldContext.tsx +39 -0
- package/packages/form/src/components/Captcha/index.tsx +156 -0
- package/packages/form/src/components/Cascader/index.tsx +36 -0
- package/packages/form/src/components/Checkbox/index.tsx +90 -0
- package/packages/form/src/components/ColorPicker/index.tsx +47 -0
- package/packages/form/src/components/DateMonthRangePicker/index.tsx +38 -0
- package/packages/form/src/components/DatePicker/DatePicker.tsx +35 -0
- package/packages/form/src/components/DatePicker/MonthPicker.tsx +35 -0
- package/packages/form/src/components/DatePicker/QuarterPicker.tsx +35 -0
- package/packages/form/src/components/DatePicker/WeekPicker.tsx +35 -0
- package/packages/form/src/components/DatePicker/YearPicker.tsx +35 -0
- package/packages/form/src/components/DatePicker/index.tsx +22 -0
- package/packages/form/src/components/DateQuarterRangePicker/index.tsx +39 -0
- package/packages/form/src/components/DateRangePicker/index.tsx +39 -0
- package/packages/form/src/components/DateTimePicker/index.tsx +36 -0
- package/packages/form/src/components/DateTimeRangePicker/index.tsx +39 -0
- package/packages/form/src/components/DateWeekRangePicker/index.tsx +38 -0
- package/packages/form/src/components/DateYearRangePicker/index.tsx +38 -0
- package/packages/form/src/components/Dependency/demos/dependency.tsx +112 -0
- package/packages/form/src/components/Dependency/demos/dependency2.tsx +106 -0
- package/packages/form/src/components/Dependency/index.en-US.md +54 -0
- package/packages/form/src/components/Dependency/index.md +52 -0
- package/packages/form/src/components/Dependency/index.tsx +111 -0
- package/packages/form/src/components/Digit/index.tsx +43 -0
- package/packages/form/src/components/DigitRange/index.tsx +51 -0
- package/packages/form/src/components/Field/index.tsx +144 -0
- package/packages/form/src/components/FieldSet/demos/captCha.tsx +67 -0
- package/packages/form/src/components/FieldSet/demos/components-other-readonly.tsx +465 -0
- package/packages/form/src/components/FieldSet/demos/components-other.tsx +336 -0
- package/packages/form/src/components/FieldSet/demos/datatime.tsx +89 -0
- package/packages/form/src/components/FieldSet/demos/fieldSet-light.tsx +58 -0
- package/packages/form/src/components/FieldSet/demos/form-fieldset.tsx +106 -0
- package/packages/form/src/components/FieldSet/demos/pro-form-captCha.tsx +70 -0
- package/packages/form/src/components/FieldSet/demos/search-select.tsx +90 -0
- package/packages/form/src/components/FieldSet/demos/upload.tsx +35 -0
- package/packages/form/src/components/FieldSet/index.en-US.md +529 -0
- package/packages/form/src/components/FieldSet/index.md +680 -0
- package/packages/form/src/components/FieldSet/index.tsx +151 -0
- package/packages/form/src/components/FormItem/index.tsx +445 -0
- package/packages/form/src/components/FormItemRender/index.tsx +219 -0
- package/packages/form/src/components/Group/demos/base-use.tsx +93 -0
- package/packages/form/src/components/Group/demos/countLimit.tsx +57 -0
- package/packages/form/src/components/Group/demos/customize.tsx +294 -0
- package/packages/form/src/components/Group/demos/dependency.tsx +70 -0
- package/packages/form/src/components/Group/demos/horizontal-layout.tsx +73 -0
- package/packages/form/src/components/Group/demos/list-tooltip.tsx +69 -0
- package/packages/form/src/components/Group/demos/list.tsx +127 -0
- package/packages/form/src/components/Group/demos/nested-list.tsx +66 -0
- package/packages/form/src/components/Group/demos/pro-form-list.tsx +126 -0
- package/packages/form/src/components/Group/index.en-US.md +326 -0
- package/packages/form/src/components/Group/index.md +373 -0
- package/packages/form/src/components/Group/index.tsx +182 -0
- package/packages/form/src/components/Group/style.ts +55 -0
- package/packages/form/src/components/List/ListContainer.tsx +187 -0
- package/packages/form/src/components/List/ListItem.tsx +569 -0
- package/packages/form/src/components/List/index.tsx +323 -0
- package/packages/form/src/components/List/style.ts +89 -0
- package/packages/form/src/components/LoginForm/demos/login-form-page.tsx +283 -0
- package/packages/form/src/components/LoginForm/demos/login-form.tsx +190 -0
- package/packages/form/src/components/LoginForm/index.en-US.md +45 -0
- package/packages/form/src/components/LoginForm/index.md +45 -0
- package/packages/form/src/components/ModalForm/demos/drawer-form-nested.tsx +265 -0
- package/packages/form/src/components/ModalForm/demos/drawer-form.tsx +129 -0
- package/packages/form/src/components/ModalForm/demos/modal-form-reset.tsx +112 -0
- package/packages/form/src/components/ModalForm/demos/modal-form-submitter.tsx +143 -0
- package/packages/form/src/components/ModalForm/demos/modal-form.tsx +112 -0
- package/packages/form/src/components/ModalForm/demos/visible-on-visible-change.tsx +187 -0
- package/packages/form/src/components/ModalForm/index.en-US.md +70 -0
- package/packages/form/src/components/ModalForm/index.md +68 -0
- package/packages/form/src/components/Money/index.tsx +47 -0
- package/packages/form/src/components/QueryFilter/demos/light-filter-bordered.tsx +149 -0
- package/packages/form/src/components/QueryFilter/demos/light-filter-collapse.tsx +28 -0
- package/packages/form/src/components/QueryFilter/demos/light-filter-footer.tsx +88 -0
- package/packages/form/src/components/QueryFilter/demos/light-filter-placement.tsx +89 -0
- package/packages/form/src/components/QueryFilter/demos/light-filter-test.tsx +92 -0
- package/packages/form/src/components/QueryFilter/demos/light-filter.tsx +215 -0
- package/packages/form/src/components/QueryFilter/demos/query-filter-collapsed.tsx +18 -0
- package/packages/form/src/components/QueryFilter/demos/query-filter-defaultColsNumber.tsx +18 -0
- package/packages/form/src/components/QueryFilter/demos/query-filter-test.tsx +158 -0
- package/packages/form/src/components/QueryFilter/demos/query-filter-vertical.tsx +44 -0
- package/packages/form/src/components/QueryFilter/demos/query-filter.tsx +31 -0
- package/packages/form/src/components/QueryFilter/demos/search-filter.tsx +126 -0
- package/packages/form/src/components/QueryFilter/index.en-US.md +93 -0
- package/packages/form/src/components/QueryFilter/index.md +90 -0
- package/packages/form/src/components/Radio/index.tsx +89 -0
- package/packages/form/src/components/Rate/index.tsx +28 -0
- package/packages/form/src/components/SchemaForm/demos/ModalAndDrawerForm.tsx +68 -0
- package/packages/form/src/components/SchemaForm/demos/customization-value-type.tsx +174 -0
- package/packages/form/src/components/SchemaForm/demos/dependencies.tsx +125 -0
- package/packages/form/src/components/SchemaForm/demos/dependency.tsx +90 -0
- package/packages/form/src/components/SchemaForm/demos/dynamic-rerender.tsx +127 -0
- package/packages/form/src/components/SchemaForm/demos/embed.tsx +121 -0
- package/packages/form/src/components/SchemaForm/demos/form-list-required.tsx +142 -0
- package/packages/form/src/components/SchemaForm/demos/schema.tsx +311 -0
- package/packages/form/src/components/SchemaForm/demos/steps-form.tsx +203 -0
- package/packages/form/src/components/SchemaForm/demos/valueType.tsx +150 -0
- package/packages/form/src/components/SchemaForm/index.en-US.md +92 -0
- package/packages/form/src/components/SchemaForm/index.md +84 -0
- package/packages/form/src/components/SchemaForm/index.tsx +241 -0
- package/packages/form/src/components/SchemaForm/layoutType/Embed.tsx +3 -0
- package/packages/form/src/components/SchemaForm/layoutType/StepsForm.tsx +54 -0
- package/packages/form/src/components/SchemaForm/layoutType/index.ts +2 -0
- package/packages/form/src/components/SchemaForm/typing.ts +171 -0
- package/packages/form/src/components/SchemaForm/valueType/dependency.tsx +34 -0
- package/packages/form/src/components/SchemaForm/valueType/divider.tsx +13 -0
- package/packages/form/src/components/SchemaForm/valueType/field.tsx +91 -0
- package/packages/form/src/components/SchemaForm/valueType/formList.tsx +27 -0
- package/packages/form/src/components/SchemaForm/valueType/formSet.tsx +27 -0
- package/packages/form/src/components/SchemaForm/valueType/group.tsx +22 -0
- package/packages/form/src/components/SchemaForm/valueType/ignore.tsx +13 -0
- package/packages/form/src/components/SchemaForm/valueType/index.tsx +46 -0
- package/packages/form/src/components/Segmented/index.tsx +36 -0
- package/packages/form/src/components/Select/index.tsx +173 -0
- package/packages/form/src/components/Slider/index.tsx +62 -0
- package/packages/form/src/components/StepsForm/demos/add-or-edit-step-form.tsx +90 -0
- package/packages/form/src/components/StepsForm/demos/customize-steps-from.tsx +176 -0
- package/packages/form/src/components/StepsForm/demos/modal-step-form.tsx +153 -0
- package/packages/form/src/components/StepsForm/demos/multi-card-step-form.tsx +201 -0
- package/packages/form/src/components/StepsForm/demos/steps-form-vertical.tsx +153 -0
- package/packages/form/src/components/StepsForm/demos/steps-from.tsx +157 -0
- package/packages/form/src/components/StepsForm/index.en-US.md +50 -0
- package/packages/form/src/components/StepsForm/index.md +56 -0
- package/packages/form/src/components/Submitter/index.tsx +144 -0
- package/packages/form/src/components/Switch/index.tsx +45 -0
- package/packages/form/src/components/Text/index.tsx +176 -0
- package/packages/form/src/components/TextArea/index.tsx +27 -0
- package/packages/form/src/components/TimePicker/index.tsx +72 -0
- package/packages/form/src/components/TreeSelect/index.tsx +49 -0
- package/packages/form/src/components/UploadButton/index.tsx +133 -0
- package/packages/form/src/components/UploadDragger/index.tsx +134 -0
- package/packages/form/src/components/form.en-US.md +320 -0
- package/packages/form/src/components/form.md +480 -0
- package/packages/form/src/components/index.ts +67 -0
- package/packages/form/src/demos/antd.modify.tsx +62 -0
- package/packages/form/src/demos/antd.nest.tsx +56 -0
- package/packages/form/src/demos/antd.tsx +103 -0
- package/packages/form/src/demos/base-test.tsx +256 -0
- package/packages/form/src/demos/base.tsx +334 -0
- package/packages/form/src/demos/components-test.tsx +64 -0
- package/packages/form/src/demos/config-provider.tsx +67 -0
- package/packages/form/src/demos/dependency.tsx +85 -0
- package/packages/form/src/demos/form-control-render.tsx +81 -0
- package/packages/form/src/demos/form-item-render.tsx +164 -0
- package/packages/form/src/demos/form-layout-grid.tsx +130 -0
- package/packages/form/src/demos/form-layout.tsx +97 -0
- package/packages/form/src/demos/formRef.tsx +98 -0
- package/packages/form/src/demos/label-col.tsx +48 -0
- package/packages/form/src/demos/labelInValue.tsx +34 -0
- package/packages/form/src/demos/layout-change.tsx +347 -0
- package/packages/form/src/demos/layout-footer.tsx +168 -0
- package/packages/form/src/demos/linkage-customization.tsx +179 -0
- package/packages/form/src/demos/modalform-test.tsx +121 -0
- package/packages/form/src/demos/money.tsx +139 -0
- package/packages/form/src/demos/params-formref.tsx +36 -0
- package/packages/form/src/demos/pro-form-dependency.debug.tsx +95 -0
- package/packages/form/src/demos/pro-form-editableTable.tsx +148 -0
- package/packages/form/src/demos/sync-to-url.tsx +68 -0
- package/packages/form/src/demos/typings.d.ts +5 -0
- package/packages/form/src/helpers/grid.tsx +96 -0
- package/packages/form/src/helpers/index.ts +1 -0
- package/packages/form/src/index.tsx +56 -0
- package/packages/form/src/layouts/DrawerForm/index.tsx +386 -0
- package/packages/form/src/layouts/DrawerForm/style.ts +42 -0
- package/packages/form/src/layouts/LightFilter/index.tsx +337 -0
- package/packages/form/src/layouts/LightFilter/style.ts +64 -0
- package/packages/form/src/layouts/LoginForm/index.tsx +153 -0
- package/packages/form/src/layouts/LoginForm/style.ts +89 -0
- package/packages/form/src/layouts/LoginFormPage/index.tsx +231 -0
- package/packages/form/src/layouts/LoginFormPage/style.ts +154 -0
- package/packages/form/src/layouts/ModalForm/index.tsx +296 -0
- package/packages/form/src/layouts/ProForm/index.tsx +44 -0
- package/packages/form/src/layouts/QueryFilter/Actions.tsx +104 -0
- package/packages/form/src/layouts/QueryFilter/index.tsx +624 -0
- package/packages/form/src/layouts/QueryFilter/style.ts +61 -0
- package/packages/form/src/layouts/StepsForm/StepForm.tsx +89 -0
- package/packages/form/src/layouts/StepsForm/index.tsx +569 -0
- package/packages/form/src/layouts/StepsForm/style.ts +43 -0
- package/packages/form/src/layouts/index.ts +19 -0
- package/packages/form/src/typing.ts +178 -0
- package/packages/form/tsconfig.json +24 -0
- package/packages/layout/.fatherrc.ts +5 -0
- package/packages/layout/CHANGELOG.md +2188 -0
- package/packages/layout/README.md +64 -0
- package/packages/layout/package.json +71 -0
- package/packages/layout/src/ProLayout.tsx +918 -0
- package/packages/layout/src/WrapContent.tsx +41 -0
- package/packages/layout/src/assert/Logo.tsx +80 -0
- package/packages/layout/src/components/AppsLogoComponents/AppsLogo.tsx +15 -0
- package/packages/layout/src/components/AppsLogoComponents/DefaultContent.tsx +64 -0
- package/packages/layout/src/components/AppsLogoComponents/SimpleContent.tsx +93 -0
- package/packages/layout/src/components/AppsLogoComponents/index.tsx +132 -0
- package/packages/layout/src/components/AppsLogoComponents/style/default.ts +78 -0
- package/packages/layout/src/components/AppsLogoComponents/style/index.ts +71 -0
- package/packages/layout/src/components/AppsLogoComponents/style/simple.ts +93 -0
- package/packages/layout/src/components/AppsLogoComponents/types.d.ts +10 -0
- package/packages/layout/src/components/CollapsedIcon/index.tsx +20 -0
- package/packages/layout/src/components/CollapsedIcon/style.ts +58 -0
- package/packages/layout/src/components/Footer.tsx +47 -0
- package/packages/layout/src/components/FooterToolbar/index.tsx +123 -0
- package/packages/layout/src/components/FooterToolbar/style/index.ts +56 -0
- package/packages/layout/src/components/FooterToolbar/style/stylish.ts +29 -0
- package/packages/layout/src/components/GlobalFooter/index.tsx +70 -0
- package/packages/layout/src/components/GlobalFooter/style.ts +46 -0
- package/packages/layout/src/components/GlobalHeader/ActionsContent.tsx +150 -0
- package/packages/layout/src/components/GlobalHeader/index.tsx +184 -0
- package/packages/layout/src/components/GlobalHeader/rightContentStyle.ts +74 -0
- package/packages/layout/src/components/GlobalHeader/style.ts +75 -0
- package/packages/layout/src/components/GridContent/index.tsx +54 -0
- package/packages/layout/src/components/GridContent/style.ts +29 -0
- package/packages/layout/src/components/Header/index.tsx +170 -0
- package/packages/layout/src/components/Header/style/header.ts +70 -0
- package/packages/layout/src/components/Header/style/stylish.ts +34 -0
- package/packages/layout/src/components/Help/AsyncContentPanel.tsx +62 -0
- package/packages/layout/src/components/Help/HelpProvide.tsx +187 -0
- package/packages/layout/src/components/Help/ProHelpContentPanel.tsx +162 -0
- package/packages/layout/src/components/Help/ProHelpDrawer.tsx +54 -0
- package/packages/layout/src/components/Help/ProHelpModal.tsx +51 -0
- package/packages/layout/src/components/Help/ProHelpPanel.tsx +310 -0
- package/packages/layout/src/components/Help/ProHelpPopover.tsx +78 -0
- package/packages/layout/src/components/Help/RenderContentPanel.tsx +156 -0
- package/packages/layout/src/components/Help/Search.tsx +172 -0
- package/packages/layout/src/components/Help/index.tsx +78 -0
- package/packages/layout/src/components/Help/style.ts +109 -0
- package/packages/layout/src/components/PageContainer/demos/basic.tsx +96 -0
- package/packages/layout/src/components/PageContainer/demos/fixHeader.tsx +59 -0
- package/packages/layout/src/components/PageContainer/demos/hideBreadMenu.tsx +38 -0
- package/packages/layout/src/components/PageContainer/demos/loading.tsx +144 -0
- package/packages/layout/src/components/PageContainer/demos/token.tsx +71 -0
- package/packages/layout/src/components/PageContainer/index.en-US.md +104 -0
- package/packages/layout/src/components/PageContainer/index.md +125 -0
- package/packages/layout/src/components/PageContainer/index.tsx +506 -0
- package/packages/layout/src/components/PageContainer/style/index.ts +137 -0
- package/packages/layout/src/components/PageContainer/style/stylish.ts +29 -0
- package/packages/layout/src/components/PageHeader/demo/actions.en-US.md +78 -0
- package/packages/layout/src/components/PageHeader/demo/actions.md +78 -0
- package/packages/layout/src/components/PageHeader/demo/basic.en-US.md +30 -0
- package/packages/layout/src/components/PageHeader/demo/basic.md +30 -0
- package/packages/layout/src/components/PageHeader/demo/breadcrumb.en-US.md +39 -0
- package/packages/layout/src/components/PageHeader/demo/breadcrumb.md +39 -0
- package/packages/layout/src/components/PageHeader/demo/content.en-US.md +206 -0
- package/packages/layout/src/components/PageHeader/demo/content.md +206 -0
- package/packages/layout/src/components/PageHeader/demo/ghost.en-US.md +52 -0
- package/packages/layout/src/components/PageHeader/demo/ghost.md +52 -0
- package/packages/layout/src/components/PageHeader/demo/responsive.en-US.md +114 -0
- package/packages/layout/src/components/PageHeader/demo/responsive.md +114 -0
- package/packages/layout/src/components/PageHeader/index.en-US.md +39 -0
- package/packages/layout/src/components/PageHeader/index.md +39 -0
- package/packages/layout/src/components/PageHeader/index.tsx +276 -0
- package/packages/layout/src/components/PageHeader/style/index.ts +180 -0
- package/packages/layout/src/components/PageLoading/index.tsx +18 -0
- package/packages/layout/src/components/SettingDrawer/BlockCheckbox.tsx +60 -0
- package/packages/layout/src/components/SettingDrawer/LayoutChange.tsx +122 -0
- package/packages/layout/src/components/SettingDrawer/RegionalChange.tsx +45 -0
- package/packages/layout/src/components/SettingDrawer/ThemeColor.tsx +68 -0
- package/packages/layout/src/components/SettingDrawer/icon/group.tsx +108 -0
- package/packages/layout/src/components/SettingDrawer/icon/sub.tsx +163 -0
- package/packages/layout/src/components/SettingDrawer/index.tsx +602 -0
- package/packages/layout/src/components/SettingDrawer/style/index.ts +149 -0
- package/packages/layout/src/components/SiderMenu/Arrow.tsx +15 -0
- package/packages/layout/src/components/SiderMenu/BaseMenu.tsx +741 -0
- package/packages/layout/src/components/SiderMenu/SiderMenu.tsx +541 -0
- package/packages/layout/src/components/SiderMenu/index.tsx +101 -0
- package/packages/layout/src/components/SiderMenu/style/index.ts +219 -0
- package/packages/layout/src/components/SiderMenu/style/menu.ts +177 -0
- package/packages/layout/src/components/SiderMenu/style/stylish.ts +33 -0
- package/packages/layout/src/components/TopNavHeader/index.tsx +202 -0
- package/packages/layout/src/components/TopNavHeader/style.ts +88 -0
- package/packages/layout/src/components/WaterMark/demos/custom.tsx +133 -0
- package/packages/layout/src/components/WaterMark/demos/frontend.tsx +135 -0
- package/packages/layout/src/components/WaterMark/demos/image.tsx +40 -0
- package/packages/layout/src/components/WaterMark/demos/text.tsx +8 -0
- package/packages/layout/src/components/WaterMark/demos/textRows.tsx +8 -0
- package/packages/layout/src/components/WaterMark/index.en-US.md +80 -0
- package/packages/layout/src/components/WaterMark/index.md +80 -0
- package/packages/layout/src/components/WaterMark/index.tsx +212 -0
- package/packages/layout/src/components/layout.$tab-api.md +120 -0
- package/packages/layout/src/components/layout.en-US.$tab-api.md +76 -0
- package/packages/layout/src/components/layout.en-US.md +465 -0
- package/packages/layout/src/components/layout.md +474 -0
- package/packages/layout/src/context/RouteContext.tsx +36 -0
- package/packages/layout/src/defaultSettings.ts +143 -0
- package/packages/layout/src/demos/AlwaysDefaultOpenAllMenu.tsx +88 -0
- package/packages/layout/src/demos/BreadcrumbsRepeat.tsx +57 -0
- package/packages/layout/src/demos/DefaultOpenAllMenu.tsx +26 -0
- package/packages/layout/src/demos/IconFont.tsx +39 -0
- package/packages/layout/src/demos/MenuGroup.tsx +24 -0
- package/packages/layout/src/demos/MultipleMenuOnePath.tsx +199 -0
- package/packages/layout/src/demos/Nested.tsx +65 -0
- package/packages/layout/src/demos/TopmenuNested.tsx +35 -0
- package/packages/layout/src/demos/_defaultProps.tsx +152 -0
- package/packages/layout/src/demos/antd@4MenuIconFormServe.tsx +67 -0
- package/packages/layout/src/demos/api.tsx +149 -0
- package/packages/layout/src/demos/appList-group-simple.tsx +104 -0
- package/packages/layout/src/demos/appList-group.tsx +131 -0
- package/packages/layout/src/demos/async-load-help.tsx +336 -0
- package/packages/layout/src/demos/background-context.tsx +146 -0
- package/packages/layout/src/demos/base.tsx +456 -0
- package/packages/layout/src/demos/classicMode.tsx +212 -0
- package/packages/layout/src/demos/collapsedShowTitle.tsx +155 -0
- package/packages/layout/src/demos/complexMenu.ts +101 -0
- package/packages/layout/src/demos/config-provider.tsx +153 -0
- package/packages/layout/src/demos/customMenu.ts +23 -0
- package/packages/layout/src/demos/customSider.tsx +140 -0
- package/packages/layout/src/demos/customize-collapsed.tsx +98 -0
- package/packages/layout/src/demos/customizeMenu.tsx +62 -0
- package/packages/layout/src/demos/dark.tsx +127 -0
- package/packages/layout/src/demos/debug-demo.tsx +154 -0
- package/packages/layout/src/demos/designMenuCss.tsx +204 -0
- package/packages/layout/src/demos/designSiderMenu.tsx +105 -0
- package/packages/layout/src/demos/draggableHelp.tsx +349 -0
- package/packages/layout/src/demos/dynamic-settings.tsx +155 -0
- package/packages/layout/src/demos/dynamicMenu.tsx +71 -0
- package/packages/layout/src/demos/error-boundaries.tsx +156 -0
- package/packages/layout/src/demos/footer-global-tools.tsx +211 -0
- package/packages/layout/src/demos/footer.tsx +31 -0
- package/packages/layout/src/demos/ghost.tsx +51 -0
- package/packages/layout/src/demos/help.tsx +683 -0
- package/packages/layout/src/demos/hideMenu.tsx +29 -0
- package/packages/layout/src/demos/immersive-navigation-top.tsx +106 -0
- package/packages/layout/src/demos/immersive-navigation.tsx +139 -0
- package/packages/layout/src/demos/menu-group.tsx +138 -0
- package/packages/layout/src/demos/mixMode.tsx +148 -0
- package/packages/layout/src/demos/morse_debug.tsx +234 -0
- package/packages/layout/src/demos/pageSimplify.tsx +153 -0
- package/packages/layout/src/demos/proHelpModal.tsx +367 -0
- package/packages/layout/src/demos/searchMenu.tsx +90 -0
- package/packages/layout/src/demos/siderMode.tsx +82 -0
- package/packages/layout/src/demos/siteMenu.tsx +148 -0
- package/packages/layout/src/demos/splitMenus.tsx +123 -0
- package/packages/layout/src/demos/theme.tsx +159 -0
- package/packages/layout/src/demos/top-breadcrumb.tsx +68 -0
- package/packages/layout/src/demos/topMode.tsx +351 -0
- package/packages/layout/src/getPageTitle.ts +138 -0
- package/packages/layout/src/index.tsx +93 -0
- package/packages/layout/src/locales/en-US/settingDrawer.ts +45 -0
- package/packages/layout/src/locales/en-US.ts +5 -0
- package/packages/layout/src/locales/index.ts +33 -0
- package/packages/layout/src/locales/it-IT/settingDrawer.ts +37 -0
- package/packages/layout/src/locales/it-IT.ts +5 -0
- package/packages/layout/src/locales/ko-KR/settingDrawer.ts +41 -0
- package/packages/layout/src/locales/ko-KR.ts +5 -0
- package/packages/layout/src/locales/zh-CN/settingDrawer.ts +45 -0
- package/packages/layout/src/locales/zh-CN.ts +5 -0
- package/packages/layout/src/locales/zh-TW/settingDrawer.ts +37 -0
- package/packages/layout/src/locales/zh-TW.ts +5 -0
- package/packages/layout/src/style/index.ts +280 -0
- package/packages/layout/src/typing.ts +77 -0
- package/packages/layout/src/utils/getBreadcrumbProps.tsx +204 -0
- package/packages/layout/src/utils/getMenuData.ts +42 -0
- package/packages/layout/src/utils/pathTools.ts +10 -0
- package/packages/layout/src/utils/useCurrentMenuLayoutProps.ts +36 -0
- package/packages/layout/src/utils/utils.ts +66 -0
- package/packages/layout/tsconfig.json +23 -0
- package/packages/list/.fatherrc.ts +5 -0
- package/packages/list/CHANGELOG.md +1840 -0
- package/packages/list/README.md +49 -0
- package/packages/list/package.json +62 -0
- package/packages/list/src/Item.tsx +389 -0
- package/packages/list/src/ListView.tsx +327 -0
- package/packages/list/src/components/list.en-US.md +147 -0
- package/packages/list/src/components/list.md +149 -0
- package/packages/list/src/constants.ts +17 -0
- package/packages/list/src/demos/ToolBar.tsx +195 -0
- package/packages/list/src/demos/base.tsx +85 -0
- package/packages/list/src/demos/card-list.tsx +117 -0
- package/packages/list/src/demos/editable.tsx +89 -0
- package/packages/list/src/demos/expand.tsx +92 -0
- package/packages/list/src/demos/filter.tsx +125 -0
- package/packages/list/src/demos/layout.tsx +95 -0
- package/packages/list/src/demos/pagination.tsx +64 -0
- package/packages/list/src/demos/search.tsx +123 -0
- package/packages/list/src/demos/selectedRow.tsx +86 -0
- package/packages/list/src/demos/size.tsx +126 -0
- package/packages/list/src/demos/special.tsx +109 -0
- package/packages/list/src/demos/testConfigProvider.tsx +66 -0
- package/packages/list/src/index.tsx +251 -0
- package/packages/list/src/style/index.ts +283 -0
- package/packages/list/tsconfig.json +33 -0
- package/packages/provider/.fatherrc.ts +5 -0
- package/packages/provider/CHANGELOG.md +824 -0
- package/packages/provider/README.md +19 -0
- package/packages/provider/package.json +58 -0
- package/packages/provider/src/index.tsx +484 -0
- package/packages/provider/src/intl.ts +183 -0
- package/packages/provider/src/locale/ar_EG.tsx +71 -0
- package/packages/provider/src/locale/ca_ES.tsx +71 -0
- package/packages/provider/src/locale/cs_CZ.tsx +74 -0
- package/packages/provider/src/locale/de_DE.tsx +71 -0
- package/packages/provider/src/locale/en_GB.tsx +73 -0
- package/packages/provider/src/locale/en_US.tsx +75 -0
- package/packages/provider/src/locale/es_ES.tsx +71 -0
- package/packages/provider/src/locale/fa_IR.tsx +71 -0
- package/packages/provider/src/locale/fr_FR.tsx +71 -0
- package/packages/provider/src/locale/he_IL.tsx +74 -0
- package/packages/provider/src/locale/hr_HR.tsx +71 -0
- package/packages/provider/src/locale/id_ID.tsx +71 -0
- package/packages/provider/src/locale/it_IT.tsx +71 -0
- package/packages/provider/src/locale/ja_JP.tsx +71 -0
- package/packages/provider/src/locale/ko_KR.tsx +71 -0
- package/packages/provider/src/locale/mn_MN.tsx +71 -0
- package/packages/provider/src/locale/ms_MY.tsx +71 -0
- package/packages/provider/src/locale/nl_NL.tsx +74 -0
- package/packages/provider/src/locale/pl_PL.tsx +71 -0
- package/packages/provider/src/locale/pt_BR.tsx +71 -0
- package/packages/provider/src/locale/ro_RO.tsx +74 -0
- package/packages/provider/src/locale/ru_RU.tsx +71 -0
- package/packages/provider/src/locale/sk_SK.tsx +74 -0
- package/packages/provider/src/locale/sr_RS.tsx +71 -0
- package/packages/provider/src/locale/sv_SE.tsx +74 -0
- package/packages/provider/src/locale/th_TH.tsx +74 -0
- package/packages/provider/src/locale/tr_TR.tsx +71 -0
- package/packages/provider/src/locale/uk_UA.tsx +74 -0
- package/packages/provider/src/locale/uz_UZ.tsx +71 -0
- package/packages/provider/src/locale/vi_VN.tsx +71 -0
- package/packages/provider/src/locale/zh_CN.tsx +74 -0
- package/packages/provider/src/locale/zh_TW.tsx +74 -0
- package/packages/provider/src/typing/layoutToken.ts +175 -0
- package/packages/provider/src/useStyle/index.ts +141 -0
- package/packages/provider/src/useStyle/token.ts +412 -0
- package/packages/provider/src/utils/merge.ts +28 -0
- package/packages/provider/tsconfig.json +18 -0
- package/packages/skeleton/.fatherrc.ts +5 -0
- package/packages/skeleton/CHANGELOG.md +253 -0
- package/packages/skeleton/README.md +19 -0
- package/packages/skeleton/package.json +54 -0
- package/packages/skeleton/src/components/Descriptions/index.tsx +328 -0
- package/packages/skeleton/src/components/List/index.tsx +310 -0
- package/packages/skeleton/src/components/Result/index.tsx +54 -0
- package/packages/skeleton/src/components/skeleton.en-US.md +49 -0
- package/packages/skeleton/src/components/skeleton.md +41 -0
- package/packages/skeleton/src/demos/descriptions.tsx +14 -0
- package/packages/skeleton/src/demos/list.static.tsx +12 -0
- package/packages/skeleton/src/demos/list.tsx +12 -0
- package/packages/skeleton/src/demos/result.tsx +12 -0
- package/packages/skeleton/src/index.tsx +48 -0
- package/packages/skeleton/tsconfig.json +18 -0
- package/packages/table/.fatherrc.ts +5 -0
- package/packages/table/CHANGELOG.md +2622 -0
- package/packages/table/README.md +167 -0
- package/packages/table/package.json +75 -0
- package/packages/table/src/Store/Provide.tsx +261 -0
- package/packages/table/src/Table.tsx +1043 -0
- package/packages/table/src/components/Alert/index.tsx +96 -0
- package/packages/table/src/components/Alert/style.ts +45 -0
- package/packages/table/src/components/ColumnSetting/index.tsx +535 -0
- package/packages/table/src/components/ColumnSetting/style.ts +104 -0
- package/packages/table/src/components/DragSortTable/demos/drag-sort-table.tsx +164 -0
- package/packages/table/src/components/DragSortTable/demos/drag.tsx +74 -0
- package/packages/table/src/components/DragSortTable/index.en-US.md +28 -0
- package/packages/table/src/components/DragSortTable/index.md +26 -0
- package/packages/table/src/components/DragSortTable/index.tsx +112 -0
- package/packages/table/src/components/DragSortTable/style.ts +35 -0
- package/packages/table/src/components/Dropdown/index.tsx +86 -0
- package/packages/table/src/components/EditableTable/CellEditorTable.tsx +67 -0
- package/packages/table/src/components/EditableTable/RowEditorTable.tsx +60 -0
- package/packages/table/src/components/EditableTable/demos/basic.tsx +219 -0
- package/packages/table/src/components/EditableTable/demos/cell-editor-table.tsx +101 -0
- package/packages/table/src/components/EditableTable/demos/children.tsx +202 -0
- package/packages/table/src/components/EditableTable/demos/custom.tsx +257 -0
- package/packages/table/src/components/EditableTable/demos/form-item.tsx +254 -0
- package/packages/table/src/components/EditableTable/demos/form-linkage.tsx +259 -0
- package/packages/table/src/components/EditableTable/demos/real-time-editing.tsx +155 -0
- package/packages/table/src/components/EditableTable/demos/row-editor-table.tsx +100 -0
- package/packages/table/src/components/EditableTable/index.en-US.md +303 -0
- package/packages/table/src/components/EditableTable/index.md +303 -0
- package/packages/table/src/components/EditableTable/index.tsx +562 -0
- package/packages/table/src/components/Form/FormRender.tsx +262 -0
- package/packages/table/src/components/Form/index.tsx +194 -0
- package/packages/table/src/components/ListToolBar/HeaderMenu.tsx +132 -0
- package/packages/table/src/components/ListToolBar/index.tsx +420 -0
- package/packages/table/src/components/ListToolBar/style.ts +127 -0
- package/packages/table/src/components/ToolBar/DensityIcon.tsx +47 -0
- package/packages/table/src/components/ToolBar/FullscreenIcon.tsx +29 -0
- package/packages/table/src/components/ToolBar/index.tsx +419 -0
- package/packages/table/src/components/table.$tab-api.md +243 -0
- package/packages/table/src/components/table.en-US.$tab-api.md +210 -0
- package/packages/table/src/components/table.en-US.md +333 -0
- package/packages/table/src/components/table.md +338 -0
- package/packages/table/src/demos/ListToolBar/basic.tsx +124 -0
- package/packages/table/src/demos/ListToolBar/menu.tsx +148 -0
- package/packages/table/src/demos/ListToolBar/multipleLine.tsx +139 -0
- package/packages/table/src/demos/ListToolBar/no-title.tsx +108 -0
- package/packages/table/src/demos/ListToolBar/tabs.tsx +176 -0
- package/packages/table/src/demos/batchOption.tsx +180 -0
- package/packages/table/src/demos/card-title.tsx +93 -0
- package/packages/table/src/demos/columns-setting-custom-icon.tsx +55 -0
- package/packages/table/src/demos/columnsStateMap.tsx +113 -0
- package/packages/table/src/demos/config-provider.tsx +139 -0
- package/packages/table/src/demos/crud.tsx +168 -0
- package/packages/table/src/demos/customization-value-type.tsx +174 -0
- package/packages/table/src/demos/dataSource.tsx +178 -0
- package/packages/table/src/demos/dateFormatter.tsx +130 -0
- package/packages/table/src/demos/dynamic-columns-state.tsx +151 -0
- package/packages/table/src/demos/dynamic-settings.tsx +723 -0
- package/packages/table/src/demos/edittable-rules.tsx +106 -0
- package/packages/table/src/demos/error-boundaries-false.tsx +81 -0
- package/packages/table/src/demos/error-boundaries.tsx +201 -0
- package/packages/table/src/demos/form.tsx +82 -0
- package/packages/table/src/demos/intl.tsx +119 -0
- package/packages/table/src/demos/lightfilter.tsx +81 -0
- package/packages/table/src/demos/linkage_form.tsx +175 -0
- package/packages/table/src/demos/listToolBar.tsx +184 -0
- package/packages/table/src/demos/no-option.tsx +113 -0
- package/packages/table/src/demos/no-title.tsx +167 -0
- package/packages/table/src/demos/normal.tsx +124 -0
- package/packages/table/src/demos/open-rules.tsx +187 -0
- package/packages/table/src/demos/pollinga.tsx +129 -0
- package/packages/table/src/demos/renderTable.tsx +159 -0
- package/packages/table/src/demos/rtl_table.tsx +137 -0
- package/packages/table/src/demos/search.tsx +46 -0
- package/packages/table/src/demos/search_option.tsx +66 -0
- package/packages/table/src/demos/single-test.tsx +254 -0
- package/packages/table/src/demos/single.tsx +242 -0
- package/packages/table/src/demos/split.tsx +200 -0
- package/packages/table/src/demos/table-nested.tsx +162 -0
- package/packages/table/src/demos/theme.tsx +235 -0
- package/packages/table/src/demos/valueType.tsx +136 -0
- package/packages/table/src/demos/valueTypeDate.tsx +138 -0
- package/packages/table/src/demos/valueTypeNumber.tsx +117 -0
- package/packages/table/src/demos/valueType_select.tsx +188 -0
- package/packages/table/src/index.tsx +96 -0
- package/packages/table/src/style/index.ts +178 -0
- package/packages/table/src/typing.ts +585 -0
- package/packages/table/src/useFetchData.tsx +464 -0
- package/packages/table/src/utils/cellRenderToFromItem.tsx +360 -0
- package/packages/table/src/utils/columnRender.tsx +220 -0
- package/packages/table/src/utils/columnSort.ts +26 -0
- package/packages/table/src/utils/genProColumnToColumn.tsx +192 -0
- package/packages/table/src/utils/index.ts +224 -0
- package/packages/table/src/utils/useDragSort.tsx +210 -0
- package/packages/table/tsconfig.json +26 -0
- package/packages/utils/.fatherrc.ts +5 -0
- package/packages/utils/CHANGELOG.md +1747 -0
- package/packages/utils/README.md +19 -0
- package/packages/utils/package.json +65 -0
- package/packages/utils/src/compareVersions/coverToNewToken.ts +44 -0
- package/packages/utils/src/compareVersions/index.ts +84 -0
- package/packages/utils/src/compareVersions/menuOverlayCompatible.tsx +20 -0
- package/packages/utils/src/compareVersions/openVisibleCompatible.ts +25 -0
- package/packages/utils/src/compatible/compatibleBorder.ts +21 -0
- package/packages/utils/src/components/DropdownFooter/index.tsx +79 -0
- package/packages/utils/src/components/DropdownFooter/style.ts +30 -0
- package/packages/utils/src/components/ErrorBoundary/index.tsx +37 -0
- package/packages/utils/src/components/FieldLabel/index.tsx +222 -0
- package/packages/utils/src/components/FieldLabel/style.ts +121 -0
- package/packages/utils/src/components/FilterDropdown/index.tsx +100 -0
- package/packages/utils/src/components/FilterDropdown/style.ts +28 -0
- package/packages/utils/src/components/InlineErrorFormItem/index.tsx +196 -0
- package/packages/utils/src/components/InlineErrorFormItem/style.ts +76 -0
- package/packages/utils/src/components/LabelIconTip/index.tsx +63 -0
- package/packages/utils/src/components/LabelIconTip/style.ts +49 -0
- package/packages/utils/src/components/ProFormContext/index.tsx +45 -0
- package/packages/utils/src/conversionMomentValue/index.ts +203 -0
- package/packages/utils/src/dateArrayFormatter/index.tsx +60 -0
- package/packages/utils/src/genCopyable/index.tsx +71 -0
- package/packages/utils/src/getFieldPropsOrFormItemProps/index.tsx +22 -0
- package/packages/utils/src/hooks/useDebounceFn/index.ts +47 -0
- package/packages/utils/src/hooks/useDebounceValue/index.ts +32 -0
- package/packages/utils/src/hooks/useDeepCompareEffect/index.ts +42 -0
- package/packages/utils/src/hooks/useDeepCompareMemo/index.ts +22 -0
- package/packages/utils/src/hooks/useDocumentTitle/index.ts +19 -0
- package/packages/utils/src/hooks/useFetchData/index.tsx +60 -0
- package/packages/utils/src/hooks/useForceRender/index.ts +9 -0
- package/packages/utils/src/hooks/useLatest/index.ts +10 -0
- package/packages/utils/src/hooks/usePrevious/index.ts +11 -0
- package/packages/utils/src/hooks/useReactiveRef/index.ts +21 -0
- package/packages/utils/src/hooks/useRefCallback/index.ts +42 -0
- package/packages/utils/src/hooks/useRefFunction/index.ts +11 -0
- package/packages/utils/src/index.tsx +158 -0
- package/packages/utils/src/isBrowser/index.ts +24 -0
- package/packages/utils/src/isDeepEqualReact/index.ts +96 -0
- package/packages/utils/src/isDropdownValueType/index.ts +13 -0
- package/packages/utils/src/isImg/index.ts +4 -0
- package/packages/utils/src/isNil/index.ts +2 -0
- package/packages/utils/src/isUrl/index.ts +17 -0
- package/packages/utils/src/merge/index.ts +38 -0
- package/packages/utils/src/nanoid/index.ts +41 -0
- package/packages/utils/src/omitBoolean/index.ts +11 -0
- package/packages/utils/src/omitUndefined/index.ts +18 -0
- package/packages/utils/src/omitUndefinedAndEmptyArr/index.ts +15 -0
- package/packages/utils/src/parseValueToMoment/index.ts +39 -0
- package/packages/utils/src/pickProFormItemProps/index.tsx +44 -0
- package/packages/utils/src/pickProProps/index.tsx +16 -0
- package/packages/utils/src/proFieldParsingText/index.tsx +142 -0
- package/packages/utils/src/runFunction/index.ts +7 -0
- package/packages/utils/src/stringify/index.ts +13 -0
- package/packages/utils/src/transformKeySubmitValue/index.ts +207 -0
- package/packages/utils/src/typing.ts +767 -0
- package/packages/utils/src/useEditableArray/index.tsx +1134 -0
- package/packages/utils/src/useEditableMap/index.tsx +236 -0
- package/packages/utils/src/useMediaQuery/index.ts +109 -0
- package/packages/utils/src/useMediaQuery/query.ts +19 -0
- package/packages/utils/src/useMountMergeState/index.ts +3 -0
- package/packages/utils/tsconfig.json +21 -0
- package/pnpm-workspace.yaml +2 -0
- package/public/CNAME +1 -0
- package/public/favicon.ico +0 -0
- package/public/icon.png +0 -0
- package/public/sitemap.xml +458 -0
- package/scripts/bootstrap.js +108 -0
- package/scripts/changelogs.js +10 -0
- package/scripts/checkDeps.js +166 -0
- package/scripts/checkPublish.js +10 -0
- package/scripts/createRelease.js +125 -0
- package/scripts/gen_version.js +34 -0
- package/scripts/generateSizeLimit.js +38 -0
- package/scripts/issue.js +91 -0
- package/scripts/preDeploy.js +18 -0
- package/scripts/readApi.mjs +145 -0
- package/scripts/release.js +184 -0
- package/scripts/replaceEs.js +22 -0
- package/scripts/replaceLib.js +22 -0
- package/scripts/replaceLodash.js +21 -0
- package/scripts/syncTNPM.js +19 -0
- package/scripts/utils/exec.js +23 -0
- package/scripts/utils/getPackages.js +8 -0
- package/scripts/utils/isNextVersion.js +7 -0
- package/scripts/verifyCommit.js +28 -0
- package/tsconfig.json +39 -9
- package/typings.d.ts +6 -0
- package/vercel.json +7 -0
- package/vitest.config.ts +48 -0
- package/.idea/modules.xml +0 -8
- package/.idea/test-components.iml +0 -12
- package/.idea/vcs.xml +0 -6
- package/build/components/ActionBar/index.d.ts +0 -17
- package/build/components/ActionBar/type.d.ts +0 -82
- package/build/components/DataChart/index.d.ts +0 -7
- package/build/components/DataChart/type.d.ts +0 -50
- package/build/components/DataTable/index.d.ts +0 -9
- package/build/components/DataTable/locales/en-US.d.ts +0 -4
- package/build/components/DataTable/locales/zh-CN.d.ts +0 -4
- package/build/components/DataTable/type.d.ts +0 -117
- package/build/components/DragTable/index.d.ts +0 -9
- package/build/components/DragTable/type.d.ts +0 -22
- package/build/components/FileTag/index.d.ts +0 -9
- package/build/components/FileTag/locales/en-US.d.ts +0 -5
- package/build/components/FileTag/locales/zh-CN.d.ts +0 -5
- package/build/components/FileTag/type.d.ts +0 -35
- package/build/components/HtmlRender/index.d.ts +0 -10
- package/build/components/HtmlRender/type.d.ts +0 -13
- package/build/components/IconRender/index.d.ts +0 -9
- package/build/components/IconRender/type.d.ts +0 -9
- package/build/components/ThemeListener/index.d.ts +0 -10
- package/build/components/ThemeListener/type.d.ts +0 -10
- package/build/components/ThemeSetter/index.d.ts +0 -9
- package/build/components/UserCard/index.d.ts +0 -9
- package/build/components/UserCard/locales/en-US.d.ts +0 -10
- package/build/components/UserCard/locales/zh-CN.d.ts +0 -10
- package/build/components/UserCard/type.d.ts +0 -52
- package/build/components/UserSelector/index.d.ts +0 -8
- package/build/components/UserSelector/locales/en-US.d.ts +0 -5
- package/build/components/UserSelector/locales/zh-CN.d.ts +0 -5
- package/build/components/UserSelector/type.d.ts +0 -60
- package/build/index.d.ts +0 -78
- package/build/index.js +0 -28
- package/build/index.js.LICENSE.txt +0 -1733
- package/build/locales/en-US.d.ts +0 -20
- package/build/locales/zh-CN.d.ts +0 -20
- package/build/services/constants/commonConstant.d.ts +0 -6
- package/build/services/constants/dbConstant.d.ts +0 -4
- package/build/services/constants/iconConstant.d.ts +0 -4
- package/build/services/constants/locales/en-US.d.ts +0 -8
- package/build/services/constants/locales/zh-CN.d.ts +0 -8
- package/build/services/enums/eventEnum.d.ts +0 -10
- package/build/services/enums/storageEnum.d.ts +0 -10
- package/build/services/types/commonType.d.ts +0 -42
- package/build/services/utils/dbUtil.d.ts +0 -5
- package/build/services/utils/eventUtil.d.ts +0 -5
- package/build/services/utils/objectUtil.d.ts +0 -5
- package/build/services/utils/renderUtil.d.ts +0 -6
- package/build/services/utils/resourceUtil.d.ts +0 -12
- package/build/services/utils/storageUtil.d.ts +0 -5
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: ProForm - 高级表单
|
|
3
|
+
atomId: ProForm
|
|
4
|
+
order: 1
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ProForm 高级表单
|
|
8
|
+
|
|
9
|
+
ProForm 在原来的 Form 的基础上增加了一些语法糖和更多的布局设置,帮助我们快速地开发一个表单,同时添加了一些默认行为,让我们的表单默认好用。
|
|
10
|
+
|
|
11
|
+
分步表单、Modal 表单、Drawer 表单、查询表单、轻量筛选等多种 layout 可以覆盖大部分的使用场景,让我们脱离复杂而且繁琐的表单布局工作,用更少的代码完成更多的功能。
|
|
12
|
+
|
|
13
|
+
- 如果想要设置默认值,请使用 `initialValues`,任何直接使用组件 `value` 和 `onChange` 的方式都有可能导致值绑定失效
|
|
14
|
+
- 如果想要表单联动或者做一些依赖,可以使用 render props 模式,ProFormDependency 绝对是最好的选择
|
|
15
|
+
- ProForm 的 onFinish 与 antd 的 Form 不同,支持 Promise,如果你正常返回会自动为你设置按钮的加载效果
|
|
16
|
+
- 如果想要监听某个值,建议使用 `onValuesChange`。保持单向的数据流无论对开发者还是维护者都大有裨益
|
|
17
|
+
- ProForm 没有黑科技,只是 antd 的 Form 的封装,如果要使用自定义的组件可以用 Form.Item 包裹后使用,支持混用
|
|
18
|
+
|
|
19
|
+
```tsx | pure
|
|
20
|
+
// 设置整体默认值
|
|
21
|
+
<ProForm initialValues={obj} />
|
|
22
|
+
|
|
23
|
+
// 设置单个控件的
|
|
24
|
+
<ProForm
|
|
25
|
+
onValuesChange={(changeValues) => console.log(changeValues)}
|
|
26
|
+
>
|
|
27
|
+
<ProFormText initialValue="prop"/>
|
|
28
|
+
</ProForm>
|
|
29
|
+
|
|
30
|
+
// 相互依赖的组件联动
|
|
31
|
+
<ProForm>
|
|
32
|
+
<Form.Item noStyle shouldUpdate>
|
|
33
|
+
{(form) => {
|
|
34
|
+
return (
|
|
35
|
+
<ProFormSelect
|
|
36
|
+
options={[
|
|
37
|
+
{
|
|
38
|
+
value: "chapter",
|
|
39
|
+
label: "盖章后生效",
|
|
40
|
+
},
|
|
41
|
+
]}
|
|
42
|
+
width="md"
|
|
43
|
+
name="useMode"
|
|
44
|
+
label={`与${form.getFieldValue("name")}合同约定生效方式`}
|
|
45
|
+
/>
|
|
46
|
+
);
|
|
47
|
+
}}
|
|
48
|
+
</Form.Item>
|
|
49
|
+
</ProForm>;
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
// 使用自定义组件
|
|
53
|
+
<ProForm>
|
|
54
|
+
<Form.Item name="switch" label="Switch" valuePropName="checked">
|
|
55
|
+
<Switch />
|
|
56
|
+
</Form.Item>
|
|
57
|
+
</ProForm>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 何时使用 ProForm?
|
|
61
|
+
|
|
62
|
+
当你想快速实现一个表单但不想花太多时间去布局时 ProForm 是最好的选择。
|
|
63
|
+
|
|
64
|
+
ProForm 是基于 antd Form 的可降级封装,与 antd 功能完全对齐,但是在其之上还增加一些预设行为和多种布局。这些布局之间可以无缝切换,并且拥有公共的 API。
|
|
65
|
+
|
|
66
|
+
| 布局 | 使用场景 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| [ProForm](/components/form#proform) | 标准 Form,增加了 `onFinish` 中自动 `loading` 和根据 `request` 自动获取默认值的功能。 |
|
|
69
|
+
| [ModalForm\|DrawerForm](/components/modal-form) | 在 ProForm 的基础上增加了 `trigger` ,无需维护 `visible` 状态。 |
|
|
70
|
+
| [QueryFilter](/components/query-filter) | 一般用于作为筛选表单,需要配合其他数据展示组件使用。 |
|
|
71
|
+
| [LightFilter](/components/query-filter) | 一般用于作为行内内置的筛选,比如卡片操作栏和表格操作栏。 |
|
|
72
|
+
| [StepsForm](/components/steps-form) | 分步表单,需要配置 StepForm 使用。 |
|
|
73
|
+
|
|
74
|
+
<code src="../demos/layout-change.tsx" title="Form 的 layout 切换"></code>
|
|
75
|
+
|
|
76
|
+
## 数据转化
|
|
77
|
+
|
|
78
|
+
很多时候组件需要的数据和后端需要的数据之间不能完全匹配,ProForm 为了解决这个问题提供了 `transform` 和 `convertValue` 两个 API 来处理这种情况。
|
|
79
|
+
|
|
80
|
+
### convertValue 前置转化
|
|
81
|
+
|
|
82
|
+
convertValue 发生在组件获得数据之前,一般是后端直接给前端的数据,有时需要精加工一下。
|
|
83
|
+
|
|
84
|
+
```tsx | pure
|
|
85
|
+
export type SearchConvertKeyFn =
|
|
86
|
+
(value: any, field: NamePath)=>string | boolean | Record<string, any>;
|
|
87
|
+
/**
|
|
88
|
+
* @name 获取时转化值,一般用于将数据格式化为组件接收的格式
|
|
89
|
+
* @param value 字段的值
|
|
90
|
+
* @param namePath 字段的name
|
|
91
|
+
* @returns 字段新的值
|
|
92
|
+
*
|
|
93
|
+
* @example a,b => [a,b]
|
|
94
|
+
* convertValue:(value,namePath)=>value.split(",")
|
|
95
|
+
* @example string =>json
|
|
96
|
+
* convertValue:(value,namePath)=>JSON.parse(value)
|
|
97
|
+
* @example number =>date
|
|
98
|
+
* convertValue:(value,namePath)=>Moment(value)
|
|
99
|
+
* @example YYYY-MM-DD => date
|
|
100
|
+
* convertValue:(value,namePath)=>Moment(value,"YYYY-MM-DD")
|
|
101
|
+
* @example string => object
|
|
102
|
+
* convertValue:(value,namePath)=>({value,label:value})
|
|
103
|
+
*/
|
|
104
|
+
convertValue?: SearchConvertKeyFn;
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### transform 提交时转化
|
|
108
|
+
|
|
109
|
+
transform 发生在提交的时候,一般来说都是吐给后端的存在数据库里的数据。
|
|
110
|
+
|
|
111
|
+
为了方便大家使用,`ProFormDependency` 和 `formRef` 都支持了 `transform`,可以获取到被转化后的值。
|
|
112
|
+
|
|
113
|
+
```tsx | pure
|
|
114
|
+
<ProFormDependency>
|
|
115
|
+
{(value, form) => {
|
|
116
|
+
// value 被 transform转化之后的值
|
|
117
|
+
// form 当前的formRef,可以获取未转化的值
|
|
118
|
+
return ReactNode;
|
|
119
|
+
}}
|
|
120
|
+
</ProFormDependency>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
formRef 内置了几个方法来获取转化之后的值,这也是相比 antd 的 Form 新增的功能,详细可以看 ProFormInstance 的类型定义。
|
|
124
|
+
|
|
125
|
+
```tsx | pure
|
|
126
|
+
/** 获取被 ProForm 格式化后的所有数据 */
|
|
127
|
+
getFieldsFormatValue?: (nameList?: true) => T;
|
|
128
|
+
/** 获取格式化之后的单个数据 */
|
|
129
|
+
getFieldFormatValue?: (nameList?: NamePath) => T;
|
|
130
|
+
/** 获取格式化之后的单个数据 */
|
|
131
|
+
getFieldFormatValueObject?: (nameList?: NamePath) => T;
|
|
132
|
+
/** 验字段后返回格式化之后的所有数据*/
|
|
133
|
+
validateFieldsReturnFormatValue?: (nameList?: NamePath[]) => Promise<T>;
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
```tsx | pure
|
|
137
|
+
export type SearchTransformKeyFn = (
|
|
138
|
+
value: any,
|
|
139
|
+
namePath: string,
|
|
140
|
+
allValues: any,
|
|
141
|
+
) => string | Record<string, any>;
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* @name 提交时转化值,一般用于将值转化为提交的数据
|
|
145
|
+
* @param value 字段的值
|
|
146
|
+
* @param namePath 字段的name
|
|
147
|
+
* @param allValues 所有的字段
|
|
148
|
+
* @returns 字段新的值,如果返回对象,会和所有值深度 merge 一次
|
|
149
|
+
*
|
|
150
|
+
* @example {name:[a,b] => {name:a,b }
|
|
151
|
+
* transform: (value,namePath,allValues)=> value.join(",")
|
|
152
|
+
* @example {name: string => { newName:string }
|
|
153
|
+
* transform: (value,namePath,allValues)=> { newName:value }
|
|
154
|
+
* @example {name:moment} => {name:string
|
|
155
|
+
* transform: (value,namePath,allValues)=> value.format("YYYY-MM-DD")
|
|
156
|
+
* @example {name:moment}=> {name:时间戳}
|
|
157
|
+
* transform: (value,namePath,allValues)=> value.valueOf()
|
|
158
|
+
* @example {name:{value,label}} => { name:string}
|
|
159
|
+
* transform: (value,namePath,allValues)=> value.value
|
|
160
|
+
* @example {name:{value,label}} => { valueName,labelName }
|
|
161
|
+
* transform: (value)=>{valueName:value.value,labelName:value.name}
|
|
162
|
+
*/
|
|
163
|
+
transform?: SearchTransformKeyFn;
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## 代码示例
|
|
167
|
+
|
|
168
|
+
<code src="../demos/base.tsx" title="基本使用"></code>
|
|
169
|
+
|
|
170
|
+
### 标签与表单项布局
|
|
171
|
+
|
|
172
|
+
除了 `LightFilter` 和 `QueryFilter` 这样固定布局的表单样式,其他表单布局支持配置与 `antd` 一致的三种布局方式。
|
|
173
|
+
|
|
174
|
+
<code src="../demos/form-layout.tsx" ></code>
|
|
175
|
+
|
|
176
|
+
### 栅格化布局
|
|
177
|
+
|
|
178
|
+
同时支持在 `ProForm`, `SchemaForm`, `ModalForm`, `DrawerForm`, `StepsForm` 中使用
|
|
179
|
+
|
|
180
|
+
<code src="../demos/form-layout-grid.tsx" ></code>
|
|
181
|
+
|
|
182
|
+
<code src="../demos/dependency.tsx" title="表单联动"></code>
|
|
183
|
+
|
|
184
|
+
<code src="../demos/formRef.tsx" description="
|
|
185
|
+
你可以通过 `formRef` 获取到表单实例的引用,通过引用可以调用表单方法实现表单重置,设置表单,获取表单值等功能。" title="表单方法调用"></code>
|
|
186
|
+
|
|
187
|
+
### 同步提交结果到 url
|
|
188
|
+
|
|
189
|
+
打开时也会把 url 的参数设置为默认值,支持 transform, 但是要注意字段的映射。
|
|
190
|
+
|
|
191
|
+
<code src="../demos/sync-to-url.tsx" ></code>
|
|
192
|
+
|
|
193
|
+
<code src="../demos/money.tsx" title="金额"></code>
|
|
194
|
+
|
|
195
|
+
<code src="../demos/layout-footer.tsx" iframe="580" title="固定页脚"></code>
|
|
196
|
+
|
|
197
|
+
<code src="../demos/pro-form-editableTable.tsx" title="ProForm 和 EditableTable 同时使用"></code>
|
|
198
|
+
|
|
199
|
+
## 劫持渲染函数的组件
|
|
200
|
+
|
|
201
|
+
FormItemRender 用来专门处理,采用 render props 的方式来组织代码,更好的聚合带请求的业务代码,也更好的完成自定义表单项的功能
|
|
202
|
+
|
|
203
|
+
在中后台项目表单是必不可少的,通常还伴随着一些非标准控件、复杂的表单项,此时需要借助自定义表单项,而完成一个自定义表单项至少需要完成 value 和 onChange 的实现。而如果该组件只被使用一次且需要的上下文参数很多,那么封装起来就是很不讨好,因此就有了该组件。
|
|
204
|
+
|
|
205
|
+
- 使用 useControlModel 来快速的创建一个自定义表单项,同时支持单实例或多实例(适用于封装自定义表单组件,在多个地方使用的场景)
|
|
206
|
+
- 使用 withFormItemRender 来生成一个 FormItemRender,可以以内联的方式去组织代码(适用于只被使用一次或需要的上下文参数很多的场景)
|
|
207
|
+
- 使用 FormControlRender 来把一个 form 组件转换成 render props 的形式,在特定情况下是很有用的(例如@alipay/techui-rule-tree 组件的一些设计缺陷,render 里面的组件不能调用 onChange 方法,这个时候包裹一下就可以解决)
|
|
208
|
+
|
|
209
|
+
> 当然,也不一定非要用 withFormItemRender,Form.Item 是可以嵌套使用,也可以 Form.Item 嵌套外层设置 noStyle 的方式来组织你的代码,这样会多一些 div 的元素包裹,如果对你样式没有影响也可以使用
|
|
210
|
+
|
|
211
|
+
### 使用 useControlModel
|
|
212
|
+
|
|
213
|
+
从一个官网例子开始[自定义表单项](https://ant.design/components/form-cn#components-form-demo-customized-form-controls)
|
|
214
|
+
|
|
215
|
+
<code src="../demos/antd.tsx" description="官网例子"></code> <code src="../demos/antd.modify.tsx" description="使用和hooks改造"></code> <code src="../demos/antd.nest.tsx" description="嵌套使用"></code>
|
|
216
|
+
|
|
217
|
+
### FormControlRender
|
|
218
|
+
|
|
219
|
+
使用 FormControlRender 既可以内联的书写代码,又可以更灵活的编写逻辑,适用于一些组件外层包裹了 ProForm.Item 或者 Form.Item。
|
|
220
|
+
|
|
221
|
+
有的时候需要使用 Form.Item.useStatus,但必须满足 hooks 的使用规范,这使得开发就必须提取成单独的组件来使用,没办法内联使用,而 FormControlRender 很好的解决这种情况
|
|
222
|
+
|
|
223
|
+
<code src="../demos/form-control-render.tsx"></code>
|
|
224
|
+
|
|
225
|
+
### FormItemRender & ProFormItemRender
|
|
226
|
+
|
|
227
|
+
使用 FormItemRender 或者 ProFormItemRender 可以更方便的在 Form 里书写表单项
|
|
228
|
+
|
|
229
|
+
<code src="../demos/form-item-render.tsx"></code>
|
|
230
|
+
|
|
231
|
+
<code src="../demos/linkage-customization.tsx" debug></code>
|
|
232
|
+
|
|
233
|
+
<code src="../demos/pro-form-dependency.debug.tsx" debug></code>
|
|
234
|
+
|
|
235
|
+
<code src="../demos/label-col.tsx" debug></code>
|
|
236
|
+
|
|
237
|
+
## ProForm
|
|
238
|
+
|
|
239
|
+
ProForm 是对 antd Form 的再封装,如果你想要自定义表单元素,ProForm 与 antd 的方法是相同的,你仍然可以用 FormItem + 自定义组件的方式来自定义。当然这样不会影响到别的组件,QueryFilter 等组件同理。
|
|
240
|
+
|
|
241
|
+
> antd 的 Form api 查看[这里](https://ant.design/components/form-cn/),initialValues 相关知识查看[这里](https://procomponents.ant.design/docs/faq)
|
|
242
|
+
|
|
243
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
244
|
+
| --- | --- | --- | --- |
|
|
245
|
+
| onFinish | 提交表单且数据验证成功后回调事件,同 antd 4 `Form` 组件 API | `(values)=>Promise<void> | void` | - |
|
|
246
|
+
| onReset | 点击重置按钮的回调 | `(e)=>void` | - |
|
|
247
|
+
| submitter | 提交按钮相关配置 | `boolean` \| `SubmitterProps` | `true` |
|
|
248
|
+
| syncToUrl | 同步参数到 url 上,url 只支持 string,在使用之前最好读一下[url 中的参数类型](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) | `true` \| `(values,type)=>values` | - |
|
|
249
|
+
| syncToInitialValues | 同步结果到 initialValues,默认为 true,如果为 false,form.reset 的时候将会忽略从 url 上获取的数据 | `boolean` | `true` |
|
|
250
|
+
| dateFormatter | 自动格式化数据,主要是 moment 的表单,支持 string 和 number 两种模式,此外还支持指定函数进行格式化。 | `string\| number \| ((value: Moment, valueType: string) => string \| number) \| false` | `string` |
|
|
251
|
+
| omitNil | ProForm 会自动清空 null 和 undefined 的数据,如果你约定了 nil 代表某种数据,可以设置为 false 关闭此功能 | `boolean` | `true` |
|
|
252
|
+
| params | 发起网络请求的参数,与 request 配合使用 | `Record` | - |
|
|
253
|
+
| request | 发起网络请求的参数,返回值会覆盖给 initialValues | `(params)=>Promise<data>` | - |
|
|
254
|
+
| isKeyPressSubmit | 是否使用回车提交 | `boolean` | - |
|
|
255
|
+
| formRef | 获取表单所使用的 form | `MutableRefObject<Instance<T>>` | - |
|
|
256
|
+
| autoFocusFirstInput | 自动 focus 表单第一个输入框 | `boolean` | `true` |
|
|
257
|
+
| grid | 开启栅格化模式,宽度默认百分比,请使用 `colProps` 控制宽度 [查看示例](/components/form#栅格化布局) | `boolean` | - |
|
|
258
|
+
| rowProps | 开启 `grid` 模式时传递给 `Row`, 仅在`ProFormGroup`, `ProFormList`, `ProFormFieldSet` 中有效 | [RowProps](https://ant.design/components/grid/#Row) | { gutter: 8 } |
|
|
259
|
+
| [(...)](https://ant.design/components/form-cn/) | 注意 `LightFilter` 和 `QueryFilter` 仅支持除 `wrapperCol` \| `labelCol` \| `layout` 外的其他 antd `Form` 组件参数 | - | - |
|
|
260
|
+
|
|
261
|
+
### ProFormInstance
|
|
262
|
+
|
|
263
|
+
ProFormInstance 与 antd 的 form 相比增加了一些能力。
|
|
264
|
+
|
|
265
|
+
```tsx | pure
|
|
266
|
+
/**
|
|
267
|
+
* 获取被 ProForm 格式化后的所有数据
|
|
268
|
+
* @param nameList boolean
|
|
269
|
+
* @returns T
|
|
270
|
+
*
|
|
271
|
+
* @example getFieldsFormatValue() ->返回所有数据
|
|
272
|
+
* @example getFieldsFormatValue(true) ->返回所有数据,即使没有被 form 托管的
|
|
273
|
+
*/
|
|
274
|
+
getFieldsFormatValue?: (nameList?: true) => T;
|
|
275
|
+
/**
|
|
276
|
+
* 获取被 ProForm 格式化后的单个数据
|
|
277
|
+
* @param nameList (string|number)[]
|
|
278
|
+
* @returns T
|
|
279
|
+
* @example {a:{b:value}} -> getFieldFormatValue(['a', 'b']) -> value
|
|
280
|
+
*/
|
|
281
|
+
/** 获取格式化之后的单个数据 */
|
|
282
|
+
getFieldFormatValue?: (nameList?: NamePath) => T;
|
|
283
|
+
/**
|
|
284
|
+
* 获取被 ProForm 格式化后的单个数据, 包含他的 name
|
|
285
|
+
* @param nameList (string|number)[]
|
|
286
|
+
* @returns T
|
|
287
|
+
* @example
|
|
288
|
+
* {a:{b:value}} -> getFieldFormatValueObject(['a', 'b']) -> {a:{b:value}}
|
|
289
|
+
*/
|
|
290
|
+
getFieldFormatValueObject?: (nameList?: NamePath) => T;
|
|
291
|
+
/**
|
|
292
|
+
*验字段后返回格式化之后的所有数据
|
|
293
|
+
* @param nameList (string|number)[]
|
|
294
|
+
* @returns T
|
|
295
|
+
*
|
|
296
|
+
* @example validateFieldsReturnFormatValue -> {a:{b:value}}
|
|
297
|
+
*/
|
|
298
|
+
validateFieldsReturnFormatValue?: (nameList?: NamePath[]) => Promise<T>;
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### ProForm.Group
|
|
302
|
+
|
|
303
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
304
|
+
| -------- | -------------------- | ----------------- | ------ |
|
|
305
|
+
| title | 标题 | `string` | - |
|
|
306
|
+
| children | 表单控件或者其他元素 | `React.ReactNode` | - |
|
|
307
|
+
|
|
308
|
+
#### submitter
|
|
309
|
+
|
|
310
|
+
虽然我们希望不要对 submitter 进行修改,但在使用中修改是很常见的需求,ProForm 的各个组件都使用了同样的 API 来支持需求。
|
|
311
|
+
|
|
312
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
313
|
+
| --- | --- | --- | --- |
|
|
314
|
+
| onSubmit | 提交方法 | `()=>void` | - |
|
|
315
|
+
| onReset | 重置方法 | `()=>void` | - |
|
|
316
|
+
| searchConfig | 搜索的配置,一般用来配置文本 | `{resetText,submitText}` | - |
|
|
317
|
+
| submitButtonProps | 提交按钮的 props | [ButtonProps](https://ant.design/components/button-cn/) | - |
|
|
318
|
+
| resetButtonProps | 重置按钮的 props | [ButtonProps](https://ant.design/components/button-cn/) | - |
|
|
319
|
+
| render | 自定义操作的渲染 | `false`\|`(props,dom:JSX[])=>ReactNode[]` | - |
|
|
320
|
+
|
|
321
|
+
> render 的第二个参数是默认的 dom 数组,第一个是提交按钮,第二个是重置按钮。
|
|
322
|
+
|
|
323
|
+
```tsx | pure
|
|
324
|
+
<ProForm
|
|
325
|
+
submitter={{
|
|
326
|
+
// 配置按钮文本
|
|
327
|
+
searchConfig: {
|
|
328
|
+
resetText: '重置',
|
|
329
|
+
submitText: '提交',
|
|
330
|
+
},
|
|
331
|
+
// 配置按钮的属性
|
|
332
|
+
resetButtonProps: {
|
|
333
|
+
style: {
|
|
334
|
+
// 隐藏重置按钮
|
|
335
|
+
display: 'none',
|
|
336
|
+
},
|
|
337
|
+
},
|
|
338
|
+
submitButtonProps: {},
|
|
339
|
+
|
|
340
|
+
// 完全自定义整个区域
|
|
341
|
+
render: (props, doms) => {
|
|
342
|
+
console.log(props);
|
|
343
|
+
return [
|
|
344
|
+
<button
|
|
345
|
+
type="button"
|
|
346
|
+
key="rest"
|
|
347
|
+
onClick={() => props.form?.resetFields()}
|
|
348
|
+
>
|
|
349
|
+
重置
|
|
350
|
+
</button>,
|
|
351
|
+
<button
|
|
352
|
+
type="button"
|
|
353
|
+
key="submit"
|
|
354
|
+
onClick={() => props.form?.submit?.()}
|
|
355
|
+
>
|
|
356
|
+
提交
|
|
357
|
+
</button>,
|
|
358
|
+
];
|
|
359
|
+
},
|
|
360
|
+
}}
|
|
361
|
+
/>
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### formRef
|
|
365
|
+
|
|
366
|
+
该属性是 ProForm 在原有的 Antd 的 `FormInstance` 的基础上做的一个上层分装,增加了一些更加便捷的方法。使用方式如下:
|
|
367
|
+
|
|
368
|
+
<code src="../demos/formRef.tsx" title="formRef的使用"></code>
|
|
369
|
+
|
|
370
|
+
```tsx | pure
|
|
371
|
+
import type { ProFormInstance } from '@ant-design/pro-components';
|
|
372
|
+
import {
|
|
373
|
+
ProForm,
|
|
374
|
+
ProFormDatePicker,
|
|
375
|
+
ProFormText,
|
|
376
|
+
} from '@ant-design/pro-components';
|
|
377
|
+
import { Button, message } from 'antd';
|
|
378
|
+
import moment from 'dayjs';
|
|
379
|
+
import { useRef } from 'react';
|
|
380
|
+
|
|
381
|
+
const waitTime = (time: number = 100) => {
|
|
382
|
+
return new Promise((resolve) => {
|
|
383
|
+
setTimeout(() => {
|
|
384
|
+
resolve(true);
|
|
385
|
+
}, time);
|
|
386
|
+
});
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
export default () => {
|
|
390
|
+
const formRef = useRef<ProFormInstance>();
|
|
391
|
+
const onFill = () => {
|
|
392
|
+
formRef?.current?.setFieldsValue({
|
|
393
|
+
name: '张三',
|
|
394
|
+
company: '蚂蚁金服',
|
|
395
|
+
});
|
|
396
|
+
};
|
|
397
|
+
|
|
398
|
+
const getCompanyName = () => {
|
|
399
|
+
message.info(`公司名称为 "${formRef?.current?.getFieldValue('company')}"`);
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
const getFormatValues = () => {
|
|
403
|
+
console.log(
|
|
404
|
+
'格式化后的所有数据:',
|
|
405
|
+
formRef.current?.getFieldsFormatValue?.(),
|
|
406
|
+
);
|
|
407
|
+
};
|
|
408
|
+
|
|
409
|
+
const validateAndGetFormatValue = async () => {
|
|
410
|
+
const values = await formRef.current?.validateFieldsReturnFormatValue?.();
|
|
411
|
+
console.log('校验表单并返回格式化后的所有数据:', values);
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
return (
|
|
415
|
+
<ProForm
|
|
416
|
+
title="新建表单"
|
|
417
|
+
formRef={formRef}
|
|
418
|
+
submitter={{
|
|
419
|
+
render: (props, doms) => {
|
|
420
|
+
return [
|
|
421
|
+
...doms,
|
|
422
|
+
<Button htmlType="button" onClick={onFill} key="edit">
|
|
423
|
+
一键填写
|
|
424
|
+
</Button>,
|
|
425
|
+
<Button htmlType="button" onClick={getCompanyName} key="read">
|
|
426
|
+
读取公司
|
|
427
|
+
</Button>,
|
|
428
|
+
<Button.Group key="refs" style={{ display: 'block' }}>
|
|
429
|
+
<Button htmlType="button" onClick={getFormatValues} key="format">
|
|
430
|
+
获取格式化后的所有数据
|
|
431
|
+
</Button>
|
|
432
|
+
<Button
|
|
433
|
+
htmlType="button"
|
|
434
|
+
onClick={validateAndGetFormatValue}
|
|
435
|
+
key="format2"
|
|
436
|
+
>
|
|
437
|
+
校验表单并返回格式化后的所有数据
|
|
438
|
+
</Button>
|
|
439
|
+
</Button.Group>,
|
|
440
|
+
];
|
|
441
|
+
},
|
|
442
|
+
}}
|
|
443
|
+
onFinish={async (values) => {
|
|
444
|
+
await waitTime(2000);
|
|
445
|
+
console.log(values);
|
|
446
|
+
message.success('提交成功');
|
|
447
|
+
return true;
|
|
448
|
+
}}
|
|
449
|
+
>
|
|
450
|
+
<ProFormText
|
|
451
|
+
width="md"
|
|
452
|
+
name="name"
|
|
453
|
+
label="签约客户名称"
|
|
454
|
+
tooltip="最长为 24 位"
|
|
455
|
+
placeholder="请输入名称"
|
|
456
|
+
/>
|
|
457
|
+
|
|
458
|
+
<ProFormText
|
|
459
|
+
width="md"
|
|
460
|
+
name="company"
|
|
461
|
+
label="我方公司名称"
|
|
462
|
+
placeholder="请输入名称"
|
|
463
|
+
/>
|
|
464
|
+
<ProFormDatePicker name="date" initialValue={moment('2021-08-09')} />
|
|
465
|
+
</ProForm>
|
|
466
|
+
);
|
|
467
|
+
};
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
`ProFormInstance` 在原先 `FormInstance` 的基础上增加了如下方法:
|
|
471
|
+
|
|
472
|
+
| 方法名 | 使用描述 | 备注 |
|
|
473
|
+
| :-: | :-: | :-: |
|
|
474
|
+
| `getFieldsFormatValue` | 使用方法与 `FormInstance` 的 `getFieldsValue` 方法相同,将返回格式化后的所有数据 | |
|
|
475
|
+
| `getFieldFormatValue` | 使用方法与 `FormInstance` 的 `getFieldValue` 方法相同,将返回格式化后的指定数据 | |
|
|
476
|
+
| `validateFieldsReturnFormatValue` | 使用方法与 `FormInstance` 的 `validateFields` 方法相同,验证通过后将返回格式化后的所有数据 | |
|
|
477
|
+
|
|
478
|
+
<code src="../demos/modalform-test.tsx" debug></code>
|
|
479
|
+
|
|
480
|
+
<code src="../demos/params-formref.tsx" debug></code>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export { default as ProFormCaptcha } from './Captcha';
|
|
2
|
+
export type { CaptFieldRef, ProFormCaptchaProps } from './Captcha';
|
|
3
|
+
export { default as ProFormCascader } from './Cascader';
|
|
4
|
+
export { default as ProFormCheckbox } from './Checkbox';
|
|
5
|
+
export type {
|
|
6
|
+
ProFormCheckboxGroupProps,
|
|
7
|
+
ProFormCheckboxProps,
|
|
8
|
+
} from './Checkbox';
|
|
9
|
+
export { default as ProFormColorPicker } from './ColorPicker';
|
|
10
|
+
export type { ProFormColorPickerProps } from './ColorPicker';
|
|
11
|
+
export { default as ProFormDateMonthRangePicker } from './DateMonthRangePicker';
|
|
12
|
+
export { default as ProFormDatePicker } from './DatePicker';
|
|
13
|
+
export { default as ProFormDateQuarterRangePicker } from './DateQuarterRangePicker';
|
|
14
|
+
export { default as ProFormDateRangePicker } from './DateRangePicker';
|
|
15
|
+
export { default as ProFormDateTimePicker } from './DateTimePicker';
|
|
16
|
+
export { default as ProFormDateTimeRangePicker } from './DateTimeRangePicker';
|
|
17
|
+
export { default as ProFormDateWeekRangePicker } from './DateWeekRangePicker';
|
|
18
|
+
export { default as ProFormDateYearRangePicker } from './DateYearRangePicker';
|
|
19
|
+
export { default as ProFormDependency } from './Dependency';
|
|
20
|
+
export type { ProFormDependencyProps } from './Dependency';
|
|
21
|
+
export { default as ProFormDigit } from './Digit';
|
|
22
|
+
export type { ProFormDigitProps } from './Digit';
|
|
23
|
+
export { default as ProFormDigitRange } from './DigitRange';
|
|
24
|
+
export type { ProFormDigitRangeProps } from './DigitRange';
|
|
25
|
+
export { default as ProFormField } from './Field';
|
|
26
|
+
export type { ProFormFieldProps } from './Field';
|
|
27
|
+
export { default as ProFormFieldSet } from './FieldSet';
|
|
28
|
+
export type { ProFormFieldSetProps } from './FieldSet';
|
|
29
|
+
export { FormItemProvide, default as ProFormItem } from './FormItem';
|
|
30
|
+
export type { ProFormItemProps } from './FormItem';
|
|
31
|
+
export {
|
|
32
|
+
FormControlRender,
|
|
33
|
+
FormItemRender,
|
|
34
|
+
ProFormItemRender,
|
|
35
|
+
pickControlProps,
|
|
36
|
+
pickControlPropsWithId,
|
|
37
|
+
useControlModel,
|
|
38
|
+
} from './FormItemRender';
|
|
39
|
+
export type { FormControlFC, WithControlPropsType } from './FormItemRender';
|
|
40
|
+
export { default as Group } from './Group';
|
|
41
|
+
export { ProFormList } from './List';
|
|
42
|
+
export type { FormListActionType, ProFormListProps } from './List';
|
|
43
|
+
export { default as ProFormMoney } from './Money';
|
|
44
|
+
export type { ProFormMoneyProps } from './Money';
|
|
45
|
+
export { default as ProFormRadio } from './Radio';
|
|
46
|
+
export type { ProFormRadioGroupProps } from './Radio';
|
|
47
|
+
export { default as ProFormRate } from './Rate';
|
|
48
|
+
export { default as BetaSchemaForm } from './SchemaForm';
|
|
49
|
+
export type { ProFormColumnsType, ProFormLayoutType } from './SchemaForm';
|
|
50
|
+
export { default as ProFormSegmented } from './Segmented';
|
|
51
|
+
export { default as ProFormSelect } from './Select';
|
|
52
|
+
export type { ProFormSelectProps } from './Select';
|
|
53
|
+
export { default as ProFormSlider } from './Slider';
|
|
54
|
+
export type { ProFormSliderProps } from './Slider';
|
|
55
|
+
export { default as Submitter } from './Submitter';
|
|
56
|
+
export type { SubmitterProps } from './Submitter';
|
|
57
|
+
export { default as ProFormSwitch } from './Switch';
|
|
58
|
+
export type { ProFormSwitchProps } from './Switch';
|
|
59
|
+
export { default as ProFormText } from './Text';
|
|
60
|
+
export { default as ProFormTextArea } from './TextArea';
|
|
61
|
+
export { default as ProFormTimePicker } from './TimePicker';
|
|
62
|
+
export { default as ProFormTreeSelect } from './TreeSelect';
|
|
63
|
+
export type { ProFormTreeSelectProps } from './TreeSelect';
|
|
64
|
+
export { default as ProFormUploadButton } from './UploadButton';
|
|
65
|
+
export type { ProFormUploadButtonProps } from './UploadButton';
|
|
66
|
+
export { default as ProFormUploadDragger } from './UploadDragger';
|
|
67
|
+
export type { ProFormUploadDraggerProps } from './UploadDragger';
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import {
|
|
2
|
+
WithControlPropsType,
|
|
3
|
+
useControlModel,
|
|
4
|
+
} from '@ant-design/pro-components';
|
|
5
|
+
import { Button, Form, Input, Select } from 'antd';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
export function PriceInput(
|
|
9
|
+
props: WithControlPropsType<{
|
|
10
|
+
// other props...
|
|
11
|
+
}>,
|
|
12
|
+
) {
|
|
13
|
+
const model = useControlModel(props, ['number', 'currency']);
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<span>
|
|
17
|
+
<Input type="text" {...model.number} style={{ width: 100 }} />
|
|
18
|
+
<Select {...model.currency} style={{ width: 80, margin: '0 8px' }}>
|
|
19
|
+
<Select.Option value="rmb">RMB</Select.Option>
|
|
20
|
+
<Select.Option value="dollar">Dollar</Select.Option>
|
|
21
|
+
</Select>
|
|
22
|
+
</span>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const App: React.FC = () => {
|
|
27
|
+
const onFinish = (values: any) => {
|
|
28
|
+
console.log('Received values from form: ', values);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const checkPrice = (_: any, value: { number: number }) => {
|
|
32
|
+
if (value.number > 0) {
|
|
33
|
+
return Promise.resolve();
|
|
34
|
+
}
|
|
35
|
+
return Promise.reject(new Error('Price must be greater than zero!'));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<Form
|
|
40
|
+
name="customized_form_controls"
|
|
41
|
+
layout="inline"
|
|
42
|
+
onFinish={onFinish}
|
|
43
|
+
initialValues={{
|
|
44
|
+
price: {
|
|
45
|
+
number: 0,
|
|
46
|
+
currency: 'rmb',
|
|
47
|
+
},
|
|
48
|
+
}}
|
|
49
|
+
>
|
|
50
|
+
<Form.Item name="price" label="Price" rules={[{ validator: checkPrice }]}>
|
|
51
|
+
<PriceInput />
|
|
52
|
+
</Form.Item>
|
|
53
|
+
<Form.Item>
|
|
54
|
+
<Button type="primary" htmlType="submit">
|
|
55
|
+
Submit
|
|
56
|
+
</Button>
|
|
57
|
+
</Form.Item>
|
|
58
|
+
</Form>
|
|
59
|
+
);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export default App;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Button, Form, Input, Select, Space } from 'antd';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
export function PriceInput() {
|
|
5
|
+
return (
|
|
6
|
+
<Space size={0}>
|
|
7
|
+
<Form.Item noStyle name={['price', 'number']}>
|
|
8
|
+
<Input type="text" style={{ width: 100 }} />
|
|
9
|
+
</Form.Item>
|
|
10
|
+
<Form.Item noStyle name={['price', 'currency']}>
|
|
11
|
+
<Select style={{ width: 80, margin: '0 8px' }}>
|
|
12
|
+
<Select.Option value="rmb">RMB</Select.Option>
|
|
13
|
+
<Select.Option value="dollar">Dollar</Select.Option>
|
|
14
|
+
</Select>
|
|
15
|
+
</Form.Item>
|
|
16
|
+
</Space>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const App: React.FC = () => {
|
|
21
|
+
const onFinish = (values: any) => {
|
|
22
|
+
console.log('Received values from form: ', values);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const checkPrice = (_: any, value: { number: number }) => {
|
|
26
|
+
if (value.number > 0) {
|
|
27
|
+
return Promise.resolve();
|
|
28
|
+
}
|
|
29
|
+
return Promise.reject(new Error('Price must be greater than zero!'));
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<Form
|
|
34
|
+
name="customized_form_controls"
|
|
35
|
+
layout="inline"
|
|
36
|
+
onFinish={onFinish}
|
|
37
|
+
initialValues={{
|
|
38
|
+
price: {
|
|
39
|
+
number: 0,
|
|
40
|
+
currency: 'rmb',
|
|
41
|
+
},
|
|
42
|
+
}}
|
|
43
|
+
>
|
|
44
|
+
<Form.Item name="price" label="Price" rules={[{ validator: checkPrice }]}>
|
|
45
|
+
<PriceInput />
|
|
46
|
+
</Form.Item>
|
|
47
|
+
<Form.Item>
|
|
48
|
+
<Button type="primary" htmlType="submit">
|
|
49
|
+
Submit
|
|
50
|
+
</Button>
|
|
51
|
+
</Form.Item>
|
|
52
|
+
</Form>
|
|
53
|
+
);
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export default App;
|