@gct-paas/core-web 0.1.6-dev.23 → 0.1.6-dev.25

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 (102) hide show
  1. package/dist/{JsBarcode-BcYwPLaJ.js → JsBarcode-RmziLqPn.js} +2 -2
  2. package/dist/{chunk-i4sMqdmB.js → chunk-BV1b7Gcg.js} +1 -1
  3. package/dist/components-BS1B8OGh.js +2 -0
  4. package/dist/{cropper-B1N4v_Lo.js → cropper-YtgylQpM.js} +2 -2
  5. package/dist/{de_DE-X3v4qWyO.js → de_DE-B7VghOWp.js} +2 -2
  6. package/dist/{defineProperty-D-SofZ5z.js → defineProperty-BoHwIjK9.js} +1 -1
  7. package/dist/{diagram-config-item-chRjBrq6.js → diagram-config-item-Delw8qP1.js} +2 -2
  8. package/dist/{diagram-config-item-reverse-aDl4YTmR.js → diagram-config-item-reverse-BknT5-61.js} +2 -2
  9. package/dist/{diagram-config-item-virtual-DodV9A3N.js → diagram-config-item-virtual-NbwruTtF.js} +2 -2
  10. package/dist/{en_US-cYv54T-A.js → en_US-CTia-4oe.js} +2 -2
  11. package/dist/{es_ES-BWrehacQ.js → es_ES-BRhAvB-X.js} +2 -2
  12. package/dist/{fr_FR-Ymdgzl3C.js → fr_FR-dksEfN4c.js} +2 -2
  13. package/dist/{hooks-nPOmaLM5.js → hooks-B2qoSQu2.js} +2 -2
  14. package/dist/{icon-next-picker-X8JzJRiF.js → icon-next-picker-BOAWtvQN.js} +1 -1
  15. package/dist/index.min.css +1 -1
  16. package/dist/{ja_JP-B7rNAGHX.js → ja_JP-CRxTtjjH.js} +2 -2
  17. package/dist/loader.esm.min.js +2 -2
  18. package/dist/{monaco-editor-DOaxVn23.js → monaco-editor-AHJDDUGF.js} +2 -2
  19. package/dist/{objectSpread2-c0qISuen.js → objectSpread2-DhfQflfg.js} +1 -1
  20. package/dist/{overlayscrollbars-vue-BpwoQB2w.js → overlayscrollbars-vue-9qLymEKl.js} +1 -1
  21. package/dist/{pt_PT-CAKZwnOZ.js → pt_PT-BvN4P8ca.js} +2 -2
  22. package/dist/{relationship-diagram-config-4qlfoX5u.js → relationship-diagram-config-B-mpm0HT.js} +2 -2
  23. package/dist/{rich-editor-DqTftmhT.js → rich-editor-dsA1-WIy.js} +2 -2
  24. package/dist/{ru_RU-o0qzOP4R.js → ru_RU-BSXEG73J.js} +2 -2
  25. package/dist/{template-B9C2bxQk.js → template-UW8tPQsj.js} +2 -2
  26. package/dist/{tr_TR-DbXghLCn.js → tr_TR-DECvjWe_.js} +2 -2
  27. package/dist/{useMonacoEditor-5gmpz_zn.js → useMonacoEditor-DsbpzDxc.js} +2 -2
  28. package/dist/{utils-DY7iv5U9.js → utils-C7b14k36.js} +2 -2
  29. package/dist/{vi_VN-BemwJ2l1.js → vi_VN-C3PnQkUI.js} +2 -2
  30. package/dist/{zh_CN-8TBRB49T.js → zh_CN-BYB6ENS9.js} +2 -2
  31. package/dist/{zh_TW-BbvJMCfB.js → zh_TW-UQnQ2lJz.js} +2 -2
  32. package/es/components/I18nSelect/src/i18n-select-btn.vue.mjs +2 -2
  33. package/es/components/I18nSelect/src/i18n-select-btn.vue_vue_type_script_setup_true_name_i18n-select-btn_lang.mjs +4 -4
  34. package/es/components/I18nSelect/src/{i18n-select-btn.vue_vue_type_style_index_0_scoped_ab917ea8_lang.css → i18n-select-btn.vue_vue_type_style_index_0_scoped_efd9b5f6_lang.css} +14 -14
  35. package/es/components/index.d.ts +0 -1
  36. package/es/components/index.mjs +0 -1
  37. package/es/components/label-design/panels/widget/panel-widget.vue_vue_type_style_index_0_lang.css +5 -5
  38. package/es/components/modal-name-editor/modal-name-editor.d.ts +9 -0
  39. package/es/components/modal-name-editor/modal-name-editor.mjs +5 -0
  40. package/es/components/paas-bpmn-log/components/approval-node.vue.mjs +2 -2
  41. package/es/components/paas-bpmn-log/components/approval-node.vue_vue_type_script_setup_true_lang.mjs +2 -3
  42. package/es/components/paas-bpmn-log/components/{approval-node.vue_vue_type_style_index_0_scoped_1ee4a0bd_lang.css → approval-node.vue_vue_type_style_index_0_scoped_b28cab6b_lang.css} +9 -9
  43. package/es/components/paas-bpmn-log/paas-bpmn-log.vue.mjs +2 -2
  44. package/es/components/paas-bpmn-log/paas-bpmn-log.vue_vue_type_script_setup_true_lang.mjs +2 -3
  45. package/es/components/paas-bpmn-log/{paas-bpmn-log.vue_vue_type_style_index_0_scoped_3882c856_lang.css → paas-bpmn-log.vue_vue_type_style_index_0_scoped_359cf19e_lang.css} +9 -9
  46. package/es/components/serial-number/components/data-field-cascader.vue.d.ts +15 -0
  47. package/es/components/serial-number/components/data-field-cascader.vue.mjs +8 -0
  48. package/es/components/serial-number/components/data-field-cascader.vue_vue_type_script_setup_true_lang.mjs +496 -0
  49. package/es/components/serial-number/components/data-field-cascader.vue_vue_type_style_index_0_scoped_9a2af5c6_lang.css +134 -0
  50. package/es/components/serial-number/components/data-field-cascader.vue_vue_type_style_index_1_lang.css +18 -0
  51. package/es/components/serial-number/serial-number-item.vue.d.ts +28 -1
  52. package/es/components/serial-number/serial-number-item.vue.mjs +2 -2
  53. package/es/components/serial-number/serial-number-item.vue_vue_type_script_setup_true_lang.mjs +6 -4
  54. package/es/components/serial-number/{serial-number-item.vue_vue_type_style_index_0_scoped_f992d0b8_lang.css → serial-number-item.vue_vue_type_style_index_0_scoped_8083036b_lang.css} +16 -16
  55. package/es/index.mjs +1 -1
  56. package/es/locale/auto-register.d.ts +2 -0
  57. package/es/locale/auto-register.mjs +43 -0
  58. package/es/locale/sys/app.d.ts +4 -0
  59. package/es/locale/sys/app.mjs +6 -0
  60. package/es/locale/sys/appDesigner.d.ts +1 -1
  61. package/es/locale/sys/appDesigner.mjs +32 -0
  62. package/es/locale/sys/cardDesign.d.ts +9 -0
  63. package/es/locale/sys/cardDesign.mjs +11 -0
  64. package/es/locale/sys/component.d.ts +4 -0
  65. package/es/locale/sys/component.mjs +32 -0
  66. package/es/locale/sys/edhr.mjs +9 -0
  67. package/es/locale/sys/expression.mjs +6 -0
  68. package/es/locale/sys/i18n.d.ts +1 -1
  69. package/es/locale/sys/i18n.mjs +10 -0
  70. package/es/locale/sys/integration.mjs +6 -0
  71. package/es/locale/sys/ipaas.mjs +6 -0
  72. package/es/locale/sys/model.mjs +26 -0
  73. package/es/locale/sys/onlineForm.d.ts +1 -1
  74. package/es/locale/sys/onlineForm.mjs +9 -0
  75. package/es/locale/sys/org.d.ts +1 -1
  76. package/es/locale/sys/org.mjs +14 -0
  77. package/es/locale/sys/pageDesigner.d.ts +14 -11
  78. package/es/locale/sys/pageDesigner.mjs +58 -0
  79. package/es/locale/sys/printDesigner.d.ts +3 -0
  80. package/es/locale/sys/printDesigner.mjs +16 -0
  81. package/es/locale/sys/process.mjs +6 -0
  82. package/es/locale/sys/webRender.d.ts +1 -1
  83. package/es/locale/sys/webRender.mjs +33 -0
  84. package/es/locale/sys.d.ts +24 -12
  85. package/es/locale/sys.mjs +63 -0
  86. package/es/modules/data-rules-container/index.d.ts +1 -0
  87. package/es/modules/data-rules-container/index.mjs +1 -0
  88. package/es/modules/data-rules-container/src/components/ndo-select-cmp.vue_vue_type_script_setup_true_lang.mjs +2 -1
  89. package/es/{components/data-rules-modal → modules/data-rules-container/src}/data-rules-modal.mjs +6 -4
  90. package/es/modules/gct-form/components/flex-container/flex-container.d.ts +2 -6
  91. package/es/modules/gct-form/components/flex-container/flex-container.mjs +19 -24
  92. package/es/modules/gct-form/components/flex-item/flex-item.mjs +1 -1
  93. package/es/modules/gct-form/widgets/gct-form/gct-form-group/gct-form-group.mjs +2 -2
  94. package/es/modules/gct-form/widgets/gct-form/gct-form-tab/gct-form-tab.css +3 -3
  95. package/es/modules/gct-table/editor/gct-table-date/gct-table-date.mjs +1 -1
  96. package/es/modules/gct-table/editor/gct-table-text/gct-table-text.mjs +1 -1
  97. package/es/setup-app.mjs +2 -1
  98. package/package.json +9 -9
  99. package/dist/components-C5-etN3H.js +0 -2
  100. package/es/assets/svg/image-error.svg.mjs +0 -4
  101. /package/es/{components/data-rules-modal → modules/data-rules-container/src}/data-rules-modal.d.ts +0 -0
  102. /package/es/modules/gct-table/editor/{gct-table-text/gct-table-text.css → gct-table-date/gct-table-date.css} +0 -0
@@ -0,0 +1,496 @@
1
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, onMounted, openBlock, ref, renderList, resolveComponent, toDisplayString, unref, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
2
+ import { cloneDeep } from "lodash-es";
3
+ import { FIELD_TYPE, t } from "@gct-paas/core";
4
+ //#region src/components/serial-number/components/data-field-cascader.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = {
6
+ ref: "fieldCascaderPopRef",
7
+ class: "data-field-cascader-wrap"
8
+ };
9
+ var _hoisted_2 = { class: "field-cascader-pop flex" };
10
+ var _hoisted_3 = { class: "field-cascader-search" };
11
+ var _hoisted_4 = ["title"];
12
+ var _hoisted_5 = { class: "field-cascader-list-box" };
13
+ var _hoisted_6 = [
14
+ "onMouseenter",
15
+ "onMouseleave",
16
+ "onClick"
17
+ ];
18
+ var _hoisted_7 = ["title"];
19
+ var _hoisted_8 = { class: "search-name" };
20
+ var _hoisted_9 = ["title"];
21
+ var _hoisted_10 = ["title"];
22
+ var _hoisted_11 = { class: "search-name" };
23
+ var _hoisted_12 = ["title"];
24
+ var _hoisted_13 = {
25
+ key: 0,
26
+ class: "field-cascader-right-box pb-10px serial-num-no-error"
27
+ };
28
+ var _hoisted_14 = { class: "field-cascader-search" };
29
+ var _hoisted_15 = ["title"];
30
+ var _hoisted_16 = { class: "field-cascader-list-box" };
31
+ var _hoisted_17 = ["onClick"];
32
+ var _hoisted_18 = ["title"];
33
+ var _hoisted_19 = { class: "search-name" };
34
+ var _hoisted_20 = ["title"];
35
+ var data_field_cascader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
36
+ __name: "data-field-cascader",
37
+ props: {
38
+ value: {},
39
+ modelKey: {},
40
+ isFeild: { type: Boolean }
41
+ },
42
+ emits: ["update:value"],
43
+ setup(__props, { expose: __expose, emit: __emit }) {
44
+ const props = __props;
45
+ const emit = __emit;
46
+ const leftSearch = ref();
47
+ const rightSearch = ref();
48
+ const fieldlist = ref();
49
+ const orgFieldList = ref();
50
+ const expandedKeys = ref([]);
51
+ const selectedKeys = ref([]);
52
+ const visible = ref(false);
53
+ const modelByKey = ref();
54
+ const feildKey = ref();
55
+ const selectedFieldKey = ref();
56
+ const treeData = ref([]);
57
+ const prevName = ref();
58
+ const feildCascaderName = ref();
59
+ const backInFlag = ref(false);
60
+ const selectedNodeTitle = ref();
61
+ const hoveredKey = ref();
62
+ const leftTreeOptions = ref();
63
+ const fieldMap = /* @__PURE__ */ new Map();
64
+ const leftOrgTreeData = ref();
65
+ const shouldFlattenFirstLevel = computed(() => {
66
+ const list = leftOrgTreeData.value;
67
+ return Array.isArray(list) && list.length === 1 && Array.isArray(list[0]?.children) && list[0].children.length > 0;
68
+ });
69
+ const leftTitle = computed(() => {
70
+ if (shouldFlattenFirstLevel.value) return leftOrgTreeData.value?.[0]?.title || "";
71
+ return t("sys.entityModel");
72
+ });
73
+ const renderTreeOptions = computed(() => {
74
+ if (!shouldFlattenFirstLevel.value) return leftTreeOptions.value;
75
+ const [firstNode] = leftTreeOptions.value || [];
76
+ return firstNode?.children?.map((child) => ({
77
+ ...child,
78
+ parentKey: firstNode.key,
79
+ parentTitle: firstNode.title
80
+ })) || [];
81
+ });
82
+ const SHOW_FIELDTYPES = [
83
+ FIELD_TYPE.TEXT,
84
+ FIELD_TYPE.LONG_TEXT,
85
+ FIELD_TYPE.LONG,
86
+ FIELD_TYPE.INTEGER,
87
+ FIELD_TYPE.DOUBLE,
88
+ FIELD_TYPE.DECIMAL,
89
+ FIELD_TYPE.BOOLEAN,
90
+ FIELD_TYPE.ENUM,
91
+ FIELD_TYPE.DATE
92
+ ];
93
+ const handleClick = () => {
94
+ visible.value = !visible.value;
95
+ };
96
+ const onChange = (_e) => {
97
+ handleCancel();
98
+ expandedKeys.value = !props.isFeild ? [props.modelKey] : [];
99
+ };
100
+ const handleCancel = () => {
101
+ feildCascaderValue.value = "";
102
+ fieldlist.value = [];
103
+ orgFieldList.value = [];
104
+ feildCascaderName.value = void 0;
105
+ selectedNodeTitle.value = void 0;
106
+ hoveredKey.value = void 0;
107
+ selectedKeys.value = [];
108
+ selectedFieldKey.value = void 0;
109
+ leftSearch.value = void 0;
110
+ rightSearch.value = void 0;
111
+ };
112
+ async function getFieldCascaderName() {
113
+ feildCascaderName.value = await _api.apaas.modelMeta.getTranslateModelFieldExp({ exp: props.value }) || "";
114
+ }
115
+ async function getOriginModel() {
116
+ treeData.value = (await _api.apaas.modelMeta.getByKeys({ modelKeys: props.modelKey }) || [])?.map((i) => {
117
+ return {
118
+ key: i.key,
119
+ title: i.name,
120
+ isLeaf: false,
121
+ checkable: false,
122
+ disabled: true
123
+ };
124
+ }) || [];
125
+ leftTreeOptions.value = cloneDeep(treeData.value);
126
+ leftOrgTreeData.value = cloneDeep(treeData.value);
127
+ }
128
+ const getModelList = async () => {
129
+ treeData.value = (await _api.apaas.designerCommon.getTableEntityModelList({
130
+ type: "NDO,BASE,RDO",
131
+ subModel: 0
132
+ }))?.map((item) => {
133
+ return {
134
+ key: item.key,
135
+ title: item.name,
136
+ isLeaf: false,
137
+ checkable: false,
138
+ disabled: true
139
+ };
140
+ }) || [];
141
+ leftTreeOptions.value = cloneDeep(treeData.value);
142
+ leftOrgTreeData.value = cloneDeep(treeData.value);
143
+ };
144
+ async function getFieldlist(data) {
145
+ selectedNodeTitle.value = data.title;
146
+ hoveredKey.value = data.key;
147
+ const key = `${data.modelKey}&${data.key}&${data.bindInfo}`;
148
+ let list = [];
149
+ if (fieldMap.has(key)) list = fieldMap.get(key) || [];
150
+ else {
151
+ list = await _api.apaas.fieldMeta.getList({ modelKey: data.bindInfo }) || [];
152
+ fieldMap.set(key, list);
153
+ }
154
+ orgFieldList.value = list;
155
+ fieldlist.value = list.filter((v) => SHOW_FIELDTYPES.includes(v.type)).map((i) => {
156
+ return {
157
+ title: i.name,
158
+ key: i.key,
159
+ refKey: data.key,
160
+ refName: data.title,
161
+ modelKey: data.parentKey || data.modelKey,
162
+ modelName: data.parentTitle || data.modelTitle
163
+ };
164
+ });
165
+ }
166
+ const onLoadData = async (treeNode) => {
167
+ if (treeNode.dataRef?.children) return;
168
+ let children = (await _api.apaas.fieldMeta.getList({ modelKey: treeNode.key }) || []).filter((v) => [
169
+ ...SHOW_FIELDTYPES,
170
+ FIELD_TYPE.REF,
171
+ FIELD_TYPE.RDO_REF
172
+ ].includes(v.type));
173
+ if (!props.isFeild) children = children.filter((i) => i.bindInfo !== props.modelKey);
174
+ const modelKeys = children.filter((v) => v.bindInfo && v.type !== FIELD_TYPE.ENUM).map((i) => i.bindInfo);
175
+ let modelList = [];
176
+ const list = children.map((i) => {
177
+ return {
178
+ title: i.name,
179
+ key: i.key,
180
+ isLeaf: true,
181
+ bindInfo: i.bindInfo,
182
+ fieldType: i.type,
183
+ modelKey: treeNode.key || props.modelKey,
184
+ modelTitle: treeNode.title || treeNode.dataRef?.title
185
+ };
186
+ });
187
+ if (modelKeys.length) try {
188
+ modelList = (await _api.apaas.modelMeta.getByKeys({ modelKeys: modelKeys.join(",") }) || []).map((i) => ({
189
+ id: i.id,
190
+ name: i.name
191
+ }));
192
+ list.forEach((i) => {
193
+ i.title = i.bindInfo && i.fieldType !== FIELD_TYPE.ENUM ? i.title + `(${modelList.find((v) => v.id == i.bindInfo)?.name})` : i.title;
194
+ });
195
+ } catch (err) {
196
+ console.warn(err);
197
+ }
198
+ treeNode.dataRef.children = list;
199
+ treeData.value.forEach((i) => {
200
+ if (i.key === treeNode.dataRef?.key) i["children"] = list;
201
+ });
202
+ treeData.value = [...treeData.value];
203
+ const tree = cloneDeep(treeData.value);
204
+ if (leftSearch.value && props.isFeild) leftTreeOptions.value = tree.filter((i) => i.title.indexOf(leftSearch.value?.trim()) > -1);
205
+ else {
206
+ leftTreeOptions.value = tree;
207
+ leftOrgTreeData.value = cloneDeep(treeData.value);
208
+ }
209
+ backInFlag.value = true;
210
+ };
211
+ const loadSingleRootChildren = async () => {
212
+ if (treeData.value.length !== 1) return;
213
+ const [firstNode] = treeData.value;
214
+ if (firstNode?.children?.length) return;
215
+ await onLoadData({
216
+ dataRef: firstNode,
217
+ key: firstNode.key
218
+ });
219
+ };
220
+ const feildCascaderValue = computed({
221
+ get() {
222
+ return props.value;
223
+ },
224
+ set(value) {
225
+ emit("update:value", value);
226
+ }
227
+ });
228
+ const rightSelectOptions = computed(() => {
229
+ return rightSearch.value?.trim() ? fieldlist.value.filter((e) => e.title.indexOf(rightSearch.value.trim()) > -1) : cloneDeep(fieldlist.value);
230
+ });
231
+ onMounted(async () => {
232
+ if (!props.isFeild && props.modelKey) {
233
+ await getOriginModel();
234
+ expandedKeys.value = [props.modelKey];
235
+ } else await getModelList();
236
+ await loadSingleRootChildren();
237
+ const keys = props.value?.split(".");
238
+ if (props.modelKey && keys.length >= 2) {
239
+ expandedKeys.value = [keys[0]];
240
+ selectedKeys.value = [keys[1]];
241
+ modelByKey.value = expandedKeys.value[0];
242
+ feildKey.value = selectedKeys.value[0];
243
+ if (keys.length > 2) {
244
+ selectedKeys.value = [];
245
+ const expandObj = treeData.value.find((i) => i.key === expandedKeys.value[0]);
246
+ await onLoadData({
247
+ dataRef: expandObj,
248
+ key: expandObj?.key
249
+ });
250
+ await getFieldlist({
251
+ ...expandObj?.children?.find((val) => val.key === keys[1]),
252
+ modelTitle: expandObj?.title
253
+ });
254
+ selectedFieldKey.value = keys[2] || "";
255
+ }
256
+ }
257
+ props.value && getFieldCascaderName();
258
+ });
259
+ watch(() => backInFlag.value, async () => {
260
+ if (backInFlag.value && selectedKeys.value && props.modelKey) {
261
+ const expandObj = treeData.value.find((i) => i.key === expandedKeys.value[0]);
262
+ const bindObj = expandObj?.children?.find((val) => val.key === selectedKeys.value[0]);
263
+ prevName.value = `${expandObj?.title}.${bindObj?.title}`;
264
+ bindObj?.bindInfo && bindObj?.fieldType !== FIELD_TYPE.ENUM && await getFieldlist(bindObj);
265
+ }
266
+ });
267
+ watch(() => leftSearch.value, async (val) => {
268
+ leftTreeOptions.value = [];
269
+ let tree = cloneDeep(treeData.value);
270
+ await nextTick();
271
+ if (val?.trim()) {
272
+ let hasChecked = false;
273
+ if (props.isFeild) leftTreeOptions.value = tree.filter((i) => i.title.indexOf(leftSearch.value?.trim()) > -1);
274
+ else {
275
+ tree.forEach((i) => {
276
+ i.children = i.children?.filter((e) => e.title.indexOf(leftSearch.value.trim()) > -1);
277
+ if (i.children?.filter((v) => v.key == selectedKeys.value[0])?.length) hasChecked = true;
278
+ });
279
+ leftTreeOptions.value = tree;
280
+ }
281
+ if (!hasChecked) {
282
+ fieldlist.value = [];
283
+ selectedKeys.value = [];
284
+ }
285
+ } else {
286
+ leftTreeOptions.value = [...tree];
287
+ expandedKeys.value = !props.isFeild ? [props.modelKey] : [];
288
+ }
289
+ });
290
+ /**
291
+ * 节点选中事件
292
+ */
293
+ const handleSelect = async (sKeys, { node }) => {
294
+ if (sKeys.length === 0) return;
295
+ selectedKeys.value = sKeys;
296
+ const parentKey = node.parent?.key ?? node.parentKey;
297
+ const parentTitle = node.parent?.node?.title ?? node.parentTitle;
298
+ if (!parentKey || !parentTitle) return;
299
+ modelByKey.value = parentKey;
300
+ feildKey.value = selectedKeys.value[0];
301
+ prevName.value = `${parentTitle}.${node.title}`;
302
+ feildCascaderName.value = prevName.value;
303
+ feildCascaderValue.value = modelByKey.value + "." + feildKey.value;
304
+ fieldlist.value = [];
305
+ orgFieldList.value = [];
306
+ selectedFieldKey.value = "";
307
+ visible.value = false;
308
+ };
309
+ const onExpand = (keys) => {
310
+ expandedKeys.value = keys;
311
+ };
312
+ /**
313
+ * 切换单个节点的展开/收起状态
314
+ * @param {string} key - 节点key
315
+ */
316
+ const toggleNodeExpand = (key) => {
317
+ if (expandedKeys.value.indexOf(key) > -1) expandedKeys.value = expandedKeys.value.filter((k) => k !== key);
318
+ else expandedKeys.value = [...expandedKeys.value, key];
319
+ };
320
+ const setSelectedKey = (value) => {
321
+ selectedFieldKey.value = value.key;
322
+ feildCascaderName.value = `${value.modelName}.${value.refName}.${value.title}`;
323
+ feildCascaderValue.value = `${value.modelKey}.${value.refKey}.${selectedFieldKey.value}`;
324
+ selectedKeys.value = [];
325
+ visible.value = false;
326
+ rightSearch.value = "";
327
+ };
328
+ /**
329
+ * 鼠标悬浮进入节点时触发
330
+ * @param {string} key - 节点唯一标识
331
+ * @param {object} data - 节点完整数据(包含自定义字段如desc)
332
+ * @param {object} node - 节点原生对象(包含层级、是否叶子节点等信息)
333
+ */
334
+ const handleNodeHoverEnter = (key, data) => {
335
+ console.log("悬浮进入节点:", key, data);
336
+ if (data.bindInfo && data.fieldType !== FIELD_TYPE.ENUM) getFieldlist(data);
337
+ else {
338
+ fieldlist.value = [];
339
+ orgFieldList.value = [];
340
+ selectedNodeTitle.value = "";
341
+ hoveredKey.value = "";
342
+ }
343
+ };
344
+ /**
345
+ * 鼠标悬浮离开节点时触发
346
+ * @param {string} key - 节点唯一标识
347
+ */
348
+ const handleNodeHoverLeave = (key) => {
349
+ console.log("悬浮离开节点:", key);
350
+ };
351
+ const getPopupContainer = () => {
352
+ return document.getElementById("gct-scrollbody") || document.body.querySelector(".data-field-cascader-wrap") || document.body;
353
+ };
354
+ __expose({ feildCascaderName });
355
+ return (_ctx, _cache) => {
356
+ const _component_a_input = resolveComponent("a-input");
357
+ const _component_a_form_item_rest = resolveComponent("a-form-item-rest");
358
+ const _component_right_outlined = resolveComponent("right-outlined");
359
+ const _component_a_tree = resolveComponent("a-tree");
360
+ const _component_a_select = resolveComponent("a-select");
361
+ const _component_a_popover = resolveComponent("a-popover");
362
+ return openBlock(), createElementBlock("div", _hoisted_1, [createVNode(_component_a_popover, {
363
+ visible: visible.value,
364
+ "onUpdate:visible": _cache[5] || (_cache[5] = ($event) => visible.value = $event),
365
+ trigger: "click",
366
+ "overlay-class-name": "data-field-cascader__popover",
367
+ "overlay-style": { minWidth: "180px" },
368
+ placement: "bottomLeft",
369
+ "get-popup-container": getPopupContainer
370
+ }, {
371
+ content: withCtx(() => [withDirectives(createElementVNode("div", _hoisted_2, [createElementVNode("div", { class: normalizeClass(["field-cascader-left-box pb-10px serial-num-no-error", fieldlist.value?.length ? "border-r" : ""]) }, [
372
+ createElementVNode("div", _hoisted_3, [createVNode(_component_a_form_item_rest, null, {
373
+ default: withCtx(() => [createVNode(_component_a_input, {
374
+ value: leftSearch.value,
375
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => leftSearch.value = $event),
376
+ class: "tree-search",
377
+ placeholder: __props.isFeild ? "搜索模型" : "搜索字段",
378
+ "allow-clear": ""
379
+ }, {
380
+ prefix: withCtx(() => [..._cache[6] || (_cache[6] = [createElementVNode("i", { class: "iconfont icon-sousuo1" }, null, -1)])]),
381
+ _: 1
382
+ }, 8, ["value", "placeholder"])]),
383
+ _: 1
384
+ })]),
385
+ createElementVNode("div", {
386
+ class: "field-cascader-root-title ell",
387
+ title: leftTitle.value
388
+ }, toDisplayString(leftTitle.value), 9, _hoisted_4),
389
+ createElementVNode("div", _hoisted_5, [createVNode(_component_a_tree, {
390
+ "expanded-keys": expandedKeys.value,
391
+ "onUpdate:expandedKeys": _cache[1] || (_cache[1] = ($event) => expandedKeys.value = $event),
392
+ "selected-keys": selectedKeys.value,
393
+ "onUpdate:selectedKeys": _cache[2] || (_cache[2] = ($event) => selectedKeys.value = $event),
394
+ class: "field-cascader-tree-instance",
395
+ "load-data": onLoadData,
396
+ "tree-data": renderTreeOptions.value,
397
+ "block-node": "",
398
+ onSelect: handleSelect,
399
+ onExpand
400
+ }, {
401
+ title: withCtx(({ data, key }) => [createElementVNode("div", {
402
+ class: normalizeClass(["tree-node", hoveredKey.value == data.key ? "virtual-selected" : ""]),
403
+ onMouseenter: ($event) => handleNodeHoverEnter(key, data),
404
+ onMouseleave: ($event) => handleNodeHoverLeave(key),
405
+ onClick: ($event) => !data["isLeaf"] ? toggleNodeExpand(data.key) : handleSelect
406
+ }, [__props.isFeild ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [data["title"].indexOf(leftSearch.value) > -1 && !data["isLeaf"] ? (openBlock(), createElementBlock("span", {
407
+ key: 0,
408
+ class: "tree-node-txt",
409
+ title: data["title"]
410
+ }, [
411
+ createElementVNode("span", null, toDisplayString(data["title"].substr(0, data["title"].indexOf(leftSearch.value))), 1),
412
+ createElementVNode("span", _hoisted_8, toDisplayString(leftSearch.value), 1),
413
+ createElementVNode("span", null, toDisplayString(data["title"].substr(data["title"].indexOf(leftSearch.value) + leftSearch.value?.length)), 1)
414
+ ], 8, _hoisted_7)) : (openBlock(), createElementBlock("span", {
415
+ key: 1,
416
+ class: "tree-node-txt",
417
+ title: data["title"]
418
+ }, toDisplayString(data["title"]), 9, _hoisted_9))], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [data["title"].indexOf(leftSearch.value) > -1 && data["isLeaf"] ? (openBlock(), createElementBlock("span", {
419
+ key: 0,
420
+ class: "tree-node-txt",
421
+ title: data["title"]
422
+ }, [
423
+ createElementVNode("span", null, toDisplayString(data["title"].substr(0, data["title"].indexOf(leftSearch.value))), 1),
424
+ createElementVNode("span", _hoisted_11, toDisplayString(leftSearch.value), 1),
425
+ createElementVNode("span", null, toDisplayString(data["title"].substr(data["title"].indexOf(leftSearch.value) + leftSearch.value?.length)), 1)
426
+ ], 8, _hoisted_10)) : (openBlock(), createElementBlock("span", {
427
+ key: 1,
428
+ class: "tree-node-txt",
429
+ title: data["title"]
430
+ }, toDisplayString(data["title"]), 9, _hoisted_12))], 64)), data.bindInfo && data.fieldType !== unref(FIELD_TYPE).ENUM ? (openBlock(), createBlock(_component_right_outlined, {
431
+ key: 2,
432
+ class: "right-icon"
433
+ })) : createCommentVNode("", true)], 42, _hoisted_6)]),
434
+ _: 1
435
+ }, 8, [
436
+ "expanded-keys",
437
+ "selected-keys",
438
+ "tree-data"
439
+ ])])
440
+ ], 2), orgFieldList.value?.length ? (openBlock(), createElementBlock("div", _hoisted_13, [
441
+ createElementVNode("div", _hoisted_14, [createVNode(_component_a_form_item_rest, null, {
442
+ default: withCtx(() => [createVNode(_component_a_input, {
443
+ value: rightSearch.value,
444
+ "onUpdate:value": _cache[3] || (_cache[3] = ($event) => rightSearch.value = $event),
445
+ class: "tree-search",
446
+ placeholder: "搜索字段",
447
+ "allow-clear": ""
448
+ }, {
449
+ prefix: withCtx(() => [..._cache[7] || (_cache[7] = [createElementVNode("i", { class: "iconfont icon-sousuo1" }, null, -1)])]),
450
+ _: 1
451
+ }, 8, ["value"])]),
452
+ _: 1
453
+ })]),
454
+ selectedNodeTitle.value ? (openBlock(), createElementBlock("div", {
455
+ key: 0,
456
+ class: "field-cascader-root-title ell",
457
+ title: selectedNodeTitle.value
458
+ }, toDisplayString(selectedNodeTitle.value), 9, _hoisted_15)) : createCommentVNode("", true),
459
+ createElementVNode("div", _hoisted_16, [rightSelectOptions.value.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(rightSelectOptions.value, (item) => {
460
+ return openBlock(), createElementBlock("div", {
461
+ key: item.key,
462
+ class: normalizeClass(["field-cascader-item", { "field-cascader-item-selected": item.key == selectedFieldKey.value }]),
463
+ onClick: ($event) => setSelectedKey(item)
464
+ }, [item["title"].indexOf(rightSearch.value) > -1 ? (openBlock(), createElementBlock("span", {
465
+ key: 0,
466
+ title: item["title"]
467
+ }, [
468
+ createElementVNode("span", null, toDisplayString(item["title"].substr(0, item["title"].indexOf(rightSearch.value))), 1),
469
+ createElementVNode("span", _hoisted_19, toDisplayString(rightSearch.value), 1),
470
+ createElementVNode("span", null, toDisplayString(item["title"].substr(item["title"].indexOf(rightSearch.value) + rightSearch.value?.length)), 1)
471
+ ], 8, _hoisted_18)) : (openBlock(), createElementBlock("span", {
472
+ key: 1,
473
+ title: item["title"]
474
+ }, toDisplayString(item["title"]), 9, _hoisted_20))], 10, _hoisted_17);
475
+ }), 128)) : createCommentVNode("", true)])
476
+ ])) : createCommentVNode("", true)], 512), [[vShow, visible.value]])]),
477
+ default: withCtx(() => [createVNode(_component_a_form_item_rest, null, {
478
+ default: withCtx(() => [createVNode(_component_a_select, {
479
+ value: feildCascaderName.value,
480
+ "onUpdate:value": _cache[4] || (_cache[4] = ($event) => feildCascaderName.value = $event),
481
+ class: normalizeClass(["data-field-cascader-input", feildCascaderName.value ? "clear-icon" : ""]),
482
+ "allow-clear": "",
483
+ open: false,
484
+ placeholder: "请选择模型字段",
485
+ onClick: withModifiers(handleClick, ["stop"]),
486
+ onChange
487
+ }, null, 8, ["value", "class"])]),
488
+ _: 1
489
+ })]),
490
+ _: 1
491
+ }, 8, ["visible"])], 512);
492
+ };
493
+ }
494
+ });
495
+ //#endregion
496
+ export { data_field_cascader_vue_vue_type_script_setup_true_lang_default as default };
@@ -0,0 +1,134 @@
1
+ .data-field-cascader-wrap[data-v-9a2af5c6] {
2
+ position: relative;
3
+ }
4
+ .data-field-cascader-wrap[data-v-9a2af5c6] .data-field-cascader-input.clear-icon .anticon.ant-input-clear-icon-hidden {
5
+ visibility: visible !important;
6
+ }
7
+ .field-cascader-pop[data-v-9a2af5c6] {
8
+ z-index: 1000;
9
+ background: #fff;
10
+ border-radius: 4px;
11
+ }
12
+ .field-cascader-pop .field-cascader-left-box[data-v-9a2af5c6] {
13
+ width: 180px;
14
+ }
15
+ .field-cascader-pop .field-cascader-left-box.border-r[data-v-9a2af5c6] {
16
+ border-right: 1px solid #e0e3ea;
17
+ }
18
+ .field-cascader-pop .field-cascader-right-box[data-v-9a2af5c6] {
19
+ width: 180px;
20
+ }
21
+ .field-cascader-pop .field-cascader-search[data-v-9a2af5c6] {
22
+ padding: 1px 0;
23
+ border-bottom: 1px solid #f2f5f8;
24
+ }
25
+ .field-cascader-pop .field-cascader-root-title[data-v-9a2af5c6] {
26
+ padding: 6px 12px 4px;
27
+ color: #8b8b8b;
28
+ font-weight: 400;
29
+ line-height: 20px;
30
+ margin-top: 8px;
31
+ word-break: break-all;
32
+ font-size: 14px;
33
+ }
34
+ .field-cascader-pop .field-cascader-list-box[data-v-9a2af5c6] {
35
+ margin-top: 4px;
36
+ height: 192px;
37
+ overflow-y: auto;
38
+ }
39
+ .field-cascader-pop .field-cascader-list-box .search-name[data-v-9a2af5c6] {
40
+ color: var(--ant-primary-color) !important;
41
+ }
42
+ .field-cascader-pop .field-cascader-item[data-v-9a2af5c6] {
43
+ cursor: pointer;
44
+ line-height: 32px;
45
+ padding: 0 12px;
46
+ overflow: hidden;
47
+ text-overflow: ellipsis;
48
+ white-space: nowrap;
49
+ }
50
+ .field-cascader-pop .field-cascader-item[data-v-9a2af5c6]:hover {
51
+ background: #f5f5f5;
52
+ }
53
+ .field-cascader-pop .field-cascader-item-selected[data-v-9a2af5c6] {
54
+ background: rgba(from var(--ant-primary-color) r g b / 8%) !important;
55
+ color: var(--ant-primary-color);
56
+ font-weight: 500;
57
+ }
58
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-switcher {
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ width: 24px;
63
+ height: 32px;
64
+ line-height: 32px;
65
+ }
66
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-switcher .ant-tree-switcher-icon {
67
+ color: var(--ant-primary-color);
68
+ font-size: 14px;
69
+ }
70
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode {
71
+ padding: 0;
72
+ padding-left: 8px;
73
+ transition: all 0.3s;
74
+ height: 32px;
75
+ }
76
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode .ant-tree-switcher.ant-tree-switcher-noop {
77
+ width: 0;
78
+ }
79
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode:has(
80
+ span.ant-tree-node-content-wrapper
81
+ span.ant-tree-title
82
+ div.virtual-selected
83
+ ) {
84
+ background: #f5f5f5;
85
+ }
86
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode:hover {
87
+ background: #f5f5f5;
88
+ }
89
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode:hover .tree-node__more {
90
+ display: block;
91
+ }
92
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode.ant-tree-treenode-disabled:hover {
93
+ background: transparent;
94
+ }
95
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode .ant-tree-title {
96
+ display: inline-block;
97
+ width: 130px;
98
+ }
99
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode .ant-tree-title .tree-node {
100
+ width: 100%;
101
+ display: flex;
102
+ align-items: center;
103
+ }
104
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode .ant-tree-title .tree-node .tree-node-txt {
105
+ flex: 1;
106
+ overflow: hidden;
107
+ text-overflow: ellipsis;
108
+ white-space: nowrap;
109
+ }
110
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode .ant-tree-title .tree-node .right-icon {
111
+ font-size: 12px;
112
+ }
113
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode .search-name {
114
+ color: var(--ant-primary-color) !important;
115
+ }
116
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode-selected {
117
+ background: rgba(from var(--ant-primary-color) r g b / 8%) !important;
118
+ color: var(--ant-primary-color);
119
+ font-weight: 500;
120
+ }
121
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode-selected .ant-tree-node-selected {
122
+ background-color: transparent;
123
+ }
124
+ [data-v-9a2af5c6] .field-cascader-tree-instance .ant-tree-treenode-selected .right-icon {
125
+ color: var(--ant-primary-color);
126
+ }
127
+ [data-v-9a2af5c6] .ant-tree .ant-tree-node-content-wrapper {
128
+ line-height: 32px;
129
+ padding-right: 8px;
130
+ }
131
+ [data-v-9a2af5c6] .ant-tree .ant-tree-treenode-disabled .ant-tree-node-content-wrapper {
132
+ color: rgba(0, 0, 0, 0.85);
133
+ cursor: pointer;
134
+ }
@@ -0,0 +1,18 @@
1
+ .data-field-cascader__popover .ant-popover-content .ant-popover-inner-content {
2
+ padding: 0;
3
+ }
4
+ .data-field-cascader__popover .ant-popover-content .ant-popover-inner-content .ant-input-affix-wrapper {
5
+ border-width: 0;
6
+ padding: 4px 12px;
7
+ }
8
+ .data-field-cascader__popover .ant-popover-content .ant-popover-inner-content .ant-input-affix-wrapper:focus {
9
+ border-width: 0;
10
+ border-color: transparent;
11
+ }
12
+ .data-field-cascader__popover .ant-popover-content .ant-popover-inner-content .ant-input-affix-wrapper:hover {
13
+ border-width: 0;
14
+ border-color: transparent;
15
+ }
16
+ .data-field-cascader__popover .ant-popover-content .ant-popover-inner-content .ant-input-affix-wrapper .ant-input-prefix {
17
+ color: #9d9d9d;
18
+ }
@@ -17,6 +17,33 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
17
17
  onDel?: ((...args: any[]) => any) | undefined;
18
18
  "onUpdate:itemConfig"?: ((...args: any[]) => any) | undefined;
19
19
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
20
- fieldCascaderRef: unknown;
20
+ fieldCascaderRef: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
21
+ value: string;
22
+ modelKey?: string;
23
+ isFeild: boolean;
24
+ }> & Readonly<{
25
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
26
+ }>, {
27
+ feildCascaderName: import('vue').Ref<string | undefined, string | undefined>;
28
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
29
+ "update:value": (...args: any[]) => void;
30
+ }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
31
+ fieldCascaderPopRef: HTMLDivElement;
32
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
33
+ P: {};
34
+ B: {};
35
+ D: {};
36
+ C: {};
37
+ M: {};
38
+ Defaults: {};
39
+ }, Readonly<{
40
+ value: string;
41
+ modelKey?: string;
42
+ isFeild: boolean;
43
+ }> & Readonly<{
44
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
45
+ }>, {
46
+ feildCascaderName: import('vue').Ref<string | undefined, string | undefined>;
47
+ }, {}, {}, {}, {}> | null;
21
48
  }, HTMLDivElement>;
22
49
  export default _default;