@baishuyun/ui-business 5.1.2 → 5.1.5

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 (36) hide show
  1. package/dist/DeptsMemberSelector/{Department-CkzkA99U.js → Department-12ftZfXD.js} +4 -4
  2. package/dist/DeptsMemberSelector/{DeptsMemberSelector-pLcrkrr2.js → DeptsMemberSelector-BXWGwgUq.js} +160 -154
  3. package/dist/DeptsMemberSelector/DeptsUser-C8hYQ6z-.js +790 -0
  4. package/dist/DeptsMemberSelector/ExtraConcactPanel-BDNrz5rV.js +647 -0
  5. package/dist/DeptsMemberSelector/Member-B4tEHksu.js +375 -0
  6. package/dist/DeptsMemberSelector/{OrganizationPanel-BAhvhgOL.js → OrganizationPanel-DoM4UNxv.js} +3 -3
  7. package/dist/DeptsMemberSelector/{RelationShipDepts-DadyalUU.js → RelationShipDepts-kpemRPz1.js} +1 -1
  8. package/dist/DeptsMemberSelector/{RelationShipList-BVTUyw1-.js → RelationShipList-BhiAdVjm.js} +1 -1
  9. package/dist/DeptsMemberSelector/{TabGroup-DjfuvblW.js → TabGroup-Ds7bTbKL.js} +20 -4
  10. package/dist/DeptsMemberSelector/index.js +10 -10
  11. package/dist/DeptsMemberSelector/services/contact/{selector.service-cz8fZZaA.js → selector.service-CY5vQea8.js} +5 -3
  12. package/dist/DeptsMemberSelector/subcomponents/Entity/Department/index.js +4 -4
  13. package/dist/DeptsMemberSelector/subcomponents/Entity/DeptsUser/index.js +7 -7
  14. package/dist/DeptsMemberSelector/subcomponents/Entity/Member/index.js +4 -4
  15. package/dist/DeptsMemberSelector/subcomponents/Panels/MemberRelationShipPanel/RelationShipDepts/index.js +2 -2
  16. package/dist/DeptsMemberSelector/subcomponents/Panels/MemberRelationShipPanel/RelationShipList/index.js +2 -2
  17. package/dist/DeptsMemberSelector/{useDeptsMemberSelector-xc9GWJaL.js → useDeptsMemberSelector-t7b8yu-A.js} +1 -1
  18. package/dist/DeptsMemberSelector/utils/index.js +7 -4
  19. package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersPositionPanel/DeptUsersPositionPanel.d.ts +2 -0
  20. package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersPositionPanel/useDeptUsersPositionPanelData.d.ts +50 -0
  21. package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersRolePanel/DeptUsersRolePanel.d.ts +2 -0
  22. package/dist/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersRolePanel/useDeptUsersRolePanelData.d.ts +40 -0
  23. package/dist/components/DeptsMemberSelector/subcomponents/Panels/MemberRelationShipPanel/RelationShipMember/RelationShipMember.d.ts +1 -1
  24. package/dist/components/DeptsMemberSelector/subcomponents/Panels/MemberRelationShipPanel/useMemberRelationShipPanelData.d.ts +1 -1
  25. package/dist/components/DeptsMemberSelector/utils/index.d.ts +2 -1
  26. package/dist/index.css +1 -1
  27. package/dist/index.js +10 -10
  28. package/dist/lang/en-US.json.d.ts +4 -1
  29. package/dist/lang/zh-CN.json.d.ts +4 -1
  30. package/dist/services/contact/selector.service.d.ts +6 -1
  31. package/dist/vendors/services/contact/path.js +3 -6
  32. package/dist/vendors/useLocale.js +8 -2
  33. package/package.json +1 -1
  34. package/dist/DeptsMemberSelector/DeptsUser-C7_gkn3k.js +0 -366
  35. package/dist/DeptsMemberSelector/ExtraConcactPanel-BRkvxzbe.js +0 -934
  36. package/dist/DeptsMemberSelector/Member-CXVybdp_.js +0 -64
@@ -0,0 +1,790 @@
1
+ import { t as e } from "../vendors/simplebar-react.js";
2
+ import { t } from "../vendors/clsx.js";
3
+ import { t as n } from "./useDeptsMemberSelector-t7b8yu-A.js";
4
+ import { c as r, n as i, o as a, r as o, s } from "./services/contact/selector.service-CY5vQea8.js";
5
+ import { n as c } from "./TabGroup-Ds7bTbKL.js";
6
+ import { t as l } from "../vendors/useLocale.js";
7
+ import { buildDeptTree as u, buildTree as d, getColorByName as f } from "./utils/index.js";
8
+ import { t as p } from "./OrganizationPanel-DoM4UNxv.js";
9
+ import { n as m, t as h } from "./ExtraConcactPanel-BDNrz5rV.js";
10
+ import { t as g } from "./RelationShipList-BhiAdVjm.js";
11
+ import { t as _ } from "./RelationShipDepts-kpemRPz1.js";
12
+ import { useMemo as v, useState as y } from "react";
13
+ import { Avatar as b, Spin as x } from "antd";
14
+ import { Checkbox as S, Icon as C, Tree as w } from "@baishuyun/ui-base";
15
+ import { useRequest as T } from "ahooks";
16
+ import { jsx as E, jsxs as D } from "react/jsx-runtime";
17
+ //#region src/utils/recordSelectedNode.ts
18
+ function O(e, t) {
19
+ let n = "bsy_dept_member";
20
+ try {
21
+ let r = sessionStorage.getItem(n), i = r ? JSON.parse(r) : [];
22
+ if (i.some((t) => t._id === e)) return;
23
+ let a = t.find((t) => t._id === e);
24
+ if (!a) {
25
+ console.warn(`未找到 id 为 ${e} 的节点信息`);
26
+ return;
27
+ }
28
+ i.push(a), sessionStorage.setItem(n, JSON.stringify(i));
29
+ } catch (e) {
30
+ console.error("记录选中节点时发生错误:", e);
31
+ }
32
+ }
33
+ //#endregion
34
+ //#region src/components/DeptsMemberSelector/subcomponents/Panels/DeptUsersPositionPanel/DeptUsersPositionPanel.module.scss
35
+ var k = {
36
+ "dept-users-position-panel": "_dept-users-position-panel_wnw63_1",
37
+ "dept-users-position-panel__department": "_dept-users-position-panel__department_wnw63_6",
38
+ "dept-users-position-panel__mode": "_dept-users-position-panel__mode_wnw63_11",
39
+ "dept-users-position-panel__mode-list": "_dept-users-position-panel__mode-list_wnw63_16",
40
+ "dept-users-position-panel__mode-item": "_dept-users-position-panel__mode-item_wnw63_22",
41
+ "dept-users-position-panel__mode-item--active": "_dept-users-position-panel__mode-item--active_wnw63_32",
42
+ "dept-users-position-panel__positions": "_dept-users-position-panel__positions_wnw63_39",
43
+ "dept-users-position-panel__position-group": "_dept-users-position-panel__position-group_wnw63_45",
44
+ "dept-users-position-panel__position-item": "_dept-users-position-panel__position-item_wnw63_50",
45
+ "dept-users-position-panel__position-checkbox": "_dept-users-position-panel__position-checkbox_wnw63_58",
46
+ "dept-users-position-panel__position-checkbox-row": "_dept-users-position-panel__position-checkbox-row_wnw63_61",
47
+ "dept-users-position-panel__position-name": "_dept-users-position-panel__position-name_wnw63_68",
48
+ "dept-users-position-panel__empty": "_dept-users-position-panel__empty_wnw63_77",
49
+ "dept-users-position-panel__switcher-icon": "_dept-users-position-panel__switcher-icon_wnw63_85",
50
+ "dept-users-position-panel__switcher-icon--expanded": "_dept-users-position-panel__switcher-icon--expanded_wnw63_90"
51
+ }, ee = [{
52
+ key: "current",
53
+ label: "当前部门的所有职位"
54
+ }, {
55
+ key: "currentSub",
56
+ label: "当前部门以及子部门的所有职位"
57
+ }], A = (e) => encodeURIComponent(e), j = (e) => e?._id === void 0 || e?._id === null ? "" : String(e._id), M = (e) => typeof e?.name == "string" ? e.name : "", N = (e) => e.find((e) => j(e) && M(e)), P = (e) => typeof e == "string" ? e : e.job_title || e.name || "", F = (e) => {
58
+ if (typeof e != "string") return e._id || e.id;
59
+ }, I = ({ sourceItems: e, deptId: t, deptName: n, mode: r }) => e.map((e) => {
60
+ let i = P(e);
61
+ if (!i) return null;
62
+ let a = [
63
+ A(t),
64
+ r,
65
+ A(i)
66
+ ].join("__");
67
+ return {
68
+ _id: a,
69
+ id: a,
70
+ name: r === "current" ? `${n} - ${i}` : `${n}及子部门 - ${i}`,
71
+ positionName: i,
72
+ type: "jobtitle",
73
+ jobTitle: `${t}-${r}-${i}`,
74
+ rawId: F(e),
75
+ deptId: t,
76
+ deptName: n,
77
+ mode: r
78
+ };
79
+ }).filter((e) => e !== null), L = (e) => Array.isArray(e) ? e : Array.isArray(e?.items) ? e.items : Array.isArray(e?.list) ? e.list : [], R = () => {
80
+ let { containerHeight: e, requestContext: t, value: r = [], dispatch: o } = n(), [s, c] = y(""), [l, d] = y(""), [f, p] = y("current"), { data: m, loading: h } = T(() => i({
81
+ requestContext: t,
82
+ hasDeptDock: !1
83
+ }), {
84
+ refreshDeps: [t],
85
+ onSuccess: (e) => {
86
+ let t = N(e?.departments || []);
87
+ c(j(t)), d(M(t));
88
+ }
89
+ }), g = v(() => m?.departments || [], [m]), _ = v(() => u(g), [g]), b = v(() => _.map((e) => e._id).filter(Boolean), [_]), { data: x, loading: S } = T(async () => s ? {
90
+ sourceData: await a({
91
+ requestContext: t,
92
+ departmentId: s,
93
+ mode: f
94
+ }),
95
+ deptId: s,
96
+ deptName: l,
97
+ mode: f
98
+ } : {
99
+ sourceData: { items: [] },
100
+ deptId: "",
101
+ deptName: "",
102
+ mode: f
103
+ }, { refreshDeps: [
104
+ s,
105
+ f,
106
+ t?.appId,
107
+ t?.entryId
108
+ ] }), C = v(() => !x || x.deptId !== s || x.mode !== f ? [] : I({
109
+ sourceItems: L(x.sourceData),
110
+ deptId: x.deptId,
111
+ deptName: x.deptName,
112
+ mode: x.mode
113
+ }), [
114
+ x,
115
+ s,
116
+ f
117
+ ]), w = v(() => r.map((e) => e._id), [r]);
118
+ return {
119
+ containerHeight: e,
120
+ departmentTree: _,
121
+ defaultExpandedKeys: b,
122
+ canShowModeOptions: !!m && !h && g.length > 0 && !!s,
123
+ selectedDeptId: s,
124
+ selectedMode: f,
125
+ setSelectedMode: p,
126
+ modeOptions: ee,
127
+ positionList: C,
128
+ selectedIds: w,
129
+ loadingDepartments: h,
130
+ loadingPositions: S,
131
+ handleSelectDepartment: (e, t) => {
132
+ let n = String(t?._id || e || ""), r = g.find((e) => j(e) === n) || t;
133
+ c(j(r)), d(M(r));
134
+ },
135
+ handlePositionToggle: (e, t) => {
136
+ if (t) {
137
+ o({
138
+ type: "addOne",
139
+ payload: e
140
+ });
141
+ return;
142
+ }
143
+ o({
144
+ type: "deleteOne",
145
+ payload: e._id
146
+ });
147
+ }
148
+ };
149
+ }, z = () => {
150
+ let { t: n } = l(), r = R(), i = r.containerHeight - 8;
151
+ return /* @__PURE__ */ D("div", {
152
+ className: k["dept-users-position-panel"],
153
+ children: [
154
+ /* @__PURE__ */ E("section", {
155
+ className: k["dept-users-position-panel__department"],
156
+ children: /* @__PURE__ */ E(x, {
157
+ spinning: r.loadingDepartments,
158
+ tip: n("common.loading"),
159
+ children: /* @__PURE__ */ D(e, {
160
+ style: {
161
+ height: i,
162
+ padding: "4px"
163
+ },
164
+ children: [r.departmentTree.length > 0 && /* @__PURE__ */ E(w, {
165
+ data: r.departmentTree,
166
+ fieldNames: {
167
+ title: "name",
168
+ value: "_id",
169
+ children: "children"
170
+ },
171
+ selectedKeys: r.selectedDeptId ? [r.selectedDeptId] : [],
172
+ defaultExpandedKeys: r.defaultExpandedKeys,
173
+ parentCheckable: !0,
174
+ onSelect: (e, t) => r.handleSelectDepartment(e, t),
175
+ icon: () => /* @__PURE__ */ E(c, {
176
+ type: "department",
177
+ size: 16
178
+ }),
179
+ switcherIcon: (e) => /* @__PURE__ */ E(C, {
180
+ name: "xiangxiazhankai-11",
181
+ className: t(k["dept-users-position-panel__switcher-icon"], { [k["dept-users-position-panel__switcher-icon--expanded"]]: e })
182
+ })
183
+ }), r.departmentTree.length === 0 && !r.loadingDepartments && /* @__PURE__ */ E("div", {
184
+ className: k["dept-users-position-panel__empty"],
185
+ children: /* @__PURE__ */ E("span", { children: "没有可选部门" })
186
+ })]
187
+ })
188
+ })
189
+ }),
190
+ /* @__PURE__ */ E("section", {
191
+ className: k["dept-users-position-panel__mode"],
192
+ children: r.canShowModeOptions && /* @__PURE__ */ E("ul", {
193
+ className: k["dept-users-position-panel__mode-list"],
194
+ children: r.modeOptions.map((e) => /* @__PURE__ */ E("li", {
195
+ className: t(k["dept-users-position-panel__mode-item"], { [k["dept-users-position-panel__mode-item--active"]]: r.selectedMode === e.key }),
196
+ onClick: () => r.setSelectedMode(e.key),
197
+ children: e.label
198
+ }, e.key))
199
+ })
200
+ }),
201
+ /* @__PURE__ */ D("section", {
202
+ className: k["dept-users-position-panel__positions"],
203
+ children: [/* @__PURE__ */ E(x, {
204
+ spinning: r.loadingPositions,
205
+ tip: n("common.loading"),
206
+ children: /* @__PURE__ */ E(e, {
207
+ style: {
208
+ height: i,
209
+ padding: "4px"
210
+ },
211
+ children: r.positionList.length > 0 && /* @__PURE__ */ E("div", {
212
+ className: k["dept-users-position-panel__position-group"],
213
+ children: r.positionList.map((e) => /* @__PURE__ */ E("div", {
214
+ className: k["dept-users-position-panel__position-item"],
215
+ children: /* @__PURE__ */ E(S, {
216
+ value: e._id,
217
+ checked: r.selectedIds.includes(e._id),
218
+ labelPosition: "left",
219
+ className: k["dept-users-position-panel__position-checkbox"],
220
+ onChange: (t) => r.handlePositionToggle(e, t),
221
+ children: /* @__PURE__ */ E("div", {
222
+ className: k["dept-users-position-panel__position-checkbox-row"],
223
+ children: /* @__PURE__ */ E("span", {
224
+ className: k["dept-users-position-panel__position-name"],
225
+ children: e.positionName
226
+ })
227
+ })
228
+ })
229
+ }, e._id))
230
+ })
231
+ })
232
+ }), r.positionList.length === 0 && !r.loadingPositions && /* @__PURE__ */ E("div", {
233
+ className: k["dept-users-position-panel__empty"],
234
+ children: /* @__PURE__ */ E("span", { children: "没有可选职位" })
235
+ })]
236
+ })
237
+ ]
238
+ });
239
+ }, B = {
240
+ "dept-users-role-panel": "_dept-users-role-panel_2436w_1",
241
+ "dept-users-role-panel__menu": "_dept-users-role-panel__menu_2436w_6",
242
+ "dept-users-role-panel__menu-list": "_dept-users-role-panel__menu-list_2436w_11",
243
+ "dept-users-role-panel__option-list": "_dept-users-role-panel__option-list_2436w_11",
244
+ "dept-users-role-panel__menu-item": "_dept-users-role-panel__menu-item_2436w_15",
245
+ "dept-users-role-panel__option-item": "_dept-users-role-panel__option-item_2436w_15",
246
+ "dept-users-role-panel__menu-item--active": "_dept-users-role-panel__menu-item--active_2436w_26",
247
+ "dept-users-role-panel__option-item--active": "_dept-users-role-panel__option-item--active_2436w_26",
248
+ "dept-users-role-panel__tree-section": "_dept-users-role-panel__tree-section_2436w_33",
249
+ "dept-users-role-panel__options-section": "_dept-users-role-panel__options-section_2436w_33",
250
+ "dept-users-role-panel__option-checkbox": "_dept-users-role-panel__option-checkbox_2436w_39",
251
+ "dept-users-role-panel__option-checkbox-row": "_dept-users-role-panel__option-checkbox-row_2436w_42",
252
+ "dept-users-role-panel__option-name": "_dept-users-role-panel__option-name_2436w_48",
253
+ "dept-users-role-panel__tree-icon": "_dept-users-role-panel__tree-icon_2436w_56",
254
+ "dept-users-role-panel__switcher-icon": "_dept-users-role-panel__switcher-icon_2436w_59",
255
+ "dept-users-role-panel__switcher-icon--expanded": "_dept-users-role-panel__switcher-icon--expanded_2436w_64",
256
+ "dept-users-role-panel__empty": "_dept-users-role-panel__empty_2436w_67"
257
+ }, V = (e) => String(e), H = (e) => e ? String(e.type) === "1" : !1, U = (e) => ({
258
+ ...e,
259
+ role_id: V(e.role_id),
260
+ parent: e.parent === 0 || e.parent === "0" ? "0" : e.parent ? V(e.parent) : e.parent
261
+ }), W = (e) => ({
262
+ _id: V(e.role_id),
263
+ name: e.name,
264
+ type: "dockrole",
265
+ label: e.name
266
+ }), G = (e, t) => {
267
+ if (!e) return [];
268
+ let n = V(e.role_id);
269
+ return H(e) ? [{
270
+ _id: `${n}-roleGroup`,
271
+ name: e.name,
272
+ type: "rolegroup",
273
+ label: t("role.currentGroup")
274
+ }, {
275
+ _id: `${n}-roleGroupSub`,
276
+ name: `${e.name}及子分组的角色`,
277
+ type: "rolegroup",
278
+ label: t("role.currentGroupSub")
279
+ }] : [{
280
+ _id: n,
281
+ name: e.name,
282
+ type: "role",
283
+ label: t("role.currentSelected")
284
+ }];
285
+ }, K = (e, t) => {
286
+ if (t) for (let n of e) {
287
+ if (V(n.role_id) === t) return n;
288
+ let e = K(n.children || [], t);
289
+ if (e) return e;
290
+ }
291
+ }, q = (e) => e.flatMap((e) => (H(e) ? [V(e.role_id)] : []).concat(q(e.children || []))), J = () => {
292
+ let { containerHeight: e, requestContext: t, value: i, dispatch: a } = n(), { t: o } = l(), [s, c] = y(), [u, f] = y(), [p, m] = y([]), [h, g] = y([]), _ = v(() => [{
293
+ key: "internal",
294
+ label: o("role.internal"),
295
+ visible: p.length > 0
296
+ }, {
297
+ key: "external",
298
+ label: o("role.external"),
299
+ visible: h.length > 0
300
+ }], [
301
+ h.length,
302
+ p.length,
303
+ o
304
+ ]), { loading: b } = T(async () => {
305
+ let e = await r({ requestContext: t });
306
+ return {
307
+ roles: Array.isArray(e?.roles) ? e.roles.map(U) : [],
308
+ dockRole: Array.isArray(e?.dock_role) ? e.dock_role : []
309
+ };
310
+ }, {
311
+ refreshDeps: [t?.appId, t?.entryId],
312
+ onSuccess: (e) => {
313
+ let t = d(e.roles, {
314
+ children: "children",
315
+ title: "name",
316
+ value: "role_id",
317
+ parentId: "parent"
318
+ }), n = e.dockRole;
319
+ if (m(t), g(n), t.length > 0) {
320
+ c("internal"), f(V(t[0].role_id));
321
+ return;
322
+ }
323
+ if (n.length > 0) {
324
+ c("external"), f(void 0);
325
+ return;
326
+ }
327
+ c(void 0), f(void 0);
328
+ }
329
+ }), x = v(() => K(p, u), [p, u]), S = v(() => G(x, o), [x, o]);
330
+ return {
331
+ containerHeight: e,
332
+ menuItems: _,
333
+ activeKey: s,
334
+ setActiveKey: c,
335
+ internalRoleTree: p,
336
+ externalRoleList: v(() => h.map(W), [h]),
337
+ selectedRoleId: u,
338
+ selectedIds: v(() => (i || []).map((e) => e._id), [i]),
339
+ currentOptions: S,
340
+ loading: b,
341
+ handleSelectInternalRole: (e) => {
342
+ f(V(e));
343
+ },
344
+ handleRoleToggle: (e, t) => {
345
+ let n = {
346
+ _id: e._id,
347
+ name: e.name,
348
+ type: e.type
349
+ };
350
+ if (t) {
351
+ a({
352
+ type: "addOne",
353
+ payload: n
354
+ });
355
+ return;
356
+ }
357
+ a({
358
+ type: "deleteOne",
359
+ payload: e._id
360
+ });
361
+ },
362
+ isRoleGroupNode: H,
363
+ defaultExpandedKeys: v(() => q(p), [p])
364
+ };
365
+ }, te = () => {
366
+ let { t: n } = l(), r = J(), i = r.containerHeight - 8, a = r.activeKey === "external" ? r.externalRoleList : r.currentOptions;
367
+ return /* @__PURE__ */ D("div", {
368
+ className: B["dept-users-role-panel"],
369
+ children: [
370
+ /* @__PURE__ */ E("aside", {
371
+ className: B["dept-users-role-panel__menu"],
372
+ children: /* @__PURE__ */ E("ul", {
373
+ className: B["dept-users-role-panel__menu-list"],
374
+ children: r.menuItems.filter((e) => e.visible).map((e) => /* @__PURE__ */ E("li", {
375
+ onClick: () => r.setActiveKey(e.key),
376
+ className: t(B["dept-users-role-panel__menu-item"], { [B["dept-users-role-panel__menu-item--active"]]: r.activeKey === e.key }),
377
+ children: e.label
378
+ }, e.key))
379
+ })
380
+ }),
381
+ r.activeKey === "internal" && /* @__PURE__ */ E("section", {
382
+ className: B["dept-users-role-panel__tree-section"],
383
+ children: /* @__PURE__ */ E(x, {
384
+ spinning: r.loading,
385
+ tip: n("common.loading"),
386
+ children: /* @__PURE__ */ D(e, {
387
+ style: {
388
+ height: i,
389
+ padding: "4px"
390
+ },
391
+ children: [r.internalRoleTree.length > 0 && /* @__PURE__ */ E(w, {
392
+ data: r.internalRoleTree,
393
+ fieldNames: {
394
+ title: "name",
395
+ value: "role_id",
396
+ children: "children"
397
+ },
398
+ selectedKeys: r.selectedRoleId ? [r.selectedRoleId] : [],
399
+ defaultExpandedKeys: r.defaultExpandedKeys,
400
+ parentCheckable: !0,
401
+ showSwitcher: !0,
402
+ onSelect: (e) => r.handleSelectInternalRole(e),
403
+ icon: (e) => /* @__PURE__ */ E(C, {
404
+ name: r.isRoleGroupNode(e) ? "rolegroup" : "role",
405
+ className: B["dept-users-role-panel__tree-icon"],
406
+ size: 16
407
+ }),
408
+ switcherIcon: (e) => /* @__PURE__ */ E(C, {
409
+ name: "xiangxiazhankai-11",
410
+ className: t(B["dept-users-role-panel__switcher-icon"], { [B["dept-users-role-panel__switcher-icon--expanded"]]: e })
411
+ })
412
+ }), r.internalRoleTree.length === 0 && !r.loading && /* @__PURE__ */ E("div", {
413
+ className: B["dept-users-role-panel__empty"],
414
+ children: /* @__PURE__ */ E("span", { children: n("role.noAvailable") })
415
+ })]
416
+ })
417
+ })
418
+ }),
419
+ /* @__PURE__ */ D("section", {
420
+ className: B["dept-users-role-panel__options-section"],
421
+ children: [/* @__PURE__ */ E(x, {
422
+ spinning: r.loading,
423
+ tip: n("common.loading"),
424
+ children: /* @__PURE__ */ E(e, {
425
+ style: {
426
+ height: i,
427
+ padding: "4px"
428
+ },
429
+ children: a.length > 0 && ((e) => /* @__PURE__ */ E("ul", {
430
+ className: B["dept-users-role-panel__option-list"],
431
+ children: e.map((e) => /* @__PURE__ */ E("li", {
432
+ className: B["dept-users-role-panel__option-item"],
433
+ children: /* @__PURE__ */ E(S, {
434
+ value: e._id,
435
+ checked: r.selectedIds.includes(e._id),
436
+ labelPosition: "left",
437
+ className: B["dept-users-role-panel__option-checkbox"],
438
+ onChange: (t) => r.handleRoleToggle(e, t),
439
+ children: /* @__PURE__ */ E("div", {
440
+ className: B["dept-users-role-panel__option-checkbox-row"],
441
+ children: /* @__PURE__ */ E("span", {
442
+ className: B["dept-users-role-panel__option-name"],
443
+ title: e.name,
444
+ children: e.label
445
+ })
446
+ })
447
+ })
448
+ }, e._id))
449
+ }))(a)
450
+ })
451
+ }), a.length === 0 && !r.loading && /* @__PURE__ */ E("div", {
452
+ className: B["dept-users-role-panel__empty"],
453
+ children: /* @__PURE__ */ E("span", { children: n("role.noAvailable") })
454
+ })]
455
+ })
456
+ ]
457
+ });
458
+ }, Y = {
459
+ "member-relation-ship": "_member-relation-ship_1fjcv_1",
460
+ "member-relation-ship__menu": "_member-relation-ship__menu_1fjcv_6",
461
+ "member-relation-ship__menu-list": "_member-relation-ship__menu-list_1fjcv_11",
462
+ "member-relation-ship__menu-item": "_member-relation-ship__menu-item_1fjcv_15",
463
+ "member-relation-ship__menu-item--active": "_member-relation-ship__menu-item--active_1fjcv_26",
464
+ "member-relation-ship__column": "_member-relation-ship__column_1fjcv_33",
465
+ "member-relation-ship__column-header": "_member-relation-ship__column-header_1fjcv_42",
466
+ "member-relation-ship__column-content": "_member-relation-ship__column-content_1fjcv_50"
467
+ }, X = {
468
+ "relation-ship-member": "_relation-ship-member_h6xr2_1",
469
+ "relation-ship-member__list": "_relation-ship-member__list_h6xr2_4",
470
+ "relation-ship-member__item": "_relation-ship-member__item_h6xr2_9",
471
+ "relation-ship-member__item--active": "_relation-ship-member__item--active_h6xr2_22",
472
+ "relation-ship-member__avatar": "_relation-ship-member__avatar_h6xr2_28",
473
+ "relation-ship-member__nickname": "_relation-ship-member__nickname_h6xr2_31",
474
+ "relation-ship-member__deptnames": "_relation-ship-member__deptnames_h6xr2_40",
475
+ "relation-ship-member__empty": "_relation-ship-member__empty_h6xr2_47"
476
+ }, ne = (r) => {
477
+ let { t: i } = l(), { containerHeight: a } = n(), o = r.userList || [], s = (e) => {
478
+ r.onChange?.(e._id);
479
+ };
480
+ return /* @__PURE__ */ E(x, {
481
+ spinning: r.loading,
482
+ children: /* @__PURE__ */ E(e, {
483
+ className: X["relation-ship-member"],
484
+ style: { height: a - 8 },
485
+ children: o.length > 0 ? /* @__PURE__ */ E("ul", {
486
+ className: X["relation-ship-member__list"],
487
+ children: o.map((e) => /* @__PURE__ */ D("li", {
488
+ onClick: () => s(e),
489
+ className: t(X["relation-ship-member__item"], { [X["relation-ship-member__item--active"]]: r.value === e._id }),
490
+ children: [
491
+ /* @__PURE__ */ E("div", {
492
+ className: X["relation-ship-member__avatar"],
493
+ children: e.avatarurl ? /* @__PURE__ */ E(b, {
494
+ src: e.avatarurl,
495
+ size: 20
496
+ }) : /* @__PURE__ */ E(b, {
497
+ size: 20,
498
+ style: {
499
+ backgroundColor: f(e.nickname),
500
+ fontSize: "12px",
501
+ lineHeight: "13px"
502
+ },
503
+ children: e.nickname?.charAt(0) || "?"
504
+ })
505
+ }),
506
+ /* @__PURE__ */ E("div", {
507
+ className: X["relation-ship-member__nickname"],
508
+ children: e.nickname
509
+ }),
510
+ /* @__PURE__ */ E("div", {
511
+ className: X["relation-ship-member__deptnames"],
512
+ children: e.deptnames
513
+ })
514
+ ]
515
+ }, e._id))
516
+ }) : !r.loading && /* @__PURE__ */ E("div", {
517
+ className: X["relation-ship-member__empty"],
518
+ style: { height: a - 8 + "px" },
519
+ children: /* @__PURE__ */ E("span", { children: i("member.noAvailable") })
520
+ })
521
+ })
522
+ });
523
+ }, Z = /* @__PURE__ */ function(e) {
524
+ return e[e.DEPARTMENT = 0] = "DEPARTMENT", e[e.MEMBER = 1] = "MEMBER", e;
525
+ }(Z || {}), Q = (e) => e != null && e !== "" && e !== "undefined", re = () => {
526
+ let { containerHeight: e, requestContext: t, value: r, dispatch: a } = n(), [c, l] = y(Z.DEPARTMENT), [d, p] = y({
527
+ deptFrom: "relation",
528
+ memberFrom: "relationUser"
529
+ }), { data: m, loading: h } = T(() => i({
530
+ requestContext: t,
531
+ hasDeptDock: !1
532
+ }), {
533
+ onSuccess: (e) => {
534
+ let t = e?.departments?.find((e) => Q(e?.departmentId));
535
+ t && !d.deptFromId && (p((e) => ({
536
+ ...e,
537
+ deptFromId: t._id,
538
+ deptId: t.departmentId
539
+ })), O(t._id, e.departments));
540
+ },
541
+ refreshDeps: [t]
542
+ }), g = v(() => m?.departments?.length ? u(m.departments) : [], [m?.departments]), { data: _, loading: b } = T(async () => Q(d.deptId) && (await o({
543
+ requestContext: t,
544
+ deptId: d.deptId,
545
+ limit: 1e4
546
+ })).users || [], {
547
+ refreshDeps: [
548
+ d.deptId,
549
+ t?.appId,
550
+ t?.entryId
551
+ ],
552
+ onSuccess: (e) => {
553
+ e?.length > 0 && !d.memberFromId && (p((t) => ({
554
+ ...t,
555
+ memberFromId: e[0]._id
556
+ })), O(e[0]._id, e));
557
+ }
558
+ }), x = c === Z.DEPARTMENT ? d.deptFrom : d.memberFrom, S = c === Z.DEPARTMENT ? d.deptFromId : d.memberFromId, { data: C, loading: w } = T(() => s({ requestContext: t }), {
559
+ ready: !!(t?.appId && t?.entryId),
560
+ refreshDeps: [t?.appId, t?.entryId]
561
+ }), E = v(() => !x || !S ? [] : (C?.list || []).map((e) => ({
562
+ _id: `${S}-${x}-${e._id}`,
563
+ name: e.name
564
+ })), [
565
+ x,
566
+ S,
567
+ C?.list
568
+ ]), D = r?.map((e) => e._id) || [];
569
+ return {
570
+ containerHeight: e,
571
+ activeKey: c,
572
+ setActiveKey: l,
573
+ relationData: d,
574
+ setDeptRelationType: (e) => p((t) => ({
575
+ ...t,
576
+ deptFrom: e
577
+ })),
578
+ deptTreeData: g,
579
+ userList: _ || [],
580
+ relationList: E,
581
+ selectedIds: D,
582
+ departmentsLoading: h,
583
+ memberLoading: b,
584
+ relationsLoading: w,
585
+ handleSelectDepartment: (e, t) => {
586
+ O(e, m?.departments || []), p((n) => ({
587
+ ...n,
588
+ deptFromId: e,
589
+ deptId: Q(t?.departmentId) ? t.departmentId : void 0,
590
+ memberFromId: void 0
591
+ }));
592
+ },
593
+ handleSelectMember: (e) => {
594
+ p((t) => ({
595
+ ...t,
596
+ memberFromId: e
597
+ })), O(e, _ || []);
598
+ },
599
+ handleSelectRelation: (e) => {
600
+ let t = E.filter((t) => e.includes(t._id));
601
+ a({
602
+ type: "deleteAndInsert",
603
+ payload: {
604
+ oldIds: E.filter((t) => !e.includes(t._id)).map((e) => e._id),
605
+ newItems: t
606
+ }
607
+ });
608
+ },
609
+ relationShipType: Z,
610
+ departmentRelationTabs: [{
611
+ key: "relation",
612
+ label: "当前部门的所有关系"
613
+ }, {
614
+ key: "relationSub",
615
+ label: "当前部门及子部门的所有关系"
616
+ }],
617
+ menuItems: [{
618
+ key: Z.DEPARTMENT,
619
+ label: "department.title"
620
+ }, {
621
+ key: Z.MEMBER,
622
+ label: "member.title"
623
+ }],
624
+ getAvatarColor: (e) => f(e)
625
+ };
626
+ }, ie = () => {
627
+ let { t: e } = l(), n = re(), r = [{
628
+ key: n.relationShipType.DEPARTMENT,
629
+ label: e("department.title")
630
+ }, {
631
+ key: n.relationShipType.MEMBER,
632
+ label: e("member.title")
633
+ }];
634
+ return /* @__PURE__ */ D("div", {
635
+ className: Y["member-relation-ship"],
636
+ children: [
637
+ /* @__PURE__ */ E("aside", {
638
+ className: Y["member-relation-ship__menu"],
639
+ children: /* @__PURE__ */ E("ul", {
640
+ className: Y["member-relation-ship__menu-list"],
641
+ children: r.map((e) => /* @__PURE__ */ E("li", {
642
+ onClick: () => n.setActiveKey(e.key),
643
+ className: t(Y["member-relation-ship__menu-item"], { [Y["member-relation-ship__menu-item--active"]]: n.activeKey === e.key }),
644
+ children: e.label
645
+ }, e.key))
646
+ })
647
+ }),
648
+ /* @__PURE__ */ E("section", {
649
+ className: Y["member-relation-ship__column"],
650
+ children: /* @__PURE__ */ E(_, {
651
+ value: n.relationData.deptFromId,
652
+ treeData: n.deptTreeData,
653
+ loading: n.departmentsLoading,
654
+ onSelect: n.handleSelectDepartment
655
+ })
656
+ }),
657
+ /* @__PURE__ */ D("section", {
658
+ className: Y["member-relation-ship__column"],
659
+ children: [n.activeKey === n.relationShipType.DEPARTMENT && /* @__PURE__ */ E("ul", {
660
+ className: Y["member-relation-ship__menu-list"],
661
+ children: n.departmentRelationTabs.map((e) => /* @__PURE__ */ E("li", {
662
+ onClick: () => n.setDeptRelationType(e.key),
663
+ className: t(Y["member-relation-ship__menu-item"], { [Y["member-relation-ship__menu-item--active"]]: n.relationData.deptFrom === e.key }),
664
+ children: e.label
665
+ }, e.key))
666
+ }), n.activeKey === n.relationShipType.MEMBER && /* @__PURE__ */ E(ne, {
667
+ deptId: n.relationData.deptId,
668
+ value: n.relationData.memberFromId,
669
+ userList: n.userList,
670
+ loading: n.memberLoading,
671
+ onChange: n.handleSelectMember
672
+ })]
673
+ }),
674
+ /* @__PURE__ */ E("section", {
675
+ className: Y["member-relation-ship__column"],
676
+ children: /* @__PURE__ */ E(g, {
677
+ relationList: n.relationList,
678
+ selectedIds: n.selectedIds,
679
+ loading: n.relationsLoading,
680
+ onChange: n.handleSelectRelation
681
+ })
682
+ })
683
+ ]
684
+ });
685
+ }, $ = {
686
+ "other-panel": "_other-panel_1fapn_1",
687
+ "other-panel__list": "_other-panel__list_1fapn_4",
688
+ "other-panel__item": "_other-panel__item_1fapn_10",
689
+ "other-panel__checkbox-row": "_other-panel__checkbox-row_1fapn_23",
690
+ "other-panel__name": "_other-panel__name_1fapn_28",
691
+ "other-panel__empty": "_other-panel__empty_1fapn_35"
692
+ }, ae = (e) => {
693
+ let r = [], { dispatch: i, value: a } = n();
694
+ e.publicPermissionEnable && r.push({
695
+ _id: "111000000000000000000001",
696
+ name: "公开权限",
697
+ type: "public"
698
+ }), e.managerPermissionEnable && r.push({
699
+ _id: "111000000000000000000002",
700
+ name: "系统管理员组",
701
+ type: "public"
702
+ });
703
+ let o = a?.map((e) => e._id) || [];
704
+ return /* @__PURE__ */ E("div", {
705
+ className: $["other-panel"],
706
+ children: /* @__PURE__ */ E(S.Group, {
707
+ value: o,
708
+ onChange: (e) => {
709
+ let t = [], n = [];
710
+ for (let i = 0; i < r.length; i++) {
711
+ let a = r[i];
712
+ e.includes(a._id) ? t.push(a) : n.push(a);
713
+ }
714
+ i({
715
+ type: "deleteAndInsert",
716
+ payload: {
717
+ oldIds: n.map((e) => e._id),
718
+ newItems: t
719
+ }
720
+ });
721
+ },
722
+ className: $["other-panel__list"],
723
+ children: r.map((e) => /* @__PURE__ */ E("li", {
724
+ className: t($["other-panel__item"], $["other-panel__item--checkbox"]),
725
+ children: /* @__PURE__ */ E(S, {
726
+ labelPosition: "left",
727
+ value: e._id,
728
+ className: $["other-panel__checkbox"],
729
+ children: /* @__PURE__ */ E("div", {
730
+ className: $["other-panel__checkbox-row"],
731
+ children: /* @__PURE__ */ E("span", {
732
+ className: $["other-panel__name"],
733
+ children: e.name
734
+ })
735
+ })
736
+ })
737
+ }, e._id))
738
+ })
739
+ });
740
+ }, oe = () => {
741
+ let { t: e } = l(), { auth: t } = n();
742
+ return v(() => {
743
+ let n = [
744
+ {
745
+ label: e("department.organizationalStructure"),
746
+ key: "organizational",
747
+ view: /* @__PURE__ */ E(p, {})
748
+ },
749
+ {
750
+ label: e("member.title"),
751
+ key: "member",
752
+ view: /* @__PURE__ */ E(m, {})
753
+ },
754
+ {
755
+ label: e("position.title"),
756
+ key: "position",
757
+ view: /* @__PURE__ */ E(z, {})
758
+ },
759
+ {
760
+ label: e("member.relation"),
761
+ key: "relation",
762
+ view: /* @__PURE__ */ E(ie, {})
763
+ },
764
+ {
765
+ label: e("role.title"),
766
+ key: "role",
767
+ view: /* @__PURE__ */ E(te, {})
768
+ },
769
+ {
770
+ label: e("externalContact.title"),
771
+ key: "extraContact",
772
+ view: /* @__PURE__ */ E(h, {})
773
+ }
774
+ ];
775
+ return (t.managerPermissionEnable || t.publicPermissionEnable) && n.push({
776
+ label: e("common.other"),
777
+ key: "other",
778
+ view: /* @__PURE__ */ E(ae, {
779
+ managerPermissionEnable: t.managerPermissionEnable,
780
+ publicPermissionEnable: t.publicPermissionEnable
781
+ })
782
+ }), n;
783
+ }, [
784
+ e,
785
+ t.managerPermissionEnable,
786
+ t.publicPermissionEnable
787
+ ]);
788
+ };
789
+ //#endregion
790
+ export { O as n, oe as t };