@pubinfo/module-rbac 2.0.0-rc.4 → 2.0.0

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 (100) hide show
  1. package/dist/{ComponentSelect-B1ZyenXP.js → ComponentSelect-Bhl9ciUm.js} +12 -12
  2. package/dist/ComponentSelect-Bhwuc86o.js +2 -0
  3. package/dist/ComponentSelect.css +1 -1
  4. package/dist/DynamicRoutesForm-CE2RPs7y.js +169 -0
  5. package/dist/DynamicRoutesForm-D35jFnxF.js +4 -0
  6. package/dist/IconSelect-Ct5FkeHI.js +4 -0
  7. package/dist/IconSelect-HAhfS6hd.js +661 -0
  8. package/dist/IconSelect.css +1 -0
  9. package/dist/{ImportExport-Clbc8xaw.js → ImportExport-ByRTssxP.js} +2 -2
  10. package/dist/ImportExport-D8uzaOMz.js +4 -0
  11. package/dist/{MetaForm-BWy4Lpr8.js → MetaForm-BSGuZXgj.js} +2 -2
  12. package/dist/{MetaForm-DpH9an5A.js → MetaForm-DErrpELP.js} +1 -1
  13. package/dist/OrgAndPosition-CF7ZJtNB.js +2 -0
  14. package/dist/{ResourceEdit-0_cYB0iu.js → ResourceEdit-DF-2_zoi.js} +115 -105
  15. package/dist/ResourceEdit-oAPLPUf0.js +11 -0
  16. package/dist/{ResourceRelation-DMWa09ae.js → ResourceRelation-BRseTUw2.js} +1 -1
  17. package/dist/RoleRelation-YaSQQxQ2.js +2 -0
  18. package/dist/{TenantEdit-D8-Pt7sf.js → TenantEdit-C28473_2.js} +1 -1
  19. package/dist/{UserAuthorization-DuioGghR.js → UserAuthorization-C4SLMNmh.js} +1 -1
  20. package/dist/UserEdit-CyCXz7g3.js +4 -0
  21. package/dist/{UserEdit-C6eNXSCu.js → UserEdit-EOTBOUZu.js} +1 -1
  22. package/dist/components/ResourceIcones/BoxColorPicker.vue.d.ts +23 -0
  23. package/dist/components/ResourceIcones/Select.vue.d.ts +48 -2
  24. package/dist/components/ResourceSelector/hooks/useAppAndResource.d.ts +15 -6
  25. package/dist/components/RoleSelector/useRole.d.ts +68 -4
  26. package/dist/context.d.ts +1 -2
  27. package/dist/{drawerRole-DNsK5a6O.js → drawerRole-CzTW_I2H.js} +1 -1
  28. package/dist/{drawerRole-BeUNs7cF.js → drawerRole-tan379DU.js} +1 -1
  29. package/dist/index.css +1 -1
  30. package/dist/index.js +1427 -1431
  31. package/dist/{resource-CrhX7VRK.js → resource-CyI9ZpmF.js} +9 -8
  32. package/dist/{role-PjmrOdFd.js → role-B2tKqUvP.js} +2 -2
  33. package/dist/{role_group-Dlx-6BZF.js → role_group-DqzFHwKx.js} +1 -1
  34. package/dist/stores/view.d.ts +126 -21
  35. package/dist/{tenant-BGtOP_wo.js → tenant-C8kVbfgt.js} +2 -2
  36. package/dist/{toolbar_setting-OemNp6pO.js → toolbar_setting-Dc_h2Mfe.js} +23 -34
  37. package/dist/toolbar_setting.css +1 -1
  38. package/dist/{user-JCiGXodF.js → user-Dub4HhCZ.js} +3 -3
  39. package/dist/utils/routeSystem.d.ts +126 -21
  40. package/dist/views/blackWhiteList/index.vue.d.ts +40 -40
  41. package/dist/views/data-permission/components/createAndEditDataPermission.vue.d.ts +4 -4
  42. package/dist/views/data-permission/index.vue.d.ts +44 -44
  43. package/dist/views/dictionary/index.vue.d.ts +40 -40
  44. package/dist/views/dictionary/itemlist.vue.d.ts +40 -40
  45. package/dist/views/group/index.vue.d.ts +40 -40
  46. package/dist/views/log_center/components/browserType.vue.d.ts +2 -2
  47. package/dist/views/log_center/components/loginHistoryDetail.vue.d.ts +2 -2
  48. package/dist/views/log_center/components/operateHistoryDetail.vue.d.ts +2 -2
  49. package/dist/views/log_center/login_history.vue.d.ts +40 -40
  50. package/dist/views/log_center/operate_history.vue.d.ts +40 -40
  51. package/dist/views/position/index.vue.d.ts +40 -40
  52. package/dist/views/region/index.vue.d.ts +40 -40
  53. package/dist/views/resource/components/IconSelect.vue.d.ts +10 -0
  54. package/dist/views/resource/hooks/useMetaForm.d.ts +8 -1
  55. package/dist/views/resource/index.vue.d.ts +40 -40
  56. package/dist/views/role/components/ResourceRelation.vue.d.ts +40 -40
  57. package/dist/views/role/index.vue.d.ts +80 -80
  58. package/dist/views/role_group/index.vue.d.ts +40 -40
  59. package/dist/views/tenant/index.vue.d.ts +40 -40
  60. package/dist/views/toolbar_setting/animationData.d.ts +1 -3
  61. package/dist/views/user/index.vue.d.ts +40 -40
  62. package/package.json +7 -3
  63. package/src/components/DirectoryIcones/ComponentsIcones.vue +2 -2
  64. package/src/components/DirectoryIcones/FolderIcones.vue +2 -2
  65. package/src/components/DirectoryIcones/ModuleIcones.vue +2 -2
  66. package/src/components/DirectoryIcones/PackagesIcones.vue +2 -2
  67. package/src/components/DirectoryIcones/SrcIcones.vue +2 -2
  68. package/src/components/DirectoryIcones/ViewIcones.vue +2 -2
  69. package/src/components/ResourceIcones/BoxColorPicker.vue +172 -0
  70. package/src/components/ResourceIcones/Select.vue +227 -15
  71. package/src/context.ts +1 -17
  72. package/src/index.ts +3 -10
  73. package/src/views/resource/components/ComponentSelect.vue +10 -0
  74. package/src/views/resource/components/DynamicRoutesForm.vue +0 -8
  75. package/src/views/resource/components/IconSelect.vue +138 -0
  76. package/src/views/resource/components/ResourceEdit.vue +34 -28
  77. package/src/views/toolbar_setting/animationData.ts +0 -4
  78. package/src/views/toolbar_setting/index.vue +0 -13
  79. package/dist/ComponentSelect-DlVJI5an.js +0 -2
  80. package/dist/DynamicRoutesForm-Cu3WhRpA.js +0 -4
  81. package/dist/DynamicRoutesForm-qjbrykW4.js +0 -376
  82. package/dist/ImportExport-CtEZTU87.js +0 -4
  83. package/dist/OrgAndPosition-3lCm4Fyb.js +0 -2
  84. package/dist/ResourceEdit-CYPzEbqn.js +0 -10
  85. package/dist/RoleRelation-DySyilcs.js +0 -2
  86. package/dist/UserEdit-6HYbgtOh.js +0 -4
  87. /package/dist/{OrgAndPosition-DYxNkasL.js → OrgAndPosition-vnBrq-fn.js} +0 -0
  88. /package/dist/{ResourceRelation-CZ8hGgOm.js → ResourceRelation-B_4woLmP.js} +0 -0
  89. /package/dist/{ResourceRelation-DkKdZ3TD.js → ResourceRelation-CKolCnHC.js} +0 -0
  90. /package/dist/{RoleRelation-B1D1NM_L.js → RoleRelation-DXZxscPY.js} +0 -0
  91. /package/dist/{TenantEdit-DNJzo8SS.js → TenantEdit-B5_v0C8I.js} +0 -0
  92. /package/dist/{UserAuthorization-DPHUk69M.js → UserAuthorization-DTgmWH5Q.js} +0 -0
  93. /package/dist/{dayjs.min-DcxwBe2I.js → dayjs.min-CdDcH50N.js} +0 -0
  94. /package/dist/{drawerRole-DS7fbx1h.js → drawerRole-CwilBmOE.js} +0 -0
  95. /package/dist/{drawerRole-BdoMYLYW.js → drawerRole-E1jHM3v-.js} +0 -0
  96. /package/dist/{enum-D0U38jb6.js → enum-BMY6bmPA.js} +0 -0
  97. /package/dist/{safe_setting-DpWUCv2p.js → safe_setting-uj9p_wW0.js} +0 -0
  98. /package/dist/{tabbar_setting-9UKDc1Ev.js → tabbar_setting-HFHrLVgt.js} +0 -0
  99. /package/dist/{theme_setting-BBLaZ4NS.js → theme_setting-QgpSGXxq.js} +0 -0
  100. /package/dist/{watermark_setting-C1VFRfbW.js → watermark_setting-BcWy6p2_.js} +0 -0
@@ -0,0 +1,661 @@
1
+ import { b as e } from "./_plugin-vue_export-helper-DziIhCOI.js";
2
+ import { d as t } from "./enum-BMY6bmPA.js";
3
+ import { PubinfoIcon as n, getAllIconModules as r } from "pubinfo";
4
+ import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, normalizeClass as p, normalizeStyle as m, openBlock as h, ref as g, renderList as _, renderSlot as v, resolveComponent as y, toDisplayString as b, unref as x, useModel as S, watch as C, withCtx as w } from "vue";
5
+ import * as T from "@ant-design/icons-vue";
6
+ import { Empty as E } from "ant-design-vue";
7
+ import { Button as ee, Empty as te, FormItemRest as ne, Input as D, InputNumber as O, Modal as re, Pagination as ie, RadioButton as ae, RadioGroup as oe, Tooltip as se } from "ant-design-vue/es";
8
+ import './IconSelect.css';const k = { class: "flex flex-col gap-3 w-full select-none" }, A = { class: "flex items-center gap-3" }, j = { class: "relative inline-flex items-center" }, M = ["disabled"], N = ["value", "disabled"], P = { class: "flex items-center gap-3" }, F = { class: "relative inline-flex items-center" }, I = ["disabled"], L = ["value", "disabled"], R = { class: "flex items-center gap-3" }, z = { class: "flex items-center gap-3" };
9
+ var B = /* @__PURE__ */ f({
10
+ name: "ResourceIconesBoxColorPicker",
11
+ __name: "BoxColorPicker",
12
+ props: {
13
+ angle: {},
14
+ background: {},
15
+ radius: {},
16
+ disabled: { type: Boolean }
17
+ },
18
+ emits: [
19
+ "update:angle",
20
+ "update:background",
21
+ "update:radius"
22
+ ],
23
+ setup(e, { emit: t }) {
24
+ let n = e, r = t;
25
+ function i(e) {
26
+ if (typeof e == "number" && Number.isFinite(e)) return (e % 360 + 360) % 360;
27
+ if (typeof e == "string") {
28
+ let t = Number.parseFloat(e);
29
+ if (Number.isFinite(t)) return (t % 360 + 360) % 360;
30
+ }
31
+ return 65;
32
+ }
33
+ function a(e) {
34
+ return e ? typeof e == "string" ? {
35
+ from: e,
36
+ to: e
37
+ } : {
38
+ from: e.from,
39
+ to: e.to
40
+ } : {
41
+ from: "#65E54A",
42
+ to: "#35C724"
43
+ };
44
+ }
45
+ function o(e) {
46
+ if (typeof e == "number" && Number.isFinite(e)) return Math.max(0, e);
47
+ if (typeof e == "string") {
48
+ let t = Number.parseFloat(e);
49
+ if (Number.isFinite(t)) return Math.max(0, t);
50
+ }
51
+ return 6;
52
+ }
53
+ let u = a(n.background), f = g(u.from), _ = g(u.to), v = g(i(n.angle)), y = g(o(n.radius)), b = g(null), x = g(null);
54
+ function S() {
55
+ if (n.disabled) return;
56
+ let e = b.value;
57
+ e && (e.style.width = "16px", e.style.height = "16px", e.click());
58
+ }
59
+ function T() {
60
+ if (n.disabled) return;
61
+ let e = x.value;
62
+ e && (e.style.width = "16px", e.style.height = "16px", e.click());
63
+ }
64
+ return C([
65
+ f,
66
+ _,
67
+ v,
68
+ y
69
+ ], () => {
70
+ r("update:background", {
71
+ from: f.value,
72
+ to: _.value
73
+ }), r("update:angle", v.value), r("update:radius", y.value);
74
+ }, { immediate: !0 }), C(() => n.background, (e) => {
75
+ if (e == null) return;
76
+ let t = a(e);
77
+ f.value = t.from, _.value = t.to;
78
+ }), C(() => n.angle, (e) => {
79
+ e != null && (v.value = i(e));
80
+ }), C(() => n.radius, (e) => {
81
+ e != null && (y.value = o(e));
82
+ }), (e, t) => {
83
+ let r = D, i = O;
84
+ return h(), c("div", k, [
85
+ s(" 起始色:紧凑输入(前缀色块 + 文本),隐藏原生 color 触发器 "),
86
+ l("div", A, [t[6] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "起始色", -1), d(r, {
87
+ value: f.value,
88
+ "onUpdate:value": t[1] ||= (e) => f.value = e,
89
+ disabled: n.disabled,
90
+ placeholder: "#65E54A",
91
+ size: "small",
92
+ class: "flex-1 min-w-0"
93
+ }, {
94
+ prefix: w(() => [l("div", j, [
95
+ l("button", {
96
+ type: "button",
97
+ disabled: n.disabled,
98
+ class: p(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", n.disabled ? "opacity-50 cursor-not-allowed" : ""]),
99
+ style: m({ background: f.value }),
100
+ onClick: S
101
+ }, null, 14, M),
102
+ s(" 透明绝对定位的原生 input,用于正确锚定系统取色器位置 "),
103
+ l("input", {
104
+ ref_key: "fromColorPickerRef",
105
+ ref: b,
106
+ type: "color",
107
+ value: f.value,
108
+ disabled: n.disabled,
109
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
110
+ style: {
111
+ width: "16px",
112
+ height: "16px"
113
+ },
114
+ onInput: t[0] ||= (e) => f.value = e.target.value
115
+ }, null, 40, N)
116
+ ])]),
117
+ _: 1
118
+ }, 8, ["value", "disabled"])]),
119
+ s(" 结束色:紧凑输入(前缀色块 + 文本),隐藏原生 color 触发器 "),
120
+ l("div", P, [t[7] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "结束色", -1), d(r, {
121
+ value: _.value,
122
+ "onUpdate:value": t[3] ||= (e) => _.value = e,
123
+ disabled: n.disabled,
124
+ placeholder: "#35C724",
125
+ size: "small",
126
+ class: "flex-1 min-w-0"
127
+ }, {
128
+ prefix: w(() => [l("div", F, [l("button", {
129
+ type: "button",
130
+ disabled: n.disabled,
131
+ class: p(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", n.disabled ? "opacity-50 cursor-not-allowed" : ""]),
132
+ style: m({ background: _.value }),
133
+ onClick: T
134
+ }, null, 14, I), l("input", {
135
+ ref_key: "toColorPickerRef",
136
+ ref: x,
137
+ type: "color",
138
+ value: _.value,
139
+ disabled: n.disabled,
140
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
141
+ style: {
142
+ width: "16px",
143
+ height: "16px"
144
+ },
145
+ onInput: t[2] ||= (e) => _.value = e.target.value
146
+ }, null, 40, L)])]),
147
+ _: 1
148
+ }, 8, ["value", "disabled"])]),
149
+ s(" 角度:仅使用数字输入,节省横向空间 "),
150
+ l("div", R, [
151
+ t[8] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "角度", -1),
152
+ d(i, {
153
+ value: v.value,
154
+ "onUpdate:value": t[4] ||= (e) => v.value = e,
155
+ disabled: n.disabled,
156
+ min: 0,
157
+ max: 360,
158
+ step: 1,
159
+ size: "small",
160
+ class: "w-28"
161
+ }, null, 8, ["value", "disabled"]),
162
+ t[9] ||= l("span", { class: "text-12px opacity-70" }, "deg", -1)
163
+ ]),
164
+ s(" 圆角:仅使用数字输入,节省横向空间 "),
165
+ l("div", z, [
166
+ t[10] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "圆角", -1),
167
+ d(i, {
168
+ value: y.value,
169
+ "onUpdate:value": t[5] ||= (e) => y.value = e,
170
+ disabled: n.disabled,
171
+ min: 0,
172
+ max: 48,
173
+ step: 1,
174
+ size: "small",
175
+ class: "w-28"
176
+ }, null, 8, ["value", "disabled"]),
177
+ t[11] ||= l("span", { class: "text-12px opacity-70" }, "px", -1)
178
+ ])
179
+ ]);
180
+ };
181
+ }
182
+ }), ce = B;
183
+ const le = { class: "flex gap-4 min-h-[600px]" }, ue = { class: "w-58 flex flex-col border-r border-[#e5e7eb] dark:border-[#30363d] pr-3" }, de = { class: "mb-3" }, fe = { class: "flex-1 overflow-auto space-y-1 pr-1" }, pe = ["onClick"], me = { class: "truncate max-w-[120px]" }, he = { class: "ml-2 inline-block min-w-6 text-center text-11px rounded bg-[#eef1f5] dark:bg-[#2d3339] px-1 text-[#5d6671] dark:text-[#9aa3ad]" }, ge = { class: "flex-1 flex flex-col min-w-0" }, _e = { class: "grid grid-cols-6 gap-3 auto-rows-[96px] overflow-auto flex-1 p-1" }, ve = { class: "text-12px leading-tight space-y-1" }, ye = { class: "font-medium" }, be = {
184
+ key: 0,
185
+ class: "opacity-70"
186
+ }, xe = ["onClick"], Se = { class: "mt-4 flex justify-center select-none" }, Ce = {
187
+ key: 1,
188
+ class: "flex-1 flex items-center justify-center"
189
+ }, we = {
190
+ key: 0,
191
+ class: "relative w-60 flex flex-col border-l border-[#e5e7eb] dark:border-[#30363d] pl-4 min-h-0"
192
+ }, Te = { class: "flex flex-col flex-1 w-full rounded-md border border-dashed border-[#d0d7de] dark:border-[#30363d] text-12px text-[#6b7280] dark:text-[#94a3b8] p-3 overflow-hidden" }, Ee = { class: "shrink-0 flex justify-center items-center pb-4 border-b border-b-dashed border-b-[#d0d7de] dark:border-b-[#30363d]" }, De = { class: "w-8 h-8 flex justify-center items-center" }, Oe = { class: "w-8 h-8 flex justify-center items-center" }, ke = { class: "w-8 h-8 flex justify-center items-center" }, Ae = { class: "flex-1 w-full mt-3 px-2 overflow-auto space-y-3" }, je = { class: "flex flex-col justify-start w-full opacity-100" }, Me = { class: "flex items-center gap-3 w-full" }, Ne = { class: "relative inline-flex items-center" }, Pe = ["disabled"], Fe = ["value", "disabled"], Ie = { class: "w-full mt-auto" }, Le = { class: "py-4 rounded-md border-t border-t-dashed border-t-[#d0d7de] dark:border-t-[#30363d] flex flex-col items-center gap-2" }, Re = { class: "mt-4 flex justify-end gap-2" };
193
+ var V = /* @__PURE__ */ f({
194
+ name: "ResourceIconesSelect",
195
+ __name: "Select",
196
+ props: {
197
+ modelValue: {},
198
+ modelModifiers: {},
199
+ boxType: { default: "null" },
200
+ boxTypeModifiers: {},
201
+ angle: { default: 65 },
202
+ angleModifiers: {},
203
+ background: { default: {
204
+ from: "#65E54A",
205
+ to: "#35C724"
206
+ } },
207
+ backgroundModifiers: {},
208
+ radius: { default: 6 },
209
+ radiusModifiers: {},
210
+ iconColor: { default: "" },
211
+ iconColorModifiers: {}
212
+ },
213
+ emits: [
214
+ "update:modelValue",
215
+ "update:boxType",
216
+ "update:angle",
217
+ "update:background",
218
+ "update:radius",
219
+ "update:iconColor"
220
+ ],
221
+ setup(e) {
222
+ let t = S(e, "modelValue"), f = S(e, "boxType"), y = S(e, "angle"), O = S(e, "background"), k = S(e, "radius"), A = S(e, "iconColor"), j = g(t.value), M = g(f.value || "null"), N = g(y.value ?? 65), P = g(O.value ?? {
223
+ from: "#65E54A",
224
+ to: "#35C724"
225
+ }), F = g(k.value ?? 6), I = g(A.value ?? ""), L = g(null), R = g(!1);
226
+ function z() {
227
+ j.value = t.value, M.value = f.value || "null", N.value = y.value ?? 65;
228
+ let e = O.value;
229
+ P.value = typeof e == "string" ? e : e ? { ...e } : {
230
+ from: "#65E54A",
231
+ to: "#35C724"
232
+ }, F.value = k.value ?? 6, I.value = A.value ?? "", R.value = !0;
233
+ }
234
+ function B() {
235
+ R.value = !1;
236
+ }
237
+ function V() {
238
+ t.value = j.value, f.value = M.value, y.value = N.value;
239
+ let e = P.value;
240
+ O.value = typeof e == "string" ? e : e && { ...e }, k.value = F.value, A.value = I.value, R.value = !1;
241
+ }
242
+ function H(e) {
243
+ let t = e.split(/[\\/]/).pop() || e;
244
+ return t.replace(/\.(svg|png|jpe?g)$/i, "");
245
+ }
246
+ let U = a(() => {
247
+ let e = /* @__PURE__ */ new Map(), t = r();
248
+ for (let [n, r] of t.entries()) {
249
+ let t = Object.keys(r).map(H).sort();
250
+ e.set(n, t);
251
+ }
252
+ return e;
253
+ }), W = a(() => Object.keys(T).filter((e) => /(?:Outlined|Filled|TwoTone)$/.test(e)).map((e) => `antd:${e}`).sort()), G = a(() => {
254
+ let e = Array.from(U.value.keys()), t = e.includes("local"), n = e.filter((e) => e !== "local").sort();
255
+ return [
256
+ {
257
+ label: "全部",
258
+ value: "all"
259
+ },
260
+ ...t ? [{
261
+ label: "本地",
262
+ value: "local"
263
+ }] : [],
264
+ ...n.map((e) => ({
265
+ label: e,
266
+ value: e
267
+ })),
268
+ {
269
+ label: "Ant Design",
270
+ value: "antd"
271
+ }
272
+ ];
273
+ }), K = g("all"), q = g(""), J = a(() => {
274
+ let e = [];
275
+ for (let [t, n] of U.value.entries()) n.forEach((n) => {
276
+ t === "local" ? e.push({
277
+ name: n,
278
+ module: t
279
+ }) : e.push({
280
+ name: `${t}-[${n}]`,
281
+ module: t
282
+ });
283
+ });
284
+ return W.value.forEach((t) => e.push({
285
+ name: t,
286
+ module: "antd"
287
+ })), e;
288
+ }), Y = a(() => K.value === "all" ? J.value : K.value === "antd" ? J.value.filter((e) => e.module === "antd") : J.value.filter((e) => e.module === K.value)), X = a(() => {
289
+ let e = q.value.trim().toLowerCase();
290
+ return e ? Y.value.filter((t) => t.name.toLowerCase().includes(e)) : Y.value;
291
+ });
292
+ function ze(e) {
293
+ return e === "all" ? J.value.length : e === "antd" ? J.value.filter((e) => e.module === "antd").length : J.value.filter((t) => t.module === e).length;
294
+ }
295
+ let Z = g(1), Q = a(() => Math.max(1, Math.ceil(X.value.length / 30))), Be = a(() => {
296
+ let e = (Z.value - 1) * 30;
297
+ return X.value.slice(e, e + 30);
298
+ });
299
+ C([q, K], () => {
300
+ Z.value = 1;
301
+ }), C(X, () => {
302
+ Z.value > Q.value && (Z.value = Q.value);
303
+ });
304
+ function Ve(e) {
305
+ Z.value = e;
306
+ }
307
+ function He(e) {
308
+ j.value = e.name;
309
+ }
310
+ let Ue = E.PRESENTED_IMAGE_SIMPLE;
311
+ function We() {
312
+ if (!(j.value || "").startsWith("antd:")) return;
313
+ let e = L.value;
314
+ e && (e.style.width = "16px", e.style.height = "16px", e.click());
315
+ }
316
+ let $ = a(() => (j.value || "").startsWith("antd:"));
317
+ return C(M, (e, t) => {
318
+ t === "null" && e !== "null" && !I.value && (I.value = "#ffffff");
319
+ }), (e, r) => {
320
+ let a = se, f = D, g = ie, y = te, S = ae, C = oe, T = ee, E = re, O = ne;
321
+ return h(), c(i, null, [v(e.$slots, "default", { open: z }, () => [d(f, {
322
+ value: t.value,
323
+ readonly: "",
324
+ onClick: z
325
+ }, {
326
+ addonAfter: w(() => [d(a, null, {
327
+ title: w(() => [d(x(n), {
328
+ name: t.value || "",
329
+ size: "40px",
330
+ class: "cursor-default"
331
+ }, null, 8, ["name"])]),
332
+ default: w(() => [d(x(n), {
333
+ name: t.value || "",
334
+ size: "20px",
335
+ class: "cursor-default"
336
+ }, null, 8, ["name"])]),
337
+ _: 1
338
+ })]),
339
+ _: 1
340
+ }, 8, ["value"])], !0), d(O, null, {
341
+ default: w(() => [d(E, {
342
+ open: R.value,
343
+ "onUpdate:open": r[7] ||= (e) => R.value = e,
344
+ title: "选择图标",
345
+ width: "1200px",
346
+ footer: null,
347
+ "destroy-on-close": "",
348
+ onCancel: B
349
+ }, {
350
+ default: w(() => [l("div", le, [
351
+ s(" 左侧模块列表 "),
352
+ l("div", ue, [l("div", de, [d(f, {
353
+ value: q.value,
354
+ "onUpdate:value": r[0] ||= (e) => q.value = e,
355
+ "allow-clear": "",
356
+ bordered: !0,
357
+ placeholder: "搜索图标",
358
+ class: "h-9 text-13px"
359
+ }, {
360
+ prefix: w(() => [d(x(n), {
361
+ name: "i-carbon-search",
362
+ size: "16",
363
+ class: "text-[#7a869a]"
364
+ })]),
365
+ _: 1
366
+ }, 8, ["value"])]), l("div", fe, [(h(!0), c(i, null, _(G.value, (e) => (h(), c("div", {
367
+ key: e.value,
368
+ class: p(["flex items-center justify-between px-3 py-2 rounded-md cursor-pointer text-13px border border-transparent hover:bg-[#f3f6fa] dark:hover:bg-[#262c33] transition", K.value === e.value ? "bg-[#eef5ff] dark:bg-[#1e2a33] border-[#1677ff] text-[#1677ff] font-medium" : "text-[#4b5563]"]),
369
+ onClick: (t) => K.value = e.value
370
+ }, [l("span", me, b(e.label), 1), l("span", he, b(ze(e.value)), 1)], 10, pe))), 128))])]),
371
+ s(" 主体 "),
372
+ l("div", ge, [X.value.length ? (h(), c(i, { key: 0 }, [
373
+ l("div", _e, [(h(!0), c(i, null, _(Be.value, (e) => (h(), o(a, {
374
+ key: `${e.module || ""}:${e.name}`,
375
+ "mouse-enter-delay": .35
376
+ }, {
377
+ title: w(() => [l("div", ve, [l("div", ye, b(e.name), 1), e.module ? (h(), c("div", be, " 模块: " + b(e.module), 1)) : s("v-if", !0)])]),
378
+ default: w(() => [l("div", {
379
+ class: p(["group relative flex flex-col items-center justify-center cursor-pointer rounded-md border", j.value === e.name ? "border-solid border-[#1677ff]" : "border-dashed border-[#e5e7eb] dark:border-[#30363d]"]),
380
+ onClick: (t) => He(e)
381
+ }, [d(x(n), {
382
+ name: e.name,
383
+ size: "30px"
384
+ }, null, 8, ["name"])], 10, xe)]),
385
+ _: 2
386
+ }, 1024))), 128))]),
387
+ s(" 分页 "),
388
+ l("div", Se, [d(g, {
389
+ current: Z.value,
390
+ "page-size": 30,
391
+ total: X.value.length,
392
+ "show-size-changer": !1,
393
+ "show-quick-jumper": "",
394
+ onChange: Ve
395
+ }, null, 8, ["current", "total"])])
396
+ ], 64)) : (h(), c("div", Ce, [d(y, {
397
+ image: x(Ue),
398
+ description: "没有匹配的图标"
399
+ }, null, 8, ["image"])]))]),
400
+ s(" 右侧预留区域 "),
401
+ j.value ? (h(), c("div", we, [
402
+ l("div", Te, [
403
+ s(" 选项:固定顶部 "),
404
+ l("div", Ee, [d(C, {
405
+ value: M.value,
406
+ "onUpdate:value": r[1] ||= (e) => M.value = e,
407
+ class: "flex justify-center items-center"
408
+ }, {
409
+ default: w(() => [
410
+ d(S, { value: "null" }, {
411
+ default: w(() => [l("div", De, [d(x(n), {
412
+ name: j.value,
413
+ size: 16
414
+ }, null, 8, ["name", "size"])])]),
415
+ _: 1
416
+ }),
417
+ d(S, { value: "square" }, {
418
+ default: w(() => [l("div", Oe, [d(x(n), {
419
+ name: j.value,
420
+ box: "square",
421
+ size: 24,
422
+ radius: "6px",
423
+ color: "#ffffff"
424
+ }, null, 8, ["name"])])]),
425
+ _: 1
426
+ }),
427
+ d(S, { value: "prism" }, {
428
+ default: w(() => [l("div", ke, [d(x(n), {
429
+ name: j.value,
430
+ box: "prism",
431
+ size: 24,
432
+ color: "#ffffff",
433
+ radius: "2px"
434
+ }, null, 8, ["name"])])]),
435
+ _: 1
436
+ })
437
+ ]),
438
+ _: 1
439
+ }, 8, ["value"])]),
440
+ s(" 中间配置:保持在中部,可滚动,占据剩余空间 "),
441
+ l("div", Ae, [
442
+ s(" 背景设置:始终显示;当 boxType 为 null 时禁用 "),
443
+ l("div", je, [r[8] ||= l("div", { class: "text-12px mb-2 opacity-70" }, " 背景设置 ", -1), d(ce, {
444
+ angle: N.value,
445
+ "onUpdate:angle": r[2] ||= (e) => N.value = e,
446
+ background: P.value,
447
+ "onUpdate:background": r[3] ||= (e) => P.value = e,
448
+ radius: F.value,
449
+ "onUpdate:radius": r[4] ||= (e) => F.value = e,
450
+ disabled: M.value === "null"
451
+ }, null, 8, [
452
+ "angle",
453
+ "background",
454
+ "radius",
455
+ "disabled"
456
+ ])]),
457
+ s(" 图标颜色设置:始终显示;非 AntD 图标时禁用 "),
458
+ l("div", Me, [r[9] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "图标色", -1), d(f, {
459
+ value: I.value,
460
+ "onUpdate:value": r[6] ||= (e) => I.value = e,
461
+ "allow-clear": "",
462
+ placeholder: M.value === "null" ? "默认" : "#ffffff",
463
+ size: "small",
464
+ class: "flex-1 min-w-0",
465
+ disabled: !$.value
466
+ }, {
467
+ prefix: w(() => [l("div", Ne, [l("button", {
468
+ type: "button",
469
+ disabled: !$.value,
470
+ class: p(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", $.value ? "" : "opacity-50 cursor-not-allowed"]),
471
+ style: m({ background: I.value || "#ffffff" }),
472
+ onClick: We
473
+ }, null, 14, Pe), l("input", {
474
+ ref_key: "iconColorPickerRef",
475
+ ref: L,
476
+ type: "color",
477
+ value: I.value || "#ffffff",
478
+ disabled: !$.value,
479
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
480
+ style: {
481
+ width: "16px",
482
+ height: "16px"
483
+ },
484
+ onInput: r[5] ||= (e) => I.value = e.target.value
485
+ }, null, 40, Fe)])]),
486
+ _: 1
487
+ }, 8, [
488
+ "value",
489
+ "placeholder",
490
+ "disabled"
491
+ ])])
492
+ ]),
493
+ s(" 预览:固定底部 "),
494
+ l("div", Ie, [l("div", Le, [j.value ? (h(), c(i, { key: 0 }, [M.value === "null" ? (h(), o(x(n), {
495
+ key: 0,
496
+ name: j.value,
497
+ size: 80,
498
+ color: $.value && I.value ? I.value : void 0
499
+ }, null, 8, ["name", "color"])) : (h(), o(x(n), {
500
+ key: 1,
501
+ name: j.value,
502
+ box: M.value,
503
+ size: 80,
504
+ angle: N.value,
505
+ background: P.value,
506
+ radius: F.value,
507
+ color: $.value ? I.value || "#ffffff" : void 0
508
+ }, null, 8, [
509
+ "name",
510
+ "box",
511
+ "angle",
512
+ "background",
513
+ "radius",
514
+ "color"
515
+ ]))], 64)) : s("v-if", !0)])])
516
+ ]),
517
+ s(" 侧栏底部操作按钮 "),
518
+ l("div", Re, [d(T, { onClick: B }, {
519
+ default: w(() => r[10] ||= [u(" 取消 ")]),
520
+ _: 1,
521
+ __: [10]
522
+ }), d(T, {
523
+ type: "primary",
524
+ onClick: V
525
+ }, {
526
+ default: w(() => r[11] ||= [u(" 确定 ")]),
527
+ _: 1,
528
+ __: [11]
529
+ })])
530
+ ])) : s("v-if", !0)
531
+ ])]),
532
+ _: 1
533
+ }, 8, ["open"])]),
534
+ _: 1
535
+ })], 64);
536
+ };
537
+ }
538
+ }), H = /* @__PURE__ */ e(V, [["__scopeId", "data-v-5889f8ee"]]);
539
+ const U = {
540
+ key: 0,
541
+ class: "w-full h-full flex justify-center mb-4"
542
+ }, W = ["onClick"], G = ["onClick"], K = { class: "flex flex-col items-center justify-center" };
543
+ var q = /* @__PURE__ */ f({
544
+ name: "ResourceIconSelect",
545
+ __name: "IconSelect",
546
+ props: {
547
+ modelValue: { default: { meta: {
548
+ url: "",
549
+ component: ""
550
+ } } },
551
+ modelModifiers: {}
552
+ },
553
+ emits: ["update:modelValue"],
554
+ setup(e) {
555
+ let r = S(e, "modelValue"), u = a({
556
+ get() {
557
+ let e = r.value.meta || (r.value.meta = {});
558
+ return e.iconOptions ||= {
559
+ boxType: "null",
560
+ angle: 65,
561
+ background: {
562
+ from: "#65E54A",
563
+ to: "#35C724"
564
+ },
565
+ radius: 6,
566
+ iconColor: ""
567
+ }, e.iconOptions;
568
+ },
569
+ set(e) {
570
+ let t = r.value.meta || (r.value.meta = {});
571
+ t.iconOptions = e || {
572
+ boxType: "null",
573
+ angle: 65,
574
+ background: {
575
+ from: "#65E54A",
576
+ to: "#35C724"
577
+ },
578
+ radius: 6,
579
+ iconColor: ""
580
+ };
581
+ }
582
+ }), f = a(() => {
583
+ let e = r.value.type;
584
+ return { icon: [
585
+ t.DYNAMIC_APP,
586
+ t.MICRO_APP,
587
+ t.INDEX,
588
+ t.MENU,
589
+ t.IFRAME,
590
+ t.LINK
591
+ ].includes(e) };
592
+ }), p = a(() => !0);
593
+ function m(e) {
594
+ e.stopPropagation(), r.value.icon && (r.value.icon = void 0);
595
+ }
596
+ return (e, t) => p.value && f.value.icon ? (h(), c("div", U, [d(H, {
597
+ modelValue: r.value.icon,
598
+ "onUpdate:modelValue": t[0] ||= (e) => r.value.icon = e,
599
+ "box-type": u.value.boxType,
600
+ "onUpdate:boxType": t[1] ||= (e) => u.value.boxType = e,
601
+ angle: u.value.angle,
602
+ "onUpdate:angle": t[2] ||= (e) => u.value.angle = e,
603
+ background: u.value.background,
604
+ "onUpdate:background": t[3] ||= (e) => u.value.background = e,
605
+ radius: u.value.radius,
606
+ "onUpdate:radius": t[4] ||= (e) => u.value.radius = e,
607
+ "icon-color": u.value.iconColor,
608
+ "onUpdate:iconColor": t[5] ||= (e) => u.value.iconColor = e
609
+ }, {
610
+ default: w(({ open: e }) => [s(" select box "), r.value.icon ? (h(), c(i, { key: 0 }, [s(" 已选择图标展示盒子 "), l("div", {
611
+ class: "size-20 flex justify-center items-center cursor-pointer rounded-md border-px border-dashed relative group border-[#d9d9d9] dark:border-[#424242] hover:border-[#5794f7] dark:hover:border-[#5187e1]",
612
+ onClick: e
613
+ }, [
614
+ u.value.boxType && u.value.boxType !== "null" ? (h(), o(x(n), {
615
+ key: 0,
616
+ name: r.value.icon,
617
+ box: u.value.boxType,
618
+ size: 76,
619
+ radius: u.value.radius,
620
+ background: u.value.background,
621
+ angle: u.value.angle,
622
+ color: (r.value.icon || "").startsWith("antd:") ? u.value.iconColor || "#ffffff" : void 0
623
+ }, null, 8, [
624
+ "name",
625
+ "box",
626
+ "radius",
627
+ "background",
628
+ "angle",
629
+ "color"
630
+ ])) : (h(), o(x(n), {
631
+ key: 1,
632
+ name: r.value.icon,
633
+ size: "76px",
634
+ color: (r.value.icon || "").startsWith("antd:") && u.value.iconColor || void 0
635
+ }, null, 8, ["name", "color"])),
636
+ s(" 清除按钮 "),
637
+ r.value.icon ? (h(), c("button", {
638
+ key: 2,
639
+ class: "absolute -top-1.5 -right-1.5 size-5 flex items-center justify-center rounded-full cursor-pointer border-none op-65 dark:op-55 hover:op-100",
640
+ type: "button",
641
+ onClick: m
642
+ }, [d(x(n), {
643
+ name: "antd:CloseOutlined",
644
+ size: "10px"
645
+ })])) : s("v-if", !0)
646
+ ], 8, W)], 64)) : (h(), c(i, { key: 1 }, [s(" null icon select box "), l("div", {
647
+ class: "size-20 flex justify-center items-center rounded-md border-px border-dashed cursor-pointer border-[#d9d9d9] dark:border-[#424242] hover:border-[#5794f7] dark:hover:border-[#5187e1] text-[#d9d9d9] dark:text-[#424242] hover:text-[#5794f7] dark:hover:text-[#5187e1] transition",
648
+ onClick: e
649
+ }, [l("div", K, [d(x(n), { name: "antd:PlusOutlined" }), t[6] ||= l("span", { class: "text-10px mt-1" }, "选择图标", -1)])], 8, G)], 64))]),
650
+ _: 1
651
+ }, 8, [
652
+ "modelValue",
653
+ "box-type",
654
+ "angle",
655
+ "background",
656
+ "radius",
657
+ "icon-color"
658
+ ])])) : s("v-if", !0);
659
+ }
660
+ }), J = q;
661
+ export { J as b };
@@ -0,0 +1 @@
1
+ [data-v-5889f8ee] .ant-radio-group{align-items:center;display:inline-flex}[data-v-5889f8ee] .ant-radio-button-wrapper{flex:none;justify-content:center;align-items:center;padding:4px 10px;display:inline-flex;height:auto!important;line-height:1!important}[data-v-5889f8ee] .ant-radio-button-wrapper>span{justify-content:center;align-items:center;display:inline-flex}
@@ -1,7 +1,7 @@
1
1
  import { b as e, c as t } from "./chunk-B3eAFu3c.js";
2
2
  import { A as n, B as r, C as i, D as a, E as o, am as s, z as c } from "./index.js";
3
- import { c as l, e as u } from "./enum-D0U38jb6.js";
4
- import { b as d } from "./dayjs.min-DcxwBe2I.js";
3
+ import { c as l, e as u } from "./enum-BMY6bmPA.js";
4
+ import { b as d } from "./dayjs.min-CdDcH50N.js";
5
5
  import { Fragment as f, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createTextVNode as v, createVNode as y, defineComponent as b, isRef as ee, normalizeStyle as x, openBlock as S, reactive as C, ref as w, renderList as te, resolveComponent as T, toDisplayString as E, unref as D, vShow as O, withCtx as k, withDirectives as A } from "vue";
6
6
  import { ClockCircleOutlined as j, CloudDownloadOutlined as ne, CloudUploadOutlined as re, DeleteOutlined as ie, UndoOutlined as ae } from "@ant-design/icons-vue";
7
7
  import { Upload as M, message as N, theme as oe } from "ant-design-vue";
@@ -0,0 +1,4 @@
1
+ import "./enum-BMY6bmPA.js";
2
+ import "./dayjs.min-CdDcH50N.js";
3
+ import { b as e } from "./ImportExport-ByRTssxP.js";
4
+ export { e as default };
@@ -1,5 +1,5 @@
1
1
  import "./_plugin-vue_export-helper-DziIhCOI.js";
2
- import "./enum-D0U38jb6.js";
2
+ import "./enum-BMY6bmPA.js";
3
3
  import "./HoverCard-B79q5sly.js";
4
- import { b as e } from "./MetaForm-DpH9an5A.js";
4
+ import { b as e } from "./MetaForm-DErrpELP.js";
5
5
  export { e as default };