@cgboiler/biz-mobile 1.18.22 → 1.18.23
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/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/org-picker/OrgPicker.js +25 -30
- package/es/org-picker/useApi.js +56 -34
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/org-picker/OrgPicker.js +25 -30
- package/lib/org-picker/useApi.js +56 -34
- package/package.json +1 -1
package/es/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ declare namespace _default {
|
|
|
7
7
|
}
|
|
8
8
|
export default _default;
|
|
9
9
|
export function install(app: any): void;
|
|
10
|
-
export const version: "1.18.
|
|
10
|
+
export const version: "1.18.22";
|
|
11
11
|
import MdPreview from './md-preview';
|
|
12
12
|
import OrgPicker from './org-picker';
|
|
13
13
|
import ProjectSelect from './project-select';
|
package/es/index.js
CHANGED
|
@@ -59,29 +59,24 @@ var stdin_default = defineComponent({
|
|
|
59
59
|
isSearchFocus
|
|
60
60
|
});
|
|
61
61
|
const selectedItems = ref([]);
|
|
62
|
-
const
|
|
63
|
-
const partiallySelectedDepts = ref(/* @__PURE__ */ new Set());
|
|
64
|
-
const updateDeptSelectionStatus = () => {
|
|
62
|
+
const getDeptStatus = (deptId) => {
|
|
65
63
|
if (!props.multiple)
|
|
66
|
-
return
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
return {
|
|
65
|
+
fully: false,
|
|
66
|
+
partially: false
|
|
67
|
+
};
|
|
68
|
+
const deptUsers = getUsersByDeptId(deptId);
|
|
69
|
+
if (deptUsers.length === 0)
|
|
70
|
+
return {
|
|
71
|
+
fully: false,
|
|
72
|
+
partially: false
|
|
73
|
+
};
|
|
69
74
|
const selectedUserIds = new Set(selectedItems.value.map((item) => item.id));
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const selectedCount = groupUsers.filter((user) => selectedUserIds.has(user.id)).length;
|
|
75
|
-
if (selectedCount === groupUsers.length) {
|
|
76
|
-
newFullySelected.add(groupId);
|
|
77
|
-
} else if (selectedCount > 0) {
|
|
78
|
-
newPartiallySelected.add(groupId);
|
|
79
|
-
}
|
|
75
|
+
const selectedCount = deptUsers.filter((user) => selectedUserIds.has(user.id)).length;
|
|
76
|
+
return {
|
|
77
|
+
fully: selectedCount === deptUsers.length,
|
|
78
|
+
partially: selectedCount > 0 && selectedCount < deptUsers.length
|
|
80
79
|
};
|
|
81
|
-
api.deptList.value.forEach((dept) => checkGroupStatus(dept.id));
|
|
82
|
-
api.getCompanies().forEach((comp) => checkGroupStatus(comp.id));
|
|
83
|
-
fullySelectedDepts.value = newFullySelected;
|
|
84
|
-
partiallySelectedDepts.value = newPartiallySelected;
|
|
85
80
|
};
|
|
86
81
|
const sortOrgList = computed(() => {
|
|
87
82
|
const departments = orgList.value.filter((item) => item.type === "dept");
|
|
@@ -97,17 +92,11 @@ var stdin_default = defineComponent({
|
|
|
97
92
|
if (userList == null ? void 0 : userList.length) {
|
|
98
93
|
selectedItems.value = newValue.map((id) => {
|
|
99
94
|
return userList.find((item) => item.id === id);
|
|
100
|
-
});
|
|
101
|
-
updateDeptSelectionStatus();
|
|
95
|
+
}).filter(Boolean);
|
|
102
96
|
}
|
|
103
97
|
}), {
|
|
104
98
|
immediate: true
|
|
105
99
|
});
|
|
106
|
-
watch(() => selectedItems.value, () => {
|
|
107
|
-
updateDeptSelectionStatus();
|
|
108
|
-
}, {
|
|
109
|
-
deep: true
|
|
110
|
-
});
|
|
111
100
|
watch(() => props.show, (newValue) => {
|
|
112
101
|
const handleKeyDown = (event) => {
|
|
113
102
|
if (event.key === "Escape") {
|
|
@@ -127,7 +116,9 @@ var stdin_default = defineComponent({
|
|
|
127
116
|
if (item.type !== "dept" || !props.multiple)
|
|
128
117
|
return;
|
|
129
118
|
const deptUsers = getUsersByDeptId(item.id);
|
|
130
|
-
const
|
|
119
|
+
const {
|
|
120
|
+
fully: isFullySelected
|
|
121
|
+
} = getDeptStatus(item.id);
|
|
131
122
|
const deduplicateById = (arr) => {
|
|
132
123
|
const seenIds = /* @__PURE__ */ new Set();
|
|
133
124
|
return arr.filter((item2) => {
|
|
@@ -276,8 +267,12 @@ var stdin_default = defineComponent({
|
|
|
276
267
|
}, null) : _createVNode(List, null, {
|
|
277
268
|
default: () => [sortOrgList.value.map((item) => {
|
|
278
269
|
const isDept = item.type === "dept";
|
|
279
|
-
const
|
|
280
|
-
|
|
270
|
+
const status = isDept ? getDeptStatus(item.id) : {
|
|
271
|
+
fully: false,
|
|
272
|
+
partially: false
|
|
273
|
+
};
|
|
274
|
+
const isFullySelected = status.fully;
|
|
275
|
+
const isPartiallySelected = status.partially;
|
|
281
276
|
const isUserSelected = !isDept && isSelected(item);
|
|
282
277
|
return _createVNode("div", {
|
|
283
278
|
"class": ["org-item", isUserSelected ? "selected" : "", isFullySelected ? "dept-fully-selected" : "", isPartiallySelected ? "dept-partially-selected" : ""],
|
package/es/org-picker/useApi.js
CHANGED
|
@@ -64,6 +64,47 @@ const deptMap = computed(() => {
|
|
|
64
64
|
});
|
|
65
65
|
return map;
|
|
66
66
|
});
|
|
67
|
+
const deptToUsersMap = computed(() => {
|
|
68
|
+
const map = /* @__PURE__ */ new Map();
|
|
69
|
+
userList.value.forEach((u) => {
|
|
70
|
+
if (u.status === 5)
|
|
71
|
+
return;
|
|
72
|
+
const list = map.get(u.deptId) || [];
|
|
73
|
+
list.push(u);
|
|
74
|
+
map.set(u.deptId, list);
|
|
75
|
+
});
|
|
76
|
+
userList.value.forEach((u) => {
|
|
77
|
+
if (u.status === 5)
|
|
78
|
+
return;
|
|
79
|
+
if (!u.deptId || u.deptId === "0") {
|
|
80
|
+
const cid = u.companyId;
|
|
81
|
+
if (cid) {
|
|
82
|
+
const list = map.get(`root_${cid}`) || [];
|
|
83
|
+
list.push(u);
|
|
84
|
+
map.set(`root_${cid}`, list);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return map;
|
|
89
|
+
});
|
|
90
|
+
const deptToSubDeptsMap = computed(() => {
|
|
91
|
+
const map = /* @__PURE__ */ new Map();
|
|
92
|
+
deptList.value.forEach((d) => {
|
|
93
|
+
const pid = d.parentId || "0";
|
|
94
|
+
const list = map.get(pid) || [];
|
|
95
|
+
list.push(d);
|
|
96
|
+
map.set(pid, list);
|
|
97
|
+
});
|
|
98
|
+
deptList.value.forEach((d) => {
|
|
99
|
+
if (d.parentId === "0" || !d.parentId) {
|
|
100
|
+
const cid = d.companyId;
|
|
101
|
+
const list = map.get(`root_${cid}`) || [];
|
|
102
|
+
list.push(d);
|
|
103
|
+
map.set(`root_${cid}`, list);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
return map;
|
|
107
|
+
});
|
|
67
108
|
let initPromise = null;
|
|
68
109
|
const fetchAllCompaniesData = () => __async(void 0, null, function* () {
|
|
69
110
|
const companyIds = [COMPANY_CHUANGUO, COMPANY_HAZHOU];
|
|
@@ -408,54 +449,35 @@ const useApi = () => {
|
|
|
408
449
|
};
|
|
409
450
|
const getUsersByDeptId = (deptId, cid, visited = /* @__PURE__ */ new Set()) => {
|
|
410
451
|
const effectiveCompanyId = cid || browsedCompanyId.value;
|
|
411
|
-
if (visited.has(deptId))
|
|
452
|
+
if (visited.has(deptId))
|
|
412
453
|
return [];
|
|
413
|
-
}
|
|
414
454
|
visited.add(deptId);
|
|
415
455
|
const isCompany = COMPANIES.some((c) => c.id === deptId);
|
|
416
456
|
if (isCompany) {
|
|
417
457
|
const companyId = deptId;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
result.push(
|
|
424
|
-
...userList.value.filter(
|
|
425
|
-
(u) => u.companyId === dId && (u.deptId === "0" || !u.deptId) && u.status !== 5
|
|
426
|
-
)
|
|
427
|
-
);
|
|
428
|
-
} else {
|
|
429
|
-
result.push(
|
|
430
|
-
...userList.value.filter(
|
|
431
|
-
(u) => u.deptId === dId && u.companyId === companyId && u.status !== 5
|
|
432
|
-
)
|
|
433
|
-
);
|
|
434
|
-
}
|
|
435
|
-
const children = dId === companyId ? deptList.value.filter((d) => d.companyId === dId && (d.parentId === "0" || !d.parentId)) : deptList.value.filter((d) => d.parentId === dId && d.companyId === companyId);
|
|
458
|
+
const result2 = [];
|
|
459
|
+
const traverse = (dId, isRoot) => {
|
|
460
|
+
const users = deptToUsersMap.value.get(isRoot ? `root_${companyId}` : dId) || [];
|
|
461
|
+
result2.push(...users);
|
|
462
|
+
const children = deptToSubDeptsMap.value.get(isRoot ? `root_${companyId}` : dId) || [];
|
|
436
463
|
children.forEach((child) => {
|
|
437
464
|
if (!visited.has(child.id)) {
|
|
438
465
|
visited.add(child.id);
|
|
439
|
-
|
|
466
|
+
traverse(child.id, false);
|
|
440
467
|
}
|
|
441
468
|
});
|
|
442
|
-
return result;
|
|
443
469
|
};
|
|
444
|
-
|
|
470
|
+
traverse(companyId, true);
|
|
471
|
+
return result2;
|
|
445
472
|
}
|
|
446
|
-
const
|
|
447
|
-
const directUsers =
|
|
448
|
-
|
|
449
|
-
);
|
|
450
|
-
users.push(...directUsers);
|
|
451
|
-
const childDepts = deptList.value.filter(
|
|
452
|
-
(dept) => dept.parentId === deptId && (!effectiveCompanyId || dept.companyId === effectiveCompanyId)
|
|
453
|
-
);
|
|
473
|
+
const result = [];
|
|
474
|
+
const directUsers = deptToUsersMap.value.get(deptId) || [];
|
|
475
|
+
result.push(...directUsers);
|
|
476
|
+
const childDepts = deptToSubDeptsMap.value.get(deptId) || [];
|
|
454
477
|
childDepts.forEach((childDept) => {
|
|
455
|
-
|
|
456
|
-
users.push(...childUsers);
|
|
478
|
+
result.push(...getUsersByDeptId(childDept.id, effectiveCompanyId, visited));
|
|
457
479
|
});
|
|
458
|
-
return
|
|
480
|
+
return result;
|
|
459
481
|
};
|
|
460
482
|
const getDeptById = (deptId) => {
|
|
461
483
|
return deptMap.value.get(deptId);
|
package/lib/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ declare namespace _default {
|
|
|
7
7
|
}
|
|
8
8
|
export default _default;
|
|
9
9
|
export function install(app: any): void;
|
|
10
|
-
export const version: "1.18.
|
|
10
|
+
export const version: "1.18.22";
|
|
11
11
|
import MdPreview from './md-preview';
|
|
12
12
|
import OrgPicker from './org-picker';
|
|
13
13
|
import ProjectSelect from './project-select';
|
package/lib/index.js
CHANGED
|
@@ -42,7 +42,7 @@ var import_project_select = __toESM(require("./project-select"));
|
|
|
42
42
|
__reExport(stdin_exports, require("./md-preview"), module.exports);
|
|
43
43
|
__reExport(stdin_exports, require("./org-picker"), module.exports);
|
|
44
44
|
__reExport(stdin_exports, require("./project-select"), module.exports);
|
|
45
|
-
const version = "1.18.
|
|
45
|
+
const version = "1.18.22";
|
|
46
46
|
function install(app) {
|
|
47
47
|
const components = [
|
|
48
48
|
import_md_preview.default,
|
|
@@ -91,29 +91,24 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
91
91
|
isSearchFocus
|
|
92
92
|
});
|
|
93
93
|
const selectedItems = (0, import_vue2.ref)([]);
|
|
94
|
-
const
|
|
95
|
-
const partiallySelectedDepts = (0, import_vue2.ref)(/* @__PURE__ */ new Set());
|
|
96
|
-
const updateDeptSelectionStatus = () => {
|
|
94
|
+
const getDeptStatus = (deptId) => {
|
|
97
95
|
if (!props.multiple)
|
|
98
|
-
return
|
|
99
|
-
|
|
100
|
-
|
|
96
|
+
return {
|
|
97
|
+
fully: false,
|
|
98
|
+
partially: false
|
|
99
|
+
};
|
|
100
|
+
const deptUsers = getUsersByDeptId(deptId);
|
|
101
|
+
if (deptUsers.length === 0)
|
|
102
|
+
return {
|
|
103
|
+
fully: false,
|
|
104
|
+
partially: false
|
|
105
|
+
};
|
|
101
106
|
const selectedUserIds = new Set(selectedItems.value.map((item) => item.id));
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
const selectedCount = groupUsers.filter((user) => selectedUserIds.has(user.id)).length;
|
|
107
|
-
if (selectedCount === groupUsers.length) {
|
|
108
|
-
newFullySelected.add(groupId);
|
|
109
|
-
} else if (selectedCount > 0) {
|
|
110
|
-
newPartiallySelected.add(groupId);
|
|
111
|
-
}
|
|
107
|
+
const selectedCount = deptUsers.filter((user) => selectedUserIds.has(user.id)).length;
|
|
108
|
+
return {
|
|
109
|
+
fully: selectedCount === deptUsers.length,
|
|
110
|
+
partially: selectedCount > 0 && selectedCount < deptUsers.length
|
|
112
111
|
};
|
|
113
|
-
api.deptList.value.forEach((dept) => checkGroupStatus(dept.id));
|
|
114
|
-
api.getCompanies().forEach((comp) => checkGroupStatus(comp.id));
|
|
115
|
-
fullySelectedDepts.value = newFullySelected;
|
|
116
|
-
partiallySelectedDepts.value = newPartiallySelected;
|
|
117
112
|
};
|
|
118
113
|
const sortOrgList = (0, import_vue2.computed)(() => {
|
|
119
114
|
const departments = orgList.value.filter((item) => item.type === "dept");
|
|
@@ -129,17 +124,11 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
129
124
|
if (userList == null ? void 0 : userList.length) {
|
|
130
125
|
selectedItems.value = newValue.map((id) => {
|
|
131
126
|
return userList.find((item) => item.id === id);
|
|
132
|
-
});
|
|
133
|
-
updateDeptSelectionStatus();
|
|
127
|
+
}).filter(Boolean);
|
|
134
128
|
}
|
|
135
129
|
}), {
|
|
136
130
|
immediate: true
|
|
137
131
|
});
|
|
138
|
-
(0, import_vue2.watch)(() => selectedItems.value, () => {
|
|
139
|
-
updateDeptSelectionStatus();
|
|
140
|
-
}, {
|
|
141
|
-
deep: true
|
|
142
|
-
});
|
|
143
132
|
(0, import_vue2.watch)(() => props.show, (newValue) => {
|
|
144
133
|
const handleKeyDown = (event) => {
|
|
145
134
|
if (event.key === "Escape") {
|
|
@@ -159,7 +148,9 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
159
148
|
if (item.type !== "dept" || !props.multiple)
|
|
160
149
|
return;
|
|
161
150
|
const deptUsers = getUsersByDeptId(item.id);
|
|
162
|
-
const
|
|
151
|
+
const {
|
|
152
|
+
fully: isFullySelected
|
|
153
|
+
} = getDeptStatus(item.id);
|
|
163
154
|
const deduplicateById = (arr) => {
|
|
164
155
|
const seenIds = /* @__PURE__ */ new Set();
|
|
165
156
|
return arr.filter((item2) => {
|
|
@@ -308,8 +299,12 @@ var stdin_default = (0, import_vue2.defineComponent)({
|
|
|
308
299
|
}, null) : (0, import_vue.createVNode)(import_vant.List, null, {
|
|
309
300
|
default: () => [sortOrgList.value.map((item) => {
|
|
310
301
|
const isDept = item.type === "dept";
|
|
311
|
-
const
|
|
312
|
-
|
|
302
|
+
const status = isDept ? getDeptStatus(item.id) : {
|
|
303
|
+
fully: false,
|
|
304
|
+
partially: false
|
|
305
|
+
};
|
|
306
|
+
const isFullySelected = status.fully;
|
|
307
|
+
const isPartiallySelected = status.partially;
|
|
313
308
|
const isUserSelected = !isDept && isSelected(item);
|
|
314
309
|
return (0, import_vue.createVNode)("div", {
|
|
315
310
|
"class": ["org-item", isUserSelected ? "selected" : "", isFullySelected ? "dept-fully-selected" : "", isPartiallySelected ? "dept-partially-selected" : ""],
|
package/lib/org-picker/useApi.js
CHANGED
|
@@ -85,6 +85,47 @@ const deptMap = (0, import_vue.computed)(() => {
|
|
|
85
85
|
});
|
|
86
86
|
return map;
|
|
87
87
|
});
|
|
88
|
+
const deptToUsersMap = (0, import_vue.computed)(() => {
|
|
89
|
+
const map = /* @__PURE__ */ new Map();
|
|
90
|
+
userList.value.forEach((u) => {
|
|
91
|
+
if (u.status === 5)
|
|
92
|
+
return;
|
|
93
|
+
const list = map.get(u.deptId) || [];
|
|
94
|
+
list.push(u);
|
|
95
|
+
map.set(u.deptId, list);
|
|
96
|
+
});
|
|
97
|
+
userList.value.forEach((u) => {
|
|
98
|
+
if (u.status === 5)
|
|
99
|
+
return;
|
|
100
|
+
if (!u.deptId || u.deptId === "0") {
|
|
101
|
+
const cid = u.companyId;
|
|
102
|
+
if (cid) {
|
|
103
|
+
const list = map.get(`root_${cid}`) || [];
|
|
104
|
+
list.push(u);
|
|
105
|
+
map.set(`root_${cid}`, list);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return map;
|
|
110
|
+
});
|
|
111
|
+
const deptToSubDeptsMap = (0, import_vue.computed)(() => {
|
|
112
|
+
const map = /* @__PURE__ */ new Map();
|
|
113
|
+
deptList.value.forEach((d) => {
|
|
114
|
+
const pid = d.parentId || "0";
|
|
115
|
+
const list = map.get(pid) || [];
|
|
116
|
+
list.push(d);
|
|
117
|
+
map.set(pid, list);
|
|
118
|
+
});
|
|
119
|
+
deptList.value.forEach((d) => {
|
|
120
|
+
if (d.parentId === "0" || !d.parentId) {
|
|
121
|
+
const cid = d.companyId;
|
|
122
|
+
const list = map.get(`root_${cid}`) || [];
|
|
123
|
+
list.push(d);
|
|
124
|
+
map.set(`root_${cid}`, list);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return map;
|
|
128
|
+
});
|
|
88
129
|
let initPromise = null;
|
|
89
130
|
const fetchAllCompaniesData = () => __async(void 0, null, function* () {
|
|
90
131
|
const companyIds = [COMPANY_CHUANGUO, COMPANY_HAZHOU];
|
|
@@ -429,54 +470,35 @@ const useApi = () => {
|
|
|
429
470
|
};
|
|
430
471
|
const getUsersByDeptId = (deptId, cid, visited = /* @__PURE__ */ new Set()) => {
|
|
431
472
|
const effectiveCompanyId = cid || browsedCompanyId.value;
|
|
432
|
-
if (visited.has(deptId))
|
|
473
|
+
if (visited.has(deptId))
|
|
433
474
|
return [];
|
|
434
|
-
}
|
|
435
475
|
visited.add(deptId);
|
|
436
476
|
const isCompany = COMPANIES.some((c) => c.id === deptId);
|
|
437
477
|
if (isCompany) {
|
|
438
478
|
const companyId = deptId;
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
result.push(
|
|
445
|
-
...userList.value.filter(
|
|
446
|
-
(u) => u.companyId === dId && (u.deptId === "0" || !u.deptId) && u.status !== 5
|
|
447
|
-
)
|
|
448
|
-
);
|
|
449
|
-
} else {
|
|
450
|
-
result.push(
|
|
451
|
-
...userList.value.filter(
|
|
452
|
-
(u) => u.deptId === dId && u.companyId === companyId && u.status !== 5
|
|
453
|
-
)
|
|
454
|
-
);
|
|
455
|
-
}
|
|
456
|
-
const children = dId === companyId ? deptList.value.filter((d) => d.companyId === dId && (d.parentId === "0" || !d.parentId)) : deptList.value.filter((d) => d.parentId === dId && d.companyId === companyId);
|
|
479
|
+
const result2 = [];
|
|
480
|
+
const traverse = (dId, isRoot) => {
|
|
481
|
+
const users = deptToUsersMap.value.get(isRoot ? `root_${companyId}` : dId) || [];
|
|
482
|
+
result2.push(...users);
|
|
483
|
+
const children = deptToSubDeptsMap.value.get(isRoot ? `root_${companyId}` : dId) || [];
|
|
457
484
|
children.forEach((child) => {
|
|
458
485
|
if (!visited.has(child.id)) {
|
|
459
486
|
visited.add(child.id);
|
|
460
|
-
|
|
487
|
+
traverse(child.id, false);
|
|
461
488
|
}
|
|
462
489
|
});
|
|
463
|
-
return result;
|
|
464
490
|
};
|
|
465
|
-
|
|
491
|
+
traverse(companyId, true);
|
|
492
|
+
return result2;
|
|
466
493
|
}
|
|
467
|
-
const
|
|
468
|
-
const directUsers =
|
|
469
|
-
|
|
470
|
-
);
|
|
471
|
-
users.push(...directUsers);
|
|
472
|
-
const childDepts = deptList.value.filter(
|
|
473
|
-
(dept) => dept.parentId === deptId && (!effectiveCompanyId || dept.companyId === effectiveCompanyId)
|
|
474
|
-
);
|
|
494
|
+
const result = [];
|
|
495
|
+
const directUsers = deptToUsersMap.value.get(deptId) || [];
|
|
496
|
+
result.push(...directUsers);
|
|
497
|
+
const childDepts = deptToSubDeptsMap.value.get(deptId) || [];
|
|
475
498
|
childDepts.forEach((childDept) => {
|
|
476
|
-
|
|
477
|
-
users.push(...childUsers);
|
|
499
|
+
result.push(...getUsersByDeptId(childDept.id, effectiveCompanyId, visited));
|
|
478
500
|
});
|
|
479
|
-
return
|
|
501
|
+
return result;
|
|
480
502
|
};
|
|
481
503
|
const getDeptById = (deptId) => {
|
|
482
504
|
return deptMap.value.get(deptId);
|