@kp-ui/lowcode 1.0.30 → 1.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_virtual/virtual_svg-icons-register.js +2 -2
- package/index.js +0 -2
- package/package.json +1 -1
- package/render.js +73 -64
- package/src/components/CustomRender/components/AttachmentRender.vue.js +1 -1
- package/src/components/CustomRender/components/AttachmentRender.vue2.js +25 -12
- package/src/components/CustomRender/components/index.js +10 -0
- package/src/components/CustomRender/useCustomRender.js +68 -0
- package/src/components/code-editor/index.vue.js +3 -167
- package/src/components/code-editor/index.vue2.js +166 -0
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue.js +234 -104
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue3.js +105 -0
- package/src/components/form-designer/form-widget/container-widget/grid-col-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/container-widget/grid-sub-form-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/container-widget/{grid-widget.vue.js → grid-widget.vue2.js} +1 -1
- package/src/components/form-designer/form-widget/container-widget/index.js +4 -4
- package/src/components/form-designer/form-widget/container-widget/sub-form-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/container-widget/tab-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/container-widget/table-cell-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/container-widget/{table-widget.vue.js → table-widget.vue2.js} +1 -1
- package/src/components/form-designer/form-widget/container-widget/vf-box-item.vue.js +4 -3
- package/src/components/form-designer/form-widget/container-widget/vf-box-widget.vue.js +6 -3
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue.js +126 -156
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue4.js +158 -0
- package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/container-widget/vf-drawer-widget.vue.js +3 -1
- package/src/components/form-designer/form-widget/field-widget/attachment-render-widget.vue.js +1 -3
- package/src/components/form-designer/form-widget/field-widget/diy-compontent-widget.vue.js +103 -0
- package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/file-upload-widget.vue2.js +25 -19
- package/src/components/form-designer/form-widget/field-widget/index.js +3 -1
- package/src/components/form-designer/form-widget/field-widget/slot-widget.vue.js +6 -6
- package/src/components/form-designer/form-widget/index.vue.js +7 -5
- package/src/components/form-designer/setting-panel/option-items-setting.vue.js +5 -3
- package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +4 -3
- package/src/components/form-designer/setting-panel/property-editor/container-grid/gutter-editor.vue.js +3 -2
- package/src/components/form-designer/setting-panel/property-editor/container-tab/tab-customClass-editor.vue.js +4 -3
- package/src/components/form-designer/setting-panel/property-editor/diy-compontent-editor.vue.js +33 -0
- package/src/components/form-designer/setting-panel/property-editor/index.js +2 -1
- package/src/components/form-designer/setting-panel/propertyRegister.js +1 -0
- package/src/components/form-designer/toolbar-panel/index.vue.js +7 -784
- package/src/components/form-designer/toolbar-panel/widgetList.js +780 -0
- package/src/components/form-designer/widget-panel/advanced/attachment-render.js +3 -3
- package/src/components/form-designer/widget-panel/advanced/diy-compontent.js +24 -0
- package/src/components/form-designer/widget-panel/advanced/slot.js +1 -1
- package/src/components/form-designer/widget-panel/advancedFieldsEnums.js +4 -2
- package/src/components/form-designer/widget-panel/index.vue.js +3 -2
- package/src/components/form-render/container-item/index.js +1 -1
- package/src/components/form-render/container-item/{table-item.vue2.js → table-item.vue.js} +1 -1
- package/src/components/form-render/container-item/vf-collapse-item.vue.js +4 -3
- package/src/components/form-render/dynamic-dialog.vue.js +7 -2
- package/src/components/form-render/dynamic-drawer.vue.js +5 -2
- package/src/lang/zh-CN.js +4 -5
- package/src/mixins/useDataTableMixin.js +1 -1
- package/src/utils/config.js +0 -2
- package/styles/style.css +1 -1
- package/types/install.d.ts.map +1 -1
- package/types/src/components/CustomRender/components/AttachmentRender.d.ts +31 -0
- package/types/src/components/CustomRender/components/AttachmentRender.d.ts.map +1 -0
- package/types/src/components/CustomRender/components/index.d.ts +2 -0
- package/types/src/components/CustomRender/components/index.d.ts.map +1 -0
- package/types/src/components/CustomRender/{index.d.ts → useCustomRender.d.ts} +2 -2
- package/types/src/components/CustomRender/useCustomRender.d.ts.map +1 -0
- package/types/src/components/code-editor/code-modal-editor.d.ts +1 -1
- package/types/src/components/code-editor/index.d.ts +41 -55
- package/types/src/components/code-editor/index.d.ts.map +1 -1
- package/types/src/components/form-designer/setting-panel/index.d.ts +1 -0
- package/types/src/components/form-designer/toolbar-panel/index.d.ts +1 -1
- package/types/src/components/form-designer/toolbar-panel/widgetList.d.ts +556 -0
- package/types/src/components/form-designer/toolbar-panel/widgetList.d.ts.map +1 -0
- package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts +2 -14
- package/types/src/components/form-designer/widget-panel/advanced/attachment-render.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts +2 -15
- package/types/src/components/form-designer/widget-panel/advanced/bpmn-editor.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts +2 -55
- package/types/src/components/form-designer/widget-panel/advanced/cascader.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts +2 -25
- package/types/src/components/form-designer/widget-panel/advanced/code-editor.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts +9 -0
- package/types/src/components/form-designer/widget-panel/advanced/diy-compontent.d.ts.map +1 -0
- package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts +2 -29
- package/types/src/components/form-designer/widget-panel/advanced/file-upload.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts +2 -26
- package/types/src/components/form-designer/widget-panel/advanced/rich-editor.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts +2 -9
- package/types/src/components/form-designer/widget-panel/advanced/slot.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts +2 -56
- package/types/src/components/form-designer/widget-panel/advanced/tree-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/advancedFieldsEnums.d.ts +75 -0
- package/types/src/components/form-designer/widget-panel/advancedFieldsEnums.d.ts.map +1 -0
- package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts +2 -19
- package/types/src/components/form-designer/widget-panel/basicFields/button.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts +2 -40
- package/types/src/components/form-designer/widget-panel/basicFields/checkbox.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts +2 -26
- package/types/src/components/form-designer/widget-panel/basicFields/color.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts +2 -36
- package/types/src/components/form-designer/widget-panel/basicFields/date.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts +2 -36
- package/types/src/components/form-designer/widget-panel/basicFields/dateRange.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts +2 -13
- package/types/src/components/form-designer/widget-panel/basicFields/divider.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts +2 -24
- package/types/src/components/form-designer/widget-panel/basicFields/dropdown.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts +2 -11
- package/types/src/components/form-designer/widget-panel/basicFields/htmlText.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts +2 -37
- package/types/src/components/form-designer/widget-panel/basicFields/input.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts +2 -33
- package/types/src/components/form-designer/widget-panel/basicFields/number.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts +2 -44
- package/types/src/components/form-designer/widget-panel/basicFields/radio.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts +2 -28
- package/types/src/components/form-designer/widget-panel/basicFields/rate.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts +2 -51
- package/types/src/components/form-designer/widget-panel/basicFields/select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts +2 -30
- package/types/src/components/form-designer/widget-panel/basicFields/slider.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts +2 -11
- package/types/src/components/form-designer/widget-panel/basicFields/staticText.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts +2 -24
- package/types/src/components/form-designer/widget-panel/basicFields/switch.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts +2 -35
- package/types/src/components/form-designer/widget-panel/basicFields/textarea.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts +2 -33
- package/types/src/components/form-designer/widget-panel/basicFields/time.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts +2 -34
- package/types/src/components/form-designer/widget-panel/basicFields/timeRange.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/department-select.d.ts +2 -51
- package/types/src/components/form-designer/widget-panel/business/department-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/material-select.d.ts +2 -51
- package/types/src/components/form-designer/widget-panel/business/material-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts +2 -51
- package/types/src/components/form-designer/widget-panel/business/operation-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/post-select.d.ts +2 -53
- package/types/src/components/form-designer/widget-panel/business/post-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts +2 -51
- package/types/src/components/form-designer/widget-panel/business/project-group-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/project-select.d.ts +2 -51
- package/types/src/components/form-designer/widget-panel/business/project-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/business/user-select.d.ts +2 -54
- package/types/src/components/form-designer/widget-panel/business/user-select.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts +2 -90
- package/types/src/components/form-designer/widget-panel/containers/data-table.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts +2 -14
- package/types/src/components/form-designer/widget-panel/containers/grid-col.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts +2 -8
- package/types/src/components/form-designer/widget-panel/containers/grid-sub-form.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/grid.d.ts +2 -8
- package/types/src/components/form-designer/widget-panel/containers/grid.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/tab.d.ts +2 -12
- package/types/src/components/form-designer/widget-panel/containers/tab.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts +2 -6
- package/types/src/components/form-designer/widget-panel/containers/vf-box.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts +2 -12
- package/types/src/components/form-designer/widget-panel/containers/vf-collapse.d.ts.map +1 -1
- package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts +2 -22
- package/types/src/components/form-designer/widget-panel/containers/vf-dialog.d.ts.map +1 -1
- package/types/src/components/form-render/index.d.ts +4 -0
- package/types/src/components/form-render/index.d.ts.map +1 -1
- package/types/src/components/lowcodeCompontent/index.d.ts +6 -0
- package/types/src/components/lowcodeCompontent/index.d.ts.map +1 -0
- package/types/src/components/svg-icon/index.d.ts +47 -0
- package/types/src/components/svg-icon/index.d.ts.map +1 -0
- package/src/components/CustomRender/index.js +0 -52
- package/src/components/form-designer/form-widget/container-widget/data-table-widget.vue2.js +0 -235
- package/src/components/form-designer/form-widget/container-widget/vf-collapse-widget.vue2.js +0 -126
- package/stats.html +0 -4949
- 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,236 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
+
log;
|
|
50
|
+
},
|
|
51
|
+
beforeUnmount() {
|
|
52
|
+
},
|
|
53
|
+
computed: {
|
|
54
|
+
// paginationLayout() {
|
|
55
|
+
// return !!this.widget.options.smallPagination
|
|
56
|
+
// ? 'prev, pager, next'
|
|
57
|
+
// : 'total, sizes, prev, pager, next, jumper';
|
|
58
|
+
// },
|
|
59
|
+
selected() {
|
|
60
|
+
return this.widget.id === this.designer.selectedId;
|
|
61
|
+
}
|
|
62
|
+
// customClass() {
|
|
63
|
+
// return this.widget.options.customClass || '';
|
|
64
|
+
// },
|
|
65
|
+
// widgetSize() {
|
|
66
|
+
// return this.widget.options.tableSize || 'default';
|
|
67
|
+
// },
|
|
68
|
+
// buttonsColumnFixed() {
|
|
69
|
+
// if (this.widget.options.buttonsColumnFixed === undefined) {
|
|
70
|
+
// return 'right';
|
|
71
|
+
// }
|
|
72
|
+
// return !this.widget.options.buttonsColumnFixed
|
|
73
|
+
// ? false
|
|
74
|
+
// : this.widget.options.buttonsColumnFixed;
|
|
75
|
+
// },
|
|
76
|
+
// tableHeight() {
|
|
77
|
+
// return this.widget.options.tableHeight || undefined;
|
|
78
|
+
// },
|
|
79
|
+
// selectionWidth() {
|
|
80
|
+
// return !this.widget.options.showSummary
|
|
81
|
+
// ? !this.widget.options.treeDataEnabled
|
|
82
|
+
// ? 42
|
|
83
|
+
// : 70
|
|
84
|
+
// : 53;
|
|
85
|
+
// }
|
|
86
|
+
},
|
|
87
|
+
methods: {
|
|
88
|
+
// getOperationButtonLabel(buttonConfig, rowIndex, row) {
|
|
89
|
+
// if (!!this.widget.options.onGetOperationButtonLabel) {
|
|
90
|
+
// const customFn = new Function(
|
|
91
|
+
// 'buttonConfig',
|
|
92
|
+
// 'rowIndex',
|
|
93
|
+
// 'row',
|
|
94
|
+
// this.widget.options.onGetOperationButtonLabel
|
|
95
|
+
// );
|
|
96
|
+
// //return customFn.call(this, buttonConfig, rowIndex, row) || buttonConfig.label
|
|
97
|
+
// return customFn.call(this, buttonConfig, rowIndex, row);
|
|
98
|
+
// } else {
|
|
99
|
+
// return buttonConfig.label;
|
|
100
|
+
// }
|
|
101
|
+
// },
|
|
102
|
+
// handleOperationButtonClick(btnName, rowIndex, row, scope, ob) {
|
|
103
|
+
// this.skipSelectionChangeEvent = true;
|
|
104
|
+
// try {
|
|
105
|
+
// if (ob.onClick) {
|
|
106
|
+
// const clcFn = new Function('record', 'index', 'column', 'btn', ob.onClick);
|
|
107
|
+
// clcFn.call(this, row, rowIndex, scope.column, ob);
|
|
108
|
+
// return;
|
|
109
|
+
// }
|
|
110
|
+
// if (!!this.widget.options.onOperationButtonClick) {
|
|
111
|
+
// const customFn = new Function(
|
|
112
|
+
// 'buttonName',
|
|
113
|
+
// 'rowIndex',
|
|
114
|
+
// 'row',
|
|
115
|
+
// this.widget.options.onOperationButtonClick
|
|
116
|
+
// );
|
|
117
|
+
// customFn.call(this, btnName, rowIndex, row);
|
|
118
|
+
// } else {
|
|
119
|
+
// this.dispatch('VFormRender', 'operationButtonClick', [this, btnName, rowIndex, row]);
|
|
120
|
+
// }
|
|
121
|
+
// } finally {
|
|
122
|
+
// this.skipSelectionChangeEvent = false;
|
|
123
|
+
// }
|
|
124
|
+
// },
|
|
125
|
+
// showOperationButton(buttonConfig, rowIndex, row) {
|
|
126
|
+
// if (!!this.widget.options.onHideOperationButton) {
|
|
127
|
+
// const customFn = new Function(
|
|
128
|
+
// 'buttonConfig',
|
|
129
|
+
// 'rowIndex',
|
|
130
|
+
// 'row',
|
|
131
|
+
// this.widget.options.onHideOperationButton
|
|
132
|
+
// );
|
|
133
|
+
// return !customFn.call(this, buttonConfig, rowIndex, row);
|
|
134
|
+
// } else {
|
|
135
|
+
// return !buttonConfig.hidden;
|
|
136
|
+
// }
|
|
137
|
+
// },
|
|
138
|
+
// disableOperationButton(buttonConfig, rowIndex, row) {
|
|
139
|
+
// if (!!this.widget.options.onDisableOperationButton) {
|
|
140
|
+
// const customFn = new Function(
|
|
141
|
+
// 'buttonConfig',
|
|
142
|
+
// 'rowIndex',
|
|
143
|
+
// 'row',
|
|
144
|
+
// this.widget.options.onDisableOperationButton
|
|
145
|
+
// );
|
|
146
|
+
// return customFn.call(this, buttonConfig, rowIndex, row);
|
|
147
|
+
// } else {
|
|
148
|
+
// return buttonConfig.disabled;
|
|
149
|
+
// }
|
|
150
|
+
// },
|
|
151
|
+
// customRenderIndex({ index }) {
|
|
152
|
+
// return index + 1;
|
|
153
|
+
// },
|
|
154
|
+
// handleTablePageChange(pagination, filters, sorter, { currentDataSource }) {
|
|
155
|
+
// const fn = this.widget.options.onTableChange;
|
|
156
|
+
// this.widget.options.pagination.current = pagination.current;
|
|
157
|
+
// this.widget.options.pagination.pageSize = pagination.pageSize;
|
|
158
|
+
// if (fn) {
|
|
159
|
+
// const changeFunc = new Function(
|
|
160
|
+
// 'pagination',
|
|
161
|
+
// 'filters',
|
|
162
|
+
// 'sorter',
|
|
163
|
+
// 'currentDataSource',
|
|
164
|
+
// fn
|
|
165
|
+
// );
|
|
166
|
+
// changeFunc.call(this, pagination, filters, sorter, currentDataSource);
|
|
167
|
+
// }
|
|
168
|
+
// },
|
|
169
|
+
// handleRowSelection(info) {
|
|
170
|
+
// if (!info.hasRowSelection) {
|
|
171
|
+
// return undefined;
|
|
172
|
+
// }
|
|
173
|
+
// return {
|
|
174
|
+
// ...omit(info, ['onChange']),
|
|
175
|
+
// onChange: (selectedRowKeys, selectedRows) => {
|
|
176
|
+
// const rcFunc = new Function('selectedRowKeys', 'selectedRows', info.onChange);
|
|
177
|
+
// rcFunc.call(this, selectedRowKeys, selectedRows);
|
|
178
|
+
// }
|
|
179
|
+
// };
|
|
180
|
+
// },
|
|
181
|
+
selectWidget(widget) {
|
|
182
|
+
this.designer.setSelected(widget);
|
|
183
|
+
}
|
|
184
|
+
// getTableColumns() {
|
|
185
|
+
// return this.widget.options.tableColumns;
|
|
186
|
+
// }
|
|
187
|
+
// setChildrenSelected(children, flag) {
|
|
188
|
+
// const childrenKey = this.widget.options.childrenKey;
|
|
189
|
+
// children.map(child => {
|
|
190
|
+
// this.toggleSelection(child, flag);
|
|
191
|
+
// if (child[childrenKey]) {
|
|
192
|
+
// this.setChildrenSelected(child[childrenKey], flag);
|
|
193
|
+
// }
|
|
194
|
+
// });
|
|
195
|
+
// },
|
|
196
|
+
// toggleSelection(row, flag) {
|
|
197
|
+
// if (row) {
|
|
198
|
+
// this.$nextTick(() => {
|
|
199
|
+
// this.$refs.dataTable.toggleRowSelection(row, flag);
|
|
200
|
+
// });
|
|
201
|
+
// }
|
|
202
|
+
// },
|
|
203
|
+
// handleRowSelect(selection, row) {
|
|
204
|
+
// const childrenKey = this.widget.options.childrenKey;
|
|
205
|
+
// if (
|
|
206
|
+
// selection.some(el => {
|
|
207
|
+
// return row.id === el.id;
|
|
208
|
+
// })
|
|
209
|
+
// ) {
|
|
210
|
+
// if (row[childrenKey]) {
|
|
211
|
+
// this.setChildrenSelected(row[childrenKey], true);
|
|
212
|
+
// }
|
|
213
|
+
// } else {
|
|
214
|
+
// if (row[childrenKey]) {
|
|
215
|
+
// this.setChildrenSelected(row[childrenKey], false);
|
|
216
|
+
// }
|
|
217
|
+
// }
|
|
218
|
+
// },
|
|
219
|
+
// setSelectedFlag(data, flag) {
|
|
220
|
+
// const childrenKey = this.widget.options.childrenKey;
|
|
221
|
+
// data.forEach(row => {
|
|
222
|
+
// this.$refs.dataTable.toggleRowSelection(row, flag);
|
|
223
|
+
// if (row[childrenKey]) {
|
|
224
|
+
// this.setSelectedFlag(row[childrenKey], flag);
|
|
225
|
+
// }
|
|
226
|
+
// });
|
|
227
|
+
// },
|
|
228
|
+
// handleAllSelect(selection) {
|
|
229
|
+
// this.selectAllFlag = !this.selectAllFlag;
|
|
230
|
+
// this.setSelectedFlag(this.widget.options.tableData, this.selectAllFlag);
|
|
231
|
+
// }
|
|
232
|
+
}
|
|
233
|
+
};
|
|
104
234
|
export {
|
|
105
|
-
|
|
235
|
+
_sfc_main as default
|
|
106
236
|
};
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
onChange: _ctx.handleTablePageChange,
|
|
40
|
+
customRow: _ctx.handleCustomRow,
|
|
41
|
+
onResizeColumn: _ctx.handleResizeColumn
|
|
42
|
+
}, {
|
|
43
|
+
emptyText: withCtx(() => [
|
|
44
|
+
createVNode(_component_a_empty)
|
|
45
|
+
]),
|
|
46
|
+
default: withCtx(() => [
|
|
47
|
+
$props.widget.options.showIndex ? (openBlock(), createBlock(_component_a_table_column, {
|
|
48
|
+
key: 0,
|
|
49
|
+
title: "序号",
|
|
50
|
+
align: "left",
|
|
51
|
+
width: 80,
|
|
52
|
+
fixed: "left",
|
|
53
|
+
customRender: _ctx.customRenderIndex
|
|
54
|
+
}, null, 8, ["customRender"])) : createCommentVNode("", true),
|
|
55
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList($props.widget.options.tableColumns, (item, index) => {
|
|
56
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
57
|
+
item.show !== false ? (openBlock(), createBlock(_component_a_table_column, mergeProps({ key: index }, _ctx.handleColumnItem(item), { showSorterTooltip: false }), null, 16)) : createCommentVNode("", true)
|
|
58
|
+
], 64);
|
|
59
|
+
}), 256)),
|
|
60
|
+
!!$props.widget.options.showButtonsColumn ? (openBlock(), createBlock(_component_a_table_column, {
|
|
61
|
+
key: 1,
|
|
62
|
+
fixed: "right",
|
|
63
|
+
align: "center",
|
|
64
|
+
title: $props.widget.options.buttonsColumnTitle,
|
|
65
|
+
width: $props.widget.options.buttonsColumnWidth
|
|
66
|
+
}, {
|
|
67
|
+
default: withCtx((scope) => [
|
|
68
|
+
createVNode(_component_a_space, null, {
|
|
69
|
+
default: withCtx(() => [
|
|
70
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList($props.widget.options.operationButtons, (ob, inx) => {
|
|
71
|
+
return withDirectives((openBlock(), createBlock(_component_a_button, {
|
|
72
|
+
key: inx,
|
|
73
|
+
type: ob.type,
|
|
74
|
+
size: ob.size,
|
|
75
|
+
shape: ob.shape,
|
|
76
|
+
disabled: _ctx.disableOperationButton(ob, scope.index, scope.record),
|
|
77
|
+
onClick: ($event) => _ctx.handleOperationButtonClick(ob.name, scope.index, scope.record, scope, ob),
|
|
78
|
+
class: normalizeClass(["data-table-" + ob.name + "-button"])
|
|
79
|
+
}, {
|
|
80
|
+
default: withCtx(() => [
|
|
81
|
+
createTextVNode(toDisplayString(_ctx.getOperationButtonLabel(ob, scope.index, scope.record)), 1)
|
|
82
|
+
]),
|
|
83
|
+
_: 2
|
|
84
|
+
}, 1032, ["type", "size", "shape", "disabled", "onClick", "class"])), [
|
|
85
|
+
[vShow, _ctx.showOperationButton(ob, scope.index, scope.record)]
|
|
86
|
+
]);
|
|
87
|
+
}), 128))
|
|
88
|
+
]),
|
|
89
|
+
_: 2
|
|
90
|
+
}, 1024)
|
|
91
|
+
]),
|
|
92
|
+
_: 1
|
|
93
|
+
}, 8, ["title", "width"])) : createCommentVNode("", true)
|
|
94
|
+
]),
|
|
95
|
+
_: 1
|
|
96
|
+
}, 8, ["dataSource", "rowKey", "scroll", "class", "size", "bordered", "style", "row-class-name", "rowSelection", "pagination", "onChange", "customRow", "onResizeColumn"])
|
|
97
|
+
], 2))
|
|
98
|
+
]),
|
|
99
|
+
_: 1
|
|
100
|
+
}, 8, ["designer", "widget", "parent-widget", "parent-list", "index-of-parent-list", "style"]);
|
|
101
|
+
}
|
|
102
|
+
const dataTableWidget = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-a667e0af"]]);
|
|
103
|
+
export {
|
|
104
|
+
dataTableWidget as default
|
|
105
|
+
};
|
|
@@ -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-
|
|
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
|
};
|