jgy-public-component 0.0.6 → 0.0.8

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.
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
- import { defineComponent as U, openBlock as u, createElementBlock as B, normalizeClass as q, createCommentVNode as w, renderSlot as Z, ref as E, watch as oe, resolveComponent as _, createVNode as c, unref as C, withCtx as o, createElementVNode as $, withModifiers as X, createBlock as y, Fragment as ae, toDisplayString as I, mergeProps as ie, computed as se, onMounted as re, onBeforeUnmount as ue, normalizeStyle as ce, createTextVNode as D, useModel as de, renderList as me, mergeModels as ee } from "vue";
2
- import { ElMessage as b } from "element-plus";
3
- import { Delete as G, Plus as Q, Loading as te, ZoomIn as fe, Search as pe, Refresh as ve, ArrowDown as ge } from "@element-plus/icons-vue";
4
- import ye from "vuedraggable";
5
- import { Icon as he } from "@iconify/vue";
1
+ import { defineComponent as O, openBlock as s, createElementBlock as j, normalizeClass as H, createCommentVNode as C, renderSlot as W, ref as B, watch as ie, resolveComponent as b, createVNode as r, unref as x, withCtx as u, createElementVNode as _, withModifiers as Q, createBlock as p, Fragment as K, toDisplayString as S, mergeProps as re, computed as te, onMounted as me, onBeforeUnmount as fe, normalizeStyle as ue, createTextVNode as M, useModel as pe, renderList as G, mergeModels as ne } from "vue";
2
+ import { ElMessage as $ } from "element-plus";
3
+ import { Delete as Y, Plus as ee, Loading as se, ZoomIn as ve, Search as he, Refresh as ge, ArrowDown as ye } from "@element-plus/icons-vue";
4
+ import be from "vuedraggable";
5
+ import { Icon as _e } from "@iconify/vue";
6
6
  import * as T from "xlsx";
7
- const _e = ["disabled"], be = {
7
+ const ke = ["disabled"], we = {
8
8
  key: 0,
9
9
  class: "j-button__loading-icon"
10
- }, we = {
10
+ }, xe = {
11
11
  key: 1,
12
12
  class: "j-button__text"
13
- }, ke = /* @__PURE__ */ U({
13
+ }, je = /* @__PURE__ */ O({
14
14
  __name: "JButton",
15
15
  props: {
16
16
  type: { default: "default" },
@@ -21,13 +21,13 @@ const _e = ["disabled"], be = {
21
21
  loading: { type: Boolean, default: !1 }
22
22
  },
23
23
  emits: ["click"],
24
- setup(e, { emit: s }) {
25
- const t = e, i = s;
26
- function a(n) {
27
- !t.disabled && !t.loading && i("click", n);
24
+ setup(e, { emit: o }) {
25
+ const t = e, i = o;
26
+ function l(a) {
27
+ !t.disabled && !t.loading && i("click", a);
28
28
  }
29
- return (n, f) => (u(), B("button", {
30
- class: q(["j-button", [
29
+ return (a, f) => (s(), j("button", {
30
+ class: H(["j-button", [
31
31
  `j-button--${e.type}`,
32
32
  `j-button--${e.size}`,
33
33
  {
@@ -38,29 +38,29 @@ const _e = ["disabled"], be = {
38
38
  }
39
39
  ]]),
40
40
  disabled: e.disabled || e.loading,
41
- onClick: a
41
+ onClick: l
42
42
  }, [
43
- e.loading ? (u(), B("span", be)) : w("", !0),
44
- n.$slots.default ? (u(), B("span", we, [
45
- Z(n.$slots, "default", {}, void 0, !0)
46
- ])) : w("", !0)
47
- ], 10, _e));
43
+ e.loading ? (s(), j("span", we)) : C("", !0),
44
+ a.$slots.default ? (s(), j("span", xe, [
45
+ W(a.$slots, "default", {}, void 0, !0)
46
+ ])) : C("", !0)
47
+ ], 10, ke));
48
48
  }
49
- }), K = (e, s) => {
49
+ }), L = (e, o) => {
50
50
  const t = e.__vccOpts || e;
51
- for (const [i, a] of s)
52
- t[i] = a;
51
+ for (const [i, l] of o)
52
+ t[i] = l;
53
53
  return t;
54
- }, xe = /* @__PURE__ */ K(ke, [["__scopeId", "data-v-22864824"]]), Ce = { class: "j-upload-img-container" }, je = {
54
+ }, Ce = /* @__PURE__ */ L(je, [["__scopeId", "data-v-22864824"]]), $e = { class: "j-upload-img-container" }, Ie = {
55
55
  key: 0,
56
56
  class: "images-wrapper"
57
- }, $e = { class: "image-item" }, Ve = ["onClick"], Be = {
57
+ }, Be = { class: "image-item" }, Se = ["onClick"], Ve = {
58
58
  key: 0,
59
59
  class: "image-item single-image-item"
60
- }, Ee = { class: "image-actions" }, Ae = {
60
+ }, Ae = { class: "image-actions" }, Ee = {
61
61
  key: 2,
62
62
  class: "upload-tip"
63
- }, Ie = { key: 0 }, De = /* @__PURE__ */ U({
63
+ }, Me = { key: 0 }, Je = /* @__PURE__ */ O({
64
64
  name: "JUploadImg",
65
65
  __name: "JUploadImg",
66
66
  props: {
@@ -75,200 +75,203 @@ const _e = ["disabled"], be = {
75
75
  uploadFn: { type: Function, default: void 0 }
76
76
  },
77
77
  emits: ["update:modelValue", "success", "error"],
78
- setup(e, { emit: s }) {
79
- const t = e, i = s, a = E(""), n = E(!1), f = t.showTip, v = () => {
80
- n.value = !0;
81
- }, h = () => {
82
- a.value = "", i("update:modelValue", ""), b.success("删除成功");
83
- }, k = E([]), x = E(!1), z = (d) => {
84
- k.value = d.map((r, l) => ({
85
- uid: Date.now() + l,
86
- url: r
78
+ setup(e, { emit: o }) {
79
+ const t = e, i = o, l = B(""), a = B(!1), f = t.showTip, m = () => {
80
+ a.value = !0;
81
+ }, v = () => {
82
+ l.value = "", i("update:modelValue", ""), $.success("删除成功");
83
+ }, k = B([]), c = B(!1), A = (h) => {
84
+ k.value = h.map((d, n) => ({
85
+ uid: Date.now() + n,
86
+ url: d
87
87
  }));
88
88
  };
89
- oe(() => t.modelValue, (d) => {
90
- t.multiple ? Array.isArray(d) && d.length > 0 ? z(d) : k.value = [] : typeof d == "string" ? a.value = d : a.value = "";
89
+ ie(() => t.modelValue, (h) => {
90
+ t.multiple ? Array.isArray(h) && h.length > 0 ? A(h) : k.value = [] : typeof h == "string" ? l.value = h : l.value = "";
91
91
  }, { immediate: !0 });
92
- const S = () => {
93
- F();
94
- }, g = (d) => {
95
- k.value.splice(d, 1), F(), b.success("删除成功");
96
- }, m = async (d) => {
97
- const r = d.raw;
98
- if (!r) {
99
- b.error("文件不存在,请重试");
92
+ const J = () => {
93
+ D();
94
+ }, w = (h) => {
95
+ k.value.splice(h, 1), D(), $.success("删除成功");
96
+ }, g = async (h) => {
97
+ const d = h.raw;
98
+ if (!d) {
99
+ $.error("文件不存在,请重试");
100
100
  return;
101
101
  }
102
- if (r.size > t.maxSize * 1024 * 1024) {
103
- b.error(`图片大小不能超过 ${t.maxSize}MB`);
102
+ if (d.size > t.maxSize * 1024 * 1024) {
103
+ $.error(`图片大小不能超过 ${t.maxSize}MB`);
104
104
  return;
105
105
  }
106
106
  if (!t.uploadFn) {
107
- b.error("未配置上传函数 (uploadFn)");
107
+ $.error("未配置上传函数 (uploadFn)");
108
108
  return;
109
109
  }
110
110
  try {
111
- x.value = !0;
112
- const l = await t.uploadFn(r);
113
- t.multiple ? (k.value.push({ uid: Date.now(), url: l }), F()) : (a.value = l, i("update:modelValue", l)), i("success", l), b.success("上传成功");
114
- } catch (l) {
115
- console.error("上传出错:", l), b.error("上传失败,请重试"), i("error", l);
111
+ c.value = !0;
112
+ const n = await t.uploadFn(d);
113
+ t.multiple ? (k.value.push({ uid: Date.now(), url: n }), D()) : (l.value = n, i("update:modelValue", n)), i("success", n), $.success("上传成功");
114
+ } catch (n) {
115
+ console.error("上传出错:", n), $.error("上传失败,请重试"), i("error", n);
116
116
  } finally {
117
- x.value = !1;
117
+ c.value = !1;
118
118
  }
119
- }, F = () => {
120
- const d = k.value.map((r) => r.url);
121
- i("update:modelValue", d);
119
+ }, D = () => {
120
+ const h = k.value.map((d) => d.url);
121
+ i("update:modelValue", h);
122
122
  };
123
- return (d, r) => {
124
- const l = _("el-image"), p = _("el-icon"), j = _("el-upload"), O = _("el-image-viewer");
125
- return u(), B("div", Ce, [
126
- e.multiple ? (u(), B("div", je, [
127
- c(C(ye), {
123
+ return (h, d) => {
124
+ const n = b("el-image"), y = b("el-icon"), I = b("el-upload"), z = b("el-image-viewer");
125
+ return s(), j("div", $e, [
126
+ e.multiple ? (s(), j("div", Ie, [
127
+ r(x(be), {
128
128
  modelValue: k.value,
129
- "onUpdate:modelValue": r[0] || (r[0] = (R) => k.value = R),
129
+ "onUpdate:modelValue": d[0] || (d[0] = (F) => k.value = F),
130
130
  class: "images-list",
131
131
  "item-key": "uid",
132
132
  animation: 200,
133
133
  disabled: e.disabled,
134
- onEnd: S
134
+ onEnd: J
135
135
  }, {
136
- item: o(({ element: R, index: J }) => [
137
- $("div", $e, [
138
- c(l, {
139
- src: R.url,
140
- "preview-src-list": k.value.map((A) => A.url),
141
- "initial-index": J,
136
+ item: u(({ element: F, index: R }) => [
137
+ _("div", Be, [
138
+ r(n, {
139
+ src: F.url,
140
+ "preview-src-list": k.value.map((E) => E.url),
141
+ "initial-index": R,
142
142
  fit: "cover",
143
143
  class: "image-preview",
144
144
  "preview-teleported": !0,
145
145
  "hide-on-click-modal": !0
146
146
  }, null, 8, ["src", "preview-src-list", "initial-index"]),
147
- e.disabled ? w("", !0) : (u(), B("div", {
147
+ e.disabled ? C("", !0) : (s(), j("div", {
148
148
  key: 0,
149
149
  class: "delete-btn",
150
- onClick: X((A) => g(J), ["stop"])
150
+ onClick: Q((E) => w(R), ["stop"])
151
151
  }, [
152
- c(p, { class: "icon-delete" }, {
153
- default: o(() => [
154
- c(C(G))
152
+ r(y, { class: "icon-delete" }, {
153
+ default: u(() => [
154
+ r(x(Y))
155
155
  ]),
156
156
  _: 1
157
157
  })
158
- ], 8, Ve))
158
+ ], 8, Se))
159
159
  ])
160
160
  ]),
161
161
  _: 1
162
162
  }, 8, ["modelValue", "disabled"]),
163
- !e.disabled && (!e.limit || k.value.length < e.limit) ? (u(), y(j, {
163
+ !e.disabled && (!e.limit || k.value.length < e.limit) ? (s(), p(I, {
164
164
  key: 0,
165
165
  class: "image-uploader",
166
166
  "auto-upload": !1,
167
167
  "show-file-list": !1,
168
- "on-change": m,
169
- disabled: x.value,
168
+ "on-change": g,
169
+ disabled: c.value,
170
170
  "list-type": "picture-card",
171
171
  accept: e.accept
172
172
  }, {
173
- default: o(() => [
174
- x.value ? (u(), y(p, {
173
+ default: u(() => [
174
+ c.value ? (s(), p(y, {
175
175
  key: 1,
176
176
  class: "uploader-icon is-loading"
177
177
  }, {
178
- default: o(() => [
179
- c(C(te))
178
+ default: u(() => [
179
+ r(x(se))
180
180
  ]),
181
181
  _: 1
182
- })) : (u(), y(p, {
182
+ })) : (s(), p(y, {
183
183
  key: 0,
184
184
  class: "uploader-icon"
185
185
  }, {
186
- default: o(() => [
187
- c(C(Q))
186
+ default: u(() => [
187
+ r(x(ee))
188
188
  ]),
189
189
  _: 1
190
190
  }))
191
191
  ]),
192
192
  _: 1
193
- }, 8, ["disabled", "accept"])) : w("", !0)
194
- ])) : (u(), B(ae, { key: 1 }, [
195
- a.value ? (u(), B("div", Be, [
196
- c(l, {
197
- src: a.value,
193
+ }, 8, ["disabled", "accept"])) : C("", !0)
194
+ ])) : (s(), j(K, { key: 1 }, [
195
+ l.value ? (s(), j("div", Ve, [
196
+ r(n, {
197
+ src: l.value,
198
198
  fit: "cover",
199
199
  class: "image-preview"
200
200
  }, null, 8, ["src"]),
201
- $("div", Ee, [
202
- c(p, {
201
+ _("div", Ae, [
202
+ r(y, {
203
203
  class: "action-icon",
204
- onClick: X(v, ["stop"])
204
+ onClick: Q(m, ["stop"])
205
205
  }, {
206
- default: o(() => [
207
- c(C(fe))
206
+ default: u(() => [
207
+ r(x(ve))
208
208
  ]),
209
209
  _: 1
210
210
  }),
211
- e.disabled ? w("", !0) : (u(), y(p, {
211
+ e.disabled ? C("", !0) : (s(), p(y, {
212
212
  key: 0,
213
213
  class: "action-icon",
214
- onClick: X(h, ["stop"])
214
+ onClick: Q(v, ["stop"])
215
215
  }, {
216
- default: o(() => [
217
- c(C(G))
216
+ default: u(() => [
217
+ r(x(Y))
218
218
  ]),
219
219
  _: 1
220
220
  }))
221
221
  ])
222
- ])) : (u(), y(j, {
222
+ ])) : (s(), p(I, {
223
223
  key: 1,
224
224
  class: "image-uploader",
225
225
  "auto-upload": !1,
226
226
  "show-file-list": !1,
227
- "on-change": m,
228
- disabled: e.disabled || x.value,
227
+ "on-change": g,
228
+ disabled: e.disabled || c.value,
229
229
  accept: e.accept,
230
230
  "list-type": "picture-card"
231
231
  }, {
232
- default: o(() => [
233
- c(p, { class: "uploader-icon" }, {
234
- default: o(() => [
235
- x.value ? (u(), y(C(te), {
232
+ default: u(() => [
233
+ r(y, { class: "uploader-icon" }, {
234
+ default: u(() => [
235
+ c.value ? (s(), p(x(se), {
236
236
  key: 1,
237
237
  class: "is-loading"
238
- })) : (u(), y(C(Q), { key: 0 }))
238
+ })) : (s(), p(x(ee), { key: 0 }))
239
239
  ]),
240
240
  _: 1
241
241
  })
242
242
  ]),
243
243
  _: 1
244
244
  }, 8, ["disabled", "accept"])),
245
- n.value ? (u(), y(O, {
245
+ a.value ? (s(), p(z, {
246
246
  key: 2,
247
- "url-list": [a.value],
247
+ "url-list": [l.value],
248
248
  teleported: !0,
249
- onClose: r[1] || (r[1] = (R) => n.value = !1)
250
- }, null, 8, ["url-list"])) : w("", !0)
249
+ onClose: d[1] || (d[1] = (F) => a.value = !1)
250
+ }, null, 8, ["url-list"])) : C("", !0)
251
251
  ], 64)),
252
- C(f) ? (u(), B("div", Ae, [
253
- $("span", null, I(e.tip), 1),
254
- e.multiple && e.limit ? (u(), B("span", Ie, " (最多 " + I(e.limit) + " 张)", 1)) : w("", !0)
255
- ])) : w("", !0)
252
+ x(f) ? (s(), j("div", Ee, [
253
+ _("span", null, S(e.tip), 1),
254
+ e.multiple && e.limit ? (s(), j("span", Me, " (最多 " + S(e.limit) + " 张)", 1)) : C("", !0)
255
+ ])) : C("", !0)
256
256
  ]);
257
257
  };
258
258
  }
259
- }), Se = /* @__PURE__ */ K(De, [["__scopeId", "data-v-052bacda"]]), Fe = /* @__PURE__ */ U({
259
+ }), De = /* @__PURE__ */ L(Je, [["__scopeId", "data-v-052bacda"]]), X = /* @__PURE__ */ O({
260
260
  name: "JIconRender",
261
261
  __name: "JIconRender",
262
262
  props: {
263
- icon: {}
263
+ icon: {},
264
+ size: { default: 24 }
264
265
  },
265
266
  setup(e) {
266
- return (s, t) => e.icon ? (u(), y(C(he), ie({
267
+ return (o, t) => e.icon ? (s(), p(x(_e), re({
267
268
  key: 0,
268
- icon: e.icon
269
- }, s.$attrs), null, 16, ["icon"])) : w("", !0);
269
+ icon: e.icon,
270
+ width: e.size,
271
+ height: e.size
272
+ }, o.$attrs), null, 16, ["icon", "width", "height"])) : C("", !0);
270
273
  }
271
- }), Oe = { class: "action-left" }, Re = /* @__PURE__ */ U({
274
+ }), ze = { class: "action-left" }, Fe = /* @__PURE__ */ O({
272
275
  name: "JSearchHeader",
273
276
  __name: "JSearchHeader",
274
277
  props: {
@@ -281,145 +284,145 @@ const _e = ["disabled"], be = {
281
284
  showReset: { type: Boolean, default: !0 }
282
285
  },
283
286
  emits: ["search", "reset", "add", "batchDelete"],
284
- setup(e, { emit: s }) {
285
- const t = e, i = s, a = E(), n = E(!1), f = E(!1), v = E(0), h = E(0), k = se(() => v.value > t.defaultVisible), x = () => {
286
- if (!a.value) return;
287
- const g = Array.from(a.value.children);
288
- v.value = g.length;
289
- const m = g[t.defaultVisible - 1];
290
- if (m && a.value) {
291
- const F = a.value.getBoundingClientRect(), d = m.getBoundingClientRect();
292
- h.value = d.bottom - F.top;
287
+ setup(e, { emit: o }) {
288
+ const t = e, i = o, l = B(), a = B(!1), f = B(!1), m = B(0), v = B(0), k = te(() => m.value > t.defaultVisible), c = () => {
289
+ if (!l.value) return;
290
+ const w = Array.from(l.value.children);
291
+ m.value = w.length;
292
+ const g = w[t.defaultVisible - 1];
293
+ if (g && l.value) {
294
+ const D = l.value.getBoundingClientRect(), h = g.getBoundingClientRect();
295
+ v.value = h.bottom - D.top;
293
296
  }
294
- }, z = () => {
295
- const g = a.value;
296
- if (g)
297
- if (n.value)
298
- x(), n.value = !1, g.style.maxHeight = g.scrollHeight + "px", g.offsetHeight, g.style.maxHeight = h.value + "px";
297
+ }, A = () => {
298
+ const w = l.value;
299
+ if (w)
300
+ if (a.value)
301
+ c(), a.value = !1, w.style.maxHeight = w.scrollHeight + "px", w.offsetHeight, w.style.maxHeight = v.value + "px";
299
302
  else {
300
- n.value = !0, g.style.maxHeight = g.scrollHeight + "px";
301
- const m = () => {
302
- g.style.maxHeight = "none", g.removeEventListener("transitionend", m);
303
+ a.value = !0, w.style.maxHeight = w.scrollHeight + "px";
304
+ const g = () => {
305
+ w.style.maxHeight = "none", w.removeEventListener("transitionend", g);
303
306
  };
304
- g.addEventListener("transitionend", m);
307
+ w.addEventListener("transitionend", g);
305
308
  }
306
309
  };
307
- let S = null;
308
- return re(() => {
309
- x(), k.value && a.value && (a.value.style.maxHeight = h.value + "px"), requestAnimationFrame(() => {
310
+ let J = null;
311
+ return me(() => {
312
+ c(), k.value && l.value && (l.value.style.maxHeight = v.value + "px"), requestAnimationFrame(() => {
310
313
  requestAnimationFrame(() => {
311
314
  f.value = !0;
312
315
  });
313
- }), a.value && (S = new MutationObserver(() => {
314
- x(), k.value && !n.value && a.value && (a.value.style.maxHeight = h.value + "px");
315
- }), S.observe(a.value, { childList: !0 }));
316
- }), ue(() => {
317
- S == null || S.disconnect();
318
- }), (g, m) => {
319
- const F = _("el-form"), d = _("el-button"), r = _("el-icon"), l = _("el-card");
320
- return u(), y(l, {
316
+ }), l.value && (J = new MutationObserver(() => {
317
+ c(), k.value && !a.value && l.value && (l.value.style.maxHeight = v.value + "px");
318
+ }), J.observe(l.value, { childList: !0 }));
319
+ }), fe(() => {
320
+ J == null || J.disconnect();
321
+ }), (w, g) => {
322
+ const D = b("el-form"), h = b("el-button"), d = b("el-icon"), n = b("el-card");
323
+ return s(), p(n, {
321
324
  shadow: "never",
322
325
  class: "j-search-header-card"
323
326
  }, {
324
- default: o(() => [
325
- c(F, {
327
+ default: u(() => [
328
+ r(D, {
326
329
  inline: "",
327
330
  class: "search-form"
328
331
  }, {
329
- default: o(() => [
330
- $("div", {
332
+ default: u(() => [
333
+ _("div", {
331
334
  ref_key: "formItemsRef",
332
- ref: a,
333
- class: q(["form-items-wrapper", { "is-animated": f.value }])
335
+ ref: l,
336
+ class: H(["form-items-wrapper", { "is-animated": f.value }])
334
337
  }, [
335
- Z(g.$slots, "default", {}, void 0, !0)
338
+ W(w.$slots, "default", {}, void 0, !0)
336
339
  ], 2)
337
340
  ]),
338
341
  _: 3
339
342
  }),
340
- $("div", {
343
+ _("div", {
341
344
  class: "action-bar",
342
- style: ce({ marginTop: n.value ? "0px" : "10px" })
345
+ style: ue({ marginTop: a.value ? "0px" : "10px" })
343
346
  }, [
344
- $("div", Oe, [
345
- e.showAdd ? (u(), y(d, {
347
+ _("div", ze, [
348
+ e.showAdd ? (s(), p(h, {
346
349
  key: 0,
347
350
  type: "primary",
348
- icon: C(Q),
349
- onClick: m[0] || (m[0] = (p) => i("add"))
351
+ icon: x(ee),
352
+ onClick: g[0] || (g[0] = (y) => i("add"))
350
353
  }, {
351
- default: o(() => [
352
- D(I(e.addText), 1)
354
+ default: u(() => [
355
+ M(S(e.addText), 1)
353
356
  ]),
354
357
  _: 1
355
- }, 8, ["icon"])) : w("", !0),
356
- e.showBatchDelete ? (u(), y(d, {
358
+ }, 8, ["icon"])) : C("", !0),
359
+ e.showBatchDelete ? (s(), p(h, {
357
360
  key: 1,
358
361
  type: "danger",
359
- icon: C(G),
362
+ icon: x(Y),
360
363
  disabled: e.selectedCount === 0,
361
- onClick: m[1] || (m[1] = (p) => i("batchDelete"))
364
+ onClick: g[1] || (g[1] = (y) => i("batchDelete"))
362
365
  }, {
363
- default: o(() => [
364
- D(" 批量删除" + I(e.selectedCount ? `(${e.selectedCount})` : ""), 1)
366
+ default: u(() => [
367
+ M(" 批量删除" + S(e.selectedCount ? `(${e.selectedCount})` : ""), 1)
365
368
  ]),
366
369
  _: 1
367
- }, 8, ["icon", "disabled"])) : w("", !0),
368
- e.showSearch ? (u(), y(d, {
370
+ }, 8, ["icon", "disabled"])) : C("", !0),
371
+ e.showSearch ? (s(), p(h, {
369
372
  key: 2,
370
373
  type: "primary",
371
- icon: C(pe),
372
- onClick: m[2] || (m[2] = (p) => i("search"))
374
+ icon: x(he),
375
+ onClick: g[2] || (g[2] = (y) => i("search"))
373
376
  }, {
374
- default: o(() => [...m[4] || (m[4] = [
375
- D("搜索", -1)
377
+ default: u(() => [...g[4] || (g[4] = [
378
+ M("搜索", -1)
376
379
  ])]),
377
380
  _: 1
378
- }, 8, ["icon"])) : w("", !0),
379
- e.showReset ? (u(), y(d, {
381
+ }, 8, ["icon"])) : C("", !0),
382
+ e.showReset ? (s(), p(h, {
380
383
  key: 3,
381
- icon: C(ve),
382
- onClick: m[3] || (m[3] = (p) => i("reset"))
384
+ icon: x(ge),
385
+ onClick: g[3] || (g[3] = (y) => i("reset"))
383
386
  }, {
384
- default: o(() => [...m[5] || (m[5] = [
385
- D("重置", -1)
387
+ default: u(() => [...g[5] || (g[5] = [
388
+ M("重置", -1)
386
389
  ])]),
387
390
  _: 1
388
- }, 8, ["icon"])) : w("", !0),
389
- Z(g.$slots, "actions", {}, void 0, !0)
391
+ }, 8, ["icon"])) : C("", !0),
392
+ W(w.$slots, "actions", {}, void 0, !0)
390
393
  ]),
391
- k.value ? (u(), y(d, {
394
+ k.value ? (s(), p(h, {
392
395
  key: 0,
393
396
  link: "",
394
397
  type: "primary",
395
- onClick: z
398
+ onClick: A
396
399
  }, {
397
- default: o(() => [
398
- D(I(n.value ? "收起" : "展开") + " ", 1),
399
- c(r, {
400
- class: q(["toggle-icon", { "is-expanded": n.value }])
400
+ default: u(() => [
401
+ M(S(a.value ? "收起" : "展开") + " ", 1),
402
+ r(d, {
403
+ class: H(["toggle-icon", { "is-expanded": a.value }])
401
404
  }, {
402
- default: o(() => [
403
- c(C(ge))
405
+ default: u(() => [
406
+ r(x(ye))
404
407
  ]),
405
408
  _: 1
406
409
  }, 8, ["class"])
407
410
  ]),
408
411
  _: 1
409
- })) : w("", !0)
412
+ })) : C("", !0)
410
413
  ], 4)
411
414
  ]),
412
415
  _: 3
413
416
  });
414
417
  };
415
418
  }
416
- }), Je = /* @__PURE__ */ K(Re, [["__scopeId", "data-v-4488c604"]]), Te = { class: "j-import-upload-row" }, ze = { class: "j-import-stat-num" }, He = { class: "j-import-stat-num" }, Le = { class: "j-import-stat-num" }, Me = {
419
+ }), Oe = /* @__PURE__ */ L(Fe, [["__scopeId", "data-v-4488c604"]]), Re = { class: "j-import-upload-row" }, Te = { class: "j-import-stat-num" }, He = { class: "j-import-stat-num" }, Le = { class: "j-import-stat-num" }, Ue = {
417
420
  key: 0,
418
421
  class: "j-import-status-fail"
419
- }, Ue = { key: 1 }, Ne = /* @__PURE__ */ U({
422
+ }, Ne = { key: 1 }, Pe = /* @__PURE__ */ O({
420
423
  name: "JImportExcel",
421
424
  __name: "JImportExcel",
422
- props: /* @__PURE__ */ ee({
425
+ props: /* @__PURE__ */ ne({
423
426
  getFieldListApi: {},
424
427
  importApi: {},
425
428
  excludeFields: { default: () => ["id", "ctime", "mtime"] },
@@ -428,176 +431,176 @@ const _e = ["disabled"], be = {
428
431
  modelValue: { type: Boolean, default: !1 },
429
432
  modelModifiers: {}
430
433
  }),
431
- emits: /* @__PURE__ */ ee(["success"], ["update:modelValue"]),
432
- setup(e, { emit: s }) {
433
- const t = e, i = s, a = de(e, "modelValue"), n = E(!1), f = E({}), v = E([]), h = E({ total: 0, success: 0, fail: 0 }), k = {
434
+ emits: /* @__PURE__ */ ne(["success"], ["update:modelValue"]),
435
+ setup(e, { emit: o }) {
436
+ const t = e, i = o, l = pe(e, "modelValue"), a = B(!1), f = B({}), m = B([]), v = B({ total: 0, success: 0, fail: 0 }), k = {
434
437
  0: "待创建",
435
438
  1: "创建成功",
436
439
  2: "创建中",
437
440
  [-1]: "创建失败"
438
- }, x = se(() => Object.entries(f.value).filter(([r]) => !t.excludeFields.includes(r)).map(([r, l]) => ({ id: r, label: l, prop: r }))), z = async () => {
441
+ }, c = te(() => Object.entries(f.value).filter(([d]) => !t.excludeFields.includes(d)).map(([d, n]) => ({ id: d, label: n, prop: d }))), A = async () => {
439
442
  try {
440
- const r = await t.getFieldListApi();
441
- f.value = r.data.tableFieldsInfo ?? {};
443
+ const d = await t.getFieldListApi();
444
+ f.value = d.data.tableFieldsInfo ?? {};
442
445
  } catch {
443
- b.error("获取字段列表失败");
446
+ $.error("获取字段列表失败");
444
447
  }
445
- }, S = (r) => {
446
- const l = r.raw;
447
- if (!l) return;
448
+ }, J = (d) => {
449
+ const n = d.raw;
450
+ if (!n) return;
448
451
  if (![
449
452
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
450
453
  "application/vnd.ms-excel"
451
- ].includes(l.type) && !l.name.match(/\.xlsx?$/i)) {
452
- b.warning("请上传 .xlsx 或 .xls 格式文件");
454
+ ].includes(n.type) && !n.name.match(/\.xlsx?$/i)) {
455
+ $.warning("请上传 .xlsx 或 .xls 格式文件");
453
456
  return;
454
457
  }
455
- const j = new FileReader();
456
- j.onload = (O) => {
458
+ const I = new FileReader();
459
+ I.onload = (z) => {
457
460
  try {
458
- const R = T.read(O.target.result, { type: "binary" }), J = R.SheetNames[0], A = R.Sheets[J], H = T.utils.sheet_to_json(A);
459
- if (!H.length) {
460
- b.warning("文件内容为空");
461
+ const F = T.read(z.target.result, { type: "binary" }), R = F.SheetNames[0], E = F.Sheets[R], U = T.utils.sheet_to_json(E);
462
+ if (!U.length) {
463
+ $.warning("文件内容为空");
461
464
  return;
462
465
  }
463
- const L = x.value.map((M) => M.prop), N = H.map((M) => {
464
- const V = Object.values(M), P = { _status: 0, _error: "" };
465
- return L.forEach((Y, ne) => {
466
- P[Y] = V[ne];
467
- }), P;
466
+ const N = c.value.map((P) => P.prop), q = U.map((P) => {
467
+ const V = Object.values(P), Z = { _status: 0, _error: "" };
468
+ return N.forEach((ae, de) => {
469
+ Z[ae] = V[de];
470
+ }), Z;
468
471
  });
469
- v.value = N, h.value = { total: N.length, success: 0, fail: 0 };
472
+ m.value = q, v.value = { total: q.length, success: 0, fail: 0 };
470
473
  } catch {
471
- b.error("解析文件失败,请检查文件格式");
474
+ $.error("解析文件失败,请检查文件格式");
472
475
  }
473
- }, j.readAsBinaryString(l);
474
- }, g = (r) => {
475
- v.value.splice(r, 1), h.value.total = v.value.length;
476
- }, m = async () => {
477
- const r = v.value.filter((l) => l._status === 0).map(({ _status: l, _error: p, ...j }) => j);
478
- if (!r.length) {
479
- b.warning("没有可导入的数据");
476
+ }, I.readAsBinaryString(n);
477
+ }, w = (d) => {
478
+ m.value.splice(d, 1), v.value.total = m.value.length;
479
+ }, g = async () => {
480
+ const d = m.value.filter((n) => n._status === 0).map(({ _status: n, _error: y, ...I }) => I);
481
+ if (!d.length) {
482
+ $.warning("没有可导入的数据");
480
483
  return;
481
484
  }
482
- n.value = !0;
485
+ a.value = !0;
483
486
  try {
484
- const l = await t.importApi(r);
485
- l.code === 1 ? (v.value.forEach((p) => {
486
- p._status === 0 && (p._status = 1);
487
- }), h.value.success = v.value.filter((p) => p._status === 1).length, b.success("导入成功"), i("success")) : b.error(l.msg || "导入失败");
487
+ const n = await t.importApi(d);
488
+ n.code === 1 ? (m.value.forEach((y) => {
489
+ y._status === 0 && (y._status = 1);
490
+ }), v.value.success = m.value.filter((y) => y._status === 1).length, $.success("导入成功"), i("success")) : $.error(n.msg || "导入失败");
488
491
  } catch {
489
- b.error("导入失败,请重试");
492
+ $.error("导入失败,请重试");
490
493
  } finally {
491
- n.value = !1;
494
+ a.value = !1;
492
495
  }
493
- }, F = () => {
496
+ }, D = () => {
494
497
  try {
495
- const r = T.utils.book_new(), l = x.value.map((O) => O.label), p = {};
496
- l.forEach((O) => p[O] = "");
497
- const j = T.utils.json_to_sheet([p]);
498
- T.utils.book_append_sheet(r, j, "模板"), T.writeFile(r, "导入模板.xlsx");
498
+ const d = T.utils.book_new(), n = c.value.map((z) => z.label), y = {};
499
+ n.forEach((z) => y[z] = "");
500
+ const I = T.utils.json_to_sheet([y]);
501
+ T.utils.book_append_sheet(d, I, "模板"), T.writeFile(d, "导入模板.xlsx");
499
502
  } catch {
500
- b.error("模板下载失败");
503
+ $.error("模板下载失败");
501
504
  }
502
- }, d = () => {
503
- n.value || (a.value = !1, v.value = [], h.value = { total: 0, success: 0, fail: 0 });
505
+ }, h = () => {
506
+ a.value || (l.value = !1, m.value = [], v.value = { total: 0, success: 0, fail: 0 });
504
507
  };
505
- return (r, l) => {
506
- const p = _("el-divider"), j = _("el-button"), O = _("el-upload"), R = _("el-link"), J = _("el-card"), A = _("el-col"), H = _("el-row"), L = _("el-table-column"), N = _("el-table"), M = _("el-dialog");
507
- return u(), y(M, {
508
- modelValue: a.value,
509
- "onUpdate:modelValue": l[0] || (l[0] = (V) => a.value = V),
508
+ return (d, n) => {
509
+ const y = b("el-divider"), I = b("el-button"), z = b("el-upload"), F = b("el-link"), R = b("el-card"), E = b("el-col"), U = b("el-row"), N = b("el-table-column"), q = b("el-table"), P = b("el-dialog");
510
+ return s(), p(P, {
511
+ modelValue: l.value,
512
+ "onUpdate:modelValue": n[0] || (n[0] = (V) => l.value = V),
510
513
  title: t.title,
511
514
  width: "900px",
512
515
  "close-on-click-modal": !1,
513
- onOpen: z,
514
- onClose: d
516
+ onOpen: A,
517
+ onClose: h
515
518
  }, {
516
- footer: o(() => [
517
- c(j, { onClick: d }, {
518
- default: o(() => [...l[9] || (l[9] = [
519
- D("关闭", -1)
519
+ footer: u(() => [
520
+ r(I, { onClick: h }, {
521
+ default: u(() => [...n[9] || (n[9] = [
522
+ M("关闭", -1)
520
523
  ])]),
521
524
  _: 1
522
525
  })
523
526
  ]),
524
- default: o(() => [
525
- c(J, {
527
+ default: u(() => [
528
+ r(R, {
526
529
  shadow: "never",
527
530
  class: "j-import-upload-card"
528
531
  }, {
529
- default: o(() => [
530
- l[3] || (l[3] = $("div", { class: "j-import-upload-card-title" }, "导入 EXCEL", -1)),
531
- c(p, { style: { margin: "10px 0" } }),
532
- $("div", Te, [
533
- c(O, {
532
+ default: u(() => [
533
+ n[3] || (n[3] = _("div", { class: "j-import-upload-card-title" }, "导入 EXCEL", -1)),
534
+ r(y, { style: { margin: "10px 0" } }),
535
+ _("div", Re, [
536
+ r(z, {
534
537
  accept: ".xlsx,.xls",
535
538
  "auto-upload": !1,
536
539
  "show-file-list": !1,
537
- "on-change": S
540
+ "on-change": J
538
541
  }, {
539
- default: o(() => [
540
- c(j, { size: "small" }, {
541
- default: o(() => [...l[1] || (l[1] = [
542
- D("点击上传", -1)
542
+ default: u(() => [
543
+ r(I, { size: "small" }, {
544
+ default: u(() => [...n[1] || (n[1] = [
545
+ M("点击上传", -1)
543
546
  ])]),
544
547
  _: 1
545
548
  })
546
549
  ]),
547
550
  _: 1
548
551
  }),
549
- x.value.length ? (u(), y(R, {
552
+ c.value.length ? (s(), p(F, {
550
553
  key: 0,
551
554
  type: "primary",
552
555
  class: "j-import-no-wrap",
553
- onClick: F
556
+ onClick: D
554
557
  }, {
555
- default: o(() => [...l[2] || (l[2] = [
556
- D(" 下载导入模板.xlsx ", -1)
558
+ default: u(() => [...n[2] || (n[2] = [
559
+ M(" 下载导入模板.xlsx ", -1)
557
560
  ])]),
558
561
  _: 1
559
- })) : w("", !0)
562
+ })) : C("", !0)
560
563
  ])
561
564
  ]),
562
565
  _: 1
563
566
  }),
564
- c(H, {
567
+ r(U, {
565
568
  class: "j-import-stats-row",
566
569
  gutter: 20,
567
570
  align: "middle"
568
571
  }, {
569
- default: o(() => [
570
- c(A, { span: 18 }, {
571
- default: o(() => [
572
- c(H, { class: "j-import-stats-cols" }, {
573
- default: o(() => [
574
- c(A, {
572
+ default: u(() => [
573
+ r(E, { span: 18 }, {
574
+ default: u(() => [
575
+ r(U, { class: "j-import-stats-cols" }, {
576
+ default: u(() => [
577
+ r(E, {
575
578
  span: 4,
576
579
  class: "j-import-stat-item"
577
580
  }, {
578
- default: o(() => [
579
- $("div", ze, I(h.value.total), 1),
580
- l[4] || (l[4] = $("div", { class: "j-import-stat-label" }, "导入数量", -1))
581
+ default: u(() => [
582
+ _("div", Te, S(v.value.total), 1),
583
+ n[4] || (n[4] = _("div", { class: "j-import-stat-label" }, "导入数量", -1))
581
584
  ]),
582
585
  _: 1
583
586
  }),
584
- c(A, {
587
+ r(E, {
585
588
  span: 4,
586
589
  class: "j-import-stat-item"
587
590
  }, {
588
- default: o(() => [
589
- $("div", He, I(h.value.fail), 1),
590
- l[5] || (l[5] = $("div", { class: "j-import-stat-label" }, "失败数量", -1))
591
+ default: u(() => [
592
+ _("div", He, S(v.value.fail), 1),
593
+ n[5] || (n[5] = _("div", { class: "j-import-stat-label" }, "失败数量", -1))
591
594
  ]),
592
595
  _: 1
593
596
  }),
594
- c(A, {
597
+ r(E, {
595
598
  span: 4,
596
599
  class: "j-import-stat-item"
597
600
  }, {
598
- default: o(() => [
599
- $("div", Le, I(h.value.success), 1),
600
- l[6] || (l[6] = $("div", { class: "j-import-stat-label" }, "成功数量", -1))
601
+ default: u(() => [
602
+ _("div", Le, S(v.value.success), 1),
603
+ n[6] || (n[6] = _("div", { class: "j-import-stat-label" }, "成功数量", -1))
601
604
  ]),
602
605
  _: 1
603
606
  })
@@ -607,20 +610,20 @@ const _e = ["disabled"], be = {
607
610
  ]),
608
611
  _: 1
609
612
  }),
610
- c(A, {
613
+ r(E, {
611
614
  span: 6,
612
615
  class: "j-import-confirm-col"
613
616
  }, {
614
- default: o(() => [
615
- c(j, {
617
+ default: u(() => [
618
+ r(I, {
616
619
  type: "primary",
617
620
  size: "small",
618
- loading: n.value,
619
- disabled: !v.value.length,
620
- onClick: m
621
+ loading: a.value,
622
+ disabled: !m.value.length,
623
+ onClick: g
621
624
  }, {
622
- default: o(() => [...l[7] || (l[7] = [
623
- D(" 确认导入 ", -1)
625
+ default: u(() => [...n[7] || (n[7] = [
626
+ M(" 确认导入 ", -1)
624
627
  ])]),
625
628
  _: 1
626
629
  }, 8, ["loading", "disabled"])
@@ -630,49 +633,49 @@ const _e = ["disabled"], be = {
630
633
  ]),
631
634
  _: 1
632
635
  }),
633
- c(N, {
634
- data: v.value,
636
+ r(q, {
637
+ data: m.value,
635
638
  border: "",
636
639
  size: "small",
637
640
  "max-height": "360",
638
641
  class: "j-import-data-table"
639
642
  }, {
640
- default: o(() => [
641
- (u(!0), B(ae, null, me(x.value, (V) => (u(), y(L, {
643
+ default: u(() => [
644
+ (s(!0), j(K, null, G(c.value, (V) => (s(), p(N, {
642
645
  key: V.prop,
643
646
  prop: V.prop,
644
647
  label: V.label,
645
648
  "min-width": 120,
646
649
  "show-overflow-tooltip": ""
647
650
  }, null, 8, ["prop", "label"]))), 128)),
648
- c(L, {
651
+ r(N, {
649
652
  label: "状态",
650
653
  width: "110",
651
654
  align: "center",
652
655
  fixed: "right"
653
656
  }, {
654
- default: o(({ row: V }) => [
655
- V._status === -1 ? (u(), B("span", Me, I(V._error || "创建失败"), 1)) : (u(), B("span", Ue, I(k[V._status]), 1))
657
+ default: u(({ row: V }) => [
658
+ V._status === -1 ? (s(), j("span", Ue, S(V._error || "创建失败"), 1)) : (s(), j("span", Ne, S(k[V._status]), 1))
656
659
  ]),
657
660
  _: 1
658
661
  }),
659
- c(L, {
662
+ r(N, {
660
663
  label: "操作",
661
664
  width: "80",
662
665
  align: "center",
663
666
  fixed: "right"
664
667
  }, {
665
- default: o(({ $index: V, row: P }) => [
666
- P._status === 0 ? (u(), y(j, {
668
+ default: u(({ $index: V, row: Z }) => [
669
+ Z._status === 0 ? (s(), p(I, {
667
670
  key: 0,
668
671
  size: "small",
669
- onClick: (Y) => g(V)
672
+ onClick: (ae) => w(V)
670
673
  }, {
671
- default: o(() => [...l[8] || (l[8] = [
672
- D(" 删除 ", -1)
674
+ default: u(() => [...n[8] || (n[8] = [
675
+ M(" 删除 ", -1)
673
676
  ])]),
674
677
  _: 1
675
- }, 8, ["onClick"])) : w("", !0)
678
+ }, 8, ["onClick"])) : C("", !0)
676
679
  ]),
677
680
  _: 1
678
681
  })
@@ -684,107 +687,257 @@ const _e = ["disabled"], be = {
684
687
  }, 8, ["modelValue", "title"]);
685
688
  };
686
689
  }
687
- }), Pe = /* @__PURE__ */ K(Ne, [["__scopeId", "data-v-2ece86f5"]]);
688
- function W(e, s) {
689
- return Array.isArray(e) ? e.map((t) => W(t, s)) : e !== null && typeof e == "object" && !(e instanceof Date) ? s(e) : e;
690
+ }), We = /* @__PURE__ */ L(Pe, [["__scopeId", "data-v-2ece86f5"]]), Ke = { class: "j-sidebar__menu-item-title" }, Xe = /* @__PURE__ */ O({
691
+ name: "JSideMenuItem",
692
+ __name: "JSideMenuItem",
693
+ props: {
694
+ menuItem: {},
695
+ isCollapse: { type: Boolean },
696
+ depth: { default: 0 }
697
+ },
698
+ emits: ["menu-click"],
699
+ setup(e, { emit: o }) {
700
+ const t = e, i = o, l = () => {
701
+ i("menu-click", t.menuItem);
702
+ };
703
+ return (a, f) => {
704
+ const m = b("JSideMenuItem", !0), v = b("el-sub-menu"), k = b("el-menu-item");
705
+ return e.menuItem.children && e.menuItem.children.length > 0 ? (s(), p(v, {
706
+ key: 0,
707
+ index: e.menuItem.path
708
+ }, {
709
+ title: u(() => [
710
+ e.menuItem.icon && e.depth === 0 ? (s(), p(x(X), {
711
+ key: 0,
712
+ icon: e.menuItem.icon
713
+ }, null, 8, ["icon"])) : C("", !0),
714
+ _("span", Ke, S(e.menuItem.title || e.menuItem.name), 1)
715
+ ]),
716
+ default: u(() => [
717
+ (s(!0), j(K, null, G(e.menuItem.children, (c) => (s(), p(m, {
718
+ key: c.path,
719
+ "menu-item": c,
720
+ "is-collapse": e.isCollapse,
721
+ depth: e.depth + 1,
722
+ onMenuClick: f[0] || (f[0] = (A) => i("menu-click", A))
723
+ }, null, 8, ["menu-item", "is-collapse", "depth"]))), 128))
724
+ ]),
725
+ _: 1
726
+ }, 8, ["index"])) : (s(), p(k, {
727
+ key: 1,
728
+ index: e.menuItem.path,
729
+ onClick: l
730
+ }, {
731
+ title: u(() => [
732
+ _("span", null, S(e.menuItem.title || e.menuItem.name), 1)
733
+ ]),
734
+ default: u(() => [
735
+ e.menuItem.icon && e.depth === 0 ? (s(), p(x(X), {
736
+ key: 0,
737
+ icon: e.menuItem.icon
738
+ }, null, 8, ["icon"])) : C("", !0)
739
+ ]),
740
+ _: 1
741
+ }, 8, ["index"]));
742
+ };
743
+ }
744
+ }), ce = /* @__PURE__ */ L(Xe, [["__scopeId", "data-v-c83c4ba1"]]), qe = { class: "j-sidebar__logo" }, Ze = { class: "j-sidebar__title" }, Ge = { class: "j-sidebar__menu-wrapper" }, Qe = {
745
+ key: 1,
746
+ class: "j-sidebar__collapsed-menu"
747
+ }, Ye = ["onClick"], et = { class: "j-sidebar__collapsed-item-text" }, tt = { class: "j-sidebar__footer" }, lt = /* @__PURE__ */ O({
748
+ name: "JSidebar",
749
+ __name: "JSidebar",
750
+ props: {
751
+ menus: {},
752
+ activeMenu: { default: "" },
753
+ title: { default: "" },
754
+ collapsedTitle: { default: "" },
755
+ collapsed: { type: Boolean, default: !1 },
756
+ collapsedWidth: { default: 64 },
757
+ expandedWidth: { default: 200 },
758
+ router: { type: Boolean, default: !0 }
759
+ },
760
+ emits: ["update:collapsed", "menu-click"],
761
+ setup(e, { emit: o }) {
762
+ const t = e, i = o, l = te(() => {
763
+ const m = [], v = (k) => {
764
+ for (const c of k)
765
+ c.children && c.children.length > 0 ? v(c.children) : m.push(c);
766
+ };
767
+ return v(t.menus), m;
768
+ }), a = B(t.collapsed);
769
+ ie(() => t.collapsed, (m) => {
770
+ a.value = m;
771
+ });
772
+ const f = () => {
773
+ a.value = !a.value, i("update:collapsed", a.value);
774
+ };
775
+ return (m, v) => {
776
+ const k = b("el-menu");
777
+ return s(), j("div", {
778
+ class: H(["j-sidebar", a.value ? "j-sidebar--collapsed" : "j-sidebar--expanded"]),
779
+ style: ue({ width: a.value ? `${e.collapsedWidth}px` : `${e.expandedWidth}px` })
780
+ }, [
781
+ _("div", qe, [
782
+ W(m.$slots, "logo", { collapsed: a.value }, () => {
783
+ var c;
784
+ return [
785
+ _("h2", Ze, S(a.value ? e.collapsedTitle || ((c = e.title) == null ? void 0 : c.charAt(0)) || "" : e.title), 1)
786
+ ];
787
+ }, !0)
788
+ ]),
789
+ _("div", Ge, [
790
+ a.value ? (s(), j("div", Qe, [
791
+ (s(!0), j(K, null, G(l.value, (c) => (s(), j("div", {
792
+ key: c.path,
793
+ class: H(["j-sidebar__collapsed-item", { "is-active": e.activeMenu === c.path }]),
794
+ onClick: (A) => i("menu-click", c)
795
+ }, [
796
+ c.icon ? (s(), p(x(X), {
797
+ key: 0,
798
+ icon: c.icon,
799
+ size: 20
800
+ }, null, 8, ["icon"])) : C("", !0),
801
+ _("span", et, S(c.title || c.name), 1)
802
+ ], 10, Ye))), 128))
803
+ ])) : (s(), p(k, {
804
+ key: 0,
805
+ "default-active": e.activeMenu,
806
+ class: "j-sidebar__menu",
807
+ router: e.router
808
+ }, {
809
+ default: u(() => [
810
+ (s(!0), j(K, null, G(e.menus, (c) => (s(), p(ce, {
811
+ key: c.path,
812
+ "menu-item": c,
813
+ "is-collapse": !1,
814
+ onMenuClick: v[0] || (v[0] = (A) => i("menu-click", A))
815
+ }, null, 8, ["menu-item"]))), 128))
816
+ ]),
817
+ _: 1
818
+ }, 8, ["default-active", "router"]))
819
+ ]),
820
+ _("div", tt, [
821
+ W(m.$slots, "footer", {
822
+ collapsed: a.value,
823
+ toggle: f
824
+ }, () => [
825
+ _("button", {
826
+ class: H(["j-sidebar__collapse-btn", a.value ? "j-sidebar__collapse-btn--center" : "j-sidebar__collapse-btn--right"]),
827
+ onClick: f
828
+ }, [
829
+ r(x(X), {
830
+ icon: a.value ? "mdi:chevron-right" : "mdi:chevron-left"
831
+ }, null, 8, ["icon"])
832
+ ], 2)
833
+ ], !0)
834
+ ])
835
+ ], 6);
836
+ };
837
+ }
838
+ }), at = /* @__PURE__ */ L(lt, [["__scopeId", "data-v-57993957"]]);
839
+ function le(e, o) {
840
+ return Array.isArray(e) ? e.map((t) => le(t, o)) : e !== null && typeof e == "object" && !(e instanceof Date) ? o(e) : e;
690
841
  }
691
- function Ke(e, s = []) {
842
+ function nt(e, o = []) {
692
843
  return Object.fromEntries(
693
844
  Object.entries(e).map(([t, i]) => {
694
- const a = W(i, (f) => Ke(f, s));
695
- return s.includes(t) ? [t, a] : [t.replace(/([A-Z])/g, "_$1").toLowerCase(), a];
845
+ const l = le(i, (f) => nt(f, o));
846
+ return o.includes(t) ? [t, l] : [t.replace(/([A-Z])/g, "_$1").toLowerCase(), l];
696
847
  })
697
848
  );
698
849
  }
699
- function Xe(e, s = []) {
850
+ function st(e, o = []) {
700
851
  return Object.fromEntries(
701
852
  Object.entries(e).map(([t, i]) => {
702
- const a = W(i, (f) => Xe(f, s));
703
- return s.includes(t) ? [t, a] : [t.replace(/_([a-z])/g, (f, v) => v.toUpperCase()), a];
853
+ const l = le(i, (f) => st(f, o));
854
+ return o.includes(t) ? [t, l] : [t.replace(/_([a-z])/g, (f, m) => m.toUpperCase()), l];
704
855
  })
705
856
  );
706
857
  }
707
- function at(e, s) {
858
+ function vt(e, o) {
708
859
  const t = {};
709
- for (const i of s)
860
+ for (const i of o)
710
861
  i in e && (t[i] = e[i]);
711
862
  return t;
712
863
  }
713
- function st(e, s) {
864
+ function ht(e, o) {
714
865
  const t = { ...e };
715
- for (const i of s)
866
+ for (const i of o)
716
867
  delete t[i];
717
868
  return t;
718
869
  }
719
- function le(e) {
870
+ function oe(e) {
720
871
  if (e === null || typeof e != "object") return e;
721
872
  if (e instanceof Date) return new Date(e.getTime());
722
873
  if (e instanceof RegExp) return new RegExp(e.source, e.flags);
723
- if (Array.isArray(e)) return e.map((t) => le(t));
724
- const s = {};
874
+ if (Array.isArray(e)) return e.map((t) => oe(t));
875
+ const o = {};
725
876
  for (const t of Object.keys(e))
726
- s[t] = le(e[t]);
727
- return s;
877
+ o[t] = oe(e[t]);
878
+ return o;
728
879
  }
729
- function qe(e, s = !1) {
880
+ function ot(e, o = !1) {
730
881
  const t = {};
731
- for (const [i, a] of Object.entries(e))
732
- if (!(a == null || a === ""))
733
- if (s && typeof a == "object" && !Array.isArray(a) && !(a instanceof Date)) {
734
- const n = qe(a, !0);
735
- Object.keys(n).length > 0 && (t[i] = n);
882
+ for (const [i, l] of Object.entries(e))
883
+ if (!(l == null || l === ""))
884
+ if (o && typeof l == "object" && !Array.isArray(l) && !(l instanceof Date)) {
885
+ const a = ot(l, !0);
886
+ Object.keys(a).length > 0 && (t[i] = a);
736
887
  } else
737
- t[i] = a;
888
+ t[i] = l;
738
889
  return t;
739
890
  }
740
- function Ze(e, s = "", t = ".") {
891
+ function it(e, o = "", t = ".") {
741
892
  const i = {};
742
- for (const [a, n] of Object.entries(e)) {
743
- const f = s ? `${s}${t}${a}` : a;
744
- n !== null && typeof n == "object" && !Array.isArray(n) && !(n instanceof Date) ? Object.assign(i, Ze(n, f, t)) : i[f] = n;
893
+ for (const [l, a] of Object.entries(e)) {
894
+ const f = o ? `${o}${t}${l}` : l;
895
+ a !== null && typeof a == "object" && !Array.isArray(a) && !(a instanceof Date) ? Object.assign(i, it(a, f, t)) : i[f] = a;
745
896
  }
746
897
  return i;
747
898
  }
748
- function nt(e, s = ".") {
899
+ function gt(e, o = ".") {
749
900
  const t = {};
750
- for (const [i, a] of Object.entries(e)) {
751
- const n = i.split(s);
901
+ for (const [i, l] of Object.entries(e)) {
902
+ const a = i.split(o);
752
903
  let f = t;
753
- for (let v = 0; v < n.length - 1; v++) {
754
- const h = n[v];
755
- h in f || (f[h] = {}), f = f[h];
904
+ for (let m = 0; m < a.length - 1; m++) {
905
+ const v = a[m];
906
+ v in f || (f[v] = {}), f = f[v];
756
907
  }
757
- f[n[n.length - 1]] = a;
908
+ f[a[a.length - 1]] = l;
758
909
  }
759
910
  return t;
760
911
  }
761
- function ot(e) {
762
- return Object.entries(e).map(([s, t]) => ({
763
- id: s,
912
+ function yt(e) {
913
+ return Object.entries(e).map(([o, t]) => ({
914
+ id: o,
764
915
  label: t,
765
- prop: s
916
+ prop: o
766
917
  }));
767
918
  }
768
- const Ge = [xe, Se, Fe, Je, Pe], Qe = (e) => {
769
- Ge.forEach((s) => {
770
- e.component(s.name ?? s.__name ?? "", s);
919
+ const ut = [Ce, De, X, Oe, We, at, ce], ct = (e) => {
920
+ ut.forEach((o) => {
921
+ e.component(o.name ?? o.__name ?? "", o);
771
922
  });
772
- }, it = { install: Qe };
923
+ }, bt = { install: ct };
773
924
  export {
774
- xe as JButton,
775
- Fe as JIconRender,
776
- Pe as JImportExcel,
777
- Je as JSearchHeader,
778
- Se as JUploadImg,
779
- le as deepClone,
780
- it as default,
781
- qe as filterEmpty,
782
- Ze as flatten,
783
- st as omit,
784
- at as pick,
785
- Xe as toCamelCase,
786
- Ke as toSnakeCase,
787
- ot as toTableColumns,
788
- nt as unflatten
925
+ Ce as JButton,
926
+ X as JIconRender,
927
+ We as JImportExcel,
928
+ Oe as JSearchHeader,
929
+ ce as JSideMenuItem,
930
+ at as JSidebar,
931
+ De as JUploadImg,
932
+ oe as deepClone,
933
+ bt as default,
934
+ ot as filterEmpty,
935
+ it as flatten,
936
+ ht as omit,
937
+ vt as pick,
938
+ st as toCamelCase,
939
+ nt as toSnakeCase,
940
+ yt as toTableColumns,
941
+ gt as unflatten
789
942
  };
790
943
  //# sourceMappingURL=index.js.map