plain-design 1.0.0-beta.34 → 1.0.0-beta.37

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. package/dist/plain-design.commonjs.min.js +1 -1
  2. package/dist/plain-design.min.css +2 -2
  3. package/dist/plain-design.min.js +1 -1
  4. package/dist/report.html +2 -2
  5. package/package.json +6 -5
  6. package/src/packages/components/$object/createObjectService.tsx +31 -20
  7. package/src/packages/components/$object/object.service.utils.ts +7 -3
  8. package/src/packages/components/$previewer/ImagePreviewerFixedContainer.tsx +1 -0
  9. package/src/packages/components/AutoTable/use/useTableOption.table.tsx +3 -3
  10. package/src/packages/components/AutoTable/utils/TableOption.space.tsx +3 -0
  11. package/src/packages/components/Carousel/index.tsx +5 -5
  12. package/src/packages/components/ImagePreviewer/ImagePreviewer.tsx +77 -75
  13. package/src/packages/components/ImagePreviewer/ImagePreviewerCarouselImage.tsx +1 -1
  14. package/src/packages/components/ImagePreviewer/ImagePreviewerGallery.tsx +1 -1
  15. package/src/packages/components/PlcOv/index.tsx +14 -4
  16. package/src/packages/components/StackCard/index.tsx +5 -5
  17. package/src/packages/components/Table/standard/PlcOperation/outer-operation.scss +2 -0
  18. package/src/packages/components/Table/table/use/useTableFormEditor.tsx +1 -1
  19. package/src/packages/components/Table/table/use/useTableModifyEditor.tsx +1 -1
  20. package/src/packages/components/VirtualTable/virtual-table.scss +1 -2
  21. package/src/packages/components/useDialog/index.tsx +1 -1
  22. package/src/packages/utils/inheritSlots.ts +28 -0
  23. package/src/pages/data/address.json +0 -39317
  24. package/src/pages/data/data-1.json +0 -754
  25. package/src/pages/data/data-2.json +0 -3006
  26. package/src/pages/data/data-200.json +0 -5206
  27. package/src/pages/data/data-2000.json +0 -51954
  28. package/src/pages/data/data-50.json +0 -2075
  29. package/src/pages/data/data.json +0 -30002
  30. package/src/pages/data/demo.json +0 -1702
  31. package/src/pages/data/mock.database.js +0 -43
  32. package/src/pages/data/mock.js +0 -141
  33. package/src/pages/data/tree.data.json +0 -87
  34. package/src/pages/env/config/local.js +0 -3
  35. package/src/pages/env/config/prod.js +0 -3
  36. package/src/pages/env/config/undefined.js +0 -1
  37. package/src/pages/env/env.d.ts +0 -4
  38. package/src/pages/env/index.ts +0 -1
  39. package/src/pages/history/createHistory.ts +0 -94
  40. package/src/pages/history/history.utils.ts +0 -64
  41. package/src/pages/index/App.tsx +0 -17
  42. package/src/pages/index/Demo/DemoLine.tsx +0 -23
  43. package/src/pages/index/Demo/DemoRow.scss +0 -131
  44. package/src/pages/index/Demo/DemoRow.tsx +0 -71
  45. package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
  46. package/src/pages/index/Demo/DemoRowController.tsx +0 -45
  47. package/src/pages/index/Demo/index.ts +0 -8
  48. package/src/pages/index/app.scss +0 -197
  49. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -56
  50. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
  51. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
  52. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
  53. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
  54. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
  55. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
  56. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
  57. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
  58. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
  59. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
  60. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
  61. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
  62. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
  63. package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
  64. package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
  65. package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
  66. package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
  67. package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
  68. package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
  69. package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
  70. package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
  71. package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
  72. package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
  73. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
  74. package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
  75. package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
  76. package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
  77. package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
  78. package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
  79. package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
  80. package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
  81. package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
  82. package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
  83. package/src/pages/index/components/normal/DemoButton.tsx +0 -300
  84. package/src/pages/index/components/normal/DemoCard.tsx +0 -176
  85. package/src/pages/index/components/normal/DemoCarousel.tsx +0 -230
  86. package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
  87. package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
  88. package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
  89. package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
  90. package/src/pages/index/components/normal/DemoColor.scss +0 -20
  91. package/src/pages/index/components/normal/DemoColor.tsx +0 -82
  92. package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
  93. package/src/pages/index/components/normal/DemoDate.tsx +0 -443
  94. package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
  95. package/src/pages/index/components/normal/DemoDropdown.tsx +0 -464
  96. package/src/pages/index/components/normal/DemoGrid.scss +0 -26
  97. package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
  98. package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
  99. package/src/pages/index/components/normal/DemoImage.tsx +0 -122
  100. package/src/pages/index/components/normal/DemoInput.scss +0 -0
  101. package/src/pages/index/components/normal/DemoInput.tsx +0 -790
  102. package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
  103. package/src/pages/index/components/normal/DemoLayout.tsx +0 -144
  104. package/src/pages/index/components/normal/DemoList.scss +0 -15
  105. package/src/pages/index/components/normal/DemoList.tsx +0 -82
  106. package/src/pages/index/components/normal/DemoLoading.tsx +0 -86
  107. package/src/pages/index/components/normal/DemoNumber.tsx +0 -269
  108. package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
  109. package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
  110. package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
  111. package/src/pages/index/components/normal/DemoRadio.scss +0 -16
  112. package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
  113. package/src/pages/index/components/normal/DemoRate.tsx +0 -77
  114. package/src/pages/index/components/normal/DemoScroll.scss +0 -22
  115. package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
  116. package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
  117. package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
  118. package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
  119. package/src/pages/index/components/normal/DemoSortList.tsx +0 -70
  120. package/src/pages/index/components/normal/DemoStackCard.tsx +0 -356
  121. package/src/pages/index/components/normal/DemoStep.scss +0 -18
  122. package/src/pages/index/components/normal/DemoStep.tsx +0 -291
  123. package/src/pages/index/components/normal/DemoTab.tsx +0 -338
  124. package/src/pages/index/components/normal/DemoTag.tsx +0 -100
  125. package/src/pages/index/components/normal/DemoTime.tsx +0 -403
  126. package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
  127. package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
  128. package/src/pages/index/components/normal/DemoTree.tsx +0 -1183
  129. package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
  130. package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -464
  131. package/src/pages/index/components/service/DemoDialogService.tsx +0 -249
  132. package/src/pages/index/components/service/DemoFileService.tsx +0 -110
  133. package/src/pages/index/components/service/DemoImagePreviewer.tsx +0 -185
  134. package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
  135. package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
  136. package/src/pages/index/components/service/DemoPopupService.tsx +0 -325
  137. package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
  138. package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
  139. package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
  140. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
  141. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
  142. package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
  143. package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
  144. package/src/pages/index/components/table/DemoTableExpand.tsx +0 -203
  145. package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
  146. package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
  147. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
  148. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
  149. package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
  150. package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
  151. package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
  152. package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
  153. package/src/pages/index/components/test/DemoI18n.tsx +0 -27
  154. package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
  155. package/src/pages/index/home/AppContent.tsx +0 -69
  156. package/src/pages/index/home/AppHead.tsx +0 -18
  157. package/src/pages/index/home/AppHome.tsx +0 -31
  158. package/src/pages/index/home/AppMenu.tsx +0 -38
  159. package/src/pages/index/home/menus.tsx +0 -220
  160. package/src/pages/index/home/plain-design.png +0 -0
  161. package/src/pages/index/main.tsx +0 -23
  162. package/src/pages/index/nav/$nav.ts +0 -41
  163. package/src/pages/index/pages.d.ts +0 -6
  164. package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
  165. package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
  166. package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
  167. package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
  168. package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
  169. package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
  170. package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
  171. package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
  172. package/src/pages/libs/iconfont-symbol/demo.css +0 -539
  173. package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
  174. package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
  175. package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
  176. package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
  177. package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
  178. package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
  179. package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
  180. package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
  181. package/src/pages/libs/install.iconfont-symbol.scss +0 -7
  182. package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
  183. package/src/pages/module/address.ts +0 -27
  184. package/src/pages/module/http.ts +0 -24
  185. package/src/pages/module/index.ts +0 -19
  186. package/src/pages/module/object.ts +0 -5
  187. package/src/pages/module/ov.tsx +0 -13
  188. package/src/pages/module/upload.ts +0 -9
  189. package/src/pages/module/useTableOption.ts +0 -28
@@ -1,587 +0,0 @@
1
- import {designPage, reactive, useRefs} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {$message, Button, Checkbox, Form, FormCheckboxGroup, FormColorPicker, FormDatePicker, FormInput, FormItem, FormRadioGroup, FormRate, FormSelect, FormSlider, FormTimePicker, FormToggle, Icon, Input, InputNumber, Radio, Segment, SegmentGroup, SelectOption, Tooltip} from "../../../../packages";
4
- import {PlainObject} from "plain-utils/utils/event";
5
- import {pick} from "../../../../packages/utils/pick";
6
-
7
- export const demo01 = designPage(() => {
8
-
9
- const { refs, onRef } = useRefs({
10
- form: Form
11
- });
12
-
13
- const state = reactive({
14
- formData: {
15
- field1: '111',
16
- field2: '222',
17
- field11: 25,
18
- } as any,
19
- disabled: undefined as undefined | boolean,
20
- showFlag: true,
21
- size: 'small' as any,
22
- });
23
-
24
- const { formData } = state;
25
-
26
- const levelData = [
27
- { levelName: '一级', code: '1' },
28
- { levelName: '二级', code: '2' },
29
- { levelName: '三级', code: '3' },
30
- ];
31
-
32
- const treeData = [
33
- {
34
- id: '1',
35
- name: '一级 1',
36
- subs: [
37
- ...([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(index => ({
38
- id: '1-' + index,
39
- name: '二级 1-' + index,
40
- subs: [{
41
- id: `1-${index}-1`,
42
- name: `三级 1-${index}-1`
43
- }]
44
- })))
45
- ]
46
- }, {
47
- id: '2',
48
- name: '一级 2',
49
- subs: [
50
- ...([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(index => ({
51
- id: '2-' + index,
52
- name: '二级 2-' + index,
53
- subs: [{
54
- id: `2-${index}-1`,
55
- name: `三级 2-${index}-1`
56
- }]
57
- })))
58
- ]
59
- }, {
60
- id: '3',
61
- name: '一级 3',
62
- subs: [{
63
- id: '3-1',
64
- name: '二级 3-1',
65
- subs: [{
66
- id: '3-1-1',
67
- name: '三级 3-1-1'
68
- }, {
69
- id: '3-1-2',
70
- name: '三级 3-1-2'
71
- }]
72
- }, {
73
- id: '3-2',
74
- name: '二级 3-2',
75
- subs: [{
76
- id: '3-2-1',
77
- name: '三级 3-2-1'
78
- }]
79
- }]
80
- }];
81
-
82
- async function saveValidate() {
83
- await refs.form!.validate();
84
- $message.success('校验通过');
85
- }
86
-
87
- return () => (
88
- <DemoRow title={'表单组件'}>
89
- <div>
90
- <Form ref={onRef.form} modelValue={formData} disabled={state.disabled} singleColumnCenter size={state.size}>
91
- <FormItem label="大小尺寸">
92
- <SegmentGroup v-model={state.size}>
93
- <Segment label="Mini" val="mini"/>
94
- <Segment label="Small" val="small"/>
95
- <Segment label="Normal" val="normal"/>
96
- <Segment label="Large" val="large"/>
97
- </SegmentGroup>
98
- </FormItem>
99
- <FormInput v-model={formData.field1} placeholder={'请输入文本'} label={'普通文本框'} field={'field1'} required/>
100
- <FormInput v-model={formData.field2} placeholder={'请输入文本'} label={'普通文本框'} field={'field2'} required/>
101
- <FormInput v-model={formData.field2} textarea placeholder={'请输入文本域'} label={'普通文本域'} field={'field2'} required/>
102
- <FormItem label={'数字框'} field={'field3'} rules={{ type: 'number', max: 100, message: '最大值100' }} required>
103
- {{
104
- default: () => <InputNumber v-model={formData.field3} placeholder={'请输入数字'}/>,
105
- append: () => <Tooltip message={'提示'}><Icon icon={'el-icon-question'}/></Tooltip>,
106
- }}
107
- </FormItem>
108
- <FormCheckboxGroup v-model={formData.field5} itemWidth={'50%'} label={'复选框'} field={'field5'} rules={{ min: 1, max: 3, type: 'array', message: '1-3个元素' }} required>
109
- <Checkbox checkboxForAll label="全部"/>
110
- <Checkbox label="大客户" val="large"/>
111
- <Checkbox label="潜在客户" val="potential"/>
112
- <Checkbox label="长久客户" val="long"/>
113
- <Checkbox label="赢单客户" val="order"/>
114
- </FormCheckboxGroup>
115
- <FormSelect v-model={formData.field6} placeholder={'请选择'} label={'下拉选项'} field={'field6'} required rules={{ message: '只能选择二级', enum: ['2'] }}>
116
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
117
- </FormSelect>
118
- <FormSelect v-model={formData.field62} placeholder={'请选择'} multiple label={'下拉选项(多选)'} field={'field62'} required rules={{ required: true, type: 'array', min: 1, message: '最少选择一项' }}>
119
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
120
- </FormSelect>
121
- <FormRadioGroup v-model={formData.field9} itemWidth="33%" label={'单选按钮'} field={'field9'} required>
122
- <Radio label="是" val="Y"/>
123
- <Radio label="否" val="N"/>
124
- <Radio label="未知" val="NO"/>
125
- </FormRadioGroup>
126
- <FormToggle v-model={formData.field10} label={'开关按钮'} field={'field10'} rules={{ message: '请阅读并同意使用协议', enum: [true] }}/>
127
- <FormSlider v-model={formData.field11} label={'滑块'} field={'field11'} required rules={{ min: 50, type: 'number', message: '最小值50' }}/>
128
- <FormInput multiple v-model={formData.field12} placeholder={'请选择'} label={'标签输入框'} field={'field12'} required rules={[{ min: 3, type: 'array', message: '最少输入3个标签' }, { max: 5, type: 'array', message: '最多5个标签' }]}/>
129
- <FormRate v-model={formData.field13} label={'评分'} field={'field13'} required rules={{ min: 1, type: 'number', message: '最低1分' }}/>
130
- <FormColorPicker v-model={formData.field14} placeholder={'请选择'} label={'颜色选择器'} field={'field14'} rules={{ required: true, message: '颜色不能为空' }}/>
131
- <FormTimePicker v-model={formData.field15} placeholder={'请选择'} label={'时间选择'} field={'field15'} required/>
132
- <FormTimePicker
133
- v-model:start={formData.field17}
134
- v-model:end={formData.field18}
135
- range
136
- label={'时间范围选择'}
137
- rules={[
138
- { field: 'field17', required: true },
139
- { field: 'field18', required: true },
140
- ]}
141
- />
142
- <p>{JSON.stringify(pick(formData, ['field17', 'field18']))}</p>
143
- <FormDatePicker v-model={formData.field19} datetime placeholder={'请选择'} label={'日期时间选择'} field={'field19'} required/>
144
-
145
- <FormToggle label="state.showFlag" v-model={state.showFlag}/>
146
- {!!state.showFlag && (
147
- <FormDatePicker
148
- separate
149
- v-model:start={formData.field20}
150
- v-model:end={formData.field21}
151
- range
152
- datetime
153
- label={'日期时间范围选择_2'}
154
- rules={[
155
- { field: 'field20', required: true },
156
- { field: 'field21', required: true },
157
- ]}/>
158
- )}
159
- <FormDatePicker v-model:start={formData.field22} v-model:end={formData.field23} range datetime label={'日期时间范围选择_1'}/>
160
-
161
- <FormInput textarea v-model={formData.field22} label="文本域" field="field22" required/>
162
- <FormItem colon={false}>
163
- <Button label={'校验'} onClick={saveValidate}/>
164
- <Button label={'清空校验'} onClick={() => refs.form!.clearValidate()}/>
165
- </FormItem>
166
- <FormItem colon={false}>
167
- <Button label={state.disabled ? '启用' : '禁用'} onClick={() => state.disabled = !state.disabled} disabled={false}/>
168
- </FormItem>
169
- </Form>
170
- </div>
171
- </DemoRow>
172
- );
173
- });
174
-
175
- export const demoRequired = designPage(() => {
176
-
177
- const { refs, onRef } = useRefs({
178
- form: Form,
179
- });
180
-
181
- const state = reactive({
182
- formData: {} as any,
183
- showAddress: true,
184
- rules: {
185
- legalName: { required: true },
186
- registryCapital: { label: 'Form.rules->label', required: true },
187
- },
188
- });
189
-
190
- const dynamicRequired = (formData: PlainObject | null | undefined) => {
191
- return !!formData!.enterpriseName;
192
- };
193
-
194
- const submit = async () => {
195
- await refs.form?.validate();
196
- $message('校验通过');
197
- };
198
-
199
- return () => (
200
- <DemoRow title="基本用法">
201
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
202
- <FormItem label="所在地">
203
- <Checkbox v-model={state.showAddress} label="所在地"/>
204
- </FormItem>
205
- <FormInput
206
- label="FormInput.required"
207
- v-model={state.formData.enterpriseName}
208
- placeholder="企业名称"
209
- required
210
- />
211
- {!!state.showAddress && (
212
- <FormInput
213
- label="FormInput.rules[0].required"
214
- v-model={state.formData.address}
215
- placeholder="所在地"
216
- required
217
- rules={[{ required: true }, { pattern: /\d/ }]}
218
- />
219
- )}
220
- <FormInput
221
- label="Form.rules->field"
222
- field="legalName"
223
- v-model={state.formData.legalName}
224
- placeholder="法人代表"
225
- />
226
- <FormInput
227
- label="Form.rules->label"
228
- v-model={state.formData.registryCapital}
229
- placeholder="注册资本"
230
- />
231
- <FormInput
232
- label="FormItem.required有值时必填"
233
- v-model={state.formData.businessNature}
234
- placeholder="经营范围"
235
- required={dynamicRequired}
236
- />
237
- <FormItem colon={false}>
238
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
239
- <Button label="Commit" onClick={submit} mode="fill"/>
240
- </FormItem>
241
- </Form>
242
- </DemoRow>
243
- );
244
- });
245
-
246
-
247
- export const demoString = designPage(() => {
248
-
249
- const { refs, onRef } = useRefs({
250
- form: Form,
251
- });
252
-
253
- const state = reactive({
254
- formData: {} as any,
255
- showAddress: true,
256
- rules: {
257
- legalName: { required: true },
258
- },
259
- });
260
-
261
- const submit = async () => {
262
- await refs.form?.validate();
263
- $message('校验通过');
264
- };
265
-
266
- return () => (
267
- <DemoRow title="校验string">
268
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
269
- <FormItem label="所在地">
270
- <Checkbox v-model={state.showAddress} label="所在地"/>
271
- </FormItem>
272
- <FormInput
273
- label="FormInput.required"
274
- v-model={state.formData.enterpriseName}
275
- placeholder="string,min:3,max:5"
276
- required
277
- rules={{ type: 'string', min: 3, max: 5, message: '最少3个字符,最多5个字符' }}
278
- />
279
- {!!state.showAddress && (
280
- <FormInput
281
- label="FormInput.rules[0].required"
282
- v-model={state.formData.address}
283
- placeholder="所在地"
284
- required
285
- rules={[{ required: true }, { pattern: /\d/ }]}
286
- />
287
- )}
288
- <FormInput
289
- label="Form.rules->field"
290
- field="legalName"
291
- v-model={state.formData.legalName}
292
- placeholder="法人代表"
293
- />
294
-
295
- <FormItem colon={false}>
296
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
297
- <Button label="Commit" onClick={submit} mode="fill"/>
298
- </FormItem>
299
- </Form>
300
- </DemoRow>
301
- );
302
- });
303
-
304
-
305
- export const demoNumber = designPage(() => {
306
-
307
- const { refs, onRef } = useRefs({
308
- form: Form,
309
- });
310
-
311
- const state = reactive({
312
- formData: {} as any,
313
- showAddress: true,
314
- rules: {
315
- legalName: { required: true },
316
- },
317
- });
318
-
319
- const submit = async () => {
320
- await refs.form?.validate();
321
- $message('校验通过');
322
- };
323
-
324
- return () => (
325
- <DemoRow title="校验number">
326
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
327
- <FormItem label="所在地">
328
- <Checkbox v-model={state.showAddress} label="所在地"/>
329
- </FormItem>
330
- <FormInput
331
- label="FormInput.required"
332
- v-model={state.formData.enterpriseName}
333
- placeholder="number,min:3,max:5"
334
- required
335
- rules={{ type: 'number', min: 3, max: 5 }}
336
- />
337
- {!!state.showAddress && (
338
- <FormInput
339
- label="FormInput.rules[0].required"
340
- v-model={state.formData.address}
341
- placeholder="所在地"
342
- required
343
- rules={[{ required: true }, { pattern: /\d/ }]}
344
- />
345
- )}
346
- <FormInput
347
- label="Form.rules->field"
348
- field="legalName"
349
- v-model={state.formData.legalName}
350
- placeholder="法人代表"
351
- />
352
-
353
- <FormItem colon={false}>
354
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
355
- <Button label="Commit" onClick={submit} mode="fill"/>
356
- </FormItem>
357
- </Form>
358
- </DemoRow>
359
- );
360
- });
361
-
362
-
363
- export const demoArray = designPage(() => {
364
-
365
- const { refs, onRef } = useRefs({
366
- form: Form,
367
- });
368
-
369
- const state = reactive({
370
- formData: {} as any,
371
- showAddress: true,
372
- rules: {
373
- legalName: { required: true },
374
- },
375
- });
376
-
377
- const submit = async () => {
378
- await refs.form?.validate();
379
- $message('校验通过');
380
- };
381
-
382
- return () => (
383
- <DemoRow title="校验array">
384
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
385
- <FormItem label="所在地">
386
- <Checkbox v-model={state.showAddress} label="所在地"/>
387
- </FormItem>
388
- <FormSelect
389
- label="FormSelect.required"
390
- v-model={state.formData.enterpriseName}
391
- placeholder="array,min:3,max:5"
392
- required
393
- rules={{ type: 'array', min: 3, max: 5 }}
394
- multiple
395
- >
396
- <SelectOption label="支付宝" val="alipay"/>
397
- <SelectOption label="微信支付" val="wechat_pay"/>
398
- <SelectOption label="财付通" val="qq_pay"/>
399
- <SelectOption label="快支付" val="fast_pay"/>
400
- <SelectOption label="云闪付" val="cloud_pay"/>
401
- <SelectOption label="网银支付" val="net_pay"/>
402
- <SelectOption label="快捷支付" val="convince_pay"/>
403
- <SelectOption label="paypal" val="paypal"/>
404
- </FormSelect>
405
- <div style={{ textAlign: 'right' }}>
406
- {typeof state.formData.enterpriseName}{"->"}{JSON.stringify(state.formData.enterpriseName)}
407
- </div>
408
- {!!state.showAddress && (
409
- <FormInput
410
- label="FormInput.rules[0].required"
411
- v-model={state.formData.address}
412
- placeholder="所在地"
413
- required
414
- rules={[{ required: true }, { pattern: /\d/ }]}
415
- />
416
- )}
417
- <FormInput
418
- label="Form.rules->field"
419
- field="legalName"
420
- v-model={state.formData.legalName}
421
- placeholder="法人代表"
422
- />
423
-
424
- <FormItem colon={false}>
425
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
426
- <Button label="Commit" onClick={submit} mode="fill"/>
427
- </FormItem>
428
- </Form>
429
- </DemoRow>
430
- );
431
- });
432
-
433
-
434
- export const demoArraystring = designPage(() => {
435
-
436
- const { refs, onRef } = useRefs({
437
- form: Form,
438
- });
439
-
440
- const state = reactive({
441
- formData: {} as any,
442
- showAddress: true,
443
- rules: {
444
- legalName: { required: true },
445
- },
446
- });
447
-
448
- const submit = async () => {
449
- await refs.form?.validate();
450
- $message('校验通过');
451
- };
452
-
453
- return () => (
454
- <DemoRow title="校验arraystring">
455
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
456
- <FormItem label="所在地">
457
- <Checkbox v-model={state.showAddress} label="所在地"/>
458
- </FormItem>
459
- <FormSelect
460
- label="FormSelect.required"
461
- v-model={state.formData.enterpriseName}
462
- placeholder="arraystring,min:3,max:5"
463
- required
464
- rules={{ type: 'arraystring', min: 3, max: 5 }}
465
- multiple
466
- valueType="arraystring"
467
- >
468
- <SelectOption label="支付宝" val="alipay"/>
469
- <SelectOption label="微信支付" val="wechat_pay"/>
470
- <SelectOption label="财付通" val="qq_pay"/>
471
- <SelectOption label="快支付" val="fast_pay"/>
472
- <SelectOption label="云闪付" val="cloud_pay"/>
473
- <SelectOption label="网银支付" val="net_pay"/>
474
- <SelectOption label="快捷支付" val="convince_pay"/>
475
- <SelectOption label="paypal" val="paypal"/>
476
- </FormSelect>
477
- <div style={{ textAlign: 'right' }}>
478
- {typeof state.formData.enterpriseName}{"->"}{JSON.stringify(state.formData.enterpriseName)}
479
- </div>
480
- {!!state.showAddress && (
481
- <FormInput
482
- label="FormInput.rules[0].required"
483
- v-model={state.formData.address}
484
- placeholder="所在地"
485
- required
486
- rules={[{ required: true }, { pattern: /\d/ }]}
487
- />
488
- )}
489
- <FormInput
490
- label="Form.rules->field"
491
- field="legalName"
492
- v-model={state.formData.legalName}
493
- placeholder="法人代表"
494
- />
495
-
496
- <FormItem colon={false}>
497
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
498
- <Button label="Commit" onClick={submit} mode="fill"/>
499
- </FormItem>
500
- </Form>
501
- </DemoRow>
502
- );
503
- });
504
-
505
-
506
- export const demoArrayjson = designPage(() => {
507
-
508
- const { refs, onRef } = useRefs({
509
- form: Form,
510
- input: Input,
511
- });
512
-
513
- const state = reactive({
514
- formData: {} as any,
515
- showAddress: true,
516
- rules: {
517
- legalName: { required: true },
518
- },
519
- });
520
-
521
- const submit = async () => {
522
- await refs.form?.validate();
523
- $message('校验通过');
524
- };
525
-
526
- return () => (
527
- <DemoRow title="校验arrayjson">
528
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
529
- <FormItem label="所在地">
530
- <Checkbox v-model={state.showAddress} label="所在地"/>
531
- </FormItem>
532
- <FormSelect
533
- label="FormSelect.required"
534
- v-model={state.formData.enterpriseName}
535
- placeholder="arrayjson,min:3,max:5"
536
- required
537
- rules={{ type: 'arrayjson', min: 3, max: 5 }}
538
- multiple
539
- valueType="arrayjson"
540
- >
541
- {{
542
- default: () => <>
543
- <SelectOption label="支付宝" val="alipay"/>
544
- <SelectOption label="微信支付" val="wechat_pay"/>
545
- <SelectOption label="财付通" val="qq_pay"/>
546
- <SelectOption label="快支付" val="fast_pay"/>
547
- <SelectOption label="云闪付" val="cloud_pay"/>
548
- <SelectOption label="网银支付" val="net_pay"/>
549
- <SelectOption label="快捷支付" val="convince_pay"/>
550
- <SelectOption label="paypal" val="paypal"/>
551
- </>,
552
- noMatch: () => (
553
- <div style={{ textAlign: 'center', padding: '8px 0' }}>
554
- 没有匹配数据!!!
555
- </div>
556
- )
557
- }}
558
- </FormSelect>
559
- <div style={{ textAlign: 'right' }}>
560
- {typeof state.formData.enterpriseName}{"->"}{JSON.stringify(state.formData.enterpriseName)}
561
- </div>
562
- {!!state.showAddress && (
563
- <FormInput
564
- label="FormInput.rules[0].required"
565
- v-model={state.formData.address}
566
- placeholder="所在地"
567
- required
568
- rules={[{ required: true }, { pattern: /\d/ }]}
569
- />
570
- )}
571
- <FormInput
572
- label="Form.rules->field"
573
- field="legalName"
574
- v-model={state.formData.legalName}
575
- placeholder="法人代表"
576
- editorRef={onRef.input}
577
- />
578
-
579
- <FormItem colon={false}>
580
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
581
- <Button label="Commit" onClick={submit} mode="fill" style={{ marginRight: '4px' }}/>
582
- <Button label="Last Input Focus" onClick={() => refs.input?.focus()} mode="fill"/>
583
- </FormItem>
584
- </Form>
585
- </DemoRow>
586
- );
587
- });