jgy-public-component 0.0.20 → 0.0.22

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,17 +1,17 @@
1
- import { defineComponent as N, openBlock as d, createElementBlock as S, normalizeClass as U, createCommentVNode as C, renderSlot as z, ref as V, watch as ce, resolveComponent as w, createVNode as p, unref as x, withCtx as u, createElementVNode as b, withModifiers as ee, createBlock as y, Fragment as Z, toDisplayString as B, mergeProps as ve, computed as G, onMounted as ge, onBeforeUnmount as ye, normalizeStyle as ae, createTextVNode as D, useModel as be, renderList as Q, mergeModels as se, createSlots as _e } from "vue";
2
- import { ElMessage as M } from "element-plus";
3
- import { Delete as te, Plus as le, Loading as ie, ZoomIn as we, Search as ke, Refresh as $e, ArrowDown as me } from "@element-plus/icons-vue";
4
- import je from "vuedraggable";
5
- import { Icon as Ce } from "@iconify/vue";
6
- import * as q from "xlsx";
7
- import ne from "nprogress";
8
- const xe = ["disabled"], Re = {
1
+ import { defineComponent as ee, openBlock as u, createElementBlock as b, normalizeClass as ue, createCommentVNode as B, renderSlot as te, ref as q, watch as be, createVNode as n, unref as t, withCtx as a, createElementVNode as S, withModifiers as ge, createBlock as C, Fragment as P, toDisplayString as m, mergeProps as yt, computed as j, onMounted as bt, onBeforeUnmount as kt, normalizeStyle as ce, createTextVNode as p, useModel as Se, renderList as G, mergeModels as ye, resolveComponent as de, createSlots as wt, withDirectives as xt, withKeys as $t } from "vue";
2
+ import { ElImage as se, ElIcon as ie, ElUpload as Ce, ElImageViewer as St, ElMessage as H, ElCard as We, ElForm as Ct, ElButton as le, ElDialog as Ke, ElDivider as jt, ElLink as At, ElRow as Le, ElCol as pe, ElTable as ne, ElTableColumn as T, ElSubMenu as It, ElMenuItem as Xe, ElMenu as Ge, ElDropdown as Dt, ElDropdownMenu as Et, ElDropdownItem as Pe, vLoading as qe, ElDescriptions as oe, ElDescriptionsItem as w, ElTag as _e, ElEmpty as Tt } from "element-plus";
3
+ import { Delete as je, Plus as Ae, Loading as Fe, ZoomIn as Mt, Search as Rt, Refresh as Bt, ArrowDown as Ze, Memo as Vt } from "@element-plus/icons-vue";
4
+ import zt from "vuedraggable";
5
+ import { Icon as Jt } from "@iconify/vue";
6
+ import * as re from "xlsx";
7
+ import Ie from "nprogress";
8
+ const Lt = ["disabled"], Pt = {
9
9
  key: 0,
10
10
  class: "j-button__loading-icon"
11
- }, Ie = {
11
+ }, qt = {
12
12
  key: 1,
13
13
  class: "j-button__text"
14
- }, Se = /* @__PURE__ */ N({
14
+ }, Ft = /* @__PURE__ */ ee({
15
15
  __name: "JButton",
16
16
  props: {
17
17
  type: { default: "default" },
@@ -22,13 +22,13 @@ const xe = ["disabled"], Re = {
22
22
  loading: { type: Boolean, default: !1 }
23
23
  },
24
24
  emits: ["click"],
25
- setup(e, { emit: a }) {
26
- const t = e, n = a;
27
- function l(o) {
28
- !t.disabled && !t.loading && n("click", o);
25
+ setup(e, { emit: h }) {
26
+ const s = e, o = h;
27
+ function r(f) {
28
+ !s.disabled && !s.loading && o("click", f);
29
29
  }
30
- return (o, i) => (d(), S("button", {
31
- class: U(["j-button", [
30
+ return (f, v) => (u(), b("button", {
31
+ class: ue(["j-button", [
32
32
  `j-button--${e.type}`,
33
33
  `j-button--${e.size}`,
34
34
  {
@@ -39,29 +39,29 @@ const xe = ["disabled"], Re = {
39
39
  }
40
40
  ]]),
41
41
  disabled: e.disabled || e.loading,
42
- onClick: l
42
+ onClick: r
43
43
  }, [
44
- e.loading ? (d(), S("span", Re)) : C("", !0),
45
- o.$slots.default ? (d(), S("span", Ie, [
46
- z(o.$slots, "default", {}, void 0, !0)
47
- ])) : C("", !0)
48
- ], 10, xe));
44
+ e.loading ? (u(), b("span", Pt)) : B("", !0),
45
+ f.$slots.default ? (u(), b("span", qt, [
46
+ te(f.$slots, "default", {}, void 0, !0)
47
+ ])) : B("", !0)
48
+ ], 10, Lt));
49
49
  }
50
- }), W = (e, a) => {
51
- const t = e.__vccOpts || e;
52
- for (const [n, l] of a)
53
- t[n] = l;
54
- return t;
55
- }, Be = /* @__PURE__ */ W(Se, [["__scopeId", "data-v-22864824"]]), Me = { class: "j-upload-img-container" }, Ae = {
50
+ }), ae = (e, h) => {
51
+ const s = e.__vccOpts || e;
52
+ for (const [o, r] of h)
53
+ s[o] = r;
54
+ return s;
55
+ }, Ot = /* @__PURE__ */ ae(Ft, [["__scopeId", "data-v-22864824"]]), Nt = { class: "j-upload-img-container" }, Ut = {
56
56
  key: 0,
57
57
  class: "images-wrapper"
58
- }, Ee = { class: "image-item" }, Te = ["onClick"], Ve = {
58
+ }, Ht = { class: "image-item" }, Wt = ["onClick"], Kt = {
59
59
  key: 0,
60
60
  class: "image-item single-image-item"
61
- }, Fe = { class: "image-actions" }, Je = {
61
+ }, Xt = { class: "image-actions" }, Gt = {
62
62
  key: 2,
63
63
  class: "upload-tip"
64
- }, De = { key: 0 }, Le = /* @__PURE__ */ N({
64
+ }, Zt = { key: 0 }, Qt = /* @__PURE__ */ ee({
65
65
  name: "JUploadImg",
66
66
  __name: "JUploadImg",
67
67
  props: {
@@ -76,188 +76,185 @@ const xe = ["disabled"], Re = {
76
76
  uploadFn: { type: Function, default: void 0 }
77
77
  },
78
78
  emits: ["update:modelValue", "success", "error"],
79
- setup(e, { emit: a }) {
80
- const t = e, n = a, l = V(""), o = V(!1), i = t.showTip, r = () => {
81
- o.value = !0;
79
+ setup(e, { emit: h }) {
80
+ const s = e, o = h, r = q(""), f = q(!1), v = s.showTip, k = () => {
81
+ f.value = !0;
82
82
  }, c = () => {
83
- l.value = "", n("update:modelValue", ""), M.success("删除成功");
84
- }, h = V([]), _ = V(!1), P = (m) => {
85
- h.value = m.map((f, s) => ({
86
- uid: Date.now() + s,
87
- url: f
83
+ r.value = "", o("update:modelValue", ""), H.success("删除成功");
84
+ }, $ = q([]), I = q(!1), N = (F) => {
85
+ $.value = F.map((R, _) => ({
86
+ uid: Date.now() + _,
87
+ url: R
88
88
  }));
89
89
  };
90
- ce(() => t.modelValue, (m) => {
91
- t.multiple ? Array.isArray(m) && m.length > 0 ? P(m) : h.value = [] : typeof m == "string" ? l.value = m : l.value = "";
90
+ be(() => s.modelValue, (F) => {
91
+ s.multiple ? Array.isArray(F) && F.length > 0 ? N(F) : $.value = [] : typeof F == "string" ? r.value = F : r.value = "";
92
92
  }, { immediate: !0 });
93
- const T = () => {
94
- F();
95
- }, $ = (m) => {
96
- h.value.splice(m, 1), F(), M.success("删除成功");
97
- }, g = async (m) => {
98
- const f = m.raw;
99
- if (!f) {
100
- M.error("文件不存在,请重试");
93
+ const V = () => {
94
+ W();
95
+ }, M = (F) => {
96
+ $.value.splice(F, 1), W(), H.success("删除成功");
97
+ }, E = async (F) => {
98
+ const R = F.raw;
99
+ if (!R) {
100
+ H.error("文件不存在,请重试");
101
101
  return;
102
102
  }
103
- if (f.size > t.maxSize * 1024 * 1024) {
104
- M.error(`图片大小不能超过 ${t.maxSize}MB`);
103
+ if (R.size > s.maxSize * 1024 * 1024) {
104
+ H.error(`图片大小不能超过 ${s.maxSize}MB`);
105
105
  return;
106
106
  }
107
- if (!t.uploadFn) {
108
- M.error("未配置上传函数 (uploadFn)");
107
+ if (!s.uploadFn) {
108
+ H.error("未配置上传函数 (uploadFn)");
109
109
  return;
110
110
  }
111
111
  try {
112
- _.value = !0;
113
- const s = await t.uploadFn(f);
114
- t.multiple ? (h.value.push({ uid: Date.now(), url: s }), F()) : (l.value = s, n("update:modelValue", s)), n("success", s), M.success("上传成功");
115
- } catch (s) {
116
- console.error("上传出错:", s), M.error("上传失败,请重试"), n("error", s);
112
+ I.value = !0;
113
+ const _ = await s.uploadFn(R);
114
+ s.multiple ? ($.value.push({ uid: Date.now(), url: _ }), W()) : (r.value = _, o("update:modelValue", _)), o("success", _), H.success("上传成功");
115
+ } catch (_) {
116
+ console.error("上传出错:", _), H.error("上传失败,请重试"), o("error", _);
117
117
  } finally {
118
- _.value = !1;
118
+ I.value = !1;
119
119
  }
120
- }, F = () => {
121
- const m = h.value.map((f) => f.url);
122
- n("update:modelValue", m);
120
+ }, W = () => {
121
+ const F = $.value.map((R) => R.url);
122
+ o("update:modelValue", F);
123
123
  };
124
- return (m, f) => {
125
- const s = w("el-image"), j = w("el-icon"), R = w("el-upload"), v = w("el-image-viewer");
126
- return d(), S("div", Me, [
127
- e.multiple ? (d(), S("div", Ae, [
128
- p(x(je), {
129
- modelValue: h.value,
130
- "onUpdate:modelValue": f[0] || (f[0] = (E) => h.value = E),
131
- class: "images-list",
132
- "item-key": "uid",
133
- animation: 200,
134
- disabled: e.disabled,
135
- onEnd: T
136
- }, {
137
- item: u(({ element: E, index: k }) => [
138
- b("div", Ee, [
139
- p(s, {
140
- src: E.url,
141
- "preview-src-list": h.value.map((A) => A.url),
142
- "initial-index": k,
143
- fit: "cover",
144
- class: "image-preview",
145
- "preview-teleported": !0,
146
- "hide-on-click-modal": !0
147
- }, null, 8, ["src", "preview-src-list", "initial-index"]),
148
- e.disabled ? C("", !0) : (d(), S("div", {
149
- key: 0,
150
- class: "delete-btn",
151
- onClick: ee((A) => $(k), ["stop"])
152
- }, [
153
- p(j, { class: "icon-delete" }, {
154
- default: u(() => [
155
- p(x(te))
156
- ]),
157
- _: 1
158
- })
159
- ], 8, Te))
160
- ])
161
- ]),
162
- _: 1
163
- }, 8, ["modelValue", "disabled"]),
164
- !e.disabled && (!e.limit || h.value.length < e.limit) ? (d(), y(R, {
165
- key: 0,
166
- class: "image-uploader",
167
- "auto-upload": !1,
168
- "show-file-list": !1,
169
- "on-change": g,
170
- disabled: _.value,
171
- "list-type": "picture-card",
172
- accept: e.accept
173
- }, {
174
- default: u(() => [
175
- _.value ? (d(), y(j, {
176
- key: 1,
177
- class: "uploader-icon is-loading"
178
- }, {
179
- default: u(() => [
180
- p(x(ie))
181
- ]),
182
- _: 1
183
- })) : (d(), y(j, {
184
- key: 0,
185
- class: "uploader-icon"
186
- }, {
187
- default: u(() => [
188
- p(x(le))
189
- ]),
190
- _: 1
191
- }))
192
- ]),
193
- _: 1
194
- }, 8, ["disabled", "accept"])) : C("", !0)
195
- ])) : (d(), S(Z, { key: 1 }, [
196
- l.value ? (d(), S("div", Ve, [
197
- p(s, {
198
- src: l.value,
199
- fit: "cover",
200
- class: "image-preview"
201
- }, null, 8, ["src"]),
202
- b("div", Fe, [
203
- p(j, {
204
- class: "action-icon",
205
- onClick: ee(r, ["stop"])
206
- }, {
207
- default: u(() => [
208
- p(x(we))
209
- ]),
210
- _: 1
211
- }),
212
- e.disabled ? C("", !0) : (d(), y(j, {
124
+ return (F, R) => (u(), b("div", Nt, [
125
+ e.multiple ? (u(), b("div", Ut, [
126
+ n(t(zt), {
127
+ modelValue: $.value,
128
+ "onUpdate:modelValue": R[0] || (R[0] = (_) => $.value = _),
129
+ class: "images-list",
130
+ "item-key": "uid",
131
+ animation: 200,
132
+ disabled: e.disabled,
133
+ onEnd: V
134
+ }, {
135
+ item: a(({ element: _, index: D }) => [
136
+ S("div", Ht, [
137
+ n(t(se), {
138
+ src: _.url,
139
+ "preview-src-list": $.value.map((z) => z.url),
140
+ "initial-index": D,
141
+ fit: "cover",
142
+ class: "image-preview",
143
+ "preview-teleported": !0,
144
+ "hide-on-click-modal": !0
145
+ }, null, 8, ["src", "preview-src-list", "initial-index"]),
146
+ e.disabled ? B("", !0) : (u(), b("div", {
213
147
  key: 0,
214
- class: "action-icon",
215
- onClick: ee(c, ["stop"])
216
- }, {
217
- default: u(() => [
218
- p(x(te))
219
- ]),
220
- _: 1
221
- }))
148
+ class: "delete-btn",
149
+ onClick: ge((z) => M(D), ["stop"])
150
+ }, [
151
+ n(t(ie), { class: "icon-delete" }, {
152
+ default: a(() => [
153
+ n(t(je))
154
+ ]),
155
+ _: 1
156
+ })
157
+ ], 8, Wt))
222
158
  ])
223
- ])) : (d(), y(R, {
224
- key: 1,
225
- class: "image-uploader",
226
- "auto-upload": !1,
227
- "show-file-list": !1,
228
- "on-change": g,
229
- disabled: e.disabled || _.value,
230
- accept: e.accept,
231
- "list-type": "picture-card"
232
- }, {
233
- default: u(() => [
234
- p(j, { class: "uploader-icon" }, {
235
- default: u(() => [
236
- _.value ? (d(), y(x(ie), {
237
- key: 1,
238
- class: "is-loading"
239
- })) : (d(), y(x(le), { key: 0 }))
240
- ]),
241
- _: 1
242
- })
243
- ]),
244
- _: 1
245
- }, 8, ["disabled", "accept"])),
246
- o.value ? (d(), y(v, {
247
- key: 2,
248
- "url-list": [l.value],
249
- teleported: !0,
250
- onClose: f[1] || (f[1] = (E) => o.value = !1)
251
- }, null, 8, ["url-list"])) : C("", !0)
252
- ], 64)),
253
- x(i) ? (d(), S("div", Je, [
254
- b("span", null, B(e.tip), 1),
255
- e.multiple && e.limit ? (d(), S("span", De, " (最多 " + B(e.limit) + " 张)", 1)) : C("", !0)
256
- ])) : C("", !0)
257
- ]);
258
- };
159
+ ]),
160
+ _: 1
161
+ }, 8, ["modelValue", "disabled"]),
162
+ !e.disabled && (!e.limit || $.value.length < e.limit) ? (u(), C(t(Ce), {
163
+ key: 0,
164
+ class: "image-uploader",
165
+ "auto-upload": !1,
166
+ "show-file-list": !1,
167
+ "on-change": E,
168
+ disabled: I.value,
169
+ "list-type": "picture-card",
170
+ accept: e.accept
171
+ }, {
172
+ default: a(() => [
173
+ I.value ? (u(), C(t(ie), {
174
+ key: 1,
175
+ class: "uploader-icon is-loading"
176
+ }, {
177
+ default: a(() => [
178
+ n(t(Fe))
179
+ ]),
180
+ _: 1
181
+ })) : (u(), C(t(ie), {
182
+ key: 0,
183
+ class: "uploader-icon"
184
+ }, {
185
+ default: a(() => [
186
+ n(t(Ae))
187
+ ]),
188
+ _: 1
189
+ }))
190
+ ]),
191
+ _: 1
192
+ }, 8, ["disabled", "accept"])) : B("", !0)
193
+ ])) : (u(), b(P, { key: 1 }, [
194
+ r.value ? (u(), b("div", Kt, [
195
+ n(t(se), {
196
+ src: r.value,
197
+ fit: "cover",
198
+ class: "image-preview"
199
+ }, null, 8, ["src"]),
200
+ S("div", Xt, [
201
+ n(t(ie), {
202
+ class: "action-icon",
203
+ onClick: ge(k, ["stop"])
204
+ }, {
205
+ default: a(() => [
206
+ n(t(Mt))
207
+ ]),
208
+ _: 1
209
+ }),
210
+ e.disabled ? B("", !0) : (u(), C(t(ie), {
211
+ key: 0,
212
+ class: "action-icon",
213
+ onClick: ge(c, ["stop"])
214
+ }, {
215
+ default: a(() => [
216
+ n(t(je))
217
+ ]),
218
+ _: 1
219
+ }))
220
+ ])
221
+ ])) : (u(), C(t(Ce), {
222
+ key: 1,
223
+ class: "image-uploader",
224
+ "auto-upload": !1,
225
+ "show-file-list": !1,
226
+ "on-change": E,
227
+ disabled: e.disabled || I.value,
228
+ accept: e.accept,
229
+ "list-type": "picture-card"
230
+ }, {
231
+ default: a(() => [
232
+ n(t(ie), { class: "uploader-icon" }, {
233
+ default: a(() => [
234
+ I.value ? (u(), C(t(Fe), {
235
+ key: 1,
236
+ class: "is-loading"
237
+ })) : (u(), C(t(Ae), { key: 0 }))
238
+ ]),
239
+ _: 1
240
+ })
241
+ ]),
242
+ _: 1
243
+ }, 8, ["disabled", "accept"])),
244
+ f.value ? (u(), C(t(St), {
245
+ key: 2,
246
+ "url-list": [r.value],
247
+ teleported: !0,
248
+ onClose: R[1] || (R[1] = (_) => f.value = !1)
249
+ }, null, 8, ["url-list"])) : B("", !0)
250
+ ], 64)),
251
+ t(v) ? (u(), b("div", Gt, [
252
+ S("span", null, m(e.tip), 1),
253
+ e.multiple && e.limit ? (u(), b("span", Zt, " (最多 " + m(e.limit) + " 张)", 1)) : B("", !0)
254
+ ])) : B("", !0)
255
+ ]));
259
256
  }
260
- }), Pe = /* @__PURE__ */ W(Le, [["__scopeId", "data-v-94fad0af"]]), X = /* @__PURE__ */ N({
257
+ }), Yt = /* @__PURE__ */ ae(Qt, [["__scopeId", "data-v-7dc4f798"]]), ve = /* @__PURE__ */ ee({
261
258
  name: "JIconRender",
262
259
  __name: "JIconRender",
263
260
  props: {
@@ -265,14 +262,14 @@ const xe = ["disabled"], Re = {
265
262
  size: { default: 24 }
266
263
  },
267
264
  setup(e) {
268
- return (a, t) => e.icon ? (d(), y(x(Ce), ve({
265
+ return (h, s) => e.icon ? (u(), C(t(Jt), yt({
269
266
  key: 0,
270
267
  icon: e.icon,
271
268
  width: e.size,
272
269
  height: e.size
273
- }, a.$attrs), null, 16, ["icon", "width", "height"])) : C("", !0);
270
+ }, h.$attrs), null, 16, ["icon", "width", "height"])) : B("", !0);
274
271
  }
275
- }), ze = { class: "action-left" }, Oe = /* @__PURE__ */ N({
272
+ }), el = { class: "action-left" }, tl = /* @__PURE__ */ ee({
276
273
  name: "JSearchHeader",
277
274
  __name: "JSearchHeader",
278
275
  props: {
@@ -285,145 +282,142 @@ const xe = ["disabled"], Re = {
285
282
  showReset: { type: Boolean, default: !0 }
286
283
  },
287
284
  emits: ["search", "reset", "add", "batchDelete"],
288
- setup(e, { emit: a }) {
289
- const t = e, n = a, l = V(), o = V(!1), i = V(!1), r = V(0), c = V(0), h = G(() => r.value > t.defaultVisible), _ = () => {
290
- if (!l.value) return;
291
- const $ = Array.from(l.value.children);
292
- r.value = $.length;
293
- const g = $[t.defaultVisible - 1];
294
- if (g && l.value) {
295
- const F = l.value.getBoundingClientRect(), m = g.getBoundingClientRect();
296
- c.value = m.bottom - F.top;
285
+ setup(e, { emit: h }) {
286
+ const s = e, o = h, r = q(), f = q(!1), v = q(!1), k = q(0), c = q(0), $ = j(() => k.value > s.defaultVisible), I = () => {
287
+ if (!r.value) return;
288
+ const M = Array.from(r.value.children);
289
+ k.value = M.length;
290
+ const E = M[s.defaultVisible - 1];
291
+ if (E && r.value) {
292
+ const W = r.value.getBoundingClientRect(), F = E.getBoundingClientRect();
293
+ c.value = F.bottom - W.top;
297
294
  }
298
- }, P = () => {
299
- const $ = l.value;
300
- if ($)
301
- if (o.value)
302
- _(), o.value = !1, $.style.maxHeight = $.scrollHeight + "px", $.offsetHeight, $.style.maxHeight = c.value + "px";
295
+ }, N = () => {
296
+ const M = r.value;
297
+ if (M)
298
+ if (f.value)
299
+ I(), f.value = !1, M.style.maxHeight = M.scrollHeight + "px", M.offsetHeight, M.style.maxHeight = c.value + "px";
303
300
  else {
304
- o.value = !0, $.style.maxHeight = $.scrollHeight + "px";
305
- const g = () => {
306
- $.style.maxHeight = "none", $.removeEventListener("transitionend", g);
301
+ f.value = !0, M.style.maxHeight = M.scrollHeight + "px";
302
+ const E = () => {
303
+ M.style.maxHeight = "none", M.removeEventListener("transitionend", E);
307
304
  };
308
- $.addEventListener("transitionend", g);
305
+ M.addEventListener("transitionend", E);
309
306
  }
310
307
  };
311
- let T = null;
312
- return ge(() => {
313
- _(), h.value && l.value && (l.value.style.maxHeight = c.value + "px"), requestAnimationFrame(() => {
308
+ let V = null;
309
+ return bt(() => {
310
+ I(), $.value && r.value && (r.value.style.maxHeight = c.value + "px"), requestAnimationFrame(() => {
314
311
  requestAnimationFrame(() => {
315
- i.value = !0;
312
+ v.value = !0;
316
313
  });
317
- }), l.value && (T = new MutationObserver(() => {
318
- _(), h.value && !o.value && l.value && (l.value.style.maxHeight = c.value + "px");
319
- }), T.observe(l.value, { childList: !0 }));
320
- }), ye(() => {
321
- T == null || T.disconnect();
322
- }), ($, g) => {
323
- const F = w("el-form"), m = w("el-button"), f = w("el-icon"), s = w("el-card");
324
- return d(), y(s, {
325
- shadow: "never",
326
- class: "j-search-header-card"
327
- }, {
328
- default: u(() => [
329
- p(F, {
330
- inline: "",
331
- class: "search-form"
332
- }, {
333
- default: u(() => [
334
- b("div", {
335
- ref_key: "formItemsRef",
336
- ref: l,
337
- class: U(["form-items-wrapper", { "is-animated": i.value }])
338
- }, [
339
- z($.$slots, "default", {}, void 0, !0)
340
- ], 2)
341
- ]),
342
- _: 3
343
- }),
344
- b("div", {
345
- class: "action-bar",
346
- style: ae({ marginTop: o.value ? "0px" : "10px" })
347
- }, [
348
- b("div", ze, [
349
- e.showAdd ? (d(), y(m, {
350
- key: 0,
351
- type: "primary",
352
- icon: x(le),
353
- onClick: g[0] || (g[0] = (j) => n("add"))
354
- }, {
355
- default: u(() => [
356
- D(B(e.addText), 1)
357
- ]),
358
- _: 1
359
- }, 8, ["icon"])) : C("", !0),
360
- e.showBatchDelete ? (d(), y(m, {
361
- key: 1,
362
- type: "danger",
363
- icon: x(te),
364
- disabled: e.selectedCount === 0,
365
- onClick: g[1] || (g[1] = (j) => n("batchDelete"))
366
- }, {
367
- default: u(() => [
368
- D(" 批量删除" + B(e.selectedCount ? `(${e.selectedCount})` : ""), 1)
369
- ]),
370
- _: 1
371
- }, 8, ["icon", "disabled"])) : C("", !0),
372
- e.showSearch ? (d(), y(m, {
373
- key: 2,
374
- type: "primary",
375
- icon: x(ke),
376
- onClick: g[2] || (g[2] = (j) => n("search"))
377
- }, {
378
- default: u(() => [...g[4] || (g[4] = [
379
- D("搜索", -1)
380
- ])]),
381
- _: 1
382
- }, 8, ["icon"])) : C("", !0),
383
- e.showReset ? (d(), y(m, {
384
- key: 3,
385
- icon: x($e),
386
- onClick: g[3] || (g[3] = (j) => n("reset"))
387
- }, {
388
- default: u(() => [...g[5] || (g[5] = [
389
- D("重置", -1)
390
- ])]),
391
- _: 1
392
- }, 8, ["icon"])) : C("", !0),
393
- z($.$slots, "actions", {}, void 0, !0)
394
- ]),
395
- h.value ? (d(), y(m, {
314
+ }), r.value && (V = new MutationObserver(() => {
315
+ I(), $.value && !f.value && r.value && (r.value.style.maxHeight = c.value + "px");
316
+ }), V.observe(r.value, { childList: !0 }));
317
+ }), kt(() => {
318
+ V == null || V.disconnect();
319
+ }), (M, E) => (u(), C(t(We), {
320
+ shadow: "never",
321
+ class: "j-search-header-card"
322
+ }, {
323
+ default: a(() => [
324
+ n(t(Ct), {
325
+ inline: "",
326
+ class: "search-form"
327
+ }, {
328
+ default: a(() => [
329
+ S("div", {
330
+ ref_key: "formItemsRef",
331
+ ref: r,
332
+ class: ue(["form-items-wrapper", { "is-animated": v.value }])
333
+ }, [
334
+ te(M.$slots, "default", {}, void 0, !0)
335
+ ], 2)
336
+ ]),
337
+ _: 3
338
+ }),
339
+ S("div", {
340
+ class: "action-bar",
341
+ style: ce({ marginTop: f.value ? "0px" : "10px" })
342
+ }, [
343
+ S("div", el, [
344
+ e.showAdd ? (u(), C(t(le), {
396
345
  key: 0,
397
- link: "",
398
346
  type: "primary",
399
- onClick: P
347
+ icon: t(Ae),
348
+ onClick: E[0] || (E[0] = (W) => o("add"))
400
349
  }, {
401
- default: u(() => [
402
- D(B(o.value ? "收起" : "展开") + " ", 1),
403
- p(f, {
404
- class: U(["toggle-icon", { "is-expanded": o.value }])
405
- }, {
406
- default: u(() => [
407
- p(x(me))
408
- ]),
409
- _: 1
410
- }, 8, ["class"])
350
+ default: a(() => [
351
+ p(m(e.addText), 1)
411
352
  ]),
412
353
  _: 1
413
- })) : C("", !0)
414
- ], 4)
415
- ]),
416
- _: 3
417
- });
418
- };
354
+ }, 8, ["icon"])) : B("", !0),
355
+ e.showBatchDelete ? (u(), C(t(le), {
356
+ key: 1,
357
+ type: "danger",
358
+ icon: t(je),
359
+ disabled: e.selectedCount === 0,
360
+ onClick: E[1] || (E[1] = (W) => o("batchDelete"))
361
+ }, {
362
+ default: a(() => [
363
+ p(" 批量删除" + m(e.selectedCount ? `(${e.selectedCount})` : ""), 1)
364
+ ]),
365
+ _: 1
366
+ }, 8, ["icon", "disabled"])) : B("", !0),
367
+ e.showSearch ? (u(), C(t(le), {
368
+ key: 2,
369
+ type: "primary",
370
+ icon: t(Rt),
371
+ onClick: E[2] || (E[2] = (W) => o("search"))
372
+ }, {
373
+ default: a(() => [...E[4] || (E[4] = [
374
+ p("搜索", -1)
375
+ ])]),
376
+ _: 1
377
+ }, 8, ["icon"])) : B("", !0),
378
+ e.showReset ? (u(), C(t(le), {
379
+ key: 3,
380
+ icon: t(Bt),
381
+ onClick: E[3] || (E[3] = (W) => o("reset"))
382
+ }, {
383
+ default: a(() => [...E[5] || (E[5] = [
384
+ p("重置", -1)
385
+ ])]),
386
+ _: 1
387
+ }, 8, ["icon"])) : B("", !0),
388
+ te(M.$slots, "actions", {}, void 0, !0)
389
+ ]),
390
+ $.value ? (u(), C(t(le), {
391
+ key: 0,
392
+ link: "",
393
+ type: "primary",
394
+ onClick: N
395
+ }, {
396
+ default: a(() => [
397
+ p(m(f.value ? "收起" : "展开") + " ", 1),
398
+ n(t(ie), {
399
+ class: ue(["toggle-icon", { "is-expanded": f.value }])
400
+ }, {
401
+ default: a(() => [
402
+ n(t(Ze))
403
+ ]),
404
+ _: 1
405
+ }, 8, ["class"])
406
+ ]),
407
+ _: 1
408
+ })) : B("", !0)
409
+ ], 4)
410
+ ]),
411
+ _: 3
412
+ }));
419
413
  }
420
- }), He = /* @__PURE__ */ W(Oe, [["__scopeId", "data-v-d3f83c3f"]]), Ne = { class: "j-import-upload-row" }, Ue = { class: "j-import-stat-num" }, We = { class: "j-import-stat-num" }, qe = { class: "j-import-stat-num" }, Ke = {
414
+ }), ll = /* @__PURE__ */ ae(tl, [["__scopeId", "data-v-c1f4bf4c"]]), al = { class: "j-import-upload-row" }, nl = { class: "j-import-stat-num" }, sl = { class: "j-import-stat-num" }, il = { class: "j-import-stat-num" }, ol = {
421
415
  key: 0,
422
416
  class: "j-import-status-fail"
423
- }, Xe = { key: 1 }, Ze = /* @__PURE__ */ N({
417
+ }, ul = { key: 1 }, rl = /* @__PURE__ */ ee({
424
418
  name: "JImportExcel",
425
419
  __name: "JImportExcel",
426
- props: /* @__PURE__ */ se({
420
+ props: /* @__PURE__ */ ye({
427
421
  getFieldListApi: {},
428
422
  importApi: {},
429
423
  excludeFields: { default: () => ["id", "ctime", "mtime"] },
@@ -432,266 +426,263 @@ const xe = ["disabled"], Re = {
432
426
  modelValue: { type: Boolean, default: !1 },
433
427
  modelModifiers: {}
434
428
  }),
435
- emits: /* @__PURE__ */ se(["success"], ["update:modelValue"]),
436
- setup(e, { emit: a }) {
437
- const t = e, n = a, l = be(e, "modelValue"), o = V(!1), i = V({}), r = V([]), c = V({ total: 0, success: 0, fail: 0 }), h = {
429
+ emits: /* @__PURE__ */ ye(["success"], ["update:modelValue"]),
430
+ setup(e, { emit: h }) {
431
+ const s = e, o = h, r = Se(e, "modelValue"), f = q(!1), v = q({}), k = q([]), c = q({ total: 0, success: 0, fail: 0 }), $ = {
438
432
  0: "待创建",
439
433
  1: "创建成功",
440
434
  2: "创建中",
441
435
  [-1]: "创建失败"
442
- }, _ = G(() => Object.entries(i.value).filter(([f]) => !t.excludeFields.includes(f)).map(([f, s]) => ({ id: f, label: s, prop: f }))), P = async () => {
436
+ }, I = j(() => Object.entries(v.value).filter(([R]) => !s.excludeFields.includes(R)).map(([R, _]) => ({ id: R, label: _, prop: R }))), N = async () => {
443
437
  try {
444
- const f = await t.getFieldListApi();
445
- i.value = f.data.tableFieldsInfo ?? {};
438
+ const R = await s.getFieldListApi();
439
+ v.value = R.data.tableFieldsInfo ?? {};
446
440
  } catch {
447
- M.error("获取字段列表失败");
441
+ H.error("获取字段列表失败");
448
442
  }
449
- }, T = (f) => {
450
- const s = f.raw;
451
- if (!s) return;
443
+ }, V = (R) => {
444
+ const _ = R.raw;
445
+ if (!_) return;
452
446
  if (![
453
447
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
454
448
  "application/vnd.ms-excel"
455
- ].includes(s.type) && !s.name.match(/\.xlsx?$/i)) {
456
- M.warning("请上传 .xlsx 或 .xls 格式文件");
449
+ ].includes(_.type) && !_.name.match(/\.xlsx?$/i)) {
450
+ H.warning("请上传 .xlsx 或 .xls 格式文件");
457
451
  return;
458
452
  }
459
- const R = new FileReader();
460
- R.onload = (v) => {
453
+ const z = new FileReader();
454
+ z.onload = (y) => {
461
455
  try {
462
- const E = q.read(v.target.result, { type: "binary" }), k = E.SheetNames[0], A = E.Sheets[k], O = q.utils.sheet_to_json(A, {
456
+ const K = re.read(y.target.result, { type: "binary" }), L = K.SheetNames[0], O = K.Sheets[L], x = re.utils.sheet_to_json(O, {
463
457
  header: 1,
464
458
  defval: ""
465
- }).slice(1).filter((H) => H.some((I) => I !== ""));
466
- if (!O.length) {
467
- M.warning("文件内容为空");
459
+ }).slice(1).filter((Z) => Z.some((Q) => Q !== ""));
460
+ if (!x.length) {
461
+ H.warning("文件内容为空");
468
462
  return;
469
463
  }
470
- const L = O.map((H) => {
471
- const I = { _status: 0, _error: "" };
472
- return _.value.forEach((K, Y) => {
473
- I[K.prop] = H[Y] !== void 0 ? H[Y] : "";
474
- }), I;
464
+ const J = x.map((Z) => {
465
+ const Q = { _status: 0, _error: "" };
466
+ return I.value.forEach((me, he) => {
467
+ Q[me.prop] = Z[he] !== void 0 ? Z[he] : "";
468
+ }), Q;
475
469
  });
476
- r.value = L, c.value = { total: L.length, success: 0, fail: 0 };
470
+ k.value = J, c.value = { total: J.length, success: 0, fail: 0 };
477
471
  } catch {
478
- M.error("解析文件失败,请检查文件格式");
472
+ H.error("解析文件失败,请检查文件格式");
479
473
  }
480
- }, R.readAsBinaryString(s);
481
- }, $ = (f) => {
482
- r.value.splice(f, 1), c.value.total = r.value.length;
483
- }, g = async () => {
484
- const f = r.value.filter((s) => s._status === 0).map(({ _status: s, _error: j, ...R }) => R);
485
- if (!f.length) {
486
- M.warning("没有可导入的数据");
474
+ }, z.readAsBinaryString(_);
475
+ }, M = (R) => {
476
+ k.value.splice(R, 1), c.value.total = k.value.length;
477
+ }, E = async () => {
478
+ const R = k.value.filter((_) => _._status === 0).map(({ _status: _, _error: D, ...z }) => z);
479
+ if (!R.length) {
480
+ H.warning("没有可导入的数据");
487
481
  return;
488
482
  }
489
- o.value = !0;
483
+ f.value = !0;
490
484
  try {
491
- const s = await t.importApi(f);
492
- s.code === 1 ? (r.value.forEach((j) => {
493
- j._status === 0 && (j._status = 1);
494
- }), c.value.success = r.value.filter((j) => j._status === 1).length, M.success("导入成功"), n("success")) : M.error(s.msg || "导入失败");
485
+ const _ = await s.importApi(R);
486
+ _.code === 1 ? (k.value.forEach((D) => {
487
+ D._status === 0 && (D._status = 1);
488
+ }), c.value.success = k.value.filter((D) => D._status === 1).length, H.success("导入成功"), o("success")) : H.error(_.msg || "导入失败");
495
489
  } catch {
496
- M.error("导入失败,请重试");
490
+ H.error("导入失败,请重试");
497
491
  } finally {
498
- o.value = !1;
492
+ f.value = !1;
499
493
  }
500
- }, F = () => {
494
+ }, W = () => {
501
495
  try {
502
- const f = q.utils.book_new(), s = _.value.map((v) => v.label), j = {};
503
- s.forEach((v) => j[v] = "");
504
- const R = q.utils.json_to_sheet([j]);
505
- q.utils.book_append_sheet(f, R, "模板"), q.writeFile(f, "导入模板.xlsx");
496
+ const R = re.utils.book_new(), _ = I.value.map((y) => y.label), D = {};
497
+ _.forEach((y) => D[y] = "");
498
+ const z = re.utils.json_to_sheet([D]);
499
+ re.utils.book_append_sheet(R, z, "模板"), re.writeFile(R, "导入模板.xlsx");
506
500
  } catch {
507
- M.error("模板下载失败");
501
+ H.error("模板下载失败");
508
502
  }
509
- }, m = () => {
510
- o.value || (l.value = !1, r.value = [], c.value = { total: 0, success: 0, fail: 0 });
503
+ }, F = () => {
504
+ f.value || (r.value = !1, k.value = [], c.value = { total: 0, success: 0, fail: 0 });
511
505
  };
512
- return (f, s) => {
513
- const j = w("el-divider"), R = w("el-button"), v = w("el-upload"), E = w("el-link"), k = w("el-card"), A = w("el-col"), J = w("el-row"), O = w("el-table-column"), L = w("el-table"), H = w("el-dialog");
514
- return d(), y(H, {
515
- modelValue: l.value,
516
- "onUpdate:modelValue": s[0] || (s[0] = (I) => l.value = I),
517
- title: t.title,
518
- width: "900px",
519
- "close-on-click-modal": !1,
520
- onOpen: P,
521
- onClose: m
522
- }, {
523
- footer: u(() => [
524
- p(R, { onClick: m }, {
525
- default: u(() => [...s[9] || (s[9] = [
526
- D("关闭", -1)
527
- ])]),
528
- _: 1
529
- })
530
- ]),
531
- default: u(() => [
532
- p(k, {
533
- shadow: "never",
534
- class: "j-import-upload-card"
535
- }, {
536
- default: u(() => [
537
- s[3] || (s[3] = b("div", { class: "j-import-upload-card-title" }, "导入 EXCEL", -1)),
538
- p(j, { style: { margin: "10px 0" } }),
539
- b("div", Ne, [
540
- p(v, {
541
- accept: ".xlsx,.xls",
542
- "auto-upload": !1,
543
- "show-file-list": !1,
544
- "on-change": T
545
- }, {
546
- default: u(() => [
547
- p(R, { size: "small" }, {
548
- default: u(() => [...s[1] || (s[1] = [
549
- D("点击上传", -1)
550
- ])]),
551
- _: 1
552
- })
553
- ]),
554
- _: 1
555
- }),
556
- _.value.length ? (d(), y(E, {
557
- key: 0,
558
- type: "primary",
559
- class: "j-import-no-wrap",
560
- onClick: F
561
- }, {
562
- default: u(() => [...s[2] || (s[2] = [
563
- D(" 下载导入模板.xlsx ", -1)
564
- ])]),
565
- _: 1
566
- })) : C("", !0)
567
- ])
568
- ]),
569
- _: 1
570
- }),
571
- p(J, {
572
- class: "j-import-stats-row",
573
- gutter: 20,
574
- align: "middle"
575
- }, {
576
- default: u(() => [
577
- p(A, { span: 18 }, {
578
- default: u(() => [
579
- p(J, { class: "j-import-stats-cols" }, {
580
- default: u(() => [
581
- p(A, {
582
- span: 4,
583
- class: "j-import-stat-item"
584
- }, {
585
- default: u(() => [
586
- b("div", Ue, B(c.value.total), 1),
587
- s[4] || (s[4] = b("div", { class: "j-import-stat-label" }, "导入数量", -1))
588
- ]),
589
- _: 1
590
- }),
591
- p(A, {
592
- span: 4,
593
- class: "j-import-stat-item"
594
- }, {
595
- default: u(() => [
596
- b("div", We, B(c.value.fail), 1),
597
- s[5] || (s[5] = b("div", { class: "j-import-stat-label" }, "失败数量", -1))
598
- ]),
599
- _: 1
600
- }),
601
- p(A, {
602
- span: 4,
603
- class: "j-import-stat-item"
604
- }, {
605
- default: u(() => [
606
- b("div", qe, B(c.value.success), 1),
607
- s[6] || (s[6] = b("div", { class: "j-import-stat-label" }, "成功数量", -1))
608
- ]),
609
- _: 1
610
- })
611
- ]),
612
- _: 1
613
- })
614
- ]),
615
- _: 1
616
- }),
617
- p(A, {
618
- span: 6,
619
- class: "j-import-confirm-col"
506
+ return (R, _) => (u(), C(t(Ke), {
507
+ modelValue: r.value,
508
+ "onUpdate:modelValue": _[0] || (_[0] = (D) => r.value = D),
509
+ title: s.title,
510
+ width: "900px",
511
+ "close-on-click-modal": !1,
512
+ onOpen: N,
513
+ onClose: F
514
+ }, {
515
+ footer: a(() => [
516
+ n(t(le), { onClick: F }, {
517
+ default: a(() => [..._[9] || (_[9] = [
518
+ p("关闭", -1)
519
+ ])]),
520
+ _: 1
521
+ })
522
+ ]),
523
+ default: a(() => [
524
+ n(t(We), {
525
+ shadow: "never",
526
+ class: "j-import-upload-card"
527
+ }, {
528
+ default: a(() => [
529
+ _[3] || (_[3] = S("div", { class: "j-import-upload-card-title" }, "导入 EXCEL", -1)),
530
+ n(t(jt), { style: { margin: "10px 0" } }),
531
+ S("div", al, [
532
+ n(t(Ce), {
533
+ accept: ".xlsx,.xls",
534
+ "auto-upload": !1,
535
+ "show-file-list": !1,
536
+ "on-change": V
620
537
  }, {
621
- default: u(() => [
622
- p(R, {
623
- type: "primary",
624
- size: "small",
625
- loading: o.value,
626
- disabled: !r.value.length,
627
- onClick: g
628
- }, {
629
- default: u(() => [...s[7] || (s[7] = [
630
- D(" 确认导入 ", -1)
538
+ default: a(() => [
539
+ n(t(le), { size: "small" }, {
540
+ default: a(() => [..._[1] || (_[1] = [
541
+ p("点击上传", -1)
631
542
  ])]),
632
543
  _: 1
633
- }, 8, ["loading", "disabled"])
634
- ]),
635
- _: 1
636
- })
637
- ]),
638
- _: 1
639
- }),
640
- p(L, {
641
- data: r.value,
642
- border: "",
643
- size: "small",
644
- "max-height": "360",
645
- class: "j-import-data-table"
646
- }, {
647
- default: u(() => [
648
- (d(!0), S(Z, null, Q(_.value, (I) => (d(), y(O, {
649
- key: I.prop,
650
- prop: I.prop,
651
- label: I.label,
652
- "min-width": 120,
653
- "show-overflow-tooltip": ""
654
- }, null, 8, ["prop", "label"]))), 128)),
655
- p(O, {
656
- label: "状态",
657
- width: "110",
658
- align: "center",
659
- fixed: "right"
660
- }, {
661
- default: u(({ row: I }) => [
662
- I._status === -1 ? (d(), S("span", Ke, B(I._error || "创建失败"), 1)) : (d(), S("span", Xe, B(h[I._status]), 1))
544
+ })
663
545
  ]),
664
546
  _: 1
665
547
  }),
666
- p(O, {
667
- label: "操作",
668
- width: "80",
669
- align: "center",
670
- fixed: "right"
548
+ I.value.length ? (u(), C(t(At), {
549
+ key: 0,
550
+ type: "primary",
551
+ class: "j-import-no-wrap",
552
+ onClick: W
671
553
  }, {
672
- default: u(({ $index: I, row: K }) => [
673
- K._status === 0 ? (d(), y(R, {
674
- key: 0,
675
- size: "small",
676
- onClick: (Y) => $(I)
677
- }, {
678
- default: u(() => [...s[8] || (s[8] = [
679
- D(" 删除 ", -1)
680
- ])]),
681
- _: 1
682
- }, 8, ["onClick"])) : C("", !0)
683
- ]),
554
+ default: a(() => [..._[2] || (_[2] = [
555
+ p(" 下载导入模板.xlsx ", -1)
556
+ ])]),
684
557
  _: 1
685
- })
686
- ]),
687
- _: 1
688
- }, 8, ["data"])
689
- ]),
690
- _: 1
691
- }, 8, ["modelValue", "title"]);
692
- };
558
+ })) : B("", !0)
559
+ ])
560
+ ]),
561
+ _: 1
562
+ }),
563
+ n(t(Le), {
564
+ class: "j-import-stats-row",
565
+ gutter: 20,
566
+ align: "middle"
567
+ }, {
568
+ default: a(() => [
569
+ n(t(pe), { span: 18 }, {
570
+ default: a(() => [
571
+ n(t(Le), { class: "j-import-stats-cols" }, {
572
+ default: a(() => [
573
+ n(t(pe), {
574
+ span: 4,
575
+ class: "j-import-stat-item"
576
+ }, {
577
+ default: a(() => [
578
+ S("div", nl, m(c.value.total), 1),
579
+ _[4] || (_[4] = S("div", { class: "j-import-stat-label" }, "导入数量", -1))
580
+ ]),
581
+ _: 1
582
+ }),
583
+ n(t(pe), {
584
+ span: 4,
585
+ class: "j-import-stat-item"
586
+ }, {
587
+ default: a(() => [
588
+ S("div", sl, m(c.value.fail), 1),
589
+ _[5] || (_[5] = S("div", { class: "j-import-stat-label" }, "失败数量", -1))
590
+ ]),
591
+ _: 1
592
+ }),
593
+ n(t(pe), {
594
+ span: 4,
595
+ class: "j-import-stat-item"
596
+ }, {
597
+ default: a(() => [
598
+ S("div", il, m(c.value.success), 1),
599
+ _[6] || (_[6] = S("div", { class: "j-import-stat-label" }, "成功数量", -1))
600
+ ]),
601
+ _: 1
602
+ })
603
+ ]),
604
+ _: 1
605
+ })
606
+ ]),
607
+ _: 1
608
+ }),
609
+ n(t(pe), {
610
+ span: 6,
611
+ class: "j-import-confirm-col"
612
+ }, {
613
+ default: a(() => [
614
+ n(t(le), {
615
+ type: "primary",
616
+ size: "small",
617
+ loading: f.value,
618
+ disabled: !k.value.length,
619
+ onClick: E
620
+ }, {
621
+ default: a(() => [..._[7] || (_[7] = [
622
+ p(" 确认导入 ", -1)
623
+ ])]),
624
+ _: 1
625
+ }, 8, ["loading", "disabled"])
626
+ ]),
627
+ _: 1
628
+ })
629
+ ]),
630
+ _: 1
631
+ }),
632
+ n(t(ne), {
633
+ data: k.value,
634
+ border: "",
635
+ size: "small",
636
+ "max-height": "360",
637
+ class: "j-import-data-table"
638
+ }, {
639
+ default: a(() => [
640
+ (u(!0), b(P, null, G(I.value, (D) => (u(), C(t(T), {
641
+ key: D.prop,
642
+ prop: D.prop,
643
+ label: D.label,
644
+ "min-width": 120,
645
+ "show-overflow-tooltip": ""
646
+ }, null, 8, ["prop", "label"]))), 128)),
647
+ n(t(T), {
648
+ label: "状态",
649
+ width: "110",
650
+ align: "center",
651
+ fixed: "right"
652
+ }, {
653
+ default: a(({ row: D }) => [
654
+ D._status === -1 ? (u(), b("span", ol, m(D._error || "创建失败"), 1)) : (u(), b("span", ul, m($[D._status]), 1))
655
+ ]),
656
+ _: 1
657
+ }),
658
+ n(t(T), {
659
+ label: "操作",
660
+ width: "80",
661
+ align: "center",
662
+ fixed: "right"
663
+ }, {
664
+ default: a(({ $index: D, row: z }) => [
665
+ z._status === 0 ? (u(), C(t(le), {
666
+ key: 0,
667
+ size: "small",
668
+ onClick: (y) => M(D)
669
+ }, {
670
+ default: a(() => [..._[8] || (_[8] = [
671
+ p(" 删除 ", -1)
672
+ ])]),
673
+ _: 1
674
+ }, 8, ["onClick"])) : B("", !0)
675
+ ]),
676
+ _: 1
677
+ })
678
+ ]),
679
+ _: 1
680
+ }, 8, ["data"])
681
+ ]),
682
+ _: 1
683
+ }, 8, ["modelValue", "title"]));
693
684
  }
694
- }), Ge = /* @__PURE__ */ W(Ze, [["__scopeId", "data-v-c7bcbb68"]]), Qe = { class: "j-sidebar__menu-item-title" }, Ye = /* @__PURE__ */ N({
685
+ }), dl = /* @__PURE__ */ ae(rl, [["__scopeId", "data-v-74dcefaa"]]), cl = { class: "j-sidebar__menu-item-title" }, ml = /* @__PURE__ */ ee({
695
686
  name: "JSideMenuItem",
696
687
  __name: "JSideMenuItem",
697
688
  props: {
@@ -700,54 +691,54 @@ const xe = ["disabled"], Re = {
700
691
  depth: { default: 0 }
701
692
  },
702
693
  emits: ["menu-click"],
703
- setup(e, { emit: a }) {
704
- const t = e, n = a, l = () => {
705
- n("menu-click", t.menuItem);
694
+ setup(e, { emit: h }) {
695
+ const s = e, o = h, r = () => {
696
+ o("menu-click", s.menuItem);
706
697
  };
707
- return (o, i) => {
708
- const r = w("JSideMenuItem", !0), c = w("el-sub-menu"), h = w("el-menu-item");
709
- return e.menuItem.children && e.menuItem.children.length > 0 ? (d(), y(c, {
698
+ return (f, v) => {
699
+ const k = de("JSideMenuItem", !0);
700
+ return e.menuItem.children && e.menuItem.children.length > 0 ? (u(), C(t(It), {
710
701
  key: 0,
711
702
  index: e.menuItem.path,
712
- class: U([`j-sidebar__depth-${e.depth}`])
703
+ class: ue([`j-sidebar__depth-${e.depth}`])
713
704
  }, {
714
- title: u(() => [
715
- e.menuItem.icon && e.depth === 0 ? (d(), y(x(X), {
705
+ title: a(() => [
706
+ e.menuItem.icon && e.depth === 0 ? (u(), C(t(ve), {
716
707
  key: 0,
717
708
  icon: e.menuItem.icon
718
- }, null, 8, ["icon"])) : C("", !0),
719
- b("span", Qe, B(e.menuItem.title || e.menuItem.name), 1)
709
+ }, null, 8, ["icon"])) : B("", !0),
710
+ S("span", cl, m(e.menuItem.title || e.menuItem.name), 1)
720
711
  ]),
721
- default: u(() => [
722
- (d(!0), S(Z, null, Q(e.menuItem.children, (_) => (d(), y(r, {
723
- key: _.path,
724
- "menu-item": _,
712
+ default: a(() => [
713
+ (u(!0), b(P, null, G(e.menuItem.children, (c) => (u(), C(k, {
714
+ key: c.path,
715
+ "menu-item": c,
725
716
  "is-collapse": e.isCollapse,
726
717
  depth: e.depth + 1,
727
- onMenuClick: i[0] || (i[0] = (P) => n("menu-click", P))
718
+ onMenuClick: v[0] || (v[0] = ($) => o("menu-click", $))
728
719
  }, null, 8, ["menu-item", "is-collapse", "depth"]))), 128))
729
720
  ]),
730
721
  _: 1
731
- }, 8, ["index", "class"])) : (d(), y(h, {
722
+ }, 8, ["index", "class"])) : (u(), C(t(Xe), {
732
723
  key: 1,
733
724
  index: e.menuItem.path,
734
- class: U([`j-sidebar__depth-${e.depth}`]),
735
- onClick: l
725
+ class: ue([`j-sidebar__depth-${e.depth}`]),
726
+ onClick: r
736
727
  }, {
737
- title: u(() => [
738
- b("span", null, B(e.menuItem.title || e.menuItem.name), 1)
728
+ title: a(() => [
729
+ S("span", null, m(e.menuItem.title || e.menuItem.name), 1)
739
730
  ]),
740
- default: u(() => [
741
- e.menuItem.icon && e.depth === 0 ? (d(), y(x(X), {
731
+ default: a(() => [
732
+ e.menuItem.icon && e.depth === 0 ? (u(), C(t(ve), {
742
733
  key: 0,
743
734
  icon: e.menuItem.icon
744
- }, null, 8, ["icon"])) : C("", !0)
735
+ }, null, 8, ["icon"])) : B("", !0)
745
736
  ]),
746
737
  _: 1
747
738
  }, 8, ["index", "class"]));
748
739
  };
749
740
  }
750
- }), fe = /* @__PURE__ */ W(Ye, [["__scopeId", "data-v-3787a646"]]), et = { class: "j-sidebar__logo" }, tt = { class: "j-sidebar__title" }, lt = { class: "j-sidebar__menu-wrapper" }, nt = { class: "j-sidebar__footer" }, at = /* @__PURE__ */ N({
741
+ }), Qe = /* @__PURE__ */ ae(ml, [["__scopeId", "data-v-3a990426"]]), pl = { class: "j-sidebar__logo" }, fl = { class: "j-sidebar__title" }, vl = { class: "j-sidebar__menu-wrapper" }, hl = { class: "j-sidebar__footer" }, _l = /* @__PURE__ */ ee({
751
742
  name: "JSidebar",
752
743
  __name: "JSidebar",
753
744
  props: {
@@ -761,69 +752,66 @@ const xe = ["disabled"], Re = {
761
752
  router: { type: Boolean, default: !0 }
762
753
  },
763
754
  emits: ["update:collapsed", "menu-click"],
764
- setup(e, { emit: a }) {
765
- const t = e, n = a, l = V(t.collapsed);
766
- ce(() => t.collapsed, (i) => {
767
- l.value = i;
755
+ setup(e, { emit: h }) {
756
+ const s = e, o = h, r = q(s.collapsed);
757
+ be(() => s.collapsed, (v) => {
758
+ r.value = v;
768
759
  });
769
- const o = () => {
770
- l.value = !l.value, n("update:collapsed", l.value);
771
- };
772
- return (i, r) => {
773
- const c = w("el-menu");
774
- return d(), S("div", {
775
- class: U(["j-sidebar", l.value ? "j-sidebar--collapsed" : "j-sidebar--expanded"]),
776
- style: ae({ width: l.value ? `${e.collapsedWidth}px` : `${e.expandedWidth}px` })
777
- }, [
778
- b("div", et, [
779
- z(i.$slots, "logo", { collapsed: l.value }, () => {
780
- var h;
781
- return [
782
- b("h2", tt, B(l.value ? e.collapsedTitle || ((h = e.title) == null ? void 0 : h.charAt(0)) || "" : e.title), 1)
783
- ];
784
- }, !0)
785
- ]),
786
- b("div", lt, [
787
- p(c, {
788
- "default-active": e.activeMenu,
789
- class: "j-sidebar__menu",
790
- router: e.router,
791
- collapse: l.value,
792
- "collapse-transition": !1
793
- }, {
794
- default: u(() => [
795
- (d(!0), S(Z, null, Q(e.menus, (h) => (d(), y(fe, {
796
- key: h.path,
797
- "menu-item": h,
798
- "is-collapse": l.value,
799
- onMenuClick: r[0] || (r[0] = (_) => n("menu-click", _))
800
- }, null, 8, ["menu-item", "is-collapse"]))), 128))
801
- ]),
802
- _: 1
803
- }, 8, ["default-active", "router", "collapse"])
804
- ]),
805
- b("div", nt, [
806
- z(i.$slots, "footer", {
807
- collapsed: l.value,
808
- toggle: o
809
- }, () => [
810
- b("button", {
811
- class: "j-sidebar__collapse-btn",
812
- onClick: o
813
- }, [
814
- p(x(X), {
815
- icon: l.value ? "mdi:chevron-right" : "mdi:chevron-left"
816
- }, null, 8, ["icon"])
817
- ])
818
- ], !0)
819
- ])
820
- ], 6);
760
+ const f = () => {
761
+ r.value = !r.value, o("update:collapsed", r.value);
821
762
  };
763
+ return (v, k) => (u(), b("div", {
764
+ class: ue(["j-sidebar", r.value ? "j-sidebar--collapsed" : "j-sidebar--expanded"]),
765
+ style: ce({ width: r.value ? `${e.collapsedWidth}px` : `${e.expandedWidth}px` })
766
+ }, [
767
+ S("div", pl, [
768
+ te(v.$slots, "logo", { collapsed: r.value }, () => {
769
+ var c;
770
+ return [
771
+ S("h2", fl, m(r.value ? e.collapsedTitle || ((c = e.title) == null ? void 0 : c.charAt(0)) || "" : e.title), 1)
772
+ ];
773
+ }, !0)
774
+ ]),
775
+ S("div", vl, [
776
+ n(t(Ge), {
777
+ "default-active": e.activeMenu,
778
+ class: "j-sidebar__menu",
779
+ router: e.router,
780
+ collapse: r.value,
781
+ "collapse-transition": !1
782
+ }, {
783
+ default: a(() => [
784
+ (u(!0), b(P, null, G(e.menus, (c) => (u(), C(Qe, {
785
+ key: c.path,
786
+ "menu-item": c,
787
+ "is-collapse": r.value,
788
+ onMenuClick: k[0] || (k[0] = ($) => o("menu-click", $))
789
+ }, null, 8, ["menu-item", "is-collapse"]))), 128))
790
+ ]),
791
+ _: 1
792
+ }, 8, ["default-active", "router", "collapse"])
793
+ ]),
794
+ S("div", hl, [
795
+ te(v.$slots, "footer", {
796
+ collapsed: r.value,
797
+ toggle: f
798
+ }, () => [
799
+ S("button", {
800
+ class: "j-sidebar__collapse-btn",
801
+ onClick: f
802
+ }, [
803
+ n(t(ve), {
804
+ icon: r.value ? "mdi:chevron-right" : "mdi:chevron-left"
805
+ }, null, 8, ["icon"])
806
+ ])
807
+ ], !0)
808
+ ])
809
+ ], 6));
822
810
  }
823
- }), pe = /* @__PURE__ */ W(at, [["__scopeId", "data-v-2e746199"]]), ot = { class: "j-admin-layout__right-panel" }, st = { class: "j-admin-layout__header" }, it = { class: "j-admin-layout__header-left" }, ut = {
811
+ }), Ye = /* @__PURE__ */ ae(_l, [["__scopeId", "data-v-a3fac9de"]]), gl = { class: "j-admin-layout__right-panel" }, yl = { class: "j-admin-layout__header" }, bl = { class: "j-admin-layout__header-left" }, kl = {
824
812
  key: 0,
825
813
  class: "j-admin-layout__logo"
826
- }, dt = { class: "j-admin-layout__header-right" }, rt = { class: "j-admin-layout__user" }, ct = { class: "j-admin-layout__content-container" }, mt = /* @__PURE__ */ N({
814
+ }, wl = { class: "j-admin-layout__header-right" }, xl = { class: "j-admin-layout__user" }, $l = { class: "j-admin-layout__content-container" }, Sl = /* @__PURE__ */ ee({
827
815
  name: "JAdminLayout",
828
816
  __name: "JAdminLayout",
829
817
  props: {
@@ -849,418 +837,1760 @@ const xe = ["disabled"], Re = {
849
837
  hideContentScrollbar: { type: Boolean, default: !1 }
850
838
  },
851
839
  emits: ["update:collapsed", "top-menu-select", "side-menu-click", "profile", "logout"],
852
- setup(e, { emit: a }) {
853
- const t = e, n = a, l = G({
854
- get: () => t.collapsed,
855
- set: (c) => n("update:collapsed", c)
856
- }), o = G(() => ({
857
- "--j-admin-layout-header-height": t.headerHeight,
858
- "--j-admin-layout-content-padding": t.contentPadding,
859
- "--j-admin-layout-content-bg": t.contentBackground,
860
- "--j-admin-layout-header-bg": t.headerBackground
861
- })), i = (c) => {
862
- n("top-menu-select", c);
863
- }, r = (c) => {
864
- n("side-menu-click", c);
840
+ setup(e, { emit: h }) {
841
+ const s = e, o = h, r = j({
842
+ get: () => s.collapsed,
843
+ set: (c) => o("update:collapsed", c)
844
+ }), f = j(() => ({
845
+ "--j-admin-layout-header-height": s.headerHeight,
846
+ "--j-admin-layout-content-padding": s.contentPadding,
847
+ "--j-admin-layout-content-bg": s.contentBackground,
848
+ "--j-admin-layout-header-bg": s.headerBackground
849
+ })), v = (c) => {
850
+ o("top-menu-select", c);
851
+ }, k = (c) => {
852
+ o("side-menu-click", c);
865
853
  };
866
- return (c, h) => {
867
- const _ = w("el-menu-item"), P = w("el-menu"), T = w("el-icon"), $ = w("el-dropdown-item"), g = w("el-dropdown-menu"), F = w("el-dropdown");
868
- return d(), S("div", {
869
- class: "j-admin-layout",
870
- style: ae(o.value)
871
- }, [
872
- e.sideMenus.length > 0 ? (d(), y(x(pe), {
873
- key: 0,
874
- collapsed: l.value,
875
- "onUpdate:collapsed": h[0] || (h[0] = (m) => l.value = m),
876
- menus: e.sideMenus,
877
- "active-menu": e.activeMenu,
878
- title: e.title,
879
- "collapsed-title": e.collapsedTitle,
880
- "collapsed-width": e.sidebarCollapsedWidth,
881
- "expanded-width": e.sidebarExpandedWidth,
882
- onMenuClick: r
883
- }, _e({ _: 2 }, [
884
- c.$slots.sidebarFooter ? {
885
- name: "footer",
886
- fn: u(({ collapsed: m, toggle: f }) => [
887
- z(c.$slots, "sidebarFooter", {
888
- collapsed: m,
889
- toggle: f
890
- }, void 0, !0)
891
- ]),
892
- key: "0"
893
- } : void 0
894
- ]), 1032, ["collapsed", "menus", "active-menu", "title", "collapsed-title", "collapsed-width", "expanded-width"])) : C("", !0),
895
- b("div", ot, [
896
- b("div", st, [
897
- b("div", it, [
898
- e.sideMenus.length === 0 ? (d(), S("div", ut, [
899
- z(c.$slots, "logo", {}, () => [
900
- b("h2", null, B(e.logoTitle || e.title), 1)
901
- ], !0)
902
- ])) : C("", !0),
903
- p(P, {
904
- mode: "horizontal",
905
- "default-active": e.activeTopMenu,
906
- class: "j-admin-layout__top-menu",
907
- onSelect: i
908
- }, {
909
- default: u(() => [
910
- (d(!0), S(Z, null, Q(e.topMenus, (m) => (d(), y(_, {
911
- key: m.path,
912
- index: m.path
913
- }, {
914
- default: u(() => [
915
- m.icon ? (d(), y(x(X), {
854
+ return (c, $) => (u(), b("div", {
855
+ class: "j-admin-layout",
856
+ style: ce(f.value)
857
+ }, [
858
+ e.sideMenus.length > 0 ? (u(), C(t(Ye), {
859
+ key: 0,
860
+ collapsed: r.value,
861
+ "onUpdate:collapsed": $[0] || ($[0] = (I) => r.value = I),
862
+ menus: e.sideMenus,
863
+ "active-menu": e.activeMenu,
864
+ title: e.title,
865
+ "collapsed-title": e.collapsedTitle,
866
+ "collapsed-width": e.sidebarCollapsedWidth,
867
+ "expanded-width": e.sidebarExpandedWidth,
868
+ onMenuClick: k
869
+ }, wt({ _: 2 }, [
870
+ c.$slots.sidebarFooter ? {
871
+ name: "footer",
872
+ fn: a(({ collapsed: I, toggle: N }) => [
873
+ te(c.$slots, "sidebarFooter", {
874
+ collapsed: I,
875
+ toggle: N
876
+ }, void 0, !0)
877
+ ]),
878
+ key: "0"
879
+ } : void 0
880
+ ]), 1032, ["collapsed", "menus", "active-menu", "title", "collapsed-title", "collapsed-width", "expanded-width"])) : B("", !0),
881
+ S("div", gl, [
882
+ S("div", yl, [
883
+ S("div", bl, [
884
+ e.sideMenus.length === 0 ? (u(), b("div", kl, [
885
+ te(c.$slots, "logo", {}, () => [
886
+ S("h2", null, m(e.logoTitle || e.title), 1)
887
+ ], !0)
888
+ ])) : B("", !0),
889
+ n(t(Ge), {
890
+ mode: "horizontal",
891
+ "default-active": e.activeTopMenu,
892
+ class: "j-admin-layout__top-menu",
893
+ onSelect: v
894
+ }, {
895
+ default: a(() => [
896
+ (u(!0), b(P, null, G(e.topMenus, (I) => (u(), C(t(Xe), {
897
+ key: I.path,
898
+ index: I.path
899
+ }, {
900
+ default: a(() => [
901
+ I.icon ? (u(), C(t(ve), {
902
+ key: 0,
903
+ icon: I.icon,
904
+ class: "j-admin-layout__top-menu-icon"
905
+ }, null, 8, ["icon"])) : B("", !0),
906
+ S("span", null, m(I.title || I.name), 1)
907
+ ]),
908
+ _: 2
909
+ }, 1032, ["index"]))), 128))
910
+ ]),
911
+ _: 1
912
+ }, 8, ["default-active"])
913
+ ]),
914
+ S("div", wl, [
915
+ te(c.$slots, "headerRight", { username: e.username }, () => [
916
+ e.showProfile || e.showLogout ? (u(), C(t(Dt), { key: 0 }, {
917
+ dropdown: a(() => [
918
+ n(t(Et), null, {
919
+ default: a(() => [
920
+ e.showProfile ? (u(), C(t(Pe), {
916
921
  key: 0,
917
- icon: m.icon,
918
- class: "j-admin-layout__top-menu-icon"
919
- }, null, 8, ["icon"])) : C("", !0),
920
- b("span", null, B(m.title || m.name), 1)
922
+ onClick: $[1] || ($[1] = (I) => o("profile"))
923
+ }, {
924
+ default: a(() => [
925
+ p(m(e.profileText), 1)
926
+ ]),
927
+ _: 1
928
+ })) : B("", !0),
929
+ e.showLogout ? (u(), C(t(Pe), {
930
+ key: 1,
931
+ onClick: $[2] || ($[2] = (I) => o("logout"))
932
+ }, {
933
+ default: a(() => [
934
+ p(m(e.logoutText), 1)
935
+ ]),
936
+ _: 1
937
+ })) : B("", !0)
921
938
  ]),
922
- _: 2
923
- }, 1032, ["index"]))), 128))
939
+ _: 1
940
+ })
924
941
  ]),
925
- _: 1
926
- }, 8, ["default-active"])
927
- ]),
928
- b("div", dt, [
929
- z(c.$slots, "headerRight", { username: e.username }, () => [
930
- e.showProfile || e.showLogout ? (d(), y(F, { key: 0 }, {
931
- dropdown: u(() => [
932
- p(g, null, {
933
- default: u(() => [
934
- e.showProfile ? (d(), y($, {
935
- key: 0,
936
- onClick: h[1] || (h[1] = (m) => n("profile"))
937
- }, {
938
- default: u(() => [
939
- D(B(e.profileText), 1)
940
- ]),
941
- _: 1
942
- })) : C("", !0),
943
- e.showLogout ? (d(), y($, {
944
- key: 1,
945
- onClick: h[2] || (h[2] = (m) => n("logout"))
946
- }, {
947
- default: u(() => [
948
- D(B(e.logoutText), 1)
949
- ]),
950
- _: 1
951
- })) : C("", !0)
942
+ default: a(() => [
943
+ S("span", xl, [
944
+ p(m(e.username) + " ", 1),
945
+ n(t(ie), null, {
946
+ default: a(() => [
947
+ n(t(Ze))
952
948
  ]),
953
949
  _: 1
954
950
  })
955
- ]),
956
- default: u(() => [
957
- b("span", rt, [
958
- D(B(e.username) + " ", 1),
959
- p(T, null, {
960
- default: u(() => [
961
- p(x(me))
962
- ]),
963
- _: 1
964
- })
965
- ])
966
- ]),
967
- _: 1
968
- })) : C("", !0)
969
- ], !0)
970
- ])
971
- ]),
972
- b("div", ct, [
973
- z(c.$slots, "tabs", {}, void 0, !0),
974
- b("div", {
975
- class: U([
976
- "j-admin-layout__content",
977
- { "j-admin-layout__content--scrollbar-hidden": e.hideContentScrollbar }
978
- ])
979
- }, [
980
- z(c.$slots, "default", {}, void 0, !0)
981
- ], 2)
951
+ ])
952
+ ]),
953
+ _: 1
954
+ })) : B("", !0)
955
+ ], !0)
982
956
  ])
957
+ ]),
958
+ S("div", $l, [
959
+ te(c.$slots, "tabs", {}, void 0, !0),
960
+ S("div", {
961
+ class: ue([
962
+ "j-admin-layout__content",
963
+ { "j-admin-layout__content--scrollbar-hidden": e.hideContentScrollbar }
964
+ ])
965
+ }, [
966
+ te(c.$slots, "default", {}, void 0, !0)
967
+ ], 2)
983
968
  ])
969
+ ])
970
+ ], 4));
971
+ }
972
+ }), Cl = /* @__PURE__ */ ae(Sl, [["__scopeId", "data-v-51b44ebf"]]), jl = { class: "pdd-body" }, Al = ["href"], Il = ["innerHTML"], Dl = { key: 1 }, El = { key: 1 }, Tl = { key: 1 }, Ml = { class: "pdd-supplier-head" }, Rl = { class: "pdd-supplier-name" }, Bl = { class: "pdd-supplier-meta" }, Vl = { class: "pdd-supplier-meta" }, zl = { key: 1 }, Jl = { key: 1 }, Ll = { key: 1 }, Pl = { key: 1 }, ql = ["href"], Fl = { key: 1 }, et = q([]), De = q([]), tt = q([]), lt = q([]), at = q([]), nt = q([]);
973
+ let Oe = !1, fe = null;
974
+ const Ol = (e) => {
975
+ const h = (s, o) => e({ url: s, method: "post", data: o });
976
+ return Oe ? Promise.resolve() : fe || (fe = Promise.all([
977
+ h("/bis-app/comm/productAttrValue/getAll", { pageSize: 999 }).then((s) => {
978
+ var o, r, f;
979
+ s.code === 1 && (et.value = ((o = s.data) == null ? void 0 : o.brand) || [], De.value = ((r = s.data) == null ? void 0 : r.unit) || [], tt.value = ((f = s.data) == null ? void 0 : f.sale) || []);
980
+ }).catch(() => {
981
+ }),
982
+ h("/bis-app/comm/company/list", { pageSize: 999, subject_type: "purchase" }).then((s) => {
983
+ var o;
984
+ s.code === 1 && (lt.value = ((o = s.data) == null ? void 0 : o.list) || s.data || []);
985
+ }).catch(() => {
986
+ }),
987
+ h("/bis-app/comm/tagCategoryValue/list", { tag_code: "PRODUCT_TAG", pageIndex: 1, pageSize: 999 }).then((s) => {
988
+ var o;
989
+ s.code === 1 && (at.value = ((o = s.data) == null ? void 0 : o.list) || s.data || []);
990
+ }).catch(() => {
991
+ }),
992
+ h("/bis-app/comm/customAttr/list", { pageIndex: 1, pageSize: 999 }).then((s) => {
993
+ var o;
994
+ s.code === 1 && (nt.value = ((o = s.data) == null ? void 0 : o.list) || s.data || []);
995
+ }).catch(() => {
996
+ })
997
+ ]).then(() => {
998
+ Oe = !0;
999
+ }).finally(() => {
1000
+ fe = null;
1001
+ }), fe);
1002
+ }, Nl = /* @__PURE__ */ ee({
1003
+ name: "JProductDetailDialog",
1004
+ directives: { loading: qe },
1005
+ __name: "JProductDetailDialog",
1006
+ props: {
1007
+ visible: { type: Boolean, default: !1 },
1008
+ code: { default: "" },
1009
+ type: { default: "sku" },
1010
+ id: { default: void 0 },
1011
+ request: {}
1012
+ },
1013
+ emits: ["update:visible"],
1014
+ setup(e, { emit: h }) {
1015
+ const s = e, o = h, r = (i, d) => s.request({ url: i, method: "post", data: d }), f = q(!1), v = q(null), k = async () => {
1016
+ if (!s.code && s.id === void 0) return;
1017
+ v.value = null, Ol(s.request);
1018
+ const i = s.type === "spu" ? "/bis-app/comm/spu/doDetail" : "/bis-app/comm/sku/doDetail", d = s.type === "spu" ? { id: s.id, spu_code: s.code } : { id: s.id, sku_code: s.code };
1019
+ f.value = !0;
1020
+ try {
1021
+ const l = await r(i, d);
1022
+ l.code === 1 && l.data ? v.value = l.data : H.error(l.msg || "获取详情失败");
1023
+ } catch {
1024
+ H.error("获取详情失败");
1025
+ } finally {
1026
+ f.value = !1;
1027
+ }
1028
+ };
1029
+ be(() => s.visible, (i) => {
1030
+ i && k();
1031
+ });
1032
+ const c = j(() => {
1033
+ var i;
1034
+ return ((i = v.value) == null ? void 0 : i.basic_info) ?? v.value ?? {};
1035
+ }), $ = j(() => {
1036
+ var i;
1037
+ return ((i = v.value) == null ? void 0 : i.spec_info) ?? {};
1038
+ }), I = j(() => {
1039
+ var i, d;
1040
+ return ((i = v.value) == null ? void 0 : i.images_info) ?? ((d = v.value) == null ? void 0 : d.image_info) ?? {};
1041
+ }), N = j(() => {
1042
+ var i;
1043
+ return ((i = v.value) == null ? void 0 : i.purchase_info) ?? {};
1044
+ }), V = j(() => {
1045
+ var i;
1046
+ return ((i = v.value) == null ? void 0 : i.declaration_info) ?? {};
1047
+ }), M = j(() => {
1048
+ var i;
1049
+ return ((i = v.value) == null ? void 0 : i.qc_info) ?? {};
1050
+ }), E = j(() => {
1051
+ var i;
1052
+ return ((i = v.value) == null ? void 0 : i.bind_sku_info) ?? {};
1053
+ }), W = j(() => {
1054
+ var i;
1055
+ return ((i = v.value) == null ? void 0 : i.spu_bind_sku) ?? {};
1056
+ }), F = j(() => {
1057
+ var i;
1058
+ return ((i = v.value) == null ? void 0 : i.spec_box_info) ?? $.value.spec_box_info ?? [];
1059
+ }), R = j(() => {
1060
+ var i;
1061
+ return ((i = v.value) == null ? void 0 : i.sku_supplier) ?? N.value.supplier_list ?? [];
1062
+ }), _ = j(() => String(c.value.product_type ?? (s.type === "spu" ? "30" : "10"))), D = j(() => _.value === "30"), z = j(() => ({ 10: "单品", 20: "组合产品", 30: "多属性产品" })[_.value] || _.value), y = j(() => D.value && c.value.spu_name || c.value.product_name), K = j(() => D.value && c.value.spu_name_en || c.value.product_name_en), L = j(() => D.value ? c.value.spu_code : c.value.sku_code), O = (i) => {
1063
+ if (i == null || i === "") return [];
1064
+ if (Array.isArray(i)) return i.map(String).filter(Boolean);
1065
+ if (typeof i == "string") {
1066
+ const d = i.trim();
1067
+ if (!d) return [];
1068
+ if (d.startsWith("["))
1069
+ try {
1070
+ const l = JSON.parse(d);
1071
+ return Array.isArray(l) ? l.map(String).filter(Boolean) : [];
1072
+ } catch {
1073
+ }
1074
+ return d.split(",").map((l) => l.trim()).filter(Boolean);
1075
+ }
1076
+ return [String(i)];
1077
+ }, X = (i) => {
1078
+ let d = [];
1079
+ if (Array.isArray(i)) d = i;
1080
+ else if (typeof i == "string" && i.trim())
1081
+ try {
1082
+ const l = JSON.parse(i);
1083
+ d = Array.isArray(l) ? l : [i];
1084
+ } catch {
1085
+ d = [i];
1086
+ }
1087
+ return d.map((l) => {
1088
+ if (typeof l == "string") return { name: l.split("/").pop() || l, url: l };
1089
+ const g = (l == null ? void 0 : l.url) || (l == null ? void 0 : l.file_url) || (l == null ? void 0 : l.path) || "";
1090
+ return { name: (l == null ? void 0 : l.name) || (l == null ? void 0 : l.file_name) || g.split("/").pop() || "附件", url: g };
1091
+ }).filter((l) => l.url);
1092
+ }, x = (i) => i == null || i === "" ? "—" : i, J = (i, d) => i == null || i === "" ? "—" : `${i} ${d || ""}`.trim(), Z = (i, d, l, g = "cm") => {
1093
+ if ([i, d, l].every((U) => U == null || U === "")) return "—";
1094
+ const A = (U) => U == null || U === "" ? "—" : U;
1095
+ return `${A(i)} × ${A(d)} × ${A(l)} ${g}`;
1096
+ }, Q = (i, d) => {
1097
+ if (d == null || d === "") return "";
1098
+ const l = i.find((g) => String(g.id) === String(d));
1099
+ return (l == null ? void 0 : l.attr_value_name) || "";
1100
+ }, me = j(() => c.value.brand_name || Q(et.value, c.value.brand_id)), he = j(() => c.value.unit_name || Q(De.value, c.value.unit_id)), it = j(
1101
+ () => c.value.sale_status_name || c.value.status_name || Q(tt.value, c.value.status)
1102
+ ), ot = j(
1103
+ () => V.value.declaration_unit_name || Q(De.value, V.value.declaration_unit_id) || V.value.declaration_unit_id
1104
+ ), ut = j(() => {
1105
+ if (c.value.pe_code_name) return c.value.pe_code_name;
1106
+ const i = O(c.value.pe_codes);
1107
+ return i.length ? i.map((d) => {
1108
+ var l;
1109
+ return ((l = lt.value.find((g) => String(g.company_code) === String(d))) == null ? void 0 : l.company_name) || d;
1110
+ }).join("、") : "";
1111
+ }), Te = j(
1112
+ () => O(c.value.tags).map((i) => {
1113
+ const d = at.value.find((l) => String(l.tag_value_code) === String(i));
1114
+ return { code: i, name: (d == null ? void 0 : d.tag_value_name) || i, color: (d == null ? void 0 : d.tag_color) || "" };
1115
+ })
1116
+ ), rt = j(() => {
1117
+ const i = c.value.sku_attr;
1118
+ return !i || typeof i != "object" || Array.isArray(i) ? "" : Object.entries(i).map(([d, l]) => `${d}: ${l}`).join(";");
1119
+ }), Me = j(() => X(c.value.att_files)), dt = j(() => {
1120
+ const i = c.value.product_desc || "";
1121
+ return String(i).replace(/<[^>]*>/g, "").trim().length > 0 || /<img/i.test(String(i));
1122
+ }), ke = j(() => {
1123
+ var i;
1124
+ return I.value.main_image || ((i = v.value) == null ? void 0 : i.product_image) || "";
1125
+ }), we = j(() => {
1126
+ var i;
1127
+ return O(I.value.size_images ?? ((i = v.value) == null ? void 0 : i.size_images));
1128
+ }), xe = j(() => O(I.value.selling_point_images)), ct = j(
1129
+ () => ({ spot: "抽检", full: "全检", exempt: "免检" })[M.value.qc_method] || x(M.value.qc_method)
1130
+ ), $e = j(() => O(M.value.images)), Re = j(() => X(M.value.att_files)), Be = j(() => Array.isArray(M.value.qc_content) ? M.value.qc_content : []), Ve = (i) => String(i.custom_attr_id ?? i.id ?? i.attr_id ?? i.attr_code ?? "").trim(), mt = (i) => {
1131
+ const d = Array.isArray(i) ? i : i != null && i !== "" ? [i] : [], l = [];
1132
+ for (const g of d)
1133
+ if (typeof g == "string")
1134
+ g.split(/[,,、\n]/).map((A) => A.trim()).filter(Boolean).forEach((A) => l.push({ id: "", name: A }));
1135
+ else if (g && typeof g == "object") {
1136
+ const A = String(g.attr_value ?? g.value ?? g.label ?? g.attr_value_name ?? g.name ?? "").trim(), U = String(g.id ?? g.attr_value_id ?? g.value_id ?? "");
1137
+ A && l.push({ id: U, name: A });
1138
+ }
1139
+ return l;
1140
+ }, pt = j(() => {
1141
+ const i = /* @__PURE__ */ new Map();
1142
+ for (const d of nt.value) {
1143
+ const l = Ve(d);
1144
+ l && i.set(l, d);
1145
+ }
1146
+ return i;
1147
+ }), ze = j(() => {
1148
+ var g;
1149
+ const i = (g = v.value) == null ? void 0 : g.custom_attr_info, d = (i == null ? void 0 : i.list) ?? i;
1150
+ return (Array.isArray(d) ? d : []).map((A) => {
1151
+ const U = Ve(A), Y = pt.value.get(U);
1152
+ return {
1153
+ ...A,
1154
+ custom_attr_id: U,
1155
+ // 属性名:详情自带优先,否则取字典
1156
+ attr_name: A.attr_name || (Y == null ? void 0 : Y.attr_name) || U,
1157
+ options: mt((Y == null ? void 0 : Y.attr_value) ?? (Y == null ? void 0 : Y.options) ?? A.options ?? A.attr_value)
1158
+ };
1159
+ });
1160
+ }), ft = (i) => {
1161
+ const d = O(i.custom_attr_value_id ?? i.custom_attr_value);
1162
+ if (!d.length) return "—";
1163
+ const l = i.options || [];
1164
+ return d.map((g) => {
1165
+ var A;
1166
+ return ((A = l.find((U) => U.id && String(U.id) === String(g) || String(U.name) === String(g))) == null ? void 0 : A.name) || g;
1167
+ }).join("、");
1168
+ }, vt = j(() => E.value.bind_sku_list ?? []), Je = j(() => W.value.sku_attr ?? []), ht = j(() => W.value.sku_list ?? []), _t = (i, d) => {
1169
+ var A;
1170
+ const l = (A = i.sku_attr) == null ? void 0 : A[d.attr_code];
1171
+ if (l == null || l === "") return "—";
1172
+ const g = (d.childs || []).find((U) => String(U.attr_value_code) === String(l));
1173
+ return (g == null ? void 0 : g.attr_value_name) || String(l);
1174
+ }, gt = (i) => {
1175
+ const d = [];
1176
+ for (const l of i.supplier_quote || [])
1177
+ for (const g of l.quote_list || [])
1178
+ d.push({
1179
+ currency: l.quote_currency_code,
1180
+ is_tax: l.is_tax,
1181
+ tax_rate: l.tax_rate,
1182
+ ...g
1183
+ });
1184
+ return d;
1185
+ };
1186
+ return (i, d) => (u(), C(t(Ke), {
1187
+ "model-value": e.visible,
1188
+ title: "查看产品",
1189
+ width: "1200px",
1190
+ top: "4vh",
1191
+ "close-on-click-modal": !1,
1192
+ "onUpdate:modelValue": d[1] || (d[1] = (l) => o("update:visible", l))
1193
+ }, {
1194
+ footer: a(() => [
1195
+ n(t(le), {
1196
+ onClick: d[0] || (d[0] = (l) => o("update:visible", !1))
1197
+ }, {
1198
+ default: a(() => [...d[17] || (d[17] = [
1199
+ p("关闭", -1)
1200
+ ])]),
1201
+ _: 1
1202
+ })
1203
+ ]),
1204
+ default: a(() => [
1205
+ xt((u(), b("div", jl, [
1206
+ v.value ? (u(), b(P, { key: 0 }, [
1207
+ d[13] || (d[13] = S("div", { class: "pdd-title" }, "基本信息", -1)),
1208
+ n(t(oe), {
1209
+ column: 3,
1210
+ border: "",
1211
+ size: "small"
1212
+ }, {
1213
+ default: a(() => [
1214
+ n(t(w), {
1215
+ label: D.value ? "中文款式" : "中文品名"
1216
+ }, {
1217
+ default: a(() => [
1218
+ p(m(x(y.value)), 1)
1219
+ ]),
1220
+ _: 1
1221
+ }, 8, ["label"]),
1222
+ n(t(w), {
1223
+ label: D.value ? "英文款式" : "英文品名"
1224
+ }, {
1225
+ default: a(() => [
1226
+ p(m(x(K.value)), 1)
1227
+ ]),
1228
+ _: 1
1229
+ }, 8, ["label"]),
1230
+ n(t(w), {
1231
+ label: D.value ? "SPU" : "SKU"
1232
+ }, {
1233
+ default: a(() => [
1234
+ p(m(x(L.value)), 1)
1235
+ ]),
1236
+ _: 1
1237
+ }, 8, ["label"]),
1238
+ n(t(w), { label: "产品类型" }, {
1239
+ default: a(() => [
1240
+ p(m(z.value), 1)
1241
+ ]),
1242
+ _: 1
1243
+ }),
1244
+ n(t(w), { label: "采购公司" }, {
1245
+ default: a(() => [
1246
+ p(m(x(ut.value)), 1)
1247
+ ]),
1248
+ _: 1
1249
+ }),
1250
+ n(t(w), { label: "状态" }, {
1251
+ default: a(() => [
1252
+ p(m(x(it.value)), 1)
1253
+ ]),
1254
+ _: 1
1255
+ }),
1256
+ n(t(w), { label: "品类" }, {
1257
+ default: a(() => [
1258
+ p(m(x(c.value.category_path_name || c.value.category_name)), 1)
1259
+ ]),
1260
+ _: 1
1261
+ }),
1262
+ n(t(w), { label: "品牌" }, {
1263
+ default: a(() => [
1264
+ p(m(x(me.value)), 1)
1265
+ ]),
1266
+ _: 1
1267
+ }),
1268
+ n(t(w), { label: "单位" }, {
1269
+ default: a(() => [
1270
+ p(m(x(he.value)), 1)
1271
+ ]),
1272
+ _: 1
1273
+ }),
1274
+ n(t(w), { label: "产品标签" }, {
1275
+ default: a(() => [
1276
+ Te.value.length ? (u(!0), b(P, { key: 0 }, G(Te.value, (l) => (u(), C(t(_e), {
1277
+ key: l.code,
1278
+ size: "small",
1279
+ class: "pdd-tag",
1280
+ style: ce(l.color ? { backgroundColor: l.color, borderColor: l.color, color: "#fff" } : {})
1281
+ }, {
1282
+ default: a(() => [
1283
+ p(m(l.name), 1)
1284
+ ]),
1285
+ _: 2
1286
+ }, 1032, ["style"]))), 128)) : (u(), b(P, { key: 1 }, [
1287
+ p("—")
1288
+ ], 64))
1289
+ ]),
1290
+ _: 1
1291
+ }),
1292
+ n(t(w), { label: "材质" }, {
1293
+ default: a(() => [
1294
+ p(m(x(c.value.material)), 1)
1295
+ ]),
1296
+ _: 1
1297
+ }),
1298
+ n(t(w), { label: "型号" }, {
1299
+ default: a(() => [
1300
+ p(m(x(c.value.product_model)), 1)
1301
+ ]),
1302
+ _: 1
1303
+ }),
1304
+ n(t(w), { label: "开发员" }, {
1305
+ default: a(() => [
1306
+ p(m(x(c.value.develop_leader_name || c.value.develop_user)), 1)
1307
+ ]),
1308
+ _: 1
1309
+ }),
1310
+ n(t(w), { label: "采购员" }, {
1311
+ default: a(() => [
1312
+ p(m(x(c.value.purchase_leader_name || c.value.purchase_user)), 1)
1313
+ ]),
1314
+ _: 1
1315
+ }),
1316
+ n(t(w), { label: "产品运营" }, {
1317
+ default: a(() => [
1318
+ p(m(x(c.value.sales_leader_name || c.value.sales_user)), 1)
1319
+ ]),
1320
+ _: 1
1321
+ }),
1322
+ D.value ? B("", !0) : (u(), C(t(w), {
1323
+ key: 0,
1324
+ label: "关联SPU"
1325
+ }, {
1326
+ default: a(() => [
1327
+ p(m(x(c.value.spu_code)), 1)
1328
+ ]),
1329
+ _: 1
1330
+ })),
1331
+ D.value ? B("", !0) : (u(), C(t(w), {
1332
+ key: 1,
1333
+ label: "产品属性",
1334
+ span: 2
1335
+ }, {
1336
+ default: a(() => [
1337
+ p(m(x(rt.value)), 1)
1338
+ ]),
1339
+ _: 1
1340
+ })),
1341
+ n(t(w), {
1342
+ label: "附件",
1343
+ span: 3
1344
+ }, {
1345
+ default: a(() => [
1346
+ Me.value.length ? (u(!0), b(P, { key: 0 }, G(Me.value, (l, g) => (u(), b("a", {
1347
+ key: g,
1348
+ href: l.url,
1349
+ target: "_blank",
1350
+ class: "pdd-file"
1351
+ }, m(l.name), 9, Al))), 128)) : (u(), b(P, { key: 1 }, [
1352
+ p("—")
1353
+ ], 64))
1354
+ ]),
1355
+ _: 1
1356
+ }),
1357
+ n(t(w), {
1358
+ label: "详细描述",
1359
+ span: 3
1360
+ }, {
1361
+ default: a(() => [
1362
+ dt.value ? (u(), b("div", {
1363
+ key: 0,
1364
+ class: "pdd-rich",
1365
+ innerHTML: c.value.product_desc
1366
+ }, null, 8, Il)) : (u(), b(P, { key: 1 }, [
1367
+ p("—")
1368
+ ], 64))
1369
+ ]),
1370
+ _: 1
1371
+ })
1372
+ ]),
1373
+ _: 1
1374
+ }),
1375
+ _.value === "20" ? (u(), b(P, { key: 0 }, [
1376
+ d[2] || (d[2] = S("div", { class: "pdd-title" }, "产品组成", -1)),
1377
+ n(t(oe), {
1378
+ column: 3,
1379
+ border: "",
1380
+ size: "small"
1381
+ }, {
1382
+ default: a(() => [
1383
+ n(t(w), { label: "单位加工费" }, {
1384
+ default: a(() => [
1385
+ p(m(E.value.unit_process_cost != null && E.value.unit_process_cost !== "" ? `${E.value.unit_process_cost} ${E.value.unit_process_currency_code || ""}` : "—"), 1)
1386
+ ]),
1387
+ _: 1
1388
+ }),
1389
+ n(t(w), {
1390
+ label: "加工备注",
1391
+ span: 2
1392
+ }, {
1393
+ default: a(() => [
1394
+ p(m(x(E.value.unit_process_remark)), 1)
1395
+ ]),
1396
+ _: 1
1397
+ })
1398
+ ]),
1399
+ _: 1
1400
+ }),
1401
+ n(t(ne), {
1402
+ data: vt.value,
1403
+ border: "",
1404
+ size: "small",
1405
+ class: "pdd-table"
1406
+ }, {
1407
+ default: a(() => [
1408
+ n(t(T), {
1409
+ label: "图片",
1410
+ width: "70",
1411
+ align: "center"
1412
+ }, {
1413
+ default: a(({ row: l }) => [
1414
+ l.image || l.product_image ? (u(), C(t(se), {
1415
+ key: 0,
1416
+ src: l.image || l.product_image,
1417
+ "preview-src-list": [l.image || l.product_image],
1418
+ "preview-teleported": "",
1419
+ fit: "cover",
1420
+ class: "pdd-thumb"
1421
+ }, null, 8, ["src", "preview-src-list"])) : (u(), b("span", Dl, "—"))
1422
+ ]),
1423
+ _: 1
1424
+ }),
1425
+ n(t(T), {
1426
+ label: "品名",
1427
+ prop: "product_name",
1428
+ "min-width": "140",
1429
+ "show-overflow-tooltip": ""
1430
+ }),
1431
+ n(t(T), {
1432
+ label: "SKU",
1433
+ prop: "sku_code",
1434
+ "min-width": "120",
1435
+ "show-overflow-tooltip": ""
1436
+ }),
1437
+ n(t(T), {
1438
+ label: "单位",
1439
+ "min-width": "70"
1440
+ }, {
1441
+ default: a(({ row: l }) => [
1442
+ p(m(x(l.unit || l.unit_name)), 1)
1443
+ ]),
1444
+ _: 1
1445
+ }),
1446
+ n(t(T), {
1447
+ label: "数量",
1448
+ "min-width": "70"
1449
+ }, {
1450
+ default: a(({ row: l }) => [
1451
+ p(m(x(l.quantity ?? l.sku_quantity)), 1)
1452
+ ]),
1453
+ _: 1
1454
+ }),
1455
+ n(t(T), {
1456
+ label: "品类",
1457
+ prop: "category_path_name",
1458
+ "min-width": "120",
1459
+ "show-overflow-tooltip": ""
1460
+ }),
1461
+ n(t(T), {
1462
+ label: "型号",
1463
+ "min-width": "90"
1464
+ }, {
1465
+ default: a(({ row: l }) => [
1466
+ p(m(x(l.model_no || l.product_model)), 1)
1467
+ ]),
1468
+ _: 1
1469
+ }),
1470
+ n(t(T), {
1471
+ label: "材质",
1472
+ prop: "material",
1473
+ "min-width": "90",
1474
+ "show-overflow-tooltip": ""
1475
+ }),
1476
+ n(t(T), {
1477
+ label: "单品尺寸",
1478
+ "min-width": "140"
1479
+ }, {
1480
+ default: a(({ row: l }) => {
1481
+ var g, A, U, Y;
1482
+ return [
1483
+ p(m(Z((g = l.spec_info) == null ? void 0 : g.length, (A = l.spec_info) == null ? void 0 : A.width, (U = l.spec_info) == null ? void 0 : U.height, ((Y = l.spec_info) == null ? void 0 : Y.height_unit) || "cm")), 1)
1484
+ ];
1485
+ }),
1486
+ _: 1
1487
+ }),
1488
+ n(t(T), {
1489
+ label: "净重",
1490
+ "min-width": "80"
1491
+ }, {
1492
+ default: a(({ row: l }) => {
1493
+ var g, A;
1494
+ return [
1495
+ p(m(J(((g = l.spec_info) == null ? void 0 : g.net_weight) ?? l.net_weight, (A = l.spec_info) == null ? void 0 : A.product_unit)), 1)
1496
+ ];
1497
+ }),
1498
+ _: 1
1499
+ }),
1500
+ n(t(T), {
1501
+ label: "毛重",
1502
+ "min-width": "80"
1503
+ }, {
1504
+ default: a(({ row: l }) => {
1505
+ var g, A;
1506
+ return [
1507
+ p(m(J(((g = l.spec_info) == null ? void 0 : g.gross_weight) ?? l.gross_weight, (A = l.spec_info) == null ? void 0 : A.product_unit)), 1)
1508
+ ];
1509
+ }),
1510
+ _: 1
1511
+ })
1512
+ ]),
1513
+ _: 1
1514
+ }, 8, ["data"])
1515
+ ], 64)) : B("", !0),
1516
+ D.value ? (u(), b(P, { key: 1 }, [
1517
+ d[3] || (d[3] = S("div", { class: "pdd-title" }, "款式属性", -1)),
1518
+ n(t(ne), {
1519
+ data: Je.value,
1520
+ border: "",
1521
+ size: "small",
1522
+ class: "pdd-table"
1523
+ }, {
1524
+ default: a(() => [
1525
+ n(t(T), {
1526
+ label: "属性",
1527
+ prop: "attr_name",
1528
+ width: "160"
1529
+ }),
1530
+ n(t(T), { label: "属性值" }, {
1531
+ default: a(({ row: l }) => [
1532
+ (u(!0), b(P, null, G(l.childs || [], (g) => (u(), C(t(_e), {
1533
+ key: g.attr_value_code,
1534
+ size: "small",
1535
+ class: "pdd-tag"
1536
+ }, {
1537
+ default: a(() => [
1538
+ p(m(g.attr_value_name), 1)
1539
+ ]),
1540
+ _: 2
1541
+ }, 1024))), 128))
1542
+ ]),
1543
+ _: 1
1544
+ })
1545
+ ]),
1546
+ _: 1
1547
+ }, 8, ["data"]),
1548
+ d[4] || (d[4] = S("div", { class: "pdd-subtitle" }, "关联产品信息", -1)),
1549
+ n(t(ne), {
1550
+ data: ht.value,
1551
+ border: "",
1552
+ size: "small",
1553
+ class: "pdd-table"
1554
+ }, {
1555
+ default: a(() => [
1556
+ n(t(T), {
1557
+ label: "图片",
1558
+ width: "70",
1559
+ align: "center"
1560
+ }, {
1561
+ default: a(({ row: l }) => [
1562
+ l.main_image ? (u(), C(t(se), {
1563
+ key: 0,
1564
+ src: l.main_image,
1565
+ "preview-src-list": [l.main_image],
1566
+ "preview-teleported": "",
1567
+ fit: "cover",
1568
+ class: "pdd-thumb"
1569
+ }, null, 8, ["src", "preview-src-list"])) : (u(), b("span", El, "—"))
1570
+ ]),
1571
+ _: 1
1572
+ }),
1573
+ n(t(T), {
1574
+ label: "SKU",
1575
+ prop: "sku_code",
1576
+ "min-width": "130",
1577
+ "show-overflow-tooltip": ""
1578
+ }),
1579
+ n(t(T), {
1580
+ label: "中文品名",
1581
+ prop: "product_name",
1582
+ "min-width": "150",
1583
+ "show-overflow-tooltip": ""
1584
+ }),
1585
+ n(t(T), {
1586
+ label: "英文品名",
1587
+ "min-width": "150",
1588
+ "show-overflow-tooltip": ""
1589
+ }, {
1590
+ default: a(({ row: l }) => [
1591
+ p(m(x(l.product_name_en || l.product_en_name)), 1)
1592
+ ]),
1593
+ _: 1
1594
+ }),
1595
+ (u(!0), b(P, null, G(Je.value, (l) => (u(), C(t(T), {
1596
+ key: l.attr_code,
1597
+ label: l.attr_name,
1598
+ "min-width": "100"
1599
+ }, {
1600
+ default: a(({ row: g }) => [
1601
+ p(m(_t(g, l)), 1)
1602
+ ]),
1603
+ _: 2
1604
+ }, 1032, ["label"]))), 128))
1605
+ ]),
1606
+ _: 1
1607
+ }, 8, ["data"])
1608
+ ], 64)) : B("", !0),
1609
+ d[14] || (d[14] = S("div", { class: "pdd-title" }, "规格信息", -1)),
1610
+ n(t(oe), {
1611
+ column: 3,
1612
+ border: "",
1613
+ size: "small"
1614
+ }, {
1615
+ default: a(() => [
1616
+ n(t(w), { label: "单品毛重" }, {
1617
+ default: a(() => [
1618
+ p(m(J($.value.gross_weight, $.value.gross_weight_unit)), 1)
1619
+ ]),
1620
+ _: 1
1621
+ }),
1622
+ n(t(w), { label: "单品净重" }, {
1623
+ default: a(() => [
1624
+ p(m(J($.value.net_weight, $.value.net_weight_unit)), 1)
1625
+ ]),
1626
+ _: 1
1627
+ }),
1628
+ n(t(w), { label: "包装重" }, {
1629
+ default: a(() => [
1630
+ p(m(J($.value.tare_weight, $.value.tare_weight_unit)), 1)
1631
+ ]),
1632
+ _: 1
1633
+ }),
1634
+ n(t(w), { label: "单品尺寸" }, {
1635
+ default: a(() => [
1636
+ p(m(Z($.value.length, $.value.width, $.value.height)), 1)
1637
+ ]),
1638
+ _: 1
1639
+ }),
1640
+ n(t(w), {
1641
+ label: "包装尺寸",
1642
+ span: 2
1643
+ }, {
1644
+ default: a(() => [
1645
+ p(m(Z($.value.tare_length, $.value.tare_width, $.value.tare_height)), 1)
1646
+ ]),
1647
+ _: 1
1648
+ })
1649
+ ]),
1650
+ _: 1
1651
+ }),
1652
+ F.value.length ? (u(), b(P, { key: 2 }, [
1653
+ d[6] || (d[6] = S("div", { class: "pdd-subtitle" }, "装箱规格", -1)),
1654
+ n(t(ne), {
1655
+ data: F.value,
1656
+ border: "",
1657
+ size: "small",
1658
+ class: "pdd-table"
1659
+ }, {
1660
+ default: a(() => [
1661
+ n(t(T), {
1662
+ type: "index",
1663
+ label: "序号",
1664
+ width: "60",
1665
+ align: "center"
1666
+ }),
1667
+ n(t(T), {
1668
+ label: "箱规名称",
1669
+ prop: "box_name",
1670
+ "min-width": "130",
1671
+ "show-overflow-tooltip": ""
1672
+ }),
1673
+ n(t(T), {
1674
+ label: "单箱数量",
1675
+ "min-width": "90"
1676
+ }, {
1677
+ default: a(({ row: l }) => [
1678
+ p(m(l.box_quantity != null ? `${l.box_quantity} pcs` : "—"), 1)
1679
+ ]),
1680
+ _: 1
1681
+ }),
1682
+ n(t(T), {
1683
+ label: "单箱重量",
1684
+ "min-width": "100"
1685
+ }, {
1686
+ default: a(({ row: l }) => [
1687
+ p(m(J(l.one_box_weight, l.one_box_unit)), 1)
1688
+ ]),
1689
+ _: 1
1690
+ }),
1691
+ n(t(T), {
1692
+ label: "箱子重量",
1693
+ "min-width": "100"
1694
+ }, {
1695
+ default: a(({ row: l }) => [
1696
+ p(m(J(l.box_weight, l.box_unit)), 1)
1697
+ ]),
1698
+ _: 1
1699
+ }),
1700
+ n(t(T), {
1701
+ label: "外箱尺寸",
1702
+ "min-width": "150"
1703
+ }, {
1704
+ default: a(({ row: l }) => [
1705
+ p(m(Z(l.box_length, l.box_width, l.box_height)), 1)
1706
+ ]),
1707
+ _: 1
1708
+ }),
1709
+ n(t(T), {
1710
+ label: "首选",
1711
+ width: "70",
1712
+ align: "center"
1713
+ }, {
1714
+ default: a(({ row: l }) => [
1715
+ Number(l.is_preferred) === 1 ? (u(), C(t(_e), {
1716
+ key: 0,
1717
+ size: "small",
1718
+ type: "success"
1719
+ }, {
1720
+ default: a(() => [...d[5] || (d[5] = [
1721
+ p("首选", -1)
1722
+ ])]),
1723
+ _: 1
1724
+ })) : (u(), b("span", Tl, "—"))
1725
+ ]),
1726
+ _: 1
1727
+ })
1728
+ ]),
1729
+ _: 1
1730
+ }, 8, ["data"])
1731
+ ], 64)) : B("", !0),
1732
+ D.value ? B("", !0) : (u(), b(P, { key: 3 }, [
1733
+ d[9] || (d[9] = S("div", { class: "pdd-title" }, "采购信息", -1)),
1734
+ n(t(oe), {
1735
+ column: 3,
1736
+ border: "",
1737
+ size: "small"
1738
+ }, {
1739
+ default: a(() => [
1740
+ n(t(w), { label: "采购成本" }, {
1741
+ default: a(() => [
1742
+ p(m(x(N.value.purchase_cost)), 1)
1743
+ ]),
1744
+ _: 1
1745
+ }),
1746
+ n(t(w), { label: "采购交期" }, {
1747
+ default: a(() => [
1748
+ p(m(N.value.delivery_day != null && N.value.delivery_day !== "" ? `${N.value.delivery_day} 天` : "—"), 1)
1749
+ ]),
1750
+ _: 1
1751
+ }),
1752
+ n(t(w), { label: "采购税率" }, {
1753
+ default: a(() => [
1754
+ p(m(N.value.tax_rate != null && N.value.tax_rate !== "" ? `${N.value.tax_rate} %` : "—"), 1)
1755
+ ]),
1756
+ _: 1
1757
+ }),
1758
+ n(t(w), {
1759
+ label: "采购备注",
1760
+ span: 3
1761
+ }, {
1762
+ default: a(() => [
1763
+ p(m(x(N.value.purchase_remark)), 1)
1764
+ ]),
1765
+ _: 1
1766
+ })
1767
+ ]),
1768
+ _: 1
1769
+ }),
1770
+ R.value.length ? (u(), b(P, { key: 0 }, [
1771
+ d[8] || (d[8] = S("div", { class: "pdd-subtitle" }, "报价信息", -1)),
1772
+ (u(!0), b(P, null, G(R.value, (l, g) => (u(), b("div", {
1773
+ key: g,
1774
+ class: "pdd-supplier"
1775
+ }, [
1776
+ S("div", Ml, [
1777
+ S("span", Rl, m(l.supplier_name || l.supplier_code || "—"), 1),
1778
+ Number(l.is_preferred) === 1 ? (u(), C(t(_e), {
1779
+ key: 0,
1780
+ size: "small",
1781
+ type: "success"
1782
+ }, {
1783
+ default: a(() => [...d[7] || (d[7] = [
1784
+ p("首选", -1)
1785
+ ])]),
1786
+ _: 1
1787
+ })) : B("", !0),
1788
+ S("span", Bl, "预计交期:" + m(l.delivery_day != null && l.delivery_day !== "" ? `${l.delivery_day} 天` : "—"), 1),
1789
+ S("span", Vl, "报价备注:" + m(x(l.purchase_remark ?? l.remark)), 1)
1790
+ ]),
1791
+ n(t(ne), {
1792
+ data: gt(l),
1793
+ border: "",
1794
+ size: "small"
1795
+ }, {
1796
+ default: a(() => [
1797
+ n(t(T), {
1798
+ label: "币种",
1799
+ prop: "currency",
1800
+ width: "80"
1801
+ }),
1802
+ n(t(T), {
1803
+ label: "含税",
1804
+ width: "70",
1805
+ align: "center"
1806
+ }, {
1807
+ default: a(({ row: A }) => [
1808
+ p(m(Number(A.is_tax) === 1 ? "是" : "否"), 1)
1809
+ ]),
1810
+ _: 1
1811
+ }),
1812
+ n(t(T), {
1813
+ label: "税率",
1814
+ width: "80"
1815
+ }, {
1816
+ default: a(({ row: A }) => [
1817
+ p(m(A.tax_rate != null && A.tax_rate !== "" ? `${A.tax_rate} %` : "—"), 1)
1818
+ ]),
1819
+ _: 1
1820
+ }),
1821
+ n(t(T), {
1822
+ label: "采购数量 ≥",
1823
+ "min-width": "100"
1824
+ }, {
1825
+ default: a(({ row: A }) => [
1826
+ p(m(x(A.purchase_quantity)), 1)
1827
+ ]),
1828
+ _: 1
1829
+ }),
1830
+ n(t(T), {
1831
+ label: "单价",
1832
+ "min-width": "100"
1833
+ }, {
1834
+ default: a(({ row: A }) => [
1835
+ p(m(x(A.purchase_price)), 1)
1836
+ ]),
1837
+ _: 1
1838
+ }),
1839
+ n(t(T), {
1840
+ label: "含税单价",
1841
+ "min-width": "100"
1842
+ }, {
1843
+ default: a(({ row: A }) => [
1844
+ p(m(x(A.purchase_price_tax)), 1)
1845
+ ]),
1846
+ _: 1
1847
+ })
1848
+ ]),
1849
+ _: 1
1850
+ }, 8, ["data"])
1851
+ ]))), 128))
1852
+ ], 64)) : B("", !0)
1853
+ ], 64)),
1854
+ D.value ? B("", !0) : (u(), b(P, { key: 4 }, [
1855
+ d[10] || (d[10] = S("div", { class: "pdd-title" }, "产品图片", -1)),
1856
+ n(t(oe), {
1857
+ column: 1,
1858
+ border: "",
1859
+ size: "small"
1860
+ }, {
1861
+ default: a(() => [
1862
+ n(t(w), { label: "主图" }, {
1863
+ default: a(() => [
1864
+ ke.value ? (u(), C(t(se), {
1865
+ key: 0,
1866
+ src: ke.value,
1867
+ "preview-src-list": [ke.value],
1868
+ "preview-teleported": "",
1869
+ fit: "cover",
1870
+ class: "pdd-img"
1871
+ }, null, 8, ["src", "preview-src-list"])) : (u(), b("span", zl, "—"))
1872
+ ]),
1873
+ _: 1
1874
+ }),
1875
+ n(t(w), { label: "尺寸图" }, {
1876
+ default: a(() => [
1877
+ we.value.length ? (u(!0), b(P, { key: 0 }, G(we.value, (l, g) => (u(), C(t(se), {
1878
+ key: g,
1879
+ src: l,
1880
+ "preview-src-list": we.value,
1881
+ "initial-index": g,
1882
+ "preview-teleported": "",
1883
+ fit: "cover",
1884
+ class: "pdd-img"
1885
+ }, null, 8, ["src", "preview-src-list", "initial-index"]))), 128)) : (u(), b("span", Jl, "—"))
1886
+ ]),
1887
+ _: 1
1888
+ }),
1889
+ n(t(w), { label: "卖点图" }, {
1890
+ default: a(() => [
1891
+ xe.value.length ? (u(!0), b(P, { key: 0 }, G(xe.value, (l, g) => (u(), C(t(se), {
1892
+ key: g,
1893
+ src: l,
1894
+ "preview-src-list": xe.value,
1895
+ "initial-index": g,
1896
+ "preview-teleported": "",
1897
+ fit: "cover",
1898
+ class: "pdd-img"
1899
+ }, null, 8, ["src", "preview-src-list", "initial-index"]))), 128)) : (u(), b("span", Ll, "—"))
1900
+ ]),
1901
+ _: 1
1902
+ })
1903
+ ]),
1904
+ _: 1
1905
+ })
1906
+ ], 64)),
1907
+ d[15] || (d[15] = S("div", { class: "pdd-title" }, "申报信息", -1)),
1908
+ n(t(oe), {
1909
+ column: 3,
1910
+ border: "",
1911
+ size: "small"
1912
+ }, {
1913
+ default: a(() => [
1914
+ n(t(w), { label: "中文申报名" }, {
1915
+ default: a(() => [
1916
+ p(m(x(V.value.declaration_name)), 1)
1917
+ ]),
1918
+ _: 1
1919
+ }),
1920
+ n(t(w), { label: "英文申报名" }, {
1921
+ default: a(() => [
1922
+ p(m(x(V.value.declaration_name_en)), 1)
1923
+ ]),
1924
+ _: 1
1925
+ }),
1926
+ n(t(w), { label: "中文材质" }, {
1927
+ default: a(() => [
1928
+ p(m(x(V.value.material)), 1)
1929
+ ]),
1930
+ _: 1
1931
+ }),
1932
+ n(t(w), { label: "英文材质" }, {
1933
+ default: a(() => [
1934
+ p(m(x(V.value.material_en)), 1)
1935
+ ]),
1936
+ _: 1
1937
+ }),
1938
+ n(t(w), { label: "中文用途" }, {
1939
+ default: a(() => [
1940
+ p(m(x(V.value.use)), 1)
1941
+ ]),
1942
+ _: 1
1943
+ }),
1944
+ n(t(w), { label: "英文用途" }, {
1945
+ default: a(() => [
1946
+ p(m(x(V.value.use_en)), 1)
1947
+ ]),
1948
+ _: 1
1949
+ }),
1950
+ n(t(w), { label: "中文功能" }, {
1951
+ default: a(() => [
1952
+ p(m(x(V.value.usage)), 1)
1953
+ ]),
1954
+ _: 1
1955
+ }),
1956
+ n(t(w), { label: "英文功能" }, {
1957
+ default: a(() => [
1958
+ p(m(x(V.value.usage_en)), 1)
1959
+ ]),
1960
+ _: 1
1961
+ }),
1962
+ n(t(w), { label: "申报价值" }, {
1963
+ default: a(() => [
1964
+ p(m(V.value.declaration_value != null && V.value.declaration_value !== "" ? `${V.value.declaration_value} ${V.value.declaration_currency_code || ""}` : "—"), 1)
1965
+ ]),
1966
+ _: 1
1967
+ }),
1968
+ n(t(w), { label: "海关编码" }, {
1969
+ default: a(() => [
1970
+ p(m(x(V.value.hs_code)), 1)
1971
+ ]),
1972
+ _: 1
1973
+ }),
1974
+ n(t(w), { label: "报关型号" }, {
1975
+ default: a(() => [
1976
+ p(m(x(V.value.declaration_model)), 1)
1977
+ ]),
1978
+ _: 1
1979
+ }),
1980
+ n(t(w), { label: "原产地" }, {
1981
+ default: a(() => [
1982
+ p(m(x(V.value.country_of_origin)), 1)
1983
+ ]),
1984
+ _: 1
1985
+ }),
1986
+ n(t(w), { label: "境内货源地" }, {
1987
+ default: a(() => [
1988
+ p(m(x(V.value.domestic_source_location)), 1)
1989
+ ]),
1990
+ _: 1
1991
+ }),
1992
+ n(t(w), {
1993
+ label: "申报单位",
1994
+ span: 2
1995
+ }, {
1996
+ default: a(() => [
1997
+ p(m(x(ot.value)), 1)
1998
+ ]),
1999
+ _: 1
2000
+ })
2001
+ ]),
2002
+ _: 1
2003
+ }),
2004
+ d[16] || (d[16] = S("div", { class: "pdd-title" }, "质检项", -1)),
2005
+ n(t(oe), {
2006
+ column: 3,
2007
+ border: "",
2008
+ size: "small"
2009
+ }, {
2010
+ default: a(() => [
2011
+ n(t(w), { label: "质检方式" }, {
2012
+ default: a(() => [
2013
+ p(m(ct.value), 1)
2014
+ ]),
2015
+ _: 1
2016
+ }),
2017
+ n(t(w), {
2018
+ label: "模板",
2019
+ span: 2
2020
+ }, {
2021
+ default: a(() => [
2022
+ p(m(x(M.value.template_name || M.value.template_id || M.value.qc_temp_id)), 1)
2023
+ ]),
2024
+ _: 1
2025
+ }),
2026
+ n(t(w), {
2027
+ label: "图片",
2028
+ span: 3
2029
+ }, {
2030
+ default: a(() => [
2031
+ $e.value.length ? (u(!0), b(P, { key: 0 }, G($e.value, (l, g) => (u(), C(t(se), {
2032
+ key: g,
2033
+ src: l,
2034
+ "preview-src-list": $e.value,
2035
+ "initial-index": g,
2036
+ "preview-teleported": "",
2037
+ fit: "cover",
2038
+ class: "pdd-img"
2039
+ }, null, 8, ["src", "preview-src-list", "initial-index"]))), 128)) : (u(), b("span", Pl, "—"))
2040
+ ]),
2041
+ _: 1
2042
+ }),
2043
+ n(t(w), {
2044
+ label: "附件",
2045
+ span: 3
2046
+ }, {
2047
+ default: a(() => [
2048
+ Re.value.length ? (u(!0), b(P, { key: 0 }, G(Re.value, (l, g) => (u(), b("a", {
2049
+ key: g,
2050
+ href: l.url,
2051
+ target: "_blank",
2052
+ class: "pdd-file"
2053
+ }, m(l.name), 9, ql))), 128)) : (u(), b("span", Fl, "—"))
2054
+ ]),
2055
+ _: 1
2056
+ })
2057
+ ]),
2058
+ _: 1
2059
+ }),
2060
+ Be.value.length ? (u(), b(P, { key: 5 }, [
2061
+ d[11] || (d[11] = S("div", { class: "pdd-subtitle" }, "自定义质检项", -1)),
2062
+ n(t(ne), {
2063
+ data: Be.value,
2064
+ border: "",
2065
+ size: "small",
2066
+ class: "pdd-table"
2067
+ }, {
2068
+ default: a(() => [
2069
+ n(t(T), {
2070
+ type: "index",
2071
+ label: "序号",
2072
+ width: "60",
2073
+ align: "center"
2074
+ }),
2075
+ n(t(T), {
2076
+ label: "质检项",
2077
+ prop: "qc_item",
2078
+ "min-width": "150",
2079
+ "show-overflow-tooltip": ""
2080
+ }),
2081
+ n(t(T), {
2082
+ label: "质检内容",
2083
+ prop: "qc_content",
2084
+ "min-width": "250",
2085
+ "show-overflow-tooltip": ""
2086
+ })
2087
+ ]),
2088
+ _: 1
2089
+ }, 8, ["data"])
2090
+ ], 64)) : B("", !0),
2091
+ ze.value.length ? (u(), b(P, { key: 6 }, [
2092
+ d[12] || (d[12] = S("div", { class: "pdd-title" }, "自定义属性", -1)),
2093
+ n(t(ne), {
2094
+ data: ze.value,
2095
+ border: "",
2096
+ size: "small",
2097
+ class: "pdd-table"
2098
+ }, {
2099
+ default: a(() => [
2100
+ n(t(T), {
2101
+ label: "属性名称",
2102
+ prop: "attr_name",
2103
+ width: "200",
2104
+ "show-overflow-tooltip": ""
2105
+ }),
2106
+ n(t(T), { label: "属性值" }, {
2107
+ default: a(({ row: l }) => [
2108
+ p(m(ft(l)), 1)
2109
+ ]),
2110
+ _: 1
2111
+ })
2112
+ ]),
2113
+ _: 1
2114
+ }, 8, ["data"])
2115
+ ], 64)) : B("", !0)
2116
+ ], 64)) : f.value ? B("", !0) : (u(), C(t(Tt), {
2117
+ key: 1,
2118
+ description: "暂无数据"
2119
+ }))
2120
+ ])), [
2121
+ [t(qe), f.value]
2122
+ ])
2123
+ ]),
2124
+ _: 1
2125
+ }, 8, ["model-value"]));
2126
+ }
2127
+ }), Ul = /* @__PURE__ */ ae(Nl, [["__scopeId", "data-v-8f050f53"]]), Hl = {
2128
+ key: 1,
2129
+ class: "j-sku-link-empty"
2130
+ }, Wl = /* @__PURE__ */ ee({
2131
+ name: "JSkuLink",
2132
+ __name: "JSkuLink",
2133
+ props: {
2134
+ code: {},
2135
+ emptyText: { default: "-" }
2136
+ },
2137
+ emits: ["open"],
2138
+ setup(e, { emit: h }) {
2139
+ const s = e, o = h, r = j(() => String(s.code ?? "").trim() || s.emptyText), f = j(() => {
2140
+ const k = String(s.code ?? "").trim();
2141
+ return k !== "" && k !== "-";
2142
+ }), v = () => {
2143
+ f.value && o("open", String(s.code).trim());
2144
+ };
2145
+ return (k, c) => f.value ? (u(), b("span", {
2146
+ key: 0,
2147
+ class: "j-sku-link",
2148
+ onClick: ge(v, ["stop"])
2149
+ }, m(r.value), 1)) : (u(), b("span", Hl, m(e.emptyText), 1));
2150
+ }
2151
+ }), Kl = /* @__PURE__ */ ae(Wl, [["__scopeId", "data-v-7f661ba5"]]);
2152
+ function ma() {
2153
+ const e = q(!1), h = q("");
2154
+ return {
2155
+ productDetailDialogVisible: e,
2156
+ productDetailDialogCode: h,
2157
+ openProductDetailDialog: (o) => {
2158
+ const r = String(o ?? "").trim();
2159
+ !r || r === "-" || (h.value = r, e.value = !0);
2160
+ }
2161
+ };
2162
+ }
2163
+ const Xl = /* @__PURE__ */ ee({
2164
+ name: "JSearchInputDialog",
2165
+ __name: "JSearchInputDialog",
2166
+ props: /* @__PURE__ */ ye({
2167
+ options: { default: () => [] },
2168
+ placeholder: { default: "请输入关键词" },
2169
+ width: { default: "320px" },
2170
+ selectWidth: { default: "100px" },
2171
+ separator: { default: "," },
2172
+ dialogTitle: { default: "" },
2173
+ dialogWidth: { default: "480px" },
2174
+ rows: { default: 8 },
2175
+ textareaPlaceholder: { default: "支持换行、逗号、空格分隔,确定后自动合并" },
2176
+ clearOnTypeChange: { type: Boolean, default: !1 }
2177
+ }, {
2178
+ type: { default: "" },
2179
+ typeModifiers: {},
2180
+ keyword: { default: "" },
2181
+ keywordModifiers: {}
2182
+ }),
2183
+ emits: /* @__PURE__ */ ye(["confirm", "search"], ["update:type", "update:keyword"]),
2184
+ setup(e, { expose: h, emit: s }) {
2185
+ var _, D;
2186
+ const o = e, r = Se(e, "type"), f = Se(e, "keyword"), v = s, k = q(!1), c = q(""), $ = j(
2187
+ () => o.options.find((z) => z.value === r.value)
2188
+ ), I = j(() => {
2189
+ var y;
2190
+ return o.dialogTitle ? o.dialogTitle : `批量输入${((y = $.value) == null ? void 0 : y.label) || "关键词"}`;
2191
+ }), N = (z) => {
2192
+ if (!z) return "";
2193
+ const y = z.split(/[\n\r,,;;\s\t]+/).map((O) => O.trim()).filter(Boolean), K = [], L = /* @__PURE__ */ new Set();
2194
+ for (const O of y)
2195
+ L.has(O) || (L.add(O), K.push(O));
2196
+ return K.join(o.separator);
2197
+ }, V = (z) => z ? z.split(/[\n\r,,;;\s\t.]+/).map((y) => y.trim()).filter(Boolean).join(`
2198
+ `) : "", M = () => {
2199
+ c.value = V(f.value), k.value = !0;
2200
+ }, E = () => {
2201
+ f.value = N(c.value), k.value = !1, v("confirm", {
2202
+ type: r.value,
2203
+ keyword: f.value
2204
+ });
2205
+ }, W = () => {
2206
+ c.value = "";
2207
+ };
2208
+ return !r.value && ((_ = o.options) != null && _.length) && (r.value = ((D = o.options[0]) == null ? void 0 : D.value) || ""), be(r, (z, y) => {
2209
+ o.clearOnTypeChange && z !== y && (f.value = "");
2210
+ }), h({
2211
+ reset: (z) => {
2212
+ var y, K;
2213
+ r.value = z || ((K = (y = o.options) == null ? void 0 : y[0]) == null ? void 0 : K.value) || "", f.value = "";
2214
+ },
2215
+ toParams: () => !f.value || !r.value ? {} : { [r.value]: f.value },
2216
+ openDialog: M
2217
+ }), (z, y) => {
2218
+ const K = de("el-option"), L = de("el-select"), O = de("el-button"), X = de("el-input"), x = de("el-dialog");
2219
+ return u(), b("div", {
2220
+ class: "j-search-input-dialog",
2221
+ style: ce({ width: e.width })
2222
+ }, [
2223
+ n(X, {
2224
+ modelValue: f.value,
2225
+ "onUpdate:modelValue": y[1] || (y[1] = (J) => f.value = J),
2226
+ placeholder: e.placeholder,
2227
+ clearable: "",
2228
+ class: "j-search-input-dialog__input",
2229
+ onKeyup: y[2] || (y[2] = $t((J) => v("search"), ["enter"]))
2230
+ }, {
2231
+ prepend: a(() => [
2232
+ n(L, {
2233
+ modelValue: r.value,
2234
+ "onUpdate:modelValue": y[0] || (y[0] = (J) => r.value = J),
2235
+ style: ce({ width: e.selectWidth }),
2236
+ disabled: !e.options.length
2237
+ }, {
2238
+ default: a(() => [
2239
+ (u(!0), b(P, null, G(e.options, (J) => (u(), C(K, {
2240
+ key: J.value,
2241
+ label: J.label,
2242
+ value: J.value
2243
+ }, null, 8, ["label", "value"]))), 128))
2244
+ ]),
2245
+ _: 1
2246
+ }, 8, ["modelValue", "style", "disabled"])
2247
+ ]),
2248
+ append: a(() => [
2249
+ n(O, {
2250
+ icon: t(Vt),
2251
+ title: I.value,
2252
+ onClick: M
2253
+ }, null, 8, ["icon", "title"])
2254
+ ]),
2255
+ _: 1
2256
+ }, 8, ["modelValue", "placeholder"]),
2257
+ n(x, {
2258
+ modelValue: k.value,
2259
+ "onUpdate:modelValue": y[5] || (y[5] = (J) => k.value = J),
2260
+ title: I.value,
2261
+ width: e.dialogWidth,
2262
+ "append-to-body": "",
2263
+ "destroy-on-close": "",
2264
+ "close-on-click-modal": !1,
2265
+ onClosed: W
2266
+ }, {
2267
+ footer: a(() => [
2268
+ n(O, {
2269
+ onClick: y[4] || (y[4] = (J) => k.value = !1)
2270
+ }, {
2271
+ default: a(() => [...y[6] || (y[6] = [
2272
+ p("取消", -1)
2273
+ ])]),
2274
+ _: 1
2275
+ }),
2276
+ n(O, {
2277
+ type: "primary",
2278
+ onClick: E
2279
+ }, {
2280
+ default: a(() => [...y[7] || (y[7] = [
2281
+ p("确定", -1)
2282
+ ])]),
2283
+ _: 1
2284
+ })
2285
+ ]),
2286
+ default: a(() => [
2287
+ n(X, {
2288
+ modelValue: c.value,
2289
+ "onUpdate:modelValue": y[3] || (y[3] = (J) => c.value = J),
2290
+ type: "textarea",
2291
+ rows: e.rows,
2292
+ placeholder: e.textareaPlaceholder,
2293
+ resize: "vertical"
2294
+ }, null, 8, ["modelValue", "rows", "placeholder"])
2295
+ ]),
2296
+ _: 1
2297
+ }, 8, ["modelValue", "title", "width"])
984
2298
  ], 4);
985
2299
  };
986
2300
  }
987
- }), ft = /* @__PURE__ */ W(mt, [["__scopeId", "data-v-d1b0f182"]]);
988
- function oe(e, a) {
989
- return Array.isArray(e) ? e.map((t) => oe(t, a)) : e !== null && typeof e == "object" && !(e instanceof Date) ? a(e) : e;
2301
+ }), Gl = /* @__PURE__ */ ae(Xl, [["__scopeId", "data-v-29890413"]]);
2302
+ function Ee(e, h) {
2303
+ return Array.isArray(e) ? e.map((s) => Ee(s, h)) : e !== null && typeof e == "object" && !(e instanceof Date) ? h(e) : e;
990
2304
  }
991
- function pt(e, a = []) {
2305
+ function Zl(e, h = []) {
992
2306
  return Object.fromEntries(
993
- Object.entries(e).map(([t, n]) => {
994
- const l = oe(n, (i) => pt(i, a));
995
- return a.includes(t) ? [t, l] : [t.replace(/([A-Z])/g, "_$1").toLowerCase(), l];
2307
+ Object.entries(e).map(([s, o]) => {
2308
+ const r = Ee(o, (v) => Zl(v, h));
2309
+ return h.includes(s) ? [s, r] : [s.replace(/([A-Z])/g, "_$1").toLowerCase(), r];
996
2310
  })
997
2311
  );
998
2312
  }
999
- function ht(e, a = []) {
2313
+ function Ql(e, h = []) {
1000
2314
  return Object.fromEntries(
1001
- Object.entries(e).map(([t, n]) => {
1002
- const l = oe(n, (i) => ht(i, a));
1003
- return a.includes(t) ? [t, l] : [t.replace(/_([a-z])/g, (i, r) => r.toUpperCase()), l];
2315
+ Object.entries(e).map(([s, o]) => {
2316
+ const r = Ee(o, (v) => Ql(v, h));
2317
+ return h.includes(s) ? [s, r] : [s.replace(/_([a-z])/g, (v, k) => k.toUpperCase()), r];
1004
2318
  })
1005
2319
  );
1006
2320
  }
1007
- function St(e, a) {
1008
- const t = {};
1009
- for (const n of a)
1010
- n in e && (t[n] = e[n]);
1011
- return t;
2321
+ function pa(e, h) {
2322
+ const s = {};
2323
+ for (const o of h)
2324
+ o in e && (s[o] = e[o]);
2325
+ return s;
1012
2326
  }
1013
- function Bt(e, a) {
1014
- const t = { ...e };
1015
- for (const n of a)
1016
- delete t[n];
1017
- return t;
2327
+ function fa(e, h) {
2328
+ const s = { ...e };
2329
+ for (const o of h)
2330
+ delete s[o];
2331
+ return s;
1018
2332
  }
1019
- function ue(e) {
2333
+ function Ne(e) {
1020
2334
  if (e === null || typeof e != "object") return e;
1021
2335
  if (e instanceof Date) return new Date(e.getTime());
1022
2336
  if (e instanceof RegExp) return new RegExp(e.source, e.flags);
1023
- if (Array.isArray(e)) return e.map((t) => ue(t));
1024
- const a = {};
1025
- for (const t of Object.keys(e))
1026
- a[t] = ue(e[t]);
1027
- return a;
2337
+ if (Array.isArray(e)) return e.map((s) => Ne(s));
2338
+ const h = {};
2339
+ for (const s of Object.keys(e))
2340
+ h[s] = Ne(e[s]);
2341
+ return h;
1028
2342
  }
1029
- function vt(e, a = !1) {
1030
- const t = {};
1031
- for (const [n, l] of Object.entries(e))
1032
- if (!(l == null || l === ""))
1033
- if (a && typeof l == "object" && !Array.isArray(l) && !(l instanceof Date)) {
1034
- const o = vt(l, !0);
1035
- Object.keys(o).length > 0 && (t[n] = o);
2343
+ function Yl(e, h = !1) {
2344
+ const s = {};
2345
+ for (const [o, r] of Object.entries(e))
2346
+ if (!(r == null || r === ""))
2347
+ if (h && typeof r == "object" && !Array.isArray(r) && !(r instanceof Date)) {
2348
+ const f = Yl(r, !0);
2349
+ Object.keys(f).length > 0 && (s[o] = f);
1036
2350
  } else
1037
- t[n] = l;
1038
- return t;
2351
+ s[o] = r;
2352
+ return s;
1039
2353
  }
1040
- function gt(e, a = "", t = ".") {
1041
- const n = {};
1042
- for (const [l, o] of Object.entries(e)) {
1043
- const i = a ? `${a}${t}${l}` : l;
1044
- o !== null && typeof o == "object" && !Array.isArray(o) && !(o instanceof Date) ? Object.assign(n, gt(o, i, t)) : n[i] = o;
2354
+ function ea(e, h = "", s = ".") {
2355
+ const o = {};
2356
+ for (const [r, f] of Object.entries(e)) {
2357
+ const v = h ? `${h}${s}${r}` : r;
2358
+ f !== null && typeof f == "object" && !Array.isArray(f) && !(f instanceof Date) ? Object.assign(o, ea(f, v, s)) : o[v] = f;
1045
2359
  }
1046
- return n;
2360
+ return o;
1047
2361
  }
1048
- function Mt(e, a = ".") {
1049
- const t = {};
1050
- for (const [n, l] of Object.entries(e)) {
1051
- const o = n.split(a);
1052
- let i = t;
1053
- for (let r = 0; r < o.length - 1; r++) {
1054
- const c = o[r];
1055
- c in i || (i[c] = {}), i = i[c];
2362
+ function va(e, h = ".") {
2363
+ const s = {};
2364
+ for (const [o, r] of Object.entries(e)) {
2365
+ const f = o.split(h);
2366
+ let v = s;
2367
+ for (let k = 0; k < f.length - 1; k++) {
2368
+ const c = f[k];
2369
+ c in v || (v[c] = {}), v = v[c];
1056
2370
  }
1057
- i[o[o.length - 1]] = l;
2371
+ v[f[f.length - 1]] = r;
1058
2372
  }
1059
- return t;
2373
+ return s;
1060
2374
  }
1061
- function At(e) {
1062
- return Object.entries(e).map(([a, t]) => ({
1063
- id: a,
1064
- label: t,
1065
- prop: a
2375
+ function ha(e) {
2376
+ return Object.entries(e).map(([h, s]) => ({
2377
+ id: h,
2378
+ label: s,
2379
+ prop: h
1066
2380
  }));
1067
2381
  }
1068
- function yt(e, a) {
2382
+ function ta(e, h) {
1069
2383
  if (!e) return null;
1070
- let t = e.replace(/^@\//, "");
1071
- t.startsWith("views/") || (t = `views/${t}`), t.endsWith(".vue") || (t = `${t}.vue`);
1072
- const n = `/src/${t}`;
1073
- return a[n] ?? a["/src/views/common/NotFound.vue"] ?? null;
2384
+ let s = e.replace(/^@\//, "");
2385
+ s.startsWith("views/") || (s = `views/${s}`), s.endsWith(".vue") || (s = `${s}.vue`);
2386
+ const o = `/src/${s}`;
2387
+ return h[o] ?? h["/src/views/common/NotFound.vue"] ?? null;
1074
2388
  }
1075
- function bt(e) {
1076
- const a = /* @__PURE__ */ new Map(), t = [];
1077
- return e.forEach((n) => a.set(n.name, { ...n, children: [] })), e.forEach((n) => {
1078
- const l = a.get(n.name);
1079
- if (!n.parent_name)
1080
- t.push(l);
2389
+ function la(e) {
2390
+ const h = /* @__PURE__ */ new Map(), s = [];
2391
+ return e.forEach((o) => h.set(o.name, { ...o, children: [] })), e.forEach((o) => {
2392
+ const r = h.get(o.name);
2393
+ if (!o.parent_name)
2394
+ s.push(r);
1081
2395
  else {
1082
- const o = a.get(n.parent_name);
1083
- o ? (o.children ?? (o.children = []), o.children.push(l)) : t.push(l);
2396
+ const f = h.get(o.parent_name);
2397
+ f ? (f.children ?? (f.children = []), f.children.push(r)) : s.push(r);
1084
2398
  }
1085
- }), t;
2399
+ }), s;
1086
2400
  }
1087
- function he(e, a, t) {
1088
- return e.filter((n) => !t || !n.project || n.project === t).map((n) => {
1089
- var i;
1090
- const l = {
1091
- path: n.path,
1092
- name: n.name,
2401
+ function st(e, h, s) {
2402
+ return e.filter((o) => !s || !o.project || o.project === s).map((o) => {
2403
+ var v;
2404
+ const r = {
2405
+ path: o.path,
2406
+ name: o.name,
1093
2407
  meta: {
1094
- requiresAuth: n.requiresAuth === 1,
1095
- title: n.title,
1096
- permissions: n.permissions ? n.permissions.split(",").map((r) => r.trim()).filter(Boolean) : [],
1097
- params: n.params ? n.params.split("&").map((r) => r.trim()).filter(Boolean) : []
2408
+ requiresAuth: o.requiresAuth === 1,
2409
+ title: o.title,
2410
+ permissions: o.permissions ? o.permissions.split(",").map((k) => k.trim()).filter(Boolean) : [],
2411
+ params: o.params ? o.params.split("&").map((k) => k.trim()).filter(Boolean) : []
1098
2412
  }
1099
- }, o = yt(n.component, a);
1100
- return o && (l.component = o), n.redirect && (l.redirect = n.redirect), (i = n.children) != null && i.length && (l.children = he(n.children, a, t)), l;
2413
+ }, f = ta(o.component, h);
2414
+ return f && (r.component = f), o.redirect && (r.redirect = o.redirect), (v = o.children) != null && v.length && (r.children = st(o.children, h, s)), r;
1101
2415
  });
1102
2416
  }
1103
- function Et(e, a, t, n) {
1104
- const l = /* @__PURE__ */ new Map();
1105
- e.forEach((i) => l.set(i.name, i));
1106
- const o = (i) => {
1107
- let r = i.parent_name;
2417
+ function _a(e, h, s, o) {
2418
+ const r = /* @__PURE__ */ new Map();
2419
+ e.forEach((v) => r.set(v.name, v));
2420
+ const f = (v) => {
2421
+ let k = v.parent_name;
1108
2422
  const c = /* @__PURE__ */ new Set();
1109
- for (; r; ) {
1110
- if (r === t) return !0;
1111
- if (c.has(r)) return !1;
1112
- c.add(r);
1113
- const h = l.get(r);
1114
- if (!h) return !1;
1115
- r = h.parent_name;
2423
+ for (; k; ) {
2424
+ if (k === s) return !0;
2425
+ if (c.has(k)) return !1;
2426
+ c.add(k);
2427
+ const $ = r.get(k);
2428
+ if (!$) return !1;
2429
+ k = $.parent_name;
1116
2430
  }
1117
2431
  return !1;
1118
2432
  };
1119
2433
  return e.filter(
1120
- (i) => i.name !== t && i.is_show === 1 && i.component && a.includes(i.code) && o(i) && (!n || !i.project || i.project === n)
1121
- ).sort((i, r) => i.sorts - r.sorts)[0];
2434
+ (v) => v.name !== s && v.is_show === 1 && v.component && h.includes(v.code) && f(v) && (!o || !v.project || v.project === o)
2435
+ ).sort((v, k) => v.sorts - k.sorts)[0];
1122
2436
  }
1123
- ne.configure({ showSpinner: !1 });
1124
- const de = (...e) => {
1125
- }, re = (...e) => {
1126
- }, _t = (...e) => {
2437
+ Ie.configure({ showSpinner: !1 });
2438
+ const Ue = (...e) => {
2439
+ }, He = (...e) => {
2440
+ }, aa = (...e) => {
1127
2441
  console.error("[Router]", ...e);
1128
2442
  };
1129
- function Tt(e, a) {
2443
+ function ga(e, h) {
1130
2444
  const {
1131
- getRouteStore: t,
1132
- getPermissionStore: n,
1133
- getUserStore: l,
1134
- isAuthenticated: o,
1135
- viewModules: i,
1136
- homeComponent: r,
2445
+ getRouteStore: s,
2446
+ getPermissionStore: o,
2447
+ getUserStore: r,
2448
+ isAuthenticated: f,
2449
+ viewModules: v,
2450
+ homeComponent: k,
1137
2451
  notFoundComponent: c,
1138
- projectName: h,
1139
- layoutRouteName: _ = "Layout",
1140
- publicPaths: P = ["/login", "/register"],
1141
- loginRouteName: T = "login",
1142
- forbiddenRouteName: $ = "Forbidden",
1143
- homeRouteName: g = "Home",
1144
- homeRoutePath: F = "home",
1145
- homeTitle: m = "首页",
1146
- noPermissionMessage: f = "暂无权限"
1147
- } = a;
1148
- let s = !1;
1149
- function j(v) {
1150
- const k = bt(v).find((J) => J.name === _), A = k != null && k.children ? he(k.children, i, h) : [];
1151
- A.forEach((J) => {
1152
- J.name && e.hasRoute(J.name) || (e.addRoute(_, J), de(`Add route: ${String(J.name)} -> ${J.path}`));
1153
- }), e.hasRoute(g) || e.addRoute(_, {
1154
- path: F,
1155
- name: g,
1156
- component: r,
1157
- meta: { title: m }
2452
+ projectName: $,
2453
+ layoutRouteName: I = "Layout",
2454
+ publicPaths: N = ["/login", "/register"],
2455
+ loginRouteName: V = "login",
2456
+ forbiddenRouteName: M = "Forbidden",
2457
+ homeRouteName: E = "Home",
2458
+ homeRoutePath: W = "home",
2459
+ homeTitle: F = "首页",
2460
+ noPermissionMessage: R = "暂无权限"
2461
+ } = h;
2462
+ let _ = !1;
2463
+ function D(y) {
2464
+ const L = la(y).find((X) => X.name === I), O = L != null && L.children ? st(L.children, v, $) : [];
2465
+ O.forEach((X) => {
2466
+ X.name && e.hasRoute(X.name) || (e.addRoute(I, X), Ue(`Add route: ${String(X.name)} -> ${X.path}`));
2467
+ }), e.hasRoute(E) || e.addRoute(I, {
2468
+ path: W,
2469
+ name: E,
2470
+ component: k,
2471
+ meta: { title: F }
1158
2472
  }), e.hasRoute("NotFound") || e.addRoute({
1159
2473
  path: "/:pathMatch(.*)*",
1160
2474
  name: "NotFound",
1161
2475
  component: c
1162
- }), de(`Dynamic routes added: ${A.length}`);
2476
+ }), Ue(`Dynamic routes added: ${O.length}`);
1163
2477
  }
1164
- function R(v, E) {
1165
- if (v === g) {
1166
- E();
2478
+ function z(y, K) {
2479
+ if (y === E) {
2480
+ K();
1167
2481
  return;
1168
2482
  }
1169
- e.hasRoute(g) ? E({ name: g, replace: !0 }) : E();
2483
+ e.hasRoute(E) ? K({ name: E, replace: !0 }) : K();
1170
2484
  }
1171
- return e.beforeEach(async (v, E, k) => {
1172
- if (ne.start(), o() && !s)
2485
+ return e.beforeEach(async (y, K, L) => {
2486
+ if (Ie.start(), f() && !_)
1173
2487
  try {
1174
- const L = t(), H = n();
1175
- if (await L.initRoutes(), await H.loadUserPermissions(), j(L.backendRoutes), s = !0, v.path === "/" || v.path === "") {
1176
- R(v.name, k);
2488
+ const J = s(), Z = o();
2489
+ if (await J.initRoutes(), await Z.loadUserPermissions(), D(J.backendRoutes), _ = !0, y.path === "/" || y.path === "") {
2490
+ z(y.name, L);
1177
2491
  return;
1178
2492
  }
1179
- if (v.name === _) {
1180
- R(v.name, k);
2493
+ if (y.name === I) {
2494
+ z(y.name, L);
1181
2495
  return;
1182
2496
  }
1183
- const I = L.backendRoutes.find((K) => K.name === v.name);
1184
- if (I && !H.routePermissions.includes(I.code)) {
1185
- re("No route permission:", v.path), k({ name: $, replace: !0 });
2497
+ const Q = J.backendRoutes.find((me) => me.name === y.name);
2498
+ if (Q && !Z.routePermissions.includes(Q.code)) {
2499
+ He("No route permission:", y.path), L({ name: M, replace: !0 });
1186
2500
  return;
1187
2501
  }
1188
- k({
1189
- path: v.path,
1190
- query: v.query,
1191
- hash: v.hash,
2502
+ L({
2503
+ path: y.path,
2504
+ query: y.query,
2505
+ hash: y.hash,
1192
2506
  replace: !0
1193
2507
  });
1194
2508
  return;
1195
- } catch (L) {
1196
- _t("Failed to load route permissions:", L), s = !1, await l().logout(), k({ name: T, replace: !0 });
2509
+ } catch (J) {
2510
+ aa("Failed to load route permissions:", J), _ = !1, await r().logout(), L({ name: V, replace: !0 });
1197
2511
  return;
1198
2512
  }
1199
- if (P.includes(v.path)) {
1200
- o() ? k({ path: "/", replace: !0 }) : k();
2513
+ if (N.includes(y.path)) {
2514
+ f() ? L({ path: "/", replace: !0 }) : L();
1201
2515
  return;
1202
2516
  }
1203
- if (!o()) {
1204
- k({ name: T, replace: !0 });
2517
+ if (!f()) {
2518
+ L({ name: V, replace: !0 });
1205
2519
  return;
1206
2520
  }
1207
- const A = n(), J = t();
1208
- if (v.name === g) {
1209
- k();
2521
+ const O = o(), X = s();
2522
+ if (y.name === E) {
2523
+ L();
1210
2524
  return;
1211
2525
  }
1212
- if (A.routePermissions.length === 0) {
1213
- v.path !== "/" ? (M.warning(f), k({ path: "/", replace: !0 })) : R(v.name, k);
2526
+ if (O.routePermissions.length === 0) {
2527
+ y.path !== "/" ? (H.warning(R), L({ path: "/", replace: !0 })) : z(y.name, L);
1214
2528
  return;
1215
2529
  }
1216
- if (v.path === "/") {
1217
- R(v.name, k);
2530
+ if (y.path === "/") {
2531
+ z(y.name, L);
1218
2532
  return;
1219
2533
  }
1220
- if (v.name === _) {
1221
- R(v.name, k);
2534
+ if (y.name === I) {
2535
+ z(y.name, L);
1222
2536
  return;
1223
2537
  }
1224
- const O = J.backendRoutes.find((L) => L.name === v.name);
1225
- if (O && !A.routePermissions.includes(O.code)) {
1226
- re("No route permission:", v.path), k({ name: $, replace: !0 });
2538
+ const x = X.backendRoutes.find((J) => J.name === y.name);
2539
+ if (x && !O.routePermissions.includes(x.code)) {
2540
+ He("No route permission:", y.path), L({ name: M, replace: !0 });
1227
2541
  return;
1228
2542
  }
1229
- k();
1230
- }), e.afterEach(() => ne.done()), {
2543
+ L();
2544
+ }), e.afterEach(() => Ie.done()), {
1231
2545
  resetRouterState: () => {
1232
- s = !1;
2546
+ _ = !1;
1233
2547
  }
1234
2548
  };
1235
2549
  }
1236
- const wt = [Be, Pe, X, He, Ge, pe, fe, ft], kt = (e) => {
1237
- wt.forEach((a) => {
1238
- e.component(a.name ?? a.__name ?? "", a);
2550
+ const na = [
2551
+ Ot,
2552
+ Yt,
2553
+ ve,
2554
+ ll,
2555
+ dl,
2556
+ Ye,
2557
+ Qe,
2558
+ Cl,
2559
+ Ul,
2560
+ Kl,
2561
+ Gl
2562
+ ], sa = (e) => {
2563
+ na.forEach((h) => {
2564
+ e.component(h.name ?? h.__name ?? "", h);
1239
2565
  });
1240
- }, Vt = { install: kt };
2566
+ }, ya = { install: sa };
1241
2567
  export {
1242
- ft as JAdminLayout,
1243
- Be as JButton,
1244
- X as JIconRender,
1245
- Ge as JImportExcel,
1246
- He as JSearchHeader,
1247
- fe as JSideMenuItem,
1248
- pe as JSidebar,
1249
- Pe as JUploadImg,
1250
- bt as buildRouteTree,
1251
- Tt as createRouterGuard,
1252
- ue as deepClone,
1253
- Vt as default,
1254
- vt as filterEmpty,
1255
- Et as findFirstAllowedRoute,
1256
- gt as flatten,
1257
- yt as getComponentImport,
1258
- Bt as omit,
1259
- St as pick,
1260
- ht as toCamelCase,
1261
- pt as toSnakeCase,
1262
- At as toTableColumns,
1263
- he as transformBackendRoutes,
1264
- Mt as unflatten
2568
+ Cl as JAdminLayout,
2569
+ Ot as JButton,
2570
+ ve as JIconRender,
2571
+ dl as JImportExcel,
2572
+ Ul as JProductDetailDialog,
2573
+ ll as JSearchHeader,
2574
+ Gl as JSearchInputDialog,
2575
+ Qe as JSideMenuItem,
2576
+ Ye as JSidebar,
2577
+ Kl as JSkuLink,
2578
+ Yt as JUploadImg,
2579
+ la as buildRouteTree,
2580
+ ga as createRouterGuard,
2581
+ Ne as deepClone,
2582
+ ya as default,
2583
+ Yl as filterEmpty,
2584
+ _a as findFirstAllowedRoute,
2585
+ ea as flatten,
2586
+ ta as getComponentImport,
2587
+ fa as omit,
2588
+ pa as pick,
2589
+ Ql as toCamelCase,
2590
+ Zl as toSnakeCase,
2591
+ ha as toTableColumns,
2592
+ st as transformBackendRoutes,
2593
+ va as unflatten,
2594
+ ma as useProductDetailDialog
1265
2595
  };
1266
2596
  //# sourceMappingURL=index.js.map