@gct-paas/core-web 0.1.6-dev.6 → 0.1.6-dev.8

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 (105) hide show
  1. package/dist/ColorPicker-DFKXqgaG.js +1 -0
  2. package/dist/_plugin-vue_export-helper-CGzGcWFX.js +1 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/loader.esm.min.js +1 -1
  5. package/dist/{monaco-editor-BTqXEIZI.js → monaco-editor-CQJ9TMzD.js} +1 -1
  6. package/dist/{template-1ZQd8Z1w.js → template-CXn8oAg5.js} +1 -1
  7. package/es/components/index.d.ts +1 -0
  8. package/es/components/index.mjs +2 -0
  9. package/es/components/paas-bpmn-log/components/approval-node.vue.mjs +2 -2
  10. package/es/components/paas-bpmn-log/components/approval-node.vue_vue_type_script_setup_true_lang.mjs +1 -2
  11. package/es/components/paas-bpmn-log/components/{approval-node.vue_vue_type_style_index_0_scoped_a88d7ef9_lang.css → approval-node.vue_vue_type_style_index_0_scoped_a8065b24_lang.css} +9 -9
  12. package/es/components/paas-bpmn-log/paas-bpmn-log.vue.mjs +2 -2
  13. package/es/components/paas-bpmn-log/paas-bpmn-log.vue_vue_type_script_setup_true_lang.mjs +1 -2
  14. package/es/components/paas-bpmn-log/{paas-bpmn-log.vue_vue_type_style_index_0_scoped_c85122b0_lang.css → paas-bpmn-log.vue_vue_type_style_index_0_scoped_eb574523_lang.css} +9 -9
  15. package/es/components/select-user-modal/deptUser.vue.d.ts +9 -0
  16. package/es/components/select-user-modal/deptUser.vue.mjs +7 -0
  17. package/es/components/select-user-modal/deptUser.vue_vue_type_script_setup_true_name_deptUser_lang.mjs +296 -0
  18. package/es/components/select-user-modal/deptUser.vue_vue_type_style_index_0_scoped_02dff7bf_lang.css +40 -0
  19. package/es/components/select-user-modal/index.d.ts +2 -0
  20. package/es/components/select-user-modal/index.mjs +1 -0
  21. package/es/components/select-user-modal/range-role.vue.d.ts +9 -0
  22. package/es/components/select-user-modal/range-role.vue.mjs +7 -0
  23. package/es/components/select-user-modal/range-role.vue_vue_type_script_setup_true_name_role_lang.mjs +137 -0
  24. package/es/components/select-user-modal/range-role.vue_vue_type_style_index_0_scoped_1241bcdf_lang.css +34 -0
  25. package/es/components/select-user-modal/select-user-modal.vue.d.ts +12 -0
  26. package/es/components/select-user-modal/select-user-modal.vue.mjs +7 -0
  27. package/es/components/select-user-modal/select-user-modal.vue_vue_type_script_setup_true_name_select-user-modal_lang.mjs +123 -0
  28. package/es/components/select-user-modal/select-user-modal.vue_vue_type_style_index_0_scoped_2c0f184c_lang.css +14 -0
  29. package/es/components/select-user-modal/userGroup.vue.d.ts +9 -0
  30. package/es/components/select-user-modal/userGroup.vue.mjs +7 -0
  31. package/es/components/select-user-modal/userGroup.vue_vue_type_script_setup_true_name_userGroup_lang.mjs +149 -0
  32. package/es/components/select-user-modal/userGroup.vue_vue_type_style_index_0_scoped_47d1cbaa_lang.css +19 -0
  33. package/es/create-app-vue.d.ts +2 -2
  34. package/es/create-app-vue.mjs +3 -3
  35. package/es/index.d.ts +1 -0
  36. package/es/index.mjs +5 -1
  37. package/es/modules/data-rules-container/index.d.ts +3 -0
  38. package/es/modules/data-rules-container/index.mjs +2 -0
  39. package/es/modules/data-rules-container/src/components/header-action.vue.d.ts +10 -0
  40. package/es/modules/data-rules-container/src/components/header-action.vue.mjs +7 -0
  41. package/es/modules/data-rules-container/src/components/header-action.vue_vue_type_script_setup_true_name_header-action_lang.mjs +36 -0
  42. package/es/modules/data-rules-container/src/components/header-action.vue_vue_type_style_index_0_scoped_4e281013_lang.css +32 -0
  43. package/es/modules/data-rules-container/src/components/ndo-select-cmp.vue.d.ts +8 -0
  44. package/es/modules/data-rules-container/src/components/ndo-select-cmp.vue.mjs +5 -0
  45. package/es/modules/data-rules-container/src/components/ndo-select-cmp.vue_vue_type_script_setup_true_lang.mjs +266 -0
  46. package/es/modules/data-rules-container/src/components/perm-action-node.vue.d.ts +22 -0
  47. package/es/modules/data-rules-container/src/components/perm-action-node.vue.mjs +7 -0
  48. package/es/modules/data-rules-container/src/components/perm-action-node.vue_vue_type_script_setup_true_name_perm-action-node_lang.mjs +384 -0
  49. package/es/modules/data-rules-container/src/components/perm-action-node.vue_vue_type_style_index_0_scoped_417c660f_lang.css +73 -0
  50. package/es/modules/data-rules-container/src/components/perm-root-node.vue.d.ts +3 -0
  51. package/es/modules/data-rules-container/src/components/perm-root-node.vue.mjs +7 -0
  52. package/es/modules/data-rules-container/src/components/perm-root-node.vue_vue_type_script_setup_true_name_perm-root-node_lang.mjs +61 -0
  53. package/es/modules/data-rules-container/src/components/perm-root-node.vue_vue_type_style_index_0_scoped_ca5c9d20_lang.css +74 -0
  54. package/es/modules/data-rules-container/src/components/rdo-select-cmp.vue.d.ts +11 -0
  55. package/es/modules/data-rules-container/src/components/rdo-select-cmp.vue.mjs +5 -0
  56. package/es/modules/data-rules-container/src/components/rdo-select-cmp.vue_vue_type_script_setup_true_lang.mjs +93 -0
  57. package/es/modules/data-rules-container/src/components/request-select-cmp.vue.d.ts +9 -0
  58. package/es/modules/data-rules-container/src/components/request-select-cmp.vue.mjs +5 -0
  59. package/es/modules/data-rules-container/src/components/request-select-cmp.vue_vue_type_script_setup_true_name_request-select-cmp_lang.mjs +117 -0
  60. package/es/modules/data-rules-container/src/components/request-tree-select-cmp.vue.d.ts +3 -0
  61. package/es/modules/data-rules-container/src/components/request-tree-select-cmp.vue.mjs +6 -0
  62. package/es/modules/data-rules-container/src/components/request-tree-select-cmp.vue_vue_type_script_name_gct-select_setup_true_lang.mjs +100 -0
  63. package/es/modules/data-rules-container/src/components/request-tree-select-cmp.vue_vue_type_style_index_0_lang.css +21 -0
  64. package/es/modules/data-rules-container/src/components/select-modal-cmp.vue.d.ts +32 -0
  65. package/es/modules/data-rules-container/src/components/select-modal-cmp.vue.mjs +5 -0
  66. package/es/modules/data-rules-container/src/components/select-modal-cmp.vue_vue_type_script_setup_true_name_select-modal-cmp_lang.mjs +268 -0
  67. package/es/modules/data-rules-container/src/components/select-more.vue.d.ts +8 -0
  68. package/es/modules/data-rules-container/src/components/select-more.vue.mjs +5 -0
  69. package/es/modules/data-rules-container/src/components/select-more.vue_vue_type_script_setup_true_lang.mjs +26 -0
  70. package/es/modules/data-rules-container/src/components/select-userdep-cmp.vue.d.ts +12 -0
  71. package/es/modules/data-rules-container/src/components/select-userdep-cmp.vue.mjs +5 -0
  72. package/es/modules/data-rules-container/src/components/select-userdep-cmp.vue_vue_type_script_setup_true_name_select-userdep-cmp_lang.mjs +103 -0
  73. package/es/modules/data-rules-container/src/components/tree-action-node.vue.d.ts +25 -0
  74. package/es/modules/data-rules-container/src/components/tree-action-node.vue.mjs +7 -0
  75. package/es/modules/data-rules-container/src/components/tree-action-node.vue_vue_type_script_setup_true_name_tree-action-node_lang.mjs +544 -0
  76. package/es/modules/data-rules-container/src/components/tree-action-node.vue_vue_type_style_index_0_scoped_46368089_lang.css +67 -0
  77. package/es/modules/data-rules-container/src/components/tree-root-node.vue.d.ts +3 -0
  78. package/es/modules/data-rules-container/src/components/tree-root-node.vue.mjs +7 -0
  79. package/es/modules/data-rules-container/src/components/tree-root-node.vue_vue_type_script_setup_true_name_tree-root-node_lang.mjs +105 -0
  80. package/es/modules/data-rules-container/src/components/tree-root-node.vue_vue_type_style_index_0_scoped_37e323fb_lang.css +29 -0
  81. package/es/modules/data-rules-container/src/components/tree-select-cmp.vue.d.ts +3 -0
  82. package/es/modules/data-rules-container/src/components/tree-select-cmp.vue.mjs +5 -0
  83. package/es/modules/data-rules-container/src/components/tree-select-cmp.vue_vue_type_script_name_gct-select_setup_true_lang.mjs +89 -0
  84. package/es/modules/data-rules-container/src/constant/config.d.ts +146 -0
  85. package/es/modules/data-rules-container/src/constant/config.mjs +548 -0
  86. package/es/modules/data-rules-container/src/constant/interface.d.ts +85 -0
  87. package/es/modules/data-rules-container/src/constant/interface.mjs +36 -0
  88. package/es/modules/data-rules-container/src/data-rules-container.vue.d.ts +45 -0
  89. package/es/modules/data-rules-container/src/data-rules-container.vue.mjs +6 -0
  90. package/es/modules/data-rules-container/src/data-rules-container.vue_vue_type_script_setup_true_name_data-rules-container_lang.mjs +234 -0
  91. package/es/modules/data-rules-container/src/data-rules-container.vue_vue_type_style_index_0_lang.css +149 -0
  92. package/es/modules/data-rules-container/src/field-role-container.vue.d.ts +14 -0
  93. package/es/modules/data-rules-container/src/field-role-container.vue.mjs +5 -0
  94. package/es/modules/data-rules-container/src/field-role-container.vue_vue_type_script_setup_true_name_field-role-container_lang.mjs +73 -0
  95. package/es/modules/data-rules-container/src/hooks/useDataRulesTree.d.ts +30 -0
  96. package/es/modules/data-rules-container/src/hooks/useDataRulesTree.mjs +317 -0
  97. package/es/modules/data-rules-container/src/hooks/useEmitter.d.ts +10 -0
  98. package/es/modules/data-rules-container/src/hooks/useRdoHooks.d.ts +37 -0
  99. package/es/modules/data-rules-container/src/hooks/useRdoHooks.mjs +144 -0
  100. package/es/modules/data-rules-container/src/hooks/useRole.d.ts +8 -0
  101. package/es/modules/data-rules-container/src/typing.d.ts +40 -0
  102. package/package.json +9 -9
  103. package/dist/ColorPicker-DGQQb8I7.js +0 -1
  104. package/dist/_plugin-vue_export-helper-C9hXqKoS.js +0 -1
  105. package/es/components/paas-bpmn-log/hooks/useObserver.mjs +0 -46
@@ -0,0 +1,317 @@
1
+ import { OperatorTypeEnum } from "../constant/interface.mjs";
2
+ import { reactive, ref, toRaw } from "vue";
3
+ import { isEmpty } from "lodash-es";
4
+ import { FIELD_TYPE, SEARCH_SERVICE, t, useUUid } from "@gct-paas/core";
5
+ //#region src/modules/data-rules-container/src/hooks/useDataRulesTree.ts
6
+ var editDataRulesTree = ref([]);
7
+ var showDataRulesTree = ref([]);
8
+ function useDataRulesTree(isReadyOnly) {
9
+ const { getUuidGenerate } = useUUid(ref([]), ref(""), {
10
+ needPrefix: true,
11
+ isString: false,
12
+ prefix: "t_"
13
+ });
14
+ const uuidGenerate = getUuidGenerate([]);
15
+ const transfromReactive = (data) => {
16
+ return data.map((item) => {
17
+ const node = reactive(Object.assign({}, {
18
+ key: item.key,
19
+ pid: item.pid,
20
+ level: item.level,
21
+ class: item.class
22
+ }, item.type === "group" ? {
23
+ operatorType: item.operatorType,
24
+ type: item.type,
25
+ children: reactive([])
26
+ } : {
27
+ firstRow: item.firstRow,
28
+ leftValue: item.leftValue,
29
+ operatorValue: item.operatorValue,
30
+ rightValue: item.rightValue
31
+ }));
32
+ if (Array.isArray(item.children)) node.children?.push(...transfromReactive(item.children));
33
+ return node;
34
+ });
35
+ };
36
+ const setPageTreeItem = (data, len) => {
37
+ return data.forEach((item, index) => {
38
+ if (Array.isArray(item.children)) {
39
+ item.type = "group";
40
+ item.class = "tree-group";
41
+ if (isEmpty(item.operatorType)) item.operatorType = OperatorTypeEnum.AND;
42
+ setPageTreeItem(item.children, item.children.length);
43
+ } else {
44
+ const filterData = data.filter((item) => !item.children);
45
+ if (index === 0 || index === filterData.length - 1) {
46
+ item.class = `${index === 0 ? "first-node" : ""} ${index === filterData.length - 1 ? "last-node" : ""}`;
47
+ item.firstRow = index === 0;
48
+ } else item.class = "";
49
+ item.dataLen = len;
50
+ }
51
+ });
52
+ };
53
+ const addNode = ({ pid, insertId, data, isGroup = false, prevId = "" }) => {
54
+ if (pid === "init") {
55
+ const node = {
56
+ key: "root",
57
+ pid: "",
58
+ level: 1,
59
+ class: void 0,
60
+ operatorType: void 0,
61
+ type: void 0,
62
+ children: reactive([])
63
+ };
64
+ data.push(node);
65
+ return;
66
+ }
67
+ return data.forEach((item) => {
68
+ if (item.key === pid) {
69
+ const childrenNode = reactive(Object.assign({}, {
70
+ key: insertId,
71
+ pid: item.key,
72
+ level: Number(item.level) + 1,
73
+ class: ""
74
+ }, isGroup ? {
75
+ operatorType: void 0,
76
+ type: void 0,
77
+ children: reactive([])
78
+ } : {
79
+ firstRow: void 0,
80
+ leftValue: void 0,
81
+ operatorValue: void 0,
82
+ rightValue: void 0
83
+ }));
84
+ if (prevId) {
85
+ const index = item.children.findIndex((k) => k.key === prevId);
86
+ item.children.splice(index + 1, 0, childrenNode);
87
+ } else item.children.push(childrenNode);
88
+ item.children.forEach((i) => {
89
+ i.dataLen = item.children?.length;
90
+ });
91
+ return;
92
+ }
93
+ if (item.children) addNode({
94
+ pid,
95
+ insertId,
96
+ data: item.children,
97
+ isGroup,
98
+ prevId
99
+ });
100
+ });
101
+ };
102
+ const deleteNode = (id, data) => {
103
+ return data.forEach((item, index) => {
104
+ if (item.key === id) {
105
+ data.splice(index, 1);
106
+ return;
107
+ } else if (item.children) deleteNode(id, item.children);
108
+ });
109
+ };
110
+ const createGroupNodes = (data, pid, isInit = false) => {
111
+ const uuid = uuidGenerate.next();
112
+ addNode({
113
+ pid: isInit ? "init" : pid,
114
+ insertId: uuid,
115
+ data,
116
+ isGroup: true
117
+ });
118
+ addNode({
119
+ pid: isInit ? pid : uuid,
120
+ insertId: isInit ? uuid : uuidGenerate.next(),
121
+ data
122
+ });
123
+ setPageTreeItem(data);
124
+ };
125
+ const setTree = (data) => {
126
+ if (!data) createGroupNodes(isReadyOnly ? showDataRulesTree.value : editDataRulesTree.value, "root", true);
127
+ else {
128
+ console.log("转换成页面想要的tree结构", JSON.parse(data));
129
+ if (isReadyOnly) showDataRulesTree.value = transfromReactive(JSON.parse(data));
130
+ else editDataRulesTree.value = transfromReactive(JSON.parse(data));
131
+ }
132
+ };
133
+ const addNewGroup = (id) => {
134
+ createGroupNodes(editDataRulesTree.value, id);
135
+ };
136
+ const deleteGroup = (id) => {
137
+ deleteNode(id, editDataRulesTree.value);
138
+ setPageTreeItem(editDataRulesTree.value);
139
+ };
140
+ const addNewRow = (pid, id) => {
141
+ addNode({
142
+ pid,
143
+ insertId: uuidGenerate.next(),
144
+ data: editDataRulesTree.value,
145
+ isGroup: false,
146
+ prevId: id
147
+ });
148
+ setPageTreeItem(editDataRulesTree.value);
149
+ };
150
+ const deleteRow = (id) => {
151
+ deleteNode(id, editDataRulesTree.value);
152
+ setPageTreeItem(editDataRulesTree.value);
153
+ };
154
+ /** 递归查找是否存在树结构中的值 */
155
+ const findTreePathById = (leafId, nodes) => {
156
+ for (let i = 0; i < nodes.length; i++) {
157
+ if (leafId === nodes[i].key) return nodes[i];
158
+ if (nodes[i].children) {
159
+ const findResult = findTreePathById(leafId, nodes[i].children);
160
+ if (findResult) return findResult;
161
+ }
162
+ }
163
+ return null;
164
+ };
165
+ const updateNodeItem = (id, attr, value, opts) => {
166
+ const node = findTreePathById(id, editDataRulesTree.value);
167
+ if (!node) return;
168
+ if (attr === "rightValue") {
169
+ if (opts?.isRest) node.rightValue = reactive(opts.defaultValues.map((val) => {
170
+ return { [opts.key]: val };
171
+ }));
172
+ if (opts?.key === "valueType") node[attr][opts.index] = {};
173
+ node[attr][opts?.index][opts?.key] = value;
174
+ } else node[attr] = typeof value === "object" ? reactive(value) : value;
175
+ if (attr === "leftValue") {
176
+ /** 运算符 */
177
+ node.operatorValue = void 0;
178
+ /** 右值 */
179
+ node.rightValue = void 0;
180
+ } else if (attr === "operatorValue") node.rightValue = reactive(opts?.defaultValues?.map((val) => {
181
+ return { [opts.key]: val };
182
+ }));
183
+ };
184
+ const getAllExpandedKeys = () => {
185
+ const list = flatten(isReadyOnly ? showDataRulesTree.value : editDataRulesTree.value, "");
186
+ return {
187
+ allExpandedKeys: list.map((item) => item.key),
188
+ selectFiledKeys: list.map((item) => item.leftValue?.id).filter((i) => i)
189
+ };
190
+ };
191
+ const flatten = (array = [], pathStr) => {
192
+ return [].concat(...array.map((item) => {
193
+ item.pathStr = `${pathStr}|${item.children ? item.operatorType : "content"}`;
194
+ return [].concat({
195
+ key: item.key,
196
+ pid: item.pid,
197
+ operatorType: item.children ? item.operatorType : "content",
198
+ pathStr: item.pathStr,
199
+ leftValue: item.leftValue,
200
+ operatorValue: item.operatorValue,
201
+ rightValue: item.rightValue
202
+ }, flatten(item.children || [], item.pathStr));
203
+ }));
204
+ };
205
+ const getExpList = (array = [], parent, type) => {
206
+ return [].concat(...array.map((item) => {
207
+ let name = "";
208
+ if (!item.children && item.leftValue && item.leftValue.key && item.operatorValue && item.key) {
209
+ name = `${item.leftValue.field_search_key || item.leftValue.key}.${item.operatorValue}:${item.key}`;
210
+ if (type === "filterConfig") name = `${item.leftValue.modelKey}#${item.leftValue.key}.${item.operatorValue}:${item.key}`;
211
+ else if (type === "businessFlow") name = `${item.leftValue.nodeKey}.${item.leftValue.modelKey}.${item.operatorValue}:${item.key}`;
212
+ }
213
+ return [].concat(item.children ? [] : item.leftValue && item.leftValue.key && item.operatorValue && item.key ? {
214
+ name,
215
+ type: parent.operatorType,
216
+ operatorType: item.children ? item.operatorType : "content"
217
+ } : [], [getExpList(item.children || [], item, type)]);
218
+ }));
219
+ };
220
+ const filterExpList = (array) => {
221
+ const list = [];
222
+ array.forEach((item) => {
223
+ if (Array.isArray(item) && item.length !== 0) list.push(filterExpList(item));
224
+ else if (!Array.isArray(item) && item.operatorType === "content") list.push(item);
225
+ });
226
+ return list;
227
+ };
228
+ const setExpValue = (array) => {
229
+ const list = [];
230
+ array.forEach((item, index) => {
231
+ if (index === 0) list.push(`#before${item.type}#`);
232
+ if (Array.isArray(item) && item.length !== 0) list.push(...setExpValue(item));
233
+ else if (!Array.isArray(item)) list.push(item.name);
234
+ if (index === array.length - 1) list.push("#after#");
235
+ });
236
+ return list;
237
+ };
238
+ /** 递归得到数据规则算子 */
239
+ const getDataRules = (type, mainModelKey) => {
240
+ const list = flatten(isReadyOnly ? showDataRulesTree.value : editDataRulesTree.value, "");
241
+ let error;
242
+ const query = {};
243
+ const varKeys = [];
244
+ const typeMap = {};
245
+ list.forEach((item) => {
246
+ if (item.operatorType === "content") {
247
+ if (isEmpty(item.leftValue) || isEmpty(item.operatorValue) || isEmpty(item.rightValue)) {
248
+ error = t("sys.webRender.saveTip");
249
+ return;
250
+ }
251
+ let key = "";
252
+ if (type === "businessFlow") key = `${item.leftValue.nodeKey}.${item.leftValue.modelKey}.${item.operatorValue}:${item.key}`;
253
+ else if (type === "filterConfig") key = `${item.leftValue.modelKey}#${item.leftValue.key}.${item.operatorValue}:${item.key}`;
254
+ else key = `${item.leftValue.field_search_key || item.leftValue.key}.${item.operatorValue}:${item.key}`;
255
+ if ([SEARCH_SERVICE.ISNOTNULL, SEARCH_SERVICE.ISNULL].includes(item.operatorValue)) Object.assign(query, { [key]: null });
256
+ else {
257
+ if (item.rightValue.some((rv) => isEmpty(rv.result))) {
258
+ error = t("sys.webRender.saveTip");
259
+ return;
260
+ }
261
+ const types = [];
262
+ const values = item.rightValue.map((kk) => {
263
+ types.push(kk.valueType);
264
+ if (kk.valueType === "SYS") varKeys.push(key);
265
+ if ([
266
+ FIELD_TYPE.USER_MULTI,
267
+ FIELD_TYPE.ORG_MULTI,
268
+ FIELD_TYPE.USER,
269
+ FIELD_TYPE.ORG
270
+ ].includes(item.leftValue.type) && kk.valueType === "FIXED") {
271
+ const _orgs = kk?.result?.orgs?.map((org) => `ORG:${org}`) ?? [];
272
+ const _users = kk?.result?.users?.map((user) => `USER:${user}`) ?? [];
273
+ if ([FIELD_TYPE.USER, FIELD_TYPE.ORG].includes(item.leftValue.type) && [SEARCH_SERVICE.EQ, SEARCH_SERVICE.NE].includes(item.operatorValue)) return [..._orgs, ..._users]?.[0];
274
+ return [..._orgs, ..._users];
275
+ }
276
+ return kk?.valueType === "FIELD" ? mainModelKey ? `__F__:${mainModelKey}.${kk?.result}` : `__F__:${kk?.result.replace("$", ".")}` : kk?.result;
277
+ });
278
+ Object.assign(typeMap, { [key]: types.length === 1 ? toRaw(types[0]) : toRaw(types) });
279
+ Object.assign(query, { [key]: values.length === 1 ? toRaw(values[0]) : toRaw(values) });
280
+ }
281
+ }
282
+ });
283
+ if (error) return { error };
284
+ const explist = setExpValue(filterExpList(getExpList((isReadyOnly ? showDataRulesTree.value : editDataRulesTree.value)[0].children, (isReadyOnly ? showDataRulesTree.value : editDataRulesTree.value)[0], type)));
285
+ const expStr = explist.toString().replace(/#beforeAND#,/g, "AND(").replace(/#beforeOR#,/g, "OR(").replace(/,#after#/g, ")");
286
+ console.warn("getDataRules query", query);
287
+ console.warn("getDataRules varKeys", varKeys);
288
+ console.warn("getDataRules explist", explist);
289
+ console.warn("getDataRules expStr", expStr);
290
+ return {
291
+ query,
292
+ varKeys,
293
+ exp: expStr,
294
+ treeStr: JSON.stringify(isReadyOnly ? showDataRulesTree.value : editDataRulesTree.value),
295
+ typeMap
296
+ };
297
+ };
298
+ const resetTree = () => {
299
+ if (isReadyOnly) showDataRulesTree.value = [];
300
+ else editDataRulesTree.value = [];
301
+ };
302
+ return {
303
+ setTree,
304
+ showDataRulesTree,
305
+ editDataRulesTree,
306
+ addNewGroup,
307
+ addNewRow,
308
+ deleteGroup,
309
+ deleteRow,
310
+ updateNodeItem,
311
+ getDataRules,
312
+ resetTree,
313
+ getAllExpandedKeys
314
+ };
315
+ }
316
+ //#endregion
317
+ export { useDataRulesTree };
@@ -0,0 +1,10 @@
1
+ export declare enum EmitterEnum {
2
+ /** 打开编辑用户组弹框 */
3
+ on_edit_user_group = "on-edit-user-group",
4
+ on_refresh_detail = "on-refresh-detail",
5
+ on_delete_user_group = "on-delete-user-group"
6
+ }
7
+ export declare function useEmitter(): {
8
+ emitter: import('mitt').Emitter<Record<import('mitt').EventType, unknown>>;
9
+ EmitterEnum: typeof EmitterEnum;
10
+ };
@@ -0,0 +1,37 @@
1
+ export declare function useAsyncOptions({ bindModelKey, modelCategory }: IObject): {
2
+ getChildrens: (ids?: string[]) => Promise<void>;
3
+ getAsyncOptions: (arg: IObject) => Promise<void>;
4
+ treeData: import('vue').Ref<({
5
+ [x: string]: any;
6
+ disabled?: boolean | undefined;
7
+ checkable?: boolean | undefined;
8
+ disableCheckbox?: boolean | undefined;
9
+ children?: /*elided*/ any[] | undefined;
10
+ } | {
11
+ [x: string]: any;
12
+ disabled?: boolean | undefined;
13
+ checkable?: boolean | undefined;
14
+ disableCheckbox?: boolean | undefined;
15
+ value?: import('ant-design-vue/lib/vc-tree-select/TreeSelect').RawValueType | undefined;
16
+ title?: any;
17
+ label?: any;
18
+ key?: import('ant-design-vue/lib/vc-tree-select/interface').Key | undefined;
19
+ children?: /*elided*/ any[] | undefined;
20
+ })[] | undefined, (import('ant-design-vue/lib/vc-tree-select/TreeSelect').BaseOptionType | import('ant-design-vue/lib/vc-tree-select/TreeSelect').DefaultOptionType)[] | ({
21
+ [x: string]: any;
22
+ disabled?: boolean | undefined;
23
+ checkable?: boolean | undefined;
24
+ disableCheckbox?: boolean | undefined;
25
+ children?: /*elided*/ any[] | undefined;
26
+ } | {
27
+ [x: string]: any;
28
+ disabled?: boolean | undefined;
29
+ checkable?: boolean | undefined;
30
+ disableCheckbox?: boolean | undefined;
31
+ value?: import('ant-design-vue/lib/vc-tree-select/TreeSelect').RawValueType | undefined;
32
+ title?: any;
33
+ label?: any;
34
+ key?: import('ant-design-vue/lib/vc-tree-select/interface').Key | undefined;
35
+ children?: /*elided*/ any[] | undefined;
36
+ })[] | undefined>;
37
+ };
@@ -0,0 +1,144 @@
1
+ import select_more_default from "../components/select-more.vue.mjs";
2
+ import { h, ref } from "vue";
3
+ import { t } from "@gct-paas/core";
4
+ //#region src/modules/data-rules-container/src/hooks/useRdoHooks.ts
5
+ function useAsyncOptions({ bindModelKey, modelCategory }) {
6
+ const treeData = ref([]);
7
+ let searchField = "name_"?.split(",") || [];
8
+ async function getModelInfo() {
9
+ if (bindModelKey) {
10
+ const res = await _api.apaas.modelMeta.getInfo({ id: bindModelKey }) || {};
11
+ searchField = (res.displayField ? `${res.displayField},name_` : "name_")?.split(",") || [];
12
+ }
13
+ }
14
+ getModelInfo();
15
+ const getQueryDateByKeyWord = (keyword) => {
16
+ return searchField?.reduce((total, filedKey) => {
17
+ const expkey = filedKey.split(".").length > 1 ? filedKey : filedKey + ".like";
18
+ total[expkey] = keyword;
19
+ return total;
20
+ }, {}) || {};
21
+ };
22
+ const getExp = () => {
23
+ return `OR(${searchField.map((key) => `${key}.like`).join(",")})`;
24
+ };
25
+ async function getRdoAsyncOptions(arg = {}) {
26
+ let complete = true;
27
+ let optionsData = [];
28
+ const queryData = arg.keyword ? getQueryDateByKeyWord(arg.keyword) : {};
29
+ const queryExp = getExp();
30
+ const res = await _api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey({
31
+ bsKey: "rdoListByPage",
32
+ modelKey: bindModelKey,
33
+ modelCategory
34
+ }, {}, {
35
+ exp: queryExp,
36
+ query: queryData,
37
+ pageSize: 30,
38
+ pageNo: arg.pageNo
39
+ }) || {};
40
+ /**自定义数据源可能不存在 totalPage 默认 全部加载完成*/
41
+ complete = res.totalPage ? res.totalPage <= res.pageNo : true;
42
+ optionsData = (res?.data || []).map((i) => {
43
+ const rdoLabel = i.__LABEL__ || i.name_;
44
+ return {
45
+ value: i.id_,
46
+ title: rdoLabel,
47
+ _info: i.__CHILDREN__?.find((k) => k.default_),
48
+ full_path: h("div", [h("span", `${rdoLabel}`), h("span", { class: "gct-custom-tag ml8px" }, t("sys.default"))]),
49
+ children: i.__CHILDREN__?.map((j) => {
50
+ const versionLabel = j.__LABEL__ || j.version_;
51
+ return {
52
+ value: `${i.id_}:${j.id_}`,
53
+ title: h("div", [h("span", { class: "version" }, versionLabel), j.default_ ? h("span", { class: "version gct-custom-tag ml8px" }, t("sys.default")) : null]),
54
+ _info: { ...j },
55
+ full_path: h("div", [h("span", `${rdoLabel}:${versionLabel}`)])
56
+ };
57
+ })
58
+ };
59
+ });
60
+ return {
61
+ complete,
62
+ optionsData
63
+ };
64
+ }
65
+ /**
66
+ * 补全查询
67
+ * @param v
68
+ */
69
+ async function getChildrens({ id_ } = {}) {
70
+ const [_fId, _cId] = id_?.split(":") ?? ["", ""];
71
+ console.log("_cId", _cId);
72
+ const data = (await _api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey({
73
+ bsKey: "rdoListVersionByRefIdsWithParent",
74
+ modelKey: bindModelKey,
75
+ modelCategory
76
+ }, { foreignFields: [] }, {
77
+ refIds: id_,
78
+ includeDeleted: 1
79
+ }) || {})?.data?.[0];
80
+ const rdoLabel = data.__LABEL__ || data.name_;
81
+ let children = [];
82
+ try {
83
+ children = (await _api.apaas.modelComprehensive.postBizServiceModelCategoryModelKeyBsKey({
84
+ bsKey: "rdoListVersionById",
85
+ modelKey: bindModelKey,
86
+ modelCategory
87
+ }, { foreignFields: [] }, { id: _fId }) || {}).data?.map((i) => {
88
+ const versionLabel = i.__LABEL__ || i.version_;
89
+ return {
90
+ value: `${_fId}:${i.id_}`,
91
+ title: h("div", [h("span", { class: "version" }, versionLabel), i.default_ ? h("span", { class: "version gct-custom-tag ml8px" }, t("sys.default")) : null]),
92
+ _info: { ...i },
93
+ full_path: h("div", [h("span", `${rdoLabel}:${versionLabel}`)])
94
+ };
95
+ });
96
+ } catch (error) {
97
+ console.error("getChildrens 获取子节点失败:", error);
98
+ }
99
+ return {
100
+ value: _fId,
101
+ title: rdoLabel,
102
+ full_path: h("div", [h("span", `${rdoLabel}`), h("span", { class: "gct-custom-tag ml8px" }, t("sys.default"))]),
103
+ children
104
+ };
105
+ }
106
+ async function getAsyncOptions(arg) {
107
+ if (!arg.pageNo) arg.pageNo = 1;
108
+ const { optionsData, complete } = await getRdoAsyncOptions(arg);
109
+ if (treeData.value?.length) if (arg.pageNo > 1) treeData.value?.pop();
110
+ else treeData.value = [];
111
+ optionsData.forEach((i) => {
112
+ treeData.value?.push(i);
113
+ });
114
+ if (!complete) treeData.value?.push({
115
+ selectable: false,
116
+ title: () => h(select_more_default, { onNextOnce: () => {
117
+ arg.pageNo += 1;
118
+ getAsyncOptions(arg);
119
+ } })
120
+ });
121
+ }
122
+ return {
123
+ getChildrens: async (ids = []) => {
124
+ try {
125
+ if (!Array.isArray(ids) || ids.length === 0) return;
126
+ for (const id_ of ids) {
127
+ if (!id_) continue;
128
+ const [_fId, _cId] = id_.split(":");
129
+ console.log("_cId", _cId);
130
+ if (treeData.value?.some((item) => item.value === _fId)) continue;
131
+ const row = await getChildrens({ id_ });
132
+ if (treeData.value?.some((item) => item.value === _fId)) continue;
133
+ if (row) treeData.value?.unshift(row);
134
+ }
135
+ } catch (error) {
136
+ console.error("getChildrens 批量加载失败:", error);
137
+ }
138
+ },
139
+ getAsyncOptions,
140
+ treeData
141
+ };
142
+ }
143
+ //#endregion
144
+ export { useAsyncOptions };
@@ -0,0 +1,8 @@
1
+ export declare function useRole(): {
2
+ userGroupUsePerms: import('vue').ComputedRef<{
3
+ Insert: boolean;
4
+ Update: boolean;
5
+ Delete: boolean;
6
+ }>;
7
+ inEDHRApp: import('vue').ComputedRef<boolean>;
8
+ };
@@ -0,0 +1,40 @@
1
+ import { FieldMetaDTO } from '@gct-paas/api/apaas';
2
+ export type LocalFieldMetaDTO = FieldMetaDTO & {
3
+ __bindFields: string[];
4
+ };
5
+ export interface OptionItem {
6
+ label: string;
7
+ value: string;
8
+ disabled?: boolean;
9
+ type?: string;
10
+ }
11
+ export interface ApiParams {
12
+ modelKey: string;
13
+ [key: string]: string;
14
+ }
15
+ export interface CompProps {
16
+ value?: string | string[];
17
+ api: (params: IObject) => Promise<IObject>;
18
+ apiParams: ApiParams;
19
+ filterType?: string;
20
+ }
21
+ export interface TreeProps {
22
+ data: IObject;
23
+ /** 树的层级,从0开始 */
24
+ level?: number;
25
+ /** key */
26
+ id: string;
27
+ /** 操作类型 */
28
+ operatorType: string;
29
+ readonly: boolean;
30
+ }
31
+ export interface IPickerCompParams {
32
+ modelKey?: string;
33
+ fieldKey?: string;
34
+ multiple: boolean;
35
+ }
36
+ export interface ModalCompProps {
37
+ supportModalType: string;
38
+ pickerCompParams: IPickerCompParams;
39
+ value: string | string[];
40
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/core-web",
3
- "version": "0.1.6-dev.6",
3
+ "version": "0.1.6-dev.8",
4
4
  "type": "module",
5
5
  "description": "paas 平台网页端核心包",
6
6
  "loader": "dist/loader.esm.min.js",
@@ -33,7 +33,7 @@
33
33
  "dependencies": {
34
34
  "@ant-design/icons-vue": "^6.1.0",
35
35
  "@floating-ui/dom": "^1.7.6",
36
- "@gct-paas/api": "^0.1.6-dev.4",
36
+ "@gct-paas/api": "^0.1.6-dev.5",
37
37
  "@gct-paas/flow": "0.0.1-dev.1",
38
38
  "@gct-paas/platform-icons": "^0.0.2",
39
39
  "@icon-park/vue-next": "^1.4.2",
@@ -64,18 +64,18 @@
64
64
  "vxe-table": "npm:@gct-paas/vxe-table@4.6.19",
65
65
  "wujie": "^1.0.29",
66
66
  "wujie-vue3": "^1.0.29",
67
- "@gct-paas/core": "0.1.6-dev.6",
68
- "@gct-paas/scss": "0.1.6-dev.6",
69
- "@gct-paas/core-components": "0.1.6-dev.6"
67
+ "@gct-paas/scss": "0.1.6-dev.8",
68
+ "@gct-paas/core-components": "0.1.6-dev.8",
69
+ "@gct-paas/core": "0.1.6-dev.8"
70
70
  },
71
71
  "peerDependencies": {
72
- "@gct-paas/api": "^0.1.6-dev.4",
72
+ "@gct-paas/api": "^0.1.6-dev.5",
73
73
  "@types/sortablejs": "^1.15.1",
74
74
  "vant": ">=4",
75
75
  "vue": ">=3",
76
- "@gct-paas/core": "0.1.6-dev.6",
77
- "@gct-paas/core-components": "0.1.6-dev.6",
78
- "@gct-paas/scss": "0.1.6-dev.6"
76
+ "@gct-paas/core": "0.1.6-dev.8",
77
+ "@gct-paas/core-components": "0.1.6-dev.8",
78
+ "@gct-paas/scss": "0.1.6-dev.8"
79
79
  },
80
80
  "devDependencies": {
81
81
  "@types/bwip-js": "^3.2.3"