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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. package/package.json +3 -2
  2. package/src/pages/data/address.json +0 -39317
  3. package/src/pages/data/data-1.json +0 -754
  4. package/src/pages/data/data-2.json +0 -3006
  5. package/src/pages/data/data-200.json +0 -5206
  6. package/src/pages/data/data-2000.json +0 -51954
  7. package/src/pages/data/data-50.json +0 -2075
  8. package/src/pages/data/data.json +0 -30002
  9. package/src/pages/data/demo.json +0 -1702
  10. package/src/pages/data/mock.database.js +0 -43
  11. package/src/pages/data/mock.js +0 -141
  12. package/src/pages/data/tree.data.json +0 -87
  13. package/src/pages/env/config/local.js +0 -3
  14. package/src/pages/env/config/prod.js +0 -3
  15. package/src/pages/env/config/undefined.js +0 -1
  16. package/src/pages/env/env.d.ts +0 -4
  17. package/src/pages/env/index.ts +0 -1
  18. package/src/pages/history/createHistory.ts +0 -94
  19. package/src/pages/history/history.utils.ts +0 -64
  20. package/src/pages/index/App.tsx +0 -17
  21. package/src/pages/index/Demo/DemoLine.tsx +0 -23
  22. package/src/pages/index/Demo/DemoRow.scss +0 -131
  23. package/src/pages/index/Demo/DemoRow.tsx +0 -71
  24. package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
  25. package/src/pages/index/Demo/DemoRowController.tsx +0 -45
  26. package/src/pages/index/Demo/index.ts +0 -8
  27. package/src/pages/index/app.scss +0 -197
  28. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -56
  29. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
  30. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
  31. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
  32. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
  33. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
  34. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
  35. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
  36. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
  37. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
  38. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
  39. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
  40. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
  41. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
  42. package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
  43. package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
  44. package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
  45. package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
  46. package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
  47. package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
  48. package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
  49. package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
  50. package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
  51. package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
  52. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
  53. package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
  54. package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
  55. package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
  56. package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
  57. package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
  58. package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
  59. package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
  60. package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
  61. package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
  62. package/src/pages/index/components/normal/DemoButton.tsx +0 -300
  63. package/src/pages/index/components/normal/DemoCard.tsx +0 -176
  64. package/src/pages/index/components/normal/DemoCarousel.tsx +0 -230
  65. package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
  66. package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
  67. package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
  68. package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
  69. package/src/pages/index/components/normal/DemoColor.scss +0 -20
  70. package/src/pages/index/components/normal/DemoColor.tsx +0 -82
  71. package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
  72. package/src/pages/index/components/normal/DemoDate.tsx +0 -443
  73. package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
  74. package/src/pages/index/components/normal/DemoDropdown.tsx +0 -464
  75. package/src/pages/index/components/normal/DemoGrid.scss +0 -26
  76. package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
  77. package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
  78. package/src/pages/index/components/normal/DemoImage.tsx +0 -122
  79. package/src/pages/index/components/normal/DemoInput.scss +0 -0
  80. package/src/pages/index/components/normal/DemoInput.tsx +0 -790
  81. package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
  82. package/src/pages/index/components/normal/DemoLayout.tsx +0 -144
  83. package/src/pages/index/components/normal/DemoList.scss +0 -15
  84. package/src/pages/index/components/normal/DemoList.tsx +0 -82
  85. package/src/pages/index/components/normal/DemoLoading.tsx +0 -86
  86. package/src/pages/index/components/normal/DemoNumber.tsx +0 -269
  87. package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
  88. package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
  89. package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
  90. package/src/pages/index/components/normal/DemoRadio.scss +0 -16
  91. package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
  92. package/src/pages/index/components/normal/DemoRate.tsx +0 -77
  93. package/src/pages/index/components/normal/DemoScroll.scss +0 -22
  94. package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
  95. package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
  96. package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
  97. package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
  98. package/src/pages/index/components/normal/DemoSortList.tsx +0 -70
  99. package/src/pages/index/components/normal/DemoStackCard.tsx +0 -356
  100. package/src/pages/index/components/normal/DemoStep.scss +0 -18
  101. package/src/pages/index/components/normal/DemoStep.tsx +0 -291
  102. package/src/pages/index/components/normal/DemoTab.tsx +0 -338
  103. package/src/pages/index/components/normal/DemoTag.tsx +0 -100
  104. package/src/pages/index/components/normal/DemoTime.tsx +0 -403
  105. package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
  106. package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
  107. package/src/pages/index/components/normal/DemoTree.tsx +0 -1183
  108. package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
  109. package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -464
  110. package/src/pages/index/components/service/DemoDialogService.tsx +0 -249
  111. package/src/pages/index/components/service/DemoFileService.tsx +0 -110
  112. package/src/pages/index/components/service/DemoImagePreviewer.tsx +0 -185
  113. package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
  114. package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
  115. package/src/pages/index/components/service/DemoPopupService.tsx +0 -325
  116. package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
  117. package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
  118. package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
  119. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
  120. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
  121. package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
  122. package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
  123. package/src/pages/index/components/table/DemoTableExpand.tsx +0 -203
  124. package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
  125. package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
  126. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
  127. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
  128. package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
  129. package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
  130. package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
  131. package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
  132. package/src/pages/index/components/test/DemoI18n.tsx +0 -27
  133. package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
  134. package/src/pages/index/home/AppContent.tsx +0 -69
  135. package/src/pages/index/home/AppHead.tsx +0 -18
  136. package/src/pages/index/home/AppHome.tsx +0 -31
  137. package/src/pages/index/home/AppMenu.tsx +0 -38
  138. package/src/pages/index/home/menus.tsx +0 -220
  139. package/src/pages/index/home/plain-design.png +0 -0
  140. package/src/pages/index/main.tsx +0 -23
  141. package/src/pages/index/nav/$nav.ts +0 -41
  142. package/src/pages/index/pages.d.ts +0 -6
  143. package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
  144. package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
  145. package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
  146. package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
  147. package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
  148. package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
  149. package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
  150. package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
  151. package/src/pages/libs/iconfont-symbol/demo.css +0 -539
  152. package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
  153. package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
  154. package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
  155. package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
  156. package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
  157. package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
  158. package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
  159. package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
  160. package/src/pages/libs/install.iconfont-symbol.scss +0 -7
  161. package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
  162. package/src/pages/module/address.ts +0 -27
  163. package/src/pages/module/http.ts +0 -24
  164. package/src/pages/module/index.ts +0 -19
  165. package/src/pages/module/object.ts +0 -5
  166. package/src/pages/module/ov.tsx +0 -13
  167. package/src/pages/module/upload.ts +0 -9
  168. package/src/pages/module/useTableOption.ts +0 -28
@@ -1,204 +0,0 @@
1
- import {designPage, reactive, useRefs} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {$message, Button, ColorPicker, DatePicker, Form, FormItem, Icon, Input, InputNumber, Select, SelectOption, TimePicker, Toggle, Tooltip} from "../../../../packages";
4
-
5
- /*export const demoArrayjson = designPage(() => {
6
-
7
- const { refs, onRef } = useRefs({
8
- form: Form,
9
- });
10
-
11
- const state = reactive({
12
- formData: {
13
- enterpriseName: '',
14
- } as any,
15
- showAddress: true,
16
- rules: {
17
- legalName: { required: true },
18
- },
19
- });
20
-
21
- const submit = async () => {
22
- await refs.form?.validate();
23
- $message('校验通过');
24
- };
25
-
26
- return () => (
27
- <DemoRow title="校验arrayjson">
28
- <Form rules={state.rules} v-model={state.formData} ref={onRef.form}>
29
- <FormItem label="所在地">
30
- <Checkbox v-model={state.showAddress} label="所在地"/>
31
- </FormItem>
32
- <FormItem label="FormItem.required" required field="enterpriseName" rules={{ type: 'arrayjson', min: 3, max: 5, trigger: 'blur' }}>
33
- <Select multiple valueType="arrayjson" v-model={state.formData.enterpriseName} placeholder="array,min:3,max:5">
34
- <SelectOption label="支付宝" val="alipay"/>
35
- <SelectOption label="微信支付" val="wechat_pay"/>
36
- <SelectOption label="财付通" val="qq_pay"/>
37
- <SelectOption label="快支付" val="fast_pay"/>
38
- <SelectOption label="云闪付" val="cloud_pay"/>
39
- <SelectOption label="网银支付" val="net_pay"/>
40
- <SelectOption label="快捷支付" val="convince_pay"/>
41
- <SelectOption label="paypal" val="paypal"/>
42
- </Select>
43
- </FormItem>
44
- <div style={{ textAlign: 'right' }}>
45
- {typeof state.formData.enterpriseName}{"->"}{JSON.stringify(state.formData.enterpriseName)}
46
- </div>
47
- {!!state.showAddress && (
48
- <FormItem label="FormItem.rules[0].required" rules={[{ required: true }, { pattern: /\d/ }]} field="address">
49
- <Input v-model={state.formData.address} placeholder="所在地"/>
50
- </FormItem>
51
- )}
52
- <FormItem label="Form.rules->field" field="legalName">
53
- <Input v-model={state.formData.legalName} placeholder="法人代表"/>
54
- </FormItem>
55
- <FormItem colon={false}>
56
- <Button label="Clear" onClick={() => refs.form?.clearValidate()} style={{ marginRight: '4px' }}/>
57
- <Button label="Commit" onClick={submit} mode="fill"/>
58
- </FormItem>
59
- </Form>
60
- </DemoRow>
61
- );
62
- });*/
63
-
64
-
65
- export const demo2 = designPage(() => {
66
-
67
- const { refs, onRef } = useRefs({
68
- form: Form
69
- });
70
-
71
- const state = reactive({
72
- formData: {} as any,
73
- disabled: undefined as undefined | boolean,
74
- });
75
-
76
- const { formData } = state;
77
-
78
- const levelData = [
79
- { levelName: '一级', code: '1' },
80
- { levelName: '二级', code: '2' },
81
- { levelName: '三级', code: '3' },
82
- ];
83
-
84
- const treeData = [
85
- {
86
- id: '1',
87
- name: '一级 1',
88
- subs: [
89
- ...([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(index => ({
90
- id: '1-' + index,
91
- name: '二级 1-' + index,
92
- subs: [{
93
- id: `1-${index}-1`,
94
- name: `三级 1-${index}-1`
95
- }]
96
- })))
97
- ]
98
- }, {
99
- id: '2',
100
- name: '一级 2',
101
- subs: [
102
- ...([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(index => ({
103
- id: '2-' + index,
104
- name: '二级 2-' + index,
105
- subs: [{
106
- id: `2-${index}-1`,
107
- name: `三级 2-${index}-1`
108
- }]
109
- })))
110
- ]
111
- }, {
112
- id: '3',
113
- name: '一级 3',
114
- subs: [{
115
- id: '3-1',
116
- name: '二级 3-1',
117
- subs: [{
118
- id: '3-1-1',
119
- name: '三级 3-1-1'
120
- }, {
121
- id: '3-1-2',
122
- name: '三级 3-1-2'
123
- }]
124
- }, {
125
- id: '3-2',
126
- name: '二级 3-2',
127
- subs: [{
128
- id: '3-2-1',
129
- name: '三级 3-2-1'
130
- }]
131
- }]
132
- }];
133
-
134
- async function saveValidate() {
135
- await refs.form!.validate();
136
- $message.success('校验通过');
137
- }
138
-
139
- return () => (
140
- <div>
141
- <DemoRow title={'blur校验'}>
142
- <Form ref={onRef.form} modelValue={formData} disabled={state.disabled}>
143
- <FormItem label={'普通文本框'} field={'field1'} rules={{ required: true, trigger: 'blur' }}>
144
- <Input v-model={formData.field1}/>
145
- </FormItem>
146
- <FormItem label={'普通文本域'} field={'field2'} rules={{ required: true, trigger: 'blur' }}>
147
- <Input v-model={formData.field2} textarea/>
148
- </FormItem>
149
- <FormItem label={'数字框'} field={'field3'} rules={{ required: true, trigger: 'blur' }}>
150
- {{
151
- default: () => <InputNumber v-model={formData.field3}/>,
152
- append: () => <Tooltip message={'提示'}><Icon icon={'el-icon-question'}/></Tooltip>,
153
- }}
154
- </FormItem>
155
- <FormItem label={'下拉选项'} field={'field6'} rules={{ required: true, trigger: 'blur' }}>
156
- <Select v-model={formData.field6}>
157
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
158
- </Select>
159
- </FormItem>
160
- {/*<FormItem label={'级联选择'} field={'field61'} rules={{ required: true, trigger: 'blur' }}>
161
- <Cascade
162
- v-model={formData.field61}
163
- data={treeData}
164
- labelField={'name'}
165
- keyField={'id'}
166
- childrenField={'subs'}
167
- />
168
- </FormItem>*/}
169
- <FormItem label={'开关按钮'} field={'field10'} rules={{ required: true, trigger: 'blur' }}>
170
- <Toggle v-model={formData.field10}/>
171
- </FormItem>
172
- <FormItem label={'颜色选择器'} field={'field14'} rules={{ required: true, trigger: 'blur' }}>
173
- <ColorPicker v-model={formData.field14}/>
174
- </FormItem>
175
- <FormItem label={'时间选择'} field={'field15'} rules={{ required: true, trigger: 'blur' }}>
176
- <TimePicker v-model={formData.field15}/>
177
- </FormItem>
178
- <FormItem label={'时间范围选择'} rules={[
179
- { field: 'field17', required: true, trigger: 'blur' },
180
- { field: 'field18', required: true, trigger: 'blur' },
181
- ]}>
182
- <TimePicker v-model:start={formData.field17} v-model:end={formData.field18} range/>
183
- </FormItem>
184
- <FormItem label={'日期时间选择'} field={'field19'} rules={{ required: true, trigger: 'blur' }}>
185
- <DatePicker v-model={formData.field19} datetime/>
186
- </FormItem>
187
- <FormItem label={'日期时间范围选择'} rules={[
188
- { field: 'field20', required: true, trigger: 'blur' },
189
- { field: 'field21', required: true, trigger: 'blur' },
190
- ]}>
191
- <DatePicker v-model:start={formData.field20} v-model:end={formData.field21} range datetime/>
192
- </FormItem>
193
- <FormItem colon={false}>
194
- <Button label={'校验'} onClick={saveValidate}/>
195
- <Button label={'清空校验'} onClick={() => refs.form!.clearValidate()}/>
196
- </FormItem>
197
- <FormItem colon={false}>
198
- <Button label={state.disabled ? '启用' : '禁用'} onClick={() => state.disabled = !state.disabled} disabled={false}/>
199
- </FormItem>
200
- </Form>
201
- </DemoRow>
202
- </div>
203
- );
204
- });
@@ -1,54 +0,0 @@
1
- import {designPage, reactive, useRefs} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {$message, Button, Form, FormItem, Input} from "../../../../packages";
4
-
5
- export default designPage(() => {
6
-
7
- const { formData } = reactive({
8
- formData: {
9
- email: '111@aa.com',
10
- addressList: [
11
- { addr: '' }
12
- ],
13
- },
14
- });
15
- const { refs, onRef } = useRefs({ form: Form });
16
-
17
- async function save() {
18
- await refs.form!.validate();
19
- $message('校验通过');
20
- }
21
-
22
- return () => (
23
- <div>
24
- <DemoRow title={'动态增减表单项'}>
25
- <Form ref={onRef.form} modelValue={formData}>
26
- <FormItem label={'收件箱'} field={'email'} rules={{
27
- type: 'email',
28
- // pattern: /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/,
29
- // message: '请输入正确的邮箱',
30
- required: true,
31
- // trigger: 'blur',
32
- }}>
33
- <Input v-model={formData.email}/>
34
- </FormItem>
35
- {formData.addressList.map((item, index) => (
36
- <FormItem label={`收件人地址${index + 1}`} field={`addressList.${index}.addr`} key={index} rules={{
37
- required: true,
38
- // trigger: 'blur'
39
- }}>
40
- <div style={{ display: 'flex' }}>
41
- <Input v-model={item.addr}/>
42
- <Button icon={'pi-close'} style={{ marginLeft: '4px' }} status="secondary" onClick={() => {formData.addressList.splice(index, 1);}}/>
43
- </div>
44
- </FormItem>
45
- ))}
46
- <FormItem colon={false}>
47
- <Button label={'保存'} onClick={save}/>
48
- <Button label={'新增收件地址'} onClick={() => formData.addressList.push({ addr: '' })}/>
49
- </FormItem>
50
- </Form>
51
- </DemoRow>
52
- </div>
53
- );
54
- });
@@ -1,164 +0,0 @@
1
- import {computed, designPage, reactive} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {Button, Checkbox, CheckboxGroup, Form, FormItem, Icon, Input, InputNumber, Radio, RadioGroup, Select, SelectOption, Tooltip} from "../../../../packages";
4
-
5
- export const demo1 = designPage(() => {
6
-
7
- const state = reactive({
8
- formData: {} as any,
9
- formDisabledFields: [] as string[],
10
- flag: {
11
- disabled: undefined as undefined | boolean,
12
- readonly: undefined as undefined | boolean,
13
- },
14
- });
15
-
16
- const { formData, flag } = state;
17
-
18
- const levelData = [
19
- { levelName: '一级', code: '1' },
20
- { levelName: '二级', code: '2' },
21
- { levelName: '三级', code: '3' },
22
- ];
23
-
24
- return () => (
25
- <DemoRow title={'父子disabled以及readonly设置'}>
26
- <Form modelValue={formData} disabled={flag.disabled} readonly={flag.readonly}>
27
- <FormItem colon={false}>
28
- <Checkbox v-model={flag.disabled} label={'禁用'} style={{ marginRight: '8px' }} disabled={false} readonly={false}/>
29
- <Checkbox v-model={flag.readonly} label={'只读'} disabled={false} readonly={false}/>
30
- </FormItem>
31
- <FormItem label={'客户名称'} field={'name'}>
32
- <Input v-model={formData.name}/>
33
- </FormItem>
34
- <FormItem label={'客户员工数量'} field={'type'}>
35
- {{
36
- default: () => <InputNumber v-model={formData.type}/>,
37
- append: () => <Tooltip message="整数"><Icon icon="pi-info-circle-fill"/></Tooltip>
38
- }}
39
- </FormItem>
40
- <FormItem label={'客户加入时间'} field={'joinTime'} disabled={false}>
41
- <Input v-model={formData.joinTime}/>
42
- <span>&nbsp;至&nbsp;</span>
43
- <Input v-model={formData.name}/>
44
- </FormItem>
45
- <FormItem label={'是否老客户'} field={'oldFlag'} disabled={false}>
46
- <RadioGroup v-model={formData.oldFlag} itemWidth={'50%'}>
47
- <Radio label={'老客户'} val={'Y'} disabled/>
48
- <Radio label={'非老客户'} val={'N'}/>
49
- </RadioGroup>
50
- </FormItem>
51
- <FormItem label={'客户性质'} field={'properties'}>
52
- <CheckboxGroup v-model={formData.properties} itemWidth={'50%'}>
53
- <Checkbox label={'大客户'} val={'large'}/>
54
- <Checkbox label={'潜在客户'} val={'potential'}/>
55
- <Checkbox label={'长久客户'} val={'long'}/>
56
- <Checkbox label={'赢单客户'} val={'order'}/>
57
- </CheckboxGroup>
58
- </FormItem>
59
- <FormItem label={'客户级别'} field={'level'}>
60
- <Select v-model={formData.level}>
61
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
62
- </Select>
63
- </FormItem>
64
- <FormItem label={'备注'} field={'comments'}>
65
- <Input textarea v-model={formData.comments}/>
66
- </FormItem>
67
- <FormItem colon={false} contentAlign={'center'} block>
68
- <Button label={'取消'} style={{ marginRight: '4px' }}/>
69
- <Button mode="fill" label={'提交'}/>
70
- </FormItem>
71
- </Form>
72
- </DemoRow>
73
- );
74
- });
75
-
76
- export const demo2 = designPage(() => {
77
-
78
- const state = reactive({
79
- formData: {} as any,
80
- formDisabledFields: [] as string[],
81
- flag: {
82
- disabled: undefined as undefined | boolean,
83
- readonly: undefined as undefined | boolean,
84
- },
85
- });
86
-
87
- const { formData, flag } = state;
88
-
89
- const levelData = [
90
- { levelName: '一级', code: '1' },
91
- { levelName: '二级', code: '2' },
92
- { levelName: '三级', code: '3' },
93
- ];
94
-
95
- const targetFormDisabledFields = computed(() => {
96
- return state.formDisabledFields.reduce((ret, item) => {
97
- ret[item] = true;
98
- return ret;
99
- }, {} as any);
100
- });
101
-
102
- return () => (
103
- <DemoRow title={'通过disabledFields控制禁用'}>
104
- <CheckboxGroup v-model={state.formDisabledFields}>
105
- <Checkbox checkboxForAll label="全部"/>
106
- <Checkbox label="客户名称" val="name"/>
107
- <Checkbox label="客户员工数量" val="type"/>
108
- <Checkbox label="客户加入时间" val="joinTime"/>
109
- <Checkbox label="是否老客户" val="oldFlag"/>
110
- <Checkbox label="客户性质" val="properties"/>
111
- <Checkbox label="客户级别" val="level"/>
112
- <Checkbox label="备注" val="comments"/>
113
- <Checkbox label="禁用操作按钮" val="button"/>
114
- </CheckboxGroup>
115
- <br/>
116
- <div>
117
- {JSON.stringify(state.formDisabledFields)}
118
- </div>
119
- <br/>
120
- <Form modelValue={formData} disabledFields={targetFormDisabledFields.value}>
121
- <FormItem label={'客户名称'} field={'name'}>
122
- <Input v-model={formData.name}/>
123
- </FormItem>
124
- <FormItem label={'客户员工数量'} field={'type'}>
125
- {{
126
- default: () => <InputNumber v-model={formData.type}/>,
127
- append: () => <Tooltip message="整数"><Icon icon="pi-info-circle-fill"/></Tooltip>
128
- }}
129
- </FormItem>
130
- <FormItem label={'客户加入时间'} field={'joinTime'} disabled={false}>
131
- <Input v-model={formData.joinTime}/>
132
- <span>&nbsp;至&nbsp;</span>
133
- <Input v-model={formData.name}/>
134
- </FormItem>
135
- <FormItem label={'是否老客户'} field={'oldFlag'} disabled={false}>
136
- <RadioGroup v-model={formData.oldFlag} itemWidth={'50%'}>
137
- <Radio label={'老客户'} val={'Y'} disabled/>
138
- <Radio label={'非老客户'} val={'N'}/>
139
- </RadioGroup>
140
- </FormItem>
141
- <FormItem label={'客户性质'} field={'properties'}>
142
- <CheckboxGroup v-model={formData.properties} itemWidth={'50%'}>
143
- <Checkbox label={'大客户'} val={'large'}/>
144
- <Checkbox label={'潜在客户'} val={'potential'}/>
145
- <Checkbox label={'长久客户'} val={'long'}/>
146
- <Checkbox label={'赢单客户'} val={'order'}/>
147
- </CheckboxGroup>
148
- </FormItem>
149
- <FormItem label={'客户级别'} field={'level'}>
150
- <Select v-model={formData.level}>
151
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
152
- </Select>
153
- </FormItem>
154
- <FormItem label={'备注'} field={'comments'}>
155
- <Input textarea v-model={formData.comments}/>
156
- </FormItem>
157
- <FormItem colon={false} contentAlign={'center'} block field="button">
158
- <Button label={'取消'} style={{ marginRight: '4px' }}/>
159
- <Button mode="fill" label={'提交'}/>
160
- </FormItem>
161
- </Form>
162
- </DemoRow>
163
- );
164
- });
@@ -1,207 +0,0 @@
1
- import {designPage, reactive, useRefs} from "plain-design-composition";
2
- import {$message, Button, Checkbox, CheckboxGroup, ColorPicker, DatePicker, Form, FormItem, Icon, Input, InputNumber, Radio, RadioGroup, Rate, Segment, SegmentGroup, Select, SelectOption, Slider, TimePicker, Toggle, Tooltip} from "../../../../packages";
3
- import {DemoRow} from "../../Demo/DemoRow";
4
-
5
- export default designPage(() => {
6
-
7
- const { refs, onRef } = useRefs({
8
- form: Form
9
- });
10
-
11
- const state = reactive({
12
- formData: {
13
- field1: '111',
14
- field2: '222',
15
- field11: 25,
16
- } as any,
17
- disabled: undefined as undefined | boolean,
18
- showFlag: true,
19
- size: 'small' as any,
20
- });
21
-
22
- const { formData } = state;
23
-
24
- const levelData = [
25
- { levelName: '一级', code: '1' },
26
- { levelName: '二级', code: '2' },
27
- { levelName: '三级', code: '3' },
28
- ];
29
-
30
- const treeData = [
31
- {
32
- id: '1',
33
- name: '一级 1',
34
- subs: [
35
- ...([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(index => ({
36
- id: '1-' + index,
37
- name: '二级 1-' + index,
38
- subs: [{
39
- id: `1-${index}-1`,
40
- name: `三级 1-${index}-1`
41
- }]
42
- })))
43
- ]
44
- }, {
45
- id: '2',
46
- name: '一级 2',
47
- subs: [
48
- ...([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].map(index => ({
49
- id: '2-' + index,
50
- name: '二级 2-' + index,
51
- subs: [{
52
- id: `2-${index}-1`,
53
- name: `三级 2-${index}-1`
54
- }]
55
- })))
56
- ]
57
- }, {
58
- id: '3',
59
- name: '一级 3',
60
- subs: [{
61
- id: '3-1',
62
- name: '二级 3-1',
63
- subs: [{
64
- id: '3-1-1',
65
- name: '三级 3-1-1'
66
- }, {
67
- id: '3-1-2',
68
- name: '三级 3-1-2'
69
- }]
70
- }, {
71
- id: '3-2',
72
- name: '二级 3-2',
73
- subs: [{
74
- id: '3-2-1',
75
- name: '三级 3-2-1'
76
- }]
77
- }]
78
- }];
79
-
80
- async function saveValidate() {
81
- await refs.form!.validate();
82
- $message.success('校验通过');
83
- }
84
-
85
- return () => (
86
- <div>
87
- <DemoRow title={'表单组件'}>
88
- <div>
89
- <Form ref={onRef.form} modelValue={formData} disabled={state.disabled} singleColumnCenter size={state.size}>
90
- <FormItem label="大小尺寸">
91
- <SegmentGroup v-model={state.size}>
92
- <Segment label="Mini" val="mini"/>
93
- <Segment label="Small" val="small"/>
94
- <Segment label="Normal" val="normal"/>
95
- <Segment label="Large" val="large"/>
96
- </SegmentGroup>
97
- </FormItem>
98
- <FormItem label={'普通文本框'} field={'field1'} required>
99
- <Input v-model={formData.field1} placeholder={'请输入文本'}/>
100
- </FormItem>
101
- <FormItem label={'普通文本框'} field={'field2'} required>
102
- <Input v-model={formData.field2} placeholder={'请输入文本'}/>
103
- </FormItem>
104
- <FormItem label={'普通文本域'} field={'field2'} required>
105
- <Input v-model={formData.field2} textarea placeholder={'请输入文本域'}/>
106
- </FormItem>
107
- <FormItem label={'数字框'} field={'field3'} rules={{ type: 'number', max: 100, message: '最大值100' }} required>
108
- {{
109
- default: () => <InputNumber v-model={formData.field3} placeholder={'请输入数字'}/>,
110
- append: () => <Tooltip message={'提示'}><Icon icon={'el-icon-question'}/></Tooltip>,
111
- }}
112
- </FormItem>
113
- <FormItem label={'复选框'} field={'field5'} rules={{ min: 1, max: 3, type: 'array', message: '1-3个元素' }} required>
114
- <CheckboxGroup v-model={formData.field5} itemWidth={'50%'}>
115
- <Checkbox checkboxForAll label="全部"/>
116
- <Checkbox label="大客户" val="large"/>
117
- <Checkbox label="潜在客户" val="potential"/>
118
- <Checkbox label="长久客户" val="long"/>
119
- <Checkbox label="赢单客户" val="order"/>
120
- </CheckboxGroup>
121
- </FormItem>
122
- <FormItem label={'下拉选项'} field={'field6'} required rules={{ message: '只能选择二级', enum: ['2'] }}>
123
- <Select v-model={formData.field6} placeholder={'请选择'}>
124
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
125
- </Select>
126
- </FormItem>
127
- <FormItem label={'下拉选项(多选)'} field={'field62'} required rules={{ required: true, type: 'array', min: 1, message: '最少选择一项' }}>
128
- <Select v-model={formData.field62} placeholder={'请选择'} multiple>
129
- {levelData.map(item => <SelectOption label={item.levelName} val={item.code} key={item.code}/>)}
130
- </Select>
131
- </FormItem>
132
- {/*<FormItem label={'级联选择'} field={'field61'} rules={{ required: true, message: '不能为空' }}>
133
- <Cascade
134
- placeholder={'请选择'}
135
- v-model={formData.field61}
136
- data={treeData}
137
- labelField={'name'}
138
- keyField={'id'}
139
- childrenField={'subs'}
140
- />
141
- </FormItem>*/}
142
- <FormItem label={'单选按钮'} field={'field9'} required>
143
- <RadioGroup v-model={formData.field9} itemWidth="33%">
144
- <Radio label="是" val="Y"/>
145
- <Radio label="否" val="N"/>
146
- <Radio label="未知" val="NO"/>
147
- </RadioGroup>
148
- </FormItem>
149
- <FormItem label={'开关按钮'} field={'field10'} rules={{ message: '请阅读并同意使用协议', enum: [true] }}>
150
- <Toggle v-model={formData.field10}/>
151
- </FormItem>
152
- <FormItem label={'滑块'} field={'field11'} required rules={{ min: 50, type: 'number', message: '最小值50' }}>
153
- <Slider v-model={formData.field11}/>
154
- </FormItem>
155
- <FormItem label={'标签输入框'} field={'field12'} required rules={[{ min: 3, type: 'array', message: '最少输入3个标签' }, { max: 5, type: 'array', message: '最多5个标签' }]}>
156
- <Input multiple v-model={formData.field12} placeholder={'请选择'}/>
157
- </FormItem>
158
- <FormItem label={'评分'} field={'field13'} required rules={{ min: 1, type: 'number', message: '最低1分' }}>
159
- <Rate v-model={formData.field13}/>
160
- </FormItem>
161
- <FormItem label={'颜色选择器'} field={'field14'} rules={{ required: true, message: '颜色不能为空' }}>
162
- <ColorPicker v-model={formData.field14} placeholder={'请选择'}/>
163
- </FormItem>
164
- <FormItem label={'时间选择'} field={'field15'} required>
165
- <TimePicker v-model={formData.field15} placeholder={'请选择'}/>
166
- </FormItem>
167
- <FormItem label={'时间范围选择'} rules={[
168
- { field: 'field17', required: true },
169
- { field: 'field18', required: true },
170
- ]}>
171
- <TimePicker v-model:start={formData.field17} v-model:end={formData.field18} range/>
172
- </FormItem>
173
- <FormItem label={'日期时间选择'} field={'field19'} required>
174
- <DatePicker v-model={formData.field19} datetime placeholder={'请选择'}/>
175
- </FormItem>
176
-
177
- <FormItem label="state.showFlag">
178
- <Toggle v-model={state.showFlag}/>
179
- </FormItem>
180
- {!!state.showFlag && (
181
- <FormItem label={'日期时间范围选择_2'} rules={[
182
- { field: 'field20', required: true },
183
- { field: 'field21', required: true },
184
- ]}>
185
- <DatePicker separate v-model:start={formData.field20} v-model:end={formData.field21} range datetime/>
186
- </FormItem>
187
- )}
188
- <FormItem label={'日期时间范围选择_1'}>
189
- <DatePicker v-model:start={formData.field22} v-model:end={formData.field23} range datetime/>
190
- </FormItem>
191
-
192
- <FormItem label="文本域" field="field22" required>
193
- <Input textarea v-model={formData.field22}/>
194
- </FormItem>
195
- <FormItem colon={false}>
196
- <Button label={'校验'} onClick={saveValidate}/>
197
- <Button label={'清空校验'} onClick={() => refs.form!.clearValidate()}/>
198
- </FormItem>
199
- <FormItem colon={false}>
200
- <Button label={state.disabled ? '启用' : '禁用'} onClick={() => state.disabled = !state.disabled} disabled={false}/>
201
- </FormItem>
202
- </Form>
203
- </div>
204
- </DemoRow>
205
- </div>
206
- );
207
- });
@@ -1,7 +0,0 @@
1
- .p-form {
2
- display: table;
3
-
4
- .p-form-label, .p-form-content {
5
- display: table-cell;
6
- }
7
- }