@kp-ui/lowcode-pc 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/style.css +54 -54
- package/core/src/components/common/RenderWidgetList.vue.js +1 -1
- package/core/src/components/common/RenderWidgetList.vue2.js +13 -2
- package/core/src/components/common/RenderWidgetList.vue2.js.map +1 -1
- package/core/src/components/common/render/Debugger.vue.js +1 -1
- package/core/src/components/common/render/Debugger.vue2.js +1 -12
- package/core/src/components/common/render/Debugger.vue2.js.map +1 -1
- package/core/src/hooks/useAppRef.js +1 -0
- package/core/src/hooks/useAppRef.js.map +1 -1
- package/core/src/hooks/useDesigner.js +4 -0
- package/core/src/hooks/useDesigner.js.map +1 -1
- package/core/src/hooks/useField.js +7 -4
- package/core/src/hooks/useField.js.map +1 -1
- package/core/src/hooks/useWebMCP.js +73 -0
- package/core/src/hooks/useWebMCP.js.map +1 -1
- package/core/src/lang/en-US.js +5 -0
- package/core/src/lang/en-US.js.map +1 -1
- package/core/src/lang/zh-CN.js +6 -0
- package/core/src/lang/zh-CN.js.map +1 -1
- package/package.json +36 -36
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue.js +1 -1
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js +15 -3
- package/src/components/desginer/form-widget/container-widget/data-table-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue2.js +1 -2
- package/src/components/desginer/form-widget/container-widget/grid-col-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue2.js +1 -2
- package/src/components/desginer/form-widget/container-widget/grid-sub-form-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/grid-widget.vue2.js +1 -2
- package/src/components/desginer/form-widget/container-widget/grid-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/tab-widget.vue.js +1 -1
- package/src/components/desginer/form-widget/container-widget/tab-widget.vue2.js +9 -7
- package/src/components/desginer/form-widget/container-widget/tab-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/useTableWidget.js +24 -5
- package/src/components/desginer/form-widget/container-widget/useTableWidget.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js +1 -2
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue2.js +1 -2
- package/src/components/desginer/form-widget/container-widget/vf-collapse-widget.vue2.js.map +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js +2 -3
- package/src/components/desginer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -1
- package/src/components/desginer/widget-panel/advanced/data-table.js +7 -0
- package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue2.js +0 -1
- package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/button-list-widget.vue2.js +1 -2
- package/src/components/field-widget/button-list-widget.vue2.js.map +1 -1
- package/src/components/field-widget/button-widget.vue2.js +0 -1
- package/src/components/field-widget/button-widget.vue2.js.map +1 -1
- package/src/components/field-widget/cascader-widget.vue2.js +0 -1
- package/src/components/field-widget/cascader-widget.vue2.js.map +1 -1
- package/src/components/field-widget/checkbox-widget.vue2.js +0 -1
- package/src/components/field-widget/checkbox-widget.vue2.js.map +1 -1
- package/src/components/field-widget/code-editor-widget.vue2.js +0 -1
- package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/color-widget.vue2.js +0 -1
- package/src/components/field-widget/color-widget.vue2.js.map +1 -1
- package/src/components/field-widget/date-range-widget.vue2.js +0 -1
- package/src/components/field-widget/date-range-widget.vue2.js.map +1 -1
- package/src/components/field-widget/date-widget.vue2.js +0 -1
- package/src/components/field-widget/date-widget.vue2.js.map +1 -1
- package/src/components/field-widget/divider-widget.vue2.js +0 -1
- package/src/components/field-widget/divider-widget.vue2.js.map +1 -1
- package/src/components/field-widget/diy-compontent-widget.vue2.js +12 -4
- package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
- package/src/components/field-widget/dropdown-widget.vue2.js +0 -1
- package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -1
- package/src/components/field-widget/file-upload-widget.vue2.js +0 -1
- package/src/components/field-widget/file-upload-widget.vue2.js.map +1 -1
- package/src/components/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/field-widget/form-item-wrapper.vue2.js +2 -2
- package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/field-widget/html-text-widget.vue2.js +0 -1
- package/src/components/field-widget/html-text-widget.vue2.js.map +1 -1
- package/src/components/field-widget/input-widget.vue2.js +0 -1
- package/src/components/field-widget/input-widget.vue2.js.map +1 -1
- package/src/components/field-widget/number-widget.vue2.js +0 -1
- package/src/components/field-widget/number-widget.vue2.js.map +1 -1
- package/src/components/field-widget/radio-widget.vue2.js +0 -1
- package/src/components/field-widget/radio-widget.vue2.js.map +1 -1
- package/src/components/field-widget/rate-widget.vue2.js +0 -1
- package/src/components/field-widget/rate-widget.vue2.js.map +1 -1
- package/src/components/field-widget/rich-editor-widget.vue2.js +0 -1
- package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/select-widget.vue2.js +0 -1
- package/src/components/field-widget/select-widget.vue2.js.map +1 -1
- package/src/components/field-widget/slider-widget.vue2.js +0 -1
- package/src/components/field-widget/slider-widget.vue2.js.map +1 -1
- package/src/components/field-widget/static-text-widget.vue2.js +0 -1
- package/src/components/field-widget/static-text-widget.vue2.js.map +1 -1
- package/src/components/field-widget/switch-widget.vue2.js +0 -1
- package/src/components/field-widget/switch-widget.vue2.js.map +1 -1
- package/src/components/field-widget/textarea-widget.vue2.js +0 -1
- package/src/components/field-widget/textarea-widget.vue2.js.map +1 -1
- package/src/components/field-widget/time-range-widget.vue2.js +0 -1
- package/src/components/field-widget/time-range-widget.vue2.js.map +1 -1
- package/src/components/field-widget/time-widget.vue2.js +0 -1
- package/src/components/field-widget/time-widget.vue2.js.map +1 -1
- package/src/components/field-widget/tree-widget.vue2.js +0 -1
- package/src/components/field-widget/tree-widget.vue2.js.map +1 -1
- package/src/components/field-widget/treeSelect-widget.vue2.js +0 -1
- package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -1
- package/src/components/field-widget/vue-render-widget.vue2.js +0 -1
- package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -1
- package/src/components/form-render/RenderWigetList.vue2.js +7 -6
- package/src/components/form-render/RenderWigetList.vue2.js.map +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue2.js +1 -2
- package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/grid-col-widget.vue2.js +1 -2
- package/src/components/form-render/container-items/grid-col-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +1 -1
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +2 -6
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/grid-widget.vue2.js +1 -2
- package/src/components/form-render/container-items/grid-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/tab-widget.vue.js +1 -1
- package/src/components/form-render/container-items/tab-widget.vue2.js +10 -4
- package/src/components/form-render/container-items/tab-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/vf-box-widget.vue.js +1 -1
- package/src/components/form-render/container-items/vf-box-widget.vue2.js +4 -6
- package/src/components/form-render/container-items/vf-box-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js +1 -2
- package/src/components/form-render/container-items/vf-collapse-widget.vue2.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue.js +50 -127
- package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
- package/src/components/public/ActionButtonListRender.vue2.js +130 -0
- package/src/components/public/{ActionButtonListRender.vue3.js.map → ActionButtonListRender.vue2.js.map} +1 -1
- package/src/components/public/ConfigView/CustomPageRender.vue.js +1 -1
- package/src/components/public/CustomerModal/CustomerModal.vue2.js +1 -1
- package/src/components/public/DynamicDialog.vue.js +1 -1
- package/src/components/render/index.vue2.js +1 -1
- package/stats.html +1 -1
- package/src/components/public/ActionButtonListRender.vue3.js +0 -53
package/assets/styles/style.css
CHANGED
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
}
|
|
31
31
|
@tailwind components;
|
|
32
32
|
@tailwind utilities;
|
|
33
|
-
.sub-form-container[data-v-
|
|
33
|
+
.sub-form-container[data-v-79efc207] {
|
|
34
34
|
margin-bottom: 16px;
|
|
35
35
|
text-align: left;
|
|
36
36
|
background: #fafafa;
|
|
37
37
|
border-radius: 8px;
|
|
38
38
|
padding: 10px;
|
|
39
39
|
}
|
|
40
|
-
.sub-form-container .header-row[data-v-
|
|
40
|
+
.sub-form-container .header-row[data-v-79efc207] {
|
|
41
41
|
margin-top: 15px;
|
|
42
42
|
}
|
|
43
|
-
.sub-form-container .header-row[data-v-
|
|
43
|
+
.sub-form-container .header-row[data-v-79efc207] .action-button {
|
|
44
44
|
height: 35px;
|
|
45
45
|
}
|
|
46
|
-
.sub-form-container .sub-form-row[data-v-
|
|
46
|
+
.sub-form-container .sub-form-row[data-v-79efc207] {
|
|
47
47
|
display: flex;
|
|
48
48
|
align-items: center;
|
|
49
49
|
background: white;
|
|
@@ -51,22 +51,22 @@
|
|
|
51
51
|
border-radius: 6px;
|
|
52
52
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
|
|
53
53
|
}
|
|
54
|
-
.sub-form-container .sub-form-row .row-number-span[data-v-
|
|
54
|
+
.sub-form-container .sub-form-row .row-number-span[data-v-79efc207] {
|
|
55
55
|
margin-left: 16px;
|
|
56
56
|
}
|
|
57
|
-
.sub-form-action-column[data-v-
|
|
57
|
+
.sub-form-action-column[data-v-79efc207] {
|
|
58
58
|
display: inline-block;
|
|
59
59
|
align-items: center;
|
|
60
60
|
text-align: center;
|
|
61
61
|
padding: 8px;
|
|
62
62
|
}
|
|
63
|
-
.grid-sub-form-data-row[data-v-
|
|
63
|
+
.grid-sub-form-data-row[data-v-79efc207] {
|
|
64
64
|
display: inline-block;
|
|
65
65
|
flex: 1;
|
|
66
66
|
padding: 10px;
|
|
67
67
|
position: relative;
|
|
68
68
|
}
|
|
69
|
-
.grid-sub-form-data-row[data-v-
|
|
69
|
+
.grid-sub-form-data-row[data-v-79efc207]:before, .grid-sub-form-data-row[data-v-79efc207]:after {
|
|
70
70
|
content: "";
|
|
71
71
|
display: inline-block;
|
|
72
72
|
width: 1px;
|
|
@@ -76,16 +76,16 @@
|
|
|
76
76
|
top: 50%;
|
|
77
77
|
transform: translateY(-50%);
|
|
78
78
|
}
|
|
79
|
-
.grid-sub-form-data-row[data-v-
|
|
79
|
+
.grid-sub-form-data-row[data-v-79efc207]:before {
|
|
80
80
|
left: 0;
|
|
81
81
|
}
|
|
82
|
-
.grid-sub-form-data-row[data-v-
|
|
82
|
+
.grid-sub-form-data-row[data-v-79efc207]:after {
|
|
83
83
|
right: 0;
|
|
84
84
|
}
|
|
85
|
-
.grid-sub-form-data-row[data-v-
|
|
85
|
+
.grid-sub-form-data-row[data-v-79efc207] .ant-form-item {
|
|
86
86
|
margin-bottom: 0;
|
|
87
87
|
}
|
|
88
|
-
.row-no-column[data-v-
|
|
88
|
+
.row-no-column[data-v-79efc207] {
|
|
89
89
|
display: flex;
|
|
90
90
|
align-items: center;
|
|
91
91
|
width: 50px;
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
font-size: 14px;
|
|
97
97
|
color: #666;
|
|
98
98
|
}
|
|
99
|
-
.action-button-column[data-v-
|
|
99
|
+
.action-button-column[data-v-79efc207] {
|
|
100
100
|
width: 140px;
|
|
101
101
|
}.grid-cell[data-v-13ad810a] {
|
|
102
102
|
padding: 3px;
|
|
@@ -251,17 +251,17 @@
|
|
|
251
251
|
overflow: hidden;
|
|
252
252
|
background-color: #fff;
|
|
253
253
|
}
|
|
254
|
-
.box-container[data-v-
|
|
254
|
+
.box-container[data-v-2f18f5a7] {
|
|
255
255
|
width: 100%;
|
|
256
256
|
position: relative;
|
|
257
257
|
}
|
|
258
|
-
.tab-container .form-widget-list[data-v-
|
|
258
|
+
.tab-container .form-widget-list[data-v-7dd195c1] {
|
|
259
259
|
min-height: 28px;
|
|
260
260
|
}
|
|
261
|
-
.tab-container[data-v-
|
|
261
|
+
.tab-container[data-v-7dd195c1] .ant-tabs.ant-tabs-bottom .ant-tabs-nav-wrap, .tab-container[data-v-7dd195c1] .ant-tabs.ant-tabs-top .ant-tabs-nav-wrap {
|
|
262
262
|
padding-left: 26px;
|
|
263
263
|
}
|
|
264
|
-
.tab-container[data-v-
|
|
264
|
+
.tab-container[data-v-7dd195c1] .tab-content-wrapper {
|
|
265
265
|
min-height: 100px;
|
|
266
266
|
}.drag-handler[data-v-d93fc5cc] {
|
|
267
267
|
position: absolute;
|
|
@@ -344,38 +344,38 @@
|
|
|
344
344
|
.widget-wrapper .action-buttons[data-v-f2552afd]:hover {
|
|
345
345
|
background-color: #ff4d4f;
|
|
346
346
|
}
|
|
347
|
-
.designer-widget-list[data-v-
|
|
347
|
+
.designer-widget-list[data-v-cdfa16a0] {
|
|
348
348
|
position: relative;
|
|
349
349
|
display: flex;
|
|
350
350
|
flex-direction: column;
|
|
351
351
|
}
|
|
352
|
-
.designer-widget-list.empty-list[data-v-
|
|
352
|
+
.designer-widget-list.empty-list[data-v-cdfa16a0] {
|
|
353
353
|
min-height: 96px;
|
|
354
354
|
}
|
|
355
|
-
.designer-widget-list .empty-drop-zone[data-v-
|
|
355
|
+
.designer-widget-list .empty-drop-zone[data-v-cdfa16a0] {
|
|
356
356
|
position: absolute;
|
|
357
357
|
left: 0;
|
|
358
358
|
width: 100%;
|
|
359
359
|
z-index: 2;
|
|
360
360
|
}
|
|
361
|
-
.designer-widget-list[data-v-
|
|
361
|
+
.designer-widget-list[data-v-cdfa16a0] .sortable-ghost {
|
|
362
362
|
z-index: 99;
|
|
363
363
|
}
|
|
364
|
-
.list-transition-container[data-v-
|
|
364
|
+
.list-transition-container[data-v-cdfa16a0] {
|
|
365
365
|
display: flex;
|
|
366
366
|
flex-direction: column;
|
|
367
367
|
padding: 2px;
|
|
368
368
|
}
|
|
369
|
-
.transition-group-el[data-v-
|
|
369
|
+
.transition-group-el[data-v-cdfa16a0] {
|
|
370
370
|
position: relative;
|
|
371
371
|
padding: 1px;
|
|
372
372
|
}
|
|
373
|
-
.transition-group-el .sortable-ghost[data-v-
|
|
373
|
+
.transition-group-el .sortable-ghost[data-v-cdfa16a0] {
|
|
374
374
|
width: 100%;
|
|
375
375
|
}
|
|
376
376
|
|
|
377
377
|
/* SortableJS 自动应用的类 */
|
|
378
|
-
.ghost-placeholder[data-v-
|
|
378
|
+
.ghost-placeholder[data-v-cdfa16a0] {
|
|
379
379
|
opacity: 0.5;
|
|
380
380
|
background: #c8ebfb;
|
|
381
381
|
border: 2px dashed var(--ant-primary-color);
|
|
@@ -383,10 +383,10 @@
|
|
|
383
383
|
margin: 4px 0;
|
|
384
384
|
border-radius: 4px;
|
|
385
385
|
}
|
|
386
|
-
.sortable-chosen[data-v-
|
|
386
|
+
.sortable-chosen[data-v-cdfa16a0] {
|
|
387
387
|
background: #fdfdfd;
|
|
388
388
|
}
|
|
389
|
-
.empty-drop-zone[data-v-
|
|
389
|
+
.empty-drop-zone[data-v-cdfa16a0] {
|
|
390
390
|
line-height: 1.2;
|
|
391
391
|
display: flex;
|
|
392
392
|
align-items: center;
|
|
@@ -404,10 +404,10 @@
|
|
|
404
404
|
color: #999;
|
|
405
405
|
font-size: 14px;
|
|
406
406
|
}
|
|
407
|
-
.desginer-canvas[data-v-
|
|
407
|
+
.desginer-canvas[data-v-cdfa16a0] .ant-form-item {
|
|
408
408
|
margin-bottom: 0;
|
|
409
409
|
}/* 调试面板样式 */
|
|
410
|
-
.debug-panel[data-v-
|
|
410
|
+
.debug-panel[data-v-db68aa3b] {
|
|
411
411
|
position: absolute;
|
|
412
412
|
top: 0;
|
|
413
413
|
right: 0;
|
|
@@ -422,18 +422,18 @@
|
|
|
422
422
|
border-top-left-radius: 8px;
|
|
423
423
|
border-bottom-left-radius: 8px;
|
|
424
424
|
}
|
|
425
|
-
.debug-panel[data-v-
|
|
425
|
+
.debug-panel[data-v-db68aa3b] .jv-container .jv-code {
|
|
426
426
|
padding: 0;
|
|
427
427
|
}
|
|
428
|
-
.debug-panel.collapsed[data-v-
|
|
428
|
+
.debug-panel.collapsed[data-v-db68aa3b] {
|
|
429
429
|
transform: translateX(400px);
|
|
430
430
|
}
|
|
431
|
-
.debug-panel.collapsed .debug-toggle[data-v-
|
|
431
|
+
.debug-panel.collapsed .debug-toggle[data-v-db68aa3b] {
|
|
432
432
|
left: -40px;
|
|
433
433
|
border-radius: 8px 0 0 8px;
|
|
434
434
|
width: 40px;
|
|
435
435
|
}
|
|
436
|
-
.debug-panel .debug-toggle[data-v-
|
|
436
|
+
.debug-panel .debug-toggle[data-v-db68aa3b] {
|
|
437
437
|
position: absolute;
|
|
438
438
|
left: -40px;
|
|
439
439
|
top: 20px;
|
|
@@ -452,20 +452,20 @@
|
|
|
452
452
|
padding: 8px 0;
|
|
453
453
|
user-select: none;
|
|
454
454
|
}
|
|
455
|
-
.debug-panel .debug-content[data-v-
|
|
455
|
+
.debug-panel .debug-content[data-v-db68aa3b] {
|
|
456
456
|
flex: 1;
|
|
457
457
|
overflow: auto;
|
|
458
458
|
padding: 16px;
|
|
459
459
|
background-color: #f5f7fa;
|
|
460
460
|
}
|
|
461
|
-
.debug-panel .debug-content .debug-section[data-v-
|
|
461
|
+
.debug-panel .debug-content .debug-section[data-v-db68aa3b] {
|
|
462
462
|
margin-bottom: 24px;
|
|
463
463
|
background-color: #fff;
|
|
464
464
|
border-radius: 8px;
|
|
465
465
|
padding: 16px;
|
|
466
466
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
|
467
467
|
}
|
|
468
|
-
.debug-panel .debug-content .debug-section h3[data-v-
|
|
468
|
+
.debug-panel .debug-content .debug-section h3[data-v-db68aa3b] {
|
|
469
469
|
margin: 0 0 12px 0;
|
|
470
470
|
font-size: 14px;
|
|
471
471
|
font-weight: 600;
|
|
@@ -473,18 +473,18 @@
|
|
|
473
473
|
border-bottom: 1px solid #e8e8e8;
|
|
474
474
|
padding-bottom: 8px;
|
|
475
475
|
}
|
|
476
|
-
.debug-panel .debug-content .debug-section .empty-state[data-v-
|
|
476
|
+
.debug-panel .debug-content .debug-section .empty-state[data-v-db68aa3b] {
|
|
477
477
|
color: #999;
|
|
478
478
|
font-size: 12px;
|
|
479
479
|
text-align: center;
|
|
480
480
|
padding: 20px;
|
|
481
481
|
}
|
|
482
|
-
.debug-panel .debug-content .debug-section .widget-list[data-v-
|
|
482
|
+
.debug-panel .debug-content .debug-section .widget-list[data-v-db68aa3b] {
|
|
483
483
|
display: flex;
|
|
484
484
|
flex-direction: column;
|
|
485
485
|
gap: 2px;
|
|
486
486
|
}
|
|
487
|
-
.debug-panel .debug-content .debug-section .widget-list .widget-item[data-v-
|
|
487
|
+
.debug-panel .debug-content .debug-section .widget-list .widget-item[data-v-db68aa3b] {
|
|
488
488
|
border: 1px solid #e8e8e8;
|
|
489
489
|
border-radius: 4px;
|
|
490
490
|
padding: 2px 4px;
|
|
@@ -492,12 +492,12 @@
|
|
|
492
492
|
background-color: #fafafa;
|
|
493
493
|
cursor: pointer;
|
|
494
494
|
}
|
|
495
|
-
.debug-panel .debug-content .debug-section .widget-list .widget-item .widget-key[data-v-
|
|
495
|
+
.debug-panel .debug-content .debug-section .widget-list .widget-item .widget-key[data-v-db68aa3b] {
|
|
496
496
|
font-weight: 600;
|
|
497
497
|
color: var(--ant-primary-color);
|
|
498
498
|
font-size: 12px;
|
|
499
499
|
}
|
|
500
|
-
.debug-panel .debug-content pre[data-v-
|
|
500
|
+
.debug-panel .debug-content pre[data-v-db68aa3b] {
|
|
501
501
|
margin: 0;
|
|
502
502
|
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
503
503
|
font-size: 12px;
|
|
@@ -509,25 +509,25 @@
|
|
|
509
509
|
color: #333;
|
|
510
510
|
}
|
|
511
511
|
|
|
512
|
-
.field-wrapper[data-v-
|
|
512
|
+
.field-wrapper[data-v-1e482344] {
|
|
513
513
|
position: relative;
|
|
514
514
|
}
|
|
515
|
-
.ant-form-item[data-v-
|
|
515
|
+
.ant-form-item[data-v-1e482344] {
|
|
516
516
|
position: relative;
|
|
517
517
|
/* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */
|
|
518
518
|
}
|
|
519
|
-
.ant-form-item[data-v-
|
|
519
|
+
.ant-form-item[data-v-1e482344] .ant-form-item-label {
|
|
520
520
|
white-space: nowrap;
|
|
521
521
|
text-overflow: ellipsis;
|
|
522
522
|
}
|
|
523
|
-
.ant-form-item span.custom-label[data-v-
|
|
523
|
+
.ant-form-item span.custom-label[data-v-1e482344] {
|
|
524
524
|
display: flex;
|
|
525
525
|
}
|
|
526
|
-
.ant-form-item span.custom-label i[data-v-
|
|
526
|
+
.ant-form-item span.custom-label i[data-v-1e482344] {
|
|
527
527
|
margin: 0 3px;
|
|
528
528
|
}
|
|
529
|
-
.ant-form-item[data-v-
|
|
530
|
-
.ant-form-item[data-v-
|
|
529
|
+
.ant-form-item[data-v-1e482344] .hide-spin-button input::-webkit-outer-spin-button,
|
|
530
|
+
.ant-form-item[data-v-1e482344] .hide-spin-button input::-webkit-inner-spin-button {
|
|
531
531
|
-webkit-appearance: none !important;
|
|
532
532
|
}[data-v-3974eef4] .bjs-powered-by {
|
|
533
533
|
display: none;
|
|
@@ -706,25 +706,25 @@
|
|
|
706
706
|
}
|
|
707
707
|
.grid-container .form-widget-list[data-v-d41dbfac] {
|
|
708
708
|
min-height: 28px;
|
|
709
|
-
}.top-action[data-v-
|
|
709
|
+
}.top-action[data-v-63f1a31d] {
|
|
710
710
|
display: flex;
|
|
711
711
|
gap: 8px;
|
|
712
712
|
padding: 4px 0 8px;
|
|
713
713
|
}
|
|
714
|
-
.talbe-wrapper[data-v-
|
|
714
|
+
.talbe-wrapper[data-v-63f1a31d] {
|
|
715
715
|
width: 100%;
|
|
716
716
|
}
|
|
717
|
-
.talbe-wrapper .vxe-grid[data-v-
|
|
717
|
+
.talbe-wrapper .vxe-grid[data-v-63f1a31d] {
|
|
718
718
|
width: 100%;
|
|
719
719
|
}
|
|
720
|
-
.talbe-wrapper__pagination[data-v-
|
|
720
|
+
.talbe-wrapper__pagination[data-v-63f1a31d] {
|
|
721
721
|
margin-top: 10px;
|
|
722
722
|
display: flex;
|
|
723
723
|
justify-content: end;
|
|
724
|
-
}.tab-container .form-widget-list[data-v-
|
|
724
|
+
}.tab-container .form-widget-list[data-v-149d976d] {
|
|
725
725
|
min-height: 28px;
|
|
726
726
|
}
|
|
727
|
-
.tab-container[data-v-
|
|
727
|
+
.tab-container[data-v-149d976d] .ant-tabs.ant-tabs-bottom .ant-tabs-nav-wrap, .tab-container[data-v-149d976d] .ant-tabs.ant-tabs-top .ant-tabs-nav-wrap {
|
|
728
728
|
padding-left: 26px;
|
|
729
729
|
}.collapse-container[data-v-eefdb1f5] {
|
|
730
730
|
display: flex;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./RenderWidgetList.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const RenderWidgetList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const RenderWidgetList = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cdfa16a0"]]);
|
|
5
5
|
export {
|
|
6
6
|
RenderWidgetList as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, mergeModels, useModel, createBlock, createElementBlock, unref, openBlock, normalizeClass, withCtx, createCommentVNode, createElementVNode, createVNode, resolveDynamicComponent, Fragment, renderList } from "vue";
|
|
1
|
+
import { defineComponent, mergeModels, provide, toRef, useModel, createBlock, createElementBlock, unref, openBlock, normalizeClass, withCtx, createCommentVNode, createElementVNode, createVNode, resolveDynamicComponent, Fragment, renderList } from "vue";
|
|
2
2
|
import Draggable from "vuedraggable";
|
|
3
3
|
import { useDesigner } from "../../hooks/useDesigner.js";
|
|
4
4
|
import WidgetWrapper from "./desginer/WidgetWrapper.vue.js";
|
|
@@ -15,6 +15,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15
15
|
},
|
|
16
16
|
__name: "RenderWidgetList",
|
|
17
17
|
props: /* @__PURE__ */ mergeModels({
|
|
18
|
+
subFormRowIndex: {},
|
|
18
19
|
isCanvas: { type: Boolean, default: false },
|
|
19
20
|
allowTypes: { default: () => [] },
|
|
20
21
|
notAllowTypes: { default: () => [] },
|
|
@@ -28,7 +29,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
28
29
|
}),
|
|
29
30
|
emits: ["update:list"],
|
|
30
31
|
setup(__props) {
|
|
31
|
-
const
|
|
32
|
+
const props = __props;
|
|
33
|
+
const {
|
|
34
|
+
designer,
|
|
35
|
+
onDragAdd,
|
|
36
|
+
onDragUpdate,
|
|
37
|
+
designState,
|
|
38
|
+
getWidget
|
|
39
|
+
} = useDesigner();
|
|
40
|
+
if (typeof props.subFormRowIndex === "number") {
|
|
41
|
+
provide("subFormRowIndex", toRef(props.subFormRowIndex));
|
|
42
|
+
}
|
|
32
43
|
const onMove = (evt) => {
|
|
33
44
|
return designer.value.checkWidgetMove(evt);
|
|
34
45
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderWidgetList.vue2.js","sources":["../../../../../../core/src/components/common/RenderWidgetList.vue"],"sourcesContent":["<template>\n <template v-if=\"designState\">\n <draggable\n v-model=\"draggableList\"\n class=\"designer-widget-list list-transition-container\"\n :class=\"[{ 'empty-list': !draggableList.length }, { 'desginer-canvas': isCanvas }]\"\n tag=\"div\"\n :animation=\"200\"\n group=\"widget\"\n handle=\".drag-handler\"\n item-key=\"id\"\n :move=\"onMove\"\n :data-allow-types=\"allowTypes.join(',')\"\n :data-not-allow-types=\"notAllowTypes.join(',')\"\n @update=\"onDragUpdate\"\n @add=\"(evt: any) => onDragAdd(evt, draggableList)\"\n >\n <template #item=\"{ element: widget, index }\">\n <div :id=\"widget.id\" class=\"transition-group-el\" :data-widget-id=\"widget.id\">\n <WidgetWrapper :widget=\"widget\" :index=\"index\" v-model:list=\"draggableList\">\n <component\n :is=\"getWidget(widget)\"\n :widget=\"widget\"\n :field=\"widget\"\n :index=\"index\"\n />\n </WidgetWrapper>\n </div>\n </template>\n <template #footer>\n <div v-if=\"!draggableList.length\" class=\"empty-drop-zone\"> 拖拽组件到此处 </div>\n </template>\n </draggable>\n </template>\n <template v-else>\n <div\n v-for=\"(widget, index) in draggableList\"\n :key=\"`${widget.id}_${index}`\"\n class=\"t-overflow-hidden\"\n :id=\"widget.id\"\n >\n <component :is=\"getWidget(widget)\" :widget=\"widget\" :field=\"widget\" :index=\"index\" />\n </div>\n </template>\n</template>\n\n<script lang=\"ts\" setup>\n import draggable from 'vuedraggable';\n import { useDesigner, WidgetWrapper } from '@kp-ui/lowcode-core';\n import type { Widget, FormDesigner } from '@kp-ui/lowcode-core';\n\n defineOptions({\n inheritAttrs: false,\n name: 'RenderWidgetList'\n });\n\n const props = withDefaults(\n defineProps<{\n isCanvas?: boolean;\n allowTypes?: string[];\n notAllowTypes?: string[];\n parentWidget: Widget | FormDesigner | null;\n }>(),\n {\n isCanvas: false,\n allowTypes: () => [],\n notAllowTypes: () => []\n }\n );\n\n const {
|
|
1
|
+
{"version":3,"file":"RenderWidgetList.vue2.js","sources":["../../../../../../core/src/components/common/RenderWidgetList.vue"],"sourcesContent":["<template>\n <template v-if=\"designState\">\n <draggable\n v-model=\"draggableList\"\n class=\"designer-widget-list list-transition-container\"\n :class=\"[{ 'empty-list': !draggableList.length }, { 'desginer-canvas': isCanvas }]\"\n tag=\"div\"\n :animation=\"200\"\n group=\"widget\"\n handle=\".drag-handler\"\n item-key=\"id\"\n :move=\"onMove\"\n :data-allow-types=\"allowTypes.join(',')\"\n :data-not-allow-types=\"notAllowTypes.join(',')\"\n @update=\"onDragUpdate\"\n @add=\"(evt: any) => onDragAdd(evt, draggableList)\"\n >\n <template #item=\"{ element: widget, index }\">\n <div :id=\"widget.id\" class=\"transition-group-el\" :data-widget-id=\"widget.id\">\n <WidgetWrapper :widget=\"widget\" :index=\"index\" v-model:list=\"draggableList\">\n <component\n :is=\"getWidget(widget)\"\n :widget=\"widget\"\n :field=\"widget\"\n :index=\"index\"\n />\n </WidgetWrapper>\n </div>\n </template>\n <template #footer>\n <div v-if=\"!draggableList.length\" class=\"empty-drop-zone\"> 拖拽组件到此处 </div>\n </template>\n </draggable>\n </template>\n <template v-else>\n <div\n v-for=\"(widget, index) in draggableList\"\n :key=\"`${widget.id}_${index}`\"\n class=\"t-overflow-hidden\"\n :id=\"widget.id\"\n >\n <component :is=\"getWidget(widget)\" :widget=\"widget\" :field=\"widget\" :index=\"index\" />\n </div>\n </template>\n</template>\n\n<script lang=\"ts\" setup>\n import draggable from 'vuedraggable';\n import { useDesigner, WidgetWrapper } from '@kp-ui/lowcode-core';\n import type { Widget, FormDesigner } from '@kp-ui/lowcode-core';\n import { onMounted, provide, toRef } from 'vue';\n\n defineOptions({\n inheritAttrs: false,\n name: 'RenderWidgetList'\n });\n\n const props = withDefaults(\n defineProps<{\n subFormRowIndex?: number | string;\n isCanvas?: boolean;\n allowTypes?: string[];\n notAllowTypes?: string[];\n parentWidget: Widget | FormDesigner | null;\n }>(),\n {\n isCanvas: false,\n allowTypes: () => [],\n notAllowTypes: () => []\n }\n );\n\n const {\n isSubFormField,\n subFormRowIndex,\n designer,\n onDragAdd,\n onDragUpdate,\n designState,\n getWidget\n } = useDesigner();\n\n if (typeof props.subFormRowIndex === 'number') {\n provide('subFormRowIndex', toRef(props.subFormRowIndex));\n }\n\n const onMove = (evt: any) => {\n return designer.value.checkWidgetMove(evt);\n };\n\n const draggableList = defineModel<Widget[]>('list', {\n type: Array,\n default: []\n });\n</script>\n\n<style scoped lang=\"scss\">\n .designer-widget-list {\n position: relative;\n display: flex;\n flex-direction: column;\n // gap: 3px;\n &.empty-list {\n min-height: 96px;\n }\n .empty-drop-zone {\n position: absolute;\n // top: 5px;\n left: 0;\n width: 100%;\n z-index: 2;\n }\n :deep(.sortable-ghost) {\n z-index: 99;\n }\n }\n\n .list-transition-container {\n display: flex;\n flex-direction: column;\n padding: 2px;\n }\n\n .transition-group-el {\n position: relative;\n padding: 1px;\n .sortable-ghost {\n width: 100%;\n }\n }\n\n /* SortableJS 自动应用的类 */\n .ghost-placeholder {\n opacity: 0.5;\n background: #c8ebfb;\n border: 2px dashed var(--ant-primary-color);\n height: 40px;\n margin: 4px 0;\n border-radius: 4px;\n }\n\n .sortable-chosen {\n background: #fdfdfd;\n }\n\n .empty-drop-zone {\n line-height: 1.2;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n font-size: 12px;\n margin: 2px 0;\n height: 90px;\n background: rgba(#000, 0.05);\n border: 1px dashed #d9d9d9;\n border-radius: 2px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #999;\n font-size: 14px;\n }\n .desginer-canvas {\n &:deep(.ant-form-item) {\n margin-bottom: 0;\n }\n }\n</style>\n"],"names":["_useModel","_unref","_createBlock","draggable","isCanvas","allowTypes","notAllowTypes","_withCtx","_createElementVNode","_createVNode","_resolveDynamicComponent","_createElementBlock","_openBlock","_Fragment","_renderList"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDI,UAAM,QAAQ;AAed,UAAM;AAAA,MAGF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACA,YAAA;AAEJ,QAAI,OAAO,MAAM,oBAAoB,UAAU;AAC3C,cAAQ,mBAAmB,MAAM,MAAM,eAAe,CAAC;AAAA,IAC3D;AAEA,UAAM,SAAS,CAAC,QAAa;AACzB,aAAO,SAAS,MAAM,gBAAgB,GAAG;AAAA,IAC7C;AAEA,UAAM,gBAAgBA,kBAAsB,MAG3C;;aA5FeC,MAAA,WAAA,kBACZC,YA8BYD,MAAAE,SAAA,GAAA;AAAA;oBA7BC,cAAA;AAAA,qEAAA,cAAa,QAAA;AAAA,QACtB,uBAAM,kDAAgD,CAAA,EAAA,cAAA,CAC5B,oBAAc,OAAA,wBAA+BC,KAAAA,SAAAA,CAAQ,CAAA,CAAA;AAAA,QAC/E,KAAI;AAAA,QACH,WAAW;AAAA,QACZ,OAAM;AAAA,QACN,QAAO;AAAA,QACP,YAAS;AAAA,QACR,MAAM;AAAA,QACN,oBAAkBC,KAAAA,WAAW,KAAI,GAAA;AAAA,QACjC,wBAAsBC,KAAAA,cAAc,KAAI,GAAA;AAAA,QACxC,UAAQL,MAAA,YAAA;AAAA,QACR,kCAAM,QAAaA,iBAAU,KAAK,cAAA,KAAa;AAAA,MAAA;QAErC,MAAIM,QACX,CASM,EAAA,SAVkB,QAAQ,YAAK;AAAA,UACrCC,mBASM,OAAA;AAAA,YATA,IAAI,OAAO;AAAA,YAAI,OAAM;AAAA,YAAuB,kBAAgB,OAAO;AAAA,UAAA;YACrEC,YAOgBR,MAAA,aAAA,GAAA;AAAA,cAPA;AAAA,cAAiB;AAAA,cAAsB,MAAM,cAAA;AAAA,qEAAA,cAAa,QAAA;AAAA,YAAA;+BACtE,MAKE;AAAA,8BALFC,YAKEQ,wBAJOT,MAAA,SAAA,EAAU,MAAM,CAAA,GAAA;AAAA,kBACpB;AAAA,kBACA,OAAO;AAAA,kBACP;AAAA,gBAAA;;;;;;QAKN,gBACP,MAAyE;AAAA,UAA7D,CAAA,cAAA,MAAc,uBAA1BU,mBAAyE,OAAzE,YAA0D,WAAS;;;iGAK3EC,UAAA,IAAA,GAAAD,mBAOME,UAAA,EAAA,KAAA,EAAA,GAAAC,WANwB,cAAA,OAAa,CAA/B,QAAQ,UAAK;4BADzBH,mBAOM,OAAA;AAAA,UALD,KAAG,GAAK,OAAO,EAAE,IAAI,KAAK;AAAA,UAC3B,OAAM;AAAA,UACL,IAAI,OAAO;AAAA,QAAA;wBAEZT,YAAqFQ,wBAArET,MAAA,SAAA,EAAU,MAAM,CAAA,GAAA;AAAA,YAAI;AAAA,YAAiB,OAAO;AAAA,YAAS;AAAA,UAAA;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./Debugger.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const Debugger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const Debugger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-db68aa3b"]]);
|
|
5
5
|
export {
|
|
6
6
|
Debugger as default
|
|
7
7
|
};
|
|
@@ -6,8 +6,6 @@ const _hoisted_3 = { class: "debug-section" };
|
|
|
6
6
|
const _hoisted_4 = { class: "widget-list" };
|
|
7
7
|
const _hoisted_5 = ["onClick"];
|
|
8
8
|
const _hoisted_6 = { class: "widget-key" };
|
|
9
|
-
const _hoisted_7 = { class: "debug-section" };
|
|
10
|
-
const _hoisted_8 = { class: "widget-list" };
|
|
11
9
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
12
10
|
__name: "Debugger",
|
|
13
11
|
props: {
|
|
@@ -22,7 +20,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
22
20
|
const debugVisible = useModel(__props, "visible");
|
|
23
21
|
const formDataModel = inject("formData", {});
|
|
24
22
|
const widgetRefList = inject("refList", ref(/* @__PURE__ */ new Map()));
|
|
25
|
-
|
|
23
|
+
inject("formConfig", ref({}));
|
|
26
24
|
return (_ctx, _cache) => {
|
|
27
25
|
return openBlock(), createElementBlock("div", {
|
|
28
26
|
class: normalizeClass(["debug-panel", { collapsed: !debugVisible.value }])
|
|
@@ -52,15 +50,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
52
50
|
], 8, _hoisted_5);
|
|
53
51
|
}), 128))
|
|
54
52
|
])
|
|
55
|
-
]),
|
|
56
|
-
createElementVNode("div", _hoisted_7, [
|
|
57
|
-
_cache[2] || (_cache[2] = createElementVNode("h3", null, "FormConfig", -1)),
|
|
58
|
-
createElementVNode("div", _hoisted_8, [
|
|
59
|
-
createVNode(unref(JsonViewer), {
|
|
60
|
-
value: unref(formConfig),
|
|
61
|
-
"expand-depth": 5
|
|
62
|
-
}, null, 8, ["value"])
|
|
63
|
-
])
|
|
64
53
|
])
|
|
65
54
|
])
|
|
66
55
|
], 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Debugger.vue2.js","sources":["../../../../../../../core/src/components/common/render/Debugger.vue"],"sourcesContent":["<template>\n <div class=\"debug-panel\" :class=\"{ collapsed: !debugVisible }\">\n <div class=\"debug-toggle\" @click=\"debugVisible = !debugVisible\">\n {{ debugVisible ? '收起' : '调试' }}\n </div>\n <div class=\"debug-content\">\n <div class=\"debug-section\">\n <h3>Form Data Model</h3>\n <JsonViewer :value=\"formDataModel\" :expand-depth=\"5\" />\n </div>\n <div class=\"debug-section\">\n <h3>Widget Ref List ({{ widgetRefList.size }} widgets)</h3>\n <div class=\"widget-list\">\n <div\n v-for=\"[key, value] in widgetRefList\"\n @click=\"console.log(value)\"\n :key=\"key\"\n class=\"widget-item\"\n >\n <div class=\"widget-key\">{{ key }}</div>\n </div>\n </div>\n </div>\n <div class=\"debug-section\">\n <h3>FormConfig</h3>\n <div class=\"widget-list\">\n <JsonViewer :value=\"formConfig\" :expand-depth=\"5\" />\n </div>\n </div
|
|
1
|
+
{"version":3,"file":"Debugger.vue2.js","sources":["../../../../../../../core/src/components/common/render/Debugger.vue"],"sourcesContent":["<template>\n <div class=\"debug-panel\" :class=\"{ collapsed: !debugVisible }\">\n <div class=\"debug-toggle\" @click=\"debugVisible = !debugVisible\">\n {{ debugVisible ? '收起' : '调试' }}\n </div>\n <div class=\"debug-content\">\n <div class=\"debug-section\">\n <h3>Form Data Model</h3>\n <JsonViewer :value=\"formDataModel\" :expand-depth=\"5\" />\n </div>\n <div class=\"debug-section\">\n <h3>Widget Ref List ({{ widgetRefList.size }} widgets)</h3>\n <div class=\"widget-list\">\n <div\n v-for=\"[key, value] in widgetRefList\"\n @click=\"console.log(value)\"\n :key=\"key\"\n class=\"widget-item\"\n >\n <div class=\"widget-key\">{{ key }}</div>\n </div>\n </div>\n </div>\n <!-- <div class=\"debug-section\">\n <h3>FormConfig</h3>\n <div class=\"widget-list\">\n <JsonViewer :value=\"formConfig || {}\" :expand-depth=\"5\" />\n </div>\n </div> -->\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { ref, inject, computed } from 'vue';\n import JsonViewer from 'vue-json-viewer';\n const debugVisible = defineModel('visible', {\n type: Boolean,\n default: false\n });\n\n const formDataModel = inject('formData', {});\n const widgetRefList = inject('refList', ref(new Map()));\n const formConfig = inject('formConfig', ref({}));\n</script>\n\n<style lang=\"less\" scoped>\n /* 调试面板样式 */\n .debug-panel {\n position: absolute;\n top: 0;\n right: 0;\n width: 400px;\n height: 100vh;\n background-color: #fff;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);\n z-index: 9999;\n transition: transform 0.3s ease-in-out;\n display: flex;\n flex-direction: column;\n border-top-left-radius: 8px;\n border-bottom-left-radius: 8px;\n :deep(.jv-container .jv-code) {\n padding: 0;\n }\n\n &.collapsed {\n transform: translateX(400px);\n\n .debug-toggle {\n left: -40px;\n border-radius: 8px 0 0 8px;\n width: 40px;\n }\n }\n\n .debug-toggle {\n position: absolute;\n left: -40px;\n top: 20px;\n width: 40px;\n height: 40px;\n background-color: var(--ant-primary-color);\n color: #fff;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border-radius: 8px 0 0 8px;\n font-size: 12px;\n box-shadow: -2px 0 8px rgba(0, 0, 0, 0.15);\n writing-mode: vertical-lr;\n padding: 8px 0;\n user-select: none;\n }\n\n .debug-content {\n flex: 1;\n overflow: auto;\n padding: 16px;\n background-color: #f5f7fa;\n\n .debug-section {\n margin-bottom: 24px;\n background-color: #fff;\n border-radius: 8px;\n padding: 16px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n\n h3 {\n margin: 0 0 12px 0;\n font-size: 14px;\n font-weight: 600;\n color: #333;\n border-bottom: 1px solid #e8e8e8;\n padding-bottom: 8px;\n }\n\n .empty-state {\n color: #999;\n font-size: 12px;\n text-align: center;\n padding: 20px;\n }\n\n .widget-list {\n display: flex;\n flex-direction: column;\n gap: 2px;\n\n .widget-item {\n border: 1px solid #e8e8e8;\n border-radius: 4px;\n padding: 2px 4px;\n line-height: 1.2;\n background-color: #fafafa;\n cursor: pointer;\n\n .widget-key {\n font-weight: 600;\n color: var(--ant-primary-color);\n font-size: 12px;\n }\n }\n }\n }\n\n pre {\n margin: 0;\n font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;\n font-size: 12px;\n white-space: pre-wrap;\n word-wrap: break-word;\n background-color: #f5f5f5;\n padding: 8px;\n border-radius: 4px;\n color: #333;\n }\n }\n }\n</style>\n"],"names":["_useModel","_createElementBlock","_normalizeClass","_createElementVNode","_createVNode","_unref","_toDisplayString","_openBlock","_Fragment","_renderList"],"mappings":";;;;;;;;;;;;;;;;;;;AAoCI,UAAM,eAAeA,SAAW,SAAC,SAGhC;AAED,UAAM,gBAAgB,OAAO,YAAY,EAAE;AAC3C,UAAM,gBAAgB,OAAO,WAAW,IAAI,oBAAI,IAAA,CAAK,CAAC;AACnC,WAAO,cAAc,IAAI,EAAE,CAAC;;0BA1C/CC,mBA6BM,OAAA;AAAA,QA7BD,OAAKC,eAAA,CAAC,eAAa,EAAA,WAAA,CAAuB,aAAA,OAAY,CAAA;AAAA,MAAA;QACvDC,mBAEM,OAAA;AAAA,UAFD,OAAM;AAAA,UAAgB,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAE,aAAA,QAAY,CAAI,aAAA;AAAA,QAAA,mBAC3C,aAAA,QAAY,OAAA,IAAA,GAAA,CAAA;AAAA,QAEnBA,mBAwBM,OAxBN,YAwBM;AAAA,UAvBFA,mBAGM,OAHN,YAGM;AAAA,YAFF,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAA,mBAAwB,YAApB,mBAAe,EAAA;AAAA,YACnBC,YAAuDC,MAAA,UAAA,GAAA;AAAA,cAA1C,OAAOA,MAAA,aAAA;AAAA,cAAgB,gBAAc;AAAA,YAAA;;UAEtDF,mBAYM,OAZN,YAYM;AAAA,YAXFA,mBAA2D,YAAvD,sBAAiBG,gBAAGD,qBAAc,IAAI,IAAG,aAAS,CAAA;AAAA,YACtDF,mBASM,OATN,YASM;AAAA,eARFI,UAAA,IAAA,GAAAN,mBAOMO,UAAA,MAAAC,WANqBJ,MAAA,aAAA,GAAa,CAAA,CAA5B,KAAK,KAAK,MAAA;oCADtBJ,mBAOM,OAAA;AAAA,kBALD,SAAK,CAAA,WAAE,QAAQ,IAAI,KAAK;AAAA,kBACxB;AAAA,kBACD,OAAM;AAAA,gBAAA;kBAENE,mBAAuC,OAAvC,YAAuCG,gBAAZ,GAAG,GAAA,CAAA;AAAA,gBAAA;;;;;;;;;"}
|
|
@@ -26,6 +26,7 @@ function useAppRef(widgetRefList, formWidgetId) {
|
|
|
26
26
|
};
|
|
27
27
|
const registerToRefList = (widgetName) => {
|
|
28
28
|
const list = isRoot ? widgetRefList == null ? void 0 : widgetRefList.value : refList.value;
|
|
29
|
+
console.log(widgetId.value);
|
|
29
30
|
list.set(widgetName || widgetId.value, {
|
|
30
31
|
instance,
|
|
31
32
|
proxy: instance == null ? void 0 : instance.proxy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppRef.js","sources":["../../../../../core/src/hooks/useAppRef.ts"],"sourcesContent":["import { useI18n } from '@kp-ui/lowcode-core';\nimport { message } from 'ant-design-vue';\nimport { computed, getCurrentInstance, inject, ref, Ref } from 'vue';\n\nexport function useAppRef(widgetRefList?: Ref<Map<string, any>>, formWidgetId?: any) {\n const { i18nt } = useI18n();\n const isRoot = formWidgetId !== undefined;\n\n if (!isRoot) {\n formWidgetId = inject('formWidgetId', '');\n }\n\n const refList = inject<Ref<Map<string, any>>>('refList', widgetRefList || ref(new Map()));\n\n const instance = getCurrentInstance();\n\n const widgetId = computed(() => instance?.exposed?.field?.options?.name as string);\n\n const initRefList = () => {\n registerToRefList();\n };\n\n const getWidgetRef = (widgetName, showError?: boolean) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n const foundRef = list.get(widgetName);\n if (!foundRef && !!showError) {\n message.error(i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n };\n\n /* 该方法用于组件重名检查!! */\n const registerToRefList = (widgetName?: symbol | string) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n list.set(widgetName || widgetId.value, {\n instance,\n proxy: instance?.proxy,\n ...instance?.appContext.config.globalProperties,\n ...instance?.exposed\n });\n };\n\n /**\n * 从引用列表中注销\n */\n const unregisterFromRefList = () => {\n const widgetId = instance?.exposed?.field?.options?.name;\n refList?.value?.delete(widgetId);\n };\n\n const getFormRef = () => {\n return getWidgetRef(formWidgetId);\n };\n\n return {\n refList,\n getFormRef,\n registerToRefList,\n unregisterFromRefList,\n initRefList,\n getWidgetRef\n };\n}\n"],"names":["widgetId"],"mappings":";;;AAIO,SAAS,UAAU,eAAuC,cAAoB;AACjF,QAAM,EAAE,MAAA,IAAU,QAAA;AAClB,QAAM,SAAS,iBAAiB;AAEhC,MAAI,CAAC,QAAQ;AACT,mBAAe,OAAO,gBAAgB,EAAE;AAAA,EAC5C;AAEA,QAAM,UAAU,OAA8B,WAAW,iBAAiB,IAAI,oBAAI,IAAA,CAAK,CAAC;AAExF,QAAM,WAAW,mBAAA;AAEjB,QAAM,WAAW,SAAS,MAAA;;AAAM,kEAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AAAA,GAAc;AAEjF,QAAM,cAAc,MAAM;AACtB,sBAAA;AAAA,EACJ;AAEA,QAAM,eAAe,CAAC,YAAY,cAAwB;AACtD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,UAAM,WAAW,KAAK,IAAI,UAAU;AACpC,QAAI,CAAC,YAAY,CAAC,CAAC,WAAW;AAC1B,cAAQ,MAAM,MAAM,yBAAyB,IAAI,UAAU;AAAA,IAC/D;AACA,WAAO;AAAA,EACX;AAGA,QAAM,oBAAoB,CAAC,eAAiC;AACxD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,SAAK,IAAI,cAAc,SAAS,OAAO;AAAA,MACnC;AAAA,MACA,OAAO,qCAAU;AAAA,MACjB,GAAG,qCAAU,WAAW,OAAO;AAAA,MAC/B,GAAG,qCAAU;AAAA,IAAA,CAChB;AAAA,EACL;AAKA,QAAM,wBAAwB,MAAM;;AAChC,UAAMA,aAAW,sDAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AACpD,6CAAS,UAAT,mBAAgB,OAAOA;AAAAA,EAC3B;AAEA,QAAM,aAAa,MAAM;AACrB,WAAO,aAAa,YAAY;AAAA,EACpC;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
1
|
+
{"version":3,"file":"useAppRef.js","sources":["../../../../../core/src/hooks/useAppRef.ts"],"sourcesContent":["import { useI18n } from '@kp-ui/lowcode-core';\nimport { message } from 'ant-design-vue';\nimport { computed, getCurrentInstance, inject, ref, Ref } from 'vue';\n\nexport function useAppRef(widgetRefList?: Ref<Map<string, any>>, formWidgetId?: any) {\n const { i18nt } = useI18n();\n const isRoot = formWidgetId !== undefined;\n\n if (!isRoot) {\n formWidgetId = inject('formWidgetId', '');\n }\n\n const refList = inject<Ref<Map<string, any>>>('refList', widgetRefList || ref(new Map()));\n\n const instance = getCurrentInstance();\n\n const widgetId = computed(() => instance?.exposed?.field?.options?.name as string);\n\n const initRefList = () => {\n registerToRefList();\n };\n\n const getWidgetRef = (widgetName, showError?: boolean) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n const foundRef = list.get(widgetName);\n if (!foundRef && !!showError) {\n message.error(i18nt('render.hint.refNotFound') + widgetName);\n }\n return foundRef;\n };\n\n /* 该方法用于组件重名检查!! */\n const registerToRefList = (widgetName?: symbol | string) => {\n const list = isRoot ? (widgetRefList?.value as Map<any, any>) : refList.value;\n console.log(widgetId.value);\n\n list.set(widgetName || widgetId.value, {\n instance,\n proxy: instance?.proxy,\n ...instance?.appContext.config.globalProperties,\n ...instance?.exposed\n });\n };\n\n /**\n * 从引用列表中注销\n */\n const unregisterFromRefList = () => {\n const widgetId = instance?.exposed?.field?.options?.name;\n refList?.value?.delete(widgetId);\n };\n\n const getFormRef = () => {\n return getWidgetRef(formWidgetId);\n };\n\n return {\n refList,\n getFormRef,\n registerToRefList,\n unregisterFromRefList,\n initRefList,\n getWidgetRef\n };\n}\n"],"names":["widgetId"],"mappings":";;;AAIO,SAAS,UAAU,eAAuC,cAAoB;AACjF,QAAM,EAAE,MAAA,IAAU,QAAA;AAClB,QAAM,SAAS,iBAAiB;AAEhC,MAAI,CAAC,QAAQ;AACT,mBAAe,OAAO,gBAAgB,EAAE;AAAA,EAC5C;AAEA,QAAM,UAAU,OAA8B,WAAW,iBAAiB,IAAI,oBAAI,IAAA,CAAK,CAAC;AAExF,QAAM,WAAW,mBAAA;AAEjB,QAAM,WAAW,SAAS,MAAA;;AAAM,kEAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AAAA,GAAc;AAEjF,QAAM,cAAc,MAAM;AACtB,sBAAA;AAAA,EACJ;AAEA,QAAM,eAAe,CAAC,YAAY,cAAwB;AACtD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,UAAM,WAAW,KAAK,IAAI,UAAU;AACpC,QAAI,CAAC,YAAY,CAAC,CAAC,WAAW;AAC1B,cAAQ,MAAM,MAAM,yBAAyB,IAAI,UAAU;AAAA,IAC/D;AACA,WAAO;AAAA,EACX;AAGA,QAAM,oBAAoB,CAAC,eAAiC;AACxD,UAAM,OAAO,SAAU,+CAAe,QAA0B,QAAQ;AACxE,YAAQ,IAAI,SAAS,KAAK;AAE1B,SAAK,IAAI,cAAc,SAAS,OAAO;AAAA,MACnC;AAAA,MACA,OAAO,qCAAU;AAAA,MACjB,GAAG,qCAAU,WAAW,OAAO;AAAA,MAC/B,GAAG,qCAAU;AAAA,IAAA,CAChB;AAAA,EACL;AAKA,QAAM,wBAAwB,MAAM;;AAChC,UAAMA,aAAW,sDAAU,YAAV,mBAAmB,UAAnB,mBAA0B,YAA1B,mBAAmC;AACpD,6CAAS,UAAT,mBAAgB,OAAOA;AAAAA,EAC3B;AAEA,QAAM,aAAa,MAAM;AACrB,WAAO,aAAa,YAAY;AAAA,EACpC;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
@@ -7,6 +7,8 @@ function useDesigner() {
|
|
|
7
7
|
});
|
|
8
8
|
const formConfig = inject("formConfig", ref({}));
|
|
9
9
|
const formData = inject("formData", ref({}));
|
|
10
|
+
const isSubFormField = inject("isSubFormField", false);
|
|
11
|
+
const subFormRowIndex = inject("subFormRowIndex", ref(0));
|
|
10
12
|
const layoutType = inject("layoutType", ref(LayoutTypeEnum.PC));
|
|
11
13
|
const isPc = computed(
|
|
12
14
|
() => layoutType.value === LayoutTypeEnum.PC || layoutType.value === LayoutTypeEnum.H5
|
|
@@ -37,7 +39,9 @@ function useDesigner() {
|
|
|
37
39
|
designer.value.setSelected(widget);
|
|
38
40
|
};
|
|
39
41
|
return {
|
|
42
|
+
isSubFormField,
|
|
40
43
|
selectedWidget,
|
|
44
|
+
subFormRowIndex,
|
|
41
45
|
getWidget,
|
|
42
46
|
selected,
|
|
43
47
|
isPc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDesigner.js","sources":["../../../../../core/src/hooks/useDesigner.ts"],"sourcesContent":["import { FormConfig, Widget } from '@kp-ui/lowcode-core/src/types/schema';\nimport { FormDesigner } from '@kp-ui/lowcode-core/src/types/designer';\nimport { LayoutTypeEnum } from '@kp-ui/lowcode-core';\nimport { computed, inject, nextTick, ref, Ref, watchEffect } from 'vue';\n\nexport function useDesigner() {\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n const designState = inject('designState', false);\n const getWidget = inject('getWidget', (widget: Widget) => {});\n const formConfig = inject<Ref<FormConfig>>('formConfig', ref({} as FormConfig));\n const formData = inject('formData', ref({}));\n
|
|
1
|
+
{"version":3,"file":"useDesigner.js","sources":["../../../../../core/src/hooks/useDesigner.ts"],"sourcesContent":["import { FormConfig, Widget } from '@kp-ui/lowcode-core/src/types/schema';\nimport { FormDesigner } from '@kp-ui/lowcode-core/src/types/designer';\nimport { LayoutTypeEnum } from '@kp-ui/lowcode-core';\nimport { computed, inject, nextTick, ref, Ref, watchEffect } from 'vue';\n\nexport function useDesigner() {\n const designer = inject<Ref<FormDesigner>>('designer', ref({} as FormDesigner));\n const designState = inject('designState', false);\n const getWidget = inject('getWidget', (widget: Widget) => {});\n const formConfig = inject<Ref<FormConfig>>('formConfig', ref({} as FormConfig));\n const formData = inject('formData', ref({}));\n const isSubFormField = inject('isSubFormField', false);\n const subFormRowIndex = inject<Ref<number>>('subFormRowIndex', ref(0));\n const layoutType = inject('layoutType', ref(LayoutTypeEnum.PC));\n const isPc = computed(\n () => layoutType.value === LayoutTypeEnum.PC || layoutType.value === LayoutTypeEnum.H5\n );\n const isH5 = computed(() => layoutType.value === LayoutTypeEnum.H5);\n\n const isBI = computed(() => layoutType.value === LayoutTypeEnum.BI);\n\n const onDragAdd = ({ newIndex }, widgetList: Widget[]) => {\n const newWidget = widgetList[newIndex];\n if (newWidget) {\n designer.value.setSelected(newWidget);\n } else {\n designer.value.setSelected(widgetList[newIndex - 1]);\n }\n };\n\n const onDragUpdate = () => {\n designer.value.emitHistoryChange();\n };\n\n /**\n * 选择子组件\n * @param widget 组件配置\n */\n const selectWidget = widget => {\n if (designState) {\n designer.value.setSelected(widget);\n }\n };\n\n const selectedWidget = computed(() => designer.value.selectedWidget);\n\n const selected = (widgetId: string) => {\n return designer.value.selectedId === widgetId;\n };\n\n const onWidgetClick = (widget: Widget) => {\n designer.value.setSelected(widget);\n };\n\n return {\n isSubFormField,\n selectedWidget,\n subFormRowIndex,\n getWidget,\n selected,\n isPc,\n isH5,\n isBI,\n designState,\n formData,\n formConfig,\n designer,\n layoutType,\n onWidgetClick,\n selectWidget,\n onDragAdd,\n onDragUpdate\n };\n}\n"],"names":[],"mappings":";;AAKO,SAAS,cAAc;AAC1B,QAAM,WAAW,OAA0B,YAAY,IAAI,CAAA,CAAkB,CAAC;AAC9E,QAAM,cAAc,OAAO,eAAe,KAAK;AAC/C,QAAM,YAAY,OAAO,aAAa,CAAC,WAAmB;AAAA,EAAC,CAAC;AAC5D,QAAM,aAAa,OAAwB,cAAc,IAAI,CAAA,CAAgB,CAAC;AAC9E,QAAM,WAAW,OAAO,YAAY,IAAI,CAAA,CAAE,CAAC;AAC3C,QAAM,iBAAiB,OAAO,kBAAkB,KAAK;AACrD,QAAM,kBAAkB,OAAoB,mBAAmB,IAAI,CAAC,CAAC;AACrE,QAAM,aAAa,OAAO,cAAc,IAAI,eAAe,EAAE,CAAC;AAC9D,QAAM,OAAO;AAAA,IACT,MAAM,WAAW,UAAU,eAAe,MAAM,WAAW,UAAU,eAAe;AAAA,EAAA;AAExF,QAAM,OAAO,SAAS,MAAM,WAAW,UAAU,eAAe,EAAE;AAElE,QAAM,OAAO,SAAS,MAAM,WAAW,UAAU,eAAe,EAAE;AAElE,QAAM,YAAY,CAAC,EAAE,SAAA,GAAY,eAAyB;AACtD,UAAM,YAAY,WAAW,QAAQ;AACrC,QAAI,WAAW;AACX,eAAS,MAAM,YAAY,SAAS;AAAA,IACxC,OAAO;AACH,eAAS,MAAM,YAAY,WAAW,WAAW,CAAC,CAAC;AAAA,IACvD;AAAA,EACJ;AAEA,QAAM,eAAe,MAAM;AACvB,aAAS,MAAM,kBAAA;AAAA,EACnB;AAMA,QAAM,eAAe,CAAA,WAAU;AAC3B,QAAI,aAAa;AACb,eAAS,MAAM,YAAY,MAAM;AAAA,IACrC;AAAA,EACJ;AAEA,QAAM,iBAAiB,SAAS,MAAM,SAAS,MAAM,cAAc;AAEnE,QAAM,WAAW,CAAC,aAAqB;AACnC,WAAO,SAAS,MAAM,eAAe;AAAA,EACzC;AAEA,QAAM,gBAAgB,CAAC,WAAmB;AACtC,aAAS,MAAM,YAAY,MAAM;AAAA,EACrC;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|
|
@@ -11,6 +11,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
11
11
|
const formModel = inject("formData", ref({}));
|
|
12
12
|
const getReadMode = inject("getReadMode", () => false);
|
|
13
13
|
const isSubFormField = inject("isSubFormField", false);
|
|
14
|
+
const subFormRowIndex = inject("subFormRowIndex", ref(0));
|
|
14
15
|
const getSubFormName = inject("getSubFormName", () => "");
|
|
15
16
|
const designState = inject("designState", false);
|
|
16
17
|
const { registerToRefList, getWidgetRef, getFormRef, unregisterFromRefList } = useAppRef();
|
|
@@ -107,7 +108,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
107
108
|
};
|
|
108
109
|
const getPropName = computed(() => {
|
|
109
110
|
if (isSubFormField && !designState) {
|
|
110
|
-
return subFormName.value + "." +
|
|
111
|
+
return subFormName.value + "." + subFormRowIndex.value + "." + props.field.options.name;
|
|
111
112
|
} else {
|
|
112
113
|
return props.field.options.name;
|
|
113
114
|
}
|
|
@@ -239,7 +240,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
239
240
|
newValue,
|
|
240
241
|
oldValue,
|
|
241
242
|
subFormName.value,
|
|
242
|
-
|
|
243
|
+
subFormRowIndex.value
|
|
243
244
|
]);
|
|
244
245
|
};
|
|
245
246
|
const syncUpdateFormModel = (value) => {
|
|
@@ -319,7 +320,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
319
320
|
value: val,
|
|
320
321
|
oldValue: oldVal,
|
|
321
322
|
subFormData: subFormData.value,
|
|
322
|
-
rowId:
|
|
323
|
+
rowId: subFormRowIndex.value
|
|
323
324
|
},
|
|
324
325
|
keys: ["value", "oldValue", "subFormData", "rowId"]
|
|
325
326
|
});
|
|
@@ -488,6 +489,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
488
489
|
} else {
|
|
489
490
|
value = typeof props.field.options.defaultValue === "undefined" ? "" : props.field.options.defaultValue;
|
|
490
491
|
}
|
|
492
|
+
console.log(getPropName.value);
|
|
491
493
|
dispatch("VFormRender", "fieldChange", {
|
|
492
494
|
fieldName: getPropName.value,
|
|
493
495
|
value: toRaw(value),
|
|
@@ -508,7 +510,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
508
510
|
unregisterFromRefList();
|
|
509
511
|
});
|
|
510
512
|
const defineExposed = {
|
|
511
|
-
subFormRowIndex
|
|
513
|
+
subFormRowIndex,
|
|
512
514
|
i18nt,
|
|
513
515
|
options,
|
|
514
516
|
proxy: instance == null ? void 0 : instance.proxy,
|
|
@@ -589,6 +591,7 @@ function useField(props, isInitModelValue = true) {
|
|
|
589
591
|
setAppendButtonDisabled,
|
|
590
592
|
focus,
|
|
591
593
|
setUploadData,
|
|
594
|
+
subFormRowIndex,
|
|
592
595
|
isSubFormField,
|
|
593
596
|
defineExposed
|
|
594
597
|
};
|