@kp-ui/lowcode 1.0.29 → 1.0.31

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.
Files changed (170) hide show
  1. package/_virtual/virtual_svg-icons-register.js +2 -2
  2. package/index.js +0 -2
  3. package/package.json +26 -26
  4. package/render.js +79 -69
  5. package/src/components/CustomRender/components/index.js +10 -0
  6. package/src/components/CustomRender/useCustomRender.js +68 -0
  7. package/src/components/code-editor/index.vue.js +3 -167
  8. package/src/components/code-editor/index.vue2.js +166 -0
  9. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +233 -104
  10. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue3.js +106 -0
  11. package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue.js +3 -1
  12. package/src/components/form-designer/form-widget/container-widget/grid-sub-form-widget.vue.js +3 -1
  13. package/src/components/form-designer/form-widget/container-widget/{grid-widget.vue.js → grid-widget.vue2.js} +1 -1
  14. package/src/components/form-designer/form-widget/container-widget/index.js +4 -4
  15. package/src/components/form-designer/form-widget/container-widget/sub-form-widget.vue.js +3 -1
  16. package/src/components/form-designer/form-widget/container-widget/tab-widget.vue.js +3 -1
  17. package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue.js +3 -1
  18. package/src/components/form-designer/form-widget/container-widget/{table-widget.vue.js → table-widget.vue2.js} +1 -1
  19. package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +3 -1
  20. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +124 -156
  21. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue4.js +158 -0
  22. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +3 -1
  23. package/src/components/form-designer/form-widget/container-widget/vf-drawer-widget.vue.js +3 -1
  24. package/src/components/form-designer/form-widget/field-widget/attachment-render-widget.vue.js +1 -3
  25. package/src/components/form-designer/form-widget/field-widget/diy-compontent-widget.vue.js +101 -0
  26. package/src/components/form-designer/form-widget/field-widget/fieldMixin.js +122 -87
  27. package/src/components/form-designer/form-widget/field-widget/index.js +3 -1
  28. package/src/components/form-designer/form-widget/field-widget/slot-widget.vue.js +6 -6
  29. package/src/components/form-designer/form-widget/index.vue.js +7 -5
  30. package/src/components/form-designer/setting-panel/option-items-setting.vue.js +5 -3
  31. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +4 -3
  32. package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +3 -2
  33. package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +4 -3
  34. package/src/components/form-designer/setting-panel/property-editor/diy-compontent-editor.vue.js +33 -0
  35. package/src/components/form-designer/setting-panel/property-editor/index.js +2 -1
  36. package/src/components/form-designer/setting-panel/propertyRegister.js +1 -0
  37. package/src/components/form-designer/toolbar-panel/index.vue.js +4 -779
  38. package/src/components/form-designer/toolbar-panel/widgetList.js +780 -0
  39. package/src/components/form-designer/widget-panel/advanced/attachment-render.js +3 -3
  40. package/src/components/form-designer/widget-panel/advanced/diy-compontent.js +23 -0
  41. package/src/components/form-designer/widget-panel/advanced/slot.js +1 -1
  42. package/src/components/form-designer/widget-panel/advancedFieldsEnums.js +4 -2
  43. package/src/components/form-designer/widget-panel/containers/index.js +2 -3
  44. package/src/components/form-designer/widget-panel/containers/tab-pane.js +22 -0
  45. package/src/components/form-designer/widget-panel/index.vue.js +3 -2
  46. package/src/components/form-render/container-item/index.js +1 -1
  47. package/src/components/form-render/container-item/{table-item.vue2.js → table-item.vue.js} +1 -1
  48. package/src/components/form-render/container-item/vf-collapse-item.vue.js +1 -1
  49. package/src/components/form-render/dynamic-dialog.vue.js +241 -231
  50. package/src/components/form-render/dynamic-dialog.vue3.js +5 -0
  51. package/src/components/form-render/dynamic-drawer.vue.js +2 -203
  52. package/src/components/form-render/dynamic-drawer.vue2.js +247 -0
  53. package/src/lang/zh-CN.js +4 -5
  54. package/src/mixins/useDataTableMixin.js +1 -1
  55. package/src/utils/config.js +0 -2
  56. package/src/utils/i18n.js +14 -1
  57. package/styles/style.css +1 -1
  58. package/types/install.d.ts.map +1 -1
  59. package/types/src/components/CustomRender/components/AttachmentRender.d.ts +31 -0
  60. package/types/src/components/CustomRender/components/AttachmentRender.d.ts.map +1 -0
  61. package/types/src/components/CustomRender/components/index.d.ts +2 -0
  62. package/types/src/components/CustomRender/components/index.d.ts.map +1 -0
  63. package/types/src/components/CustomRender/{index.d.ts → useCustomRender.d.ts} +2 -2
  64. package/types/src/components/CustomRender/useCustomRender.d.ts.map +1 -0
  65. package/types/src/components/code-editor/code-modal-editor.d.ts +1 -1
  66. package/types/src/components/code-editor/index.d.ts +41 -55
  67. package/types/src/components/code-editor/index.d.ts.map +1 -1
  68. package/types/src/components/form-designer/setting-panel/index.d.ts +1 -0
  69. package/types/src/components/form-designer/toolbar-panel/index.d.ts +1 -1
  70. package/types/src/components/form-designer/toolbar-panel/widgetList.d.ts +556 -0
  71. package/types/src/components/form-designer/toolbar-panel/widgetList.d.ts.map +1 -0
  72. package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts +2 -14
  73. package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts.map +1 -1
  74. package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts +2 -15
  75. package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts.map +1 -1
  76. package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts +2 -55
  77. package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts.map +1 -1
  78. package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts +2 -25
  79. package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts.map +1 -1
  80. package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts +9 -0
  81. package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts.map +1 -0
  82. package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts +2 -29
  83. package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts.map +1 -1
  84. package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts +2 -26
  85. package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts.map +1 -1
  86. package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts +2 -9
  87. package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts.map +1 -1
  88. package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts +2 -56
  89. package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts.map +1 -1
  90. package/types/src/components/form-designer/widget-panel/advancedFieldsEnums.d.ts +75 -0
  91. package/types/src/components/form-designer/widget-panel/advancedFieldsEnums.d.ts.map +1 -0
  92. package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts +2 -19
  93. package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts.map +1 -1
  94. package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts +2 -40
  95. package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts.map +1 -1
  96. package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts +2 -26
  97. package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts.map +1 -1
  98. package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts +2 -36
  99. package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts.map +1 -1
  100. package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts +2 -36
  101. package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts.map +1 -1
  102. package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts +2 -13
  103. package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts.map +1 -1
  104. package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts +2 -24
  105. package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts.map +1 -1
  106. package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts +2 -11
  107. package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts.map +1 -1
  108. package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts +2 -37
  109. package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts.map +1 -1
  110. package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts +2 -33
  111. package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts.map +1 -1
  112. package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts +2 -44
  113. package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts.map +1 -1
  114. package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts +2 -28
  115. package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts.map +1 -1
  116. package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts +2 -51
  117. package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts.map +1 -1
  118. package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts +2 -30
  119. package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts.map +1 -1
  120. package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts +2 -11
  121. package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts.map +1 -1
  122. package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts +2 -24
  123. package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts.map +1 -1
  124. package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts +2 -35
  125. package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts.map +1 -1
  126. package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts +2 -33
  127. package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts.map +1 -1
  128. package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts +2 -34
  129. package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts.map +1 -1
  130. package/types/src/components/form-designer/widget-panel/business/department-select.d.ts +2 -51
  131. package/types/src/components/form-designer/widget-panel/business/department-select.d.ts.map +1 -1
  132. package/types/src/components/form-designer/widget-panel/business/material-select.d.ts +2 -51
  133. package/types/src/components/form-designer/widget-panel/business/material-select.d.ts.map +1 -1
  134. package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts +2 -51
  135. package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts.map +1 -1
  136. package/types/src/components/form-designer/widget-panel/business/post-select.d.ts +2 -53
  137. package/types/src/components/form-designer/widget-panel/business/post-select.d.ts.map +1 -1
  138. package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts +2 -51
  139. package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts.map +1 -1
  140. package/types/src/components/form-designer/widget-panel/business/project-select.d.ts +2 -51
  141. package/types/src/components/form-designer/widget-panel/business/project-select.d.ts.map +1 -1
  142. package/types/src/components/form-designer/widget-panel/business/user-select.d.ts +2 -54
  143. package/types/src/components/form-designer/widget-panel/business/user-select.d.ts.map +1 -1
  144. package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts +2 -90
  145. package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts.map +1 -1
  146. package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts +2 -14
  147. package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts.map +1 -1
  148. package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts +2 -8
  149. package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts.map +1 -1
  150. package/types/src/components/form-designer/widget-panel/containers/grid.d.ts +2 -8
  151. package/types/src/components/form-designer/widget-panel/containers/grid.d.ts.map +1 -1
  152. package/types/src/components/form-designer/widget-panel/containers/tab.d.ts +2 -28
  153. package/types/src/components/form-designer/widget-panel/containers/tab.d.ts.map +1 -1
  154. package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts +2 -6
  155. package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts.map +1 -1
  156. package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts +2 -12
  157. package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts.map +1 -1
  158. package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts +2 -22
  159. package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts.map +1 -1
  160. package/types/src/components/form-render/index.d.ts +4 -0
  161. package/types/src/components/form-render/index.d.ts.map +1 -1
  162. package/types/src/components/lowcodeCompontent/index.d.ts +6 -0
  163. package/types/src/components/lowcodeCompontent/index.d.ts.map +1 -0
  164. package/types/src/components/svg-icon/index.d.ts +47 -0
  165. package/types/src/components/svg-icon/index.d.ts.map +1 -0
  166. package/src/components/CustomRender/index.js +0 -53
  167. package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js +0 -235
  168. package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +0 -126
  169. package/stats.html +0 -4949
  170. package/types/src/components/CustomRender/index.d.ts.map +0 -1
@@ -0,0 +1,166 @@
1
+ import { defineComponent, ref, computed, watch, watchEffect, onMounted, createElementBlock, openBlock, createElementVNode } from "vue";
2
+ const _hoisted_1 = { class: "ace-container" };
3
+ const themePath = "ace/theme/sqlserver";
4
+ const modePath = "ace/mode/javascript";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "index",
7
+ props: {
8
+ value: {},
9
+ modelValue: {},
10
+ readonly: { type: Boolean },
11
+ mode: {},
12
+ userWorker: { type: Boolean }
13
+ },
14
+ emits: ["update:modelValue", "update:value"],
15
+ setup(__props, { expose: __expose, emit: __emit }) {
16
+ const props = __props;
17
+ const emit = __emit;
18
+ const aceRef = ref(null);
19
+ const aceEditor = ref(null);
20
+ const stop = ref(false);
21
+ const codeValue = computed(() => props.value || props.modelValue);
22
+ const isLoading = ref(false);
23
+ const setValue = (newValue) => {
24
+ if (aceEditor.value) {
25
+ aceEditor.value.getSession().setValue(newValue);
26
+ }
27
+ };
28
+ const getEditorAnnotations = () => {
29
+ var _a;
30
+ return (_a = aceEditor.value) == null ? void 0 : _a.getSession().getAnnotations();
31
+ };
32
+ const setJsonMode = () => {
33
+ var _a;
34
+ (_a = aceEditor.value) == null ? void 0 : _a.getSession().setMode("ace/mode/json");
35
+ };
36
+ const setCssMode = () => {
37
+ var _a;
38
+ (_a = aceEditor.value) == null ? void 0 : _a.getSession().setMode("ace/mode/css");
39
+ };
40
+ const setGroovyMode = () => {
41
+ var _a;
42
+ (_a = aceEditor.value) == null ? void 0 : _a.getSession().setMode("ace/mode/groovy");
43
+ };
44
+ const addAutoCompletion = (ace) => {
45
+ const acData = [
46
+ {
47
+ meta: "VForm API",
48
+ caption: "getWidgetRef",
49
+ value: "getWidgetRef()",
50
+ score: 1
51
+ },
52
+ { meta: "VForm API", caption: "getFormRef", value: "getFormRef()", score: 1 },
53
+ {
54
+ meta: "VForm API",
55
+ caption: "getParentFormRef",
56
+ value: "getParentFormRef()",
57
+ score: 1
58
+ }
59
+ //TODO: 待补充!!
60
+ ];
61
+ const langTools = ace.require("ace/ext/language_tools");
62
+ langTools.addCompleter({
63
+ getCompletions: function(editor, session, pos, prefix, callback) {
64
+ if (prefix.length === 0) {
65
+ return callback(null, []);
66
+ } else {
67
+ return callback(null, acData);
68
+ }
69
+ }
70
+ });
71
+ };
72
+ watch(
73
+ () => props.value,
74
+ (val) => {
75
+ if (stop.value) return;
76
+ if (val) {
77
+ setValue(val);
78
+ stop.value = true;
79
+ }
80
+ }
81
+ );
82
+ const initEditor = async () => {
83
+ isLoading.value = true;
84
+ const ace = await import("ace-builds");
85
+ const ACE_BASE_PATH = "https://ks3-cn-beijing.ksyun.com/vform2021/ace-mini";
86
+ ace.config.set("basePath", ACE_BASE_PATH);
87
+ await Promise.all([
88
+ import("ace-builds/src-min-noconflict/theme-sqlserver"),
89
+ import("ace-builds/src-min-noconflict/mode-javascript"),
90
+ import("ace-builds/src-min-noconflict/ext-language_tools")
91
+ ]);
92
+ if (props.mode === "json") {
93
+ await import("ace-builds/src-min-noconflict/mode-json");
94
+ } else if (props.mode === "css") {
95
+ await import("ace-builds/src-min-noconflict/mode-css");
96
+ } else if (props.mode === "groovy") {
97
+ await import("ace-builds/src-min-noconflict/mode-groovy");
98
+ }
99
+ addAutoCompletion(ace);
100
+ aceEditor.value = ace.edit(aceRef.value, {
101
+ maxLines: 20,
102
+ // 最大行数,超过会自动出现滚动条
103
+ minLines: 5,
104
+ // 最小行数,还未到最大行数时,编辑器会自动伸缩大小
105
+ fontSize: 12,
106
+ // 编辑器内字体大小
107
+ theme: themePath,
108
+ // 默认设置的主题
109
+ mode: modePath,
110
+ // 默认设置的语言模式
111
+ tabSize: 2,
112
+ // 制表符设置为2个空格大小
113
+ readOnly: props.readonly,
114
+ highlightActiveLine: true,
115
+ value: codeValue.value
116
+ });
117
+ aceEditor.value.setOptions({
118
+ enableBasicAutocompletion: true,
119
+ enableSnippets: true,
120
+ // 设置代码片段提示
121
+ enableLiveAutocompletion: true
122
+ // 设置自动提示
123
+ });
124
+ if (props.mode === "json") {
125
+ setJsonMode();
126
+ } else if (props.mode === "css") {
127
+ setCssMode();
128
+ } else if (props.mode === "groovy") {
129
+ setGroovyMode();
130
+ }
131
+ aceEditor.value.getSession().on("change", (ev) => {
132
+ var _a, _b;
133
+ emit("update:modelValue", (_a = aceEditor.value) == null ? void 0 : _a.getValue());
134
+ emit("update:value", (_b = aceEditor.value) == null ? void 0 : _b.getValue());
135
+ });
136
+ isLoading.value = false;
137
+ };
138
+ watchEffect(() => {
139
+ var _a;
140
+ (_a = aceEditor.value) == null ? void 0 : _a.setOptions({
141
+ readOnly: props.readonly,
142
+ mode: props.mode,
143
+ useWorker: props.userWorker
144
+ });
145
+ });
146
+ onMounted(() => {
147
+ initEditor();
148
+ });
149
+ __expose({
150
+ initEditor,
151
+ getEditorAnnotations
152
+ });
153
+ return (_ctx, _cache) => {
154
+ return openBlock(), createElementBlock("div", _hoisted_1, [
155
+ createElementVNode("div", {
156
+ class: "ace-editor",
157
+ ref_key: "aceRef",
158
+ ref: aceRef
159
+ }, null, 512)
160
+ ]);
161
+ };
162
+ }
163
+ });
164
+ export {
165
+ _sfc_main as default
166
+ };
@@ -1,106 +1,235 @@
1
- import _sfc_main from "./data-table-widget.vue2.js";
2
- import { resolveComponent, createBlock, openBlock, normalizeStyle, withCtx, createElementBlock, withModifiers, normalizeClass, createVNode, createCommentVNode, Fragment, renderList, mergeProps, withDirectives, createTextVNode, toDisplayString, vShow } from "vue";
3
- /* empty css */
4
- import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.js";
5
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
6
- const _component_a_empty = resolveComponent("a-empty");
7
- const _component_a_table_column = resolveComponent("a-table-column");
8
- const _component_a_button = resolveComponent("a-button");
9
- const _component_a_space = resolveComponent("a-space");
10
- const _component_a_table = resolveComponent("a-table");
11
- const _component_container_wrapper = resolveComponent("container-wrapper");
12
- return openBlock(), createBlock(_component_container_wrapper, {
13
- designer: $props.designer,
14
- widget: $props.widget,
15
- "parent-widget": $props.parentWidget,
16
- "parent-list": $props.parentList,
17
- "index-of-parent-list": $props.indexOfParentList,
18
- style: normalizeStyle({ display: "flex", height: parseFloat(_ctx.tableHeight || 0) + "px" })
19
- }, {
20
- default: withCtx(() => [
21
- (openBlock(), createElementBlock("div", {
22
- key: $props.widget.id,
23
- class: normalizeClass(["collapse-container data-table-container", { selected: $options.selected }]),
24
- onClick: _cache[1] || (_cache[1] = withModifiers(($event) => $options.selectWidget($props.widget), ["stop"]))
25
- }, [
26
- createVNode(_component_a_table, {
27
- ref: "dataTable1",
28
- class: normalizeClass(["tpf-table", [_ctx.customClass]]),
29
- dataSource: $props.widget.options.dataSource,
30
- rowKey: (record) => record[$props.widget.options.rowKey],
31
- scroll: { y: parseFloat(_ctx.tableHeight || 0), x: 300 },
32
- size: _ctx.widgetSize,
33
- bordered: $props.widget.options.border,
34
- style: normalizeStyle({ width: $props.widget.options.tableWidth }),
35
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $options.selectWidget($props.widget), ["stop"])),
36
- "row-class-name": _ctx.rowClassName,
37
- rowSelection: _ctx.handleRowSelection(),
38
- pagination: _ctx.fmtPagination,
39
- rowClassName: _ctx.rowClassName,
40
- onChange: _ctx.handleTablePageChange,
41
- customRow: _ctx.handleCustomRow,
42
- onResizeColumn: _ctx.handleResizeColumn
43
- }, {
44
- emptyText: withCtx(() => [
45
- createVNode(_component_a_empty)
46
- ]),
47
- default: withCtx(() => [
48
- $props.widget.options.showIndex ? (openBlock(), createBlock(_component_a_table_column, {
49
- key: 0,
50
- title: "序号",
51
- align: "left",
52
- width: 80,
53
- fixed: "left",
54
- customRender: _ctx.customRenderIndex
55
- }, null, 8, ["customRender"])) : createCommentVNode("", true),
56
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.widget.options.tableColumns, (item, index) => {
57
- return openBlock(), createElementBlock(Fragment, null, [
58
- item.show !== false ? (openBlock(), createBlock(_component_a_table_column, mergeProps({ key: index }, _ctx.handleColumnItem(item), { showSorterTooltip: false }), null, 16)) : createCommentVNode("", true)
59
- ], 64);
60
- }), 256)),
61
- !!$props.widget.options.showButtonsColumn ? (openBlock(), createBlock(_component_a_table_column, {
62
- key: 1,
63
- fixed: "right",
64
- align: "center",
65
- title: $props.widget.options.buttonsColumnTitle,
66
- width: $props.widget.options.buttonsColumnWidth
67
- }, {
68
- default: withCtx((scope) => [
69
- createVNode(_component_a_space, null, {
70
- default: withCtx(() => [
71
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.widget.options.operationButtons, (ob, inx) => {
72
- return withDirectives((openBlock(), createBlock(_component_a_button, {
73
- key: inx,
74
- type: ob.type,
75
- size: ob.size,
76
- shape: ob.shape,
77
- disabled: _ctx.disableOperationButton(ob, scope.index, scope.record),
78
- onClick: ($event) => _ctx.handleOperationButtonClick(ob.name, scope.index, scope.record, scope, ob),
79
- class: normalizeClass(["data-table-" + ob.name + "-button"])
80
- }, {
81
- default: withCtx(() => [
82
- createTextVNode(toDisplayString(_ctx.getOperationButtonLabel(ob, scope.index, scope.record)), 1)
83
- ]),
84
- _: 2
85
- }, 1032, ["type", "size", "shape", "disabled", "onClick", "class"])), [
86
- [vShow, _ctx.showOperationButton(ob, scope.index, scope.record)]
87
- ]);
88
- }), 128))
89
- ]),
90
- _: 2
91
- }, 1024)
92
- ]),
93
- _: 1
94
- }, 8, ["title", "width"])) : createCommentVNode("", true)
95
- ]),
96
- _: 1
97
- }, 8, ["dataSource", "rowKey", "scroll", "class", "size", "bordered", "style", "row-class-name", "rowSelection", "pagination", "rowClassName", "onChange", "customRow", "onResizeColumn"])
98
- ], 2))
99
- ]),
100
- _: 1
101
- }, 8, ["designer", "widget", "parent-widget", "parent-list", "index-of-parent-list", "style"]);
102
- }
103
- const dataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-19e67e23"]]);
1
+ import ContainerWrapper from "./container-wrapper.vue.js";
2
+ import emitter from "../../../../utils/emitter.js";
3
+ import i18n from "../../../../utils/i18n.js";
4
+ import comps from "../field-widget/index.js";
5
+ import containerMixin from "./containerMixin.js";
6
+ import refMixinDesign from "../../refMixinDesign.js";
7
+ import useDataTableMixin from "../../../../mixins/useDataTableMixin.js";
8
+ const _sfc_main = {
9
+ name: "DataTableWidget",
10
+ componentName: "DataTableWidget",
11
+ mixins: [i18n, containerMixin, refMixinDesign, emitter, useDataTableMixin],
12
+ inject: ["refList"],
13
+ components: {
14
+ ContainerWrapper,
15
+ ...comps
16
+ },
17
+ data() {
18
+ return {
19
+ // selectAllFlag: false
20
+ };
21
+ },
22
+ props: {
23
+ widget: Object,
24
+ parentWidget: Object,
25
+ parentList: Array,
26
+ indexOfParentList: Number,
27
+ designer: Object,
28
+ subFormRowIndex: {
29
+ /* 子表单组件行索引,从0开始计数 */
30
+ type: Number,
31
+ default: -1
32
+ },
33
+ subFormColIndex: {
34
+ /* 子表单组件列索引,从0开始计数 */
35
+ type: Number,
36
+ default: -1
37
+ },
38
+ subFormRowId: {
39
+ /* 子表单组件行Id,唯一id且不可变 */
40
+ type: String,
41
+ default: ""
42
+ }
43
+ },
44
+ created() {
45
+ this.initRefList();
46
+ },
47
+ mounted() {
48
+ this.loadDataTableDataSource();
49
+ },
50
+ beforeUnmount() {
51
+ },
52
+ computed: {
53
+ // paginationLayout() {
54
+ // return !!this.widget.options.smallPagination
55
+ // ? 'prev, pager, next'
56
+ // : 'total, sizes, prev, pager, next, jumper';
57
+ // },
58
+ selected() {
59
+ return this.widget.id === this.designer.selectedId;
60
+ }
61
+ // customClass() {
62
+ // return this.widget.options.customClass || '';
63
+ // },
64
+ // widgetSize() {
65
+ // return this.widget.options.tableSize || 'default';
66
+ // },
67
+ // buttonsColumnFixed() {
68
+ // if (this.widget.options.buttonsColumnFixed === undefined) {
69
+ // return 'right';
70
+ // }
71
+ // return !this.widget.options.buttonsColumnFixed
72
+ // ? false
73
+ // : this.widget.options.buttonsColumnFixed;
74
+ // },
75
+ // tableHeight() {
76
+ // return this.widget.options.tableHeight || undefined;
77
+ // },
78
+ // selectionWidth() {
79
+ // return !this.widget.options.showSummary
80
+ // ? !this.widget.options.treeDataEnabled
81
+ // ? 42
82
+ // : 70
83
+ // : 53;
84
+ // }
85
+ },
86
+ methods: {
87
+ // getOperationButtonLabel(buttonConfig, rowIndex, row) {
88
+ // if (!!this.widget.options.onGetOperationButtonLabel) {
89
+ // const customFn = new Function(
90
+ // 'buttonConfig',
91
+ // 'rowIndex',
92
+ // 'row',
93
+ // this.widget.options.onGetOperationButtonLabel
94
+ // );
95
+ // //return customFn.call(this, buttonConfig, rowIndex, row) || buttonConfig.label
96
+ // return customFn.call(this, buttonConfig, rowIndex, row);
97
+ // } else {
98
+ // return buttonConfig.label;
99
+ // }
100
+ // },
101
+ // handleOperationButtonClick(btnName, rowIndex, row, scope, ob) {
102
+ // this.skipSelectionChangeEvent = true;
103
+ // try {
104
+ // if (ob.onClick) {
105
+ // const clcFn = new Function('record', 'index', 'column', 'btn', ob.onClick);
106
+ // clcFn.call(this, row, rowIndex, scope.column, ob);
107
+ // return;
108
+ // }
109
+ // if (!!this.widget.options.onOperationButtonClick) {
110
+ // const customFn = new Function(
111
+ // 'buttonName',
112
+ // 'rowIndex',
113
+ // 'row',
114
+ // this.widget.options.onOperationButtonClick
115
+ // );
116
+ // customFn.call(this, btnName, rowIndex, row);
117
+ // } else {
118
+ // this.dispatch('VFormRender', 'operationButtonClick', [this, btnName, rowIndex, row]);
119
+ // }
120
+ // } finally {
121
+ // this.skipSelectionChangeEvent = false;
122
+ // }
123
+ // },
124
+ // showOperationButton(buttonConfig, rowIndex, row) {
125
+ // if (!!this.widget.options.onHideOperationButton) {
126
+ // const customFn = new Function(
127
+ // 'buttonConfig',
128
+ // 'rowIndex',
129
+ // 'row',
130
+ // this.widget.options.onHideOperationButton
131
+ // );
132
+ // return !customFn.call(this, buttonConfig, rowIndex, row);
133
+ // } else {
134
+ // return !buttonConfig.hidden;
135
+ // }
136
+ // },
137
+ // disableOperationButton(buttonConfig, rowIndex, row) {
138
+ // if (!!this.widget.options.onDisableOperationButton) {
139
+ // const customFn = new Function(
140
+ // 'buttonConfig',
141
+ // 'rowIndex',
142
+ // 'row',
143
+ // this.widget.options.onDisableOperationButton
144
+ // );
145
+ // return customFn.call(this, buttonConfig, rowIndex, row);
146
+ // } else {
147
+ // return buttonConfig.disabled;
148
+ // }
149
+ // },
150
+ // customRenderIndex({ index }) {
151
+ // return index + 1;
152
+ // },
153
+ // handleTablePageChange(pagination, filters, sorter, { currentDataSource }) {
154
+ // const fn = this.widget.options.onTableChange;
155
+ // this.widget.options.pagination.current = pagination.current;
156
+ // this.widget.options.pagination.pageSize = pagination.pageSize;
157
+ // if (fn) {
158
+ // const changeFunc = new Function(
159
+ // 'pagination',
160
+ // 'filters',
161
+ // 'sorter',
162
+ // 'currentDataSource',
163
+ // fn
164
+ // );
165
+ // changeFunc.call(this, pagination, filters, sorter, currentDataSource);
166
+ // }
167
+ // },
168
+ // handleRowSelection(info) {
169
+ // if (!info.hasRowSelection) {
170
+ // return undefined;
171
+ // }
172
+ // return {
173
+ // ...omit(info, ['onChange']),
174
+ // onChange: (selectedRowKeys, selectedRows) => {
175
+ // const rcFunc = new Function('selectedRowKeys', 'selectedRows', info.onChange);
176
+ // rcFunc.call(this, selectedRowKeys, selectedRows);
177
+ // }
178
+ // };
179
+ // },
180
+ selectWidget(widget) {
181
+ this.designer.setSelected(widget);
182
+ }
183
+ // getTableColumns() {
184
+ // return this.widget.options.tableColumns;
185
+ // }
186
+ // setChildrenSelected(children, flag) {
187
+ // const childrenKey = this.widget.options.childrenKey;
188
+ // children.map(child => {
189
+ // this.toggleSelection(child, flag);
190
+ // if (child[childrenKey]) {
191
+ // this.setChildrenSelected(child[childrenKey], flag);
192
+ // }
193
+ // });
194
+ // },
195
+ // toggleSelection(row, flag) {
196
+ // if (row) {
197
+ // this.$nextTick(() => {
198
+ // this.$refs.dataTable.toggleRowSelection(row, flag);
199
+ // });
200
+ // }
201
+ // },
202
+ // handleRowSelect(selection, row) {
203
+ // const childrenKey = this.widget.options.childrenKey;
204
+ // if (
205
+ // selection.some(el => {
206
+ // return row.id === el.id;
207
+ // })
208
+ // ) {
209
+ // if (row[childrenKey]) {
210
+ // this.setChildrenSelected(row[childrenKey], true);
211
+ // }
212
+ // } else {
213
+ // if (row[childrenKey]) {
214
+ // this.setChildrenSelected(row[childrenKey], false);
215
+ // }
216
+ // }
217
+ // },
218
+ // setSelectedFlag(data, flag) {
219
+ // const childrenKey = this.widget.options.childrenKey;
220
+ // data.forEach(row => {
221
+ // this.$refs.dataTable.toggleRowSelection(row, flag);
222
+ // if (row[childrenKey]) {
223
+ // this.setSelectedFlag(row[childrenKey], flag);
224
+ // }
225
+ // });
226
+ // },
227
+ // handleAllSelect(selection) {
228
+ // this.selectAllFlag = !this.selectAllFlag;
229
+ // this.setSelectedFlag(this.widget.options.tableData, this.selectAllFlag);
230
+ // }
231
+ }
232
+ };
104
233
  export {
105
- dataTableWidget as default
234
+ _sfc_main as default
106
235
  };
@@ -0,0 +1,106 @@
1
+ import _sfc_main from "./data-table-widget.vue.js";
2
+ import { resolveComponent, createBlock, openBlock, normalizeStyle, withCtx, createElementBlock, withModifiers, normalizeClass, createVNode, createCommentVNode, Fragment, renderList, mergeProps, withDirectives, createTextVNode, toDisplayString, vShow } from "vue";
3
+ /* empty css */
4
+ import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.js";
5
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
6
+ const _component_a_empty = resolveComponent("a-empty");
7
+ const _component_a_table_column = resolveComponent("a-table-column");
8
+ const _component_a_button = resolveComponent("a-button");
9
+ const _component_a_space = resolveComponent("a-space");
10
+ const _component_a_table = resolveComponent("a-table");
11
+ const _component_container_wrapper = resolveComponent("container-wrapper");
12
+ return openBlock(), createBlock(_component_container_wrapper, {
13
+ designer: $props.designer,
14
+ widget: $props.widget,
15
+ "parent-widget": $props.parentWidget,
16
+ "parent-list": $props.parentList,
17
+ "index-of-parent-list": $props.indexOfParentList,
18
+ style: normalizeStyle({ display: "flex", height: parseFloat(_ctx.tableHeight || 0) + "px" })
19
+ }, {
20
+ default: withCtx(() => [
21
+ (openBlock(), createElementBlock("div", {
22
+ key: $props.widget.id,
23
+ class: normalizeClass(["collapse-container data-table-container", { selected: $options.selected }]),
24
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => $options.selectWidget($props.widget), ["stop"]))
25
+ }, [
26
+ createVNode(_component_a_table, {
27
+ ref: "dataTable1",
28
+ class: normalizeClass(["tpf-table", [_ctx.customClass]]),
29
+ dataSource: $props.widget.options.dataSource,
30
+ rowKey: (record) => record[$props.widget.options.rowKey],
31
+ scroll: { y: parseFloat(_ctx.tableHeight || 0), x: 300 },
32
+ size: _ctx.widgetSize,
33
+ bordered: $props.widget.options.border,
34
+ style: normalizeStyle({ width: $props.widget.options.tableWidth }),
35
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => $options.selectWidget($props.widget), ["stop"])),
36
+ "row-class-name": _ctx.rowClassName,
37
+ rowSelection: _ctx.handleRowSelection(),
38
+ pagination: _ctx.fmtPagination,
39
+ rowClassName: _ctx.rowClassName,
40
+ onChange: _ctx.handleTablePageChange,
41
+ customRow: _ctx.handleCustomRow,
42
+ onResizeColumn: _ctx.handleResizeColumn
43
+ }, {
44
+ emptyText: withCtx(() => [
45
+ createVNode(_component_a_empty)
46
+ ]),
47
+ default: withCtx(() => [
48
+ $props.widget.options.showIndex ? (openBlock(), createBlock(_component_a_table_column, {
49
+ key: 0,
50
+ title: "序号",
51
+ align: "left",
52
+ width: 80,
53
+ fixed: "left",
54
+ customRender: _ctx.customRenderIndex
55
+ }, null, 8, ["customRender"])) : createCommentVNode("", true),
56
+ (openBlock(true), createElementBlock(Fragment, null, renderList($props.widget.options.tableColumns, (item, index) => {
57
+ return openBlock(), createElementBlock(Fragment, null, [
58
+ item.show !== false ? (openBlock(), createBlock(_component_a_table_column, mergeProps({ key: index }, _ctx.handleColumnItem(item), { showSorterTooltip: false }), null, 16)) : createCommentVNode("", true)
59
+ ], 64);
60
+ }), 256)),
61
+ !!$props.widget.options.showButtonsColumn ? (openBlock(), createBlock(_component_a_table_column, {
62
+ key: 1,
63
+ fixed: "right",
64
+ align: "center",
65
+ title: $props.widget.options.buttonsColumnTitle,
66
+ width: $props.widget.options.buttonsColumnWidth
67
+ }, {
68
+ default: withCtx((scope) => [
69
+ createVNode(_component_a_space, null, {
70
+ default: withCtx(() => [
71
+ (openBlock(true), createElementBlock(Fragment, null, renderList($props.widget.options.operationButtons, (ob, inx) => {
72
+ return withDirectives((openBlock(), createBlock(_component_a_button, {
73
+ key: inx,
74
+ type: ob.type,
75
+ size: ob.size,
76
+ shape: ob.shape,
77
+ disabled: _ctx.disableOperationButton(ob, scope.index, scope.record),
78
+ onClick: ($event) => _ctx.handleOperationButtonClick(ob.name, scope.index, scope.record, scope, ob),
79
+ class: normalizeClass(["data-table-" + ob.name + "-button"])
80
+ }, {
81
+ default: withCtx(() => [
82
+ createTextVNode(toDisplayString(_ctx.getOperationButtonLabel(ob, scope.index, scope.record)), 1)
83
+ ]),
84
+ _: 2
85
+ }, 1032, ["type", "size", "shape", "disabled", "onClick", "class"])), [
86
+ [vShow, _ctx.showOperationButton(ob, scope.index, scope.record)]
87
+ ]);
88
+ }), 128))
89
+ ]),
90
+ _: 2
91
+ }, 1024)
92
+ ]),
93
+ _: 1
94
+ }, 8, ["title", "width"])) : createCommentVNode("", true)
95
+ ]),
96
+ _: 1
97
+ }, 8, ["dataSource", "rowKey", "scroll", "class", "size", "bordered", "style", "row-class-name", "rowSelection", "pagination", "rowClassName", "onChange", "customRow", "onResizeColumn"])
98
+ ], 2))
99
+ ]),
100
+ _: 1
101
+ }, 8, ["designer", "widget", "parent-widget", "parent-list", "index-of-parent-list", "style"]);
102
+ }
103
+ const dataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-19e67e23"]]);
104
+ export {
105
+ dataTableWidget as default
106
+ };
@@ -2,6 +2,7 @@ import i18n from "../../../../utils/i18n.js";
2
2
  import comps from "../field-widget/index.js";
3
3
  import SvgIcon from "../../../svg-icon/index.vue.js";
4
4
  import refMixinDesign from "../../refMixinDesign.js";
5
+ import draggableComponent from "../../../../lib/vuedraggable/src/vuedraggable.js";
5
6
  import { resolveComponent, createBlock, createCommentVNode, openBlock, mergeProps, withModifiers, withCtx, createVNode, createElementBlock, createElementVNode, resolveDynamicComponent, toDisplayString } from "vue";
6
7
  /* empty css */
7
8
  import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.js";
@@ -11,6 +12,7 @@ const _sfc_main = {
11
12
  mixins: [i18n, refMixinDesign],
12
13
  inject: ["refList"],
13
14
  components: {
15
+ Draggable: draggableComponent,
14
16
  ...comps,
15
17
  SvgIcon
16
18
  },
@@ -296,7 +298,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
296
298
  _: 1
297
299
  }, 16, ["class", "style"])) : createCommentVNode("", true);
298
300
  }
299
- const GridColWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e53ef040"]]);
301
+ const GridColWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-06e9921c"]]);
300
302
  export {
301
303
  GridColWidget as default
302
304
  };