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,363 +0,0 @@
1
- import {designPage, reactive, useRefs} from "plain-design-composition";
2
- import data50 from '../../../data/data-50.json';
3
- import {DemoRow} from "../../Demo/DemoRow";
4
- import {$message, Button, ButtonGroup, Form, FormItem, Plc, PlcDate, PlcDateRange, PlcIndex, PlcInput, PlcNumber, Table} from "../../../../packages";
5
- import {iTableNode} from "../../../../packages/components/Table/table/utils/table.utils";
6
-
7
- export const demo1 = designPage(() => {
8
-
9
- const { refs, onRef } = useRefs({
10
- table: Table
11
- });
12
-
13
- const state = reactive({
14
- data: data50.slice(0, 5),
15
- editNodes: [] as iTableNode[],
16
-
17
- onDblClickRow(tableNode: iTableNode) {
18
- if (!tableNode.state.edit) {
19
- tableNode.enableEdit();
20
- state.editNodes.push(tableNode);
21
- }
22
- },
23
- saveEdit: async () => {
24
- const validates = (await Promise.all(state.editNodes.map(node => node.validate()))).filter(Boolean);
25
- if (validates.length > 0) {
26
- console.log(validates);
27
- const { validateResultData, node: { state: { index } } } = validates[0]!;
28
- $message.error(`第${index + 1}条记录校验不通过,${validateResultData[0].label}:${validateResultData[0].message}`);
29
- return;
30
- }
31
- // todo 网络保存逻辑
32
- state.editNodes.forEach(tableNode => tableNode.saveEdit(tableNode.state.editRow));
33
- state.editNodes.forEach(tableNode => tableNode.closeEdit());
34
- state.editNodes = [];
35
- },
36
- cancelEdit: () => {
37
- state.editNodes.forEach(tableNode => {
38
- tableNode.cancelEdit();
39
- });
40
- state.editNodes = [];
41
- },
42
- });
43
-
44
- return () => (
45
- <DemoRow title={'基本用法'}>
46
- <Form column={1}>
47
- <FormItem label="导出">
48
- <ButtonGroup style={{ margin: '4px 0' }}>
49
- <Button label="导出原始数据" onClick={() => console.log(refs.table!.methods.getSourceData())}/>
50
- <Button label="导出显示数据" onClick={() => refs.table!.methods.getShowData().then(val => console.log(val))}/>
51
- </ButtonGroup>
52
- </FormItem>
53
- <FormItem label={'编辑'}>
54
- <ButtonGroup disabled={state.editNodes.length === 0}>
55
- <Button onClick={state.saveEdit} label={'保存编辑'}/>
56
- <Button onClick={state.cancelEdit} label={'取消编辑'}/>
57
- </ButtonGroup>
58
- </FormItem>
59
- </Form>
60
- <Table
61
- data={state.data}
62
- onDblclickCell={state.onDblClickRow}
63
- ref={onRef.table}
64
- >
65
- <PlcIndex/>
66
- <Plc field="id" title="编号"/>
67
- <PlcInput field="name" title="文本框" required/>
68
- <PlcDate field="date" title="日期" required/>
69
- </Table>
70
- </DemoRow>
71
- );
72
- });
73
-
74
-
75
- export const demo2 = designPage(() => {
76
-
77
- const { refs, onRef } = useRefs({
78
- table: Table
79
- });
80
-
81
- const state = reactive({
82
- data: data50.slice(0, 5),
83
- editNodes: [] as iTableNode[],
84
-
85
- onDblClickRow(tableNode: iTableNode) {
86
- if (!tableNode.state.edit) {
87
- tableNode.enableEdit();
88
- state.editNodes.push(tableNode);
89
- }
90
- },
91
- saveEdit: async () => {
92
- const validates = (await Promise.all(state.editNodes.map(node => node.validate()))).filter(Boolean);
93
- if (validates.length > 0) {
94
- console.log(validates);
95
- const { validateResultData, node: { state: { index } } } = validates[0]!;
96
- $message.error(`第${index + 1}条记录校验不通过,${validateResultData[0].label}:${validateResultData[0].message}`);
97
- return;
98
- }
99
- // todo 网络保存逻辑
100
- state.editNodes.forEach(tableNode => tableNode.saveEdit(tableNode.state.editRow));
101
- state.editNodes.forEach(tableNode => tableNode.closeEdit());
102
- state.editNodes = [];
103
- },
104
- cancelEdit: () => {
105
- state.editNodes.forEach(tableNode => {
106
- tableNode.cancelEdit();
107
- });
108
- state.editNodes = [];
109
- },
110
- });
111
-
112
- return () => (
113
- <DemoRow title={'格式化'}>
114
- <Form column={1}>
115
- <FormItem label="导出">
116
- <ButtonGroup style={{ margin: '4px 0' }}>
117
- <Button label="导出原始数据" onClick={() => console.log(refs.table!.methods.getSourceData())}/>
118
- <Button label="导出显示数据" onClick={() => refs.table!.methods.getShowData().then(val => console.log(val))}/>
119
- </ButtonGroup>
120
- </FormItem>
121
- <FormItem label={'编辑'}>
122
- <ButtonGroup disabled={state.editNodes.length === 0}>
123
- <Button onClick={state.saveEdit} label={'保存编辑'}/>
124
- <Button onClick={state.cancelEdit} label={'取消编辑'}/>
125
- </ButtonGroup>
126
- </FormItem>
127
- </Form>
128
- <Table
129
- data={state.data}
130
- onDblclickCell={state.onDblClickRow}
131
- ref={onRef.table}
132
- >
133
- <PlcIndex/>
134
- <Plc field="id" title="编号"/>
135
- <PlcInput field="name" title="文本框" required/>
136
- <PlcDate field="date" title="日期" required/>
137
- <PlcDate field="date" title="日期(显示格式化)" width={150} required displayFormat="YYYY年MM月DD日"/>
138
- <PlcDate field="dateNumber" title="日期(值格式化)" width={150} required valueFormat="YYYYMMDD" displayFormat="YYYY年MM月DD日"/>
139
- </Table>
140
- </DemoRow>
141
- );
142
- });
143
-
144
-
145
- export const demo3 = designPage(() => {
146
-
147
- const { refs, onRef } = useRefs({
148
- table: Table
149
- });
150
-
151
- const state = reactive({
152
- data: data50.slice(0, 5),
153
- editNodes: [] as iTableNode[],
154
-
155
- onDblClickRow(tableNode: iTableNode) {
156
- if (!tableNode.state.edit) {
157
- tableNode.enableEdit();
158
- state.editNodes.push(tableNode);
159
- }
160
- },
161
- saveEdit: async () => {
162
- const validates = (await Promise.all(state.editNodes.map(node => node.validate()))).filter(Boolean);
163
- if (validates.length > 0) {
164
- console.log(validates);
165
- const { validateResultData, node: { state: { index } } } = validates[0]!;
166
- $message.error(`第${index + 1}条记录校验不通过,${validateResultData[0].label}:${validateResultData[0].message}`);
167
- return;
168
- }
169
- // todo 网络保存逻辑
170
- state.editNodes.forEach(tableNode => tableNode.saveEdit(tableNode.state.editRow));
171
- state.editNodes.forEach(tableNode => tableNode.closeEdit());
172
- state.editNodes = [];
173
- },
174
- cancelEdit: () => {
175
- state.editNodes.forEach(tableNode => {
176
- tableNode.cancelEdit();
177
- });
178
- state.editNodes = [];
179
- },
180
- });
181
-
182
- return () => (
183
- <DemoRow title={'多值'}>
184
- <Form column={1}>
185
- <FormItem label="导出">
186
- <ButtonGroup style={{ margin: '4px 0' }}>
187
- <Button label="导出原始数据" onClick={() => console.log(refs.table!.methods.getSourceData())}/>
188
- <Button label="导出显示数据" onClick={() => refs.table!.methods.getShowData().then(val => console.log(val))}/>
189
- </ButtonGroup>
190
- </FormItem>
191
- <FormItem label={'编辑'}>
192
- <ButtonGroup disabled={state.editNodes.length === 0}>
193
- <Button onClick={state.saveEdit} label={'保存编辑'}/>
194
- <Button onClick={state.cancelEdit} label={'取消编辑'}/>
195
- </ButtonGroup>
196
- </FormItem>
197
- </Form>
198
- <Table
199
- data={state.data}
200
- onDblclickCell={state.onDblClickRow}
201
- ref={onRef.table}
202
- >
203
- <PlcIndex/>
204
- <Plc field="id" title="编号"/>
205
- <PlcInput field="name" title="文本框" required/>
206
- <PlcDate field="dateList" title="日期" required multiple/>
207
- <PlcDate field="dateArrayJson" title="日期arrayjson" required multiple valueType="arrayjson"/>
208
- <PlcDate field="dateArrayString" title="日期arraystring" required multiple valueType="arraystring"/>
209
- </Table>
210
- </DemoRow>
211
- );
212
- });
213
-
214
-
215
- export const demo4 = designPage(() => {
216
-
217
- const { refs, onRef } = useRefs({
218
- table: Table
219
- });
220
-
221
- const state = reactive({
222
- data: data50.slice(0, 5),
223
- editNodes: [] as iTableNode[],
224
-
225
- onDblClickRow(tableNode: iTableNode) {
226
- if (!tableNode.state.edit) {
227
- tableNode.enableEdit();
228
- state.editNodes.push(tableNode);
229
- }
230
- },
231
- saveEdit: async () => {
232
- const validates = (await Promise.all(state.editNodes.map(node => node.validate()))).filter(Boolean);
233
- if (validates.length > 0) {
234
- console.log(validates);
235
- const { validateResultData, node: { state: { index } } } = validates[0]!;
236
- $message.error(`第${index + 1}条记录校验不通过,${validateResultData[0].label}:${validateResultData[0].message}`);
237
- return;
238
- }
239
- // todo 网络保存逻辑
240
- state.editNodes.forEach(tableNode => tableNode.saveEdit(tableNode.state.editRow));
241
- state.editNodes.forEach(tableNode => tableNode.closeEdit());
242
- state.editNodes = [];
243
- },
244
- cancelEdit: () => {
245
- state.editNodes.forEach(tableNode => {
246
- tableNode.cancelEdit();
247
- });
248
- state.editNodes = [];
249
- },
250
- });
251
-
252
- return () => (
253
- <DemoRow title={'日期范围选择'}>
254
- <Form column={1}>
255
- <FormItem label="导出">
256
- <ButtonGroup style={{ margin: '4px 0' }}>
257
- <Button label="导出原始数据" onClick={() => console.log(refs.table!.methods.getSourceData())}/>
258
- <Button label="导出显示数据" onClick={() => refs.table!.methods.getShowData().then(val => console.log(val))}/>
259
- </ButtonGroup>
260
- </FormItem>
261
- <FormItem label={'编辑'}>
262
- <ButtonGroup disabled={state.editNodes.length === 0}>
263
- <Button onClick={state.saveEdit} label={'保存编辑'}/>
264
- <Button onClick={state.cancelEdit} label={'取消编辑'}/>
265
- </ButtonGroup>
266
- </FormItem>
267
- </Form>
268
- <Table
269
- data={state.data}
270
- onDblclickCell={state.onDblClickRow}
271
- ref={onRef.table}
272
- >
273
- <PlcIndex/>
274
- <Plc field="id" title="编号"/>
275
- <PlcInput field="name" title="文本框" required/>
276
- <PlcDateRange
277
- startField="startDate"
278
- startTitle="开始日期"
279
- endField="endDate"
280
- endTitle="结束日期"
281
- startAttrs={{ required: true }}
282
- />
283
- <PlcNumber field="num" title="数字"/>
284
- </Table>
285
- </DemoRow>
286
- );
287
- });
288
-
289
-
290
- export const demo5 = designPage(() => {
291
-
292
- const { refs, onRef } = useRefs({
293
- table: Table
294
- });
295
-
296
- const state = reactive({
297
- data: data50.slice(0, 5),
298
- editNodes: [] as iTableNode[],
299
-
300
- onDblClickRow(tableNode: iTableNode) {
301
- if (!tableNode.state.edit) {
302
- tableNode.enableEdit();
303
- state.editNodes.push(tableNode);
304
- }
305
- },
306
- saveEdit: async () => {
307
- const validates = (await Promise.all(state.editNodes.map(node => node.validate()))).filter(Boolean);
308
- if (validates.length > 0) {
309
- console.log(validates);
310
- const { validateResultData, node: { state: { index } } } = validates[0]!;
311
- $message.error(`第${index + 1}条记录校验不通过,${validateResultData[0].label}:${validateResultData[0].message}`);
312
- return;
313
- }
314
- // todo 网络保存逻辑
315
- state.editNodes.forEach(tableNode => tableNode.saveEdit(tableNode.state.editRow));
316
- state.editNodes.forEach(tableNode => tableNode.closeEdit());
317
- state.editNodes = [];
318
- },
319
- cancelEdit: () => {
320
- state.editNodes.forEach(tableNode => {
321
- tableNode.cancelEdit();
322
- });
323
- state.editNodes = [];
324
- },
325
- });
326
-
327
- return () => (
328
- <DemoRow title={'日期时间范围选择'}>
329
- <Form column={1}>
330
- <FormItem label="导出">
331
- <ButtonGroup style={{ margin: '4px 0' }}>
332
- <Button label="导出原始数据" onClick={() => console.log(refs.table!.methods.getSourceData())}/>
333
- <Button label="导出显示数据" onClick={() => refs.table!.methods.getShowData().then(val => console.log(val))}/>
334
- </ButtonGroup>
335
- </FormItem>
336
- <FormItem label={'编辑'}>
337
- <ButtonGroup disabled={state.editNodes.length === 0}>
338
- <Button onClick={state.saveEdit} label={'保存编辑'}/>
339
- <Button onClick={state.cancelEdit} label={'取消编辑'}/>
340
- </ButtonGroup>
341
- </FormItem>
342
- </Form>
343
- <Table
344
- data={state.data}
345
- onDblclickCell={state.onDblClickRow}
346
- ref={onRef.table}
347
- >
348
- <PlcIndex/>
349
- <Plc field="id" title="编号"/>
350
- <PlcInput field="name" title="文本框" required/>
351
- <PlcDateRange
352
- startField="startDatetime"
353
- startTitle="开始日期"
354
- endField="endDatetime"
355
- endTitle="结束日期"
356
- datetime
357
- startAttrs={{ required: true }}
358
- />
359
- <PlcNumber field="num" title="数字"/>
360
- </Table>
361
- </DemoRow>
362
- );
363
- });