@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,132 @@
1
+ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
2
+ import { useField } from "../../../../core/src/hooks/useField.js";
3
+ import { WidgetType, getWidgetName } from "../../widgetTypes.js";
4
+ import { useTableWidget } from "../../../hooks/useTableWidget.js";
5
+ import DataTableColumnDialog_default from "../../../components/public/DataTableColumnDialog.js";
6
+ import { createCommentVNode, createElementBlock, createVNode, defineComponent, onMounted, openBlock, ref, unref, watchEffect } from "vue";
7
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
8
+ import { SvgIcon, Table, useVxeTable } from "tmgc2-share";
9
+ //#region src/widgets/advanced/data-table/index.vue?vue&type=script&setup=true&lang.ts
10
+ var _hoisted_1 = {
11
+ key: 0,
12
+ class: "talbe-wrapper"
13
+ };
14
+ var _hoisted_2 = {
15
+ key: 0,
16
+ class: "table-toolbar t-flex t-justify-end"
17
+ };
18
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
19
+ name: getWidgetName(WidgetType.DataTable),
20
+ componentName: ComponentNameEnum.FieldWidget
21
+ }), {}, {
22
+ __name: "index",
23
+ props: { widget: {} },
24
+ setup(__props, { expose: __expose }) {
25
+ var _widget$props$rowSele;
26
+ const { widget } = __props;
27
+ const { fieldModel, handleHidden, defineExposed } = useField(widget);
28
+ const { loading, tableProps, pagination, showColumnManager, setPagination, setTableRef, initTableSoureData, handleTableChange, onRunEvent, onSortChange, onCheckboxChange, tableDefinExpoed, columnList, initColumnList, handleUpdateColumns } = useTableWidget({
29
+ widget,
30
+ fieldModel,
31
+ designState: false
32
+ });
33
+ onMounted(() => {
34
+ if (!widget.props.showPagination) setPagination({ total: 0 });
35
+ });
36
+ const openColumnDialog = () => {
37
+ columnDialogVisible.value = true;
38
+ };
39
+ const columnDialogVisible = ref(false);
40
+ const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow } = useVxeTable({
41
+ props: {
42
+ rowKey: widget.props.rowKey,
43
+ hasRowSelection: (_widget$props$rowSele = widget.props.rowSelection) === null || _widget$props$rowSele === void 0 ? void 0 : _widget$props$rowSele.hasRowSelection,
44
+ clickRowCheck: widget.props.colorRow
45
+ },
46
+ events: {
47
+ dataChange: (params) => handleTableChange({ sorts: sorts.value }),
48
+ cellDblclick: (params) => onRunEvent(params, "onCellDoubleClick"),
49
+ cellMouseenter: (params) => onRunEvent(params, "onMouseenter"),
50
+ cellMouseleave: (params) => onRunEvent(params, "onMouseleave")
51
+ },
52
+ callbacks: {
53
+ onCheckboxChange,
54
+ onSortChange,
55
+ cellClick: (params) => onRunEvent(params, "onCellClick")
56
+ }
57
+ });
58
+ const getSelectedRowKeys = () => {
59
+ var _tableRef$value;
60
+ return (((_tableRef$value = tableRef.value) === null || _tableRef$value === void 0 ? void 0 : _tableRef$value.getCheckboxRecords()) || []).map((item) => item[widget.props.rowKey]);
61
+ };
62
+ const getSelectedRows = () => {
63
+ var _tableRef$value2;
64
+ return (_tableRef$value2 = tableRef.value) === null || _tableRef$value2 === void 0 ? void 0 : _tableRef$value2.getCheckboxRecords(true);
65
+ };
66
+ /**
67
+ * 获取字段编辑器
68
+ * @returns 字段编辑器
69
+ */
70
+ const getFieldEditor = () => {
71
+ return tableRef.value;
72
+ };
73
+ watchEffect(() => {
74
+ if (tableRef.value) setTableRef(tableRef.value);
75
+ });
76
+ onMounted(() => {
77
+ initTableSoureData();
78
+ initColumnList();
79
+ });
80
+ __expose(_objectSpread(_objectSpread(_objectSpread({}, defineExposed), tableDefinExpoed), {}, {
81
+ delSelectRow,
82
+ getFieldEditor,
83
+ selectRow,
84
+ getSelectedRowKeys,
85
+ getSelectedRows,
86
+ setPagination,
87
+ sorts,
88
+ selectedRowInfo,
89
+ loadDataTableDataSource: initTableSoureData,
90
+ fieldEditor: tableRef
91
+ }));
92
+ return (_ctx, _cache) => {
93
+ return !unref(handleHidden) ? (openBlock(), createElementBlock("div", _hoisted_1, [
94
+ unref(showColumnManager) ? (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(unref(SvgIcon), {
95
+ onClick: openColumnDialog,
96
+ size: "22",
97
+ type: "icon-weizhi",
98
+ cursor: "",
99
+ shadow: ""
100
+ })])) : createCommentVNode("", true),
101
+ createVNode(unref(Table), {
102
+ onRegister: unref(register),
103
+ tableProps: unref(tableProps),
104
+ loading: unref(loading),
105
+ pagination: unref(pagination)
106
+ }, null, 8, [
107
+ "onRegister",
108
+ "tableProps",
109
+ "loading",
110
+ "pagination"
111
+ ]),
112
+ createVNode(DataTableColumnDialog_default, {
113
+ visible: columnDialogVisible.value,
114
+ "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => columnDialogVisible.value = $event),
115
+ columns: unref(columnList),
116
+ "page-code": unref(widget).props.name,
117
+ "table-id": unref(widget).id,
118
+ onUpdate: unref(handleUpdateColumns),
119
+ ref: "columnDialogRef"
120
+ }, null, 8, [
121
+ "visible",
122
+ "columns",
123
+ "page-code",
124
+ "table-id",
125
+ "onUpdate"
126
+ ])
127
+ ])) : createCommentVNode("", true);
128
+ };
129
+ }
130
+ }));
131
+ //#endregion
132
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,108 @@
1
+ import { WidgetType } from "../../widgetTypes.js";
2
+ import { defaultDataSourceConfig } from "../../../schemas/defaults/field.js";
3
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
4
+ //#region src/widgets/advanced/data-table/schema.ts
5
+ var renderDefaultColumn = () => {
6
+ return [{
7
+ columnId: 1,
8
+ dataIndex: "createUserName",
9
+ titleSuffix: false,
10
+ title: "创建人",
11
+ width: 150,
12
+ show: true,
13
+ align: "left",
14
+ fixed: "",
15
+ sorter: false,
16
+ customRender: "",
17
+ ellipsis: true,
18
+ resizable: true,
19
+ showSorterTooltip: false
20
+ }];
21
+ };
22
+ /** DataTable Widget 默认值 */
23
+ var DataTable = {
24
+ id: "",
25
+ type: WidgetType.DataTable,
26
+ category: "container",
27
+ style: {},
28
+ events: {
29
+ onCreated: "",
30
+ onMounted: "",
31
+ onCellClick: "",
32
+ onCellDoubleClick: "",
33
+ onMouseenter: "",
34
+ onMouseleave: "",
35
+ onTableChange: ""
36
+ },
37
+ children: [],
38
+ dataSource: _objectSpread(_objectSpread({}, defaultDataSourceConfig), {}, {
39
+ loadingPage: true,
40
+ mapping: void 0,
41
+ pagination: {
42
+ pageSizeOptions: [
43
+ 10,
44
+ 20,
45
+ 50,
46
+ 100
47
+ ],
48
+ current: 1,
49
+ pageSize: 2,
50
+ total: 0
51
+ }
52
+ }),
53
+ props: {
54
+ name: "",
55
+ label: "data-table",
56
+ labelWidth: null,
57
+ labelHidden: false,
58
+ hidden: false,
59
+ lineHeight: 38,
60
+ height: 300,
61
+ customClass: [],
62
+ showIndex: false,
63
+ showPagination: true,
64
+ border: false,
65
+ tableSize: "small",
66
+ virtual: false,
67
+ tableColumns: renderDefaultColumn(),
68
+ treeConfig: {
69
+ enabled: false,
70
+ treeNode: "seq",
71
+ transform: true,
72
+ rowField: "_id",
73
+ parentField: "parentId"
74
+ },
75
+ actionButtonConfig: {
76
+ operationButtons: [{
77
+ name: "detail",
78
+ key: "",
79
+ label: "详情",
80
+ type: "link",
81
+ shape: "default",
82
+ size: "small",
83
+ hidden: 0,
84
+ disabled: 0,
85
+ onClick: ""
86
+ }],
87
+ buttonsColumnFixed: "right",
88
+ showButtonsColumn: false,
89
+ buttonsColumnTitle: "操作",
90
+ buttonsColumnWidth: 200
91
+ },
92
+ showColumnManager: false,
93
+ colorRow: true,
94
+ rowSelection: {
95
+ columnTitle: "序号",
96
+ hasRowSelection: false,
97
+ preserveSelectedRowKeys: false,
98
+ fixed: true,
99
+ onChange: "console.log(selectedRowKeys, selectedRows)",
100
+ columnWidth: 32,
101
+ checkMethod: `return true;`
102
+ },
103
+ rowKey: "_id",
104
+ childrenKey: "children"
105
+ }
106
+ };
107
+ //#endregion
108
+ export { DataTable };
@@ -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/file-upload/index.vue
5
+ var file_upload_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d7f7f675"]]);
6
+ //#endregion
7
+ export { file_upload_default as default };
@@ -0,0 +1,166 @@
1
+ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
2
+ import { useField } from "../../../../core/src/hooks/useField.js";
3
+ import { WidgetType, getWidgetName } from "../../widgetTypes.js";
4
+ import form_item_wrapper_default from "../../wrapper/form-item-wrapper.js";
5
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, isRef, normalizeClass, onMounted, openBlock, resolveComponent, unref, withCtx } from "vue";
6
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
7
+ import { message } from "ant-design-vue";
8
+ import { AttachmentRender, FileIcon, SvgIcon, TpfModal, useFilePreview, useFilesystemApi } from "tmgc2-share";
9
+ import _asyncToGenerator from "@oxc-project/runtime/helpers/asyncToGenerator";
10
+ import { UploadOutlined } from "@ant-design/icons-vue";
11
+ //#region src/widgets/advanced/file-upload/index.vue?vue&type=script&setup=true&lang.tsx
12
+ var _hoisted_1 = { key: 0 };
13
+ var _hoisted_2 = ["src"];
14
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
15
+ name: getWidgetName(WidgetType.FileUpload),
16
+ componentName: ComponentNameEnum.FieldWidget
17
+ }), {}, {
18
+ __name: "index",
19
+ props: { widget: {} },
20
+ setup(__props, { expose: __expose }) {
21
+ const filesystemApi = useFilesystemApi();
22
+ const { loading, rules, fieldModel, isReadMode, handleHidden, handleDisabled, defineExposed, executeFunction } = useField(__props.widget);
23
+ const handleOnBeforeUpload = (file) => {
24
+ var _props$widget$events;
25
+ if ((_props$widget$events = __props.widget.events) === null || _props$widget$events === void 0 ? void 0 : _props$widget$events.onBeforeUpload) {
26
+ const result = executeFunction({
27
+ functionBody: __props.widget.events.onBeforeUpload,
28
+ params: { file },
29
+ keys: ["file"]
30
+ });
31
+ if (typeof result === "boolean") return result;
32
+ }
33
+ return true;
34
+ };
35
+ const isPicture = computed(() => __props.widget.props.listType === "picture" || __props.widget.props.listType === "picture-card");
36
+ const isShowUploader = computed(() => {
37
+ var _fieldModel$value;
38
+ return (((_fieldModel$value = fieldModel.value) === null || _fieldModel$value === void 0 ? void 0 : _fieldModel$value.length) || 0) < (__props.widget.props.limit || 1);
39
+ });
40
+ const customRequest = function() {
41
+ var _ref = _asyncToGenerator(function* (upload) {
42
+ const { accept, maxSize } = __props.widget.props;
43
+ const file = upload.file;
44
+ const fileName = file.name;
45
+ const fieldTypesArr = accept.map((item) => item.toLowerCase());
46
+ const fieldTypes = fileName.slice(fileName.lastIndexOf("."));
47
+ if (!fieldTypesArr.includes(fieldTypes.toLowerCase())) return message.error(`目前仅支持${accept}格式的文件`);
48
+ if (maxSize && file.size > maxSize * 1024 * 1024) {
49
+ message.error(`文件大小不能超过${maxSize}M`);
50
+ return;
51
+ }
52
+ if (!handleOnBeforeUpload(file)) return;
53
+ loading.value = true;
54
+ try {
55
+ const res = yield filesystemApi.uploadFileObject({ file });
56
+ const { fileName: name } = res.data.object;
57
+ if (__props.widget.props.limit > 1) {
58
+ const findIndex = fieldModel.value.findIndex((item) => item.name === name);
59
+ if (findIndex > -1) fieldModel.value.splice(findIndex, 1);
60
+ if (fieldModel.value.length < __props.widget.props.limit) fieldModel.value.push(_objectSpread(_objectSpread({}, res.data.object), {}, { name }));
61
+ } else fieldModel.value = [_objectSpread(_objectSpread({}, res.data.object), {}, { name })];
62
+ } finally {
63
+ loading.value = false;
64
+ }
65
+ });
66
+ return function customRequest(_x) {
67
+ return _ref.apply(this, arguments);
68
+ };
69
+ }();
70
+ const initFileListFieldModel = () => {
71
+ if (fieldModel.value && typeof fieldModel.value === "string") fieldModel.value = JSON.parse(fieldModel.value);
72
+ };
73
+ const acceptType = computed(() => {
74
+ const { accept } = __props.widget.props;
75
+ if (accept === null || accept === void 0 ? void 0 : accept.length) return accept.join(",");
76
+ return "*";
77
+ });
78
+ const { handlePreview, previewVisible, previewImage, previewTitle } = useFilePreview();
79
+ const iconRender = ({ file }) => {
80
+ return createVNode(FileIcon, { "file": {
81
+ fileName: file.name,
82
+ fileType: file.name.slice(file.name.lastIndexOf("."))
83
+ } }, null);
84
+ };
85
+ const removeFile = (file) => {
86
+ const findInx = fieldModel.value.findIndex((item) => item.uid === file.uid);
87
+ if (findInx > -1) fieldModel.value.splice(findInx, 1);
88
+ };
89
+ computed(() => {
90
+ const { accept, maxSize } = __props.widget.props;
91
+ const acceptList = (accept || []).join(",");
92
+ return [acceptList.length ? `支持扩展名 ${acceptList}` : "", maxSize ? `支持文件大小 ${maxSize}M` : ""].filter(Boolean);
93
+ });
94
+ onMounted(() => {
95
+ initFileListFieldModel();
96
+ });
97
+ __expose(_objectSpread({}, defineExposed));
98
+ return (_ctx, _cache) => {
99
+ const _component_a_button = resolveComponent("a-button");
100
+ const _component_a_space = resolveComponent("a-space");
101
+ const _component_a_upload = resolveComponent("a-upload");
102
+ return !unref(handleHidden) ? (openBlock(), createBlock(form_item_wrapper_default, {
103
+ key: 0,
104
+ widget: _ctx.widget,
105
+ rules: unref(rules)
106
+ }, {
107
+ default: withCtx(() => [!unref(handleDisabled) && !unref(isReadMode) ? (openBlock(), createBlock(_component_a_upload, {
108
+ key: 0,
109
+ ref: "fieldEditor",
110
+ class: normalizeClass(["tpf-upload", { isReadonly: unref(isReadMode) }]),
111
+ multiple: _ctx.widget.props.multiple,
112
+ accept: acceptType.value,
113
+ "file-list": unref(fieldModel),
114
+ "onUpdate:fileList": _cache[0] || (_cache[0] = ($event) => isRef(fieldModel) ? fieldModel.value = $event : null),
115
+ "list-type": _ctx.widget.props.listType,
116
+ "custom-request": customRequest,
117
+ "icon-render": iconRender,
118
+ onPreview: unref(handlePreview),
119
+ onRemove: removeFile
120
+ }, {
121
+ default: withCtx(() => [isShowUploader.value ? (openBlock(), createBlock(_component_a_space, {
122
+ key: 0,
123
+ size: 10,
124
+ align: "start"
125
+ }, {
126
+ default: withCtx(() => [isPicture.value ? (openBlock(), createElementBlock("span", _hoisted_1, [createVNode(unref(SvgIcon), { "icon-class": "daochu" }), _cache[2] || (_cache[2] = createTextVNode(" 上传文件 "))])) : (openBlock(), createBlock(_component_a_button, {
127
+ key: 1,
128
+ loading: unref(loading),
129
+ type: "primary"
130
+ }, {
131
+ default: withCtx(() => [createVNode(unref(UploadOutlined)), _cache[3] || (_cache[3] = createTextVNode(" 上传文件 "))]),
132
+ _: 1,
133
+ __: [3]
134
+ }, 8, ["loading"]))]),
135
+ _: 1
136
+ })) : createCommentVNode("", true)]),
137
+ _: 1
138
+ }, 8, [
139
+ "class",
140
+ "multiple",
141
+ "accept",
142
+ "file-list",
143
+ "list-type",
144
+ "onPreview"
145
+ ])) : (openBlock(), createBlock(unref(AttachmentRender), {
146
+ key: 1,
147
+ data: unref(fieldModel)
148
+ }, null, 8, ["data"])), createVNode(unref(TpfModal), {
149
+ visible: unref(previewVisible),
150
+ "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => isRef(previewVisible) ? previewVisible.value = $event : null),
151
+ title: unref(previewTitle),
152
+ footer: null
153
+ }, {
154
+ default: withCtx(() => [createElementVNode("img", {
155
+ style: { "width": "100%" },
156
+ src: unref(previewImage)
157
+ }, null, 8, _hoisted_2)]),
158
+ _: 1
159
+ }, 8, ["visible", "title"])]),
160
+ _: 1
161
+ }, 8, ["widget", "rules"])) : createCommentVNode("", true);
162
+ };
163
+ }
164
+ }));
165
+ //#endregion
166
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,35 @@
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/file-upload/schema.ts
5
+ /** FileUpload Widget 默认值 */
6
+ var FileUpload = {
7
+ id: "",
8
+ type: WidgetType.FileUpload,
9
+ category: "field",
10
+ formItemFlag: true,
11
+ validation: _objectSpread({}, defaultValidationConfig),
12
+ events: _objectSpread(_objectSpread({}, defaultFieldEvents), {}, { onBeforeUpload: "" }),
13
+ style: {},
14
+ props: _objectSpread(_objectSpread({}, createFieldProps({
15
+ label: "文件上传",
16
+ defaultValue: []
17
+ })), {}, {
18
+ disabled: false,
19
+ listType: "picture-card",
20
+ accept: [
21
+ ".xls",
22
+ ".xlsx",
23
+ ".pdf",
24
+ ".png",
25
+ ".jpg"
26
+ ],
27
+ limit: 1,
28
+ maxSize: 10,
29
+ multiple: true,
30
+ businessType: "",
31
+ data: {}
32
+ })
33
+ };
34
+ //#endregion
35
+ export { FileUpload };
@@ -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/rich-editor/index.vue
5
+ var rich_editor_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-a69f5c43"]]);
6
+ //#endregion
7
+ export { rich_editor_default as default };
@@ -0,0 +1,56 @@
1
+ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
2
+ import { useField } from "../../../../core/src/hooks/useField.js";
3
+ import { WidgetType, getWidgetName } from "../../widgetTypes.js";
4
+ import form_item_wrapper_default from "../../wrapper/form-item-wrapper.js";
5
+ import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, isRef, normalizeStyle, openBlock, unref, withCtx } from "vue";
6
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
7
+ import { QuillEditor } from "tmgc2-share";
8
+ //#region src/widgets/advanced/rich-editor/index.vue?vue&type=script&setup=true&lang.ts
9
+ var _hoisted_1 = {
10
+ key: 0,
11
+ class: "rich-editor-widget"
12
+ };
13
+ var _hoisted_2 = ["innerHTML"];
14
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
15
+ name: getWidgetName(WidgetType.RichEditor),
16
+ componentName: ComponentNameEnum.FieldWidget
17
+ }), {}, {
18
+ __name: "index",
19
+ props: { widget: {} },
20
+ setup(__props, { expose: __expose }) {
21
+ const { rules, fieldModel, isReadMode, handleHidden, handleDisabled, defineExposed } = useField(__props.widget);
22
+ const editorOption = computed(() => ({
23
+ placeholder: __props.widget.props.placeholder,
24
+ modules: {}
25
+ }));
26
+ __expose(_objectSpread({}, defineExposed));
27
+ return (_ctx, _cache) => {
28
+ return !unref(handleHidden) ? (openBlock(), createBlock(form_item_wrapper_default, {
29
+ key: 0,
30
+ widget: _ctx.widget,
31
+ rules: unref(rules)
32
+ }, {
33
+ default: withCtx(() => [!unref(isReadMode) ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(unref(QuillEditor), {
34
+ ref: "fieldEditor",
35
+ value: unref(fieldModel),
36
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(fieldModel) ? fieldModel.value = $event : null),
37
+ options: editorOption.value,
38
+ disabled: unref(handleDisabled) || unref(isReadMode),
39
+ style: normalizeStyle(`height: ${_ctx.widget.props.height}px;`)
40
+ }, null, 8, [
41
+ "value",
42
+ "options",
43
+ "disabled",
44
+ "style"
45
+ ])])) : (openBlock(), createElementBlock("div", {
46
+ key: 1,
47
+ class: "readonly-mode-rich-editor",
48
+ innerHTML: unref(fieldModel)
49
+ }, null, 8, _hoisted_2))]),
50
+ _: 1
51
+ }, 8, ["widget", "rules"])) : createCommentVNode("", true);
52
+ };
53
+ }
54
+ }));
55
+ //#endregion
56
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,28 @@
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/rich-editor/schema.ts
5
+ /** RichEditor Widget 默认值 */
6
+ var RichEditor = {
7
+ id: "",
8
+ type: WidgetType.RichEditor,
9
+ category: "field",
10
+ formItemFlag: true,
11
+ validation: _objectSpread({}, defaultValidationConfig),
12
+ events: _objectSpread(_objectSpread({}, defaultFieldEvents), {}, {
13
+ onFocus: "",
14
+ onBlur: ""
15
+ }),
16
+ style: {},
17
+ props: _objectSpread(_objectSpread({}, createFieldProps({
18
+ label: "富文本编辑器",
19
+ defaultValue: ""
20
+ })), {}, {
21
+ disabled: false,
22
+ height: 300,
23
+ placeholder: "请输入内容",
24
+ toolbar: []
25
+ })
26
+ };
27
+ //#endregion
28
+ export { RichEditor };
@@ -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/tree/index.vue
5
+ var tree_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-143c8384"]]);
6
+ //#endregion
7
+ export { tree_default as default };
@@ -0,0 +1,74 @@
1
+ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
2
+ import { useField } from "../../../../core/src/hooks/useField.js";
3
+ import { useSelect } from "../../../../core/src/hooks/useSelect.js";
4
+ import { WidgetType, getWidgetName } from "../../widgetTypes.js";
5
+ import { createBlock, defineComponent, isRef, openBlock, unref } from "vue";
6
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
7
+ import { Tree } from "ant-design-vue";
8
+ //#region src/widgets/advanced/tree/index.vue?vue&type=script&setup=true&lang.ts
9
+ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent(_objectSpread(_objectSpread({}, {
10
+ name: getWidgetName(WidgetType.Tree),
11
+ componentName: ComponentNameEnum.FieldWidget
12
+ }), {}, {
13
+ __name: "index",
14
+ props: { widget: {} },
15
+ setup(__props, { expose: __expose }) {
16
+ const { fieldModel, formConfig, designState, rules, handleHidden, defineExposed, executeFunction } = useField(__props.widget);
17
+ const { fieldNames, data, loadData, pager, loading } = useSelect({
18
+ widget: __props.widget,
19
+ fieldModel,
20
+ formConfig,
21
+ designState
22
+ });
23
+ const onCheck = (checkedKeys, e) => {
24
+ var _props$widget$events;
25
+ if (!((_props$widget$events = __props.widget.events) === null || _props$widget$events === void 0 ? void 0 : _props$widget$events.onCheck)) return;
26
+ executeFunction({
27
+ functionBody: __props.widget.events.onCheck,
28
+ params: {
29
+ checkedKeys,
30
+ e
31
+ },
32
+ keys: ["checkedKeys", "e"],
33
+ errorCallback: (error) => {
34
+ console.error("Custom render error:", error);
35
+ }
36
+ });
37
+ };
38
+ __expose(_objectSpread({}, defineExposed));
39
+ return (_ctx, _cache) => {
40
+ return openBlock(), createBlock(unref(Tree), {
41
+ checkedKeys: unref(fieldModel),
42
+ "onUpdate:checkedKeys": _cache[0] || (_cache[0] = ($event) => isRef(fieldModel) ? fieldModel.value = $event : null),
43
+ loading: unref(loading),
44
+ ref: "fieldEditor",
45
+ showLine: _ctx.widget.props.showLine,
46
+ showIcon: _ctx.widget.props.showIcon,
47
+ treeData: unref(data),
48
+ treeDefaultExpandAll: _ctx.widget.props.defaultExpandAll,
49
+ checkable: _ctx.widget.props.checkable,
50
+ fieldNames: {
51
+ children: unref(fieldNames).children,
52
+ title: unref(fieldNames).label,
53
+ key: unref(fieldNames).value
54
+ },
55
+ multiple: _ctx.widget.props.multiple,
56
+ selectable: _ctx.widget.props.selectable,
57
+ onCheck
58
+ }, null, 8, [
59
+ "checkedKeys",
60
+ "loading",
61
+ "showLine",
62
+ "showIcon",
63
+ "treeData",
64
+ "treeDefaultExpandAll",
65
+ "checkable",
66
+ "fieldNames",
67
+ "multiple",
68
+ "selectable"
69
+ ]);
70
+ };
71
+ }
72
+ }));
73
+ //#endregion
74
+ export { index_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,28 @@
1
+ import { WidgetType } from "../../widgetTypes.js";
2
+ import { createFieldProps, defaultDataSourceConfig, defaultFieldEvents } from "../../../schemas/defaults/field.js";
3
+ import _objectSpread from "@oxc-project/runtime/helpers/objectSpread2";
4
+ //#region src/widgets/advanced/tree/schema.ts
5
+ /** Tree Widget 默认值 */
6
+ var Tree = {
7
+ id: "",
8
+ type: WidgetType.Tree,
9
+ category: "field",
10
+ formItemFlag: true,
11
+ events: _objectSpread(_objectSpread({}, defaultFieldEvents), {}, { onCheck: "" }),
12
+ style: {},
13
+ props: _objectSpread(_objectSpread({}, createFieldProps({
14
+ label: "树形控件",
15
+ defaultValue: []
16
+ })), {}, {
17
+ disabled: false,
18
+ checkable: false,
19
+ multiple: false,
20
+ selectable: true,
21
+ defaultExpandAll: false,
22
+ showLine: false,
23
+ showIcon: false
24
+ }),
25
+ dataSource: _objectSpread({}, defaultDataSourceConfig)
26
+ };
27
+ //#endregion
28
+ export { Tree };
@@ -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/tree-select/index.vue
3
+ var tree_select_default = index_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { tree_select_default as default };