@kp-ui/lowcode-pc-v2 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/styles/style.css +66 -20
- package/core/src/components/common/render/RenderWidgetList.vue_vue_type_script_setup_true_lang.js +6 -4
- package/core/src/components/common/render/usePageContext.js +11 -8
- package/core/src/hooks/useAppRef.js +5 -3
- package/core/src/hooks/useField.js +0 -4
- package/core/src/hooks/useFieldRules.js +36 -9
- package/core/src/hooks/useRemoteData.js +4 -3
- package/core/src/hooks/useSelect.js +4 -13
- package/core/src/lang/en-US.js +22 -0
- package/core/src/lang/zh-CN.js +23 -1
- package/package.json +1 -1
- package/src/components/public/ConfigView/CustomPageRender.vue_vue_type_script_setup_true_lang.js +3 -4
- package/src/hooks/useTableWidget.js +48 -15
- package/src/render/index.js +1 -1
- package/src/render/index.vue_vue_type_script_setup_true_lang.js +4 -3
- package/src/schemas/defaults/field.js +1 -0
- package/src/widgets/advanced/code-editor/index.js +1 -1
- package/src/widgets/advanced/code-editor/index.vue_vue_type_script_setup_true_lang.js +9 -2
- package/src/widgets/advanced/data-table/index.js +1 -1
- package/src/widgets/advanced/data-table/index.vue_vue_type_script_setup_true_lang.js +10 -12
- package/src/widgets/advanced/data-table/schema.js +2 -1
- package/src/widgets/containers/dialog/index-render.js +3 -1
- package/src/widgets/containers/dialog/index-render.vue_vue_type_script_setup_true_lang.js +5 -4
- package/src/widgets/containers/dialog/schema.js +1 -0
- package/src/widgets/containers/flex/index-render.js +7 -0
- package/src/widgets/containers/flex/index-render.vue_vue_type_script_setup_true_lang.js +93 -0
- package/src/widgets/containers/flex/schema.js +35 -0
- package/src/widgets/containers/space/schema.js +1 -0
- package/src/widgets/render.js +7 -3
- package/src/widgets/widgetTypes.js +1 -0
- package/src/widgets/wrapper/form-item-wrapper.js +1 -1
- package/src/widgets/wrapper/form-item-wrapper.vue_vue_type_script_setup_true_lang.js +15 -10
- package/stats.html +1 -1
|
@@ -5,11 +5,26 @@ import { useRemoteData } from "../../core/src/hooks/useRemoteData.js";
|
|
|
5
5
|
import { useFactoryRender } from "../../core/src/hooks/useFactoryRender.js";
|
|
6
6
|
import { useTableColumnStore } from "../../core/src/store/useTableColumnStore.js";
|
|
7
7
|
import ActionButtonListRender_default from "../components/public/ActionButtonListRender.js";
|
|
8
|
-
import { computed, h, inject, isVNode, ref,
|
|
8
|
+
import { computed, h, inject, isVNode, ref, toRaw, watch } from "vue";
|
|
9
9
|
import { message } from "ant-design-vue";
|
|
10
10
|
import { CustomItemRender, TpfDelConfirm, tranformAntSizzVxetableSize, tranformAntTableColumnToVxetableColumn, useExecFunction } from "tmgc2-share";
|
|
11
11
|
import { cloneDeep, isArray, omit } from "lodash-es";
|
|
12
12
|
//#region src/hooks/useTableWidget.ts
|
|
13
|
+
var normalizePlainObject = (value) => {
|
|
14
|
+
const rawValue = toRaw(value);
|
|
15
|
+
if (isArray(rawValue)) return rawValue.map(normalizePlainObject);
|
|
16
|
+
if (!rawValue || typeof rawValue !== "object") return rawValue;
|
|
17
|
+
const prototype = Object.getPrototypeOf(rawValue);
|
|
18
|
+
if (prototype !== Object.prototype && prototype !== null) return rawValue;
|
|
19
|
+
return Object.keys(rawValue).reduce((result, key) => {
|
|
20
|
+
result[key] = normalizePlainObject(rawValue[key]);
|
|
21
|
+
return result;
|
|
22
|
+
}, {});
|
|
23
|
+
};
|
|
24
|
+
var normalizeTableData = (value) => {
|
|
25
|
+
if (!isArray(value)) return [];
|
|
26
|
+
return value.map(normalizePlainObject);
|
|
27
|
+
};
|
|
13
28
|
function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
14
29
|
const tableRef = ref();
|
|
15
30
|
const { i18nt } = useI18n();
|
|
@@ -25,6 +40,7 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
25
40
|
var _ref, _widget$props;
|
|
26
41
|
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;
|
|
27
42
|
});
|
|
43
|
+
const localData = ref(normalizeTableData(fieldModel.value));
|
|
28
44
|
const columnList = ref([]);
|
|
29
45
|
const initColumnList = () => {
|
|
30
46
|
const storageKey = widget.props.name || widget.id;
|
|
@@ -67,7 +83,7 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
67
83
|
const tableColumns = (optins === null || optins === void 0 ? void 0 : optins.tableColumns) || [];
|
|
68
84
|
const { rowSelection, showIndex } = optins !== null && optins !== void 0 ? optins : {};
|
|
69
85
|
if (rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.hasRowSelection) leftFixedColumns.push({
|
|
70
|
-
title: rowSelection.columnTitle,
|
|
86
|
+
title: rowSelection.columnTitle || "",
|
|
71
87
|
width: rowSelection.columnWidth,
|
|
72
88
|
align: "left",
|
|
73
89
|
fixed: "left",
|
|
@@ -164,12 +180,27 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
164
180
|
};
|
|
165
181
|
};
|
|
166
182
|
const tableSize = computed(() => widget.props.tableSize);
|
|
183
|
+
const tableHeight = computed(() => {
|
|
184
|
+
if (widget.props.heightMode === "auto") return "100%";
|
|
185
|
+
const height = transformPx(widget.props.height);
|
|
186
|
+
return height === "unset" ? "100%" : height;
|
|
187
|
+
});
|
|
188
|
+
const tableWrapperFlex = computed(() => widget.props.heightMode === "auto" ? "0 0 auto" : "1 1 auto");
|
|
167
189
|
const onSortChange = () => {
|
|
168
190
|
initTableSoureData();
|
|
169
191
|
};
|
|
170
192
|
const rowKey = computed(() => widget.props.rowKey);
|
|
193
|
+
const tableData = computed(() => localData.value);
|
|
194
|
+
const syncTableValue = (value) => {
|
|
195
|
+
var _tableRef$value;
|
|
196
|
+
const tableValue = normalizeTableData(value);
|
|
197
|
+
localData.value = tableValue;
|
|
198
|
+
fieldModel.value = tableValue;
|
|
199
|
+
(_tableRef$value = tableRef.value) === null || _tableRef$value === void 0 || _tableRef$value.loadData(tableValue);
|
|
200
|
+
};
|
|
171
201
|
const tableProps = computed(() => {
|
|
172
|
-
|
|
202
|
+
var _widget$props$rowSele;
|
|
203
|
+
const { border = false, lineHeight = 50, colorRow = false, showPagination = true, treeConfig } = widget.props;
|
|
173
204
|
let _treeConfig = {};
|
|
174
205
|
if (treeConfig === null || treeConfig === void 0 ? void 0 : treeConfig.enabled) _treeConfig = {
|
|
175
206
|
transform: treeConfig.transform,
|
|
@@ -180,11 +211,11 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
180
211
|
id: widget.id,
|
|
181
212
|
showPagination,
|
|
182
213
|
size: tranformAntSizzVxetableSize(tableSize.value),
|
|
183
|
-
height: transformPx(height),
|
|
184
214
|
border: border !== null && border !== void 0 ? border : false,
|
|
185
|
-
data:
|
|
215
|
+
data: tableData.value,
|
|
186
216
|
columns: columns.value,
|
|
187
217
|
treeConfig: _treeConfig,
|
|
218
|
+
minHeight: "200px",
|
|
188
219
|
rowConfig: {
|
|
189
220
|
keyField: rowKey.value,
|
|
190
221
|
isCurrent: colorRow,
|
|
@@ -192,11 +223,12 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
192
223
|
},
|
|
193
224
|
customConfig: { storage: !designState },
|
|
194
225
|
checkboxConfig: {
|
|
226
|
+
reserve: (_widget$props$rowSele = widget.props.rowSelection) === null || _widget$props$rowSele === void 0 ? void 0 : _widget$props$rowSele.preserveSelectedRowKeys,
|
|
195
227
|
isShiftKey: (treeConfig === null || treeConfig === void 0 ? void 0 : treeConfig.enabled) ? true : false,
|
|
196
228
|
checkMethod: (_data) => {
|
|
197
|
-
var _widget$props$
|
|
229
|
+
var _widget$props$rowSele2;
|
|
198
230
|
return executeFunction({
|
|
199
|
-
functionBody: (_widget$props$
|
|
231
|
+
functionBody: (_widget$props$rowSele2 = widget.props.rowSelection) === null || _widget$props$rowSele2 === void 0 ? void 0 : _widget$props$rowSele2.checkMethod,
|
|
200
232
|
params: _data,
|
|
201
233
|
keys: ["row"]
|
|
202
234
|
});
|
|
@@ -211,9 +243,9 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
211
243
|
const initTableSoureData = async () => {
|
|
212
244
|
await loadData();
|
|
213
245
|
};
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
});
|
|
246
|
+
watch(() => data.value, (value) => {
|
|
247
|
+
syncTableValue(value);
|
|
248
|
+
}, { immediate: true });
|
|
217
249
|
const onRunEvent = ({ row, $event }, type) => {
|
|
218
250
|
executeFunction({
|
|
219
251
|
functionBody: widget.events[type] || "",
|
|
@@ -249,15 +281,14 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
249
281
|
});
|
|
250
282
|
};
|
|
251
283
|
const getDataSource = () => {
|
|
252
|
-
return
|
|
284
|
+
return localData.value;
|
|
253
285
|
};
|
|
254
286
|
const insertTableValue = (data) => {
|
|
255
|
-
|
|
256
|
-
fieldModel.value.push(cloneDeep(data));
|
|
287
|
+
setValue([...localData.value, normalizePlainObject(cloneDeep(data))]);
|
|
257
288
|
};
|
|
258
289
|
const setValue = (data) => {
|
|
259
290
|
if (!isArray(data)) return console.error("表格数据类型错误");
|
|
260
|
-
|
|
291
|
+
syncTableValue(cloneDeep(data));
|
|
261
292
|
};
|
|
262
293
|
const getTableColumns = () => {
|
|
263
294
|
return widget.props.tableColumns;
|
|
@@ -269,7 +300,7 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
269
300
|
if (!delKeys.length) return;
|
|
270
301
|
try {
|
|
271
302
|
await TpfDelConfirm({ content: i18nt("确定删除选中的数据吗") });
|
|
272
|
-
setValue(
|
|
303
|
+
setValue(localData.value.filter((item) => !(delKeys === null || delKeys === void 0 ? void 0 : delKeys.includes(item[rowKey.value]))));
|
|
273
304
|
message.success(i18nt("操作成功"));
|
|
274
305
|
} catch (_unused) {}
|
|
275
306
|
};
|
|
@@ -300,6 +331,8 @@ function useTableWidget({ widget, fieldModel, designState = false }) {
|
|
|
300
331
|
initTableSoureData,
|
|
301
332
|
setTableRef,
|
|
302
333
|
tableSize,
|
|
334
|
+
tableHeight,
|
|
335
|
+
tableWrapperFlex,
|
|
303
336
|
tableProps,
|
|
304
337
|
tableRef,
|
|
305
338
|
columns,
|
package/src/render/index.js
CHANGED
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export
|
|
|
2
2
|
import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
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-
|
|
5
|
+
var render_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-464184f3"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { render_default as default };
|
|
@@ -3,7 +3,7 @@ import LowcodeRenderProvider_default from "../../core/src/components/common/rend
|
|
|
3
3
|
import { usePageContext } from "../../core/src/components/common/render/usePageContext.js";
|
|
4
4
|
import RenderWidgetList_default from "../../core/src/components/common/render/RenderWidgetList.js";
|
|
5
5
|
import { getRenderWidget } from "../widgets/render.js";
|
|
6
|
-
import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, isRef, onMounted, openBlock, ref, unref, watchEffect, withCtx } from "vue";
|
|
6
|
+
import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, isRef, normalizeClass, onMounted, openBlock, ref, unref, useCssVars, watchEffect, withCtx } from "vue";
|
|
7
7
|
import { Skeleton } from "ant-design-vue";
|
|
8
8
|
import { getLocat } from "@kp-ui/tool";
|
|
9
9
|
//#region src/render/index.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -28,6 +28,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
28
28
|
parentForm: { default: null }
|
|
29
29
|
},
|
|
30
30
|
setup(__props, { expose: __expose }) {
|
|
31
|
+
useCssVars((_ctx) => ({ "4a7fb80b": unref(formConfig).backgroundColor }));
|
|
31
32
|
const debug = computed(() => getLocat().debug === "1");
|
|
32
33
|
const debugVisible = ref(false);
|
|
33
34
|
const props = __props;
|
|
@@ -46,7 +47,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
46
47
|
formJson: props.formJson
|
|
47
48
|
});
|
|
48
49
|
return (_ctx, _cache) => {
|
|
49
|
-
return openBlock(),
|
|
50
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(["layout-render-wrapper", unref(formConfig).customClass]) }, [createVNode(unref(LowcodeRenderProvider_default), {
|
|
50
51
|
getWidget: unref(getRenderWidget),
|
|
51
52
|
context: unref(formContext)
|
|
52
53
|
}, {
|
|
@@ -64,7 +65,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
64
65
|
}, null, 8, ["visible"])) : createCommentVNode("", true)
|
|
65
66
|
]),
|
|
66
67
|
_: 1
|
|
67
|
-
}, 8, ["getWidget", "context"]);
|
|
68
|
+
}, 8, ["getWidget", "context"])], 2);
|
|
68
69
|
};
|
|
69
70
|
}
|
|
70
71
|
});
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_
|
|
|
2
2
|
import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
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-
|
|
5
|
+
var code_editor_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8c04a069"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { code_editor_default as default };
|
|
@@ -10,8 +10,15 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
10
10
|
__name: "index",
|
|
11
11
|
props: { widget: {} },
|
|
12
12
|
setup(__props, { expose: __expose }) {
|
|
13
|
-
const { rules, designState, fieldModel, isReadMode, handleHidden, defineExposed } = useField(__props.widget);
|
|
14
|
-
|
|
13
|
+
const { rules, designState, fieldModel, isReadMode, handleHidden, defineExposed, getFieldEditor } = useField(__props.widget);
|
|
14
|
+
const setValue = (newValue) => {
|
|
15
|
+
var _getFieldEditor;
|
|
16
|
+
(_getFieldEditor = getFieldEditor()) === null || _getFieldEditor === void 0 || _getFieldEditor.setValue(newValue);
|
|
17
|
+
};
|
|
18
|
+
__expose({
|
|
19
|
+
...defineExposed,
|
|
20
|
+
setValue
|
|
21
|
+
});
|
|
15
22
|
return (_ctx, _cache) => {
|
|
16
23
|
return !unref(handleHidden) ? (openBlock(), createBlock(form_item_wrapper_default, {
|
|
17
24
|
key: 0,
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_
|
|
|
2
2
|
import index_vue_vue_type_script_setup_true_lang_default from "./index.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
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-
|
|
5
|
+
var data_table_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-19607d37"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { data_table_default as default };
|
|
@@ -3,7 +3,7 @@ import { useField } from "../../../../core/src/hooks/useField.js";
|
|
|
3
3
|
import { WidgetType, getWidgetName } from "../../widgetTypes.js";
|
|
4
4
|
import { useTableWidget } from "../../../hooks/useTableWidget.js";
|
|
5
5
|
import DataTableColumnDialog_default from "../../../components/public/DataTableColumnDialog.js";
|
|
6
|
-
import { createCommentVNode, createElementBlock, createVNode, defineComponent, onMounted, openBlock, ref, unref, watchEffect } from "vue";
|
|
6
|
+
import { createCommentVNode, createElementBlock, createVNode, defineComponent, onMounted, openBlock, ref, unref, useCssVars, watchEffect } from "vue";
|
|
7
7
|
import { SvgIcon, Table, useVxeTable } from "tmgc2-share";
|
|
8
8
|
//#region src/widgets/advanced/data-table/index.vue?vue&type=script&setup=true&lang.ts
|
|
9
9
|
var _hoisted_1 = {
|
|
@@ -20,10 +20,14 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
20
20
|
__name: "index",
|
|
21
21
|
props: { widget: {} },
|
|
22
22
|
setup(__props, { expose: __expose }) {
|
|
23
|
-
var _widget$props$rowSele;
|
|
23
|
+
var _widget$props$rowSele, _widget$props$rowSele2;
|
|
24
|
+
useCssVars((_ctx) => ({
|
|
25
|
+
"0622be28": unref(tableHeight),
|
|
26
|
+
"3bd67a87": unref(tableWrapperFlex)
|
|
27
|
+
}));
|
|
24
28
|
const { widget } = __props;
|
|
25
29
|
const { fieldModel, handleHidden, defineExposed } = useField(widget);
|
|
26
|
-
const { loading, tableProps, pagination, showColumnManager, setPagination, setTableRef, initTableSoureData, handleTableChange, onRunEvent, onSortChange, onCheckboxChange, tableDefinExpoed, columnList, initColumnList, handleUpdateColumns } = useTableWidget({
|
|
30
|
+
const { loading, tableProps, pagination, showColumnManager, tableHeight, tableWrapperFlex, setPagination, setTableRef, initTableSoureData, handleTableChange, onRunEvent, onSortChange, onCheckboxChange, tableDefinExpoed, columnList, initColumnList, handleUpdateColumns } = useTableWidget({
|
|
27
31
|
widget,
|
|
28
32
|
fieldModel,
|
|
29
33
|
designState: false
|
|
@@ -35,10 +39,11 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
35
39
|
columnDialogVisible.value = true;
|
|
36
40
|
};
|
|
37
41
|
const columnDialogVisible = ref(false);
|
|
38
|
-
const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow } = useVxeTable({
|
|
42
|
+
const { tableRef, register, selectedRowInfo, sorts, selectRow, delSelectRow, getSelectedRows } = useVxeTable({
|
|
39
43
|
props: {
|
|
40
44
|
rowKey: widget.props.rowKey,
|
|
41
45
|
hasRowSelection: (_widget$props$rowSele = widget.props.rowSelection) === null || _widget$props$rowSele === void 0 ? void 0 : _widget$props$rowSele.hasRowSelection,
|
|
46
|
+
preserveSelectedRowKeys: (_widget$props$rowSele2 = widget.props.rowSelection) === null || _widget$props$rowSele2 === void 0 ? void 0 : _widget$props$rowSele2.preserveSelectedRowKeys,
|
|
42
47
|
clickRowCheck: widget.props.colorRow
|
|
43
48
|
},
|
|
44
49
|
events: {
|
|
@@ -53,14 +58,7 @@ var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineCo
|
|
|
53
58
|
cellClick: (params) => onRunEvent(params, "onCellClick")
|
|
54
59
|
}
|
|
55
60
|
});
|
|
56
|
-
const getSelectedRowKeys = () =>
|
|
57
|
-
var _tableRef$value;
|
|
58
|
-
return (((_tableRef$value = tableRef.value) === null || _tableRef$value === void 0 ? void 0 : _tableRef$value.getCheckboxRecords()) || []).map((item) => item[widget.props.rowKey]);
|
|
59
|
-
};
|
|
60
|
-
const getSelectedRows = () => {
|
|
61
|
-
var _tableRef$value2;
|
|
62
|
-
return (_tableRef$value2 = tableRef.value) === null || _tableRef$value2 === void 0 ? void 0 : _tableRef$value2.getCheckboxRecords(true);
|
|
63
|
-
};
|
|
61
|
+
const getSelectedRowKeys = () => selectedRowInfo.value.selectedRowKeys;
|
|
64
62
|
/**
|
|
65
63
|
* 获取字段编辑器
|
|
66
64
|
* @returns 字段编辑器
|
|
@@ -57,6 +57,7 @@ var DataTable = {
|
|
|
57
57
|
labelHidden: false,
|
|
58
58
|
hidden: false,
|
|
59
59
|
lineHeight: 38,
|
|
60
|
+
heightMode: "fixed",
|
|
60
61
|
height: 300,
|
|
61
62
|
customClass: [],
|
|
62
63
|
showIndex: false,
|
|
@@ -92,7 +93,7 @@ var DataTable = {
|
|
|
92
93
|
showColumnManager: false,
|
|
93
94
|
colorRow: true,
|
|
94
95
|
rowSelection: {
|
|
95
|
-
columnTitle: "
|
|
96
|
+
columnTitle: "",
|
|
96
97
|
hasRowSelection: false,
|
|
97
98
|
preserveSelectedRowKeys: false,
|
|
98
99
|
fixed: true,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
1
2
|
import index_render_vue_vue_type_script_setup_true_lang_default from "./index-render.vue_vue_type_script_setup_true_lang.js";
|
|
3
|
+
/* empty css */
|
|
2
4
|
//#region src/widgets/containers/dialog/index-render.vue
|
|
3
|
-
var index_render_default = index_render_vue_vue_type_script_setup_true_lang_default;
|
|
5
|
+
var index_render_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_render_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-17ae4bcb"]]);
|
|
4
6
|
//#endregion
|
|
5
7
|
export { index_render_default as default };
|
|
@@ -4,11 +4,10 @@ import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum
|
|
|
4
4
|
import { useField } from "../../../../core/src/hooks/useField.js";
|
|
5
5
|
import { WidgetType, getWidgetName } from "../../widgetTypes.js";
|
|
6
6
|
import ActionButtonListRender_default from "../../../components/public/ActionButtonListRender.js";
|
|
7
|
-
import { createBlock,
|
|
7
|
+
import { createBlock, createVNode, defineComponent, openBlock, ref, unref, withCtx } from "vue";
|
|
8
8
|
import { TpfModal } from "tmgc2-share";
|
|
9
9
|
import { useI18n } from "@kp-ui/i18n";
|
|
10
10
|
//#region src/widgets/containers/dialog/index-render.vue?vue&type=script&setup=true&lang.ts
|
|
11
|
-
var _hoisted_1 = { class: "dialog-content" };
|
|
12
11
|
var index_render_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
13
12
|
inheritAttrs: false,
|
|
14
13
|
name: getWidgetName(WidgetType.Dialog),
|
|
@@ -58,6 +57,7 @@ var index_render_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
58
57
|
"close-on-click-modal": false,
|
|
59
58
|
"close-on-press-escape": true,
|
|
60
59
|
width: unref(transformPx)(_ctx.widget.props.width) || "600px",
|
|
60
|
+
height: unref(transformPx)(_ctx.widget.props.height) || "440px",
|
|
61
61
|
mask: true,
|
|
62
62
|
onCancel: close,
|
|
63
63
|
"left-num": leftNum.value
|
|
@@ -72,16 +72,17 @@ var index_render_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
72
72
|
"ctx",
|
|
73
73
|
"disabled"
|
|
74
74
|
])]),
|
|
75
|
-
default: withCtx(() => [
|
|
75
|
+
default: withCtx(() => [createVNode(unref(RenderWidgetList_default), {
|
|
76
76
|
parentWidget: _ctx.widget,
|
|
77
77
|
list: _ctx.widget.children,
|
|
78
78
|
"onUpdate:list": _cache[0] || (_cache[0] = ($event) => _ctx.widget.children = $event)
|
|
79
|
-
}, null, 8, ["parentWidget", "list"])])
|
|
79
|
+
}, null, 8, ["parentWidget", "list"])]),
|
|
80
80
|
_: 1
|
|
81
81
|
}, 8, [
|
|
82
82
|
"title",
|
|
83
83
|
"visible",
|
|
84
84
|
"width",
|
|
85
|
+
"height",
|
|
85
86
|
"left-num"
|
|
86
87
|
]);
|
|
87
88
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.js";
|
|
2
|
+
import index_render_vue_vue_type_script_setup_true_lang_default from "./index-render.vue_vue_type_script_setup_true_lang.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
//#region src/widgets/containers/flex/index-render.vue
|
|
5
|
+
var index_render_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_render_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4ac728a4"]]);
|
|
6
|
+
//#endregion
|
|
7
|
+
export { index_render_default as default };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import RenderWidgetList_default from "../../../../core/src/components/common/render/RenderWidgetList.js";
|
|
2
|
+
import { ComponentNameEnum } from "../../../../core/src/constants/WidgetTypeEnum.js";
|
|
3
|
+
import { useField } from "../../../../core/src/hooks/useField.js";
|
|
4
|
+
import { WidgetType, getWidgetName } from "../../widgetTypes.js";
|
|
5
|
+
import { computed, createCommentVNode, createElementBlock, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, unref } from "vue";
|
|
6
|
+
//#region src/widgets/containers/flex/index-render.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
+
var index_render_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
8
|
+
inheritAttrs: false,
|
|
9
|
+
name: getWidgetName(WidgetType.Flex),
|
|
10
|
+
componentName: ComponentNameEnum.ContainerWidget,
|
|
11
|
+
__name: "index-render",
|
|
12
|
+
props: { widget: {} },
|
|
13
|
+
setup(__props, { expose: __expose }) {
|
|
14
|
+
const { handleHidden, defineExposed } = useField(__props.widget);
|
|
15
|
+
const flexHeight = computed(() => {
|
|
16
|
+
if (__props.widget.props.heightMode === "fixed") {
|
|
17
|
+
var _props$widget$props$f;
|
|
18
|
+
return `${(_props$widget$props$f = __props.widget.props.flexHeight) !== null && _props$widget$props$f !== void 0 ? _props$widget$props$f : 42}px`;
|
|
19
|
+
}
|
|
20
|
+
return "100%";
|
|
21
|
+
});
|
|
22
|
+
const getFlexItemStyle = (childWidget) => {
|
|
23
|
+
var _props$widget$props$f2, _ref, _config$mode;
|
|
24
|
+
const config = childWidget.id ? (_props$widget$props$f2 = __props.widget.props.flexItemWidths) === null || _props$widget$props$f2 === void 0 ? void 0 : _props$widget$props$f2[childWidget.id] : void 0;
|
|
25
|
+
const mode = (_ref = (_config$mode = config === null || config === void 0 ? void 0 : config.mode) !== null && _config$mode !== void 0 ? _config$mode : __props.widget.props.flexItemWidthMode) !== null && _ref !== void 0 ? _ref : "auto";
|
|
26
|
+
const size = (config === null || config === void 0 ? void 0 : config.width) || __props.widget.props.flexItemWidth || "240px";
|
|
27
|
+
const isColumn = __props.widget.props.flexDirection.includes("column");
|
|
28
|
+
if (isColumn) {
|
|
29
|
+
if (mode === "full") return {
|
|
30
|
+
width: "100%",
|
|
31
|
+
minHeight: 0,
|
|
32
|
+
flex: "1"
|
|
33
|
+
};
|
|
34
|
+
if (mode === "fixed") return {
|
|
35
|
+
width: "100%",
|
|
36
|
+
height: size,
|
|
37
|
+
flex: `0 0 ${size}`
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
width: "100%",
|
|
41
|
+
flex: "0 1 auto"
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (mode === "full") {
|
|
45
|
+
if (!__props.widget.props.wrap) return {
|
|
46
|
+
width: 0,
|
|
47
|
+
minWidth: 0,
|
|
48
|
+
flex: "1 1 0"
|
|
49
|
+
};
|
|
50
|
+
return {
|
|
51
|
+
width: "100%",
|
|
52
|
+
flex: "0 0 100%"
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (mode === "fixed") return {
|
|
56
|
+
width: size,
|
|
57
|
+
flex: `0 0 ${size}`
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
width: isColumn ? "100%" : "auto",
|
|
61
|
+
flex: "0 1 auto"
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
const flexStyle = computed(() => {
|
|
65
|
+
var _props$widget$props$g;
|
|
66
|
+
return {
|
|
67
|
+
...__props.widget.style,
|
|
68
|
+
height: flexHeight.value,
|
|
69
|
+
display: "flex",
|
|
70
|
+
flexDirection: __props.widget.props.flexDirection,
|
|
71
|
+
justifyContent: __props.widget.props.justifyContent,
|
|
72
|
+
alignItems: __props.widget.props.alignItems,
|
|
73
|
+
flexWrap: __props.widget.props.wrap ? "wrap" : "nowrap",
|
|
74
|
+
gap: `${(_props$widget$props$g = __props.widget.props.gap) !== null && _props$widget$props$g !== void 0 ? _props$widget$props$g : 0}px`
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
__expose({ ...defineExposed });
|
|
78
|
+
return (_ctx, _cache) => {
|
|
79
|
+
return !unref(handleHidden) ? (openBlock(), createElementBlock("div", {
|
|
80
|
+
class: normalizeClass(["flex-container", _ctx.widget.props.customClass]),
|
|
81
|
+
style: normalizeStyle(flexStyle.value),
|
|
82
|
+
key: _ctx.widget.id
|
|
83
|
+
}, [createVNode(unref(RenderWidgetList_default), {
|
|
84
|
+
list: _ctx.widget.children,
|
|
85
|
+
"onUpdate:list": _cache[0] || (_cache[0] = ($event) => _ctx.widget.children = $event),
|
|
86
|
+
parentWidget: _ctx.widget,
|
|
87
|
+
itemStyle: getFlexItemStyle
|
|
88
|
+
}, null, 8, ["list", "parentWidget"])], 6)) : createCommentVNode("", true);
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
//#endregion
|
|
93
|
+
export { index_render_vue_vue_type_script_setup_true_lang_default as default };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { WidgetType } from "../../widgetTypes.js";
|
|
2
|
+
//#region src/widgets/containers/flex/schema.ts
|
|
3
|
+
var Flex = {
|
|
4
|
+
id: "",
|
|
5
|
+
type: WidgetType.Flex,
|
|
6
|
+
category: "container",
|
|
7
|
+
style: {
|
|
8
|
+
width: "100%",
|
|
9
|
+
minHeight: "42px"
|
|
10
|
+
},
|
|
11
|
+
events: {
|
|
12
|
+
onMounted: "",
|
|
13
|
+
onHidden: "//return false"
|
|
14
|
+
},
|
|
15
|
+
children: [],
|
|
16
|
+
props: {
|
|
17
|
+
name: "",
|
|
18
|
+
label: "flex",
|
|
19
|
+
hidden: false,
|
|
20
|
+
customClass: [],
|
|
21
|
+
heightMode: "inherit",
|
|
22
|
+
flexHeight: 42,
|
|
23
|
+
flexDirection: "row",
|
|
24
|
+
justifyContent: "flex-start",
|
|
25
|
+
alignItems: "stretch",
|
|
26
|
+
gap: 8,
|
|
27
|
+
wrap: true,
|
|
28
|
+
flexItemWidthMode: "auto",
|
|
29
|
+
flexItemWidth: "240px",
|
|
30
|
+
flexItemWidths: {},
|
|
31
|
+
componentSort: true
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
export { Flex };
|
package/src/widgets/render.js
CHANGED
|
@@ -62,6 +62,7 @@ import { Collapse } from "./containers/collapse/schema.js";
|
|
|
62
62
|
import { Dialog } from "./containers/dialog/schema.js";
|
|
63
63
|
import { Form } from "./containers/form/schema.js";
|
|
64
64
|
import { Space } from "./containers/space/schema.js";
|
|
65
|
+
import { Flex } from "./containers/flex/schema.js";
|
|
65
66
|
import { List } from "./containers/list/schema.js";
|
|
66
67
|
import { SecondaryPage } from "./template/SecondaryPage/schema.js";
|
|
67
68
|
import index_render_default from "./containers/grid-col/index-render.js";
|
|
@@ -73,8 +74,9 @@ import index_render_default$5 from "./containers/collapse/index-render.js";
|
|
|
73
74
|
import index_render_default$6 from "./containers/dialog/index-render.js";
|
|
74
75
|
import index_render_default$7 from "./containers/form/index-render.js";
|
|
75
76
|
import index_render_default$8 from "./containers/space/index-render.js";
|
|
76
|
-
import index_render_default$9 from "./containers/
|
|
77
|
-
import index_render_default$10 from "./
|
|
77
|
+
import index_render_default$9 from "./containers/flex/index-render.js";
|
|
78
|
+
import index_render_default$10 from "./containers/list/index-render.js";
|
|
79
|
+
import index_render_default$11 from "./template/SecondaryPage/index-render.js";
|
|
78
80
|
//#region src/widgets/render.ts
|
|
79
81
|
var renderSchemas = [
|
|
80
82
|
Input,
|
|
@@ -113,6 +115,7 @@ var renderSchemas = [
|
|
|
113
115
|
Dialog,
|
|
114
116
|
Form,
|
|
115
117
|
Space,
|
|
118
|
+
Flex,
|
|
116
119
|
List,
|
|
117
120
|
SecondaryPage
|
|
118
121
|
];
|
|
@@ -154,7 +157,8 @@ var renderComponents = [
|
|
|
154
157
|
index_render_default$7,
|
|
155
158
|
index_render_default$8,
|
|
156
159
|
index_render_default$9,
|
|
157
|
-
index_render_default$10
|
|
160
|
+
index_render_default$10,
|
|
161
|
+
index_render_default$11
|
|
158
162
|
];
|
|
159
163
|
new Map(renderSchemas.map((schema) => [schema.type, schema]));
|
|
160
164
|
var renderRegistryComponents = new Map(renderComponents.map((component) => [component.name, component]));
|
|
@@ -40,6 +40,7 @@ var WidgetType = /* @__PURE__ */ function(WidgetType) {
|
|
|
40
40
|
WidgetType["Dialog"] = "dialog";
|
|
41
41
|
WidgetType["GridSubForm"] = "grid-sub-form";
|
|
42
42
|
WidgetType["Space"] = "space";
|
|
43
|
+
WidgetType["Flex"] = "flex";
|
|
43
44
|
WidgetType["List"] = "list";
|
|
44
45
|
WidgetType["SecondaryPage"] = "secondary-page";
|
|
45
46
|
return WidgetType;
|
|
@@ -2,6 +2,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
|
|
|
2
2
|
import form_item_wrapper_vue_vue_type_script_setup_true_lang_default from "./form-item-wrapper.vue_vue_type_script_setup_true_lang.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
//#region src/widgets/wrapper/form-item-wrapper.vue
|
|
5
|
-
var form_item_wrapper_default = /* @__PURE__ */ _plugin_vue_export_helper_default(form_item_wrapper_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
5
|
+
var form_item_wrapper_default = /* @__PURE__ */ _plugin_vue_export_helper_default(form_item_wrapper_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-254940bd"]]);
|
|
6
6
|
//#endregion
|
|
7
7
|
export { form_item_wrapper_default as default };
|
|
@@ -4,16 +4,12 @@ import { FormItem } from "ant-design-vue";
|
|
|
4
4
|
import { SvgIcon } from "tmgc2-share";
|
|
5
5
|
//#region src/widgets/wrapper/form-item-wrapper.vue?vue&type=script&setup=true&lang.ts
|
|
6
6
|
var _hoisted_1 = {
|
|
7
|
-
key: 0,
|
|
8
|
-
class: "label-box"
|
|
9
|
-
};
|
|
10
|
-
var _hoisted_2 = {
|
|
11
7
|
key: 0,
|
|
12
8
|
class: "custom-label"
|
|
13
9
|
};
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
10
|
+
var _hoisted_2 = ["title"];
|
|
11
|
+
var _hoisted_3 = ["title"];
|
|
12
|
+
var _hoisted_4 = {
|
|
17
13
|
key: 1,
|
|
18
14
|
class: "label-text"
|
|
19
15
|
};
|
|
@@ -68,13 +64,22 @@ var form_item_wrapper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
|
|
|
68
64
|
name: unref(getPropName),
|
|
69
65
|
labelAlign: labelAlign.value
|
|
70
66
|
}, {
|
|
71
|
-
label: withCtx(() => [!labelHidden.value ? (openBlock(), createElementBlock("div",
|
|
67
|
+
label: withCtx(() => [!labelHidden.value ? (openBlock(), createElementBlock("div", {
|
|
68
|
+
key: 0,
|
|
69
|
+
class: normalizeClass(["label-box", `label-box--${labelAlign.value}`])
|
|
70
|
+
}, [labelIconClass.value ? (openBlock(), createElementBlock("span", _hoisted_1, [labelIconPosition.value === "front" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(_component_a_tooltip, { title: labelIconTooltip.value }, {
|
|
72
71
|
default: withCtx(() => [createVNode(unref(SvgIcon), { "icon-class": labelIconClass.value }, null, 8, ["icon-class"])]),
|
|
73
72
|
_: 1
|
|
74
|
-
}, 8, ["title"]), createElementVNode("span",
|
|
73
|
+
}, 8, ["title"]), createElementVNode("span", {
|
|
74
|
+
class: "label-text",
|
|
75
|
+
title: unref(label)
|
|
76
|
+
}, toDisplayString(unref(label)), 9, _hoisted_2)], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createElementVNode("span", {
|
|
77
|
+
class: "label-text",
|
|
78
|
+
title: unref(label)
|
|
79
|
+
}, toDisplayString(unref(label)), 9, _hoisted_3), createVNode(_component_a_tooltip, { title: labelIconTooltip.value }, {
|
|
75
80
|
default: withCtx(() => [createVNode(unref(SvgIcon), { "icon-class": labelIconClass.value }, null, 8, ["icon-class"])]),
|
|
76
81
|
_: 1
|
|
77
|
-
}, 8, ["title"])], 64))])) : (openBlock(), createElementBlock("span",
|
|
82
|
+
}, 8, ["title"])], 64))])) : (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(unref(label)), 1))], 2)) : createCommentVNode("", true)]),
|
|
78
83
|
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
|
|
79
84
|
_: 3
|
|
80
85
|
}, 8, [
|