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,112 +0,0 @@
1
- import {designPage} from "plain-design-composition";
2
- import './DemoTableClassAndStyle.scss';
3
- import data from '../../../data/data-1.json';
4
- import {DemoRow} from "../../Demo/DemoRow";
5
- import {Plc, Table} from "../../../../packages";
6
- import {DemoLine} from "../../Demo/DemoLine";
7
-
8
- export default designPage(() => {
9
-
10
- const utils = {
11
- rowClassFunc({ data }: any) {
12
- const { star } = data;
13
- return [
14
- 'custom-row',
15
- `custom-row-status-${star > 5 ? 'active' : 'inactive'}`
16
- ];
17
- },
18
- cellClassFunc({ data }: any, plc: any) {
19
- const { star } = data;
20
-
21
- if (plc.props.field === 'star') {
22
- return [
23
- 'custom-cell',
24
- `custom-cell-status-${star > 5 ? 'active' : 'inactive'}`
25
- ];
26
- }
27
- },
28
- cellStyleFunc({ data: { star } }: any, { props: { field } }: any) {
29
- if (field === 'star') {
30
- return {
31
- color: star > 5 ? '#12b4a5' : '',
32
- fontWeight: star > 5 ? 'bold' : 'normal'
33
- };
34
- }
35
- return {};
36
- },
37
- headCellClassFunc({ props: { field } }: any) {
38
- if (field === 'star') {
39
- return 'custom-head-cell-clz';
40
- }
41
- },
42
- headCellStyleFunc({ props: { field } }: any) {
43
- if (field === 'star') {
44
- return {
45
- backgroundColor: '#3E97EC',
46
- color: 'white',
47
- };
48
- }
49
- return {};
50
- },
51
- };
52
-
53
- return () => (
54
- <div>
55
- <DemoRow title={'rowClassFunc'}>
56
- <DemoLine title={'评分大于5的显示背景蓝色'}/>
57
- <Table data={data} rowClassFunc={utils.rowClassFunc} showRows={10}>
58
- <Plc field="id" title="编号"/>
59
- <Plc field="size" title="大小"/>
60
- <Plc field="date" title="日期"/>
61
- <Plc field="color" title="颜色"/>
62
- <Plc field="name" title="名称"/>
63
- <Plc field="star" title="评分"/>
64
- </Table>
65
- </DemoRow>
66
- <DemoRow title={'cellClassFunc'}>
67
- <DemoLine title={'评分大于5的显示背景蓝色'}/>
68
- <Table data={data} cellClassFunc={utils.cellClassFunc} showRows={10}>
69
- <Plc field="id" title="编号"/>
70
- <Plc field="size" title="大小"/>
71
- <Plc field="date" title="日期"/>
72
- <Plc field="color" title="颜色"/>
73
- <Plc field="name" title="名称"/>
74
- <Plc field="star" title="评分"/>
75
- </Table>
76
- </DemoRow>
77
- <DemoRow title={'cellStyleFunc'}>
78
- <DemoLine title={'评分大于5的蓝色加粗字体'}/>
79
- <Table data={data} cellStyleFunc={utils.cellStyleFunc} showRows={10}>
80
- <Plc field="id" title="编号"/>
81
- <Plc field="size" title="大小"/>
82
- <Plc field="date" title="日期"/>
83
- <Plc field="color" title="颜色"/>
84
- <Plc field="name" title="名称"/>
85
- <Plc field="star" title="评分"/>
86
- </Table>
87
- </DemoRow>
88
- <DemoRow title={'headCellClassFunc'}>
89
- <DemoLine title={'评分大于5的蓝色加粗字体'}/>
90
- <Table data={data} headCellClassFunc={utils.headCellClassFunc} showRows={10}>
91
- <Plc field="id" title="编号"/>
92
- <Plc field="size" title="大小"/>
93
- <Plc field="date" title="日期"/>
94
- <Plc field="color" title="颜色"/>
95
- <Plc field="name" title="名称"/>
96
- <Plc field="star" title="评分"/>
97
- </Table>
98
- </DemoRow>
99
- <DemoRow title={'headCellStyleFunc'}>
100
- <DemoLine title={'评分大于5的蓝色加粗字体'}/>
101
- <Table data={data} headCellStyleFunc={utils.headCellStyleFunc} showRows={10}>
102
- <Plc field="id" title="编号"/>
103
- <Plc field="size" title="大小"/>
104
- <Plc field="date" title="日期"/>
105
- <Plc field="color" title="颜色"/>
106
- <Plc field="name" title="名称"/>
107
- <Plc field="star" title="评分"/>
108
- </Table>
109
- </DemoRow>
110
- </div>
111
- );
112
- });
@@ -1,80 +0,0 @@
1
- import {designPage, reactive} from "plain-design-composition";
2
- import data from '../../../data/data-1.json';
3
- import {DemoRow} from "../../Demo/DemoRow";
4
- import {Plc, PlcGroup, PlcIndex, Table} from "../../../../packages";
5
- import {PlainObject} from "plain-utils/utils/event";
6
-
7
- export const demo1 = designPage(() => {
8
-
9
- const cols = new Array(40).fill(null).map((_, i) => ({ title: `列_${i + 1}`, field: `field_${i}` }));
10
- const data = new Array(100).fill(null).map((_, i) => cols.reduce((prev, item) => {
11
- prev[item.field] = `${item.title},行_${i}`;
12
- return prev;
13
- }, {} as PlainObject));
14
- const fixedData = [data.pop()!];
15
-
16
- const state = reactive({
17
- data,
18
- });
19
-
20
- return () => (
21
- <DemoRow title="基本用法">
22
- <Table
23
- showRows={5}
24
- v-model:data={state.data}
25
- summaryData={fixedData}
26
- colDraggable
27
- rowDraggable
28
- border
29
- virtualColumn
30
- virtual
31
- onClickRowDraggier={() => {console.log('click row draggier');}}
32
- onClickColDraggier={() => {console.log('click col draggier');}}
33
- >
34
- <PlcIndex key="index"/>
35
- {cols.map((col, index) => (
36
- <Plc title={col.title} field={col.field} key={col.field} fixed={index === 0 ? 'left' : index === cols.length - 1 ? 'right' : undefined}/>
37
- ))}
38
- </Table>
39
- </DemoRow>
40
- );
41
- });
42
-
43
- export const demo2 = designPage(() => {
44
-
45
- const state = reactive({
46
- data,
47
- });
48
-
49
- return () => (
50
- <DemoRow title={'分组表头中拖拽排序'}>
51
- <Table
52
- v-model:data={state.data}
53
- colDraggable
54
- rowDraggable
55
- border
56
- showRows={10}
57
- >
58
- <PlcIndex/>
59
- <Plc field={'id'} title={'1_编号'} fixed="left"/>
60
- <PlcGroup title={'2_分组'}>
61
- <Plc field={'size'} title={'2-1_尺寸'}/>
62
- <Plc field={'date'} title={'2-2_日期'}/>
63
- </PlcGroup>
64
- <Plc field={'color'} title={'3_颜色'} align="right"/>
65
- <PlcGroup title={'4_分组'}>
66
- <PlcGroup title={'4-1_分组'}>
67
- <Plc field={'name'} title={'4-1-1_名称'}/>
68
- <Plc field={'star'} title={'4-1-2_评分'}/>
69
- </PlcGroup>
70
- <Plc field={'id'} title={'4-2_编号'}/>
71
- </PlcGroup>
72
- <Plc field="size" title="5_尺寸"/>
73
- <Plc field="date" title="6_日期"/>
74
- <Plc field="color" title="7_颜色"/>
75
- <Plc field="name" title="8_名称"/>
76
- <Plc field="star" title="9_评分" fixed="right"/>
77
- </Table>
78
- </DemoRow>
79
- );
80
- });
@@ -1,136 +0,0 @@
1
- import {designPage, reactive, useRefs} from "plain-design-composition";
2
- import data from '../../../data/data-1.json';
3
- import {iTableCellRenderScope, iTableNode} from "../../../../packages/components/Table/table/utils/table.utils";
4
- import {$message, Button, ButtonGroup, DatePicker, Form, FormItem, Plc, PlcColorPicker, PlcDate, PlcIndex, PlcInput, PlcNumber, PlcRate, Segment, SegmentGroup, Table, Toggle} from "../../../../packages";
5
- import {DemoRow} from "../../Demo/DemoRow";
6
- import {iValidatorParam} from "../../../../packages/components/Form/validate/validate.utils";
7
- import {PlainObject} from "plain-utils/utils/event";
8
- import {deepcopy} from "plain-utils/object/deepcopy";
9
-
10
- export const demo1 = designPage(() => {
11
-
12
- const { refs, onRef } = useRefs({ table: Table });
13
-
14
- const state = reactive({
15
- size: undefined as any,
16
- data: data as any[],
17
- editNodes: [] as iTableNode[],
18
- virtualFlag: false,
19
- formEdit: false,
20
- associateFields: {
21
- name: 'size',
22
- },
23
- isEditable: ({ state: { editRow } }: iTableNode) => !!editRow.name && editRow.name.length > 5,
24
- isRequired: (formData: PlainObject | null | undefined) => !!formData?.name && formData.name.length > 5,
25
- customRule: {
26
- validator: ({ formData }: iValidatorParam) => {
27
- if (!formData) {return; }
28
- return !!formData.name && formData.name.length > 5 ?
29
- (!formData.size && formData.size !== 0) ? 'name 长度大于5情况下必填' : undefined
30
- : undefined;
31
- }
32
- },
33
- onDblClickRow(tableNode: iTableNode) {
34
- if (state.formEdit) {
35
- refs.table!.formEditor.methods.edit({
36
- node: tableNode,
37
- onConfirm: (node) => {
38
- state.data[tableNode.state.index] = deepcopy(node.state.editRow);
39
- }
40
- });
41
- } else {
42
- if (!tableNode.state.edit) {
43
- tableNode.enableEdit();
44
- state.editNodes.push(tableNode);
45
- }
46
- }
47
- },
48
- saveEdit: async () => {
49
- const validates = (await Promise.all(state.editNodes.map(node => node.validate()))).filter(Boolean);
50
- if (validates.length > 0) {
51
- console.log(validates);
52
- const { validateResultData, node: { state: { index } } } = validates[0]!;
53
- $message.error(`第${index + 1}条记录校验不通过,${validateResultData[0].label}:${validateResultData[0].message}`);
54
- return;
55
- }
56
- // todo 网络保存逻辑
57
- state.editNodes.forEach(tableNode => tableNode.saveEdit(tableNode.state.editRow));
58
- state.editNodes.forEach(tableNode => tableNode.closeEdit());
59
- state.editNodes = [];
60
- },
61
- cancelEdit: () => {
62
- state.editNodes.forEach(tableNode => {
63
- tableNode.cancelEdit();
64
- });
65
- state.editNodes = [];
66
- },
67
- });
68
-
69
- return () => (
70
- <div>
71
- <DemoRow title={'基本用法'}>
72
- <Form column={1}>
73
- <FormItem label="大小尺寸">
74
- <SegmentGroup v-model={state.formEdit}>
75
- <Segment label="行内编辑" val={false}/>
76
- <Segment label="表单编辑" val={true}/>
77
- </SegmentGroup>
78
- </FormItem>
79
- <FormItem label="大小尺寸">
80
- <SegmentGroup v-model={state.size}>
81
- <Segment label="Mini" val="mini"/>
82
- <Segment label="Small" val="small"/>
83
- <Segment label="Normal" val="normal"/>
84
- <Segment label="Large" val="large"/>
85
- </SegmentGroup>
86
- </FormItem>
87
- <FormItem label={'是否开启虚拟滚动'}>
88
- <Toggle v-model={state.virtualFlag}/>
89
- </FormItem>
90
- <FormItem label={'编辑'}>
91
- <ButtonGroup disabled={state.editNodes.length === 0}>
92
- <Button onClick={state.saveEdit} label={'保存编辑'}/>
93
- <Button onClick={state.cancelEdit} label={'取消编辑'}/>
94
- </ButtonGroup>
95
- </FormItem>
96
- </Form>
97
- </DemoRow>
98
- <DemoRow title={'行内编辑'}>
99
- <Table
100
- showRows={10}
101
- virtual={state.virtualFlag}
102
- data={state.data}
103
- onDblclickCell={state.onDblClickRow}
104
- size={state.size}
105
- ref={onRef.table}
106
- >
107
- <PlcIndex/>
108
- <Plc field="id" title="编号" width={'50'}/>
109
- <Plc field="name" title="普通文本列"/>
110
- <Plc field="name" title="普通文本列,编辑作用域插槽" width={200} editable={state.isEditable}
111
- v-slots={{
112
- edit: ({ row }) => (
113
- <input type="text" v-model={row.name} style={{ paddingLeft: '8px' }}/>
114
- )
115
- }}
116
- />
117
- <PlcInput field="name" title="禁用编辑" editable={false}/>
118
- <PlcInput field="name" title="文本框" required/>
119
- <PlcInput field="size" title="文本框值大于6可以编辑" width={200} editable={state.isEditable} rules={state.customRule}/>
120
- <PlcNumber field={'size'} title={'数字框'} required={state.isRequired}/>
121
- <PlcDate field={'date'} title={'日期'}/>
122
- <PlcDate field={'dateStart'} title={'开始日期'} formLabel="日期范围" editColSpan={2}>
123
- {{
124
- edit: ({ row }: iTableCellRenderScope) => (
125
- <DatePicker v-model:start={row.dateStart} v-model:end={row.dateEnd} range/>
126
- ),
127
- }}
128
- </PlcDate>
129
- <PlcDate field={'dateEnd'} title={'结束日期'} editColSpan={0}/>
130
- <PlcColorPicker field={'color'} title={'颜色'}/>
131
- <PlcRate field={'star'} title={'评分'}/>
132
- </Table>
133
- </DemoRow>
134
- </div>
135
- );
136
- });
@@ -1,203 +0,0 @@
1
- import {designPage, reactive} from "plain-design-composition";
2
- import data from '../../../data/data-1.json';
3
- import {deepcopy} from "plain-utils/object/deepcopy";
4
- import {DemoRow} from "../../Demo/DemoRow";
5
- import {ColorPicker, DatePicker, Form, FormItem, Input, InputNumber, Plc, PlcExpand, PlcGroup, PlcIndex, Table} from "../../../../packages";
6
-
7
-
8
- export const demoExpand = designPage(() => {
9
-
10
- const state = reactive({
11
- data: data.map((item) => {
12
- return {
13
- ...item,
14
- children: new Array(Math.ceil(Math.random() * 5 + 2)).fill(null).map((_, index) => {
15
- return {
16
- id: index,
17
- date: item.date,
18
- name: item.name + `_${index + 1}`,
19
- address: item.addr,
20
- };
21
- })
22
- };
23
- }),
24
- });
25
-
26
- const summaryData = deepcopy(data.slice(0, 2));
27
-
28
- return () => (
29
- <DemoRow title={'展开行'}>
30
- <Table
31
- data={state.data}
32
- summaryData={summaryData}
33
- virtual
34
- virtualRowType="realIndex"
35
- dynamicSize
36
- showRows={10}
37
- >
38
- <PlcIndex/>
39
- <PlcExpand
40
- fixedWidth
41
- v-slots={{
42
- expand: ({ row }) => {
43
- return (
44
- <div style={{ padding: '20px' }}>
45
- <Table data={row.children} showRows="auto" size="small">
46
- <Plc title="名称" field="name"/>
47
- <Plc title="日期" field="date"/>
48
- <Plc title="地址" field="address"/>
49
- </Table>
50
- </div>
51
- );
52
- }
53
- }}
54
- />
55
- <Plc title={'编号'} field={'id'}/>
56
- <Plc title={'大小'} field={'size'}/>
57
- <PlcGroup title={'地址'} fixed={'left'}>
58
- <Plc field="date" title="日期"/>
59
- <Plc field="color" title="颜色"/>
60
- </PlcGroup>
61
- <Plc title={'编号'} field={'id'}/>
62
- <Plc title={'评分'} field={'star'}/>
63
- <Plc title={'地址'} field={'addr'}/>
64
-
65
- <Plc title={'名称'} field={'name'} fixed="right"/>
66
- <PlcGroup title={'站点'} fixed={'right'}>
67
- <Plc field={'url'} title={'链接'}/>
68
- <Plc field={'domain'} title={'域名'}/>
69
- </PlcGroup>
70
-
71
- <Plc title="协议" field="protocol"/>
72
- <Plc title="邮箱" field="email"/>
73
- <Plc title="ip" field="ip"/>
74
- </Table>
75
- </DemoRow>
76
- );
77
- });
78
-
79
-
80
- export const demoExpandVirtualCOlumn = designPage(() => {
81
-
82
- const state = reactive({
83
- data: data.map((item) => {
84
- return {
85
- ...item,
86
- children: new Array(Math.ceil(Math.random() * 5 + 2)).fill(null).map((_, index) => {
87
- return {
88
- id: index,
89
- date: item.date,
90
- name: item.name + `_${index + 1}`,
91
- address: item.addr,
92
- };
93
- })
94
- };
95
- }),
96
- });
97
-
98
- const summaryData = deepcopy(data.slice(0, 2));
99
-
100
- return () => (
101
- <DemoRow title={'虚拟列'}>
102
- <Table
103
- data={state.data}
104
- summaryData={summaryData}
105
- virtual
106
- showRows={10}
107
- dynamicSize
108
- virtualColumn
109
- >
110
- <PlcIndex/>
111
- <PlcExpand
112
- fixedWidth
113
- v-slots={{
114
- expand: ({ row }) => {
115
- return (
116
- <div style={{ padding: '20px' }}>
117
- <Table data={row.children} showRows="auto" size="small">
118
- <Plc title="名称" field="name"/>
119
- <Plc title="日期" field="date"/>
120
- <Plc title="地址" field="address"/>
121
- </Table>
122
- </div>
123
- );
124
- }
125
- }}
126
- />
127
- <Plc title={'编号'} field={'id'}/>
128
- <Plc title={'大小'} field={'size'}/>
129
- <PlcGroup title={'地址'} fixed={'left'}>
130
- <Plc field="date" title="日期"/>
131
- <Plc field="color" title="颜色"/>
132
- </PlcGroup>
133
- <Plc title={'编号'} field={'id'}/>
134
- <Plc title={'评分'} field={'star'}/>
135
- <Plc title={'地址'} field={'addr'}/>
136
-
137
- <Plc title={'名称'} field={'name'} fixed="right"/>
138
- <PlcGroup title={'站点'} fixed={'right'}>
139
- <Plc field={'url'} title={'链接'}/>
140
- <Plc field={'domain'} title={'域名'}/>
141
- </PlcGroup>
142
-
143
- <Plc title="协议" field="protocol"/>
144
- <Plc title="邮箱" field="email"/>
145
- <Plc title="ip" field="ip"/>
146
-
147
- <Plc field={'url'} title={'链接'}/>
148
- <Plc field={'domain'} title={'域名'}/>
149
- <Plc title="协议" field="protocol"/>
150
- <Plc title="邮箱" field="email"/>
151
- <Plc title="ip" field="ip"/>
152
- <Plc title={'编号'} field={'id'}/>
153
- <Plc title={'评分'} field={'star'}/>
154
- <Plc title={'地址'} field={'addr'}/>
155
-
156
- <Plc field={'url'} title={'链接'}/>
157
- <Plc field={'domain'} title={'域名'}/>
158
- <Plc title="协议" field="protocol"/>
159
- <Plc title="邮箱" field="email"/>
160
- <Plc title="ip" field="ip"/>
161
- <Plc title={'编号'} field={'id'}/>
162
- <Plc title={'评分'} field={'star'}/>
163
- <Plc title={'地址'} field={'addr'}/>
164
-
165
- <Plc field={'url'} title={'链接'}/>
166
- <Plc field={'domain'} title={'域名'}/>
167
- <Plc title="协议" field="protocol"/>
168
- <Plc title="邮箱" field="email"/>
169
- <Plc title="ip" field="ip"/>
170
- <Plc title={'编号'} field={'id'}/>
171
- <Plc title={'评分'} field={'star'}/>
172
- <Plc title={'地址'} field={'addr'}/>
173
-
174
- <Plc field={'url'} title={'链接'}/>
175
- <Plc field={'domain'} title={'域名'}/>
176
- <Plc title="协议" field="protocol"/>
177
- <Plc title="邮箱" field="email"/>
178
- <Plc title="ip" field="ip"/>
179
- <Plc title={'编号'} field={'id'}/>
180
- <Plc title={'评分'} field={'star'}/>
181
- <Plc title={'地址'} field={'addr'}/>
182
-
183
- <Plc field={'url'} title={'链接'}/>
184
- <Plc field={'domain'} title={'域名'}/>
185
- <Plc title="协议" field="protocol"/>
186
- <Plc title="邮箱" field="email"/>
187
- <Plc title="ip" field="ip"/>
188
- <Plc title={'编号'} field={'id'}/>
189
- <Plc title={'评分'} field={'star'}/>
190
- <Plc title={'地址'} field={'addr'}/>
191
-
192
- <Plc field={'url'} title={'链接'}/>
193
- <Plc field={'domain'} title={'域名'}/>
194
- <Plc title="协议" field="protocol"/>
195
- <Plc title="邮箱" field="email"/>
196
- <Plc title="ip" field="ip"/>
197
- <Plc title={'编号'} field={'id'}/>
198
- <Plc title={'评分'} field={'star'}/>
199
- <Plc title={'地址'} field={'addr'}/>
200
- </Table>
201
- </DemoRow>
202
- );
203
- });
@@ -1,131 +0,0 @@
1
- import {designPage, reactive} from "plain-design-composition";
2
- import data from "../../../data/data-1.json";
3
- import {DemoRow} from "../../Demo/DemoRow";
4
- import {Checkbox, Form, FormItem, InputNumber, Plc, PlcGroup, PlcIndex, Table, Toggle} from "../../../../packages";
5
-
6
- export default designPage(() => {
7
-
8
- const state = reactive({
9
- data,
10
- summaryData: [
11
- {
12
- "id": 0,
13
- "color": "#79f285",
14
- "name": "Lisa",
15
- "date": "2002-04-28",
16
- "star": "★★★★★★★",
17
- "size": 49
18
- },
19
- {
20
- "id": 1,
21
- "color": "#f27990",
22
- "name": "George",
23
- "date": "2019-01-06",
24
- "star": "★★★★★★★★",
25
- "size": 74
26
- },
27
- ],
28
- other: {
29
- hasSummaryData: true,
30
- groupHead: true,
31
- },
32
- props: {
33
- headRowHeight: 45,
34
- bodyRowHeight: 40,
35
- border: true,
36
- virtual: false,
37
- },
38
- plc: {
39
- width: 200,
40
- align: 'left',
41
- init: true,
42
- hide: undefined,
43
- },
44
- });
45
-
46
- return () => (
47
- <div>
48
- <DemoRow title={'基本用法'}>
49
- <Form column={1}>
50
- <FormItem label={'列宽度响应测试'}>
51
- <InputNumber v-model={state.plc.width} step={100}/>
52
- </FormItem>
53
- <FormItem label="表头行高">
54
- <InputNumber v-model={state.props.headRowHeight} step={5}/>
55
- </FormItem>
56
- <FormItem label="表体行高">
57
- <InputNumber v-model={state.props.bodyRowHeight} step={5}/>
58
- </FormItem>
59
- <FormItem label="列销毁测试(名称)">
60
- <Toggle v-model={state.plc.init}/>
61
- </FormItem>
62
- <FormItem label="带边框">
63
- <Checkbox v-model={state.props.border}/>
64
- </FormItem>
65
- <FormItem label="合计行">
66
- <Toggle v-model={state.other.hasSummaryData}/>
67
- </FormItem>
68
- <FormItem label="表头分组">
69
- <Toggle v-model={state.other.groupHead}/>
70
- </FormItem>
71
- <FormItem label="启用虚拟滚动">
72
- <Toggle v-model={state.props.virtual}/>
73
- </FormItem>
74
- {!!state.other.groupHead && <>
75
- <FormItem label="hide:(评分)">
76
- <Toggle v-model={state.plc.hide}/>
77
- </FormItem>
78
- </>}
79
- </Form>
80
- </DemoRow>
81
- <DemoRow title={'固定列'}>
82
- <Table
83
- data={data}
84
- summaryData={state.other.hasSummaryData ? state.summaryData : undefined}
85
- {...state.props}
86
- showRows={10}
87
- >
88
-
89
- {!!state.other.groupHead && <>
90
- <PlcIndex/>
91
- <Plc title={'编号'} field={'id'} fixed={'left'} width={state.plc.width}/>
92
- <Plc title={'编号'} field={'id'}/>
93
- <Plc title={'大小'} field={'size'}/>
94
- <PlcGroup title={'地址'} fixed={'left'}>
95
- <Plc field="date" title="日期"/>
96
- <Plc field="color" title="颜色"/>
97
- </PlcGroup>
98
- <Plc title={'编号'} field={'id'}/>
99
- <Plc title={'评分'} field={'star'}/>
100
- <Plc title={'地址'} field={'addr'}/>
101
-
102
- {state.plc.init && <Plc title={'名称'} field={'name'}/>}
103
- <PlcGroup title={'站点'} fixed={'right'}>
104
- <Plc field={'url'} title={'链接'}/>
105
- <Plc field={'domain'} title={'域名'}/>
106
- </PlcGroup>
107
-
108
- <Plc title="协议" field="protocol"/>
109
- <Plc title="邮箱" field="email"/>
110
- <Plc title="ip" field="ip"/>
111
- </>}
112
- {!state.other.groupHead && <>
113
- <PlcIndex/>
114
- <Plc field="id" title="编号" fixed={'left'}/>
115
- <Plc field="size" title="大小"/>
116
- <Plc field="date" title="日期"/>
117
- <Plc field="color" title="颜色"/>
118
- {!!state.plc.init && <Plc field="name" title="名称" fixed={'right'}/>}
119
- <Plc field="star" title="评分"/>
120
- <Plc field="addr" title="地址"/>
121
- <Plc field="url" title="链接"/>
122
- <Plc field="domain" title="域名"/>
123
- <Plc field="protocol" title="协议"/>
124
- <Plc field="email" title="邮箱"/>
125
- <Plc field="ip" title="ip"/>
126
- </>}
127
- </Table>
128
- </DemoRow>
129
- </div>
130
- );
131
- });