@since2006/pages 2026.4.1 → 2026.4.2

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 (129) hide show
  1. package/dist/es/index.js +11 -9
  2. package/dist/es/src/app/org/OrgIndex.vue.js +7 -0
  3. package/dist/es/src/app/org/OrgIndex.vue2.js +278 -0
  4. package/dist/es/src/app/org/OrgTree.vue.js +182 -0
  5. package/dist/es/src/app/org/OrgTree.vue2.js +4 -0
  6. package/dist/es/src/app/org/RolePanel.vue.js +7 -0
  7. package/dist/es/src/app/org/RolePanel.vue2.js +157 -0
  8. package/dist/es/src/app/org/UserTableList.vue.js +7 -0
  9. package/dist/es/src/app/org/UserTableList.vue2.js +246 -0
  10. package/dist/es/src/app/org/api.js +175 -0
  11. package/dist/es/src/app/org/assets/cube.svg.js +4 -0
  12. package/dist/es/src/app/org/assets/division.svg.js +4 -0
  13. package/dist/es/src/app/org/assets/nopos.svg.js +4 -0
  14. package/dist/es/src/app/org/assets/plugin.svg.js +4 -0
  15. package/dist/es/src/app/org/assets/unit.svg.js +4 -0
  16. package/dist/es/src/app/org/assets/user.svg.js +4 -0
  17. package/dist/es/src/app/org/index.js +6 -0
  18. package/dist/es/src/app/org/menu/DeptMenu.vue.js +54 -0
  19. package/dist/es/src/app/org/menu/DeptMenu.vue2.js +4 -0
  20. package/dist/es/src/app/org/menu/OrgMenu.vue.js +73 -0
  21. package/dist/es/src/app/org/menu/OrgMenu.vue2.js +4 -0
  22. package/dist/es/src/app/org/menu/PermMenu.vue.js +55 -0
  23. package/dist/es/src/app/org/menu/PermMenu.vue2.js +4 -0
  24. package/dist/es/src/app/org/menu/PosMenu.vue.js +45 -0
  25. package/dist/es/src/app/org/menu/PosMenu.vue2.js +4 -0
  26. package/dist/es/src/app/org/menu/RoleMenu.vue.js +55 -0
  27. package/dist/es/src/app/org/menu/RoleMenu.vue2.js +4 -0
  28. package/dist/es/src/app/org/menu/TreeNodeMenu.js +15 -0
  29. package/dist/es/src/app/org/modal/DeptAddModal.vue.js +143 -0
  30. package/dist/es/src/app/org/modal/DeptAddModal.vue2.js +4 -0
  31. package/dist/es/src/app/org/modal/DeptEditModal.vue.js +133 -0
  32. package/dist/es/src/app/org/modal/DeptEditModal.vue2.js +4 -0
  33. package/dist/es/src/app/org/modal/OrgAddModal.vue.js +171 -0
  34. package/dist/es/src/app/org/modal/OrgAddModal.vue2.js +4 -0
  35. package/dist/es/src/app/org/modal/OrgEditModal.vue.js +161 -0
  36. package/dist/es/src/app/org/modal/OrgEditModal.vue2.js +4 -0
  37. package/dist/es/src/app/org/modal/OrgModals.vue.js +274 -0
  38. package/dist/es/src/app/org/modal/OrgModals.vue2.js +4 -0
  39. package/dist/es/src/app/org/modal/PermAddModal.vue.js +145 -0
  40. package/dist/es/src/app/org/modal/PermAddModal.vue2.js +4 -0
  41. package/dist/es/src/app/org/modal/PermEditModal.vue.js +135 -0
  42. package/dist/es/src/app/org/modal/PermEditModal.vue2.js +4 -0
  43. package/dist/es/src/app/org/modal/PosAddModal.vue.js +131 -0
  44. package/dist/es/src/app/org/modal/PosAddModal.vue2.js +4 -0
  45. package/dist/es/src/app/org/modal/PosEditModal.vue.js +122 -0
  46. package/dist/es/src/app/org/modal/PosEditModal.vue2.js +4 -0
  47. package/dist/es/src/app/org/modal/RoleAddModal.vue.js +145 -0
  48. package/dist/es/src/app/org/modal/RoleAddModal.vue2.js +4 -0
  49. package/dist/es/src/app/org/modal/RoleAddUserModal.vue.js +7 -0
  50. package/dist/es/src/app/org/modal/RoleAddUserModal.vue2.js +129 -0
  51. package/dist/es/src/app/org/modal/RoleEditModal.vue.js +161 -0
  52. package/dist/es/src/app/org/modal/RoleEditModal.vue2.js +4 -0
  53. package/dist/es/src/app/org/modal/UserAddModal.vue.js +570 -0
  54. package/dist/es/src/app/org/modal/UserAddModal.vue3.js +5 -0
  55. package/dist/es/src/app/org/modal/UserEditModal.vue.js +726 -0
  56. package/dist/es/src/app/org/modal/UserEditModal.vue3.js +5 -0
  57. package/dist/es/src/app/org/modal/UserPermModal.vue.js +72 -0
  58. package/dist/es/src/app/org/modal/UserPermModal.vue2.js +4 -0
  59. package/dist/es/src/app/org/modal/UserPosAddModal.vue.js +136 -0
  60. package/dist/es/src/app/org/modal/UserPosAddModal.vue2.js +4 -0
  61. package/dist/es/src/app/org/modal/UserPosMoveModal.vue.js +108 -0
  62. package/dist/es/src/app/org/modal/UserPosMoveModal.vue2.js +4 -0
  63. package/dist/es/src/index.js +9 -7
  64. package/dist/es/style.css +1 -1
  65. package/dist/lib/index.js +1 -1
  66. package/dist/lib/src/app/org/OrgIndex.vue.js +1 -0
  67. package/dist/lib/src/app/org/OrgIndex.vue2.js +2 -0
  68. package/dist/lib/src/app/org/OrgTree.vue.js +1 -0
  69. package/dist/lib/src/app/org/OrgTree.vue2.js +1 -0
  70. package/dist/lib/src/app/org/RolePanel.vue.js +1 -0
  71. package/dist/lib/src/app/org/RolePanel.vue2.js +1 -0
  72. package/dist/lib/src/app/org/UserTableList.vue.js +1 -0
  73. package/dist/lib/src/app/org/UserTableList.vue2.js +1 -0
  74. package/dist/lib/src/app/org/api.js +1 -0
  75. package/dist/lib/src/app/org/assets/cube.svg.js +1 -0
  76. package/dist/lib/src/app/org/assets/division.svg.js +1 -0
  77. package/dist/lib/src/app/org/assets/nopos.svg.js +1 -0
  78. package/dist/lib/src/app/org/assets/plugin.svg.js +1 -0
  79. package/dist/lib/src/app/org/assets/unit.svg.js +1 -0
  80. package/dist/lib/src/app/org/assets/user.svg.js +1 -0
  81. package/dist/lib/src/app/org/index.js +1 -0
  82. package/dist/lib/src/app/org/menu/DeptMenu.vue.js +1 -0
  83. package/dist/lib/src/app/org/menu/DeptMenu.vue2.js +1 -0
  84. package/dist/lib/src/app/org/menu/OrgMenu.vue.js +1 -0
  85. package/dist/lib/src/app/org/menu/OrgMenu.vue2.js +1 -0
  86. package/dist/lib/src/app/org/menu/PermMenu.vue.js +1 -0
  87. package/dist/lib/src/app/org/menu/PermMenu.vue2.js +1 -0
  88. package/dist/lib/src/app/org/menu/PosMenu.vue.js +1 -0
  89. package/dist/lib/src/app/org/menu/PosMenu.vue2.js +1 -0
  90. package/dist/lib/src/app/org/menu/RoleMenu.vue.js +1 -0
  91. package/dist/lib/src/app/org/menu/RoleMenu.vue2.js +1 -0
  92. package/dist/lib/src/app/org/menu/TreeNodeMenu.js +1 -0
  93. package/dist/lib/src/app/org/modal/DeptAddModal.vue.js +1 -0
  94. package/dist/lib/src/app/org/modal/DeptAddModal.vue2.js +1 -0
  95. package/dist/lib/src/app/org/modal/DeptEditModal.vue.js +1 -0
  96. package/dist/lib/src/app/org/modal/DeptEditModal.vue2.js +1 -0
  97. package/dist/lib/src/app/org/modal/OrgAddModal.vue.js +1 -0
  98. package/dist/lib/src/app/org/modal/OrgAddModal.vue2.js +1 -0
  99. package/dist/lib/src/app/org/modal/OrgEditModal.vue.js +1 -0
  100. package/dist/lib/src/app/org/modal/OrgEditModal.vue2.js +1 -0
  101. package/dist/lib/src/app/org/modal/OrgModals.vue.js +1 -0
  102. package/dist/lib/src/app/org/modal/OrgModals.vue2.js +1 -0
  103. package/dist/lib/src/app/org/modal/PermAddModal.vue.js +1 -0
  104. package/dist/lib/src/app/org/modal/PermAddModal.vue2.js +1 -0
  105. package/dist/lib/src/app/org/modal/PermEditModal.vue.js +1 -0
  106. package/dist/lib/src/app/org/modal/PermEditModal.vue2.js +1 -0
  107. package/dist/lib/src/app/org/modal/PosAddModal.vue.js +1 -0
  108. package/dist/lib/src/app/org/modal/PosAddModal.vue2.js +1 -0
  109. package/dist/lib/src/app/org/modal/PosEditModal.vue.js +1 -0
  110. package/dist/lib/src/app/org/modal/PosEditModal.vue2.js +1 -0
  111. package/dist/lib/src/app/org/modal/RoleAddModal.vue.js +1 -0
  112. package/dist/lib/src/app/org/modal/RoleAddModal.vue2.js +1 -0
  113. package/dist/lib/src/app/org/modal/RoleAddUserModal.vue.js +1 -0
  114. package/dist/lib/src/app/org/modal/RoleAddUserModal.vue2.js +1 -0
  115. package/dist/lib/src/app/org/modal/RoleEditModal.vue.js +1 -0
  116. package/dist/lib/src/app/org/modal/RoleEditModal.vue2.js +1 -0
  117. package/dist/lib/src/app/org/modal/UserAddModal.vue.js +1 -0
  118. package/dist/lib/src/app/org/modal/UserAddModal.vue3.js +1 -0
  119. package/dist/lib/src/app/org/modal/UserEditModal.vue.js +1 -0
  120. package/dist/lib/src/app/org/modal/UserEditModal.vue3.js +1 -0
  121. package/dist/lib/src/app/org/modal/UserPermModal.vue.js +1 -0
  122. package/dist/lib/src/app/org/modal/UserPermModal.vue2.js +1 -0
  123. package/dist/lib/src/app/org/modal/UserPosAddModal.vue.js +1 -0
  124. package/dist/lib/src/app/org/modal/UserPosAddModal.vue2.js +1 -0
  125. package/dist/lib/src/app/org/modal/UserPosMoveModal.vue.js +1 -0
  126. package/dist/lib/src/app/org/modal/UserPosMoveModal.vue2.js +1 -0
  127. package/dist/lib/src/index.js +1 -1
  128. package/dist/lib/style.css +1 -1
  129. package/package.json +2 -1
package/dist/es/index.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import * as t from "./src/index.js";
2
- import { AccessLogList as p, AuditLogList as i, ErrorLogList as d, LoginLogList as s, OperationLogList as a } from "./src/app/log/index.js";
3
- import { AttachmentIndex as f } from "./src/app/attachment/index.js";
2
+ import { AccessLogList as p, AuditLogList as d, ErrorLogList as i, LoginLogList as s, OperationLogList as a } from "./src/app/log/index.js";
3
+ import { AttachmentIndex as m } from "./src/app/attachment/index.js";
4
4
  import { DictIndex as c, DictPanel as I } from "./src/app/dict/index.js";
5
5
  import { MetadataIndex as l } from "./src/app/metadata/index.js";
6
6
  import { ModuleIndex as A } from "./src/app/module/index.js";
7
7
  import { OpenApiAppIndex as h, OpenApiLogIndex as D } from "./src/app/openapi/index.js";
8
- import { ScheduleIndex as M } from "./src/app/schedule/index.js";
9
- import { StatusIndex as b } from "./src/app/system/index.js";
8
+ import { OrgIndex as M } from "./src/app/org/index.js";
9
+ import { ScheduleIndex as b } from "./src/app/schedule/index.js";
10
+ import { StatusIndex as v } from "./src/app/system/index.js";
10
11
  const r = {
11
12
  install: (e) => {
12
13
  Object.values(t).forEach((o) => e.use(o));
@@ -14,18 +15,19 @@ const r = {
14
15
  };
15
16
  export {
16
17
  p as AccessLogList,
17
- f as AttachmentIndex,
18
- i as AuditLogList,
18
+ m as AttachmentIndex,
19
+ d as AuditLogList,
19
20
  c as DictIndex,
20
21
  I as DictPanel,
21
- d as ErrorLogList,
22
+ i as ErrorLogList,
22
23
  s as LoginLogList,
23
24
  l as MetadataIndex,
24
25
  A as ModuleIndex,
25
26
  h as OpenApiAppIndex,
26
27
  D as OpenApiLogIndex,
27
28
  a as OperationLogList,
28
- M as ScheduleIndex,
29
- b as StatusIndex,
29
+ M as OrgIndex,
30
+ b as ScheduleIndex,
31
+ v as StatusIndex,
30
32
  r as default
31
33
  };
@@ -0,0 +1,7 @@
1
+ import o from "./OrgIndex.vue2.js";
2
+ /* empty css */
3
+ import r from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const m = /* @__PURE__ */ r(o, [["__scopeId", "data-v-f46966f0"]]);
5
+ export {
6
+ m as default
7
+ };
@@ -0,0 +1,278 @@
1
+ import { defineComponent as h, ref as s, reactive as I, resolveComponent as r, openBlock as C, createElementBlock as ee, createVNode as n, withCtx as l, createElementVNode as m, unref as k, createTextVNode as u, toDisplayString as oe, createBlock as P, createCommentVNode as q, toRaw as ne } from "vue";
2
+ import { RocketTwoTone as te, UserOutlined as le, UserAddOutlined as se, UserDeleteOutlined as re } from "@ant-design/icons-vue";
3
+ import { message as y, Modal as ae } from "ant-design-vue";
4
+ import ue from "./OrgTree.vue.js";
5
+ import de from "./UserTableList.vue.js";
6
+ import ce from "./modal/OrgModals.vue.js";
7
+ import ie from "./modal/RoleAddUserModal.vue.js";
8
+ import me from "./modal/UserPermModal.vue.js";
9
+ import { removeUsersFromRole as pe } from "./api.js";
10
+ const ve = { style: { "margin-bottom": "16px" } }, fe = { class: "ant-pro-table-list-toolbar" }, _e = { class: "ant-pro-table-list-toolbar-container" }, ge = { class: "ant-pro-table-list-toolbar-left" }, ye = { style: { color: "red" } }, Ue = { class: "ant-pro-table-list-toolbar-right" }, Ie = /* @__PURE__ */ h({
11
+ __name: "OrgIndex",
12
+ setup(ke) {
13
+ const w = s(), U = s(), O = s("未选择"), f = s(), a = s(), _ = I({
14
+ key: void 0,
15
+ nodeType: void 0,
16
+ nodeId: void 0,
17
+ action: void 0
18
+ }), p = I({
19
+ query: void 0,
20
+ status: void 0
21
+ }), M = s([]), T = s(!1), b = s(!1), N = s(""), S = s(""), v = s([]), L = () => {
22
+ console.log("组织机构树加载完成");
23
+ }, $ = ({ nodeType: o, nodeId: e, nodeInfo: t }) => {
24
+ console.log("选中节点:", { type: o, id: e, nodeInfo: t }), console.log("当前queryParams:", p), O.value = `${o} - ${e}`, f.value = o, a.value = e, M.value = K(t);
25
+ }, A = ({ nodeType: o, nodeId: e, action: t }) => {
26
+ _.key = Date.now(), _.nodeType = o, _.nodeId = e, _.action = t, console.log("右键菜单点击:", { nodeType: o, nodeId: e, action: t });
27
+ }, B = (o, e) => {
28
+ var t;
29
+ e.action === "addUser" ? x() : (console.log("Modal 操作成功,刷新树节点:", o), (t = w.value) == null || t.reloadTreeNode(o));
30
+ }, D = () => {
31
+ console.log("添加用户至角色:", { nodeType: f.value, nodeId: a.value }), T.value = !0;
32
+ }, V = (o) => {
33
+ console.log("用户编辑:", o);
34
+ }, E = (o, e) => {
35
+ console.log("用户权限编辑:", o, e), N.value = o, S.value = e, b.value = !0;
36
+ }, j = (o, e) => {
37
+ console.log("用户状态变更:", o, e);
38
+ }, F = () => {
39
+ console.log("重载用户列表");
40
+ }, z = () => {
41
+ console.log("角色用户管理成功"), x();
42
+ }, G = () => {
43
+ console.log("用户权限管理成功"), x();
44
+ }, x = () => {
45
+ var o;
46
+ console.log("用户列表发生变化,刷新用户表格"), (o = U.value) == null || o.loadUserList();
47
+ }, H = (o, e) => {
48
+ console.log("用户选择变化:", { selectedRowKeys: o, selectedRows: e }), v.value = e;
49
+ }, J = () => {
50
+ if (v.value.length === 0) {
51
+ y.warning("请先选择要移除的用户");
52
+ return;
53
+ }
54
+ if (!a.value) {
55
+ y.warning("请先选择一个角色");
56
+ return;
57
+ }
58
+ const o = v.value.map((e) => e.name).join("、");
59
+ ae.confirm({
60
+ title: "确认移除用户角色",
61
+ content: `确定要从当前角色中移除以下用户吗?
62
+ ${o}`,
63
+ okText: "确认",
64
+ cancelText: "取消",
65
+ onOk: async () => {
66
+ var e, t;
67
+ try {
68
+ const d = v.value.map((g) => g.id), c = await pe({
69
+ roleId: a.value,
70
+ userIds: d
71
+ });
72
+ c.code === 200 ? (y.success("移除成功"), v.value = [], (e = U.value) == null || e.clearSelection(), (t = U.value) == null || t.loadUserList()) : y.error(c.msg || "移除失败");
73
+ } catch (d) {
74
+ console.error("移除用户角色失败:", d), y.error("移除失败");
75
+ }
76
+ }
77
+ });
78
+ }, K = (o) => {
79
+ const e = [];
80
+ let t = o;
81
+ if (!t)
82
+ return [];
83
+ do {
84
+ const d = t.title || ne(t.node).title;
85
+ if (e.push(d), t = t.parent, !t)
86
+ break;
87
+ } while (t.parent);
88
+ return e.length > 0 && e[e.length - 1] === "组织架构" && e.pop(), e.reverse(), e;
89
+ };
90
+ return (o, e) => {
91
+ const t = r("a-col"), d = r("a-input"), c = r("a-form-item"), g = r("a-select-option"), Q = r("a-select"), R = r("a-button"), W = r("a-form"), X = r("a-space"), Y = r("a-row"), Z = r("a-card");
92
+ return C(), ee("div", null, [
93
+ n(Z, { "body-style": { padding: "14px" } }, {
94
+ default: l(() => [
95
+ n(Y, null, {
96
+ default: l(() => [
97
+ n(t, {
98
+ sm: 5,
99
+ md: 4
100
+ }, {
101
+ default: l(() => [
102
+ m("div", ve, [
103
+ m("h3", null, [
104
+ n(k(te)),
105
+ e[4] || (e[4] = u(" 组织架构 ", -1))
106
+ ])
107
+ ]),
108
+ n(ue, {
109
+ ref_key: "orgTreeRef",
110
+ ref: w,
111
+ onTreeLoad: L,
112
+ onNodeClick: $,
113
+ onMenuClick: A
114
+ }, null, 512)
115
+ ]),
116
+ _: 1
117
+ }),
118
+ n(t, {
119
+ sm: 19,
120
+ md: 20
121
+ }, {
122
+ default: l(() => [
123
+ m("div", fe, [
124
+ m("div", _e, [
125
+ m("div", ge, [
126
+ n(W, { layout: "inline" }, {
127
+ default: l(() => [
128
+ n(c, null, {
129
+ default: l(() => [
130
+ n(d, {
131
+ value: p.query,
132
+ "onUpdate:value": e[0] || (e[0] = (i) => p.query = i),
133
+ placeholder: "查询用户",
134
+ style: { width: "160px" }
135
+ }, {
136
+ prefix: l(() => [
137
+ n(k(le))
138
+ ]),
139
+ _: 1
140
+ }, 8, ["value"])
141
+ ]),
142
+ _: 1
143
+ }),
144
+ n(c, null, {
145
+ default: l(() => [
146
+ n(Q, {
147
+ value: p.status,
148
+ "onUpdate:value": e[1] || (e[1] = (i) => p.status = i),
149
+ placeholder: "状态",
150
+ "allow-clear": ""
151
+ }, {
152
+ default: l(() => [
153
+ n(g, { value: "0" }, {
154
+ default: l(() => [...e[5] || (e[5] = [
155
+ u("正常", -1)
156
+ ])]),
157
+ _: 1
158
+ }),
159
+ n(g, { value: "2" }, {
160
+ default: l(() => [...e[6] || (e[6] = [
161
+ u("出差", -1)
162
+ ])]),
163
+ _: 1
164
+ }),
165
+ n(g, { value: "4" }, {
166
+ default: l(() => [...e[7] || (e[7] = [
167
+ u("休假", -1)
168
+ ])]),
169
+ _: 1
170
+ })
171
+ ]),
172
+ _: 1
173
+ }, 8, ["value"])
174
+ ]),
175
+ _: 1
176
+ }),
177
+ n(c, null, {
178
+ default: l(() => [
179
+ n(R, {
180
+ type: "primary",
181
+ "html-type": "submit"
182
+ }, {
183
+ default: l(() => [...e[8] || (e[8] = [
184
+ u("查询", -1)
185
+ ])]),
186
+ _: 1
187
+ })
188
+ ]),
189
+ _: 1
190
+ }),
191
+ n(c, null, {
192
+ default: l(() => [
193
+ e[9] || (e[9] = u(" 当前列表: ", -1)),
194
+ m("span", ye, oe(M.value.join(" -> ")), 1)
195
+ ]),
196
+ _: 1
197
+ })
198
+ ]),
199
+ _: 1
200
+ })
201
+ ]),
202
+ m("div", Ue, [
203
+ n(X, { align: "center" }, {
204
+ default: l(() => [
205
+ f.value === "R" && a.value !== "0" ? (C(), P(R, {
206
+ key: 0,
207
+ type: "primary",
208
+ onClick: D
209
+ }, {
210
+ default: l(() => [
211
+ n(k(se)),
212
+ e[10] || (e[10] = u(" 添加用户至角色 ", -1))
213
+ ]),
214
+ _: 1
215
+ })) : q("", !0),
216
+ f.value === "R" && a.value !== "0" && v.value.length > 0 ? (C(), P(R, {
217
+ key: 1,
218
+ type: "primary",
219
+ danger: "",
220
+ onClick: J
221
+ }, {
222
+ default: l(() => [
223
+ n(k(re)),
224
+ e[11] || (e[11] = u(" 移除用户角色 ", -1))
225
+ ]),
226
+ _: 1
227
+ })) : q("", !0)
228
+ ]),
229
+ _: 1
230
+ })
231
+ ])
232
+ ])
233
+ ]),
234
+ n(de, {
235
+ ref_key: "userTableListRef",
236
+ ref: U,
237
+ "node-type": f.value,
238
+ "node-id": a.value,
239
+ "query-params": p,
240
+ onUserEdit: V,
241
+ onUserPerm: E,
242
+ onUserBlock: j,
243
+ onReload: F,
244
+ onSelectionChange: H
245
+ }, null, 8, ["node-type", "node-id", "query-params"])
246
+ ]),
247
+ _: 1
248
+ })
249
+ ]),
250
+ _: 1
251
+ })
252
+ ]),
253
+ _: 1
254
+ }),
255
+ n(ce, {
256
+ "context-menu": _,
257
+ onSuccess: B
258
+ }, null, 8, ["context-menu"]),
259
+ n(ie, {
260
+ open: T.value,
261
+ "onUpdate:open": e[2] || (e[2] = (i) => T.value = i),
262
+ "role-id": a.value || "",
263
+ onSuccess: z
264
+ }, null, 8, ["open", "role-id"]),
265
+ n(me, {
266
+ open: b.value,
267
+ "onUpdate:open": e[3] || (e[3] = (i) => b.value = i),
268
+ "user-id": N.value,
269
+ "user-name": S.value,
270
+ onSuccess: G
271
+ }, null, 8, ["open", "user-id", "user-name"])
272
+ ]);
273
+ };
274
+ }
275
+ });
276
+ export {
277
+ Ie as default
278
+ };
@@ -0,0 +1,182 @@
1
+ import { defineComponent as z, ref as h, resolveComponent as m, openBlock as r, createElementBlock as c, createVNode as x, withCtx as f, createElementVNode as Q, toDisplayString as j, createBlock as R, resolveDynamicComponent as F, toRaw as w, createCommentVNode as G, unref as d } from "vue";
2
+ import { queryAllOrgPanel as H, getOrgPanel as C } from "./api.js";
3
+ import J from "./menu/TreeNodeMenu.js";
4
+ import X from "./assets/nopos.svg.js";
5
+ import Y from "./assets/unit.svg.js";
6
+ import Z from "./assets/division.svg.js";
7
+ import b from "./assets/user.svg.js";
8
+ import $ from "./assets/plugin.svg.js";
9
+ import ee from "./assets/cube.svg.js";
10
+ const te = ["src"], ne = ["src"], oe = ["src"], ae = ["src"], le = ["src"], re = ["src"], se = ["src"], ge = /* @__PURE__ */ z({
11
+ __name: "OrgTree",
12
+ emits: ["treeLoad", "nodeClick", "menuClick"],
13
+ setup(ce, { expose: M, emit: S }) {
14
+ const y = (t) => t ? t.map((e) => ({
15
+ key: e.id,
16
+ title: e.name,
17
+ isLeaf: !e.hasChildren,
18
+ iconName: e.icon,
19
+ type: e.type,
20
+ seqNo: e.seqNo
21
+ })) : [], T = (t) => t ? t.map((e) => ({
22
+ key: e.id,
23
+ title: e.name,
24
+ isLeaf: !e.hasChildren,
25
+ iconName: e.icon,
26
+ type: e.type,
27
+ seqNo: e.seqNo,
28
+ children: T(e.children)
29
+ })) : [], D = (t) => {
30
+ const e = [];
31
+ return t.forEach((n) => {
32
+ e.push(n.key), n.children && n.children.length > 0 && e.push(...D(n.children));
33
+ }), e;
34
+ }, g = S, L = h(""), q = (t) => {
35
+ if (!t) {
36
+ N();
37
+ return;
38
+ }
39
+ H(t).then((e) => {
40
+ e.code === 200 && (s.value = T(e.data), l.value = D(s.value), u.value = []);
41
+ });
42
+ }, l = h([]), u = h([]), s = h([]), v = h(null), O = async (t) => {
43
+ if (v.value = t, t.dataRef.children)
44
+ return;
45
+ const e = await C(t.dataRef.key);
46
+ e.code === 200 && (t.dataRef.children = y(e.data), s.value = [...s.value]);
47
+ }, P = (t) => {
48
+ l.value = t;
49
+ }, W = (t, e) => {
50
+ t.length === 1 && g("treeLoad");
51
+ }, B = (t, e) => {
52
+ const n = w(e.node.dataRef), o = l.value.includes(n.key);
53
+ if (n.isLeaf || (e.selected ? o || l.value.push(n.key) : o && (l.value = l.value.filter((_) => _ !== n.key))), t.length === 0) {
54
+ v.value = null;
55
+ return;
56
+ }
57
+ v.value = e.node;
58
+ const i = w(e.node.dataRef).key.split("_"), a = e.node.dataRef.type, k = i[1];
59
+ g("nodeClick", { nodeType: a, nodeId: k, nodeInfo: e.node });
60
+ }, N = async () => {
61
+ const t = await C();
62
+ t.code === 200 && (s.value = y(t.data), t.data.length > 0 && (l.value = [t.data[0].id]));
63
+ }, U = (t) => t === "org_block" ? null : J[t.split("_")[0]] || null, V = ({ key: t }, e) => {
64
+ const n = t.split("_")[0];
65
+ let o = t.split("_")[1];
66
+ o === "0" && (o = ""), g("menuClick", { nodeType: n, nodeId: o, action: e });
67
+ }, A = async (t) => {
68
+ console.log("reloadTreeNode: ", t);
69
+ const e = await C(t);
70
+ if (e.code === 200) {
71
+ const n = [...s.value];
72
+ E(n, t, y(e.data)), s.value = n;
73
+ }
74
+ }, E = (t, e, n) => {
75
+ t.forEach((o) => {
76
+ if (o.key === e) {
77
+ o.isLeaf = n.length === 0;
78
+ const p = K([o], 0);
79
+ u.value.length > 0 && (u.value = u.value.filter((i) => !p.includes(i))), u.value.length > 0 && (l.value = l.value.filter((i) => !p.includes(i))), o.children = n;
80
+ } else
81
+ o.children && E(o.children, e, n);
82
+ });
83
+ }, K = (t, e) => {
84
+ let n = [];
85
+ return t.forEach((o) => {
86
+ e > 0 && n.push(o.key), o.children && (n = n.concat(K(o.children, ++e)));
87
+ }), n;
88
+ };
89
+ return N(), M({ reloadTreeNode: A }), (t, e) => {
90
+ const n = m("a-input-search"), o = m("a-menu"), p = m("a-dropdown"), i = m("a-tree");
91
+ return r(), c("div", null, [
92
+ x(n, {
93
+ value: L.value,
94
+ "onUpdate:value": e[0] || (e[0] = (a) => L.value = a),
95
+ placeholder: "搜索节点",
96
+ "allow-clear": "",
97
+ size: "small",
98
+ style: { "margin-bottom": "8px", width: "180px" },
99
+ onSearch: q
100
+ }, null, 8, ["value"]),
101
+ x(i, {
102
+ showIcon: "",
103
+ expandedKeys: l.value,
104
+ loadedKeys: u.value,
105
+ loadData: O,
106
+ treeData: s.value,
107
+ onExpand: P,
108
+ onSelect: B,
109
+ onLoad: W
110
+ }, {
111
+ icon: f(({ key: a }) => [
112
+ a.startsWith("org_block") ? (r(), c("img", {
113
+ key: 0,
114
+ src: d(X),
115
+ style: { width: "16px", height: "16px" },
116
+ alt: ""
117
+ }, null, 8, te)) : a.startsWith("org_") ? (r(), c("img", {
118
+ key: 1,
119
+ src: d(Y),
120
+ style: { width: "16px", height: "16px" },
121
+ alt: ""
122
+ }, null, 8, ne)) : a.startsWith("dept_") ? (r(), c("img", {
123
+ key: 2,
124
+ src: d(Z),
125
+ style: { width: "16px", height: "16px" },
126
+ alt: ""
127
+ }, null, 8, oe)) : a.startsWith("pos_") ? (r(), c("img", {
128
+ key: 3,
129
+ src: d(b),
130
+ style: { width: "16px", height: "16px" },
131
+ alt: ""
132
+ }, null, 8, ae)) : a === "perm_0" ? (r(), c("img", {
133
+ key: 4,
134
+ src: d($),
135
+ style: { width: "16px", height: "16px" },
136
+ alt: ""
137
+ }, null, 8, le)) : a === "role_0" ? (r(), c("img", {
138
+ key: 5,
139
+ src: d(b),
140
+ style: { width: "16px", height: "16px" },
141
+ alt: ""
142
+ }, null, 8, re)) : (r(), c("img", {
143
+ key: 6,
144
+ src: d(ee),
145
+ style: { width: "16px", height: "16px" },
146
+ alt: ""
147
+ }, null, 8, se))
148
+ ]),
149
+ title: f(({ key: a, title: k, dataRef: _ }) => [
150
+ x(p, {
151
+ trigger: ["contextmenu"],
152
+ placement: "bottom",
153
+ arrow: ""
154
+ }, {
155
+ overlay: f(() => [
156
+ a !== "org_block" ? (r(), R(o, {
157
+ key: 0,
158
+ onClick: ({ key: I }) => V(_, I)
159
+ }, {
160
+ default: f(() => [
161
+ (r(), R(F(U(a)), {
162
+ "tree-node": w(_)
163
+ }, null, 8, ["tree-node"]))
164
+ ]),
165
+ _: 2
166
+ }, 1032, ["onClick"])) : G("", !0)
167
+ ]),
168
+ default: f(() => [
169
+ Q("span", null, j(k), 1)
170
+ ]),
171
+ _: 2
172
+ }, 1024)
173
+ ]),
174
+ _: 1
175
+ }, 8, ["expandedKeys", "loadedKeys", "treeData"])
176
+ ]);
177
+ };
178
+ }
179
+ });
180
+ export {
181
+ ge as default
182
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./OrgTree.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./RolePanel.vue2.js";
2
+ /* empty css */
3
+ import t from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const f = /* @__PURE__ */ t(o, [["__scopeId", "data-v-1f5bd5a4"]]);
5
+ export {
6
+ f as default
7
+ };
@@ -0,0 +1,157 @@
1
+ import { defineComponent as H, watch as $, ref as o, onMounted as G, resolveComponent as v, openBlock as p, createElementBlock as J, createVNode as L, withDirectives as O, withCtx as Q, createTextVNode as W, vShow as X, createElementVNode as K, createBlock as S, createCommentVNode as P, unref as Y } from "vue";
2
+ import { Empty as Z } from "ant-design-vue";
3
+ import { http as b } from "@since2006/utils";
4
+ const ee = { class: "permission-tree" }, ae = ["innerHTML"], re = /* @__PURE__ */ H({
5
+ __name: "RolePanel",
6
+ props: {
7
+ modelValue: {
8
+ type: Array,
9
+ default: () => []
10
+ }
11
+ },
12
+ emits: ["update:modelValue"],
13
+ setup(V, { emit: D }) {
14
+ const R = (a = null) => {
15
+ let e = "/api/v1/permission/query_all_roles";
16
+ return a && (e = `${e}?query=${encodeURIComponent(a)}`), b.get(e);
17
+ }, N = () => b.get("/api/v1/permission/get_all_roles"), w = V, M = D;
18
+ $(
19
+ () => w.modelValue,
20
+ (a) => {
21
+ i.value = a, l.value = a;
22
+ }
23
+ );
24
+ const s = o(!1), m = o(""), i = o([]), f = o([]), y = o([]), l = o([]), u = o([]), k = o([]), n = o([]), g = o("");
25
+ o(0), G(() => {
26
+ T();
27
+ });
28
+ const T = async () => {
29
+ try {
30
+ const a = await N();
31
+ if (a.code === 200) {
32
+ f.value = _(a.data);
33
+ const e = [];
34
+ x(e, a.data), y.value = e;
35
+ }
36
+ } catch (a) {
37
+ console.error("加载权限列表失败:", a);
38
+ }
39
+ }, j = (a) => {
40
+ l.value = [...a.checked], h();
41
+ }, B = (a, e) => {
42
+ const t = e.node.dataRef.key;
43
+ l.value.includes(t) ? l.value = l.value.filter((r) => r !== t) : l.value = [...l.value, ...a], h();
44
+ }, I = (a) => {
45
+ a && R(a).then((e) => {
46
+ if (e.code === 200) {
47
+ u.value = _(e.data), n.value = [...l.value];
48
+ const t = [];
49
+ E(t, e.data), k.value = [...t], s.value = !0;
50
+ }
51
+ }).catch((e) => {
52
+ console.error("搜索角色失败:", e);
53
+ });
54
+ }, q = () => {
55
+ s.value = !1, m.value = "", u.value = [];
56
+ }, A = (a, e) => {
57
+ e.checked ? (n.value = [...a.checked], l.value = C([...l.value, ...n.value])) : (n.value = n.value.filter(
58
+ (t) => t !== e.node.dataRef.key
59
+ ), l.value = l.value.filter((t) => t !== e.node.dataRef.key)), h();
60
+ }, F = (a, e) => {
61
+ e.selected && a.length > 0 ? (n.value = [...n.value, ...a], l.value = C([...l.value, ...n.value])) : (n.value = n.value.filter(
62
+ (t) => t !== e.node.dataRef.key
63
+ ), l.value = l.value.filter((t) => t !== e.node.dataRef.key)), h();
64
+ }, U = (a) => {
65
+ k.value = a;
66
+ }, E = (a, e) => {
67
+ e && e.forEach((t) => {
68
+ t.hasChildren && (a.push(t.id), E(a, t.children));
69
+ });
70
+ }, C = (a) => {
71
+ const e = a.concat();
72
+ for (let t = 0; t < e.length; ++t)
73
+ for (let r = t + 1; r < e.length; ++r)
74
+ e[t] === e[r] && e.splice(r--, 1);
75
+ return e;
76
+ }, _ = (a) => a ? a.map((e) => ({
77
+ key: e.id,
78
+ title: e.name,
79
+ isLeaf: !e.hasChildren,
80
+ children: _(e.children)
81
+ })) : [], x = (a, e) => {
82
+ e && e.forEach((t) => {
83
+ a[t.id] = { key: t.id, title: t.name, isLeaf: !t.hasChildren }, t.hasChildren && x(a, t.children);
84
+ });
85
+ }, h = () => {
86
+ const a = [];
87
+ a.push("原拥有: " + i.value.length);
88
+ let e = 0, t = 0;
89
+ const r = [], d = [];
90
+ i.value.forEach((c) => {
91
+ l.value.includes(c) || (t++, d.push(y.value[c].title));
92
+ }), l.value.forEach((c) => {
93
+ i.value.includes(c) || (e++, r.push(y.value[c].title));
94
+ }), (e > 0 || t > 0) && a.push('&nbsp;<span style="color:#2a9d90">+' + e + "</span>"), t > 0 && a.push('&nbsp;<span style="color:#e76e50">-' + t + "</span>"), (e > 0 || t > 0) && (a.push('<div style="">'), e > 0 && (a.push('<div><span style="color:#2a9d90">新增</span>:'), a.push(r.join(", ")), a.push("</div>")), t > 0 && (a.push('<div><span style="color:#e76e50">移除</span>:'), a.push(d.join(", ")), a.push("</div>")), a.push("</div>")), g.value = a.join(""), M("update:modelValue", l.value);
95
+ };
96
+ return (a, e) => {
97
+ const t = v("a-input-search"), r = v("a-button"), d = v("a-tree"), c = v("a-empty");
98
+ return p(), J("div", null, [
99
+ L(t, {
100
+ value: m.value,
101
+ "onUpdate:value": e[0] || (e[0] = (z) => m.value = z),
102
+ size: "middle",
103
+ placeholder: "搜索角色名称",
104
+ style: { width: "190px" },
105
+ onSearch: I
106
+ }, null, 8, ["value"]),
107
+ O(L(r, {
108
+ size: "middle",
109
+ onClick: q,
110
+ class: "search-back-button"
111
+ }, {
112
+ default: Q(() => [...e[1] || (e[1] = [
113
+ W(" 返回 ", -1)
114
+ ])]),
115
+ _: 1
116
+ }, 512), [
117
+ [X, s.value]
118
+ ]),
119
+ K("div", ee, [
120
+ !s.value && f.value.length > 0 ? (p(), S(d, {
121
+ key: 0,
122
+ checkable: "",
123
+ defaultExpandAll: "",
124
+ checkStrictly: "",
125
+ checkedKeys: l.value,
126
+ treeData: f.value,
127
+ onCheck: j,
128
+ onSelect: B
129
+ }, null, 8, ["checkedKeys", "treeData"])) : P("", !0),
130
+ s.value && u.value.length > 0 ? (p(), S(d, {
131
+ key: 1,
132
+ checkable: "",
133
+ checkStrictly: "",
134
+ expandedKeys: k.value,
135
+ checkedKeys: n.value,
136
+ treeData: u.value,
137
+ onCheck: A,
138
+ onSelect: F,
139
+ onExpand: U
140
+ }, null, 8, ["expandedKeys", "checkedKeys", "treeData"])) : P("", !0),
141
+ s.value && u.value.length === 0 ? (p(), S(c, {
142
+ key: 2,
143
+ description: "未找到相关角色",
144
+ image: Y(Z).PRESENTED_IMAGE_SIMPLE
145
+ }, null, 8, ["image"])) : P("", !0),
146
+ K("div", {
147
+ innerHTML: g.value,
148
+ class: "text"
149
+ }, null, 8, ae)
150
+ ])
151
+ ]);
152
+ };
153
+ }
154
+ });
155
+ export {
156
+ re as default
157
+ };