@me-framework/me-ui-antdv-next 0.0.24 → 0.0.28

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 (108) hide show
  1. package/README.md +41 -0
  2. package/dist/base/index.css +1 -0
  3. package/dist/base/index.js +0 -0
  4. package/dist/base.d.ts +1 -0
  5. package/dist/body/index.css +1 -0
  6. package/dist/body/index.js +153 -0
  7. package/dist/{components/body → body}/index.vue.d.ts +3 -3
  8. package/dist/box/index.css +1 -0
  9. package/dist/box/index.js +170 -0
  10. package/dist/breadcrumb/index.css +1 -0
  11. package/dist/breadcrumb/index.js +99 -0
  12. package/dist/card/index.css +1 -0
  13. package/dist/card/index.js +154 -0
  14. package/dist/chunks/icon-CXjgApCy.js +156 -0
  15. package/dist/chunks/input-icon-selector-BrrR4KK6.js +228 -0
  16. package/dist/chunks/message-D2zYiiQe.js +290 -0
  17. package/dist/chunks/modal-KBZYtIHD.js +178 -0
  18. package/dist/icon/index.css +1 -0
  19. package/dist/icon/index.js +27 -0
  20. package/dist/index.d.ts +34 -34
  21. package/dist/input-gps/index.css +1 -0
  22. package/dist/input-gps/index.js +303 -0
  23. package/dist/{components/input-gps → input-gps}/index.vue.d.ts +3 -1
  24. package/dist/{components/input-gps → input-gps}/map.vue.d.ts +1 -1
  25. package/dist/{components/input-gps → input-gps}/types.d.ts +9 -5
  26. package/dist/input-icon-selector/index.css +1 -0
  27. package/dist/input-icon-selector/index.js +2 -0
  28. package/dist/input-radio/index.css +1 -0
  29. package/dist/input-radio/index.js +96 -0
  30. package/dist/{components/input-radio → input-radio}/index.vue.d.ts +3 -3
  31. package/dist/load-json/index.css +1 -0
  32. package/dist/load-json/index.js +211 -0
  33. package/dist/login-page/index.css +1 -0
  34. package/dist/login-page/index.js +272 -0
  35. package/dist/me-ui-antdv-next.js +62 -48
  36. package/dist/me-ui-antdv-next.umd.cjs +2 -2
  37. package/dist/menu/index.css +1 -0
  38. package/dist/menu/index.js +465 -0
  39. package/dist/message/index.css +1 -0
  40. package/dist/message/index.js +2 -0
  41. package/dist/modal/index.css +1 -0
  42. package/dist/modal/index.js +2 -0
  43. package/dist/nav/index.css +1 -0
  44. package/dist/nav/index.js +560 -0
  45. package/dist/resolver/index.d.ts +7 -0
  46. package/dist/resolver/index.js +39 -0
  47. package/dist/resolver/resolver-map.d.ts +6 -0
  48. package/dist/resolver/resolver-type.d.ts +19 -0
  49. package/dist/resolver.d.ts +2 -0
  50. package/dist/shims-vue.d.ts +3 -0
  51. package/dist/skeleton/index.css +1 -0
  52. package/dist/skeleton/index.js +141 -0
  53. package/dist/{me-ui-antdv-next.css → style.css} +1 -1
  54. package/dist/styles/base.d.ts +0 -0
  55. package/dist/tree-menu/index.css +1 -0
  56. package/dist/tree-menu/index.js +890 -0
  57. package/package.json +18 -9
  58. package/dist/{components/body → body}/index.d.ts +0 -0
  59. package/dist/{components/body → body}/types.d.ts +0 -0
  60. package/dist/{components/box → box}/index.d.ts +0 -0
  61. package/dist/{components/box → box}/index.vue.d.ts +2 -2
  62. package/dist/{components/box → box}/types.d.ts +0 -0
  63. package/dist/{components/breadcrumb → breadcrumb}/index.d.ts +0 -0
  64. package/dist/{components/breadcrumb → breadcrumb}/index.vue.d.ts +0 -0
  65. package/dist/{components/breadcrumb → breadcrumb}/types.d.ts +0 -0
  66. package/dist/{components/card → card}/index.d.ts +0 -0
  67. package/dist/{components/card → card}/index.vue.d.ts +4 -4
  68. package/dist/{components/card → card}/types.d.ts +0 -0
  69. package/dist/{components/icon → icon}/index.d.ts +0 -0
  70. package/dist/{components/icon → icon}/index.vue.d.ts +2 -2
  71. package/dist/{components/icon → icon}/types.d.ts +0 -0
  72. package/dist/{components/input-gps → input-gps}/index.d.ts +0 -0
  73. package/dist/{components/input-icon-selector → input-icon-selector}/index.d.ts +0 -0
  74. package/dist/{components/input-icon-selector → input-icon-selector}/index.vue.d.ts +5 -5
  75. package/dist/{components/input-icon-selector → input-icon-selector}/types.d.ts +0 -0
  76. package/dist/{components/input-radio → input-radio}/index.d.ts +0 -0
  77. package/dist/{components/input-radio → input-radio}/types.d.ts +0 -0
  78. package/dist/{components/load-json → load-json}/index.d.ts +0 -0
  79. package/dist/{components/load-json → load-json}/index.vue.d.ts +1 -1
  80. package/dist/{components/load-json → load-json}/types.d.ts +0 -0
  81. package/dist/{components/login-page → login-page}/index.d.ts +0 -0
  82. package/dist/{components/login-page → login-page}/index.vue.d.ts +0 -0
  83. package/dist/{components/login-page → login-page}/types.d.ts +0 -0
  84. package/dist/{components/menu → menu}/MenuTreeItem.vue.d.ts +0 -0
  85. package/dist/{components/menu → menu}/index.d.ts +0 -0
  86. package/dist/{components/menu → menu}/index.vue.d.ts +2 -2
  87. package/dist/{components/menu → menu}/types.d.ts +0 -0
  88. package/dist/{components/message → message}/index.d.ts +0 -0
  89. package/dist/{components/message → message}/index.vue.d.ts +4 -4
  90. package/dist/{components/message → message}/types.d.ts +0 -0
  91. package/dist/{components/modal → modal}/index.d.ts +0 -0
  92. package/dist/{components/modal → modal}/index.vue.d.ts +5 -5
  93. package/dist/{components/modal → modal}/types.d.ts +0 -0
  94. package/dist/{components/nav → nav}/composables/useNavDrag.d.ts +0 -0
  95. package/dist/{components/nav → nav}/composables/useNavScroll.d.ts +0 -0
  96. package/dist/{components/nav → nav}/index.d.ts +0 -0
  97. package/dist/{components/nav → nav}/index.vue.d.ts +5 -5
  98. package/dist/{components/nav → nav}/types.d.ts +0 -0
  99. package/dist/{components/skeleton → skeleton}/index.d.ts +0 -0
  100. package/dist/{components/skeleton → skeleton}/index.vue.d.ts +0 -0
  101. package/dist/{components/skeleton → skeleton}/types.d.ts +0 -0
  102. package/dist/{components/tree-menu → tree-menu}/TreeMenuActions.vue.d.ts +0 -0
  103. package/dist/{components/tree-menu → tree-menu}/TreeMenuCard.vue.d.ts +1 -1
  104. package/dist/{components/tree-menu → tree-menu}/TreeMenuEdit.vue.d.ts +2 -2
  105. package/dist/{components/tree-menu → tree-menu}/TreeMenuNode.vue.d.ts +0 -0
  106. package/dist/{components/tree-menu → tree-menu}/index.d.ts +0 -0
  107. package/dist/{components/tree-menu → tree-menu}/index.vue.d.ts +3 -3
  108. /package/dist/{components/tree-menu → tree-menu}/types.d.ts +0 -0
@@ -0,0 +1,890 @@
1
+ import e from "../icon/index.js";
2
+ import { n as t } from "../chunks/input-icon-selector-BrrR4KK6.js";
3
+ import { t as n } from "../chunks/message-D2zYiiQe.js";
4
+ import { Fragment as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, h as f, mergeProps as p, normalizeClass as m, normalizeStyle as h, onMounted as g, openBlock as _, ref as v, renderList as y, renderSlot as b, resolveComponent as x, toDisplayString as S, unref as C, useSlots as w, vShow as T, watch as E, withCtx as D, withDirectives as O, withModifiers as k } from "vue";
5
+ //#region src/components/tree-menu/TreeMenuNode.vue?vue&type=script&setup=true&lang.ts
6
+ var A = { class: "me-tree-menu-node" }, j = { class: "me-tree-menu-node__label" }, M = /*@__PURE__*/ d({
7
+ name: "MeTreeMenuNode",
8
+ __name: "TreeMenuNode",
9
+ props: {
10
+ actions: {
11
+ type: Array,
12
+ default: () => []
13
+ },
14
+ nodeTitle: {
15
+ type: String,
16
+ default: ""
17
+ },
18
+ data: {
19
+ type: Object,
20
+ required: !0
21
+ }
22
+ },
23
+ setup(t) {
24
+ let n = t, i = (e) => {
25
+ if (e.status === !1) return !1;
26
+ if (e.key.indexOf("meta.") !== -1) {
27
+ let t = e.key.split(".")[1];
28
+ return n.data.meta?.[t] === e.value;
29
+ }
30
+ return n.data[e.key] === e.value;
31
+ }, u = (e) => ({
32
+ primary: "blue",
33
+ success: "green",
34
+ warning: "orange",
35
+ info: "default",
36
+ error: "red",
37
+ danger: "red"
38
+ })[e || ""] || "default";
39
+ return (n, d) => {
40
+ let f = x("a-tag");
41
+ return _(), s("div", A, [c("span", j, S(t.nodeTitle), 1), (_(!0), s(r, null, y(t.actions, (t) => (_(), s(r, { key: t.key }, [i(t) ? (_(), a(f, {
42
+ key: 0,
43
+ class: "me-tree-menu-node__tag",
44
+ color: u(t.type)
45
+ }, {
46
+ default: D(() => [t.tagIcon ? (_(), a(C(e), {
47
+ key: 0,
48
+ name: t.tagIcon,
49
+ size: 12
50
+ }, null, 8, ["name"])) : (_(), s(r, { key: 1 }, [l(S(t.tagLabel), 1)], 64))]),
51
+ _: 2
52
+ }, 1032, ["color"])) : o("", !0)], 64))), 128))]);
53
+ };
54
+ }
55
+ }), N = (e, t) => {
56
+ let n = e.__vccOpts || e;
57
+ for (let [e, r] of t) n[e] = r;
58
+ return n;
59
+ }, P = /*#__PURE__*/ N(M, [["__scopeId", "data-v-17881bc7"]]), F = { class: "me-tree-menu-actions__menu" }, I = { class: "me-tree-menu-actions__group" }, L = { class: "me-tree-menu-actions__btn-row" }, R = ["onClick"], ee = /*#__PURE__*/ N(/* @__PURE__ */ d({
60
+ name: "MeTreeMenuActions",
61
+ __name: "TreeMenuActions",
62
+ props: { actions: {
63
+ type: Array,
64
+ default: () => []
65
+ } },
66
+ emits: ["update:actions", "toggle-expand-all"],
67
+ setup(t, { emit: n }) {
68
+ let i = t, d = n, f = (e) => {
69
+ e.status = !e.status, d("update:actions", [...i.actions]);
70
+ }, p = (e) => {
71
+ d("toggle-expand-all", e);
72
+ };
73
+ return (n, i) => {
74
+ let d = x("a-button"), h = x("a-divider"), g = x("a-popover");
75
+ return _(), a(g, {
76
+ trigger: ["click"],
77
+ placement: "bottomRight",
78
+ overlayClassName: "me-tree-menu-actions-popover",
79
+ class: "me-tree-menu-actions"
80
+ }, {
81
+ content: D(() => [c("div", F, [
82
+ c("div", I, [c("div", L, [u(d, {
83
+ size: "small",
84
+ onClick: i[0] ||= (e) => p(!0)
85
+ }, {
86
+ icon: D(() => [u(C(e), {
87
+ name: "ChevronDown",
88
+ size: 14
89
+ })]),
90
+ default: D(() => [i[3] ||= l(" 展开 ", -1)]),
91
+ _: 1
92
+ }), u(d, {
93
+ size: "small",
94
+ onClick: i[1] ||= (e) => p(!1)
95
+ }, {
96
+ icon: D(() => [u(C(e), {
97
+ name: "ChevronRight",
98
+ size: 14
99
+ })]),
100
+ default: D(() => [i[4] ||= l(" 折叠 ", -1)]),
101
+ _: 1
102
+ })])]),
103
+ u(h, { style: { margin: "8px 0" } }),
104
+ (_(!0), s(r, null, y(t.actions, (t, n) => (_(), s("div", {
105
+ key: n,
106
+ class: "me-tree-menu-actions__item",
107
+ onClick: (e) => f(t)
108
+ }, [c("span", { class: m({ "is-active": t.status }) }, S(t.label), 3), t.status ? (_(), a(C(e), {
109
+ key: 0,
110
+ name: "Check",
111
+ size: 14,
112
+ color: "var(--ant-color-primary)"
113
+ })) : o("", !0)], 8, R))), 128)),
114
+ b(n.$slots, "dropdown-item", {}, void 0, !0)
115
+ ])]),
116
+ default: D(() => [u(d, {
117
+ type: "text",
118
+ size: "small",
119
+ class: "me-tree-menu-actions__trigger"
120
+ }, {
121
+ default: D(() => [...i[2] ||= [l("操作", -1)]]),
122
+ _: 1
123
+ })]),
124
+ _: 3
125
+ });
126
+ };
127
+ }
128
+ }), [["__scopeId", "data-v-d5a9d230"]]), z = { class: "me-tree-menu-card__title" }, B = { class: "me-tree-menu-card__header-right" }, V = /*#__PURE__*/ N(/* @__PURE__ */ d({
129
+ name: "MeTreeMenuCard",
130
+ __name: "TreeMenuCard",
131
+ props: {
132
+ title: {
133
+ type: String,
134
+ default: ""
135
+ },
136
+ icon: {
137
+ type: String,
138
+ default: ""
139
+ }
140
+ },
141
+ setup(t) {
142
+ return (n, r) => {
143
+ let i = x("a-card");
144
+ return _(), a(i, p({ class: "me-tree-menu-card" }, n.$attrs), {
145
+ title: D(() => [c("span", z, [t.icon ? (_(), a(C(e), {
146
+ key: 0,
147
+ name: t.icon,
148
+ size: 16,
149
+ class: "mr-5"
150
+ }, null, 8, ["name"])) : o("", !0), l(" " + S(t.title), 1)])]),
151
+ extra: D(() => [c("div", B, [b(n.$slots, "header-right", {}, void 0, !0)])]),
152
+ default: D(() => [b(n.$slots, "default", {}, void 0, !0)]),
153
+ _: 3
154
+ }, 16);
155
+ };
156
+ }
157
+ }), [["__scopeId", "data-v-ea7cffb8"]]), H = { class: "me-tree-menu-edit__scroll" }, U = { class: "me-tree-menu-edit__body" }, W = { class: "me-tree-menu-edit__id" }, G = /*#__PURE__*/ N(/* @__PURE__ */ d({
158
+ name: "MeTreeMenuEdit",
159
+ __name: "TreeMenuEdit",
160
+ props: {
161
+ list: {
162
+ type: Array,
163
+ default: () => []
164
+ },
165
+ form: {
166
+ type: Object,
167
+ default: () => ({})
168
+ },
169
+ titleType: {
170
+ type: String,
171
+ default: ""
172
+ },
173
+ label: {
174
+ type: String,
175
+ default: "菜单"
176
+ },
177
+ editTitle: {
178
+ type: String,
179
+ default: ""
180
+ },
181
+ rules: {
182
+ type: Object,
183
+ default: () => ({})
184
+ },
185
+ size: {
186
+ type: String,
187
+ default: "middle"
188
+ },
189
+ iconSources: {
190
+ type: Array,
191
+ default: () => [
192
+ "lucide",
193
+ "remixicon",
194
+ "iconfont"
195
+ ]
196
+ },
197
+ iconfontData: {
198
+ type: Array,
199
+ default: () => []
200
+ }
201
+ },
202
+ setup(e, { expose: n }) {
203
+ let d = e, f = w(), p = v(), m = i(() => {
204
+ let e = [
205
+ "id",
206
+ "parentId",
207
+ "title",
208
+ "enTitle",
209
+ "aliasTitle",
210
+ "aliasEnTitle",
211
+ "icon",
212
+ "sort",
213
+ "cover",
214
+ "hideFlag",
215
+ "enableFlag"
216
+ ], t = {};
217
+ for (let n of e) t[n] = Object.prototype.hasOwnProperty.call(d.form, n);
218
+ return t;
219
+ }), h = i(() => {
220
+ let e = f.default?.();
221
+ return !!e && e.length > 0;
222
+ }), g = i(() => ({
223
+ title: [{
224
+ required: !0,
225
+ message: "请输入名称",
226
+ trigger: "blur"
227
+ }],
228
+ ...d.rules
229
+ })), y = i(() => {
230
+ switch (d.titleType) {
231
+ case "copy": return `复制添加${d.label}`;
232
+ case "create": return `新建${d.label}`;
233
+ case "create-child": return `添加子${d.label}`;
234
+ case "edit": return `编辑${d.label}`;
235
+ default: return d.label;
236
+ }
237
+ }), E = v(!1), k = () => {
238
+ E.value = !0;
239
+ }, A = () => {
240
+ E.value = !1;
241
+ }, j = async () => {
242
+ if (!p.value) return !1;
243
+ try {
244
+ return await p.value.validate(), !0;
245
+ } catch {
246
+ return !1;
247
+ }
248
+ }, M = i(() => [{
249
+ title: `顶级${d.label}`,
250
+ id: "0",
251
+ children: d.list
252
+ }]);
253
+ return n({
254
+ open: k,
255
+ close: A,
256
+ validate: j
257
+ }), (n, i) => {
258
+ let f = x("a-form-item"), v = x("a-col"), w = x("a-tree-select"), k = x("a-input"), A = x("a-input-number"), j = x("a-switch"), N = x("a-divider"), P = x("a-row"), F = x("a-form");
259
+ return O((_(), a(V, {
260
+ title: d.editTitle || y.value,
261
+ class: "me-tree-menu-edit"
262
+ }, {
263
+ "header-right": D(() => [b(n.$slots, "header-submit", {}, void 0, !0)]),
264
+ default: D(() => [c("div", H, [c("div", U, [u(F, {
265
+ ref_key: "formRef",
266
+ ref: p,
267
+ model: e.form,
268
+ rules: g.value,
269
+ "label-col": { span: 6 },
270
+ "wrapper-col": { span: 18 }
271
+ }, {
272
+ default: D(() => [u(P, { gutter: 20 }, {
273
+ default: D(() => [
274
+ m.value.id && e.titleType === "edit" ? (_(), a(v, {
275
+ key: 0,
276
+ span: 24
277
+ }, {
278
+ default: D(() => [u(f, { label: "ID" }, {
279
+ default: D(() => [c("span", W, S(e.form.id), 1)]),
280
+ _: 1
281
+ })]),
282
+ _: 1
283
+ })) : o("", !0),
284
+ m.value.parentId ? (_(), a(v, {
285
+ key: 1,
286
+ span: 24
287
+ }, {
288
+ default: D(() => [u(f, {
289
+ label: `上级${e.label}`,
290
+ name: "parentId"
291
+ }, {
292
+ default: D(() => [u(w, {
293
+ value: e.form.parentId,
294
+ "onUpdate:value": i[0] ||= (t) => e.form.parentId = t,
295
+ "tree-default-expand-all": "",
296
+ "tree-data": M.value,
297
+ "field-names": {
298
+ children: "children",
299
+ label: "title",
300
+ value: "id"
301
+ },
302
+ "tree-node-filter-prop": y.value,
303
+ "show-search": "",
304
+ style: { width: "100%" },
305
+ size: d.size
306
+ }, null, 8, [
307
+ "value",
308
+ "tree-data",
309
+ "tree-node-filter-prop",
310
+ "size"
311
+ ])]),
312
+ _: 1
313
+ }, 8, ["label"])]),
314
+ _: 1
315
+ })) : o("", !0),
316
+ m.value.title ? (_(), a(v, {
317
+ key: 2,
318
+ span: 12
319
+ }, {
320
+ default: D(() => [u(f, {
321
+ label: "名称",
322
+ name: "title"
323
+ }, {
324
+ default: D(() => [u(k, {
325
+ value: e.form.title,
326
+ "onUpdate:value": i[1] ||= (t) => e.form.title = t,
327
+ "allow-clear": "",
328
+ size: d.size
329
+ }, null, 8, ["value", "size"])]),
330
+ _: 1
331
+ })]),
332
+ _: 1
333
+ })) : o("", !0),
334
+ m.value.enTitle ? (_(), a(v, {
335
+ key: 3,
336
+ span: 12
337
+ }, {
338
+ default: D(() => [u(f, { label: "英文名称" }, {
339
+ default: D(() => [u(k, {
340
+ value: e.form.enTitle,
341
+ "onUpdate:value": i[2] ||= (t) => e.form.enTitle = t,
342
+ "allow-clear": "",
343
+ size: d.size
344
+ }, null, 8, ["value", "size"])]),
345
+ _: 1
346
+ })]),
347
+ _: 1
348
+ })) : o("", !0),
349
+ m.value.aliasTitle ? (_(), a(v, {
350
+ key: 4,
351
+ span: 12
352
+ }, {
353
+ default: D(() => [u(f, { label: "别名" }, {
354
+ default: D(() => [u(k, {
355
+ value: e.form.aliasTitle,
356
+ "onUpdate:value": i[3] ||= (t) => e.form.aliasTitle = t,
357
+ "allow-clear": "",
358
+ size: d.size
359
+ }, null, 8, ["value", "size"])]),
360
+ _: 1
361
+ })]),
362
+ _: 1
363
+ })) : o("", !0),
364
+ m.value.aliasEnTitle ? (_(), a(v, {
365
+ key: 5,
366
+ span: 12
367
+ }, {
368
+ default: D(() => [u(f, { label: "英文别名" }, {
369
+ default: D(() => [u(k, {
370
+ value: e.form.aliasEnTitle,
371
+ "onUpdate:value": i[4] ||= (t) => e.form.aliasEnTitle = t,
372
+ "allow-clear": "",
373
+ size: d.size
374
+ }, null, 8, ["value", "size"])]),
375
+ _: 1
376
+ })]),
377
+ _: 1
378
+ })) : o("", !0),
379
+ m.value.icon ? (_(), a(v, {
380
+ key: 6,
381
+ span: 12
382
+ }, {
383
+ default: D(() => [u(f, { label: "图标" }, {
384
+ default: D(() => [b(n.$slots, "edit-icon-selector", {}, () => [u(C(t), {
385
+ modelValue: e.form.icon,
386
+ "onUpdate:modelValue": i[5] ||= (t) => e.form.icon = t,
387
+ sources: e.iconSources,
388
+ "iconfont-data": e.iconfontData,
389
+ size: d.size,
390
+ placeholder: "请选择图标"
391
+ }, null, 8, [
392
+ "modelValue",
393
+ "sources",
394
+ "iconfont-data",
395
+ "size"
396
+ ])], !0)]),
397
+ _: 3
398
+ })]),
399
+ _: 3
400
+ })) : o("", !0),
401
+ m.value.sort ? (_(), a(v, {
402
+ key: 7,
403
+ span: 12
404
+ }, {
405
+ default: D(() => [u(f, { label: "排序" }, {
406
+ default: D(() => [u(A, {
407
+ value: e.form.sort,
408
+ "onUpdate:value": i[6] ||= (t) => e.form.sort = t,
409
+ min: 0,
410
+ style: { width: "100%" },
411
+ size: d.size
412
+ }, null, 8, ["value", "size"])]),
413
+ _: 1
414
+ })]),
415
+ _: 1
416
+ })) : o("", !0),
417
+ m.value.cover ? (_(), a(v, {
418
+ key: 8,
419
+ span: 24
420
+ }, {
421
+ default: D(() => [u(f, { label: "封面" }, {
422
+ default: D(() => [b(n.$slots, "edit-cover", {}, () => [i[9] ||= c("span", { class: "me-tree-menu-edit__placeholder" }, "请通过 edit-cover 插槽传入封面上传组件", -1)], !0)]),
423
+ _: 3
424
+ })]),
425
+ _: 3
426
+ })) : o("", !0),
427
+ m.value.hideFlag ? (_(), a(v, {
428
+ key: 9,
429
+ span: 12
430
+ }, {
431
+ default: D(() => [u(f, { label: "隐藏" }, {
432
+ default: D(() => [u(j, {
433
+ checked: e.form.hideFlag,
434
+ "onUpdate:checked": i[7] ||= (t) => e.form.hideFlag = t,
435
+ size: d.size === "small" ? "small" : "medium"
436
+ }, null, 8, ["checked", "size"])]),
437
+ _: 1
438
+ })]),
439
+ _: 1
440
+ })) : o("", !0),
441
+ m.value.enableFlag ? (_(), a(v, {
442
+ key: 10,
443
+ span: 12
444
+ }, {
445
+ default: D(() => [u(f, { label: "启用" }, {
446
+ default: D(() => [u(j, {
447
+ checked: e.form.enableFlag,
448
+ "onUpdate:checked": i[8] ||= (t) => e.form.enableFlag = t,
449
+ size: d.size === "small" ? "small" : "medium"
450
+ }, null, 8, ["checked", "size"])]),
451
+ _: 1
452
+ })]),
453
+ _: 1
454
+ })) : o("", !0),
455
+ h.value ? (_(), s(r, { key: 11 }, [u(v, { span: 24 }, {
456
+ default: D(() => [u(N, null, {
457
+ default: D(() => [...i[10] ||= [l("Meta", -1)]]),
458
+ _: 1
459
+ })]),
460
+ _: 1
461
+ }), b(n.$slots, "default", {}, void 0, !0)], 64)) : o("", !0)
462
+ ]),
463
+ _: 3
464
+ })]),
465
+ _: 3
466
+ }, 8, ["model", "rules"])])])]),
467
+ _: 3
468
+ }, 8, ["title"])), [[T, E.value]]);
469
+ };
470
+ }
471
+ }), [["__scopeId", "data-v-3d2fbfce"]]), K = { class: "me-tree-menu__left" }, q = { class: "me-tree-menu__left-header" }, J = { class: "me-tree-menu__toolbar" }, Y = { class: "me-tree-menu__tree-wrap" }, X = { class: "me-tree-menu__tree-scroll" }, te = { class: "me-tree-menu__custom-node" }, ne = { class: "me-tree-menu__node-label" }, re = { class: "me-tree-menu__right" }, Z = /* @__PURE__ */ d({
472
+ name: "MeTreeMenu",
473
+ __name: "index",
474
+ props: {
475
+ list: {
476
+ type: Array,
477
+ default: () => []
478
+ },
479
+ showCheckbox: {
480
+ type: Boolean,
481
+ default: !1
482
+ },
483
+ draggable: {
484
+ type: Boolean,
485
+ default: !0
486
+ },
487
+ showFilter: {
488
+ type: Boolean,
489
+ default: !0
490
+ },
491
+ showLine: {
492
+ type: Boolean,
493
+ default: !0
494
+ },
495
+ indent: {
496
+ type: Number,
497
+ default: 20
498
+ },
499
+ leftWidth: {
500
+ type: [Number, String],
501
+ default: 400
502
+ },
503
+ filterDebounce: {
504
+ type: Number,
505
+ default: 200
506
+ },
507
+ treeProps: {
508
+ type: Object,
509
+ default: () => ({})
510
+ },
511
+ nodeKey: {
512
+ type: String,
513
+ default: "id"
514
+ },
515
+ label: {
516
+ type: String,
517
+ default: "菜单"
518
+ },
519
+ form: {
520
+ type: Object,
521
+ default: () => ({})
522
+ },
523
+ actions: {
524
+ type: Array,
525
+ default: () => []
526
+ },
527
+ expandKeys: {
528
+ type: [Array, String],
529
+ default: () => []
530
+ },
531
+ editTitle: {
532
+ type: String,
533
+ default: ""
534
+ },
535
+ apiMoveHandle: {
536
+ type: Function,
537
+ default: void 0
538
+ },
539
+ fetchDataHandle: {
540
+ type: Function,
541
+ default: void 0
542
+ },
543
+ openHandle: {
544
+ type: Function,
545
+ default: void 0
546
+ },
547
+ nodeMenuItemHandle: {
548
+ type: Function,
549
+ default: void 0
550
+ },
551
+ filterNodeMethod: {
552
+ type: Function,
553
+ default: void 0
554
+ },
555
+ moveConfirm: {
556
+ type: Object,
557
+ default: () => ({})
558
+ },
559
+ showMoveConfirm: {
560
+ type: Boolean,
561
+ default: !0
562
+ },
563
+ formSize: {
564
+ type: String,
565
+ default: "middle"
566
+ },
567
+ iconSources: {
568
+ type: Array,
569
+ default: () => [
570
+ "lucide",
571
+ "remixicon",
572
+ "iconfont"
573
+ ]
574
+ },
575
+ iconfontData: {
576
+ type: Array,
577
+ default: () => []
578
+ }
579
+ },
580
+ emits: [
581
+ "node-click",
582
+ "context-menu-add",
583
+ "context-menu-edit",
584
+ "context-menu-remove",
585
+ "context-menu-copy",
586
+ "update",
587
+ "create",
588
+ "update:actions"
589
+ ],
590
+ setup(t, { expose: r, emit: d }) {
591
+ let p = t, m = d, y = v(), w = v(), T = v([...p.actions]);
592
+ E(() => p.actions, (e) => {
593
+ T.value = [...e];
594
+ }, { deep: !0 });
595
+ let O = (e) => {
596
+ T.value = e, m("update:actions", e);
597
+ }, A = v([]), j = v([]);
598
+ g(() => {
599
+ if (p.expandKeys && p.expandKeys.length > 0) {
600
+ let e = Array.isArray(p.expandKeys) ? p.expandKeys : [p.expandKeys];
601
+ A.value = e;
602
+ }
603
+ });
604
+ let M = (e) => {
605
+ e ? A.value = V(p.list) : A.value = [];
606
+ }, N = (e) => {
607
+ A.value = e;
608
+ }, F = i(() => ({ "--me-tree-menu-left-width": typeof p.leftWidth == "number" ? `${p.leftWidth}px` : p.leftWidth })), I = i(() => p.draggable ? { icon: !1 } : !1), L = i(() => ({
609
+ title: p.treeProps.title || "title",
610
+ key: p.treeProps.key || p.nodeKey,
611
+ children: p.treeProps.children || "children"
612
+ })), R = (e) => e[L.value.title || "title"] || "", z = v(""), B = null;
613
+ E(z, (e) => {
614
+ B && clearTimeout(B), B = setTimeout(() => {
615
+ e && (A.value = V(p.list));
616
+ }, p.filterDebounce);
617
+ });
618
+ let V = (e) => {
619
+ let t = [], n = L.value.children || "children", r = L.value.key || "id", i = (e) => {
620
+ for (let a of e) t.push(a[r]), a[n] && a[n].length > 0 && i(a[n]);
621
+ };
622
+ return i(e), t;
623
+ }, H = i(() => {
624
+ if (!z.value) return p.list;
625
+ let e = z.value.toLowerCase(), t = L.value.title || "title", n = L.value.children || "children", r = (i) => {
626
+ let a = [];
627
+ for (let o of i) {
628
+ let i = o[n], s = i && i.length > 0 ? r(i) : [];
629
+ ((p.filterNodeMethod ? p.filterNodeMethod(z.value, o) : String(o[t] || "").toLowerCase().includes(e)) || s.length > 0) && a.push({
630
+ ...o,
631
+ [n]: s.length > 0 ? s : i || []
632
+ });
633
+ }
634
+ return a;
635
+ };
636
+ return r(p.list);
637
+ }), U = v(""), W = () => {
638
+ U.value = "create", $(), m("create");
639
+ }, Z = async () => {
640
+ await w.value?.validate() && m("update", p.form);
641
+ }, Q = (e) => [
642
+ {
643
+ label: `添加子${p.label}`,
644
+ icon: "PlusCircle",
645
+ onClick: () => {
646
+ U.value = "create-child", $(), m("context-menu-add", e);
647
+ }
648
+ },
649
+ {
650
+ label: `编辑${p.label}`,
651
+ icon: "Pencil",
652
+ onClick: () => {
653
+ U.value = "edit", $(), m("context-menu-edit", e);
654
+ }
655
+ },
656
+ {
657
+ label: `复制${p.label}`,
658
+ icon: "Copy",
659
+ onClick: () => {
660
+ U.value = "copy", $(), m("context-menu-copy", e);
661
+ }
662
+ },
663
+ {
664
+ label: `删除${p.label}`,
665
+ icon: "Trash2",
666
+ onClick: () => {
667
+ U.value = "delete", m("context-menu-remove", e);
668
+ }
669
+ }
670
+ ], ie = (e) => p.nodeMenuItemHandle ? p.nodeMenuItemHandle(e) : Q(e), ae = (t) => ({
671
+ items: ie(t).map((n, r) => ({
672
+ key: String(r),
673
+ label: n.label,
674
+ disabled: n.disabled,
675
+ icon: n.icon ? () => f(e, {
676
+ name: n.icon,
677
+ size: 14
678
+ }) : void 0,
679
+ onClick: ({ domEvent: e }) => {
680
+ e.stopPropagation(), n.onClick(t);
681
+ }
682
+ })),
683
+ onClick: () => {}
684
+ }), oe = (e) => {
685
+ e.event.preventDefault();
686
+ let t = e.node?.dataRef || e.node || {}, n = L.value.key || "id";
687
+ j.value = [t[n]];
688
+ }, se = (e, t) => {
689
+ if (j.value = e, e.length > 0 && t?.node) {
690
+ let e = t.node.dataRef || t.node || {};
691
+ U.value = "edit", $(), m("node-click", e);
692
+ }
693
+ }, ce = (e) => {
694
+ if (!p.fetchDataHandle) return;
695
+ let t = e.dragNode, r = e.node, i = e.dropPosition, a = L.value.key || "id", o = L.value.children || "children", s = String(t[a]), c = i === 0 ? String(r[a]) : r.parentId || r.parentNode?.[a] || "0", l = le(r, i, s, a, o), u = p.moveConfirm.title || "提示", d = p.moveConfirm.message || "确定保存移动吗?", f = p.moveConfirm.type || "danger";
696
+ if (!p.showMoveConfirm) {
697
+ p.apiMoveHandle?.({
698
+ id: s,
699
+ pid: c,
700
+ sortId: l
701
+ }).then(() => {
702
+ p.fetchDataHandle?.({ expandKeys: [c] });
703
+ });
704
+ return;
705
+ }
706
+ n({
707
+ data: {
708
+ request: {
709
+ api: p.apiMoveHandle,
710
+ data: {
711
+ id: s,
712
+ pid: c,
713
+ sortId: l
714
+ }
715
+ },
716
+ normal: {
717
+ title: u,
718
+ message: d,
719
+ type: f
720
+ },
721
+ process: {
722
+ title: u,
723
+ loading: !0
724
+ }
725
+ },
726
+ handler: {
727
+ confirm: () => (p.fetchDataHandle?.({ expandKeys: [c] }), !0),
728
+ cancel: () => (p.fetchDataHandle?.({ expandKeys: [c] }), !0)
729
+ }
730
+ });
731
+ }, le = (e, t, n, r, i) => {
732
+ let a = e.parentNode?.[i] || e.parent?.children || p.list, o = [];
733
+ for (let i of a) {
734
+ let a = String(i[r]);
735
+ a !== n && t !== 0 && (t === -1 && a === String(e[r]) ? (o.push(n), o.push(a)) : t === 1 && a === String(e[r]) ? (o.push(a), o.push(n)) : o.push(a));
736
+ }
737
+ return t === 0 ? [...e[i]?.map((e) => String(e[r])) || [], n] : o;
738
+ }, $ = () => {
739
+ p.openHandle ? p.openHandle() : w.value?.open();
740
+ };
741
+ return r({
742
+ open: $,
743
+ close: () => {
744
+ w.value?.close();
745
+ },
746
+ setExpandKeys: (e, t = !0) => {
747
+ let n = Array.isArray(e) ? e : [e], r = new Set(A.value.map(String));
748
+ t ? n.forEach((e) => r.add(String(e))) : n.forEach((e) => r.delete(String(e))), A.value = Array.from(r);
749
+ },
750
+ getExpandKeys: () => A.value.map(String)
751
+ }), (n, r) => {
752
+ let i = x("a-button"), d = x("a-input"), f = x("a-dropdown"), p = x("a-tree"), m = x("a-splitter-panel"), g = x("a-splitter");
753
+ return _(), s("div", {
754
+ class: "me-tree-menu",
755
+ style: h(F.value)
756
+ }, [u(g, { class: "me-tree-menu__splitter" }, {
757
+ default: D(() => [u(m, {
758
+ "default-size": t.leftWidth,
759
+ min: 280,
760
+ class: "me-tree-menu__left-panel"
761
+ }, {
762
+ default: D(() => [c("div", K, [
763
+ c("div", q, [b(n.$slots, "header")]),
764
+ c("div", J, [u(i, {
765
+ type: "primary",
766
+ onClick: W
767
+ }, {
768
+ default: D(() => [...r[3] ||= [l("新建", -1)]]),
769
+ _: 1
770
+ }), T.value.length > 0 ? (_(), a(ee, {
771
+ key: 0,
772
+ actions: T.value,
773
+ "onUpdate:actions": O,
774
+ onToggleExpandAll: M
775
+ }, {
776
+ "dropdown-item": D(() => [b(n.$slots, "dropdown-item")]),
777
+ _: 3
778
+ }, 8, ["actions"])) : o("", !0)]),
779
+ c("div", Y, [t.showFilter ? (_(), a(d, {
780
+ key: 0,
781
+ value: z.value,
782
+ "onUpdate:value": r[0] ||= (e) => z.value = e,
783
+ class: "me-tree-menu__search",
784
+ "allow-clear": "",
785
+ placeholder: "搜索"
786
+ }, {
787
+ prefix: D(() => [u(C(e), {
788
+ name: "Search",
789
+ size: 16
790
+ })]),
791
+ _: 1
792
+ }, 8, ["value"])) : o("", !0), c("div", X, [u(p, {
793
+ ref_key: "treeRef",
794
+ ref: y,
795
+ "tree-data": H.value,
796
+ "field-names": L.value,
797
+ draggable: I.value,
798
+ "block-node": !0,
799
+ "show-line": t.showLine,
800
+ "expanded-keys": A.value,
801
+ "selected-keys": j.value,
802
+ "onUpdate:expandedKeys": N,
803
+ onSelect: se,
804
+ onRightClick: oe,
805
+ onDrop: ce
806
+ }, {
807
+ titleRender: D((t) => [c("div", te, [c("div", ne, [b(n.$slots, "label", { data: t }, () => [u(P, {
808
+ actions: T.value,
809
+ "node-title": R(t),
810
+ data: t
811
+ }, null, 8, [
812
+ "actions",
813
+ "node-title",
814
+ "data"
815
+ ])])]), u(f, {
816
+ trigger: ["click"],
817
+ placement: "bottomRight",
818
+ class: "me-tree-menu__node-more",
819
+ menu: ae(t),
820
+ onClick: r[2] ||= k(() => {}, ["stop"])
821
+ }, {
822
+ default: D(() => [u(C(e), {
823
+ class: "icon-more",
824
+ name: "Ellipsis",
825
+ color: "#d9d9d9",
826
+ size: 16,
827
+ onClick: r[1] ||= k(() => {}, ["stop"])
828
+ })]),
829
+ _: 1
830
+ }, 8, ["menu"])])]),
831
+ _: 3
832
+ }, 8, [
833
+ "tree-data",
834
+ "field-names",
835
+ "draggable",
836
+ "show-line",
837
+ "expanded-keys",
838
+ "selected-keys"
839
+ ])])])
840
+ ])]),
841
+ _: 3
842
+ }, 8, ["default-size"]), u(m, { min: 300 }, {
843
+ default: D(() => [c("div", re, [b(n.$slots, "right", {}, () => [u(G, {
844
+ ref_key: "editRef",
845
+ ref: w,
846
+ list: t.list,
847
+ form: t.form,
848
+ "title-type": U.value,
849
+ label: t.label,
850
+ "edit-title": t.editTitle,
851
+ size: t.formSize,
852
+ "icon-sources": t.iconSources,
853
+ "iconfont-data": t.iconfontData
854
+ }, {
855
+ "header-submit": D(() => [u(i, {
856
+ type: "primary",
857
+ onClick: Z
858
+ }, {
859
+ default: D(() => [l(S(U.value === "edit" ? "更新" : "保存"), 1)]),
860
+ _: 1
861
+ })]),
862
+ "edit-icon-selector": D(() => [b(n.$slots, "edit-icon-selector")]),
863
+ "edit-cover": D(() => [b(n.$slots, "edit-cover")]),
864
+ default: D(() => [b(n.$slots, "edit")]),
865
+ _: 3
866
+ }, 8, [
867
+ "list",
868
+ "form",
869
+ "title-type",
870
+ "label",
871
+ "edit-title",
872
+ "size",
873
+ "icon-sources",
874
+ "iconfont-data"
875
+ ])])])]),
876
+ _: 3
877
+ })]),
878
+ _: 3
879
+ })], 4);
880
+ };
881
+ }
882
+ });
883
+ //#endregion
884
+ //#region src/components/tree-menu/index.ts
885
+ Z.install = (e) => {
886
+ e.component("MeTreeMenu", Z);
887
+ };
888
+ var Q = Z;
889
+ //#endregion
890
+ export { Z as MeTreeMenu, Q as default };