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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. package/dist/plain-design.commonjs.min.js +18 -18
  2. package/dist/plain-design.min.css +1 -1
  3. package/dist/plain-design.min.js +18 -18
  4. package/dist/report.html +38 -38
  5. package/package.json +3 -2
  6. package/src/packages/components/Dropdown/dropdown.public.scss +10 -0
  7. package/src/packages/components/Dropdown/dropdown.utils.tsx +3 -1
  8. package/src/packages/components/Dropdown/index.tsx +2 -2
  9. package/src/packages/components/DropdownSeparator/index.tsx +8 -0
  10. package/src/packages/entry.tsx +1 -0
  11. package/src/pages/data/address.json +0 -39317
  12. package/src/pages/data/data-1.json +0 -754
  13. package/src/pages/data/data-2.json +0 -3006
  14. package/src/pages/data/data-200.json +0 -5206
  15. package/src/pages/data/data-2000.json +0 -51954
  16. package/src/pages/data/data-50.json +0 -2075
  17. package/src/pages/data/data.json +0 -30002
  18. package/src/pages/data/demo.json +0 -1702
  19. package/src/pages/data/mock.database.js +0 -43
  20. package/src/pages/data/mock.js +0 -141
  21. package/src/pages/data/tree.data.json +0 -87
  22. package/src/pages/env/config/local.js +0 -3
  23. package/src/pages/env/config/prod.js +0 -3
  24. package/src/pages/env/config/undefined.js +0 -1
  25. package/src/pages/env/env.d.ts +0 -4
  26. package/src/pages/env/index.ts +0 -1
  27. package/src/pages/history/createHistory.ts +0 -94
  28. package/src/pages/history/history.utils.ts +0 -64
  29. package/src/pages/index/App.tsx +0 -17
  30. package/src/pages/index/Demo/DemoLine.tsx +0 -23
  31. package/src/pages/index/Demo/DemoRow.scss +0 -131
  32. package/src/pages/index/Demo/DemoRow.tsx +0 -71
  33. package/src/pages/index/Demo/DemoRow.utils.ts +0 -23
  34. package/src/pages/index/Demo/DemoRowController.tsx +0 -45
  35. package/src/pages/index/Demo/index.ts +0 -8
  36. package/src/pages/index/app.scss +0 -197
  37. package/src/pages/index/components/AutoTable/AutoHeightAutoRow.tsx +0 -56
  38. package/src/pages/index/components/AutoTable/AutoHeightFixedRow.tsx +0 -50
  39. package/src/pages/index/components/AutoTable/AutoTableBasicUsage.tsx +0 -75
  40. package/src/pages/index/components/AutoTable/AutoTableCascade.tsx +0 -99
  41. package/src/pages/index/components/AutoTable/AutoTableDefaultSearch.tsx +0 -73
  42. package/src/pages/index/components/AutoTable/AutoTableFiles.tsx +0 -26
  43. package/src/pages/index/components/AutoTable/AutoTableFill.tsx +0 -51
  44. package/src/pages/index/components/AutoTable/AutoTableGroupUsage.tsx +0 -71
  45. package/src/pages/index/components/AutoTable/AutoTableObjectPicker.tsx +0 -181
  46. package/src/pages/index/components/AutoTable/AutoTableOvList.tsx +0 -80
  47. package/src/pages/index/components/AutoTable/AutoTableProductList.tsx +0 -98
  48. package/src/pages/index/components/AutoTable/AutoTableRowFormatter.tsx +0 -58
  49. package/src/pages/index/components/AutoTable/FixedHeightAutoRow.tsx +0 -50
  50. package/src/pages/index/components/AutoTable/FixedHeightFixedRow.tsx +0 -49
  51. package/src/pages/index/components/bus/DemoAddress.tsx +0 -181
  52. package/src/pages/index/components/bus/DemoAddressCascade.tsx +0 -132
  53. package/src/pages/index/components/bus/DemoFilter.tsx +0 -184
  54. package/src/pages/index/components/columns/DemoPlcAddress.tsx +0 -161
  55. package/src/pages/index/components/columns/DemoPlcDate.tsx +0 -363
  56. package/src/pages/index/components/columns/DemoPlcSelect.tsx +0 -505
  57. package/src/pages/index/components/columns/DemoPlcTime.tsx +0 -293
  58. package/src/pages/index/components/columns/DemoTableColumns.tsx +0 -88
  59. package/src/pages/index/components/form/DemoFormBasic.tsx +0 -516
  60. package/src/pages/index/components/form/DemoFormBlur.tsx +0 -204
  61. package/src/pages/index/components/form/DemoFormDynamicFields.tsx +0 -54
  62. package/src/pages/index/components/form/DemoFormEditControl.tsx +0 -164
  63. package/src/pages/index/components/form/DemoFormElement.tsx +0 -207
  64. package/src/pages/index/components/form/DemoFormLayout.scss +0 -7
  65. package/src/pages/index/components/form/DemoFormLayout.tsx +0 -311
  66. package/src/pages/index/components/form/DemoFormSimplify.tsx +0 -587
  67. package/src/pages/index/components/form/DemoFormSize.tsx +0 -274
  68. package/src/pages/index/components/form/DemoFormVertical.tsx +0 -280
  69. package/src/pages/index/components/normal/DemoAlert.tsx +0 -66
  70. package/src/pages/index/components/normal/DemoBadge.tsx +0 -53
  71. package/src/pages/index/components/normal/DemoButton.tsx +0 -300
  72. package/src/pages/index/components/normal/DemoCard.tsx +0 -176
  73. package/src/pages/index/components/normal/DemoCarousel.tsx +0 -230
  74. package/src/pages/index/components/normal/DemoCascade.tsx +0 -880
  75. package/src/pages/index/components/normal/DemoCheckbox.scss +0 -24
  76. package/src/pages/index/components/normal/DemoCheckbox.tsx +0 -294
  77. package/src/pages/index/components/normal/DemoCollapse.tsx +0 -104
  78. package/src/pages/index/components/normal/DemoColor.scss +0 -20
  79. package/src/pages/index/components/normal/DemoColor.tsx +0 -82
  80. package/src/pages/index/components/normal/DemoColorPicker.tsx +0 -163
  81. package/src/pages/index/components/normal/DemoDate.tsx +0 -443
  82. package/src/pages/index/components/normal/DemoDialog.tsx +0 -507
  83. package/src/pages/index/components/normal/DemoDropdown.tsx +0 -463
  84. package/src/pages/index/components/normal/DemoGrid.scss +0 -26
  85. package/src/pages/index/components/normal/DemoGrid.tsx +0 -181
  86. package/src/pages/index/components/normal/DemoIcon.tsx +0 -39
  87. package/src/pages/index/components/normal/DemoImage.tsx +0 -122
  88. package/src/pages/index/components/normal/DemoInput.scss +0 -0
  89. package/src/pages/index/components/normal/DemoInput.tsx +0 -790
  90. package/src/pages/index/components/normal/DemoKeepAlive.tsx +0 -505
  91. package/src/pages/index/components/normal/DemoLayout.tsx +0 -144
  92. package/src/pages/index/components/normal/DemoList.scss +0 -15
  93. package/src/pages/index/components/normal/DemoList.tsx +0 -82
  94. package/src/pages/index/components/normal/DemoLoading.tsx +0 -86
  95. package/src/pages/index/components/normal/DemoNumber.tsx +0 -269
  96. package/src/pages/index/components/normal/DemoPagination.tsx +0 -164
  97. package/src/pages/index/components/normal/DemoPopup.tsx +0 -695
  98. package/src/pages/index/components/normal/DemoProgress.tsx +0 -133
  99. package/src/pages/index/components/normal/DemoRadio.scss +0 -16
  100. package/src/pages/index/components/normal/DemoRadio.tsx +0 -188
  101. package/src/pages/index/components/normal/DemoRate.tsx +0 -77
  102. package/src/pages/index/components/normal/DemoScroll.scss +0 -22
  103. package/src/pages/index/components/normal/DemoScroll.tsx +0 -300
  104. package/src/pages/index/components/normal/DemoSegment.tsx +0 -71
  105. package/src/pages/index/components/normal/DemoSelect.tsx +0 -819
  106. package/src/pages/index/components/normal/DemoSlider.tsx +0 -128
  107. package/src/pages/index/components/normal/DemoSortList.tsx +0 -70
  108. package/src/pages/index/components/normal/DemoStackCard.tsx +0 -356
  109. package/src/pages/index/components/normal/DemoStep.scss +0 -18
  110. package/src/pages/index/components/normal/DemoStep.tsx +0 -291
  111. package/src/pages/index/components/normal/DemoTab.tsx +0 -338
  112. package/src/pages/index/components/normal/DemoTag.tsx +0 -100
  113. package/src/pages/index/components/normal/DemoTime.tsx +0 -403
  114. package/src/pages/index/components/normal/DemoToggle.tsx +0 -56
  115. package/src/pages/index/components/normal/DemoTooltip.tsx +0 -120
  116. package/src/pages/index/components/normal/DemoTree.tsx +0 -1183
  117. package/src/pages/index/components/normal/DemoUpload.tsx +0 -484
  118. package/src/pages/index/components/normal/DemoVirtualList.tsx +0 -464
  119. package/src/pages/index/components/service/DemoDialogService.tsx +0 -249
  120. package/src/pages/index/components/service/DemoFileService.tsx +0 -110
  121. package/src/pages/index/components/service/DemoImagePreviewer.tsx +0 -185
  122. package/src/pages/index/components/service/DemoMessageService.tsx +0 -100
  123. package/src/pages/index/components/service/DemoNoticeService.tsx +0 -99
  124. package/src/pages/index/components/service/DemoPopupService.tsx +0 -325
  125. package/src/pages/index/components/table/DemoPlcOperation.tsx +0 -307
  126. package/src/pages/index/components/table/DemoTableBasic.tsx +0 -220
  127. package/src/pages/index/components/table/DemoTableCheck.tsx +0 -78
  128. package/src/pages/index/components/table/DemoTableClassAndStyle.scss +0 -18
  129. package/src/pages/index/components/table/DemoTableClassAndStyle.tsx +0 -112
  130. package/src/pages/index/components/table/DemoTableColDraggable.tsx +0 -80
  131. package/src/pages/index/components/table/DemoTableEdit.tsx +0 -136
  132. package/src/pages/index/components/table/DemoTableExpand.tsx +0 -203
  133. package/src/pages/index/components/table/DemoTableFixed.tsx +0 -131
  134. package/src/pages/index/components/table/DemoTableFormatter.tsx +0 -66
  135. package/src/pages/index/components/table/DemoTableOverflowTooltip.tsx +0 -67
  136. package/src/pages/index/components/table/DemoTableRowDraggable.tsx +0 -106
  137. package/src/pages/index/components/table/DemoTableSlots.tsx +0 -153
  138. package/src/pages/index/components/table/DemoTableSpan.tsx +0 -167
  139. package/src/pages/index/components/table/DemoTableTree.tsx +0 -976
  140. package/src/pages/index/components/table/DemoVirtualTable.tsx +0 -274
  141. package/src/pages/index/components/test/DemoI18n.tsx +0 -27
  142. package/src/pages/index/components/test/DemoI18n2.jsx +0 -11
  143. package/src/pages/index/home/AppContent.tsx +0 -69
  144. package/src/pages/index/home/AppHead.tsx +0 -18
  145. package/src/pages/index/home/AppHome.tsx +0 -31
  146. package/src/pages/index/home/AppMenu.tsx +0 -38
  147. package/src/pages/index/home/menus.tsx +0 -220
  148. package/src/pages/index/home/plain-design.png +0 -0
  149. package/src/pages/index/main.tsx +0 -23
  150. package/src/pages/index/nav/$nav.ts +0 -41
  151. package/src/pages/index/pages.d.ts +0 -6
  152. package/src/pages/libs/iconfont-fontcls/demo.css +0 -539
  153. package/src/pages/libs/iconfont-fontcls/demo_index.html +0 -303
  154. package/src/pages/libs/iconfont-fontcls/iconfont.css +0 -35
  155. package/src/pages/libs/iconfont-fontcls/iconfont.js +0 -1
  156. package/src/pages/libs/iconfont-fontcls/iconfont.json +0 -44
  157. package/src/pages/libs/iconfont-fontcls/iconfont.ttf +0 -0
  158. package/src/pages/libs/iconfont-fontcls/iconfont.woff +0 -0
  159. package/src/pages/libs/iconfont-fontcls/iconfont.woff2 +0 -0
  160. package/src/pages/libs/iconfont-symbol/demo.css +0 -539
  161. package/src/pages/libs/iconfont-symbol/demo_index.html +0 -303
  162. package/src/pages/libs/iconfont-symbol/iconfont.css +0 -35
  163. package/src/pages/libs/iconfont-symbol/iconfont.js +0 -1
  164. package/src/pages/libs/iconfont-symbol/iconfont.json +0 -44
  165. package/src/pages/libs/iconfont-symbol/iconfont.ttf +0 -0
  166. package/src/pages/libs/iconfont-symbol/iconfont.woff +0 -0
  167. package/src/pages/libs/iconfont-symbol/iconfont.woff2 +0 -0
  168. package/src/pages/libs/install.iconfont-fontcls.tsx +0 -11
  169. package/src/pages/libs/install.iconfont-symbol.scss +0 -7
  170. package/src/pages/libs/install.iconfont-symbol.tsx +0 -14
  171. package/src/pages/module/address.ts +0 -27
  172. package/src/pages/module/http.ts +0 -24
  173. package/src/pages/module/index.ts +0 -19
  174. package/src/pages/module/object.ts +0 -5
  175. package/src/pages/module/ov.tsx +0 -13
  176. package/src/pages/module/upload.ts +0 -9
  177. package/src/pages/module/useTableOption.ts +0 -28
@@ -1,23 +0,0 @@
1
- const DEMO_ROW_STORAGE_KEY = 'DEMO_ROW';
2
-
3
- export const DemoRowCache = (() => {
4
- let str = localStorage.getItem(DEMO_ROW_STORAGE_KEY);
5
- const cache: Record<string, boolean> = !!str ? JSON.parse(str) : {};
6
-
7
- return {
8
- get: (id: string) => {
9
- const flag = cache[id];
10
- return flag == null ? true : flag;
11
- },
12
- set: (id: string, flag: boolean) => {
13
- cache[id] = flag;
14
- localStorage.setItem(DEMO_ROW_STORAGE_KEY, JSON.stringify(cache));
15
- },
16
- setAll: (flag: boolean) => {
17
- for (const key in cache) {
18
- cache[key] = flag;
19
- }
20
- localStorage.setItem(DEMO_ROW_STORAGE_KEY, JSON.stringify(cache));
21
- },
22
- };
23
- })();
@@ -1,45 +0,0 @@
1
- import {designComponent, useCollect} from "plain-design-composition";
2
- import {DemoRow} from "./DemoRow";
3
- import {Icon} from "../../../packages";
4
-
5
- export const DemoRowController = designComponent({
6
- name: 'demo-row-controller',
7
- slots: ['default'],
8
- setup({ slots }) {
9
-
10
- const children = DemoRowCollector.parent();
11
-
12
- const methods = {
13
- changeAll: (flag: boolean) => {
14
- children.forEach(child => child.methods.set(flag));
15
- // DemoRowCache.setAll(flag);
16
- }
17
- };
18
-
19
- return {
20
- refer: {
21
- name: 'i am row controller'
22
- },
23
- render: () => (
24
- <>
25
- {slots.default()}
26
- <div className="demo-row-collector-operator">
27
- <div onClick={() => methods.changeAll(false)}>
28
- <span>全部收起</span>
29
- <Icon icon="pi-fullscreen-exit"/>
30
- </div>
31
- <div onClick={() => methods.changeAll(true)}>
32
- <span>全部展开</span>
33
- <Icon icon="pi-fullscreen"/>
34
- </div>
35
- </div>
36
- </>
37
- )
38
- };
39
- },
40
- });
41
-
42
- export const DemoRowCollector = useCollect(() => ({
43
- parent: DemoRowController,
44
- child: DemoRow,
45
- }));
@@ -1,8 +0,0 @@
1
- import {App} from "plain-design-composition";
2
- import {DemoLine} from "./DemoLine";
3
- import {DemoRow} from "./DemoRow";
4
-
5
- export const installDemoComponent = (app: App) => {
6
- app.component('demo-line', DemoLine);
7
- app.component('demo-row', DemoRow);
8
- };
@@ -1,197 +0,0 @@
1
- html, body {
2
- margin: 0;
3
- padding: 0;
4
- background-color: plv(background-color);
5
- font-family: plv(font-family);
6
- }
7
-
8
- :root {
9
-
10
- --app-head-height: 64px;
11
- --app-menu-padding-left: 40px;
12
- --app-menu-padding-top: 40px;
13
- --app-border-color: #{plv(border-color)};
14
- --app-title-color: #{plv(text-1)};
15
-
16
- @media screen and(min-width: 1920px) {
17
- --app-menu-wdith: 325px;
18
- }
19
- @media screen and(min-width: 1366px) and (max-width: 1919px) {
20
- --app-menu-wdith: 265px;
21
- }
22
- @media screen and(max-width: 1365px) {
23
- --app-menu-wdith: 225px;
24
- }
25
- }
26
-
27
- html, body, #app {
28
- /*height: 100%;
29
- width: 100%;*/
30
- }
31
-
32
- .app-home {
33
-
34
- .app-head {
35
- height: var(--app-head-height);
36
- display: flex;
37
- justify-content: space-between;
38
- align-items: stretch;
39
- position: sticky;
40
- top: 0;
41
- z-index: 50;
42
- border-bottom: solid 1px plv(border-color);
43
- background-color: plv(background-color);
44
-
45
- .app-head-logo {
46
- font-size: 24px;
47
- width: var(--app-menu-wdith);
48
- display: flex;
49
- align-items: center;
50
- box-sizing: border-box;
51
- padding: 0 var(--app-menu-padding-left);
52
- position: relative;
53
- font-weight: 700;
54
-
55
- &:after {
56
- position: absolute;
57
- right: 0;
58
- top: 30%;
59
- bottom: 30%;
60
- width: 1px;
61
- background-color: var(--app-border-color);
62
- content: '';
63
- }
64
-
65
- span {
66
- background: linear-gradient(#c41d7f, #08979c, #096dd9);
67
- -webkit-background-clip: text;
68
- color: transparent;
69
- font-weight: 700;
70
- white-space: nowrap;
71
- }
72
-
73
- img {
74
- height: 18px;
75
- transform: translateY(0.3em);
76
- }
77
- }
78
-
79
- .app-head-operation {
80
- display: flex;
81
- align-items: center;
82
- padding: 0 var(--app-menu-padding-left) 0 0;
83
- }
84
- }
85
-
86
- .app-body {
87
- padding-left: var(--app-menu-wdith);
88
- min-height: calc(100vh - var(--app-head-height) - 2px);
89
- position: relative;
90
-
91
- .app-menu {
92
- width: var(--app-menu-wdith);
93
- position: fixed;
94
- top: var(--app-head-height);
95
- left: 0;
96
- bottom: 0;
97
- box-sizing: border-box;
98
- padding-top: var(--app-menu-padding-top);
99
-
100
- &:after {
101
- position: absolute;
102
- top: var(--app-menu-padding-top);
103
- bottom: 0;
104
- right: 0;
105
- width: 1px;
106
- background-color: var(--app-border-color);
107
- content: '';
108
- }
109
-
110
- .app-menu-group {
111
- font-size: 14px;
112
-
113
- .app-menu-group-name {
114
- height: 36px;
115
- line-height: 36px;
116
- margin: 16px 0;
117
- color: plv(text-1);
118
- position: relative;
119
- padding: 8px 0 8px var(--app-menu-padding-left);
120
- font-weight: bold;
121
-
122
- &:after {
123
- position: absolute;
124
- bottom: 0;
125
- left: var(--app-menu-padding-left);
126
- right: var(--app-menu-padding-left);
127
- height: 1px;
128
- background-color: var(--app-border-color);
129
- content: '';
130
- }
131
- }
132
-
133
- .app-menu-item {
134
- height: 40px;
135
- line-height: 40px;
136
- box-sizing: border-box;
137
- padding-left: var(--app-menu-padding-left);
138
- margin: 4px 0 8px 0;
139
- color: plv(text-2);
140
- cursor: pointer;
141
- border-right: solid 4px transparent;
142
- white-space: nowrap;
143
- overflow: hidden;
144
- text-overflow: ellipsis;
145
- display: flex;
146
- align-items: center;
147
- justify-content: space-between;
148
-
149
-
150
- & > div:first-child {
151
- span + span {
152
- margin-left: 8px;
153
- }
154
- }
155
-
156
- & > .#{componentName('icon')} {
157
- color: plv('primary-6');
158
- margin-right: var(--app-menu-padding-left);
159
- }
160
-
161
- &[data-active=true] {
162
- border-right: solid 4px plv(primary-6);
163
- background-color: plv(primary-1);
164
- transition: all ease 200ms;
165
- }
166
-
167
- &:not([data-active=true]) {
168
- transition: all ease-out 500ms;
169
- }
170
- }
171
-
172
- &:first-child {
173
- .app-menu-group-name {
174
- margin-top: 0;
175
- padding-top: 0;
176
- }
177
- }
178
- }
179
- }
180
-
181
- .app-content {
182
- min-height: inherit;
183
- box-sizing: border-box;
184
- padding: var(--app-menu-padding-top) 50px 50px;
185
- color: plv(text-2);
186
-
187
- .app-empty-text {
188
- color: plv('text-1');
189
- }
190
- }
191
- }
192
- }
193
-
194
-
195
-
196
-
197
-
@@ -1,56 +0,0 @@
1
- import {designPage} from "plain-design-composition";
2
- import {useTableOption} from "../../../module/useTableOption";
3
- import {AutoTable, Plc, PlcDate, PlcInput, PlcNumber, PlcSelect, SelectOption} from "../../../../packages";
4
- import TableOptionSpace from "../../../../packages/components/TableOptionSpace";
5
-
6
- let option: TableOptionSpace.iTableOption;
7
-
8
- export const demo1 = designPage(() => {
9
-
10
- if (!option) {
11
- option = useTableOption({
12
- url: '/demo',
13
- showRowsMode: 'auto',
14
- fill: true,
15
- });
16
- }
17
-
18
-
19
- const onClick = () => {
20
- console.log('click');
21
- };
22
-
23
- const selectOptions = [
24
- { label: '消费者', status: 'consumer' },
25
- { label: '潜在客户', status: 'potential' },
26
- { label: '门店', status: 'store' },
27
- ];
28
-
29
- const filterConfig = {
30
- // formItemAttrs: { column: 2 }
31
- };
32
-
33
- return () => (
34
- <AutoTable option={option}>
35
- <Plc title="编号" field="id" link onClick={onClick} hideInForm filterConfig={filterConfig}/>
36
- <PlcDate title="创建时间" field="createdAt" hideInForm width={200} editable={false} datetime/>
37
- <PlcDate title="更新时间" field="updatedAt" hideInForm width={200} editable={false} datetime/>
38
- <PlcDate title="日期" field="dateVal" displayFormat="YYYY年MM月DD日"/>
39
- <PlcNumber title="计数" field="count" required/>
40
- <PlcInput
41
- title="文本" field="normalText" required width={150} fixed="left" filterConfig={filterConfig}
42
- v-slots={{
43
- normal: ({ row }) => (
44
- <span>[{row.normalText}]</span>
45
- )
46
- }}
47
- />
48
- <PlcNumber title="数字" field="numberVal"/>
49
- <PlcSelect title="下拉选择" field="selectVal">
50
- {selectOptions.map((item) => (
51
- <SelectOption label={item.label} val={item.status} key={item.status}/>
52
- ))}
53
- </PlcSelect>
54
- </AutoTable>
55
- );
56
- });
@@ -1,50 +0,0 @@
1
- import {designPage} from "plain-design-composition";
2
- import {useTableOption} from "../../../module/useTableOption";
3
- import {AutoTable, Plc, PlcDate, PlcInput, PlcNumber, PlcSelect, SelectOption} from "../../../../packages";
4
-
5
- export const demo1 = designPage(() => {
6
-
7
- const option = useTableOption({
8
- url: '/demo',
9
- showRowsMode: 'auto',
10
- });
11
-
12
-
13
- const onClick = () => {
14
- console.log('click');
15
- };
16
-
17
- const selectOptions = [
18
- { label: '消费者', status: 'consumer' },
19
- { label: '潜在客户', status: 'potential' },
20
- { label: '门店', status: 'store' },
21
- ];
22
-
23
- const filterConfig = {
24
- // formItemAttrs: { column: 2 }
25
- };
26
-
27
- return () => (
28
- <AutoTable option={option}>
29
- <Plc title="编号" field="id" link onClick={onClick} hideInForm filterConfig={filterConfig}/>
30
- <PlcDate title="创建时间" field="createdAt" hideInForm width={200} editable={false} datetime/>
31
- <PlcDate title="更新时间" field="updatedAt" hideInForm width={200} editable={false} datetime/>
32
- <PlcDate title="日期" field="dateVal" displayFormat="YYYY年MM月DD日"/>
33
- <PlcNumber title="计数" field="count" required/>
34
- <PlcInput
35
- title="文本" field="normalText" required width={150} fixed="left" filterConfig={filterConfig}
36
- v-slots={{
37
- normal: ({ row }) => (
38
- <span>[{row.normalText}]</span>
39
- )
40
- }}
41
- />
42
- <PlcNumber title="数字" field="numberVal"/>
43
- <PlcSelect title="下拉选择" field="selectVal">
44
- {selectOptions.map((item) => (
45
- <SelectOption label={item.label} val={item.status} key={item.status}/>
46
- ))}
47
- </PlcSelect>
48
- </AutoTable>
49
- );
50
- });
@@ -1,75 +0,0 @@
1
- import {designPage} from "plain-design-composition";
2
- import {DemoRow} from "../../Demo/DemoRow";
3
- import {useTableOption} from "../../../module/useTableOption";
4
- import {AutoTable, Plc, PlcAddress, PlcDate, PlcInput, PlcNumber, PlcOv, PlcSelect, SelectOption} from "../../../../packages";
5
-
6
- export const demo1 = designPage(() => {
7
-
8
- const option = useTableOption({
9
- url: '/demo',
10
- // size: 'normal',
11
- // showRows: 1,
12
- // loadOnStart: false,
13
- // filterFormColumn: 2,
14
- /*permit: {
15
- show: {
16
- // insert: false,
17
- // update: false,
18
- // delete: false,
19
- // other: false,
20
- codes: {
21
- 'outer-update': false,
22
- }
23
- },
24
- disabled: {
25
- insert: true,
26
- },
27
- },*/
28
- });
29
-
30
- const onClick = () => {
31
- console.log('click');
32
- };
33
-
34
- const selectOptions = [
35
- { label: '消费者', status: 'consumer' },
36
- { label: '潜在客户', status: 'potential' },
37
- { label: '门店', status: 'store' },
38
- ];
39
-
40
- const filterConfig = {
41
- // formItemAttrs: { column: 2 }
42
- };
43
-
44
- return () => (
45
- <DemoRow title="基本用法">
46
- <AutoTable option={option}>
47
- <Plc title="编号" field="id" link onClick={onClick} hideInForm filterConfig={filterConfig}/>
48
- <PlcDate title="创建时间" field="createdAt" hideInForm width={200} editable={false} datetime/>
49
- <PlcDate title="更新时间" field="updatedAt" hideInForm width={200} editable={false} datetime/>
50
- <PlcDate title="日期" field="dateVal" displayFormat="YYYY年MM月DD日" overflowTooltip/>
51
- <PlcOv title="选项值" field="ovVal" ov="promotion"/>
52
- <PlcAddress
53
- provinceField="provinceVal"
54
- cityField="cityVal"
55
- districtField="districtVal"
56
- />
57
- <PlcNumber title="计数" field="count" required/>
58
- <PlcInput title="文本" field="normalText" required width={150} fixed="left" filterConfig={filterConfig}
59
- v-slots={{
60
- normal: ({ row }) => (
61
- <span>[{row.normalText}]</span>
62
- )
63
- }}
64
- />
65
- <PlcNumber title="数字" field="numberVal"/>
66
- <PlcSelect title="下拉选择" field="selectVal">
67
- {selectOptions.map((item) => (
68
- <SelectOption label={item.label} val={item.status} key={item.status}/>
69
- ))}
70
- </PlcSelect>
71
- <PlcInput title="邮箱(校验测试)" field="email" validateType="email"/>
72
- </AutoTable>
73
- </DemoRow>
74
- );
75
- });
@@ -1,99 +0,0 @@
1
- import {designPage, reactive} from "plain-design-composition";
2
- import {$configuration, $notice, AutoTable, PlcInput, Segment, SegmentGroup} from "../../../../packages";
3
- import {PlainObject} from "plain-utils/utils/event";
4
- import {useTableOption} from "../../../module/useTableOption";
5
- import {DemoRow} from "../../Demo/DemoRow";
6
-
7
- export const demo1 = designPage(() => {
8
-
9
- const state = reactive({
10
- show: true,
11
- });
12
-
13
- const http = $configuration.use('http');
14
- const checkNewCode = async (row: PlainObject) => {
15
- const { code, name, id } = row;
16
-
17
- const filterCode = { id: 'check_code', field: 'code', value: code, operator: '=' };
18
- const filterName = { id: 'check_name', field: 'name', value: name, operator: '=' };
19
- const filterId = { id: 'check_id', field: 'id', value: [id], operator: '!=' };
20
-
21
- const { list } = await http.post<{ list: any[] }>('/address/list', {
22
- ...!id ? {
23
- filters: [filterCode, filterName],
24
- filterExpression: '(check_code or check_name)',
25
- } : {
26
- filters: [filterCode, filterName, filterId],
27
- filterExpression: '(check_code or check_name) and (check_id)',
28
- },
29
- });
30
- if (list.length > 0) {
31
- $notice.error('地址代码或者地址名称唯一性冲突!');
32
- return Promise.reject();
33
- }
34
- };
35
-
36
- const provinceOption = useTableOption({
37
- url: '/address',
38
- param: { queries: [{ field: 'deep', value: '0', operator: '=' }] },
39
- defaultNewRow: { deep: 0, },
40
- showRows: 5,
41
- });
42
-
43
- const cityOption = useTableOption({
44
- url: '/address',
45
- showRows: 5,
46
- defaultNewRow: { deep: 1, },
47
- parentOption: provinceOption,
48
- parentMap: { parentName: 'name', parentCode: 'code' },
49
- });
50
-
51
- const districtOption = useTableOption({
52
- url: '/address',
53
- showRows: 5,
54
- defaultNewRow: { deep: 2, },
55
- parentOption: cityOption,
56
- parentMap: { parentName: 'name', parentCode: 'code' },
57
- });
58
-
59
- provinceOption.hooks.onBeforeSaveRow.use(row => checkNewCode(row));
60
- cityOption.hooks.onBeforeSaveRow.use(row => checkNewCode(row));
61
- districtOption.hooks.onBeforeSaveRow.use(row => checkNewCode(row));
62
-
63
- return () => <>
64
- <DemoRow title="基本用法">
65
- <AutoTable option={provinceOption}>
66
- <PlcInput title="地址代码" field="code" required/>
67
- <PlcInput title="地址名称" field="name" required defaultSearch/>
68
- <PlcInput title="经度" field="longitude"/>
69
- <PlcInput title="纬度" field="latitude"/>
70
- </AutoTable>
71
- {state.show && <>
72
- <AutoTable option={cityOption}>
73
- <PlcInput title="地址代码" field="code" required/>
74
- <PlcInput title="地址名称" field="name" required defaultSearch/>
75
- <PlcInput title="经度" field="longitude"/>
76
- <PlcInput title="纬度" field="latitude"/>
77
- {/*<PlcInput title="父级地址名称" field="parentName"/>*/}
78
- {/*<PlcInput title="父级地址代码" field="parentCode"/>*/}
79
- </AutoTable>
80
- <AutoTable option={districtOption}>
81
- <PlcInput title="地址代码" field="code" required/>
82
- <PlcInput title="地址名称" field="name" required defaultSearch/>
83
- <PlcInput title="经度" field="longitude"/>
84
- <PlcInput title="纬度" field="latitude"/>
85
- {/*<PlcInput title="父级地址名称" field="parentName"/>*/}
86
- {/*<PlcInput title="父级地址代码" field="parentCode"/>*/}
87
- </AutoTable>
88
- </>}
89
- <div>
90
- <span>子表控制:</span>
91
- <SegmentGroup v-model={state.show}>
92
- <Segment val={true} label="显示"/>
93
- <Segment val={false} label="隐藏"/>
94
- </SegmentGroup>
95
- </div>
96
- </DemoRow>
97
- </>;
98
-
99
- });
@@ -1,73 +0,0 @@
1
- import {designPage} from "plain-design-composition";
2
- import {useTableOption} from "../../../module/useTableOption";
3
- import {AutoTable, Plc, PlcDate, PlcInput, PlcNumber, PlcSelect, SelectOption} from "../../../../packages";
4
-
5
- export const demo1 = designPage(() => {
6
-
7
- const option = useTableOption({
8
- url: '/demo',
9
- fill: true,
10
- // showRows: 1,
11
- // loadOnStart: false,
12
- // filterFormColumn: 2,
13
- /*permit: {
14
- show: {
15
- // insert: false,
16
- // update: false,
17
- // delete: false,
18
- // other: false,
19
- codes: {
20
- 'outer-update': false,
21
- }
22
- },
23
- disabled: {
24
- insert: true,
25
- },
26
- },*/
27
- });
28
-
29
- const onClick = () => {
30
- console.log('click');
31
- };
32
-
33
- const selectOptions = [
34
- { label: '消费者', status: 'consumer' },
35
- { label: '潜在客户', status: 'potential' },
36
- { label: '门店', status: 'store' },
37
- ];
38
-
39
- const filterConfig = {
40
- // formItemAttrs: { column: 2 }
41
- };
42
-
43
- return () => (
44
- <AutoTable option={option}>
45
- <Plc title="编号" field="id" link onClick={onClick} hideInForm filterConfig={filterConfig}/>
46
- <PlcDate title="创建时间" field="createdAt" hideInForm width={200} editable={false} datetime/>
47
- <PlcDate title="更新时间" field="updatedAt" hideInForm width={200} editable={false} datetime/>
48
- <PlcDate title="日期" field="dateVal" displayFormat="YYYY年MM月DD日" overflowTooltip/>
49
- <PlcNumber title="计数" field="count" required/>
50
- <PlcInput title="文本"
51
- field="normalText"
52
- required
53
- width={150}
54
- fixed="left"
55
- filterConfig={filterConfig}
56
- defaultSearch
57
- defaultSearchValue="da"
58
- v-slots={{
59
- normal: ({ row }) => (
60
- <span>[{row.normalText}]</span>
61
- )
62
- }}
63
- />
64
- <PlcNumber title="数字" field="numberVal"/>
65
- <PlcSelect title="下拉选择" field="selectVal">
66
- {selectOptions.map((item) => (
67
- <SelectOption label={item.label} val={item.status} key={item.status}/>
68
- ))}
69
- </PlcSelect>
70
- <PlcInput title="邮箱(校验测试)" field="email" validateType="email"/>
71
- </AutoTable>
72
- );
73
- });
@@ -1,26 +0,0 @@
1
- import {designPage} from 'plain-design-composition';
2
- import {useTableOption} from "../../../module/useTableOption";
3
- import {AutoTable, Plc, PlcDate} from "../../../../packages";
4
-
5
- export const demo1 = designPage(() => {
6
-
7
- const option = useTableOption({
8
- url: '/upload',
9
- fill: true,
10
- permit: {
11
- show: {
12
- insert: false,
13
- update: false,
14
- },
15
- }
16
- });
17
-
18
- return () => <>
19
- <AutoTable option={option}>
20
- <Plc title="文件名称" field="name" width={200}/>
21
- <PlcDate title="上传时间" field="createdAt" width={200}/>
22
- <Plc title="文件地址" field="path"/>
23
- </AutoTable>
24
- </>;
25
-
26
- });