@ximatai/muyun-web-app 0.26.12 → 0.26.13

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 (122) hide show
  1. package/dist/BusinessActivityLogView-UC4rH4Fn.js +16 -0
  2. package/dist/BusinessLogListDrawer-BtaXVJKz.js +564 -0
  3. package/dist/LoginAuditLogView-Cjrp8MKX.js +16 -0
  4. package/dist/{ModuleActionManagementView-BHEooZ5L.js → ModuleActionManagementView-Dkb35QXc.js} +139 -138
  5. package/dist/{ModuleGovernanceView-DB3TWlMy.js → ModuleGovernanceView-Dx43QvGf.js} +2878 -2748
  6. package/dist/RequestErrorLogView-WnGvMWiF.js +16 -0
  7. package/dist/RoleDetailWorkspaceView-DPDb_QOn.js +1397 -0
  8. package/dist/RuntimeLogView-BRl4ZDkU.js +330 -0
  9. package/dist/http-B0TC0pJB.js +157 -0
  10. package/dist/index.css +1 -1
  11. package/dist/index.js +505 -475
  12. package/dist/{moduleGovernanceWorkspaceView-C5pqJOEJ.js → moduleGovernanceWorkspaceView-4V_UW-Bt.js} +2 -2
  13. package/dist/platform-components-1cvOeHmo.js +17854 -0
  14. package/dist/platform-workbench-Cu14Xd9d.js +10299 -0
  15. package/dist/types/consumer/index.d.ts +7 -0
  16. package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +2208 -0
  17. package/dist/types/dynamic-page-runtime/ModulePageBusinessState.vue.d.ts +11 -0
  18. package/dist/types/dynamic-page-runtime/ModulePageHost.vue.d.ts +20 -4
  19. package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +4431 -0
  20. package/dist/types/dynamic-page-runtime/ModulePageHostSession.vue.d.ts +43 -0
  21. package/dist/types/dynamic-page-runtime/ModulePageRecordContent.vue.d.ts +2 -2
  22. package/dist/types/dynamic-page-runtime/ModuleRecordDetailActions.vue.d.ts +3 -0
  23. package/dist/types/dynamic-page-runtime/ModuleReferenceRecordDetailBrowser.vue.d.ts +42 -0
  24. package/dist/types/dynamic-page-runtime/RecordFormSurface.vue.d.ts +2 -2
  25. package/dist/types/dynamic-page-runtime/TenantScopeExplorer.vue.d.ts +21 -0
  26. package/dist/types/dynamic-page-runtime/composables/useModulePageActions.d.ts +1 -1
  27. package/dist/types/dynamic-page-runtime/composables/useModulePageDetailActionRuntime.d.ts +5 -0
  28. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +1 -0
  29. package/dist/types/dynamic-page-runtime/formActionResult.d.ts +2 -0
  30. package/dist/types/dynamic-page-runtime/index.d.ts +2 -0
  31. package/dist/types/dynamic-page-runtime/inputValidationActionStatus.d.ts +20 -0
  32. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +7 -3
  33. package/dist/types/dynamic-page-runtime/modulePageUnsavedState.d.ts +10 -0
  34. package/dist/types/dynamic-page-runtime/recordDetailController.d.ts +1 -0
  35. package/dist/types/dynamic-page-runtime/recordMutationPayload.d.ts +3 -2
  36. package/dist/types/dynamic-page-runtime/referenceRecordProjection.d.ts +6 -0
  37. package/dist/types/dynamic-page-runtime/sessionViewBindings.d.ts +3 -0
  38. package/dist/types/dynamic-page-runtime/sourceReferencePickerConfig.d.ts +26 -0
  39. package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +1728 -0
  40. package/dist/types/dynamic-page-runtime/useTenantScopeController.d.ts +18 -0
  41. package/dist/types/platform-admin-runtime/WorkspaceViewDrawer.vue.d.ts +5 -0
  42. package/dist/types/platform-admin-runtime/role/roleScopeSelectionClient.d.ts +52 -0
  43. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +5 -2
  44. package/dist/types/platform-components/DictionaryOptionDialog.vue.d.ts +37 -0
  45. package/dist/types/platform-components/DictionaryOptionDialogChoiceList.vue.d.ts +21 -0
  46. package/dist/types/platform-components/DictionaryPicker.vue.d.ts +47 -0
  47. package/dist/types/platform-components/DictionaryRadioGroup.vue.d.ts +20 -0
  48. package/dist/types/platform-components/EmployeePicker.vue.d.ts +40 -0
  49. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +1 -1
  50. package/dist/types/platform-components/ObjectPickerInput.vue.d.ts +34 -0
  51. package/dist/types/platform-components/QueryCriteriaComposer.vue.d.ts +29 -0
  52. package/dist/types/platform-components/QueryCriteriaGroupEditor.vue.d.ts +36 -0
  53. package/dist/types/platform-components/QueryValueEditor.vue.d.ts +33 -0
  54. package/dist/types/platform-components/ReadonlyReferenceValue.vue.d.ts +11 -0
  55. package/dist/types/platform-components/RecordContentSectionHeading.vue.d.ts +4 -2
  56. package/dist/types/platform-components/RecordDetailDrawer.vue.d.ts +8 -3
  57. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +7 -3
  58. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +3 -5
  59. package/dist/types/platform-components/RecordFormFields.vue.d.ts +5 -5
  60. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +11 -3
  61. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +2 -2
  62. package/dist/types/platform-components/RecordPicker.vue.d.ts +2 -2
  63. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +18 -4
  64. package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +20 -0
  65. package/dist/types/platform-components/ReferencePicker.vue.d.ts +47 -0
  66. package/dist/types/platform-components/ReferenceRecordDetailBrowser.vue.d.ts +55 -0
  67. package/dist/types/platform-components/ScopedTreePicker.vue.d.ts +31 -0
  68. package/dist/types/platform-components/UserPicker.vue.d.ts +47 -0
  69. package/dist/types/platform-components/dictionaryOptionDialogModel.d.ts +23 -0
  70. package/dist/types/platform-components/employeePickerModel.d.ts +19 -0
  71. package/dist/types/platform-components/identityPickerModel.d.ts +18 -0
  72. package/dist/types/platform-components/index.d.ts +28 -1
  73. package/dist/types/platform-components/optionFieldOptionCache.d.ts +1 -1
  74. package/dist/types/platform-components/queryCriteriaDraft.d.ts +24 -0
  75. package/dist/types/platform-components/queryReferencePickerProvider.d.ts +19 -0
  76. package/dist/types/platform-components/readonlyReferenceDisplay.d.ts +19 -0
  77. package/dist/types/platform-components/recordEditorSessionState.d.ts +11 -4
  78. package/dist/types/platform-components/recordFormFieldModel.d.ts +28 -2
  79. package/dist/types/platform-components/recordQueryListColumnModel.d.ts +3 -1
  80. package/dist/types/platform-components/referencePickerModel.d.ts +103 -0
  81. package/dist/types/platform-components/referencePickerReadError.d.ts +24 -0
  82. package/dist/types/platform-components/referenceRecordDetailBrowser.d.ts +48 -0
  83. package/dist/types/platform-components/scopedTreePickerModel.d.ts +46 -0
  84. package/dist/types/platform-components/sourceReferencePickerProvider.d.ts +26 -0
  85. package/dist/types/platform-components/staticCrudManagementState.d.ts +7 -6
  86. package/dist/types/platform-components/userPickerModel.d.ts +45 -0
  87. package/dist/types/platform-components/userReferencePicker.d.ts +17 -0
  88. package/dist/types/platform-workbench/useWorkspaceViewUnsavedState.d.ts +1 -1
  89. package/dist/types/platform-workbench/workspaceViewHost.d.ts +1 -1
  90. package/dist/types/platform-workbench/workspaceViewUnsavedState.d.ts +3 -1
  91. package/dist/types/views/BusinessActivityLogView.vue.d.ts +3 -0
  92. package/dist/types/views/BusinessLogListDrawer.vue.d.ts +9 -0
  93. package/dist/types/views/LoginAuditLogView.vue.d.ts +3 -0
  94. package/dist/types/views/RequestErrorLogView.vue.d.ts +3 -0
  95. package/dist/types/views/RuntimeLogView.vue.d.ts +3 -0
  96. package/dist/types/views/businessLogClient.d.ts +85 -0
  97. package/dist/types/views/dictionaryRadioEligibility.d.ts +18 -0
  98. package/dist/types/views/dictionaryRadioFactRequestEpoch.d.ts +10 -0
  99. package/dist/types/views/metadataModelEditSession.d.ts +10 -1
  100. package/dist/types/views/pageCompositionDraftState.d.ts +29 -0
  101. package/dist/types/views/roleDetailWorkspaceSession.d.ts +1 -0
  102. package/dist/types/views/roleGrantClient.d.ts +0 -1
  103. package/dist/types/views/runtimeLogClient.d.ts +12 -0
  104. package/dist/types/views/runtimeLogSse.d.ts +13 -0
  105. package/dist/types/vue-ui-antdv/components/UiDataTable.vue.d.ts +15 -0
  106. package/dist/types/vue-ui-antdv/components/UiSearchInput.vue.d.ts +16 -2
  107. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +23 -1
  108. package/dist/types/vue-ui-antdv/components/UiSidePanel.vue.d.ts +9 -2
  109. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +1 -1
  110. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +23 -1
  111. package/dist/types/vue-ui-antdv/drawerDismissal.d.ts +18 -0
  112. package/dist/types/vue-ui-antdv/drawerWidth.d.ts +22 -0
  113. package/dist/types/vue-ui-antdv/index.d.ts +4 -0
  114. package/dist/types/web-contracts/index.d.ts +66 -6
  115. package/dist/types/web-core/http.d.ts +2 -0
  116. package/dist/types/web-core/module/moduleContext.d.ts +15 -2
  117. package/dist/types/web-core/module/runtimeContext.d.ts +3 -2
  118. package/dist/types/web-core/module/staticModuleClient.d.ts +5 -1
  119. package/dist/{workspaceViews-DI_1vYX9.js → workspaceViews-CCg6V0pr.js} +1245 -1140
  120. package/package.json +1 -1
  121. package/dist/RoleDetailWorkspaceView-D6X7pAj5.js +0 -1379
  122. package/dist/platform-workbench-DJj42YQP.js +0 -22911
@@ -1,1379 +0,0 @@
1
- import { $t as e, B as t, D as n, Dn as r, E as i, Et as a, F as ee, G as te, I as ne, J as re, N as o, O as ie, Rn as ae, Tn as oe, Y as se, Zt as ce, an as le, bn as ue, bt as de, en as fe, et as pe, f as me, j as he, on as ge, q as _e, vt as s, xn as c, z as ve } from "./platform-workbench-DJj42YQP.js";
2
- import { a as l, c as ye, i as be, o as xe, r as Se, s as Ce, t as we, x as Te } from "./workspaceViews-DI_1vYX9.js";
3
- import { Fragment as Ee, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as De, createVNode as h, defineComponent as g, normalizeClass as Oe, onBeforeUnmount as ke, onMounted as Ae, openBlock as _, ref as v, unref as y, watch as je, withCtx as b, withModifiers as Me } from "vue";
4
- //#region src/platform-components/recordDraftNormalizer.ts
5
- function Ne(e, t) {
6
- return {
7
- ...e,
8
- ...t
9
- };
10
- }
11
- //#endregion
12
- //#region src/views/roleDetailWorkspaceSession.ts
13
- function Pe(e, t) {
14
- return Se(Te, e, {
15
- ...t,
16
- selectedRole: { ...t.selectedRole },
17
- draft: { ...t.draft },
18
- scope: {
19
- ...t.scope,
20
- tenant: t.scope.tenant ? { ...t.scope.tenant } : void 0,
21
- organization: t.scope.organization ? { ...t.scope.organization } : void 0
22
- }
23
- });
24
- }
25
- function Fe(e, t) {
26
- return be(Te, e, t);
27
- }
28
- function Ie(e) {
29
- return l(Te, e);
30
- }
31
- //#endregion
32
- //#region src/views/RoleGroupMemberSelector.vue?vue&type=script&setup=true&lang.ts
33
- var x = { class: "role-group-member-selector" }, Le = /*#__PURE__*/ r(/* @__PURE__ */ g({
34
- name: "RoleGroupMemberSelector",
35
- __name: "RoleGroupMemberSelector",
36
- props: {
37
- value: { default: void 0 },
38
- candidates: {},
39
- currentRoleId: { default: void 0 },
40
- disabled: {
41
- type: Boolean,
42
- default: !1
43
- }
44
- },
45
- emits: ["update:value"],
46
- setup(e, { emit: t }) {
47
- let n = e, r = t, i = u(() => ne(n.value)), a = u(() => new Set(n.candidates.filter((e) => e.roleKind === "dataGrant" && e.id && i.value.includes(e.id)).map((e) => e.id))), ee = u(() => n.candidates.filter((e) => e.id && e.id !== n.currentRoleId).map((e) => ({
48
- label: `${re(e)} / ${o(e.roleKind)}`,
49
- value: e.id,
50
- disabled: e.roleKind === "dataGrant" && a.value.size > 0 && !i.value.includes(e.id)
51
- })));
52
- function te(e) {
53
- if (!Array.isArray(e)) {
54
- r("update:value", void 0);
55
- return;
56
- }
57
- let t = e.map((e) => String(e).trim()).filter(Boolean);
58
- r("update:value", t.length > 0 ? t.join(",") : void 0);
59
- }
60
- function ne(e) {
61
- return Array.isArray(e) ? e.map((e) => String(e).trim()).filter(Boolean) : typeof e == "string" ? e.split(",").map((e) => e.trim()).filter(Boolean) : [];
62
- }
63
- function re(e) {
64
- return String(e?.title ?? e?.id ?? "角色");
65
- }
66
- function o(e) {
67
- return e === "dataGrant" ? "数据授权角色" : "标准角色";
68
- }
69
- return (t, n) => (_(), p("label", x, [n[0] ||= m("span", { class: "role-group-member-selector-label" }, "成员角色", -1), h(y(c), {
70
- mode: "multiple",
71
- value: i.value,
72
- options: ee.value,
73
- placeholder: "请选择成员角色",
74
- disabled: e.disabled,
75
- "allow-clear": !0,
76
- "onUpdate:value": te
77
- }, null, 8, [
78
- "value",
79
- "options",
80
- "disabled"
81
- ])]));
82
- }
83
- }), [["__scopeId", "data-v-91d9ae10"]]), Re = {
84
- key: 1,
85
- class: "role-detail-state"
86
- }, ze = {
87
- key: 1,
88
- class: "role-detail-state"
89
- }, Be = /*#__PURE__*/ r(/* @__PURE__ */ g({
90
- name: "RoleManagementView",
91
- __name: "RoleManagementView",
92
- props: {
93
- recordId: {},
94
- scopeKind: {},
95
- scopeId: {}
96
- },
97
- setup(r) {
98
- let c = r, l = me(), be = ae({ moduleAlias: "iam.tenant" }), Se = ae({ moduleAlias: "iam.organization" }), g = ae({ moduleAlias: "iam.role" }), x = a(), Be = v(""), S = v(null), C = v(0), w = v(), T = v(), E = v(), D = v(), O = v(!1), k = v("view"), A = v(!1), j = v(!1), M = v(!1), N = v(), P = v(!1), F = v(!1), Ve = v(), He = v(!1), I = v(0), L = v(Z(void 0)), R = v(re(void 0)), z = v([]), B = u(() => !!(c.recordId && c.scopeKind)), V = u(() => B.value && l?.presentation === "drawer"), Ue = u(() => !B.value || V.value), H = v([]), U = ge({
99
- nodes: () => H.value,
100
- loader: () => xt,
101
- version: () => H.value
102
- }), We = U.states, Ge = v([]), Ke = v(!1), W = /* @__PURE__ */ new Map(), qe = /* @__PURE__ */ new Map(), Je = /* @__PURE__ */ new Map(), Ye = u(() => In(U.nodes.value, Be.value)), Xe = u(() => x?.value?.system === !0), Ze = u(() => x?.value?.system === !0), Qe = u(() => {
103
- let e = x?.value?.tenantId;
104
- if (x?.value?.system !== !0 && e) return {
105
- id: e,
106
- title: e,
107
- alias: e,
108
- enabled: !0
109
- };
110
- }), $e = u(() => gt(g, T.value)), et = u(() => [
111
- {
112
- key: "title",
113
- title: "角色名称",
114
- width: "22%"
115
- },
116
- {
117
- key: "assignmentType",
118
- title: "授权层级",
119
- width: "13%",
120
- render: (e) => wn(e, "assignmentType", bn(e.assignmentType))
121
- },
122
- {
123
- key: "roleKind",
124
- title: "角色类型",
125
- width: "13%",
126
- render: (e) => wn(e, "roleKind", xn(e.roleKind))
127
- },
128
- {
129
- key: "sharePolicy",
130
- title: "公开策略",
131
- width: "15%",
132
- render: (e) => wn(e, "sharePolicy", Sn(e.sharePolicy))
133
- },
134
- {
135
- key: "systemManaged",
136
- title: "系统托管",
137
- width: "12%",
138
- render: (e) => Cn(e.systemManaged)
139
- },
140
- {
141
- key: "enabled",
142
- title: "状态",
143
- type: "enabledStatus",
144
- width: "10%"
145
- }
146
- ]), tt = u(() => !!T.value), nt = u(() => k.value === "create" ? "新建角色" : $(D.value ?? L.value)), rt = u(() => T.value?.title ?? "角色详情"), G = u(() => M.value || A.value), it = u(() => A.value || !T.value ? !1 : k.value === "create" ? g.can("create") === !0 : !!D.value?.id && g.can("update") === !0 && !D.value?.systemManaged), at = u(() => {
147
- let e = D.value;
148
- return !!(e?.id && e.systemManaged !== !0 && g.can(kn(e)) === !0);
149
- }), ot = u(() => k.value === "view" ? D.value?.id ? [
150
- {
151
- key: "edit",
152
- actionCode: "update",
153
- title: "编辑",
154
- iconName: "edit",
155
- disabled: M.value || D.value.systemManaged === !0
156
- },
157
- {
158
- key: "bind",
159
- actionCode: Dn(D.value),
160
- title: On(D.value),
161
- iconName: "lock",
162
- visible: Tn(D.value),
163
- disabled: M.value || D.value.systemManaged === !0
164
- },
165
- {
166
- key: "delete",
167
- actionCode: "delete",
168
- title: "删除",
169
- iconName: "delete",
170
- danger: !0,
171
- disabled: M.value || D.value.systemManaged === !0
172
- }
173
- ] : [] : [{
174
- key: "cancel",
175
- title: "取消",
176
- iconName: "close",
177
- disabled: M.value
178
- }, {
179
- key: "save",
180
- actionCode: k.value === "create" ? "create" : "update",
181
- title: "保存",
182
- iconName: "save",
183
- primary: !0,
184
- loading: M.value,
185
- disabled: !it.value
186
- }]), st = u(() => ot.value), ct = u(() => ot.value), lt = xe({
187
- view: Te,
188
- input: u(() => {
189
- let e = D.value?.id, t = T.value, n = k.value;
190
- if (e && t && (n === "view" || n === "edit")) return {
191
- recordId: e,
192
- scopeKind: t.kind,
193
- ...t.kind === "platform" ? {} : { scopeId: t.id }
194
- };
195
- }),
196
- title: u(() => $(D.value)),
197
- eligibility: u(() => ({
198
- hasStableIdentity: !!(D.value?.id && T.value) && !A.value,
199
- busy: M.value
200
- })),
201
- beforePromote: async (e) => {
202
- let t = D.value, n = T.value;
203
- if (t && n) return await Pe(e, {
204
- selectedRole: t,
205
- draft: L.value,
206
- scope: n,
207
- mode: k.value === "edit" ? "edit" : "view"
208
- }) === "accepted";
209
- },
210
- onPromoted: qt
211
- }), K = u(() => ({
212
- title: {
213
- label: "角色名称",
214
- required: !0,
215
- visible: !0,
216
- placeholder: "请输入角色名称"
217
- },
218
- assignmentType: {
219
- label: "授权层级",
220
- required: !0,
221
- visible: !0,
222
- controlType: "select",
223
- options: mn(L.value.roleKind)
224
- },
225
- roleKind: {
226
- label: "角色类型",
227
- required: !0,
228
- visible: !0,
229
- controlType: "select",
230
- options: hn(L.value.assignmentType)
231
- },
232
- memberRoleIds: {
233
- label: "成员角色",
234
- visible: L.value.roleKind === "group"
235
- },
236
- ownerScopeType: {
237
- label: "归属范围",
238
- required: !0,
239
- visible: !0,
240
- readOnly: !0,
241
- controlType: "select",
242
- options: [
243
- {
244
- label: "平台",
245
- value: "platform"
246
- },
247
- {
248
- label: "租户",
249
- value: "tenant"
250
- },
251
- {
252
- label: "机构",
253
- value: "organization"
254
- }
255
- ]
256
- },
257
- ownerScopeId: {
258
- label: "归属对象",
259
- visible: !0,
260
- readOnly: !0
261
- },
262
- sharePolicy: {
263
- label: "公开策略",
264
- required: !0,
265
- visible: !0,
266
- controlType: "select",
267
- options: yn(T.value?.kind ?? L.value.ownerScopeType)
268
- },
269
- description: {
270
- label: "说明",
271
- visible: !0,
272
- placeholder: "请输入角色说明"
273
- },
274
- enabled: {
275
- label: "启用状态",
276
- visible: !0,
277
- controlType: "enabledStatus"
278
- },
279
- sortOrder: {
280
- label: "排序号",
281
- visible: !0,
282
- placeholder: "请输入排序号"
283
- }
284
- })), ut = [
285
- "title",
286
- "assignmentType",
287
- "roleKind"
288
- ], dt = [
289
- "ownerScopeType",
290
- "ownerScopeId",
291
- "sharePolicy",
292
- "description",
293
- "enabled",
294
- "sortOrder"
295
- ], ft = u(() => {
296
- let e = [
297
- "title",
298
- "assignmentType",
299
- "roleKind"
300
- ];
301
- return L.value.roleKind === "group" && e.push("memberRoleIds"), e.push("ownerScopeType", "ownerScopeId", "sharePolicy", "description", "enabled", "sortOrder"), e;
302
- }), pt;
303
- Ae(() => {
304
- if (ht(), (!B.value || V.value) && yt(), !B.value || !c.recordId || !c.scopeKind) return;
305
- let e = rn();
306
- e && !V.value && (pt = Fe(e, mt)), nn();
307
- }), ke(() => pt?.());
308
- function mt(e) {
309
- return k.value !== "edit" && (sn(e), !0);
310
- }
311
- je(D, (e) => {
312
- B.value && e && l?.setTitle($(e));
313
- }, { immediate: !0 }), je(Qe, jt, { immediate: !0 }), je(T, () => {
314
- B.value || (E.value = void 0, D.value = void 0, L.value = Z(T.value), qt(), C.value += 1, q());
315
- });
316
- async function ht() {
317
- try {
318
- let e = await g.runtime.ready;
319
- R.value = re(e.uiDescriptor);
320
- } catch (e) {
321
- s(e, {
322
- source: "role-management",
323
- phase: "load"
324
- });
325
- }
326
- }
327
- async function q(e = T.value) {
328
- if (!e) {
329
- z.value = [];
330
- return;
331
- }
332
- try {
333
- let t = await g.crud.query(_t({
334
- page: {
335
- pageNum: 0,
336
- pageSize: 500
337
- },
338
- conditions: [
339
- {
340
- fieldName: "assignmentType",
341
- operator: "EQ",
342
- values: ["employment"]
343
- },
344
- {
345
- fieldName: "roleKind",
346
- operator: "IN",
347
- values: ["standard", "dataGrant"]
348
- },
349
- {
350
- fieldName: "enabled",
351
- operator: "EQ",
352
- values: [!0]
353
- }
354
- ],
355
- sorts: [{ field: "sortOrder" }, { field: "title" }]
356
- }, e));
357
- z.value = t.records;
358
- } catch (e) {
359
- z.value = [], s(e, {
360
- source: "role-management",
361
- phase: "load"
362
- });
363
- }
364
- }
365
- function gt(e, t) {
366
- return {
367
- ...e,
368
- crud: {
369
- ...e.crud,
370
- query: (n) => t ? e.crud.query(_t(n, t)) : e.crud.query(n)
371
- }
372
- };
373
- }
374
- function _t(e, t) {
375
- let n = [...e?.conditions ?? [], {
376
- fieldName: "ownerScopeType",
377
- operator: "EQ",
378
- values: [t.kind]
379
- }];
380
- return t.kind !== "platform" && t.id && n.push({
381
- fieldName: "ownerScopeId",
382
- operator: "EQ",
383
- values: [t.id]
384
- }), {
385
- ...e,
386
- conditions: n
387
- };
388
- }
389
- function vt(e) {
390
- return e === "ownerScopeType" || e === "ownerScopeId" || k.value === "edit" && ["assignmentType", "roleKind"].includes(e) ? !0 : D.value?.systemManaged === !0;
391
- }
392
- function J(e, t) {
393
- let n = {
394
- ...L.value,
395
- [e]: t
396
- };
397
- e === "roleKind" && (t === "group" || t === "dataGrant") && (n.assignmentType = "employment"), e === "roleKind" && t !== "group" && (n.memberRoleIds = void 0), e === "assignmentType" && t === "account" && pn(n.roleKind) && (n.roleKind = "standard", n.memberRoleIds = void 0), L.value = n;
398
- }
399
- async function yt() {
400
- if (!B.value || V.value) {
401
- if (!Ze.value) {
402
- let e = Qe.value;
403
- if (!e?.id) return;
404
- W.set(e.id, e), H.value = [bt(e)], jt(e);
405
- return;
406
- }
407
- Ke.value = !0;
408
- try {
409
- await be.runtime.ready;
410
- let e = await be.abilities.crud().query({ page: {
411
- pageNum: 1,
412
- pageSize: 200
413
- } });
414
- W.clear(), e.records.forEach((e) => {
415
- e.id && W.set(e.id, e);
416
- }), H.value = e.records.map(bt), !T.value && Xe.value && Mt();
417
- } catch (e) {
418
- H.value = [], s(e, {
419
- source: "role-management",
420
- phase: "load"
421
- });
422
- } finally {
423
- Ke.value = !1;
424
- }
425
- }
426
- }
427
- function bt(e) {
428
- return {
429
- key: Tt(e.id),
430
- title: jn(e),
431
- secondary: e.alias ?? e.id,
432
- muted: e.enabled === !1,
433
- isLeaf: !1
434
- };
435
- }
436
- async function xt(e, t) {
437
- let n = Ot(e.key), r = n ? W.get(n) : void 0;
438
- if (!n || !r) throw Error("租户已失效");
439
- try {
440
- let e = ie(Se, {
441
- scopeFieldName: "tenantId",
442
- scopeValue: n,
443
- treePath: "/iam.organization/tree"
444
- });
445
- await e.runtime.ready;
446
- let i = await e.abilities.tree().tree();
447
- return t.signal.throwIfAborted(), {
448
- mode: "replace",
449
- nodes: [St(r), ...i.records.map((e) => Ct(e, n))],
450
- hasMore: !1
451
- };
452
- } catch (e) {
453
- throw t.signal.aborted || s(e, {
454
- source: "role-management",
455
- phase: "load"
456
- }), e;
457
- }
458
- }
459
- function St(e) {
460
- return {
461
- key: Et(e.id),
462
- title: jn(e),
463
- secondary: "租户本级角色",
464
- isLeaf: !0
465
- };
466
- }
467
- function Ct(e, t) {
468
- let n = e.record;
469
- return n.id && (qe.set(n.id, n), Je.set(n.id, t)), {
470
- key: Dt(n.id),
471
- title: Mn(n),
472
- secondary: n.code ?? n.id,
473
- muted: n.enabled === !1,
474
- isLeaf: e.children.length === 0,
475
- children: e.children.map((e) => Ct(e, t))
476
- };
477
- }
478
- function wt(e) {
479
- let t = Ot(e.key);
480
- if (t) {
481
- let e = W.get(t);
482
- e && Pt(e);
483
- return;
484
- }
485
- let n = kt(e.key);
486
- if (n) {
487
- let e = W.get(n);
488
- e && Pt(e);
489
- return;
490
- }
491
- let r = At(e.key);
492
- if (!r) return;
493
- let i = qe.get(r), a = Je.get(r);
494
- i && a && (w.value = W.get(a), It(i));
495
- }
496
- function Tt(e) {
497
- return `tenant:${e ?? ""}`;
498
- }
499
- function Et(e) {
500
- return `tenant-root:${e ?? ""}`;
501
- }
502
- function Dt(e) {
503
- return `organization:${e ?? ""}`;
504
- }
505
- function Ot(e) {
506
- return e.startsWith("tenant:") ? e.slice(7) : void 0;
507
- }
508
- function kt(e) {
509
- return e.startsWith("tenant-root:") ? e.slice(12) : void 0;
510
- }
511
- function At(e) {
512
- return e.startsWith("organization:") ? e.slice(13) : void 0;
513
- }
514
- function jt(e = Qe.value) {
515
- !e || Ze.value || w.value || T.value || (w.value = e, Ft(e));
516
- }
517
- function Mt() {
518
- X() && Xe.value && (w.value = void 0, T.value = {
519
- kind: "platform",
520
- key: "platform",
521
- title: "平台角色"
522
- });
523
- }
524
- function Nt() {
525
- if (X()) {
526
- if (!Xe.value) {
527
- Ft();
528
- return;
529
- }
530
- Mt();
531
- }
532
- }
533
- function Pt(e) {
534
- X() && (w.value = e, Ft(e));
535
- }
536
- function Ft(e = w.value) {
537
- e?.id && X() && (T.value = {
538
- kind: "tenant",
539
- id: e.id,
540
- key: `tenant:${e.id}`,
541
- title: `${jn(e)} / 租户本级`,
542
- tenant: e
543
- });
544
- }
545
- function It(e) {
546
- e.id && X() && (T.value = {
547
- kind: "organization",
548
- id: e.id,
549
- key: `organization:${e.id}`,
550
- title: Mn(e),
551
- tenant: w.value,
552
- organization: e
553
- });
554
- }
555
- function Lt(e) {
556
- e.key === "create" && Kt();
557
- }
558
- function Rt(e) {
559
- return [
560
- {
561
- key: "bind",
562
- actionCode: Dn(e),
563
- title: "绑定",
564
- after: "edit",
565
- pinned: !0,
566
- visible: Tn(e)
567
- },
568
- {
569
- key: "authorize",
570
- actionCode: "rolePermissions",
571
- title: "授权",
572
- after: "bind",
573
- pinned: !0,
574
- visible: En(e)
575
- },
576
- {
577
- key: "toggle",
578
- actionCode: kn(e),
579
- title: An(e),
580
- iconName: "power",
581
- before: "delete"
582
- }
583
- ];
584
- }
585
- function zt(e, t) {
586
- if (e.systemManaged !== !0) return;
587
- let n = t.key ?? t.actionCode;
588
- return n === "edit" || n === "update" || n === "bind" || n === "authorize" || n === "toggle" || n === "delete" ? { disabled: !0 } : void 0;
589
- }
590
- function Bt(e, t) {
591
- if (X()) {
592
- if (e.key === "view") {
593
- Y(t, "view");
594
- return;
595
- }
596
- if (e.key === "edit") {
597
- Y(t, "edit");
598
- return;
599
- }
600
- if (e.key === "bind") {
601
- Wt(t, t.assignmentType === "employment");
602
- return;
603
- }
604
- if (e.key === "authorize") {
605
- Vt(t);
606
- return;
607
- }
608
- if (e.key === "toggle") {
609
- $t(t);
610
- return;
611
- }
612
- e.key === "delete" && Qt(t);
613
- }
614
- }
615
- function Vt(e) {
616
- String(e.id ?? "") && e.roleKind !== "group" && (Ve.value = Q(e), He.value = !0);
617
- }
618
- function Ht() {
619
- He.value = !1, Ve.value = void 0;
620
- }
621
- function Ut(e) {
622
- X() && Y(e, "view");
623
- }
624
- async function Wt(e, t = !1) {
625
- if (!X()) return;
626
- let n = String(e.id ?? "");
627
- if (n) {
628
- P.value = !t, F.value = t, N.value = Q(e);
629
- try {
630
- N.value = await g.crud.view(n);
631
- } catch (e) {
632
- P.value = !1, F.value = !1, N.value = void 0, s(e, {
633
- source: "role-management",
634
- phase: "load"
635
- });
636
- }
637
- }
638
- }
639
- function Gt() {
640
- M.value || (P.value = !1, F.value = !1, N.value = void 0);
641
- }
642
- function Kt() {
643
- if (X()) {
644
- if (!T.value) {
645
- de("请先选择角色归属范围", { phase: "validation" });
646
- return;
647
- }
648
- D.value = void 0, E.value = void 0, L.value = Z(T.value), k.value = "create", A.value = !1, j.value = !1, I.value += 1, O.value = !0;
649
- }
650
- }
651
- async function Y(e, t) {
652
- if (!X()) return;
653
- let n = String(e.id ?? "");
654
- if (!n) return;
655
- E.value = n, O.value = !0, k.value = t, D.value = void 0, L.value = Q(e), A.value = !0, j.value = !1;
656
- let r = I.value + 1;
657
- I.value = r;
658
- try {
659
- let e = await g.crud.view(n);
660
- if (!en(n, r)) return;
661
- if (!on(e)) {
662
- j.value = !0, de("角色不属于当前归属范围", {
663
- source: "role-management",
664
- phase: "load"
665
- });
666
- return;
667
- }
668
- tn(e, t);
669
- } catch (e) {
670
- en(n, r) && (j.value = !0, s(e, {
671
- source: "role-management",
672
- phase: "load"
673
- }));
674
- } finally {
675
- en(n, r) && (A.value = !1);
676
- }
677
- }
678
- function qt() {
679
- M.value || (I.value += 1, A.value = !1, j.value = !1, O.value = !1, k.value = "view", L.value = D.value ? Q(D.value) : Z(T.value), V.value && l?.dismiss());
680
- }
681
- function Jt() {
682
- if (!M.value) {
683
- if (!D.value?.id || k.value === "create") {
684
- qt();
685
- return;
686
- }
687
- L.value = Q(D.value), k.value = "view", A.value = !1, j.value = !1;
688
- }
689
- }
690
- function Yt(e) {
691
- if (e.key === "cancel") {
692
- Jt();
693
- return;
694
- }
695
- if (e.key === "save") {
696
- Zt();
697
- return;
698
- }
699
- if (X()) {
700
- if (e.key === "edit" && D.value && !D.value.systemManaged) {
701
- L.value = Q(D.value), k.value = "edit";
702
- return;
703
- }
704
- if (e.key === "bind" && D.value) {
705
- Wt(D.value, D.value.assignmentType === "employment");
706
- return;
707
- }
708
- e.key === "delete" && Qt(D.value);
709
- }
710
- }
711
- function Xt() {
712
- let e = String(L.value.id ?? E.value ?? "");
713
- if (!e) return;
714
- let t = k.value === "create" ? "view" : k.value;
715
- Y({
716
- ...L.value,
717
- id: e
718
- }, t);
719
- }
720
- async function Zt() {
721
- await i({
722
- loading: M,
723
- mode: k.value === "edit" ? "edit" : "create",
724
- source: "role-management",
725
- validateContext: () => T.value ? void 0 : "请先选择角色归属范围",
726
- canSave: () => it.value,
727
- deniedMessage: "当前用户无权保存角色",
728
- createRecord: () => cn(L.value, T.value),
729
- validateRecord: un,
730
- save: (e, t) => t === "edit" && D.value?.id ? g.crud.update(D.value.id, e) : g.crud.insert(e),
731
- onSaved: ({ record: e }) => {
732
- tn(e), C.value += 1, q();
733
- }
734
- });
735
- }
736
- async function Qt(e) {
737
- await n({
738
- loading: M,
739
- source: "role-management",
740
- record: () => e?.id ? e : void 0,
741
- canExecute: (e) => g.can("delete") === !0 && e.systemManaged !== !0,
742
- deniedMessage: "当前用户无权删除角色",
743
- confirm: (e) => ce({
744
- title: "删除角色",
745
- content: `确认删除角色「${$(e)}」?`,
746
- okText: "删除",
747
- danger: !0
748
- }),
749
- execute: (e) => g.crud.delete(String(e.id), { version: e.version }),
750
- onExecuted: (e, t) => {
751
- E.value === String(t.id) && (E.value = void 0, D.value = void 0, L.value = Z(T.value), O.value = !1, k.value = "view", A.value = !1, j.value = !1, I.value += 1), C.value += 1, q();
752
- }
753
- });
754
- }
755
- async function $t(e) {
756
- await n({
757
- loading: M,
758
- source: "role-management",
759
- record: () => e?.id ? e : void 0,
760
- canExecute: (e) => g.can(kn(e)) === !0 && e.systemManaged !== !0,
761
- deniedMessage: "当前用户无权变更角色启停状态",
762
- execute: (e) => e.enabled === !1 ? g.crud.enable(String(e.id), { version: e.version }) : g.crud.disable(String(e.id), { version: e.version }),
763
- onExecuted: async (e, t) => {
764
- E.value === String(t.id) && tn(await g.crud.view(String(t.id))), C.value += 1, q();
765
- }
766
- });
767
- }
768
- function X() {
769
- return !M.value;
770
- }
771
- function en(e, t) {
772
- return I.value === t && E.value === e;
773
- }
774
- function tn(e, t = "view") {
775
- D.value = e, E.value = e.id, L.value = Q(e), k.value = t === "edit" && e.systemManaged !== !0 ? "edit" : "view", O.value = !0, A.value = !1, j.value = !1, I.value += 1;
776
- }
777
- async function nn() {
778
- let e = rn();
779
- if (!e) return;
780
- T.value = an(e);
781
- let t = Ie(e);
782
- if (t) {
783
- sn(t);
784
- return;
785
- }
786
- await Y({ id: e.recordId }, "view");
787
- }
788
- function rn() {
789
- let e = c.recordId, t = c.scopeKind;
790
- if (e && t && (t === "platform" || c.scopeId)) return {
791
- recordId: e,
792
- scopeKind: t,
793
- ...t === "platform" ? {} : { scopeId: c.scopeId }
794
- };
795
- }
796
- function an(e) {
797
- if (e.scopeKind === "platform") return {
798
- kind: "platform",
799
- key: "platform",
800
- title: "平台角色"
801
- };
802
- let t = e.scopeId, n = e.scopeKind === "organization" ? `机构:${t}` : `租户:${t}`;
803
- return {
804
- kind: e.scopeKind,
805
- id: t,
806
- key: `${e.scopeKind}:${t}`,
807
- title: n,
808
- ...e.scopeKind === "tenant" ? { tenant: {
809
- id: t,
810
- title: t,
811
- alias: t
812
- } } : {}
813
- };
814
- }
815
- function on(e) {
816
- let t = T.value;
817
- return !t || e.ownerScopeType !== t.kind ? !1 : t.kind === "platform" || e.ownerScopeId === t.id;
818
- }
819
- function sn(e) {
820
- T.value = e.scope, D.value = e.selectedRole, E.value = e.selectedRole.id, L.value = e.draft, k.value = e.mode, O.value = !0, A.value = !1, j.value = !1, I.value += 1;
821
- }
822
- function Z(e) {
823
- return {
824
- tenantId: ln(e),
825
- ownerScopeType: e?.kind,
826
- ownerScopeId: e?.kind === "platform" ? void 0 : e?.id,
827
- assignmentType: "employment",
828
- roleKind: "standard",
829
- sharePolicy: _n(),
830
- enabled: !0,
831
- sortOrder: 100
832
- };
833
- }
834
- function Q(e) {
835
- return { ...e };
836
- }
837
- function cn(e, t) {
838
- let n = fn(e.roleKind), r = gn(e.sharePolicy, t.kind), i = Ne(e, {
839
- title: e.title?.trim(),
840
- assignmentType: dn(e.assignmentType, n),
841
- roleKind: n,
842
- memberRoleIds: e.memberRoleIds?.trim() || void 0,
843
- tenantId: ln(t),
844
- ownerScopeType: t.kind,
845
- ownerScopeId: t.kind === "platform" ? void 0 : t.id,
846
- ownerScopeKey: void 0,
847
- sharePolicy: r,
848
- description: e.description?.trim() || void 0,
849
- enabled: e.enabled !== !1,
850
- sortOrder: vn(e.sortOrder)
851
- });
852
- return n !== "group" && (i.memberRoleIds = void 0), i;
853
- }
854
- function ln(e) {
855
- return e?.kind === "platform" ? void 0 : e?.tenant?.id ?? e?.id;
856
- }
857
- function un(e) {
858
- for (let t of [
859
- "title",
860
- "assignmentType",
861
- "roleKind",
862
- "ownerScopeType",
863
- "sharePolicy"
864
- ]) {
865
- let n = _e(t, {
866
- fields: R.value,
867
- fallback: K.value
868
- });
869
- if (n.visible && n.required && !e[t]) return `请填写${n.label}`;
870
- }
871
- if (e.ownerScopeType !== "platform" && !e.ownerScopeId) return "请选择归属对象";
872
- if (!yn(e.ownerScopeType).some((t) => t.value === e.sharePolicy)) return "请选择当前归属范围可用的公开策略";
873
- }
874
- function dn(e, t) {
875
- return t === "group" || t === "dataGrant" ? "employment" : e === "account" ? "account" : "employment";
876
- }
877
- function fn(e) {
878
- return e === "group" || e === "dataGrant" || e === "system" ? e : "standard";
879
- }
880
- function pn(e) {
881
- return e === "group" || e === "dataGrant";
882
- }
883
- function mn(e) {
884
- return pn(e) ? [{
885
- label: "任职角色",
886
- value: "employment"
887
- }] : [{
888
- label: "账号角色",
889
- value: "account"
890
- }, {
891
- label: "任职角色",
892
- value: "employment"
893
- }];
894
- }
895
- function hn(e) {
896
- let t = [{
897
- label: "标准角色",
898
- value: "standard"
899
- }, {
900
- label: "系统角色",
901
- value: "system"
902
- }];
903
- return e === "account" ? t : [
904
- t[0],
905
- {
906
- label: "角色组",
907
- value: "group"
908
- },
909
- {
910
- label: "数据授权角色",
911
- value: "dataGrant"
912
- },
913
- t[1]
914
- ];
915
- }
916
- function gn(e, t) {
917
- return yn(t).map((e) => e.value).includes(e ?? "") ? e : _n();
918
- }
919
- function _n() {
920
- return "private";
921
- }
922
- function vn(e) {
923
- if (typeof e == "number") return Number.isFinite(e) ? e : 100;
924
- let t = Number(String(e ?? "").trim());
925
- return Number.isFinite(t) ? t : 100;
926
- }
927
- function yn(e) {
928
- return e === "platform" ? [{
929
- label: "私有",
930
- value: "private"
931
- }, {
932
- label: "全局公开",
933
- value: "platform"
934
- }] : e === "organization" ? [{
935
- label: "私有",
936
- value: "private"
937
- }, {
938
- label: "本级及下级",
939
- value: "ownerAndChildren"
940
- }] : [{
941
- label: "私有",
942
- value: "private"
943
- }, {
944
- label: "租户公开",
945
- value: "tenant"
946
- }];
947
- }
948
- function bn(e) {
949
- return e === "account" ? "账号角色" : "任职角色";
950
- }
951
- function xn(e) {
952
- return {
953
- standard: "标准角色",
954
- group: "角色组",
955
- dataGrant: "数据授权角色",
956
- system: "系统角色"
957
- }[e ?? "standard"];
958
- }
959
- function Sn(e) {
960
- return {
961
- private: "私有",
962
- ownerAndChildren: "本级及下级",
963
- tenant: "租户公开",
964
- platform: "全局公开"
965
- }[e ?? "private"];
966
- }
967
- function Cn(e) {
968
- return e === !0 ? "是" : "否";
969
- }
970
- function wn(e, t, n) {
971
- let r = e[`${t}Title`];
972
- return typeof r == "string" && r.trim() ? r : n;
973
- }
974
- function Tn(e) {
975
- return !!e?.id && (e?.assignmentType === "account" || e?.assignmentType === "employment");
976
- }
977
- function En(e) {
978
- return !!e?.id && e?.roleKind !== "group";
979
- }
980
- function Dn(e) {
981
- return e?.assignmentType === "employment" ? "employmentRoleGrants" : "accountRoleGrants";
982
- }
983
- function On(e) {
984
- return e?.assignmentType === "employment" ? "绑定任职" : "绑定用户";
985
- }
986
- function kn(e) {
987
- return e?.enabled === !1 ? "enable" : "disable";
988
- }
989
- function An(e) {
990
- return e?.enabled === !1 ? "启用" : "停用";
991
- }
992
- function $(e) {
993
- return String(e?.title ?? e?.id ?? "角色");
994
- }
995
- function jn(e) {
996
- return String(e?.title ?? e?.alias ?? e?.id ?? "未命名租户");
997
- }
998
- function Mn(e) {
999
- return String(e?.title ?? e?.code ?? e?.id ?? "未命名机构");
1000
- }
1001
- function Nn(e, t) {
1002
- if (e === "ownerScopeType") return Fn(L.value.ownerScopeType);
1003
- if (e === "ownerScopeId") return T.value?.title ?? String(t ?? "");
1004
- if (e === "memberRoleIds") return Pn(t);
1005
- }
1006
- function Pn(e) {
1007
- let t = Ln(e);
1008
- return t.length === 0 ? "-" : t.map((e) => {
1009
- let t = z.value.find((t) => t.id === e);
1010
- return t ? $(t) : e;
1011
- }).join(",");
1012
- }
1013
- function Fn(e) {
1014
- return e === "platform" ? "平台" : e === "organization" ? "机构" : "租户";
1015
- }
1016
- function In(e, t) {
1017
- let n = t.trim().toLowerCase();
1018
- return n ? e.flatMap((e) => {
1019
- let r = e.children ? In(e.children, t) : void 0;
1020
- return [
1021
- e.title,
1022
- e.secondary,
1023
- e.key
1024
- ].some((e) => e?.toLowerCase().includes(n)) || (r?.length ?? 0) > 0 ? [{
1025
- ...e,
1026
- ...r ? { children: r } : {}
1027
- }] : [];
1028
- }) : e;
1029
- }
1030
- function Ln(e) {
1031
- return Array.isArray(e) ? e.map((e) => String(e).trim()).filter(Boolean) : typeof e == "string" ? e.split(",").map((e) => e.trim()).filter(Boolean) : [];
1032
- }
1033
- return (n, r) => (_(), p("section", {
1034
- ref_key: "pageRoot",
1035
- ref: S,
1036
- class: Oe(["role-management-page", { "role-management-page--task": B.value && !V.value }])
1037
- }, [
1038
- !B.value || V.value ? (_(), d(y(ne), {
1039
- key: 0,
1040
- class: "role-scope-panel",
1041
- title: "租户",
1042
- "refresh-title": "刷新租户列表",
1043
- "search-keyword": Be.value,
1044
- "search-placeholder": "搜索租户名称、alias 或 ID",
1045
- searchable: Ze.value,
1046
- onRefresh: yt,
1047
- "onUpdate:searchKeyword": r[2] ||= (e) => Be.value = e
1048
- }, {
1049
- default: b(() => [Ke.value ? (_(), d(y(fe), {
1050
- key: 0,
1051
- tip: "加载租户"
1052
- })) : (_(), d(y(le), {
1053
- key: 1,
1054
- "expanded-keys": Ge.value,
1055
- "onUpdate:expandedKeys": r[0] ||= (e) => Ge.value = e,
1056
- nodes: Ye.value,
1057
- "selected-key": T.value?.kind === "tenant" ? Et(T.value.id) : T.value?.kind === "organization" ? Dt(T.value.id) : void 0,
1058
- "load-strategy": "controlled",
1059
- "branch-states": y(We),
1060
- onLoadRequest: r[1] ||= (e) => y(U).request(e.node.key, e.reason, y(U).stateOf(e.node.key).status === "error"),
1061
- onSelect: wt,
1062
- onDeselect: Nt
1063
- }, null, 8, [
1064
- "expanded-keys",
1065
- "nodes",
1066
- "selected-key",
1067
- "branch-states"
1068
- ]))]),
1069
- _: 1
1070
- }, 8, ["search-keyword", "searchable"])) : f("v-if", !0),
1071
- !B.value || V.value ? (_(), d(y(t), {
1072
- key: 1,
1073
- class: "role-list-panel",
1074
- context: $e.value,
1075
- title: T.value ? `角色列表 - ${T.value.title}` : "角色列表",
1076
- columns: et.value,
1077
- "standard-crud-actions": "",
1078
- "standard-crud-row-actions": "",
1079
- "extra-row-actions-of": Rt,
1080
- "row-action-state-of": zt,
1081
- "selected-key": E.value,
1082
- "reload-key": C.value,
1083
- ready: tt.value,
1084
- "quick-search-placeholder": "搜索角色名称或说明",
1085
- "empty-description": "当前范围暂无角色",
1086
- "waiting-description": "请选择角色归属范围",
1087
- onAction: Lt,
1088
- onRowAction: Bt,
1089
- onRowDblclick: Ut,
1090
- onSelect: r[3] ||= (e) => E.value = String(e.id ?? "")
1091
- }, null, 8, [
1092
- "context",
1093
- "title",
1094
- "columns",
1095
- "selected-key",
1096
- "reload-key",
1097
- "ready"
1098
- ])) : f("v-if", !0),
1099
- Ue.value ? (_(), d(y(se), {
1100
- key: 2,
1101
- open: O.value,
1102
- title: nt.value,
1103
- "render-mode": "inline",
1104
- subtitle: rt.value,
1105
- "close-on-outside": k.value === "view",
1106
- promotion: y(lt),
1107
- onClose: qt
1108
- }, {
1109
- status: b(() => [k.value === "view" && D.value ? (_(), d(y(ee), {
1110
- key: 0,
1111
- enabled: D.value.enabled !== !1,
1112
- disabled: M.value || !at.value,
1113
- loading: M.value,
1114
- "show-label": !1,
1115
- onChange: r[4] ||= (e) => $t(D.value)
1116
- }, null, 8, [
1117
- "enabled",
1118
- "disabled",
1119
- "loading"
1120
- ])) : f("v-if", !0)]),
1121
- operation: b(() => [h(y(pe), {
1122
- context: $e.value,
1123
- actions: st.value,
1124
- onAction: Yt
1125
- }, null, 8, ["context", "actions"])]),
1126
- default: b(() => [A.value ? (_(), d(y(fe), {
1127
- key: 0,
1128
- class: "role-detail-state",
1129
- tip: "加载角色详情"
1130
- })) : j.value ? (_(), p("div", Re, [h(y(e), {
1131
- title: "详情加载失败",
1132
- message: "无法加载角色详情,请重试"
1133
- }), h(y(oe), {
1134
- type: "primary",
1135
- "icon-name": "reload",
1136
- onClick: Xt
1137
- }, {
1138
- default: b(() => [...r[10] ||= [De("重试", -1)]]),
1139
- _: 1
1140
- })])) : k.value === "view" || k.value === "create" || D.value ? (_(), p(Ee, { key: 2 }, [k.value === "view" ? (_(), d(y(te), {
1141
- key: 0,
1142
- record: L.value,
1143
- "field-names": ft.value,
1144
- fields: R.value,
1145
- fallback: K.value,
1146
- "display-of": Nn
1147
- }, null, 8, [
1148
- "record",
1149
- "field-names",
1150
- "fields",
1151
- "fallback"
1152
- ])) : (_(), p("form", {
1153
- key: 1,
1154
- class: "role-form",
1155
- onSubmit: Me(Zt, ["prevent"])
1156
- }, [
1157
- m("label", null, [r[11] ||= m("span", { class: "role-form-label" }, "当前范围", -1), h(y(ue), {
1158
- value: T.value?.title ?? "-",
1159
- disabled: ""
1160
- }, null, 8, ["value"])]),
1161
- h(y(o), {
1162
- record: L.value,
1163
- "field-names": ut,
1164
- fields: R.value,
1165
- fallback: K.value,
1166
- disabled: G.value,
1167
- "disabled-of": vt,
1168
- "onUpdate:field": J
1169
- }, null, 8, [
1170
- "record",
1171
- "fields",
1172
- "fallback",
1173
- "disabled"
1174
- ]),
1175
- L.value.roleKind === "group" ? (_(), d(Le, {
1176
- key: 0,
1177
- value: L.value.memberRoleIds,
1178
- candidates: z.value,
1179
- "current-role-id": D.value?.id,
1180
- disabled: G.value || D.value?.systemManaged === !0,
1181
- "onUpdate:value": r[5] ||= (e) => J("memberRoleIds", e)
1182
- }, null, 8, [
1183
- "value",
1184
- "candidates",
1185
- "current-role-id",
1186
- "disabled"
1187
- ])) : f("v-if", !0),
1188
- h(y(o), {
1189
- record: L.value,
1190
- "field-names": dt,
1191
- fields: R.value,
1192
- fallback: K.value,
1193
- disabled: G.value,
1194
- "disabled-of": vt,
1195
- "onUpdate:field": J
1196
- }, null, 8, [
1197
- "record",
1198
- "fields",
1199
- "fallback",
1200
- "disabled"
1201
- ])
1202
- ], 32)), k.value === "create" ? f("v-if", !0) : (_(), d(y(he), {
1203
- key: 2,
1204
- record: L.value,
1205
- "show-sort-order": ""
1206
- }, null, 8, ["record"]))], 64)) : f("v-if", !0)]),
1207
- _: 1
1208
- }, 8, [
1209
- "open",
1210
- "title",
1211
- "subtitle",
1212
- "close-on-outside",
1213
- "promotion"
1214
- ])) : (_(), d(y(ve), {
1215
- key: 3,
1216
- title: nt.value,
1217
- subtitle: rt.value
1218
- }, {
1219
- status: b(() => [k.value === "view" && D.value ? (_(), d(y(ee), {
1220
- key: 0,
1221
- enabled: D.value.enabled !== !1,
1222
- disabled: M.value || !at.value,
1223
- loading: M.value,
1224
- "show-label": !1,
1225
- onChange: r[6] ||= (e) => $t(D.value)
1226
- }, null, 8, [
1227
- "enabled",
1228
- "disabled",
1229
- "loading"
1230
- ])) : f("v-if", !0)]),
1231
- operation: b(() => [h(y(pe), {
1232
- context: y(g),
1233
- actions: ct.value,
1234
- "record-id": D.value?.id,
1235
- onAction: Yt
1236
- }, null, 8, [
1237
- "context",
1238
- "actions",
1239
- "record-id"
1240
- ])]),
1241
- default: b(() => [A.value ? (_(), d(y(fe), {
1242
- key: 0,
1243
- class: "role-detail-state",
1244
- tip: "加载角色详情"
1245
- })) : j.value ? (_(), p("div", ze, [h(y(e), {
1246
- title: "详情加载失败",
1247
- message: "无法加载角色详情,请重试"
1248
- }), h(y(oe), {
1249
- type: "primary",
1250
- "icon-name": "reload",
1251
- onClick: Xt
1252
- }, {
1253
- default: b(() => [...r[12] ||= [De("重试", -1)]]),
1254
- _: 1
1255
- })])) : k.value === "view" || D.value ? (_(), p(Ee, { key: 2 }, [k.value === "view" ? (_(), d(y(te), {
1256
- key: 0,
1257
- record: L.value,
1258
- "field-names": ft.value,
1259
- fields: R.value,
1260
- fallback: K.value,
1261
- "display-of": Nn
1262
- }, null, 8, [
1263
- "record",
1264
- "field-names",
1265
- "fields",
1266
- "fallback"
1267
- ])) : (_(), p("form", {
1268
- key: 1,
1269
- class: "role-form",
1270
- onSubmit: Me(Zt, ["prevent"])
1271
- }, [
1272
- m("label", null, [r[13] ||= m("span", { class: "role-form-label" }, "当前范围", -1), h(y(ue), {
1273
- value: T.value?.title ?? "-",
1274
- disabled: ""
1275
- }, null, 8, ["value"])]),
1276
- h(y(o), {
1277
- record: L.value,
1278
- "field-names": ut,
1279
- fields: R.value,
1280
- fallback: K.value,
1281
- disabled: G.value,
1282
- "disabled-of": vt,
1283
- "onUpdate:field": J
1284
- }, null, 8, [
1285
- "record",
1286
- "fields",
1287
- "fallback",
1288
- "disabled"
1289
- ]),
1290
- L.value.roleKind === "group" ? (_(), d(Le, {
1291
- key: 0,
1292
- value: L.value.memberRoleIds,
1293
- candidates: z.value,
1294
- "current-role-id": D.value?.id,
1295
- disabled: G.value || D.value?.systemManaged === !0,
1296
- "onUpdate:value": r[7] ||= (e) => J("memberRoleIds", e)
1297
- }, null, 8, [
1298
- "value",
1299
- "candidates",
1300
- "current-role-id",
1301
- "disabled"
1302
- ])) : f("v-if", !0),
1303
- h(y(o), {
1304
- record: L.value,
1305
- "field-names": dt,
1306
- fields: R.value,
1307
- fallback: K.value,
1308
- disabled: G.value,
1309
- "disabled-of": vt,
1310
- "onUpdate:field": J
1311
- }, null, 8, [
1312
- "record",
1313
- "fields",
1314
- "fallback",
1315
- "disabled"
1316
- ])
1317
- ], 32)), h(y(he), {
1318
- record: L.value,
1319
- "show-sort-order": ""
1320
- }, null, 8, ["record"])], 64)) : f("v-if", !0)]),
1321
- _: 1
1322
- }, 8, ["title", "subtitle"])),
1323
- h(ye, {
1324
- open: P.value,
1325
- context: y(g),
1326
- role: N.value,
1327
- container: S.value,
1328
- onClose: Gt,
1329
- onSaved: r[8] ||= (e) => C.value += 1
1330
- }, null, 8, [
1331
- "open",
1332
- "context",
1333
- "role",
1334
- "container"
1335
- ]),
1336
- h(Ce, {
1337
- open: F.value,
1338
- context: y(g),
1339
- role: N.value,
1340
- container: S.value,
1341
- onClose: Gt,
1342
- onSaved: r[9] ||= (e) => C.value += 1
1343
- }, null, 8, [
1344
- "open",
1345
- "context",
1346
- "role",
1347
- "container"
1348
- ]),
1349
- He.value && Ve.value?.id ? (_(), d(we, {
1350
- key: 4,
1351
- "role-id": Ve.value.id,
1352
- container: S.value,
1353
- drawer: "",
1354
- onClose: Ht
1355
- }, null, 8, ["role-id", "container"])) : f("v-if", !0)
1356
- ], 2));
1357
- }
1358
- }), [["__scopeId", "data-v-83076c10"]]), S = /* @__PURE__ */ g({
1359
- name: "RoleDetailWorkspaceView",
1360
- __name: "RoleDetailWorkspaceView",
1361
- props: {
1362
- recordId: {},
1363
- scopeKind: {},
1364
- scopeId: {}
1365
- },
1366
- setup(e) {
1367
- return (t, n) => (_(), d(Be, {
1368
- "record-id": e.recordId,
1369
- "scope-kind": e.scopeKind,
1370
- "scope-id": e.scopeId
1371
- }, null, 8, [
1372
- "record-id",
1373
- "scope-kind",
1374
- "scope-id"
1375
- ]));
1376
- }
1377
- });
1378
- //#endregion
1379
- export { S as default };