@kp-ui/lowcode-pc-v2 0.0.1

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 (171) hide show
  1. package/_virtual/_plugin-vue_export-helper.js +8 -0
  2. package/assets/styles/style.css +471 -0
  3. package/core/src/components/common/render/Debugger.js +7 -0
  4. package/core/src/components/common/render/Debugger.vue_vue_type_script_setup_true_lang.js +43 -0
  5. package/core/src/components/common/render/LowcodeRenderProvider.js +5 -0
  6. package/core/src/components/common/render/LowcodeRenderProvider.vue_vue_type_script_setup_true_lang.js +49 -0
  7. package/core/src/components/common/render/RenderWidgetList.js +5 -0
  8. package/core/src/components/common/render/RenderWidgetList.vue_vue_type_script_setup_true_lang.js +52 -0
  9. package/core/src/components/common/render/usePageContext.js +238 -0
  10. package/core/src/components/property-editor/propertyRegister.js +29 -0
  11. package/core/src/constants/EditorTypeEnum.js +9 -0
  12. package/core/src/constants/WidgetTypeEnum.js +15 -0
  13. package/core/src/constants/index.js +10 -0
  14. package/core/src/hooks/useAppRef.js +46 -0
  15. package/core/src/hooks/useFactoryRender.js +60 -0
  16. package/core/src/hooks/useField.js +430 -0
  17. package/core/src/hooks/useFieldRules.js +66 -0
  18. package/core/src/hooks/useLowcode.js +144 -0
  19. package/core/src/hooks/usePagination.js +23 -0
  20. package/core/src/hooks/useRemoteData.js +113 -0
  21. package/core/src/hooks/useSelect.js +137 -0
  22. package/core/src/hooks/useWebMCP.js +50 -0
  23. package/core/src/lang/en-US.js +658 -0
  24. package/core/src/lang/en-US_extension.js +23 -0
  25. package/core/src/lang/en-US_render.js +36 -0
  26. package/core/src/lang/zh-CN.js +717 -0
  27. package/core/src/lang/zh-CN_extension.js +18 -0
  28. package/core/src/lang/zh-CN_render.js +36 -0
  29. package/core/src/store/useTableColumnStore.js +37 -0
  30. package/core/src/utils/format.js +40 -0
  31. package/core/src/utils/getWidgetCompontent.js +27 -0
  32. package/core/src/utils/i18n.js +38 -0
  33. package/core/src/utils/smart-vue-i18n/index.js +79 -0
  34. package/core/src/utils/transformPx.js +9 -0
  35. package/core/src/utils/useEmitter.js +24 -0
  36. package/core/src/utils/util.js +61 -0
  37. package/install.js +16 -0
  38. package/package.json +39 -0
  39. package/src/components/public/ActionButtonListRender.js +51 -0
  40. package/src/components/public/ActionButtonListRender.vue_vue_type_script_lang.js +126 -0
  41. package/src/components/public/ConfigView/CustomPageRender.js +5 -0
  42. package/src/components/public/ConfigView/CustomPageRender.vue_vue_type_script_setup_true_lang.js +38 -0
  43. package/src/components/public/CustomerModal/CustomerModal.js +5 -0
  44. package/src/components/public/CustomerModal/CustomerModal.vue_vue_type_script_setup_true_lang.js +138 -0
  45. package/src/components/public/CustomerModal/useCustomerModal.js +23 -0
  46. package/src/components/public/DataTableColumnDialog.js +7 -0
  47. package/src/components/public/DataTableColumnDialog.vue_vue_type_script_setup_true_name_DataTableColumnDialog_lang.js +330 -0
  48. package/src/hooks/useTableWidget.js +317 -0
  49. package/src/render/index.js +7 -0
  50. package/src/render/index.vue_vue_type_script_setup_true_lang.js +69 -0
  51. package/src/schemas/defaults/field.js +72 -0
  52. package/src/widgets/advanced/code-editor/index.js +7 -0
  53. package/src/widgets/advanced/code-editor/index.vue_vue_type_script_setup_true_lang.js +45 -0
  54. package/src/widgets/advanced/code-editor/schema.js +26 -0
  55. package/src/widgets/advanced/custom-render/index.js +5 -0
  56. package/src/widgets/advanced/custom-render/index.vue_vue_type_script_setup_true_lang.js +54 -0
  57. package/src/widgets/advanced/custom-render/schema.js +19 -0
  58. package/src/widgets/advanced/data-table/index.js +7 -0
  59. package/src/widgets/advanced/data-table/index.vue_vue_type_script_setup_true_lang.js +132 -0
  60. package/src/widgets/advanced/data-table/schema.js +108 -0
  61. package/src/widgets/advanced/file-upload/index.js +7 -0
  62. package/src/widgets/advanced/file-upload/index.vue_vue_type_script_setup_true_lang.js +166 -0
  63. package/src/widgets/advanced/file-upload/schema.js +35 -0
  64. package/src/widgets/advanced/rich-editor/index.js +7 -0
  65. package/src/widgets/advanced/rich-editor/index.vue_vue_type_script_setup_true_lang.js +56 -0
  66. package/src/widgets/advanced/rich-editor/schema.js +28 -0
  67. package/src/widgets/advanced/tree/index.js +7 -0
  68. package/src/widgets/advanced/tree/index.vue_vue_type_script_setup_true_lang.js +74 -0
  69. package/src/widgets/advanced/tree/schema.js +28 -0
  70. package/src/widgets/advanced/tree-select/index.js +5 -0
  71. package/src/widgets/advanced/tree-select/index.vue_vue_type_script_setup_true_lang.js +100 -0
  72. package/src/widgets/advanced/tree-select/schema.js +34 -0
  73. package/src/widgets/base/button/index.js +5 -0
  74. package/src/widgets/base/button/index.vue_vue_type_script_setup_true_lang.js +42 -0
  75. package/src/widgets/base/button/schema.js +33 -0
  76. package/src/widgets/base/button-list/index.js +7 -0
  77. package/src/widgets/base/button-list/index.vue_vue_type_script_setup_true_lang.js +41 -0
  78. package/src/widgets/base/button-list/schema.js +29 -0
  79. package/src/widgets/base/cascader/index.js +5 -0
  80. package/src/widgets/base/cascader/index.vue_vue_type_script_setup_true_lang.js +65 -0
  81. package/src/widgets/base/cascader/schema.js +31 -0
  82. package/src/widgets/base/checkbox/index.js +5 -0
  83. package/src/widgets/base/checkbox/index.vue_vue_type_script_setup_true_lang.js +61 -0
  84. package/src/widgets/base/checkbox/schema.js +25 -0
  85. package/src/widgets/base/color/index.js +7 -0
  86. package/src/widgets/base/color/index.vue_vue_type_script_setup_true_lang.js +50 -0
  87. package/src/widgets/base/color/schema.js +22 -0
  88. package/src/widgets/base/date/index.js +5 -0
  89. package/src/widgets/base/date/index.vue_vue_type_script_setup_true_lang.js +43 -0
  90. package/src/widgets/base/date/schema.js +32 -0
  91. package/src/widgets/base/date-range/index.js +5 -0
  92. package/src/widgets/base/date-range/index.vue_vue_type_script_setup_true_lang.js +44 -0
  93. package/src/widgets/base/date-range/schema.js +32 -0
  94. package/src/widgets/base/divider/index.js +5 -0
  95. package/src/widgets/base/divider/index.vue_vue_type_script_setup_true_lang.js +40 -0
  96. package/src/widgets/base/divider/schema.js +26 -0
  97. package/src/widgets/base/html/index.js +7 -0
  98. package/src/widgets/base/html/index.vue_vue_type_script_setup_true_lang.js +33 -0
  99. package/src/widgets/base/html/schema.js +25 -0
  100. package/src/widgets/base/input/index.js +5 -0
  101. package/src/widgets/base/input/index.vue_vue_type_script_setup_true_lang.js +78 -0
  102. package/src/widgets/base/input/schema.js +37 -0
  103. package/src/widgets/base/number/index.js +5 -0
  104. package/src/widgets/base/number/index.vue_vue_type_script_setup_true_lang.js +52 -0
  105. package/src/widgets/base/number/schema.js +31 -0
  106. package/src/widgets/base/radio/index.js +5 -0
  107. package/src/widgets/base/radio/index.vue_vue_type_script_setup_true_lang.js +61 -0
  108. package/src/widgets/base/radio/schema.js +26 -0
  109. package/src/widgets/base/rate/index.js +5 -0
  110. package/src/widgets/base/rate/index.vue_vue_type_script_setup_true_lang.js +52 -0
  111. package/src/widgets/base/rate/schema.js +24 -0
  112. package/src/widgets/base/select/index.js +7 -0
  113. package/src/widgets/base/select/index.vue_vue_type_script_setup_true_lang.js +94 -0
  114. package/src/widgets/base/select/schema.js +34 -0
  115. package/src/widgets/base/slider/index.js +5 -0
  116. package/src/widgets/base/slider/index.vue_vue_type_script_setup_true_lang.js +37 -0
  117. package/src/widgets/base/slider/schema.js +26 -0
  118. package/src/widgets/base/static-text/index.js +7 -0
  119. package/src/widgets/base/static-text/index.vue_vue_type_script_setup_true_lang.js +24 -0
  120. package/src/widgets/base/static-text/schema.js +28 -0
  121. package/src/widgets/base/switch/index.js +5 -0
  122. package/src/widgets/base/switch/index.vue_vue_type_script_setup_true_lang.js +40 -0
  123. package/src/widgets/base/switch/schema.js +25 -0
  124. package/src/widgets/base/textarea/index.js +7 -0
  125. package/src/widgets/base/textarea/index.vue_vue_type_script_setup_true_lang.js +50 -0
  126. package/src/widgets/base/textarea/schema.js +30 -0
  127. package/src/widgets/base/time/index.js +7 -0
  128. package/src/widgets/base/time/index.vue_vue_type_script_setup_true_lang.js +47 -0
  129. package/src/widgets/base/time/schema.js +33 -0
  130. package/src/widgets/base/time-range/index.js +7 -0
  131. package/src/widgets/base/time-range/index.vue_vue_type_script_setup_true_lang.js +48 -0
  132. package/src/widgets/base/time-range/schema.js +31 -0
  133. package/src/widgets/containers/box/index-render.js +7 -0
  134. package/src/widgets/containers/box/index-render.vue_vue_type_script_setup_true_lang.js +39 -0
  135. package/src/widgets/containers/box/schema.js +29 -0
  136. package/src/widgets/containers/collapse/index-render.js +8 -0
  137. package/src/widgets/containers/collapse/index-render.vue_vue_type_script_setup_true_lang.js +49 -0
  138. package/src/widgets/containers/collapse/schema.js +25 -0
  139. package/src/widgets/containers/dialog/index-render.js +5 -0
  140. package/src/widgets/containers/dialog/index-render.vue_vue_type_script_setup_true_lang.js +107 -0
  141. package/src/widgets/containers/dialog/schema.js +38 -0
  142. package/src/widgets/containers/form/index-render.js +7 -0
  143. package/src/widgets/containers/form/index-render.vue_vue_type_script_setup_true_lang.js +46 -0
  144. package/src/widgets/containers/form/schema.js +33 -0
  145. package/src/widgets/containers/grid/index-render.js +7 -0
  146. package/src/widgets/containers/grid/index-render.vue_vue_type_script_setup_true_lang.js +56 -0
  147. package/src/widgets/containers/grid/schema.js +22 -0
  148. package/src/widgets/containers/grid-col/index-render.js +7 -0
  149. package/src/widgets/containers/grid-col/index-render.vue_vue_type_script_setup_true_lang.js +46 -0
  150. package/src/widgets/containers/grid-col/schema.js +27 -0
  151. package/src/widgets/containers/list/index-render.js +7 -0
  152. package/src/widgets/containers/list/index-render.vue_vue_type_script_setup_true_lang.js +189 -0
  153. package/src/widgets/containers/list/schema.js +46 -0
  154. package/src/widgets/containers/space/index-render.js +7 -0
  155. package/src/widgets/containers/space/index-render.vue_vue_type_script_setup_true_lang.js +57 -0
  156. package/src/widgets/containers/space/schema.js +25 -0
  157. package/src/widgets/containers/tab/index-render.js +5 -0
  158. package/src/widgets/containers/tab/index-render.vue_vue_type_script_setup_true_lang.js +81 -0
  159. package/src/widgets/containers/tab/schema.js +32 -0
  160. package/src/widgets/containers/tab-pane/index-render.js +5 -0
  161. package/src/widgets/containers/tab-pane/index-render.vue_vue_type_script_setup_true_lang.js +37 -0
  162. package/src/widgets/containers/tab-pane/schema.js +31 -0
  163. package/src/widgets/render.js +165 -0
  164. package/src/widgets/template/SecondaryPage/index-render.js +7 -0
  165. package/src/widgets/template/SecondaryPage/index-render.vue_vue_type_script_setup_true_lang.js +63 -0
  166. package/src/widgets/template/SecondaryPage/schema.js +68 -0
  167. package/src/widgets/widgetTypes.js +52 -0
  168. package/src/widgets/wrapper/form-item-wrapper.js +7 -0
  169. package/src/widgets/wrapper/form-item-wrapper.vue_vue_type_script_setup_true_lang.js +90 -0
  170. package/stats.html +4949 -0
  171. package/types/pc/install.d.ts +11 -0
@@ -0,0 +1,317 @@
1
+ import { useI18n } from "../../core/src/utils/i18n.js";
2
+ import { transformPx } from "../../core/src/utils/transformPx.js";
3
+ import { getEventParams } from "../../core/src/components/property-editor/propertyRegister.js";
4
+ import { useRemoteData } from "../../core/src/hooks/useRemoteData.js";
5
+ import { useFactoryRender } from "../../core/src/hooks/useFactoryRender.js";
6
+ import { useTableColumnStore } from "../../core/src/store/useTableColumnStore.js";
7
+ import ActionButtonListRender_default from "../components/public/ActionButtonListRender.js";
8
+ import { computed, h, inject, isVNode, ref, watchEffect } from "vue";
9
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
10
+ import { message } from "ant-design-vue";
11
+ import { CustomItemRender, TpfDelConfirm, tranformAntSizzVxetableSize, tranformAntTableColumnToVxetableColumn, useExecFunction } from "tmgc2-share";
12
+ import { cloneDeep, isArray, omit } from "lodash-es";
13
+ import _asyncToGenerator from "@oxc-project/runtime/helpers/asyncToGenerator";
14
+ //#region src/hooks/useTableWidget.ts
15
+ function useTableWidget({ widget, fieldModel, designState = false }) {
16
+ const tableRef = ref();
17
+ const { i18nt } = useI18n();
18
+ const { executeFunction, context } = useExecFunction();
19
+ const tableColumnStore = useTableColumnStore();
20
+ const { pagination, loadData, loading, data, getPagination, setPagination } = useRemoteData({
21
+ widget,
22
+ designState,
23
+ formConfig: inject("formConfig", ref({}))
24
+ });
25
+ const { factoryRender } = useFactoryRender();
26
+ const showColumnManager = computed(() => {
27
+ var _ref, _widget$props;
28
+ return (_ref = (widget === null || widget === void 0 || (_widget$props = widget.props) === null || _widget$props === void 0 ? void 0 : _widget$props.showColumnManager) && !!columnList.value.length) !== null && _ref !== void 0 ? _ref : false;
29
+ });
30
+ const columnList = ref([]);
31
+ const initColumnList = () => {
32
+ const storageKey = widget.props.name || widget.id;
33
+ const originalColumns = widget.props.tableColumns || [];
34
+ let savedColumnList = [];
35
+ if (storageKey && tableColumnStore.hasTableConfig(storageKey)) savedColumnList = tableColumnStore.getColumnList(storageKey);
36
+ if (originalColumns.length > 0) {
37
+ const mergedColumns = originalColumns.map((col) => {
38
+ const saved = savedColumnList.find((item) => item.dataIndex === col.dataIndex);
39
+ if (saved) return Object.assign(col, {
40
+ visible: saved.visible !== false,
41
+ fixed: saved.fixed,
42
+ displayOrdinal: saved.displayOrdinal,
43
+ title: col.title || col.dataIndex
44
+ });
45
+ return Object.assign(col, {
46
+ visible: col.show !== false,
47
+ title: col.title || col.dataIndex
48
+ });
49
+ });
50
+ mergedColumns.sort((a, b) => {
51
+ var _a$displayOrdinal, _b$displayOrdinal;
52
+ return ((_a$displayOrdinal = a.displayOrdinal) !== null && _a$displayOrdinal !== void 0 ? _a$displayOrdinal : 9999) - ((_b$displayOrdinal = b.displayOrdinal) !== null && _b$displayOrdinal !== void 0 ? _b$displayOrdinal : 9999);
53
+ });
54
+ columnList.value = mergedColumns;
55
+ widget.props.tableColumns = mergedColumns.map((col) => Object.assign(col, { show: col.visible !== false }));
56
+ }
57
+ };
58
+ const handleUpdateColumns = (newColumns) => {
59
+ if (widget.props.tableColumns) widget.props.tableColumns = newColumns.map((col) => _objectSpread(_objectSpread({}, col), {}, { show: col.visible !== false }));
60
+ initColumnList();
61
+ };
62
+ const columns = computed(() => {
63
+ var _widget$props2;
64
+ const leftFixedColumns = [];
65
+ const optins = (widget === null || widget === void 0 ? void 0 : widget.props) || {};
66
+ const tableColumns = (optins === null || optins === void 0 ? void 0 : optins.tableColumns) || [];
67
+ const { rowSelection, showIndex } = optins !== null && optins !== void 0 ? optins : {};
68
+ if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.hasRowSelection) leftFixedColumns.push({
69
+ title: rowSelection.columnTitle,
70
+ width: rowSelection.columnWidth,
71
+ align: "left",
72
+ fixed: "left",
73
+ dataIndex: "checkbox",
74
+ type: "checkbox"
75
+ });
76
+ if (showIndex) leftFixedColumns.push({
77
+ title: i18nt("designer.setting.seq"),
78
+ align: "left",
79
+ width: 90,
80
+ fixed: "left",
81
+ maxWidth: 100,
82
+ dataIndex: "seq",
83
+ resizable: true,
84
+ type: "seq"
85
+ });
86
+ const centerColumns = tableColumns.map((item) => {
87
+ if (!item.dataIndex && !item.field) console.warn(`[vxe-table] 列 "${item.title}" 缺少 dataIndex 属性,storage 功能可能无法正常工作`);
88
+ return Object.assign(item, handleColumnItem(item), {
89
+ titleSuffix: item.titleSuffix ? { content: item.titleSuffixContent } : false,
90
+ visible: item.show !== false
91
+ });
92
+ });
93
+ const rightFixedColumns = [];
94
+ const actionButtonConfig = (optins === null || optins === void 0 ? void 0 : optins.actionButtonConfig) || {};
95
+ if (actionButtonConfig.showButtonsColumn) {
96
+ var _actionButtonConfig$o;
97
+ const operationButtons = (_actionButtonConfig$o = actionButtonConfig.operationButtons) !== null && _actionButtonConfig$o !== void 0 ? _actionButtonConfig$o : [];
98
+ rightFixedColumns.push({
99
+ fixed: "right",
100
+ align: "center",
101
+ title: actionButtonConfig.buttonsColumnTitle,
102
+ width: actionButtonConfig.buttonsColumnWidth,
103
+ dataIndex: "action",
104
+ slots: { default: (scope) => {
105
+ return h(ActionButtonListRender_default, {
106
+ buttonList: operationButtons,
107
+ flex: "center",
108
+ scope,
109
+ ctx: context.value,
110
+ onClick: (e) => {
111
+ e.stopPropagation();
112
+ }
113
+ });
114
+ } }
115
+ });
116
+ }
117
+ const _columns = [
118
+ ...leftFixedColumns,
119
+ ...centerColumns,
120
+ ...rightFixedColumns
121
+ ];
122
+ const treeConfig = ((_widget$props2 = widget.props) === null || _widget$props2 === void 0 ? void 0 : _widget$props2.treeConfig) || {};
123
+ if (treeConfig.enabled) _columns.forEach((col) => {
124
+ if (col.dataIndex === treeConfig.treeNode) {
125
+ console.log({ col });
126
+ col.treeNode = true;
127
+ }
128
+ });
129
+ return tranformAntTableColumnToVxetableColumn(_columns);
130
+ });
131
+ const handleColumnItem = (item) => {
132
+ const res = omit(item, ["customRender"]);
133
+ const customRenderFn = item.customRender;
134
+ item.minWidth = 50;
135
+ item.maxWidth = 1200;
136
+ if (item.isAutoWidth) {
137
+ item.width = null;
138
+ delete item.width;
139
+ } else item.width = isNaN(Number(item.width)) ? item.width : Number(item.width);
140
+ if (!customRenderFn) return item;
141
+ return _objectSpread(_objectSpread({}, res), {}, { slots: { default(scope) {
142
+ var _widget$props3;
143
+ const Com = executeFunction({
144
+ source: widget === null || widget === void 0 || (_widget$props3 = widget.props) === null || _widget$props3 === void 0 ? void 0 : _widget$props3.name,
145
+ functionBody: customRenderFn,
146
+ params: {
147
+ scope,
148
+ column: scope.column,
149
+ index: scope.rowIndex,
150
+ record: scope.row,
151
+ h: factoryRender
152
+ },
153
+ keys: getEventParams("customRender", widget.type),
154
+ errorCallback: (error) => {
155
+ console.error("Custom render error:", error);
156
+ }
157
+ });
158
+ if (isVNode(Com)) return h(CustomItemRender, { is: Com });
159
+ return Com;
160
+ } } });
161
+ };
162
+ const tableSize = computed(() => widget.props.tableSize);
163
+ const onSortChange = () => {
164
+ initTableSoureData();
165
+ };
166
+ const rowKey = computed(() => widget.props.rowKey);
167
+ const tableProps = computed(() => {
168
+ const { height = 300, border = false, lineHeight = 50, colorRow = false, showPagination = true, treeConfig } = widget.props;
169
+ let _treeConfig = {};
170
+ if (treeConfig === null || treeConfig === void 0 ? void 0 : treeConfig.enabled) _treeConfig = {
171
+ transform: treeConfig.transform,
172
+ rowField: treeConfig.rowField,
173
+ parentField: treeConfig.parentField
174
+ };
175
+ return {
176
+ id: widget.id,
177
+ showPagination,
178
+ size: tranformAntSizzVxetableSize(tableSize.value),
179
+ height: transformPx(height),
180
+ border: border !== null && border !== void 0 ? border : false,
181
+ data: fieldModel.value || [],
182
+ columns: columns.value,
183
+ treeConfig: _treeConfig,
184
+ rowConfig: {
185
+ keyField: rowKey.value,
186
+ isCurrent: colorRow,
187
+ isHover: true
188
+ },
189
+ customConfig: { storage: !designState },
190
+ checkboxConfig: {
191
+ isShiftKey: (treeConfig === null || treeConfig === void 0 ? void 0 : treeConfig.enabled) ? true : false,
192
+ checkMethod: (_data) => {
193
+ var _widget$props$rowSele;
194
+ return executeFunction({
195
+ functionBody: (_widget$props$rowSele = widget.props.rowSelection) === null || _widget$props$rowSele === void 0 ? void 0 : _widget$props$rowSele.checkMethod,
196
+ params: _data,
197
+ keys: ["row"]
198
+ });
199
+ }
200
+ },
201
+ cellConfig: { height: lineHeight }
202
+ };
203
+ });
204
+ const setTableRef = (_tableRef) => {
205
+ tableRef.value = _tableRef;
206
+ };
207
+ const initTableSoureData = function() {
208
+ var _ref2 = _asyncToGenerator(function* () {
209
+ yield loadData();
210
+ });
211
+ return function initTableSoureData() {
212
+ return _ref2.apply(this, arguments);
213
+ };
214
+ }();
215
+ watchEffect(() => {
216
+ fieldModel.value = data.value || [];
217
+ });
218
+ const onRunEvent = ({ row, $event }, type) => {
219
+ executeFunction({
220
+ functionBody: widget.events[type] || "",
221
+ params: [row, $event],
222
+ keys: ["record", "event"]
223
+ });
224
+ };
225
+ const setTableData = (data) => {
226
+ setValue(data);
227
+ };
228
+ const handleTableChange = ({ sorts }) => {
229
+ var _widget$events;
230
+ const fn = ((_widget$events = widget.events) === null || _widget$events === void 0 ? void 0 : _widget$events.onTableChange) || "";
231
+ if (fn) executeFunction({
232
+ functionBody: fn,
233
+ params: {
234
+ pagination: getPagination(),
235
+ currentDataSource: getDataSource(),
236
+ sorter: sorts
237
+ },
238
+ keys: [
239
+ "pagination",
240
+ "sorter",
241
+ "currentDataSource"
242
+ ]
243
+ });
244
+ };
245
+ const onCheckboxChange = (selectedRowInfo) => {
246
+ executeFunction({
247
+ functionBody: widget.props.rowSelection.onChange,
248
+ keys: ["selectedRowKeys", "selectedRows"],
249
+ params: selectedRowInfo
250
+ });
251
+ };
252
+ const getDataSource = () => {
253
+ return fieldModel.value;
254
+ };
255
+ const insertTableValue = (data) => {
256
+ if (!fieldModel.value) fieldModel.value = [];
257
+ fieldModel.value.push(cloneDeep(data));
258
+ };
259
+ const setValue = (data) => {
260
+ if (!isArray(data)) return console.error("表格数据类型错误");
261
+ fieldModel.value = cloneDeep(data);
262
+ };
263
+ const getTableColumns = () => {
264
+ return widget.props.tableColumns;
265
+ };
266
+ const setTableColumns = (data) => {
267
+ widget.props.tableColumns = data;
268
+ };
269
+ return {
270
+ loading,
271
+ showColumnManager,
272
+ rowKey,
273
+ onCheckboxChange,
274
+ tableDefinExpoed: {
275
+ delSelectRow: function() {
276
+ var _ref3 = _asyncToGenerator(function* (delKeys) {
277
+ if (!delKeys.length) return;
278
+ try {
279
+ yield TpfDelConfirm({ content: i18nt("确定删除选中的数据吗") });
280
+ setValue(fieldModel.value.filter((item) => !(delKeys === null || delKeys === void 0 ? void 0 : delKeys.includes(item[rowKey.value]))));
281
+ message.success(i18nt("操作成功"));
282
+ } catch (_unused) {}
283
+ });
284
+ return function delSelectRow(_x) {
285
+ return _ref3.apply(this, arguments);
286
+ };
287
+ }(),
288
+ getTableColumns,
289
+ setTableColumns,
290
+ setValue,
291
+ insertTableValue,
292
+ setPagination,
293
+ getDataSource,
294
+ getPagination,
295
+ initTableSoureData
296
+ },
297
+ onSortChange,
298
+ pagination,
299
+ setPagination,
300
+ getPagination,
301
+ handleTableChange,
302
+ setTableData,
303
+ showPagination: computed(() => !!widget.props.showPagination),
304
+ onRunEvent,
305
+ initTableSoureData,
306
+ setTableRef,
307
+ tableSize,
308
+ tableProps,
309
+ tableRef,
310
+ columns,
311
+ columnList,
312
+ initColumnList,
313
+ handleUpdateColumns
314
+ };
315
+ }
316
+ //#endregion
317
+ export { useTableWidget };
@@ -0,0 +1,7 @@
1
+ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/render/index.vue
5
+ var render_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-dfed9b96"]]);
6
+ //#endregion
7
+ export { render_default as default };
@@ -0,0 +1,69 @@
1
+ import Debugger_default from "../../core/src/components/common/render/Debugger.js";
2
+ import LowcodeRenderProvider_default from "../../core/src/components/common/render/LowcodeRenderProvider.js";
3
+ import { usePageContext } from "../../core/src/components/common/render/usePageContext.js";
4
+ import RenderWidgetList_default from "../../core/src/components/common/render/RenderWidgetList.js";
5
+ import { getRenderWidget } from "../widgets/render.js";
6
+ import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, isRef, onMounted, openBlock, ref, unref, watchEffect, withCtx } from "vue";
7
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
8
+ import { Skeleton } from "ant-design-vue";
9
+ import { getLocat } from "@kp-ui/tool";
10
+ //#region src/render/index.vue?vue&type=script&setup=true&lang.ts
11
+ var _hoisted_1 = {
12
+ key: 0,
13
+ class: "loading-wrapper"
14
+ };
15
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
16
+ name: "VFormRender",
17
+ componentName: "VFormRender",
18
+ inheritAttrs: false
19
+ }), {}, {
20
+ __name: "index",
21
+ props: {
22
+ vfCtx: { default: () => ({}) },
23
+ formJson: {},
24
+ formData: { default: () => ({}) },
25
+ optionData: { default: () => ({}) },
26
+ disabledMode: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ parentForm: { default: null }
31
+ },
32
+ setup(__props, { expose: __expose }) {
33
+ const debug = computed(() => getLocat().debug === "1");
34
+ const debugVisible = ref(false);
35
+ const props = __props;
36
+ const formContext = usePageContext({ props });
37
+ const { dialogProps, emitter, isLoading, registerToRefList, formWidgetId, widgetList, formConfig } = formContext;
38
+ onMounted(() => {
39
+ registerToRefList(formWidgetId);
40
+ });
41
+ watchEffect(() => {
42
+ if (props.formJson) formContext.setFormJson(props.formJson);
43
+ });
44
+ __expose(_objectSpread(_objectSpread(_objectSpread({ formWidgetId }, emitter), formContext.expose), {}, { formJson: props.formJson }));
45
+ return (_ctx, _cache) => {
46
+ return openBlock(), createBlock(unref(LowcodeRenderProvider_default), {
47
+ getWidget: unref(getRenderWidget),
48
+ context: unref(formContext)
49
+ }, {
50
+ default: withCtx(() => [
51
+ unref(isLoading) ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(unref(Skeleton), { active: unref(isLoading) }, null, 8, ["active"])])) : createCommentVNode("", true),
52
+ createVNode(unref(RenderWidgetList_default), {
53
+ parentWidget: null,
54
+ list: unref(widgetList),
55
+ "onUpdate:list": _cache[0] || (_cache[0] = ($event) => isRef(widgetList) ? widgetList.value = $event : null)
56
+ }, null, 8, ["list"]),
57
+ debug.value ? (openBlock(), createBlock(unref(Debugger_default), {
58
+ key: 1,
59
+ visible: debugVisible.value,
60
+ "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => debugVisible.value = $event)
61
+ }, null, 8, ["visible"])) : createCommentVNode("", true)
62
+ ]),
63
+ _: 1
64
+ }, 8, ["getWidget", "context"]);
65
+ };
66
+ }
67
+ }));
68
+ //#endregion
69
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,72 @@
1
+ //#region src/schemas/defaults/field.ts
2
+ /** 默认验证配置 */
3
+ var defaultValidationConfig = {
4
+ required: false,
5
+ requiredHint: "",
6
+ validation: "",
7
+ validationHint: "",
8
+ rules: []
9
+ };
10
+ var defaultDataSourceConfig = {
11
+ type: "remote",
12
+ data: [{
13
+ label: "节点1",
14
+ value: "1",
15
+ children: [{
16
+ label: "子节点1-1",
17
+ value: "1-1"
18
+ }, {
19
+ label: "子节点1-2",
20
+ value: "1-2"
21
+ }]
22
+ }, {
23
+ label: "节点2",
24
+ value: "2",
25
+ children: [{
26
+ label: "子节点2-1",
27
+ value: "2-1"
28
+ }]
29
+ }],
30
+ mapping: {
31
+ labelField: "label",
32
+ valueField: "value",
33
+ childrenField: "children"
34
+ },
35
+ remote: {
36
+ autoLoad: true,
37
+ httpMethod: "getExecuteAll"
38
+ },
39
+ loadingPage: false,
40
+ pagination: {
41
+ current: 1,
42
+ pageSize: 20,
43
+ total: 0
44
+ }
45
+ };
46
+ /** Field 组件默认 events */
47
+ var defaultFieldEvents = {
48
+ onMounted: "",
49
+ onChange: "",
50
+ onFocus: "",
51
+ onBlur: "",
52
+ onHidden: "//return false",
53
+ onDisabled: "//return false"
54
+ };
55
+ /** Field 组件基础 props(所有表单字段共用) */
56
+ function createFieldProps(options) {
57
+ var _options$label;
58
+ return {
59
+ name: "",
60
+ label: (_options$label = options.label) !== null && _options$label !== void 0 ? _options$label : "字段",
61
+ labelWidth: null,
62
+ labelHidden: false,
63
+ labelAlign: "right",
64
+ labelIconClass: null,
65
+ labelIconPosition: "rear",
66
+ hidden: false,
67
+ customClass: [],
68
+ defaultValue: options.defaultValue
69
+ };
70
+ }
71
+ //#endregion
72
+ export { createFieldProps, defaultDataSourceConfig, defaultFieldEvents, defaultValidationConfig };
@@ -0,0 +1,7 @@
1
+ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
+ import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/widgets/advanced/code-editor/index.vue
5
+ var code_editor_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-b5e7230e"]]);
6
+ //#endregion
7
+ export { code_editor_default as default };
@@ -0,0 +1,45 @@
1
+ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
2
+ import { useField } from "../../../../core/src/hooks/useField.js";
3
+ import form_item_wrapper_default from "../../wrapper/form-item-wrapper.js";
4
+ import { createBlock, createCommentVNode, createVNode, defineComponent, isRef, normalizeClass, openBlock, unref, withCtx } from "vue";
5
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
6
+ import { CodeEditor } from "tmgc2-share";
7
+ //#region src/widgets/advanced/code-editor/index.vue?vue&type=script&setup=true&lang.ts
8
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
9
+ name: "code-editor-widget",
10
+ componentName: ComponentNameEnum.FieldWidget
11
+ }), {}, {
12
+ __name: "index",
13
+ props: { widget: {} },
14
+ setup(__props, { expose: __expose }) {
15
+ const { rules, designState, fieldModel, isReadMode, handleHidden, defineExposed } = useField(__props.widget);
16
+ __expose(_objectSpread({}, defineExposed));
17
+ return (_ctx, _cache) => {
18
+ return !unref(handleHidden) ? (openBlock(), createBlock(form_item_wrapper_default, {
19
+ key: 0,
20
+ widget: _ctx.widget,
21
+ rules: unref(rules),
22
+ class: normalizeClass(unref(designState) ? "designer" : "")
23
+ }, {
24
+ default: withCtx(() => [createVNode(unref(CodeEditor), {
25
+ mode: _ctx.widget.props.language,
26
+ readonly: _ctx.widget.props.readOnly || unref(isReadMode),
27
+ value: unref(fieldModel),
28
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(fieldModel) ? fieldModel.value = $event : null),
29
+ ref: "fieldEditor"
30
+ }, null, 8, [
31
+ "mode",
32
+ "readonly",
33
+ "value"
34
+ ])]),
35
+ _: 1
36
+ }, 8, [
37
+ "widget",
38
+ "rules",
39
+ "class"
40
+ ])) : createCommentVNode("", true);
41
+ };
42
+ }
43
+ }));
44
+ //#endregion
45
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,26 @@
1
+ import { WidgetType } from "../../widgetTypes.js";
2
+ import { createFieldProps, defaultFieldEvents, defaultValidationConfig } from "../../../schemas/defaults/field.js";
3
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
4
+ //#region src/widgets/advanced/code-editor/schema.ts
5
+ /** CodeEditor Widget 默认值 */
6
+ var CodeEditor = {
7
+ id: "",
8
+ type: WidgetType.CodeEditor,
9
+ category: "field",
10
+ formItemFlag: true,
11
+ validation: _objectSpread({}, defaultValidationConfig),
12
+ events: _objectSpread({}, defaultFieldEvents),
13
+ style: {},
14
+ props: _objectSpread(_objectSpread({}, createFieldProps({
15
+ label: "代码编辑器",
16
+ defaultValue: ""
17
+ })), {}, {
18
+ disabled: false,
19
+ height: 300,
20
+ language: "javascript",
21
+ theme: "vs",
22
+ readOnly: false
23
+ })
24
+ };
25
+ //#endregion
26
+ export { CodeEditor };
@@ -0,0 +1,5 @@
1
+ import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/widgets/advanced/custom-render/index.vue
3
+ var custom_render_default = index_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { custom_render_default as default };
@@ -0,0 +1,54 @@
1
+ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
2
+ import { getEventParams } from "../../../../core/src/components/property-editor/propertyRegister.js";
3
+ import { useField } from "../../../../core/src/hooks/useField.js";
4
+ import { useFactoryRender } from "../../../../core/src/hooks/useFactoryRender.js";
5
+ import { WidgetType, getWidgetName } from "../../widgetTypes.js";
6
+ import form_item_wrapper_default from "../../wrapper/form-item-wrapper.js";
7
+ import { createBlock, createCommentVNode, createElementVNode, defineComponent, h, isVNode, openBlock, resolveDynamicComponent, unref, withCtx } from "vue";
8
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
9
+ import { CustomItemRender } from "tmgc2-share";
10
+ //#region src/widgets/advanced/custom-render/index.vue?vue&type=script&setup=true&lang.ts
11
+ var _hoisted_1 = { class: "slot-wrapper-render" };
12
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
13
+ name: getWidgetName(WidgetType.CustomRender),
14
+ componentName: ComponentNameEnum.FieldWidget
15
+ }), {}, {
16
+ __name: "index",
17
+ props: { widget: {} },
18
+ setup(__props, { expose: __expose }) {
19
+ const { factoryRender } = useFactoryRender();
20
+ const { context, rules, fieldEditor, fieldModel, formModel, handleHidden, defineExposed, executeFunction } = useField(__props.widget);
21
+ const renderCompont = () => {
22
+ const component = executeFunction({
23
+ functionBody: __props.widget.props.customRender,
24
+ params: {
25
+ data: fieldModel.value,
26
+ formData: formModel.value,
27
+ h: factoryRender
28
+ },
29
+ keys: getEventParams("customRender", __props.widget.type)
30
+ });
31
+ if (isVNode(component)) return h(CustomItemRender, {
32
+ is: component,
33
+ stopPropagation: false
34
+ });
35
+ return component;
36
+ };
37
+ __expose(_objectSpread({}, defineExposed));
38
+ return (_ctx, _cache) => {
39
+ return !unref(handleHidden) ? (openBlock(), createBlock(form_item_wrapper_default, {
40
+ key: 0,
41
+ widget: _ctx.widget,
42
+ rules: unref(rules)
43
+ }, {
44
+ default: withCtx(() => [createElementVNode("div", _hoisted_1, [(openBlock(), createBlock(resolveDynamicComponent(renderCompont), {
45
+ ref_key: "fieldEditor",
46
+ ref: fieldEditor
47
+ }, null, 512))])]),
48
+ _: 1
49
+ }, 8, ["widget", "rules"])) : createCommentVNode("", true);
50
+ };
51
+ }
52
+ }));
53
+ //#endregion
54
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,19 @@
1
+ import { WidgetType } from "../../widgetTypes.js";
2
+ import { createFieldProps } from "../../../schemas/defaults/field.js";
3
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
4
+ //#region src/widgets/advanced/custom-render/schema.ts
5
+ /** CustomRender Widget 默认值 */
6
+ var CustomRender = {
7
+ id: "",
8
+ type: WidgetType.CustomRender,
9
+ category: "field",
10
+ formItemFlag: true,
11
+ events: { onMounted: "" },
12
+ style: {},
13
+ props: _objectSpread(_objectSpread({}, createFieldProps({
14
+ label: "自定义渲染",
15
+ defaultValue: ""
16
+ })), {}, { customRender: "return null;" })
17
+ };
18
+ //#endregion
19
+ export { CustomRender };
@@ -0,0 +1,7 @@
1
+ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
2
+ import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/widgets/advanced/data-table/index.vue
5
+ var data_table_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-218c688c"]]);
6
+ //#endregion
7
+ export { data_table_default as default };