@pubinfo/module-rbac 2.0.0 → 2.0.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 (36) hide show
  1. package/dist/{IconSelect-HAhfS6hd.js → IconSelect-BMlRIxBx.js} +293 -273
  2. package/dist/{IconSelect-Ct5FkeHI.js → IconSelect-BeZfjsl0.js} +1 -1
  3. package/dist/IconSelect.css +1 -1
  4. package/dist/{ResourceEdit-DF-2_zoi.js → ResourceEdit-BSaHxlbT.js} +14 -13
  5. package/dist/{ResourceEdit-oAPLPUf0.js → ResourceEdit-Beu0QLBf.js} +2 -2
  6. package/dist/components/ResourceSelector/hooks/useAppAndResource.d.ts +6 -15
  7. package/dist/components/RoleSelector/useRole.d.ts +4 -68
  8. package/dist/index.css +1 -1
  9. package/dist/index.js +6 -6
  10. package/dist/{resource-CyI9ZpmF.js → resource-UmUb9yZa.js} +2 -2
  11. package/dist/stores/view.d.ts +21 -126
  12. package/dist/utils/routeSystem.d.ts +21 -126
  13. package/dist/views/blackWhiteList/index.vue.d.ts +40 -40
  14. package/dist/views/data-permission/components/createAndEditDataPermission.vue.d.ts +4 -4
  15. package/dist/views/data-permission/index.vue.d.ts +44 -44
  16. package/dist/views/dictionary/index.vue.d.ts +40 -40
  17. package/dist/views/dictionary/itemlist.vue.d.ts +40 -40
  18. package/dist/views/group/index.vue.d.ts +40 -40
  19. package/dist/views/log_center/components/browserType.vue.d.ts +2 -2
  20. package/dist/views/log_center/components/loginHistoryDetail.vue.d.ts +2 -2
  21. package/dist/views/log_center/components/operateHistoryDetail.vue.d.ts +2 -2
  22. package/dist/views/log_center/login_history.vue.d.ts +40 -40
  23. package/dist/views/log_center/operate_history.vue.d.ts +40 -40
  24. package/dist/views/position/index.vue.d.ts +40 -40
  25. package/dist/views/region/index.vue.d.ts +40 -40
  26. package/dist/views/resource/hooks/useMetaForm.d.ts +1 -8
  27. package/dist/views/resource/index.vue.d.ts +40 -40
  28. package/dist/views/role/components/ResourceRelation.vue.d.ts +40 -40
  29. package/dist/views/role/index.vue.d.ts +80 -80
  30. package/dist/views/role_group/index.vue.d.ts +40 -40
  31. package/dist/views/tenant/index.vue.d.ts +40 -40
  32. package/dist/views/user/index.vue.d.ts +40 -40
  33. package/package.json +3 -3
  34. package/src/components/ResourceIcones/Select.vue +74 -60
  35. package/src/views/resource/components/IconSelect.vue +77 -31
  36. package/src/views/resource/components/ResourceEdit.vue +29 -31
@@ -1,12 +1,12 @@
1
1
  import { b as e } from "./_plugin-vue_export-helper-DziIhCOI.js";
2
2
  import { d as t } from "./enum-BMY6bmPA.js";
3
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({
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, reactive as g, ref as _, renderList as v, renderSlot as y, resolveComponent as b, toDisplayString as x, unref as S, useModel as C, watch as w, withCtx as T } from "vue";
5
+ import * as E from "@ant-design/icons-vue";
6
+ import { Empty as D } from "ant-design-vue";
7
+ import { Button as ee, Empty as te, FormItem as O, FormItemRest as ne, Input as k, InputNumber as A, 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 j = { class: "flex flex-col gap-3 w-full select-none" }, M = { class: "flex items-center gap-3" }, N = { class: "relative inline-flex items-center" }, P = ["disabled"], F = ["value", "disabled"], I = { class: "flex items-center gap-3" }, L = { class: "relative inline-flex items-center" }, R = ["disabled"], z = ["value", "disabled"], B = { class: "flex items-center gap-3" }, V = { class: "flex items-center gap-3" };
9
+ var H = /* @__PURE__ */ f({
10
10
  name: "ResourceIconesBoxColorPicker",
11
11
  __name: "BoxColorPicker",
12
12
  props: {
@@ -50,40 +50,40 @@ var B = /* @__PURE__ */ f({
50
50
  }
51
51
  return 6;
52
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);
53
+ let u = a(n.background), f = _(u.from), g = _(u.to), v = _(i(n.angle)), y = _(o(n.radius)), b = _(null), x = _(null);
54
54
  function S() {
55
55
  if (n.disabled) return;
56
56
  let e = b.value;
57
57
  e && (e.style.width = "16px", e.style.height = "16px", e.click());
58
58
  }
59
- function T() {
59
+ function C() {
60
60
  if (n.disabled) return;
61
61
  let e = x.value;
62
62
  e && (e.style.width = "16px", e.style.height = "16px", e.click());
63
63
  }
64
- return C([
64
+ return w([
65
65
  f,
66
- _,
66
+ g,
67
67
  v,
68
68
  y
69
69
  ], () => {
70
70
  r("update:background", {
71
71
  from: f.value,
72
- to: _.value
72
+ to: g.value
73
73
  }), r("update:angle", v.value), r("update:radius", y.value);
74
- }, { immediate: !0 }), C(() => n.background, (e) => {
74
+ }, { immediate: !0 }), w(() => n.background, (e) => {
75
75
  if (e == null) return;
76
76
  let t = a(e);
77
- f.value = t.from, _.value = t.to;
78
- }), C(() => n.angle, (e) => {
77
+ f.value = t.from, g.value = t.to;
78
+ }), w(() => n.angle, (e) => {
79
79
  e != null && (v.value = i(e));
80
- }), C(() => n.radius, (e) => {
80
+ }), w(() => n.radius, (e) => {
81
81
  e != null && (y.value = o(e));
82
82
  }), (e, t) => {
83
- let r = D, i = O;
84
- return h(), c("div", k, [
83
+ let r = k, i = A;
84
+ return h(), c("div", j, [
85
85
  s(" 起始色:紧凑输入(前缀色块 + 文本),隐藏原生 color 触发器 "),
86
- l("div", A, [t[6] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "起始色", -1), d(r, {
86
+ l("div", M, [t[6] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "起始色", -1), d(r, {
87
87
  value: f.value,
88
88
  "onUpdate:value": t[1] ||= (e) => f.value = e,
89
89
  disabled: n.disabled,
@@ -91,14 +91,14 @@ var B = /* @__PURE__ */ f({
91
91
  size: "small",
92
92
  class: "flex-1 min-w-0"
93
93
  }, {
94
- prefix: w(() => [l("div", j, [
94
+ prefix: T(() => [l("div", N, [
95
95
  l("button", {
96
96
  type: "button",
97
97
  disabled: n.disabled,
98
98
  class: p(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", n.disabled ? "opacity-50 cursor-not-allowed" : ""]),
99
99
  style: m({ background: f.value }),
100
100
  onClick: S
101
- }, null, 14, M),
101
+ }, null, 14, P),
102
102
  s(" 透明绝对定位的原生 input,用于正确锚定系统取色器位置 "),
103
103
  l("input", {
104
104
  ref_key: "fromColorPickerRef",
@@ -112,42 +112,42 @@ var B = /* @__PURE__ */ f({
112
112
  height: "16px"
113
113
  },
114
114
  onInput: t[0] ||= (e) => f.value = e.target.value
115
- }, null, 40, N)
115
+ }, null, 40, F)
116
116
  ])]),
117
117
  _: 1
118
118
  }, 8, ["value", "disabled"])]),
119
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,
120
+ l("div", I, [t[7] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "结束色", -1), d(r, {
121
+ value: g.value,
122
+ "onUpdate:value": t[3] ||= (e) => g.value = e,
123
123
  disabled: n.disabled,
124
124
  placeholder: "#35C724",
125
125
  size: "small",
126
126
  class: "flex-1 min-w-0"
127
127
  }, {
128
- prefix: w(() => [l("div", F, [l("button", {
128
+ prefix: T(() => [l("div", L, [l("button", {
129
129
  type: "button",
130
130
  disabled: n.disabled,
131
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", {
132
+ style: m({ background: g.value }),
133
+ onClick: C
134
+ }, null, 14, R), l("input", {
135
135
  ref_key: "toColorPickerRef",
136
136
  ref: x,
137
137
  type: "color",
138
- value: _.value,
138
+ value: g.value,
139
139
  disabled: n.disabled,
140
140
  class: "absolute left-0 top-0 opacity-0 pointer-events-none",
141
141
  style: {
142
142
  width: "16px",
143
143
  height: "16px"
144
144
  },
145
- onInput: t[2] ||= (e) => _.value = e.target.value
146
- }, null, 40, L)])]),
145
+ onInput: t[2] ||= (e) => g.value = e.target.value
146
+ }, null, 40, z)])]),
147
147
  _: 1
148
148
  }, 8, ["value", "disabled"])]),
149
149
  s(" 角度:仅使用数字输入,节省横向空间 "),
150
- l("div", R, [
150
+ l("div", B, [
151
151
  t[8] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "角度", -1),
152
152
  d(i, {
153
153
  value: v.value,
@@ -162,7 +162,7 @@ var B = /* @__PURE__ */ f({
162
162
  t[9] ||= l("span", { class: "text-12px opacity-70" }, "deg", -1)
163
163
  ]),
164
164
  s(" 圆角:仅使用数字输入,节省横向空间 "),
165
- l("div", z, [
165
+ l("div", V, [
166
166
  t[10] ||= l("label", { class: "text-12px opacity-70 w-14 shrink-0" }, "圆角", -1),
167
167
  d(i, {
168
168
  value: y.value,
@@ -179,7 +179,7 @@ var B = /* @__PURE__ */ f({
179
179
  ]);
180
180
  };
181
181
  }
182
- }), ce = B;
182
+ }), ce = H;
183
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
184
  key: 0,
185
185
  class: "opacity-70"
@@ -189,8 +189,11 @@ const le = { class: "flex gap-4 min-h-[600px]" }, ue = { class: "w-58 flex flex-
189
189
  }, we = {
190
190
  key: 0,
191
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({
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 mb-0! w-full flex-col" }, Ne = { class: "flex" }, Pe = { class: "text-12px opacity-70 w-14 shrink-0 flex items-center" }, Fe = { class: "flex flex-col" }, Ie = { class: "relative inline-flex items-center" }, Le = ["disabled"], Re = ["value", "disabled"], ze = { class: "w-full mt-auto flex aspect-square" }, Be = { class: "flex-1 w-full h-full py-4 rounded-md border-t border-t-dashed border-t-[#d0d7de] dark:border-t-[#30363d] flex flex-col items-center gap-2" }, Ve = {
193
+ key: 0,
194
+ class: "w-full h-full flex items-center justify-center"
195
+ }, He = { class: "mt-4 flex justify-end gap-2" };
196
+ var U = /* @__PURE__ */ f({
194
197
  name: "ResourceIconesSelect",
195
198
  __name: "Select",
196
199
  props: {
@@ -219,25 +222,25 @@ var V = /* @__PURE__ */ f({
219
222
  "update:iconColor"
220
223
  ],
221
224
  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 ?? {
225
+ let t = C(e, "modelValue"), f = C(e, "boxType"), g = C(e, "angle"), b = C(e, "background"), O = C(e, "radius"), A = C(e, "iconColor"), j = _(t.value), M = _(f.value || "null"), N = _(g.value ?? 65), P = _(b.value ?? {
223
226
  from: "#65E54A",
224
227
  to: "#35C724"
225
- }), F = g(k.value ?? 6), I = g(A.value ?? ""), L = g(null), R = g(!1);
228
+ }), F = _(O.value ?? 6), I = _(A.value ?? ""), L = _(null), R = _(!1);
226
229
  function z() {
227
- j.value = t.value, M.value = f.value || "null", N.value = y.value ?? 65;
228
- let e = O.value;
230
+ j.value = t.value, M.value = f.value || "null", N.value = g.value ?? 65;
231
+ let e = b.value;
229
232
  P.value = typeof e == "string" ? e : e ? { ...e } : {
230
233
  from: "#65E54A",
231
234
  to: "#35C724"
232
- }, F.value = k.value ?? 6, I.value = A.value ?? "", R.value = !0;
235
+ }, F.value = O.value ?? 6, I.value = A.value ?? "", R.value = !0;
233
236
  }
234
237
  function B() {
235
238
  R.value = !1;
236
239
  }
237
240
  function V() {
238
- t.value = j.value, f.value = M.value, y.value = N.value;
241
+ t.value = j.value, f.value = M.value, g.value = N.value;
239
242
  let e = P.value;
240
- O.value = typeof e == "string" ? e : e && { ...e }, k.value = F.value, A.value = I.value, R.value = !1;
243
+ b.value = typeof e == "string" ? e : e && { ...e }, O.value = F.value, A.value = I.value, R.value = !1;
241
244
  }
242
245
  function H(e) {
243
246
  let t = e.split(/[\\/]/).pop() || e;
@@ -250,7 +253,7 @@ var V = /* @__PURE__ */ f({
250
253
  e.set(n, t);
251
254
  }
252
255
  return e;
253
- }), W = a(() => Object.keys(T).filter((e) => /(?:Outlined|Filled|TwoTone)$/.test(e)).map((e) => `antd:${e}`).sort()), G = a(() => {
256
+ }), W = a(() => Object.keys(E).filter((e) => /(?:Outlined|Filled|TwoTone)$/.test(e)).map((e) => `antd:${e}`).sort()), G = a(() => {
254
257
  let e = Array.from(U.value.keys()), t = e.includes("local"), n = e.filter((e) => e !== "local").sort();
255
258
  return [
256
259
  {
@@ -270,7 +273,7 @@ var V = /* @__PURE__ */ f({
270
273
  value: "antd"
271
274
  }
272
275
  ];
273
- }), K = g("all"), q = g(""), J = a(() => {
276
+ }), K = _("all"), q = _(""), J = a(() => {
274
277
  let e = [];
275
278
  for (let [t, n] of U.value.entries()) n.forEach((n) => {
276
279
  t === "local" ? e.push({
@@ -289,47 +292,47 @@ var V = /* @__PURE__ */ f({
289
292
  let e = q.value.trim().toLowerCase();
290
293
  return e ? Y.value.filter((t) => t.name.toLowerCase().includes(e)) : Y.value;
291
294
  });
292
- function ze(e) {
295
+ function Ue(e) {
293
296
  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
297
  }
295
- let Z = g(1), Q = a(() => Math.max(1, Math.ceil(X.value.length / 30))), Be = a(() => {
298
+ let Z = _(1), Q = a(() => Math.max(1, Math.ceil(X.value.length / 30))), We = a(() => {
296
299
  let e = (Z.value - 1) * 30;
297
300
  return X.value.slice(e, e + 30);
298
301
  });
299
- C([q, K], () => {
302
+ w([q, K], () => {
300
303
  Z.value = 1;
301
- }), C(X, () => {
304
+ }), w(X, () => {
302
305
  Z.value > Q.value && (Z.value = Q.value);
303
306
  });
304
- function Ve(e) {
307
+ function Ge(e) {
305
308
  Z.value = e;
306
309
  }
307
- function He(e) {
310
+ function Ke(e) {
308
311
  j.value = e.name;
309
312
  }
310
- let Ue = E.PRESENTED_IMAGE_SIMPLE;
311
- function We() {
313
+ let qe = D.PRESENTED_IMAGE_SIMPLE;
314
+ function Je() {
312
315
  if (!(j.value || "").startsWith("antd:")) return;
313
316
  let e = L.value;
314
317
  e && (e.style.width = "16px", e.style.height = "16px", e.click());
315
318
  }
316
319
  let $ = a(() => (j.value || "").startsWith("antd:"));
317
- return C(M, (e, t) => {
320
+ return w(M, (e, t) => {
318
321
  t === "null" && e !== "null" && !I.value && (I.value = "#ffffff");
319
322
  }), (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, {
323
+ let a = se, f = k, g = ie, _ = te, b = ae, C = oe, w = ee, E = re, D = ne;
324
+ return h(), c(i, null, [y(e.$slots, "default", { open: z }, () => [d(f, {
322
325
  value: t.value,
323
326
  readonly: "",
324
327
  onClick: z
325
328
  }, {
326
- addonAfter: w(() => [d(a, null, {
327
- title: w(() => [d(x(n), {
329
+ addonAfter: T(() => [d(a, null, {
330
+ title: T(() => [d(S(n), {
328
331
  name: t.value || "",
329
332
  size: "40px",
330
333
  class: "cursor-default"
331
334
  }, null, 8, ["name"])]),
332
- default: w(() => [d(x(n), {
335
+ default: T(() => [d(S(n), {
333
336
  name: t.value || "",
334
337
  size: "20px",
335
338
  class: "cursor-default"
@@ -337,8 +340,8 @@ var V = /* @__PURE__ */ f({
337
340
  _: 1
338
341
  })]),
339
342
  _: 1
340
- }, 8, ["value"])], !0), d(O, null, {
341
- default: w(() => [d(E, {
343
+ }, 8, ["value"])], !0), d(D, null, {
344
+ default: T(() => [d(E, {
342
345
  open: R.value,
343
346
  "onUpdate:open": r[7] ||= (e) => R.value = e,
344
347
  title: "选择图标",
@@ -347,7 +350,7 @@ var V = /* @__PURE__ */ f({
347
350
  "destroy-on-close": "",
348
351
  onCancel: B
349
352
  }, {
350
- default: w(() => [l("div", le, [
353
+ default: T(() => [l("div", le, [
351
354
  s(" 左侧模块列表 "),
352
355
  l("div", ue, [l("div", de, [d(f, {
353
356
  value: q.value,
@@ -357,28 +360,28 @@ var V = /* @__PURE__ */ f({
357
360
  placeholder: "搜索图标",
358
361
  class: "h-9 text-13px"
359
362
  }, {
360
- prefix: w(() => [d(x(n), {
363
+ prefix: T(() => [d(S(n), {
361
364
  name: "i-carbon-search",
362
365
  size: "16",
363
366
  class: "text-[#7a869a]"
364
367
  })]),
365
368
  _: 1
366
- }, 8, ["value"])]), l("div", fe, [(h(!0), c(i, null, _(G.value, (e) => (h(), c("div", {
369
+ }, 8, ["value"])]), l("div", fe, [(h(!0), c(i, null, v(G.value, (e) => (h(), c("div", {
367
370
  key: e.value,
368
371
  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
372
  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))])]),
373
+ }, [l("span", me, x(e.label), 1), l("span", he, x(Ue(e.value)), 1)], 10, pe))), 128))])]),
371
374
  s(" 主体 "),
372
375
  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, {
376
+ l("div", _e, [(h(!0), c(i, null, v(We.value, (e) => (h(), o(a, {
374
377
  key: `${e.module || ""}:${e.name}`,
375
378
  "mouse-enter-delay": .35
376
379
  }, {
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", {
380
+ title: T(() => [l("div", ve, [l("div", ye, x(e.name), 1), e.module ? (h(), c("div", be, " 模块: " + x(e.module), 1)) : s("v-if", !0)])]),
381
+ default: T(() => [l("div", {
379
382
  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), {
383
+ onClick: (t) => Ke(e)
384
+ }, [d(S(n), {
382
385
  name: e.name,
383
386
  size: "30px"
384
387
  }, null, 8, ["name"])], 10, xe)]),
@@ -391,112 +394,118 @@ var V = /* @__PURE__ */ f({
391
394
  total: X.value.length,
392
395
  "show-size-changer": !1,
393
396
  "show-quick-jumper": "",
394
- onChange: Ve
397
+ onChange: Ge
395
398
  }, null, 8, ["current", "total"])])
396
- ], 64)) : (h(), c("div", Ce, [d(y, {
397
- image: x(Ue),
399
+ ], 64)) : (h(), c("div", Ce, [d(_, {
400
+ image: S(qe),
398
401
  description: "没有匹配的图标"
399
402
  }, null, 8, ["image"])]))]),
400
403
  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)])]),
404
+ j.value ? (h(), c("div", we, [l("div", Te, [
405
+ s(" 选项:固定顶部 "),
406
+ l("div", Ee, [d(C, {
407
+ value: M.value,
408
+ "onUpdate:value": r[1] ||= (e) => M.value = e,
409
+ class: "flex justify-center items-center"
410
+ }, {
411
+ default: T(() => [
412
+ d(b, { value: "null" }, {
413
+ default: T(() => [l("div", De, [d(S(n), {
414
+ name: j.value,
415
+ size: 16
416
+ }, null, 8, ["name", "size"])])]),
486
417
  _: 1
487
- }, 8, [
488
- "value",
489
- "placeholder",
490
- "disabled"
491
- ])])
418
+ }),
419
+ d(b, { value: "square" }, {
420
+ default: T(() => [l("div", Oe, [d(S(n), {
421
+ name: j.value,
422
+ box: "square",
423
+ size: 24,
424
+ radius: "6px",
425
+ color: "#ffffff"
426
+ }, null, 8, ["name"])])]),
427
+ _: 1
428
+ }),
429
+ d(b, { value: "prism" }, {
430
+ default: T(() => [l("div", ke, [d(S(n), {
431
+ name: j.value,
432
+ box: "prism",
433
+ size: 24,
434
+ color: "#ffffff",
435
+ radius: "2px"
436
+ }, null, 8, ["name"])])]),
437
+ _: 1
438
+ })
492
439
  ]),
440
+ _: 1
441
+ }, 8, ["value"])]),
442
+ s(" 中间配置:保持在中部,可滚动,占据剩余空间 "),
443
+ l("div", Ae, [
444
+ s(" 背景设置:始终显示;当 boxType 为 null 时禁用 "),
445
+ l("div", je, [r[8] ||= l("div", { class: "text-12px mb-2 opacity-70" }, " 背景设置 ", -1), d(ce, {
446
+ angle: N.value,
447
+ "onUpdate:angle": r[2] ||= (e) => N.value = e,
448
+ background: P.value,
449
+ "onUpdate:background": r[3] ||= (e) => P.value = e,
450
+ radius: F.value,
451
+ "onUpdate:radius": r[4] ||= (e) => F.value = e,
452
+ disabled: M.value === "null"
453
+ }, null, 8, [
454
+ "angle",
455
+ "background",
456
+ "radius",
457
+ "disabled"
458
+ ])]),
459
+ s(" 图标颜色设置:始终显示;非 AntD 图标时禁用 "),
460
+ l("div", Me, [l("div", Ne, [l("label", Pe, [r[10] ||= u(" 图标色 "), d(a, null, {
461
+ title: T(() => r[9] ||= [u(" 仅 Ant Design 图标有效 ")]),
462
+ default: T(() => [d(S(n), {
463
+ name: "i-carbon-information",
464
+ size: "12px",
465
+ class: "ml-1 cursor-help"
466
+ })]),
467
+ _: 1
468
+ })]), l("div", Fe, [d(f, {
469
+ value: I.value,
470
+ "onUpdate:value": r[6] ||= (e) => I.value = e,
471
+ "allow-clear": "",
472
+ placeholder: M.value === "null" ? "默认" : "#ffffff",
473
+ size: "small",
474
+ class: "flex-1 min-w-0",
475
+ disabled: !$.value
476
+ }, {
477
+ prefix: T(() => [l("div", Ie, [l("button", {
478
+ type: "button",
479
+ disabled: !$.value,
480
+ class: p(["w-4 h-4 rounded border border-gray-300 dark:border-gray-700", $.value ? "" : "opacity-50 cursor-not-allowed"]),
481
+ style: m({ background: I.value || "#ffffff" }),
482
+ onClick: Je
483
+ }, null, 14, Le), l("input", {
484
+ ref_key: "iconColorPickerRef",
485
+ ref: L,
486
+ type: "color",
487
+ value: I.value || "#ffffff",
488
+ disabled: !$.value,
489
+ class: "absolute left-0 top-0 opacity-0 pointer-events-none",
490
+ style: {
491
+ width: "16px",
492
+ height: "16px"
493
+ },
494
+ onInput: r[5] ||= (e) => I.value = e.target.value
495
+ }, null, 40, Re)])]),
496
+ _: 1
497
+ }, 8, [
498
+ "value",
499
+ "placeholder",
500
+ "disabled"
501
+ ])])])]),
493
502
  s(" 预览:固定底部 "),
494
- l("div", Ie, [l("div", Le, [j.value ? (h(), c(i, { key: 0 }, [M.value === "null" ? (h(), o(x(n), {
503
+ l("div", ze, [l("div", Be, [j.value ? (h(), c("div", Ve, [M.value === "null" ? (h(), o(S(n), {
495
504
  key: 0,
496
505
  name: j.value,
497
506
  size: 80,
498
507
  color: $.value && I.value ? I.value : void 0
499
- }, null, 8, ["name", "color"])) : (h(), o(x(n), {
508
+ }, null, 8, ["name", "color"])) : (h(), o(S(n), {
500
509
  key: 1,
501
510
  name: j.value,
502
511
  box: M.value,
@@ -512,22 +521,22 @@ var V = /* @__PURE__ */ f({
512
521
  "background",
513
522
  "radius",
514
523
  "color"
515
- ]))], 64)) : s("v-if", !0)])])
524
+ ]))])) : s("v-if", !0)])])
516
525
  ]),
517
526
  s(" 侧栏底部操作按钮 "),
518
- l("div", Re, [d(T, { onClick: B }, {
519
- default: w(() => r[10] ||= [u(" 取消 ")]),
527
+ l("div", He, [d(w, { onClick: B }, {
528
+ default: T(() => r[11] ||= [u(" 取消 ")]),
520
529
  _: 1,
521
- __: [10]
522
- }), d(T, {
530
+ __: [11]
531
+ }), d(w, {
523
532
  type: "primary",
524
533
  onClick: V
525
534
  }, {
526
- default: w(() => r[11] ||= [u(" 确定 ")]),
535
+ default: T(() => r[12] ||= [u(" 确定 ")]),
527
536
  _: 1,
528
- __: [11]
537
+ __: [12]
529
538
  })])
530
- ])) : s("v-if", !0)
539
+ ])])) : s("v-if", !0)
531
540
  ])]),
532
541
  _: 1
533
542
  }, 8, ["open"])]),
@@ -535,12 +544,9 @@ var V = /* @__PURE__ */ f({
535
544
  })], 64);
536
545
  };
537
546
  }
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({
547
+ }), W = /* @__PURE__ */ e(U, [["__scopeId", "data-v-f63b9031"]]);
548
+ const G = ["onClick"], K = ["onClick"], q = { class: "flex flex-col items-center justify-center" };
549
+ var J = /* @__PURE__ */ f({
544
550
  name: "ResourceIconSelect",
545
551
  __name: "IconSelect",
546
552
  props: {
@@ -552,34 +558,39 @@ var q = /* @__PURE__ */ f({
552
558
  },
553
559
  emits: ["update:modelValue"],
554
560
  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
- };
561
+ let r = C(e, "modelValue");
562
+ function u() {
563
+ return {
564
+ boxType: "null",
565
+ angle: 65,
566
+ background: {
567
+ from: "#65E54A",
568
+ to: "#35C724"
569
+ },
570
+ radius: 6,
571
+ iconColor: ""
572
+ };
573
+ }
574
+ let f = a(() => r.value.meta || (r.value.meta = {})), p = g(u());
575
+ w(() => f.value.iconOptions, (e) => {
576
+ e ? Object.assign(p, u(), e) : Object.assign(p, u());
577
+ }, { immediate: !0 }), w(p, (e) => {
578
+ if (!r.value.icon) {
579
+ f.value.iconOptions && Reflect.deleteProperty(f.value, "iconOptions");
580
+ return;
581
581
  }
582
- }), f = a(() => {
582
+ let t = f.value.iconOptions, n = !1;
583
+ if (!t) n = !0;
584
+ else {
585
+ let r = new Set([...Object.keys(t), ...Object.keys(e)]);
586
+ for (let i of r) if (t[i] !== e[i]) {
587
+ n = !0;
588
+ break;
589
+ }
590
+ }
591
+ n && (f.value.iconOptions = { ...e });
592
+ }, { deep: !0 });
593
+ let m = a(() => {
583
594
  let e = r.value.type;
584
595
  return { icon: [
585
596
  t.DYNAMIC_APP,
@@ -589,73 +600,82 @@ var q = /* @__PURE__ */ f({
589
600
  t.IFRAME,
590
601
  t.LINK
591
602
  ].includes(e) };
592
- }), p = a(() => !0);
593
- function m(e) {
594
- e.stopPropagation(), r.value.icon && (r.value.icon = void 0);
603
+ }), _ = a(() => !0);
604
+ function v(e) {
605
+ e.stopPropagation(), r.value.icon && (r.value.icon = void 0, Reflect.deleteProperty(f.value, "iconOptions"));
595
606
  }
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",
607
+ return (e, t) => {
608
+ let a = O;
609
+ return _.value && m.value.icon ? (h(), o(a, {
610
+ key: 0,
611
+ label: "资源图标"
612
+ }, {
613
+ default: T(() => [d(W, {
614
+ modelValue: r.value.icon,
615
+ "onUpdate:modelValue": t[0] ||= (e) => r.value.icon = e,
616
+ "box-type": p.boxType,
617
+ "onUpdate:boxType": t[1] ||= (e) => p.boxType = e,
618
+ angle: p.angle,
619
+ "onUpdate:angle": t[2] ||= (e) => p.angle = e,
620
+ background: p.background,
621
+ "onUpdate:background": t[3] ||= (e) => p.background = e,
622
+ radius: p.radius,
623
+ "onUpdate:radius": t[4] ||= (e) => p.radius = e,
624
+ "icon-color": p.iconColor,
625
+ "onUpdate:iconColor": t[5] ||= (e) => p.iconColor = e
626
+ }, {
627
+ default: T(({ open: e }) => [s(" select box "), r.value.icon ? (h(), c(i, { key: 0 }, [s(" 已选择图标展示盒子 "), l("div", {
628
+ class: "size-64px 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] p-8px",
629
+ onClick: e
630
+ }, [
631
+ p.boxType && p.boxType !== "null" ? (h(), o(S(n), {
632
+ key: 0,
633
+ name: r.value.icon,
634
+ box: p.boxType,
635
+ size: "48px",
636
+ radius: p.radius,
637
+ background: p.background,
638
+ angle: p.angle,
639
+ color: (r.value.icon || "").startsWith("antd:") ? p.iconColor || "#ffffff" : void 0
640
+ }, null, 8, [
641
+ "name",
642
+ "box",
643
+ "radius",
644
+ "background",
645
+ "angle",
646
+ "color"
647
+ ])) : (h(), o(S(n), {
648
+ key: 1,
649
+ name: r.value.icon,
650
+ size: "48px",
651
+ color: (r.value.icon || "").startsWith("antd:") && p.iconColor || void 0
652
+ }, null, 8, ["name", "color"])),
653
+ s(" 清除按钮 "),
654
+ r.value.icon ? (h(), c("button", {
655
+ key: 2,
656
+ 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",
657
+ type: "button",
658
+ onClick: v
659
+ }, [d(S(n), {
660
+ name: "antd:CloseOutlined",
661
+ size: "10px"
662
+ })])) : s("v-if", !0)
663
+ ], 8, G)], 64)) : (h(), c(i, { key: 1 }, [s(" null icon select box "), l("div", {
664
+ class: "size-64px 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",
665
+ onClick: e
666
+ }, [l("div", q, [d(S(n), { name: "antd:PlusOutlined" }), t[6] ||= l("span", { class: "text-10px mt-1" }, "选择图标", -1)])], 8, K)], 64))]),
667
+ _: 1
668
+ }, 8, [
669
+ "modelValue",
670
+ "box-type",
628
671
  "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);
672
+ "background",
673
+ "radius",
674
+ "icon-color"
675
+ ])]),
676
+ _: 1
677
+ })) : s("v-if", !0);
678
+ };
659
679
  }
660
- }), J = q;
661
- export { J as b };
680
+ }), Y = J;
681
+ export { Y as b };