mvframe 1.0.16 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/@ctrl.js +710 -0
  2. package/dist/@element-plus.js +659 -0
  3. package/dist/@floating-ui.js +997 -0
  4. package/dist/@sxzz.js +552 -0
  5. package/dist/@turf.js +1 -0
  6. package/dist/@visactor.js +55144 -0
  7. package/dist/@vue.js +30 -0
  8. package/dist/@vueuse.js +583 -0
  9. package/dist/Config.js +131 -109
  10. package/dist/async-validator.js +648 -0
  11. package/dist/composition.js +104 -96
  12. package/dist/css/cpt.css +1 -1
  13. package/dist/css/style.css +1 -1
  14. package/dist/cssfontparser.js +103 -0
  15. package/dist/d3-array.js +1 -0
  16. package/dist/d3-dsv.js +1 -0
  17. package/dist/d3-geo.js +1 -0
  18. package/dist/d3-hexbin.js +1 -0
  19. package/dist/d3-hierarchy.js +1 -0
  20. package/dist/dayjs.js +642 -0
  21. package/dist/element-plus.js +33909 -0
  22. package/dist/eventemitter3.js +113 -0
  23. package/dist/geobuf.js +1 -0
  24. package/dist/geojson-dissolve.js +1 -0
  25. package/dist/geojson-flatten.js +1 -0
  26. package/dist/geojson-linestring-dissolve.js +1 -0
  27. package/dist/gifuct-js.js +110 -0
  28. package/dist/ieee754.js +1 -0
  29. package/dist/index.js +15 -3007
  30. package/dist/js-binary-schema-parser.js +307 -0
  31. package/dist/lodash-es.js +1352 -0
  32. package/dist/lodash-unified.js +1 -0
  33. package/dist/lodash.js +597 -0
  34. package/dist/lottie-web.js +1 -0
  35. package/dist/maps.js +10 -0
  36. package/dist/memoize-one.js +36 -0
  37. package/dist/normalize-wheel-es.js +88 -0
  38. package/dist/pbf.js +1 -0
  39. package/dist/roughjs.js +1 -0
  40. package/dist/simple-statistics.js +1 -0
  41. package/dist/simplify-geojson.js +1 -0
  42. package/dist/simplify-geometry.js +1 -0
  43. package/dist/topojson-client.js +1 -0
  44. package/dist/topojson-server.js +1 -0
  45. package/dist/util.js +28 -26
  46. package/dist/vendor.js +5201 -0
  47. package/package.json +12 -4
  48. package/scripts/scaffold-app.js +70 -10
package/dist/index.js CHANGED
@@ -1,3009 +1,17 @@
1
- import { u as Ne } from "./util.js";
2
- import { d as Ke } from "./directive.js";
3
- import { s as Te, p as Ae, a as Fe } from "./store-shared.js";
4
- import { createRouter as De, createWebHistory as Be, useRoute as Me, useRouter as Ve } from "vue-router";
5
- import { computed as O, openBlock as b, createElementBlock as M, mergeProps as oe, unref as n, Fragment as Y, renderList as se, normalizeClass as F, createCommentVNode as K, createTextVNode as W, toDisplayString as L, reactive as H, onUnmounted as ce, watch as ne, markRaw as me, resolveComponent as E, createVNode as z, withCtx as V, createElementVNode as r, renderSlot as R, createBlock as B, resolveDynamicComponent as Oe, nextTick as ge, getCurrentInstance as ae, ref as G, onMounted as ee, normalizeStyle as Le, defineComponent as Ie, cloneVNode as _e, h as we, inject as he, withModifiers as $e, defineAsyncComponent as Pe, resolveDirective as Re, normalizeProps as de, guardReactiveProps as fe, createSlots as ie, withDirectives as He, useSlots as Ue, Transition as Ge, withKeys as Je, createStaticVNode as qe, useAttrs as ve, isRef as je, onBeforeMount as We } from "vue";
6
- /* empty css */
7
- import { deepEqual as xe, isInView as Ye, loadMvframeTheme as Ze, useOptions as ze, download as Qe, useRemoteSummary as Xe, useLang as et } from "./composition.js";
8
- import Se from "vuedraggable";
9
- const tt = {
10
- "Theme color": "Theme color",
11
- "Restore default": "Restore default",
12
- Appearance: "Appearance",
13
- "Light / dark mode": "Light / dark mode",
14
- Dark: "Dark",
15
- Light: "Light",
16
- Language: "Language",
17
- English: "English",
18
- "Simplified Chinese": "Simplified Chinese",
19
- "Traditional Chinese": "Traditional Chinese",
20
- Japanese: "Japanese",
21
- Korean: "Korean",
22
- Vietnamese: "Vietnamese",
23
- "Frame Config": "Frame Config",
24
- Cancel: "Cancel",
25
- Submit: "Submit"
26
- }, ot = {
27
- "Theme color": "主题色",
28
- "Restore default": "恢复默认",
29
- Appearance: "外观",
30
- "Light / dark mode": "明暗模式",
31
- Dark: "暗色",
32
- Light: "浅色",
33
- Language: "语言",
34
- English: "English",
35
- "Simplified Chinese": "中文-简体",
36
- "Traditional Chinese": "中文-繁體",
37
- Japanese: "日本語",
38
- Korean: "한국어",
39
- Vietnamese: "Tiếng Việt",
40
- "Frame Config": "框架设置",
41
- Cancel: "取消",
42
- Submit: "确定"
43
- }, nt = {
44
- "Theme color": "主題色",
45
- "Restore default": "還原預設",
46
- Appearance: "外觀",
47
- "Light / dark mode": "明暗模式",
48
- Dark: "深色",
49
- Light: "淺色",
50
- Language: "語言",
51
- English: "English",
52
- "Simplified Chinese": "中文-简体",
53
- "Traditional Chinese": "中文-繁體",
54
- Japanese: "日本語",
55
- Korean: "한국어",
56
- Vietnamese: "Tiếng Việt",
57
- "Frame Config": "框架設定",
58
- Cancel: "取消",
59
- Submit: "確定"
60
- }, lt = {
61
- "Theme color": "テーマカラー",
62
- "Restore default": "既定に戻す",
63
- Appearance: "外観",
64
- "Light / dark mode": "ライト/ダーク",
65
- Dark: "ダーク",
66
- Light: "ライト",
67
- Language: "言語",
68
- English: "English",
69
- "Simplified Chinese": "簡体字中国語",
70
- "Traditional Chinese": "繁体字中国語",
71
- Japanese: "日本語",
72
- Korean: "韓国語",
73
- Vietnamese: "ベトナム語",
74
- "Frame Config": "フレーム設定",
75
- Cancel: "キャンセル",
76
- Submit: "確定"
77
- }, st = {
78
- "Theme color": "테마 색",
79
- "Restore default": "기본값으로 복원",
80
- Appearance: "모양",
81
- "Light / dark mode": "라이트/다크 모드",
82
- Dark: "다크",
83
- Light: "라이트",
84
- Language: "언어",
85
- English: "English",
86
- "Simplified Chinese": "중국어(간체)",
87
- "Traditional Chinese": "중국어(번체)",
88
- Japanese: "일본어",
89
- Korean: "한국어",
90
- Vietnamese: "베트남어",
91
- "Frame Config": "프레임 설정",
92
- Cancel: "취소",
93
- Submit: "확인"
94
- }, at = {
95
- "Theme color": "Màu chủ đề",
96
- "Restore default": "Khôi phục mặc định",
97
- Appearance: "Giao diện",
98
- "Light / dark mode": "Sáng / tối",
99
- Dark: "Tối",
100
- Light: "Sáng",
101
- Language: "Ngôn ngữ",
102
- English: "English",
103
- "Simplified Chinese": "Tiếng Trung (Giản thể)",
104
- "Traditional Chinese": "Tiếng Trung (Phồn thể)",
105
- Japanese: "Tiếng Nhật",
106
- Korean: "Tiếng Hàn",
107
- Vietnamese: "Tiếng Việt",
108
- "Frame Config": "Cấu hình khung",
109
- Cancel: "Hủy",
110
- Submit: "Gửi"
111
- }, ye = {
112
- en_us: tt,
113
- zh_cn: ot,
114
- zh_tw: nt,
115
- ja_jp: lt,
116
- ko_kr: st,
117
- vi_vn: at
118
- };
119
- function rt(p) {
120
- return String(p || "en_us").toLowerCase().replace(/-/g, "_");
121
- }
122
- const gl = ye;
123
- function hl(p) {
124
- const m = rt(p);
125
- return { ...ye[m] || ye.en_us };
126
- }
127
- const pe = (p) => {
128
- try {
129
- Te.init(Ae).setPageLoading(p);
130
- } catch {
131
- }
132
- }, it = ({ router: p, useAdmin: m, adminPermission: o, noaccess: e }) => {
133
- p.beforeEach((t, s, u) => {
134
- pe(!0), u();
135
- }), p.beforeEach((t, s, u) => {
136
- m ? t.meta.admin && o() ? u() : e && e(t, s, u) : u();
137
- }), p.afterEach((t, s, u) => {
138
- if (u) {
139
- pe(!1);
140
- return;
141
- }
142
- const C = Te.tab(Ae);
143
- document.title = t.meta.title, C.saveTab(t), pe(!1);
144
- }), p.onError(() => {
145
- pe(!1);
146
- });
147
- }, ct = (p, { routes: m, guard: o, useAdmin: e = !1, adminPermission: t = () => !0, noaccess: s }) => {
148
- const u = De({
149
- history: Be(),
150
- routes: m
151
- });
152
- o && o(u), it({ router: u, useAdmin: e, adminPermission: t, noaccess: s }), p.use(u), globalThis.$router = u;
153
- }, J = (p, m) => {
154
- const o = p.__vccOpts || p;
155
- for (const [e, t] of m)
156
- o[e] = t;
157
- return o;
158
- }, ut = ["disabled", "onClick"], dt = /* @__PURE__ */ Object.assign({
159
- name: "MvcBtnGroup",
160
- inheritAttrs: !1
161
- }, {
162
- __name: "index",
163
- props: {
164
- modelValue: {
165
- type: [String, Number, Boolean],
166
- default: void 0
167
- },
168
- options: {
169
- type: Array,
170
- default: () => []
171
- },
172
- valueKey: {
173
- type: String,
174
- default: "value"
175
- },
176
- labelKey: {
177
- type: String,
178
- default: "label"
179
- },
180
- iconKey: {
181
- type: String,
182
- default: "icon"
183
- },
184
- iconClass: {
185
- type: String,
186
- default: "imicon"
187
- },
188
- disabled: {
189
- type: Boolean,
190
- default: !1
191
- },
192
- size: {
193
- type: String,
194
- default: "default",
195
- validator: (p) => ["default", "small", "large"].includes(p)
196
- }
197
- },
198
- emits: ["update:modelValue", "change"],
199
- setup(p, { emit: m }) {
200
- const o = p, e = m, t = (y) => {
201
- const g = y.value;
202
- return g === o.modelValue && (g !== void 0 || o.modelValue !== void 0);
203
- }, s = (y) => {
204
- o.disabled || (e("update:modelValue", y.value), e("change", y.value));
205
- }, u = O(() => {
206
- const y = o.options, g = Array.isArray(y) ? y : [], w = o.valueKey, _ = o.labelKey, T = o.iconKey;
207
- return g.filter((A) => A != null).map((A) => typeof A == "object" && !Array.isArray(A) ? {
208
- value: A[w],
209
- label: A[_] ?? "",
210
- icon: A[T] || "",
211
- raw: A
212
- } : {
213
- value: A,
214
- label: String(A),
215
- icon: "",
216
- raw: A
217
- });
218
- }), C = O(() => ({ small: "g4", default: "g6", large: "g8" })[o.size] ?? "g6"), $ = O(() => o.size === "small" ? "sizeSmall" : o.size === "large" ? "sizeLarge" : "");
219
- return (y, g) => (b(), M("div", oe({
220
- class: ["MvcBtnGroup flexMode", [n(C), n($), y.$attrs.class]]
221
- }, y.$attrs, { role: "group" }), [
222
- (b(!0), M(Y, null, se(n(u), (w) => (b(), M("button", {
223
- key: w.value,
224
- type: "button",
225
- class: F(["btnItem", { isActive: t(w) }]),
226
- disabled: o.disabled || w.disabled,
227
- onClick: (_) => s(w)
228
- }, [
229
- w.icon ? (b(), M("i", {
230
- key: 0,
231
- class: F([[w.icon, o.iconClass], "noShrink fs16"]),
232
- "aria-hidden": "true"
233
- }, null, 2)) : K("", !0),
234
- W(" " + L(y.$l(w.label)), 1)
235
- ], 10, ut))), 128))
236
- ], 16));
237
- }
238
- }), pt = /* @__PURE__ */ J(dt, [["__scopeId", "data-v-61c1ddc0"]]), mt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
239
- __proto__: null,
240
- default: pt
241
- }, Symbol.toStringTag, { value: "Module" })), ft = { class: "MvcDrawer" }, gt = { class: "dragArea" }, ht = {
242
- key: 0,
243
- class: "flexMode vc hc h56 w64 abs r t z9"
244
- }, bt = /* @__PURE__ */ Object.assign({
245
- name: "MvcDrawer",
246
- inheritAttrs: !1
247
- }, {
248
- __name: "index",
249
- props: {
250
- drawer: {
251
- type: [Array, Object],
252
- default: () => []
253
- },
254
- current: {
255
- type: [Number, String],
256
- default: ""
257
- },
258
- keepalive: {
259
- type: Boolean,
260
- default: !1
261
- }
262
- },
263
- emits: ["update:current"],
264
- setup(p, { emit: m }) {
265
- const o = p, e = () => ({
266
- visible: !1,
267
- title: "",
268
- cpt: "",
269
- size: 640,
270
- params: {},
271
- direction: "rtl"
272
- }), t = H({
273
- drawerInfo: e(),
274
- cpt: null,
275
- mounted: !1,
276
- dragMode: !1
277
- }), s = m, u = () => {
278
- t.mounted = !0;
279
- }, C = () => {
280
- s("update:current", ""), t.mounted = !1, k.value ? t.drawerInfo = e() : ge(() => {
281
- delete t.drawerInfo.cpt;
282
- });
283
- }, $ = () => {
284
- t.drawerInfo.visible && (s("update:current", ""), t.drawerInfo.visible = !1);
285
- }, y = () => {
286
- t.drawerInfo.cpt = t.cpt;
287
- }, g = (d) => {
288
- t.dragMode = !0, document.addEventListener("mousemove", w), document.addEventListener("mouseup", _);
289
- }, w = (d) => {
290
- var a, l;
291
- if (d.x > 80) {
292
- const h = (((l = (a = globalThis.$config) == null ? void 0 : a.options) == null ? void 0 : l.innerWidth) ?? window.innerWidth) - d.x;
293
- h > 480 && (t.drawerInfo.size = h);
294
- }
295
- }, _ = () => {
296
- t.dragMode = !1, T();
297
- }, T = () => {
298
- document.removeEventListener("mousemove", w), document.removeEventListener("mouseup", _);
299
- }, A = O(() => !!t.drawerInfo.title), k = O(() => !o.keepalive);
300
- return ce(() => {
301
- T();
302
- }), ne(
303
- () => o.current,
304
- (d) => {
305
- if (o.drawer.length)
306
- if (window.$getType(d) === "Number") {
307
- const a = o.drawer[d], l = {
308
- ...a,
309
- size: a.size || 640,
310
- direction: a.direction || "rtl",
311
- visible: !0
312
- };
313
- l.cpt ? (t.cpt = me(l.cpt), delete l.cpt) : (t.cpt = null, u()), t.drawerInfo = l;
314
- } else
315
- $();
316
- }
317
- ), (d, a) => {
318
- const l = E("Loading"), c = E("el-drawer");
319
- return b(), M("div", ft, [
320
- z(c, {
321
- modelValue: n(t).drawerInfo.visible,
322
- "onUpdate:modelValue": a[0] || (a[0] = (h) => n(t).drawerInfo.visible = h),
323
- title: d.$l(n(t).drawerInfo.title),
324
- "with-header": n(A),
325
- "append-to-body": "",
326
- size: n(t).drawerInfo.size,
327
- direction: n(t).drawerInfo.direction,
328
- "destroy-on-close": n(k),
329
- onClosed: C,
330
- onOpened: y,
331
- class: F(n(t).dragMode && "notransition noevent noselect")
332
- }, {
333
- default: V(() => [
334
- r("div", gt, [
335
- r("div", {
336
- class: F(["dragHandle", n(t).dragMode && "active"]),
337
- onMousedown: g
338
- }, [...a[1] || (a[1] = [
339
- r("i", { class: "imicon im-handle fs12" }, null, -1)
340
- ])], 34)
341
- ]),
342
- n(A) ? K("", !0) : (b(), M("div", ht, [
343
- r("i", {
344
- class: "imicon im-close fs20 txt-dark7 hover-txt-primary",
345
- onClick: $
346
- })
347
- ])),
348
- z(l, {
349
- loading: !n(t).mounted
350
- }, null, 8, ["loading"]),
351
- d.$slots.default ? R(d.$slots, "default", { key: 1 }, void 0, !0) : (b(), B(Oe(n(t).drawerInfo.cpt), oe({ key: 2 }, d.$attrs, {
352
- params: n(t).drawerInfo.params,
353
- onClose: $,
354
- onMounted: u
355
- }), null, 16, ["params"]))
356
- ]),
357
- _: 3
358
- }, 8, ["modelValue", "title", "with-header", "size", "direction", "destroy-on-close", "class"])
359
- ]);
360
- };
361
- }
362
- }), yt = /* @__PURE__ */ J(bt, [["__scopeId", "data-v-665c2158"]]), vt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
363
- __proto__: null,
364
- default: yt
365
- }, Symbol.toStringTag, { value: "Module" })), _t = {
366
- key: 1,
367
- class: "flexMode vc"
368
- }, wt = { class: "pl4" }, $t = { class: "pl4" }, xt = /* @__PURE__ */ Object.assign({
369
- name: "MvcDrawerArea",
370
- inheritAttrs: !1
371
- }, {
372
- __name: "index",
373
- props: {
374
- noscroll: {
375
- type: Boolean,
376
- default: !1
377
- },
378
- nofooter: {
379
- type: Boolean,
380
- default: !1
381
- },
382
- loading: {
383
- type: Boolean,
384
- default: !1
385
- },
386
- loadingTxt: {
387
- type: String,
388
- default: "... ... ..."
389
- },
390
- footerClass: {
391
- type: String,
392
- default: "hc"
393
- },
394
- showCancel: {
395
- type: Boolean,
396
- default: !0
397
- },
398
- cancelTxt: {
399
- type: String,
400
- default: "Cancel"
401
- },
402
- cancelIcon: {
403
- type: String,
404
- default: "im-left"
405
- },
406
- showConfirm: {
407
- type: Boolean,
408
- default: !0
409
- },
410
- confirmTxt: {
411
- type: String,
412
- default: "Submit"
413
- },
414
- confirmIcon: {
415
- type: String,
416
- default: "im-check"
417
- },
418
- minusHeight: {
419
- type: [String, Number],
420
- default: 0
421
- }
422
- },
423
- emits: ["close", "submit", "cancel", "mounted"],
424
- setup(p, { expose: m, emit: o }) {
425
- const e = p, { proxy: t } = ae(), s = G(), u = o;
426
- ee(() => {
427
- u("mounted");
428
- });
429
- const C = () => {
430
- u("close"), u("cancel");
431
- }, $ = () => {
432
- u("submit");
433
- };
434
- m({
435
- toClose: C,
436
- scrollTo: (_) => {
437
- var T;
438
- (T = s.value) == null || T.setScrollTop(_);
439
- }
440
- });
441
- const g = O(() => [e.loading && "noevent", t.$attrs.class]), w = O(() => ({
442
- height: `calc(100vh - 56px - ${e.nofooter ? 0 : 64}px - ${e.minusHeight}px)`
443
- }));
444
- return (_, T) => {
445
- const A = E("Loading"), k = E("el-scrollbar"), d = E("el-button");
446
- return b(), M(Y, null, [
447
- r("div", {
448
- class: F(["MvcDrawerBody VAfter", n(g)]),
449
- style: Le(n(w))
450
- }, [
451
- z(A, {
452
- loading: e.loading,
453
- txt: e.loadingTxt
454
- }, null, 8, ["loading", "txt"]),
455
- e.noscroll ? R(_.$slots, "default", { key: 0 }, void 0, !0) : (b(), B(k, {
456
- key: 1,
457
- ref_key: "scrollbar",
458
- ref: s,
459
- class: "wp100"
460
- }, {
461
- default: V(() => [
462
- R(_.$slots, "default", {}, void 0, !0)
463
- ]),
464
- _: 3
465
- }, 512))
466
- ], 6),
467
- e.nofooter ? K("", !0) : (b(), M("div", {
468
- key: 0,
469
- class: F(["drawerFooter relative flexMode vc hb h64", e.footerClass])
470
- }, [
471
- _.$slots.footer ? R(_.$slots, "footer", { key: 0 }, void 0, !0) : (b(), M("div", _t, [
472
- _.$slots.cancel ? R(_.$slots, "cancel", { key: 0 }, void 0, !0) : e.showCancel ? (b(), B(d, {
473
- key: 1,
474
- plain: "",
475
- size: "large",
476
- onClick: C
477
- }, {
478
- icon: V(() => [
479
- r("i", {
480
- class: F(["imicon", e.cancelIcon])
481
- }, null, 2)
482
- ]),
483
- default: V(() => [
484
- r("span", wt, L(_.$l(e.cancelTxt)), 1)
485
- ]),
486
- _: 1
487
- })) : K("", !0),
488
- _.$slots.submit ? R(_.$slots, "submit", { key: 2 }, void 0, !0) : e.showConfirm ? (b(), B(d, {
489
- key: 3,
490
- type: "primary",
491
- size: "large",
492
- loading: e.loading,
493
- onClick: $
494
- }, {
495
- icon: V(() => [
496
- r("i", {
497
- class: F(["imicon", e.confirmIcon])
498
- }, null, 2)
499
- ]),
500
- default: V(() => [
501
- r("span", $t, L(_.$l(e.confirmTxt)), 1)
502
- ]),
503
- _: 1
504
- }, 8, ["loading"])) : K("", !0),
505
- _.$slots.footerright ? R(_.$slots, "footerright", { key: 4 }, void 0, !0) : K("", !0)
506
- ]))
507
- ], 2))
508
- ], 64);
509
- };
510
- }
511
- }), St = /* @__PURE__ */ J(xt, [["__scopeId", "data-v-f61caca0"]]), Ct = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
512
- __proto__: null,
513
- default: St
514
- }, Symbol.toStringTag, { value: "Module" }));
515
- function kt(p) {
516
- var o;
517
- if (p == null) return [];
518
- const m = Array.isArray(p) ? p : [p];
519
- if (m.length === 1 && ((o = m[0]) == null ? void 0 : o.type) === Y) {
520
- const e = m[0].children;
521
- return e == null ? [] : Array.isArray(e) ? e : [e];
522
- }
523
- return m;
524
- }
525
- function Ce(p, m) {
526
- if (p === m) return !0;
527
- if (!Array.isArray(p) || !Array.isArray(m) || p.length !== m.length)
528
- return !1;
529
- for (let o = 0; o < p.length; o++)
530
- if (p[o] !== m[o]) return !1;
531
- return !0;
532
- }
533
- const Tt = Ie({
534
- name: "MvcFormItemFilter",
535
- setup(p, m) {
536
- function o(t) {
537
- if (!Array.isArray(t)) return [];
538
- const s = t.filter((y) => y && y.children !== "v-if"), u = s.length !== t.length, C = s.map((y) => e(y));
539
- return u || C.some((y, g) => y !== s[g]) ? C : t;
540
- }
541
- function e(t) {
542
- var C, $, y, g;
543
- if (!t) return t;
544
- const s = t.children, u = window.$getType(s);
545
- if (((C = t.type) == null ? void 0 : C.name) === "ElFormItem" && (($ = t.props) == null ? void 0 : $.label) != null) {
546
- const w = ((g = (y = t.props.label).$l) == null ? void 0 : g.call(y)) || t.props.label;
547
- if (u === "Array") {
548
- const _ = o(s);
549
- return Ce(_, s) ? _e(t, { label: w }) : we(t.type, { ...t.props || {}, label: w }, _);
550
- }
551
- return _e(t, { label: w });
552
- }
553
- if (u === "Array") {
554
- const w = o(s);
555
- return Ce(w, s) ? t : we(t.type, t.props, w);
556
- }
557
- return t;
558
- }
559
- return () => {
560
- var u, C;
561
- const t = (C = (u = m.slots).default) == null ? void 0 : C.call(u), s = kt(t);
562
- return o(s);
563
- };
564
- }
565
- }), At = { class: "MvcForm" }, Mt = /* @__PURE__ */ Object.assign({
566
- name: "MvcForm"
567
- }, {
568
- __name: "index",
569
- props: {
570
- modelValue: {
571
- type: Object,
572
- default: /* @__PURE__ */ Object.create(null)
573
- },
574
- rules: {
575
- type: Object,
576
- default: /* @__PURE__ */ Object.create(null)
577
- },
578
- size: {
579
- type: String,
580
- default: "large"
581
- }
582
- },
583
- setup(p, { expose: m, emit: o }) {
584
- const e = p, t = H({
585
- form: {}
586
- }), { proxy: s } = ae(), u = o, C = async () => {
587
- var g;
588
- try {
589
- return (g = s.$refs) != null && g.form ? (await s.$refs.form.validate(), $()) : !1;
590
- } catch {
591
- return !1;
592
- }
593
- }, $ = () => t.form, y = O(() => {
594
- const g = {};
595
- for (let w in e.rules)
596
- g[w] = e.rules[w].map((_) => ({
597
- ..._,
598
- ..._.message && { message: window.$l(_.message) }
599
- }));
600
- return g;
601
- });
602
- return ne(
603
- () => t.form,
604
- (g) => {
605
- g && !xe(g, e.modelValue) && u("update:modelValue", g);
606
- },
607
- {
608
- deep: !0
609
- }
610
- ), ne(
611
- () => e.modelValue,
612
- (g) => {
613
- g && !xe(g, t.form) && (t.form = g);
614
- },
615
- {
616
- immediate: !0,
617
- deep: !0
618
- }
619
- ), m({
620
- validate: C
621
- }), (g, w) => {
622
- const _ = E("el-form");
623
- return b(), M("div", At, [
624
- z(_, {
625
- ref: "form",
626
- model: n(t).form,
627
- rules: n(y),
628
- size: e.size,
629
- "validate-on-rule-change": !1,
630
- "label-position": "top"
631
- }, {
632
- default: V(() => [
633
- z(n(Tt), null, {
634
- default: V(() => [
635
- R(g.$slots, "default")
636
- ]),
637
- _: 3
638
- })
639
- ]),
640
- _: 3
641
- }, 8, ["model", "rules", "size"])
642
- ]);
643
- };
644
- }
645
- }), Vt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
646
- __proto__: null,
647
- default: Mt
648
- }, Symbol.toStringTag, { value: "Module" })), Ot = { class: "FrameTab sticky h36 pl16 pt4 xscroll nobar fadeout flexGrow backdrop z9" }, Lt = { class: "relative flexMode vr g4 z2" }, It = ["id", "onContextmenu", "onClick", "onDblclick"], jt = ["onClick"], zt = /* @__PURE__ */ Object.assign({
649
- name: "FrameTab",
650
- inheritAttrs: !1
651
- }, {
652
- __name: "Tab",
653
- setup(p) {
654
- H({
655
- active: 2
656
- });
657
- const m = he("store"), o = m.tab(), e = m.rmenu(), t = Me(), s = Ve(), { proxy: u } = ae();
658
- ee(() => {
659
- C();
660
- });
661
- const C = () => {
662
- u.$el.addEventListener("scroll", y);
663
- }, $ = () => {
664
- const l = localStorage.getItem("tabsScroll");
665
- l && (u.$el.scrollLeft = Number(l));
666
- }, y = (l) => {
667
- let c = null;
668
- c !== null && clearTimeout(c), c = setTimeout(function() {
669
- const { scrollLeft: h } = l.target;
670
- localStorage.setItem("tabsScroll", h);
671
- }, 100);
672
- }, g = () => {
673
- ge(() => {
674
- const l = u.$el.querySelector(`#tab_${d.value}`);
675
- Ye(u.$el, l) ? $() : u.$el.scrollLeft = (l == null ? void 0 : l.offsetLeft) - 16;
676
- });
677
- }, w = (l, c, h) => {
678
- e.saveData("type", "tabManager"), e.saveData("options", [
679
- {
680
- label: "Close",
681
- value: "close",
682
- icon: "im-close",
683
- disabled: k.value.length === 1,
684
- cb: () => {
685
- o.closeTab(c, h);
686
- }
687
- },
688
- {
689
- label: "Close Right",
690
- value: "closeRight",
691
- icon: "im-right",
692
- disabled: h === k.value.length - 1,
693
- cb: () => {
694
- o.closeRightTab(c, h);
695
- }
696
- },
697
- {
698
- label: "Close Left",
699
- value: "closeLeft",
700
- icon: "im-left",
701
- disabled: h === 0,
702
- cb: () => {
703
- o.closeLeftTab(c, h);
704
- }
705
- },
706
- {
707
- label: "Close Other",
708
- value: "closeOther",
709
- icon: "im-left",
710
- disabled: k.value.length === 1,
711
- cb: () => {
712
- o.closeOtherTab(c, h);
713
- }
714
- }
715
- ]), e.show({ el: l.target });
716
- }, _ = (l) => {
717
- l.name !== d.value && s.push({ name: l.name });
718
- }, T = (l) => {
719
- l.name === d.value ? s.replace({ name: l.name, query: { t: +/* @__PURE__ */ new Date() } }) : _(l);
720
- }, A = (l, c) => {
721
- o.closeTab(l, c);
722
- }, k = O(() => o.tabs), d = O(() => t.name), a = O(() => k.value.length);
723
- return ne(
724
- () => a.value,
725
- (l) => {
726
- l && (localStorage.setItem("tabs", JSON.stringify(k.value)), g());
727
- },
728
- {
729
- immediate: !0
730
- }
731
- ), ce(() => {
732
- u.$el.removeEventListener("scroll", y);
733
- }), (l, c) => (b(), M("div", Ot, [
734
- r("div", Lt, [
735
- (b(!0), M(Y, null, se(n(k), (h, x) => (b(), M("div", {
736
- key: h.name,
737
- id: `tab_${h.name}`,
738
- class: F(["relative flexMode vc g4 noShrink tabItem h32 p0-8 fs12 radius4 point noselect", [
739
- h.name === n(d) && "active",
740
- n(k).length > 1 && "hoverItem"
741
- ]]),
742
- onContextmenu: $e((i) => w(i, h, x), ["prevent", "stop"]),
743
- onClick: (i) => _(h),
744
- onDblclick: (i) => T(h)
745
- }, [
746
- h.icon ? (b(), M("i", {
747
- key: 0,
748
- class: F(["imicon", h.icon])
749
- }, null, 2)) : K("", !0),
750
- W(" " + L(h.meta.title) + " ", 1),
751
- r("div", {
752
- class: "abs r flexMode hc vc w20 h20",
753
- onClick: $e((i) => A(h, x), ["stop"])
754
- }, [...c[0] || (c[0] = [
755
- r("span", null, "✕", -1)
756
- ])], 8, jt)
757
- ], 42, It))), 128)),
758
- c[1] || (c[1] = r("div", { class: "w16 h16 noShrink" }, null, -1))
759
- ])
760
- ]));
761
- }
762
- }), Et = /* @__PURE__ */ J(zt, [["__scopeId", "data-v-bc298ab0"]]), Nt = { class: "LogoArea flexMode vc h64 p0-16 relative" }, Kt = { class: "logo" }, Ft = { class: "logomini" }, Dt = { class: "MenuArea p4 yscroll" }, Bt = ["onClick"], Pt = { class: "itemIcon w24 txt-c txt-tip fs18" }, Rt = { key: 1 }, Ht = {
763
- key: 0,
764
- class: "itemChildrenArea mt2 p4"
765
- }, Ut = ["onClick"], Gt = { class: "itemIcon w24 txt-c txt-tip fs18" }, Jt = { class: "h64 p8-4" }, qt = { class: "flexMode vc g8 p8-16 radius4 hover" }, Wt = /* @__PURE__ */ Object.assign({
766
- name: "FrameMenu",
767
- inheritAttrs: !1
768
- }, {
769
- __name: "Menu",
770
- props: {
771
- iconClass: {
772
- type: String,
773
- default: ""
774
- },
775
- routes: {
776
- type: Array,
777
- default: () => []
778
- },
779
- usernameKey: {
780
- type: String,
781
- default: "username"
782
- }
783
- },
784
- setup(p, { emit: m }) {
785
- const o = p, e = H({
786
- collapse: !1
787
- }), t = Me(), s = Ve(), C = he("store").launch();
788
- ee(() => {
789
- y();
790
- });
791
- const $ = m, y = () => {
792
- const l = localStorage.getItem("collapse");
793
- l && (e.collapse = JSON.parse(l)), document.addEventListener("keydown", w);
794
- }, g = (l) => {
795
- e.collapse === !0 ? e.collapse = !1 : e.collapse === !1 ? e.collapse = !0 : e.collapse = l, localStorage.setItem("collapse", e.collapse), $("on-collapse-change", e.collapse);
796
- }, w = (l) => {
797
- l.shiftKey && (l.metaKey || l.ctrlKey) && (l.keyCode === 37 ? g(!0) : l.keyCode === 39 && g(!1));
798
- }, _ = (l) => {
799
- var c;
800
- return (c = l == null ? void 0 : l.children) != null && c.length ? _(l.children[0]) : l;
801
- }, T = (l) => {
802
- var c;
803
- return ((c = l == null ? void 0 : l.children) == null ? void 0 : c.some((h) => h.name === t.name || T(h))) ?? !1;
804
- }, A = (l) => {
805
- const c = _(l);
806
- c != null && c.name && s.push({ name: c.name });
807
- }, k = () => {
808
- const l = { ...t.query, _: Date.now() }, c = t.name ? { name: t.name, params: t.params, query: l } : { path: t.path, query: l };
809
- s.replace(c).catch(() => {
810
- });
811
- }, d = () => {
812
- window.$confirm("Log out?".$l(), "Tips", {
813
- callback: (l) => {
814
- l === "confirm" && s.replace({ path: "/" });
815
- }
816
- });
817
- }, a = O(() => e.collapse ? "im-verticalleft" : "im-verticalright");
818
- return ce(() => {
819
- document.removeEventListener("keydown", w);
820
- }), (l, c) => {
821
- const h = E("el-popconfirm");
822
- return b(), M("div", {
823
- class: F(["FrameMenu sticky vh100 noselect noShrink", n(e).collapse && "collapse"])
824
- }, [
825
- r("div", Nt, [
826
- r("div", Kt, [
827
- R(l.$slots, "logo", {}, void 0, !0)
828
- ]),
829
- r("div", Ft, [
830
- R(l.$slots, "logomini", {}, void 0, !0)
831
- ]),
832
- r("div", {
833
- class: "collapseArea hover abs",
834
- onClick: c[0] || (c[0] = (x) => g(n(e).collapse))
835
- }, [
836
- r("i", {
837
- class: F(["imicon fs20", n(a)])
838
- }, null, 2)
839
- ])
840
- ]),
841
- r("div", Dt, [
842
- (b(!0), M(Y, null, se(o.routes, (x, i) => {
843
- var f, S;
844
- return b(), M("div", {
845
- key: i,
846
- class: "menuItemWrap mb2"
847
- }, [
848
- r("div", {
849
- class: F(["menuItem flexMode vc g8 radius4 p0-16", [
850
- n(t).name === x.name && "active bg-primary",
851
- n(e).collapse && "hc",
852
- n(e).collapse && T(x) && "activeChild"
853
- ]]),
854
- onClick: (v) => A(x),
855
- onDblclick: k
856
- }, [
857
- r("div", Pt, [
858
- x.meta.icon ? (b(), M("i", {
859
- key: 0,
860
- class: F([o.iconClass, x.meta.icon])
861
- }, null, 2)) : (b(), M("span", Rt, L(((f = x.meta.title) == null ? void 0 : f.substr(0, 1)) || "U"), 1))
862
- ]),
863
- n(e).collapse ? K("", !0) : (b(), M("div", {
864
- key: 0,
865
- class: F(["itemTitle txt-nowrap fs14", n(t).name === x.name ? "txt-white" : "txt-h1"])
866
- }, L(x.meta.title), 3))
867
- ], 42, Bt),
868
- (S = x.children) != null && S.length ? (b(), M("div", Ht, [
869
- (b(!0), M(Y, null, se(x.children, (v, N) => (b(), M("div", {
870
- key: N,
871
- class: F(["childrenItem flexMode vc g8 radius4 h40 p0-16", n(t).name === v.name && "active bg-primary"]),
872
- onClick: (I) => A(v),
873
- onDblclick: k
874
- }, [
875
- r("div", Gt, [
876
- v.meta.icon ? (b(), M("i", {
877
- key: 0,
878
- class: F([o.iconClass, v.meta.icon])
879
- }, null, 2)) : K("", !0)
880
- ]),
881
- n(e).collapse ? K("", !0) : (b(), M("div", {
882
- key: 0,
883
- class: F(["itemTitle txt-nowrap fs14", n(t).name === v.name ? "txt-white" : "txt-h1"])
884
- }, L(v.meta.title), 3))
885
- ], 42, Ut))), 128))
886
- ])) : K("", !0)
887
- ]);
888
- }), 128))
889
- ]),
890
- r("div", Jt, [
891
- z(h, {
892
- placement: "top",
893
- title: l.$l("Log out?"),
894
- onConfirm: d
895
- }, {
896
- reference: V(() => [
897
- r("div", qt, [
898
- c[1] || (c[1] = r("i", { class: "imicon im-power fs20" }, null, -1)),
899
- r("span", null, L(n(C).userinfo[o.usernameKey]), 1)
900
- ])
901
- ]),
902
- _: 1
903
- }, 8, ["title"])
904
- ])
905
- ], 2);
906
- };
907
- }
908
- }), Yt = /* @__PURE__ */ J(Wt, [["__scopeId", "data-v-8db79d97"]]), Zt = { class: "FrameFooter" }, Qt = { class: "txt-tip" }, Xt = { class: "txt-primary" }, eo = /* @__PURE__ */ Object.assign({
909
- name: "FrameFooter",
910
- inheritAttrs: !1
911
- }, {
912
- __name: "Footer",
913
- setup(p) {
914
- H({});
915
- const m = O(() => globalThis.$config);
916
- return (o, e) => (b(), M("div", Zt, [
917
- r("span", Qt, L(n(m).copyright), 1),
918
- r("span", Xt, L(n(m).author), 1)
919
- ]));
920
- }
921
- }), to = /* @__PURE__ */ J(eo, [["__scopeId", "data-v-c3ba0162"]]), oo = /* @__PURE__ */ Object.assign({
922
- name: "FrameTool",
923
- inheritAttrs: !1
924
- }, {
925
- __name: "Tool",
926
- setup(p) {
927
- const m = Pe(() => import("./Config.js"));
928
- H({});
929
- const o = H({
930
- current: "",
931
- list: [
932
- {
933
- title: "Frame Config",
934
- cpt: me(m)
935
- }
936
- ]
937
- }), e = () => {
938
- o.current = 0;
939
- };
940
- return (t, s) => {
941
- const u = E("Drawer");
942
- return b(), M(Y, null, [
943
- r("div", { class: "FrameTool fixed r t flexMode vc g8 p0-8 w40 h40 noShrink z9" }, [
944
- r("div", {
945
- class: "hover w24 h24 flexMode hc vc",
946
- onClick: e
947
- }, [...s[1] || (s[1] = [
948
- r("i", { class: "imicon im-setting fs20" }, null, -1)
949
- ])])
950
- ]),
951
- z(u, {
952
- current: n(o).current,
953
- "onUpdate:current": s[0] || (s[0] = (C) => n(o).current = C),
954
- drawer: n(o).list
955
- }, null, 8, ["current", "drawer"])
956
- ], 64);
957
- };
958
- }
959
- }), no = { class: "MvcFrame" }, lo = ["element-loading-text"], so = /* @__PURE__ */ Object.assign({
960
- name: "MvcFrame",
961
- inheritAttrs: !1
962
- }, {
963
- __name: "index",
964
- props: {
965
- /* menu包含:
966
- @params
967
- options: vue-router的路由表
968
- iconClass: 菜单图标样式名,iconfont创建时的样式名或其它自定义规则
969
- logo: 菜单logo, vue dom
970
- logomini: 菜单logo缩小时的样子, vue dom
971
- */
972
- menu: {
973
- type: Object,
974
- default: /* @__PURE__ */ Object.create(null)
975
- },
976
- page: {
977
- type: Object,
978
- default: /* @__PURE__ */ Object.create(null)
979
- },
980
- /** `v-loading` 文案;空则使用 Element Plus 默认 */
981
- pageLoadingText: {
982
- type: String,
983
- default: ""
984
- }
985
- },
986
- setup(p) {
987
- const m = p;
988
- H({});
989
- const o = he("store"), e = o.tab(), t = o.init();
990
- ee(() => {
991
- s();
992
- });
993
- const s = () => {
994
- Ze(), u(), ze();
995
- }, u = () => {
996
- var $, y, g, w, _, T;
997
- if ((y = ($ = globalThis.$config) == null ? void 0 : $.iconfont) != null && y.url) {
998
- const A = document.createElement("script");
999
- if (A.id = "iconfont", A.type = "text/javascript", A.src = (w = (g = globalThis.$config) == null ? void 0 : g.iconfont) == null ? void 0 : w.url, document.getElementById("iconfont"))
1000
- return;
1001
- document.head.appendChild(A), (T = (_ = globalThis.$config) == null ? void 0 : _.iconfont) == null || delete T.url;
1002
- }
1003
- }, C = O(() => t.pageLoading);
1004
- return ($, y) => {
1005
- const g = E("router-view"), w = Re("loading");
1006
- return b(), M("div", no, [
1007
- z(Yt, de(fe(m.menu)), ie({ _: 2 }, [
1008
- $.$slots.logo ? {
1009
- name: "logo",
1010
- fn: V(() => [
1011
- R($.$slots, "logo", {}, void 0, !0)
1012
- ]),
1013
- key: "0"
1014
- } : void 0,
1015
- $.$slots.logomini ? {
1016
- name: "logomini",
1017
- fn: V(() => [
1018
- R($.$slots, "logomini", {}, void 0, !0)
1019
- ]),
1020
- key: "1"
1021
- } : void 0
1022
- ]), 1040),
1023
- He((b(), M("div", {
1024
- class: "PageArea pageAreaWithLoading",
1025
- "element-loading-text": m.pageLoadingText || "LOADING"
1026
- }, [
1027
- n(e).useTab ? (b(), B(Et, { key: 0 })) : K("", !0),
1028
- z(oo),
1029
- z(g, de(fe(m.page)), null, 16),
1030
- z(to)
1031
- ], 8, lo)), [
1032
- [w, n(C)]
1033
- ])
1034
- ]);
1035
- };
1036
- }
1037
- }), ao = /* @__PURE__ */ J(so, [["__scopeId", "data-v-2163182e"]]), ro = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1038
- __proto__: null,
1039
- default: ao
1040
- }, Symbol.toStringTag, { value: "Module" })), io = {
1041
- class: "MvcIcon",
1042
- "aria-hidden": "true"
1043
- }, co = ["xlink:href"], uo = /* @__PURE__ */ Object.assign({
1044
- name: "MvcIcon"
1045
- }, {
1046
- __name: "index",
1047
- props: {
1048
- name: {
1049
- type: String,
1050
- default: "cloud"
1051
- }
1052
- },
1053
- setup(p) {
1054
- const m = H({
1055
- prefix: "imc"
1056
- });
1057
- return ee(() => {
1058
- var o, e;
1059
- (e = (o = globalThis.$config) == null ? void 0 : o.iconfont) != null && e.prefix && (m.prefix = globalThis.$config.iconfont.prefix);
1060
- }), (o, e) => (b(), M("svg", io, [
1061
- r("use", {
1062
- "xlink:href": `#${n(m).prefix}-${p.name}`
1063
- }, null, 8, co)
1064
- ]));
1065
- }
1066
- }), po = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1067
- __proto__: null,
1068
- default: uo
1069
- }, Symbol.toStringTag, { value: "Module" })), mo = /* @__PURE__ */ Object.assign({
1070
- name: "MvcInput"
1071
- }, {
1072
- __name: "index",
1073
- props: {
1074
- modelValue: {
1075
- type: [String, Number],
1076
- default: ""
1077
- }
1078
- },
1079
- emits: [
1080
- "update:modelValue",
1081
- "input",
1082
- "change",
1083
- "blur",
1084
- "focus"
1085
- ],
1086
- setup(p, { emit: m }) {
1087
- const o = p, e = Ue(), t = G(null);
1088
- let s = null;
1089
- const u = H({
1090
- val: "",
1091
- isComposing: !1
1092
- }), C = m, { proxy: $ } = ae();
1093
- ee(() => {
1094
- var d, a, l;
1095
- const k = (d = t.value) == null ? void 0 : d.$el;
1096
- s = ((a = k == null ? void 0 : k.querySelector) == null ? void 0 : a.call(k, "input")) || ((l = k == null ? void 0 : k.querySelector) == null ? void 0 : l.call(k, "textarea")), s && (s.addEventListener("compositionstart", y), s.addEventListener("compositionend", g));
1097
- });
1098
- const y = () => {
1099
- u.isComposing = !0;
1100
- }, g = () => {
1101
- u.isComposing = !1, ge(() => _(u.val));
1102
- }, w = (k) => {
1103
- u.isComposing || _(k);
1104
- }, _ = (k) => {
1105
- C("update:modelValue", k), C("input", k);
1106
- }, T = O(() => !!($.$attrs.maxlength || A.value)), A = O(() => $.$attrs.max);
1107
- return ne(
1108
- () => o.modelValue,
1109
- (k) => {
1110
- const d = String(k ?? "");
1111
- String(u.val) !== d && (u.val = d);
1112
- },
1113
- { immediate: !0 }
1114
- ), ce(() => {
1115
- s && (s.removeEventListener("compositionstart", y), s.removeEventListener("compositionend", g), s = null);
1116
- }), (k, d) => {
1117
- const a = E("el-input");
1118
- return b(), B(a, oe({
1119
- ref_key: "inputRef",
1120
- ref: t,
1121
- modelValue: n(u).val,
1122
- "onUpdate:modelValue": d[0] || (d[0] = (l) => n(u).val = l),
1123
- "show-word-limit": n(T),
1124
- maxlength: n(A),
1125
- class: "MvcInput"
1126
- }, k.$attrs, { onInput: w }), ie({ _: 2 }, [
1127
- se(n(e), (l, c) => ({
1128
- name: c,
1129
- fn: V((h) => [
1130
- R(k.$slots, c, de(fe(h || {})))
1131
- ])
1132
- }))
1133
- ]), 1040, ["modelValue", "show-word-limit", "maxlength"]);
1134
- };
1135
- }
1136
- }), fo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1137
- __proto__: null,
1138
- default: mo
1139
- }, Symbol.toStringTag, { value: "Module" })), go = { class: "content flexMode flexV vc g12 relative z1" }, ho = /* @__PURE__ */ Object.assign({
1140
- name: "MvcLoading",
1141
- inheritAttrs: !1
1142
- }, {
1143
- __name: "index",
1144
- props: {
1145
- /** 是否显示遮罩与指示器 */
1146
- loading: {
1147
- type: Boolean,
1148
- default: !1
1149
- },
1150
- txtClass: {
1151
- type: String,
1152
- default: "txt-h2"
1153
- },
1154
- showTxt: {
1155
- type: Boolean,
1156
- default: !1
1157
- },
1158
- /** 底部说明文案(空则不显示第二行) */
1159
- txt: {
1160
- type: String,
1161
- default: "- LOADING -"
1162
- },
1163
- /** 旋转图标 class,默认图标字体 */
1164
- icon: {
1165
- type: String,
1166
- default: "im-loading"
1167
- },
1168
- size: {
1169
- type: String,
1170
- default: "28"
1171
- },
1172
- radius: {
1173
- type: String,
1174
- default: "8"
1175
- }
1176
- },
1177
- setup(p) {
1178
- const m = p;
1179
- return (o, e) => (b(), B(Ge, { name: "loadingFade" }, {
1180
- default: V(() => [
1181
- m.loading ? (b(), M("div", {
1182
- key: 0,
1183
- class: "MvcLoading absFull hp100 flexMode flexV vc hc ztop",
1184
- role: "status",
1185
- "aria-busy": "true",
1186
- "aria-live": "polite",
1187
- style: Le({ borderRadius: `${m.radius}px` })
1188
- }, [
1189
- r("div", go, [
1190
- r("i", {
1191
- class: F([m.icon, `fs${m.size}`, "imicon ani-rotate"]),
1192
- "aria-hidden": "true"
1193
- }, null, 2),
1194
- m.showTxt ? (b(), M("span", {
1195
- key: 0,
1196
- class: F(["loaderTxt fs14 txt-c", m.txtClass])
1197
- }, L(o.$l(m.txt)), 3)) : K("", !0)
1198
- ])
1199
- ], 4)) : K("", !0)
1200
- ]),
1201
- _: 1
1202
- }));
1203
- }
1204
- }), bo = /* @__PURE__ */ J(ho, [["__scopeId", "data-v-0bb814a6"]]), yo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1205
- __proto__: null,
1206
- default: bo
1207
- }, Symbol.toStringTag, { value: "Module" })), vo = { class: "MvcLogin flexMode flexV hc vc wp100 vh100 p24-16" }, _o = { class: "panelWrap wp100 maxw400 p24 radius8 border noShrink" }, wo = { class: "flexMode vc hb mb16" }, $o = { class: "pl8 fs20 fw700 txt-h1" }, xo = { class: "contentArea minh160" }, So = {
1208
- key: 1,
1209
- class: "oauthAuthPanel flexMode flexV g8 wp100 vl"
1210
- }, Co = ["disabled"], ko = ["disabled"], To = {
1211
- key: 2,
1212
- class: "scanArea flexMode flexV vc g12"
1213
- }, Ao = { class: "scanTitle m0 block fs14 txt-h2" }, Mo = { class: "footerLine flexMode flexWrap hc g8 mt24 fs12 txt-tip" }, be = "mvframe_login_remember", Vo = /* @__PURE__ */ Object.assign({
1214
- name: "MvcLogin",
1215
- inheritAttrs: !1
1216
- }, {
1217
- __name: "index",
1218
- props: {
1219
- /** 登录表单文案与表单项展示配置(与默认合并,仅传需要覆盖的键即可) */
1220
- formFileds: {
1221
- type: Object,
1222
- default: () => /* @__PURE__ */ Object.create(null)
1223
- },
1224
- title: {
1225
- type: String,
1226
- default: "Login"
1227
- },
1228
- rememberTxt: {
1229
- type: String,
1230
- default: "Remember me"
1231
- },
1232
- submitTxt: {
1233
- type: String,
1234
- default: "Login"
1235
- },
1236
- successTxt: {
1237
- type: String,
1238
- default: "Login successful"
1239
- },
1240
- loginMethods: {
1241
- type: Array,
1242
- default: () => [0, 1, 2, 3, 4]
1243
- }
1244
- },
1245
- emits: ["success", "submit"],
1246
- setup(p, { emit: m }) {
1247
- const o = p, { proxy: e } = ae(), t = G(null), s = H({
1248
- method: "password",
1249
- form: {},
1250
- remember: !1,
1251
- submitting: !1
1252
- });
1253
- ee(() => {
1254
- try {
1255
- const c = localStorage.getItem(be);
1256
- if (c) {
1257
- const h = JSON.parse(c);
1258
- h && typeof h == "object" && h.remember && (s.remember = !0, h.username != null && (s.form.username = String(h.username)), h.password != null && (s.form.password = String(h.password)));
1259
- }
1260
- } catch {
1261
- }
1262
- });
1263
- const u = m, C = (c, h = "info") => {
1264
- const x = e == null ? void 0 : e.$message;
1265
- x != null && x[h] && x[h](c);
1266
- }, $ = () => {
1267
- try {
1268
- s.remember ? localStorage.setItem(
1269
- be,
1270
- JSON.stringify({
1271
- remember: !0,
1272
- username: s.form.username,
1273
- password: s.form.password
1274
- })
1275
- ) : localStorage.removeItem(be);
1276
- } catch {
1277
- }
1278
- }, y = () => {
1279
- C("Google 登录需按官方物料与 OAuth 配置 token,当前未发起跳转。");
1280
- }, g = () => {
1281
- C("Sign in with Apple 需按 Apple 人机界面指南配置服务,当前未发起跳转。");
1282
- }, w = async () => {
1283
- var i, f;
1284
- if (s.submitting) return;
1285
- const c = await ((f = (i = t.value) == null ? void 0 : i.validate) == null ? void 0 : f.call(i));
1286
- if (!c) return;
1287
- const h = String(c.username ?? "").trim();
1288
- if (!h)
1289
- return;
1290
- const x = String(c.password ?? "").trim();
1291
- if (x) {
1292
- s.submitting = !0;
1293
- try {
1294
- const S = await globalThis.$pm(async () => ({
1295
- method: "password",
1296
- username: h,
1297
- password: x
1298
- }));
1299
- $(), u("submit", {
1300
- method: "password",
1301
- [A.value.username.valueKey]: S.username,
1302
- [A.value.password.valueKey]: S.password
1303
- }), localStorage.removeItem("ctab"), localStorage.removeItem("tabs");
1304
- } finally {
1305
- s.submitting = !1;
1306
- }
1307
- }
1308
- }, _ = O(() => {
1309
- const c = globalThis.$config;
1310
- return {
1311
- copyright: (c == null ? void 0 : c.copyright) ?? "",
1312
- author: (c == null ? void 0 : c.author) ?? ""
1313
- };
1314
- }), T = O(() => a[s.method] ?? "Login"), A = O(() => ({
1315
- username: {
1316
- ...l.username,
1317
- ...o.formFileds.username || {}
1318
- },
1319
- password: {
1320
- ...l.password,
1321
- ...o.formFileds.password || {}
1322
- }
1323
- })), k = O(() => ({
1324
- username: [
1325
- {
1326
- required: !0,
1327
- message: A.value.username.message,
1328
- trigger: "blur"
1329
- }
1330
- ],
1331
- password: [
1332
- {
1333
- required: !0,
1334
- message: A.value.password.message,
1335
- trigger: "blur"
1336
- }
1337
- ]
1338
- })), d = O(() => [
1339
- { value: "password", label: "Account" },
1340
- { value: "auth", label: "Google/Apple" },
1341
- { value: "dingtalk", label: "DingTalk" },
1342
- { value: "feishu", label: "Lark" },
1343
- { value: "wechat", label: "Wechat" }
1344
- ].filter((c, h) => o.loginMethods.includes(h))), a = {
1345
- dingtalk: "DingTalk",
1346
- feishu: "Lark",
1347
- wechat: "Wechat"
1348
- }, l = {
1349
- username: {
1350
- label: "Account",
1351
- placeholder: "Enter your account",
1352
- message: "Account is required",
1353
- showPrefix: !0,
1354
- icon: "imicon im-user",
1355
- valueKey: "username"
1356
- },
1357
- password: {
1358
- label: "Password",
1359
- placeholder: "Enter your password",
1360
- message: "Password is required",
1361
- showPrefix: !0,
1362
- icon: "imicon im-lock",
1363
- valueKey: "password"
1364
- }
1365
- };
1366
- return (c, h) => {
1367
- const x = E("BtnGroup"), i = E("Input"), f = E("el-form-item"), S = E("el-checkbox"), v = E("el-button"), N = E("Form");
1368
- return b(), M("div", vo, [
1369
- r("div", _o, [
1370
- r("div", wo, [
1371
- r("span", $o, L(c.$l(o.title)), 1)
1372
- ]),
1373
- z(x, {
1374
- modelValue: n(s).method,
1375
- "onUpdate:modelValue": h[0] || (h[0] = (I) => n(s).method = I),
1376
- options: n(d),
1377
- disabled: n(s).submitting,
1378
- size: "small",
1379
- class: "mb32"
1380
- }, null, 8, ["modelValue", "options", "disabled"]),
1381
- r("div", xo, [
1382
- n(s).method === "password" ? (b(), B(N, {
1383
- key: 0,
1384
- ref_key: "pwdFormRef",
1385
- ref: t,
1386
- modelValue: n(s).form,
1387
- "onUpdate:modelValue": h[4] || (h[4] = (I) => n(s).form = I),
1388
- size: "default",
1389
- rules: n(k)
1390
- }, {
1391
- default: V(() => [
1392
- z(f, { prop: "username" }, {
1393
- default: V(() => [
1394
- z(i, {
1395
- modelValue: n(s).form.username,
1396
- "onUpdate:modelValue": h[1] || (h[1] = (I) => n(s).form.username = I),
1397
- class: "wp100",
1398
- size: "large",
1399
- name: "username",
1400
- placeholder: n(A).username.placeholder,
1401
- disabled: n(s).submitting
1402
- }, ie({ _: 2 }, [
1403
- n(A).username.showPrefix ? {
1404
- name: "prefix",
1405
- fn: V(() => [
1406
- r("i", {
1407
- class: F(n(A).username.icon)
1408
- }, null, 2)
1409
- ]),
1410
- key: "0"
1411
- } : void 0
1412
- ]), 1032, ["modelValue", "placeholder", "disabled"])
1413
- ]),
1414
- _: 1
1415
- }),
1416
- z(f, { prop: "password" }, {
1417
- default: V(() => [
1418
- z(i, {
1419
- modelValue: n(s).form.password,
1420
- "onUpdate:modelValue": h[2] || (h[2] = (I) => n(s).form.password = I),
1421
- class: "wp100",
1422
- size: "large",
1423
- type: "password",
1424
- name: "password",
1425
- placeholder: n(A).password.placeholder,
1426
- "show-password": "",
1427
- disabled: n(s).submitting,
1428
- onKeyup: Je(w, ["enter"])
1429
- }, ie({ _: 2 }, [
1430
- n(A).password.showPrefix ? {
1431
- name: "prefix",
1432
- fn: V(() => [
1433
- r("i", {
1434
- class: F(n(A).password.icon)
1435
- }, null, 2)
1436
- ]),
1437
- key: "0"
1438
- } : void 0
1439
- ]), 1032, ["modelValue", "placeholder", "disabled"])
1440
- ]),
1441
- _: 1
1442
- }),
1443
- z(f, null, {
1444
- default: V(() => [
1445
- z(S, {
1446
- modelValue: n(s).remember,
1447
- "onUpdate:modelValue": h[3] || (h[3] = (I) => n(s).remember = I),
1448
- disabled: n(s).submitting
1449
- }, {
1450
- default: V(() => [
1451
- W(L(c.$l(o.rememberTxt)), 1)
1452
- ]),
1453
- _: 1
1454
- }, 8, ["modelValue", "disabled"])
1455
- ]),
1456
- _: 1
1457
- }),
1458
- z(v, {
1459
- type: "primary",
1460
- size: "large",
1461
- class: "wp100",
1462
- loading: n(s).submitting,
1463
- disabled: n(s).submitting,
1464
- onClick: w
1465
- }, {
1466
- default: V(() => [
1467
- W(L(c.$l(o.submitTxt)), 1)
1468
- ]),
1469
- _: 1
1470
- }, 8, ["loading", "disabled"])
1471
- ]),
1472
- _: 1
1473
- }, 8, ["modelValue", "rules"])) : n(s).method === "auth" ? (b(), M("div", So, [
1474
- h[7] || (h[7] = r("p", { class: "oauthAuthTip m0 block fs12 lh20 txt-tip mb16" }, " 需在应用中配置 OAuth Client 与 token;以下为品牌示意按钮,不发起跳转。 ", -1)),
1475
- r("button", {
1476
- type: "button",
1477
- class: "oauthGoogle wp100 mb36",
1478
- disabled: n(s).submitting,
1479
- onClick: y
1480
- }, [...h[5] || (h[5] = [
1481
- qe('<svg class="oauthGoogleLogo noShrink" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="18" height="18" aria-hidden="true" data-v-8e4310b6><path fill="#EA4335" d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z" data-v-8e4310b6></path><path fill="#4285F4" d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z" data-v-8e4310b6></path><path fill="#FBBC05" d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z" data-v-8e4310b6></path><path fill="#34A853" d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z" data-v-8e4310b6></path></svg><span class="oauthGoogleLabel" data-v-8e4310b6>Sign in with Google</span>', 2)
1482
- ])], 8, Co),
1483
- r("button", {
1484
- type: "button",
1485
- class: "oauthApple wp100 mb16",
1486
- disabled: n(s).submitting,
1487
- onClick: g
1488
- }, [...h[6] || (h[6] = [
1489
- r("svg", {
1490
- class: "oauthAppleLogo noShrink",
1491
- xmlns: "http://www.w3.org/2000/svg",
1492
- viewBox: "0 0 24 24",
1493
- width: "18",
1494
- height: "22",
1495
- "aria-hidden": "true"
1496
- }, [
1497
- r("path", {
1498
- fill: "currentColor",
1499
- d: "M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.38c.843-1.012 1.4-2.427 1.245-3.826-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"
1500
- })
1501
- ], -1),
1502
- r("span", { class: "oauthAppleLabel fs14" }, "Sign in with Apple", -1)
1503
- ])], 8, ko)
1504
- ])) : (b(), M("div", To, [
1505
- r("p", Ao, L(n(T)), 1),
1506
- r("div", {
1507
- class: F(["qrBlock w180 h180 radius6", `qr-${n(s).method}`]),
1508
- "aria-hidden": "true"
1509
- }, null, 2)
1510
- ]))
1511
- ])
1512
- ]),
1513
- r("div", Mo, [
1514
- r("span", null, L(n(_).copyright), 1),
1515
- r("span", null, L(n(_).author), 1)
1516
- ])
1517
- ]);
1518
- };
1519
- }
1520
- }), Oo = /* @__PURE__ */ J(Vo, [["__scopeId", "data-v-8e4310b6"]]), Lo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1521
- __proto__: null,
1522
- default: Oo
1523
- }, Symbol.toStringTag, { value: "Module" })), Io = { class: "MvcPage" }, jo = {
1524
- key: 0,
1525
- class: "PageHeader"
1526
- }, zo = { class: "PageHeaderLeft" }, Eo = { class: "PageHeaderTitle" }, No = { class: "PageHeaderSubTitle" }, Ko = { class: "PageHeaderRight" }, Fo = { class: "PageBody" }, Do = /* @__PURE__ */ Object.assign({
1527
- name: "MvcPage",
1528
- inheritAttrs: !1
1529
- }, {
1530
- __name: "index",
1531
- props: {
1532
- title: {
1533
- type: String,
1534
- default: ""
1535
- },
1536
- subtitle: {
1537
- type: String,
1538
- default: ""
1539
- },
1540
- noheader: {
1541
- type: Boolean,
1542
- default: !1
1543
- }
1544
- },
1545
- setup(p) {
1546
- const m = p, { proxy: o } = ae(), t = he("store").tab(), s = O(() => m.title || m.subtitle);
1547
- return O(() => t.useTab ? {
1548
- minHeight: "calc(100vh - 48px - 36px)"
1549
- } : {
1550
- minHeight: "calc(100vh - 48px)"
1551
- }), (u, C) => (b(), M("div", Io, [
1552
- m.noheader ? K("", !0) : (b(), M("div", jo, [
1553
- r("div", zo, [
1554
- u.$slots.header ? R(u.$slots, "header", { key: 0 }, void 0, !0) : n(s) ? (b(), M(Y, { key: 1 }, [
1555
- r("h3", Eo, L(m.title), 1),
1556
- r("p", No, L(m.subtitle), 1)
1557
- ], 64)) : K("", !0)
1558
- ]),
1559
- r("div", Ko, [
1560
- u.$slots.right ? R(u.$slots, "right", { key: 0 }, void 0, !0) : K("", !0)
1561
- ])
1562
- ])),
1563
- r("div", Fo, [
1564
- R(u.$slots, "default", {}, void 0, !0)
1565
- ])
1566
- ]));
1567
- }
1568
- }), Bo = /* @__PURE__ */ J(Do, [["__scopeId", "data-v-7d18d3b1"]]), Po = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1569
- __proto__: null,
1570
- default: Bo
1571
- }, Symbol.toStringTag, { value: "Module" })), Ro = { class: "flexMode hb vc" }, Ho = { key: 1 }, Uo = { class: "tag" }, Go = { class: "flexMode hr" }, Jo = /* @__PURE__ */ Object.assign({
1572
- name: "MvcSelect",
1573
- inheritAttrs: !1
1574
- }, {
1575
- __name: "index",
1576
- props: {
1577
- modelValue: {
1578
- type: [String, Number, Array],
1579
- default: void 0
1580
- },
1581
- multiple: {
1582
- type: Boolean,
1583
- default: !1
1584
- },
1585
- filterable: {
1586
- type: Boolean,
1587
- default: !1
1588
- },
1589
- options: {
1590
- type: Array,
1591
- default: () => []
1592
- },
1593
- valueKey: {
1594
- type: String,
1595
- default: "value"
1596
- },
1597
- labelKey: {
1598
- type: String,
1599
- default: "label"
1600
- },
1601
- selectAllTxt: {
1602
- type: String,
1603
- default: "All"
1604
- },
1605
- confirmTxt: {
1606
- type: String,
1607
- default: "Confirm"
1608
- },
1609
- nowrap: {
1610
- type: Boolean,
1611
- default: !1
1612
- }
1613
- },
1614
- emits: ["update:modelValue", "change"],
1615
- setup(p, { emit: m }) {
1616
- const o = p, e = G(null), t = G([]), s = G(!1), u = G(!1), C = G(!1), $ = m, y = (i) => {
1617
- o.multiple ? (t.value = Array.isArray(i) ? [...i] : [], k()) : ($("update:modelValue", i), $("change", i));
1618
- }, g = (i) => {
1619
- if (s.value = i, i && o.multiple) {
1620
- const f = o.modelValue;
1621
- t.value = Array.isArray(f) ? [...f] : f ? [f] : [], k();
1622
- }
1623
- }, w = () => {
1624
- var S;
1625
- if (!o.filterable || !s.value) return A();
1626
- const i = e.value, f = ((S = i == null ? void 0 : i.optionsArray) == null ? void 0 : S.value) ?? (i == null ? void 0 : i.optionsArray) ?? [];
1627
- return Array.isArray(f) ? f.filter((v) => v.visible && !v.isDisabled).map((v) => v.value) : A();
1628
- }, _ = (i) => {
1629
- C.value = !1;
1630
- const f = w();
1631
- if (i)
1632
- t.value = [.../* @__PURE__ */ new Set([...t.value, ...f])];
1633
- else {
1634
- const S = new Set(f);
1635
- t.value = t.value.filter((v) => !S.has(v));
1636
- }
1637
- }, T = () => {
1638
- var i, f;
1639
- o.multiple && ($("update:modelValue", t.value), $("change", t.value), (f = (i = e.value) == null ? void 0 : i.blur) == null || f.call(i));
1640
- }, A = () => {
1641
- const i = o.valueKey;
1642
- return (o.options || []).map((f) => typeof f == "object" ? f[i] : f);
1643
- }, k = () => {
1644
- const i = w(), f = new Set(t.value ?? []), S = i.filter((N) => f.has(N)).length, v = i.length;
1645
- u.value = v > 0 && S === v, C.value = S > 0 && S < v;
1646
- }, d = O(() => o.multiple && s.value ? t.value : o.modelValue), a = O(() => {
1647
- const {
1648
- modelValue: i,
1649
- valueKey: f,
1650
- labelKey: S,
1651
- selectAllTxt: v,
1652
- confirmTxt: N,
1653
- nowrap: I,
1654
- ...P
1655
- } = o, Z = P.props ?? {};
1656
- return {
1657
- ...P,
1658
- props: {
1659
- ...Z,
1660
- value: f,
1661
- label: S
1662
- }
1663
- };
1664
- }), l = O(
1665
- () => o.nowrap ? {
1666
- collapseTags: !0,
1667
- collapseTagsTooltip: !0,
1668
- maxCollapseTags: 1,
1669
- tagTooltip: { popperStyle: { maxWidth: "400px" } }
1670
- } : {}
1671
- ), c = O(() => ({
1672
- ...l.value,
1673
- ...ve(),
1674
- ...a.value
1675
- })), h = O(() => {
1676
- const i = o.multiple && s.value ? t.value : o.modelValue, f = Array.isArray(i) ? i : i ? [i] : [];
1677
- if (!o.filterable || !s.value) return f.length;
1678
- const S = w();
1679
- return f.filter((v) => S.includes(v)).length;
1680
- }), x = O(() => w().length);
1681
- return ne(t, () => k(), { deep: !0 }), ne(
1682
- () => o.modelValue,
1683
- (i) => {
1684
- if (o.multiple && s.value) {
1685
- const f = Array.isArray(i) ? [...i] : i ? [i] : [];
1686
- JSON.stringify(f) !== JSON.stringify(t.value) && (t.value = f, k());
1687
- }
1688
- }
1689
- ), (i, f) => {
1690
- const S = E("el-checkbox"), v = E("el-button"), N = E("el-select");
1691
- return b(), B(N, oe({
1692
- ref_key: "selectRef",
1693
- ref: e,
1694
- "model-value": n(d),
1695
- "tag-effect": "plain",
1696
- class: "MvcSelect"
1697
- }, n(c), {
1698
- "onUpdate:modelValue": y,
1699
- onVisibleChange: g
1700
- }), ie({
1701
- default: V(() => [
1702
- R(i.$slots, "default")
1703
- ]),
1704
- _: 2
1705
- }, [
1706
- o.filterable ? {
1707
- name: "header",
1708
- fn: V(() => [
1709
- r("div", Ro, [
1710
- o.multiple ? (b(), B(S, {
1711
- key: 0,
1712
- modelValue: n(u),
1713
- "onUpdate:modelValue": f[0] || (f[0] = (I) => je(u) ? u.value = I : null),
1714
- indeterminate: n(C),
1715
- class: "h24",
1716
- onChange: _
1717
- }, {
1718
- default: V(() => [
1719
- W(L(p.selectAllTxt), 1)
1720
- ]),
1721
- _: 1
1722
- }, 8, ["modelValue", "indeterminate"])) : (b(), M("span", Ho)),
1723
- r("span", Uo, L(n(h)) + "/" + L(n(x)), 1)
1724
- ])
1725
- ]),
1726
- key: "0"
1727
- } : void 0,
1728
- o.multiple ? {
1729
- name: "footer",
1730
- fn: V(() => [
1731
- r("div", Go, [
1732
- z(v, {
1733
- type: "primary",
1734
- size: "small",
1735
- onClick: T
1736
- }, {
1737
- default: V(() => [
1738
- W(L(p.confirmTxt), 1)
1739
- ]),
1740
- _: 1
1741
- })
1742
- ])
1743
- ]),
1744
- key: "1"
1745
- } : void 0
1746
- ]), 1040, ["model-value"]);
1747
- };
1748
- }
1749
- }), qo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1750
- __proto__: null,
1751
- default: Jo
1752
- }, Symbol.toStringTag, { value: "Module" })), Wo = { class: "flexMode hb vc" }, Yo = { key: 1 }, Zo = { class: "tag" }, Qo = { class: "flexMode hr" }, Xo = /* @__PURE__ */ Object.assign({
1753
- name: "MvcSelectV2",
1754
- inheritAttrs: !1
1755
- }, {
1756
- __name: "index",
1757
- props: {
1758
- modelValue: {
1759
- type: [String, Number, Array],
1760
- default: void 0
1761
- },
1762
- multiple: {
1763
- type: Boolean,
1764
- default: !1
1765
- },
1766
- filterable: {
1767
- type: Boolean,
1768
- default: !1
1769
- },
1770
- options: {
1771
- type: Array,
1772
- default: () => []
1773
- },
1774
- valueKey: {
1775
- type: String,
1776
- default: "value"
1777
- },
1778
- labelKey: {
1779
- type: String,
1780
- default: "label"
1781
- },
1782
- selectAllTxt: {
1783
- type: String,
1784
- default: "All"
1785
- },
1786
- confirmTxt: {
1787
- type: String,
1788
- default: "Confirm"
1789
- },
1790
- nowrap: {
1791
- type: Boolean,
1792
- default: !1
1793
- }
1794
- },
1795
- emits: ["update:modelValue", "change"],
1796
- setup(p, { emit: m }) {
1797
- const o = p, e = G(null), t = G([]), s = G(!1), u = G(!1), C = G(!1), $ = m, y = (i) => {
1798
- o.multiple ? (t.value = Array.isArray(i) ? [...i] : [], k()) : ($("update:modelValue", i), $("change", i));
1799
- }, g = (i) => {
1800
- if (s.value = i, i && o.multiple) {
1801
- const f = o.modelValue;
1802
- t.value = Array.isArray(f) ? [...f] : f ? [f] : [], k();
1803
- }
1804
- }, w = () => {
1805
- var v;
1806
- if (!o.filterable || !s.value) return A();
1807
- const i = e.value, f = ((v = i == null ? void 0 : i.filteredOptions) == null ? void 0 : v.value) ?? (i == null ? void 0 : i.filteredOptions) ?? [];
1808
- if (!Array.isArray(f)) return A();
1809
- const S = o.valueKey;
1810
- return f.filter((N) => N.type !== "Group" && !N.disabled).map((N) => typeof N == "object" ? N[S] : N);
1811
- }, _ = (i) => {
1812
- C.value = !1;
1813
- const f = w();
1814
- if (i)
1815
- t.value = [.../* @__PURE__ */ new Set([...t.value, ...f])];
1816
- else {
1817
- const S = new Set(f);
1818
- t.value = t.value.filter((v) => !S.has(v));
1819
- }
1820
- }, T = () => {
1821
- var i, f;
1822
- o.multiple && ($("update:modelValue", t.value), $("change", t.value), (f = (i = e.value) == null ? void 0 : i.blur) == null || f.call(i));
1823
- }, A = () => {
1824
- const i = o.valueKey;
1825
- return (o.options || []).map((f) => typeof f == "object" ? f[i] : f);
1826
- }, k = () => {
1827
- const i = w(), f = new Set(t.value ?? []), S = i.filter((N) => f.has(N)).length, v = i.length;
1828
- u.value = v > 0 && S === v, C.value = S > 0 && S < v;
1829
- }, d = O(() => o.multiple && s.value ? t.value : o.modelValue), a = O(() => {
1830
- const {
1831
- modelValue: i,
1832
- valueKey: f,
1833
- labelKey: S,
1834
- selectAllTxt: v,
1835
- confirmTxt: N,
1836
- nowrap: I,
1837
- ...P
1838
- } = o, Z = P.props ?? {};
1839
- return {
1840
- ...P,
1841
- props: {
1842
- ...Z,
1843
- value: f,
1844
- label: S
1845
- }
1846
- };
1847
- }), l = O(
1848
- () => o.nowrap ? {
1849
- collapseTags: !0,
1850
- collapseTagsTooltip: !0,
1851
- maxCollapseTags: 1,
1852
- tagTooltip: { popperStyle: { maxWidth: "400px" } }
1853
- } : {}
1854
- ), c = O(() => ({
1855
- ...l.value,
1856
- ...ve(),
1857
- ...a.value
1858
- })), h = O(() => {
1859
- const i = o.multiple && s.value ? t.value : o.modelValue, f = Array.isArray(i) ? i : i ? [i] : [];
1860
- if (!o.filterable || !s.value) return f.length;
1861
- const S = w();
1862
- return f.filter((v) => S.includes(v)).length;
1863
- }), x = O(() => w().length);
1864
- return ne(t, () => k(), { deep: !0 }), ne(
1865
- () => o.modelValue,
1866
- (i) => {
1867
- if (o.multiple && s.value) {
1868
- const f = Array.isArray(i) ? [...i] : i ? [i] : [];
1869
- JSON.stringify(f) !== JSON.stringify(t.value) && (t.value = f, k());
1870
- }
1871
- }
1872
- ), (i, f) => {
1873
- const S = E("el-checkbox"), v = E("el-button"), N = E("el-select-v2");
1874
- return b(), B(N, oe({
1875
- ref_key: "selectRef",
1876
- ref: e,
1877
- "model-value": n(d),
1878
- class: "MvcSelectV2"
1879
- }, n(c), {
1880
- "onUpdate:modelValue": y,
1881
- onVisibleChange: g
1882
- }), ie({ _: 2 }, [
1883
- o.filterable ? {
1884
- name: "header",
1885
- fn: V(() => [
1886
- r("div", Wo, [
1887
- o.multiple ? (b(), B(S, {
1888
- key: 0,
1889
- modelValue: n(u),
1890
- "onUpdate:modelValue": f[0] || (f[0] = (I) => je(u) ? u.value = I : null),
1891
- indeterminate: n(C),
1892
- class: "h24",
1893
- onChange: _
1894
- }, {
1895
- default: V(() => [
1896
- W(L(p.selectAllTxt), 1)
1897
- ]),
1898
- _: 1
1899
- }, 8, ["modelValue", "indeterminate"])) : (b(), M("span", Yo)),
1900
- r("span", Zo, L(n(h)) + "/" + L(n(x)), 1)
1901
- ])
1902
- ]),
1903
- key: "0"
1904
- } : void 0,
1905
- i.$slots.default ? {
1906
- name: "default",
1907
- fn: V((I) => [
1908
- R(i.$slots, "default", de(fe(I)))
1909
- ]),
1910
- key: "1"
1911
- } : void 0,
1912
- o.multiple ? {
1913
- name: "footer",
1914
- fn: V(() => [
1915
- r("div", Qo, [
1916
- z(v, {
1917
- type: "primary",
1918
- size: "small",
1919
- onClick: T
1920
- }, {
1921
- default: V(() => [
1922
- W(L(p.confirmTxt), 1)
1923
- ]),
1924
- _: 1
1925
- })
1926
- ])
1927
- ]),
1928
- key: "2"
1929
- } : void 0
1930
- ]), 1040, ["model-value"]);
1931
- };
1932
- }
1933
- }), en = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1934
- __proto__: null,
1935
- default: Xo
1936
- }, Symbol.toStringTag, { value: "Module" })), tn = Ie({
1937
- name: "MvcTableColumnFilter",
1938
- props: {
1939
- tableName: {
1940
- type: String,
1941
- default: ""
1942
- },
1943
- group: {
1944
- type: Object,
1945
- default: /* @__PURE__ */ Object.create(null)
1946
- },
1947
- column: {
1948
- type: Boolean,
1949
- default: !1
1950
- }
1951
- },
1952
- setup: (p, m) => {
1953
- var C;
1954
- const o = H({
1955
- options: [],
1956
- slots: []
1957
- }), e = p.tableName + "_Column";
1958
- let t = [];
1959
- (() => {
1960
- const $ = m.slots.default()[0].children, y = {
1961
- normal: [],
1962
- mmp: [],
1963
- asa: [],
1964
- fixed: [],
1965
- columns: []
1966
- }, g = p.tableName ? JSON.parse(localStorage.getItem(e)) : null, w = [void 0];
1967
- $.forEach((T) => {
1968
- window.$getType(T.type) === "Symbol" ? t = t.concat(T.children) : t.push(T);
1969
- }), t.forEach((T, A) => {
1970
- var k;
1971
- if (window.$getType(T.type), ((k = T.type) == null ? void 0 : k.name) === "ElTableColumn") {
1972
- let d = {
1973
- ...T.props,
1974
- sort: A,
1975
- nomove: T.props.nomove || T.props.nomove === "" || T.props.type === "selection" || T.props.label === "Operation",
1976
- resizable: !0,
1977
- visible: T.props.visible !== !1
1978
- };
1979
- if (d.labelKey || (d.labelKey = d.label), d.label = window.$l(d.labelKey), p.column && (g != null && g.length) && w.indexOf(T.props.prop) === -1) {
1980
- const { data: a } = g.filter1((l) => l.prop === T.props.prop);
1981
- a && (d.sort = a.sort, d.fixed = a.fixed, d.visible = a.visible);
1982
- }
1983
- T.props.fixed && y.fixed.push(d), T.props.type === "mmp" ? y.mmp.push(d) : T.props.type === "asa" ? y.asa.push(d) : y.normal.push(d), T.props = d;
1984
- }
1985
- }), o.columnInfo = y;
1986
- let _ = [...y.normal, ...y.mmp, ...y.asa];
1987
- p.tableName && (_ = _.sort((T, A) => T.sort - A.sort), localStorage.setItem(e, JSON.stringify(_)));
1988
- })();
1989
- let u = [];
1990
- if (t.forEach(($) => {
1991
- window.$getType($) !== "String" && $.props.visible && u.push($);
1992
- }), (C = p.group) != null && C.label) {
1993
- const $ = {
1994
- label: "Group By " + p.group.label,
1995
- // prop: props.group.value,
1996
- width: p.group.width,
1997
- fixed: "left",
1998
- visible: !0,
1999
- resizable: !0
2000
- };
2001
- u[0].props.type === "selection" ? u.splice(1, 0, {
2002
- ...u[1],
2003
- props: $
2004
- }) : u.unshift({
2005
- ...u[0],
2006
- props: $
2007
- });
2008
- }
2009
- return u = u.sort(($, y) => $.props.sort - y.props.sort), () => u;
2010
- }
2011
- }), on = { class: "hp100 flexMode" }, nn = { class: "w200 hp100 border-r fs14" }, ln = { class: "flexMode vc h36 p8 bg-gray3 border-b txt-nowrap" }, sn = { class: "p4" }, an = ["onClick"], rn = {
2012
- class: "flexMode vs hp100",
2013
- style: { width: "calc(100% - 200px)" }
2014
- }, cn = { class: "wp50 border-r fs14" }, un = { class: "flexMode vc g8 h36 p8 bg-gray3 border-b txt-nowrap" }, dn = { class: "tagArea blue small" }, pn = { class: "p4" }, mn = {
2015
- key: 0,
2016
- class: "absCenter fs12 txt-dark5 txt-nowrap"
2017
- }, fn = { class: "flexMode vc g8" }, gn = ["txt", "onClick"], hn = { class: "wp50 border-r fs14" }, bn = { class: "flexMode vc g8 h36 p8 bg-gray3 border-b txt-nowrap" }, yn = { class: "tagArea blue small" }, vn = {
2018
- class: "relative p4",
2019
- style: { height: "calc(100% - 36px)" }
2020
- }, _n = {
2021
- class: "relative",
2022
- style: { height: "30%" }
2023
- }, wn = {
2024
- key: 0,
2025
- class: "absCenter fs12 txt-dark5 txt-nowrap"
2026
- }, $n = { class: "columnItem flexMode vc hb h40 g8 p4-8 mb4 radius4" }, xn = { class: "flexMode vc g8 txt-nowrap" }, Sn = { class: "flexMode vc g8" }, Cn = ["txt", "onClick"], kn = {
2027
- class: "relative",
2028
- style: { height: "calc(70% - 10px)" }
2029
- }, Tn = {
2030
- key: 0,
2031
- class: "absCenter fs12 txt-dark5 txt-nowrap"
2032
- }, An = { class: "columnItem flexMode vc hb h40 g8 p4-8 mb4 radius4" }, Mn = { class: "flexMode vc g8 txt-nowrap" }, Vn = { class: "flexMode vc" }, On = ["txt", "onClick"], Ln = ["txt", "onClick"], In = /* @__PURE__ */ Object.assign({
2033
- name: "MvcTableColumnConfig",
2034
- inheritAttrs: !1
2035
- }, {
2036
- __name: "ColumnConfig",
2037
- props: {
2038
- tableName: {
2039
- type: String,
2040
- default: ""
2041
- }
2042
- },
2043
- emits: "close",
2044
- setup(p, { emit: m }) {
2045
- const o = p, e = H({
2046
- loading: !1,
2047
- type: "normal",
2048
- columns: {
2049
- normal: [],
2050
- mmp: [],
2051
- asa: []
2052
- },
2053
- fixed: [],
2054
- visible: [],
2055
- selection: [],
2056
- operation: [],
2057
- columnType: {},
2058
- mounted: !1
2059
- });
2060
- ee(() => {
2061
- s();
2062
- });
2063
- const t = m, s = () => {
2064
- t("mounted");
2065
- const a = JSON.parse(localStorage.getItem(`${o.tableName}_Column`)), l = {};
2066
- a.forEach((c) => {
2067
- c.type && (l[c.type] = !0), c.visible ? c.type === "selection" ? e.selection.push(c) : c.type === "operation" ? e.operation.push(c) : c.label && (c.fixed ? e.fixed.push(c) : e.visible.push(c)) : c.type === "mmp" ? e.columns.mmp.push(c) : c.type === "asa" ? e.columns.asa.push(c) : e.columns.normal.push(c);
2068
- }), e.columnType = l;
2069
- }, u = (a) => {
2070
- e.type = a;
2071
- }, C = (a, l) => {
2072
- a.visible = !0, e.visible.unshift(a), a.type ? e.columns[a.type].splice(l, 1) : e.columns.normal.splice(l, 1);
2073
- }, $ = (a, l) => {
2074
- e.fixed.unshift(a), e.visible.splice(l, 1);
2075
- }, y = (a, l) => {
2076
- e.visible.unshift(a), e.fixed.splice(l, 1);
2077
- }, g = (a, l) => {
2078
- e.visible.splice(l, 1), a.type ? e.columns[a.type].unshift(a) : e.columns.normal.unshift(a);
2079
- }, w = async () => {
2080
- e.loading = !0, window.$pm(() => {
2081
- const { fixed: a, visible: l, columns: c, selection: h, operation: x } = e;
2082
- let i = [];
2083
- Object.keys(c).map((S) => {
2084
- i = i.concat(c[S]);
2085
- }), a.forEach((S) => S.fixed = "left"), i.forEach((S) => S.visible = !1);
2086
- const f = h.concat(a, l, i, x);
2087
- f.forEach((S, v) => S.sort = v), localStorage.setItem(`${o.tableName}_Column`, JSON.stringify(f)), e.loading = !1, t("close"), t("init-column");
2088
- });
2089
- }, _ = () => {
2090
- e.loading = !0, localStorage.removeItem(`${o.tableName}_Column`), window.$pm(() => {
2091
- e.loading = !1, t("close"), t("init-column");
2092
- }, 4);
2093
- }, T = O(() => window.config.options.drawerHeight - 36 - 64), A = O(() => (T.value * 0.3).toFixed(0)), k = O(() => (T.value * 0.7 - 10).toFixed(0)), d = O(() => [
2094
- {
2095
- label: "Base Info",
2096
- value: "normal"
2097
- },
2098
- {
2099
- label: "Asa Metrics",
2100
- value: "asa",
2101
- hide: !e.columnType.asa
2102
- },
2103
- {
2104
- label: "MMP Metrics",
2105
- value: "mmp",
2106
- hide: !e.columnType.mmp
2107
- }
2108
- ]);
2109
- return (a, l) => {
2110
- const c = E("el-scrollbar"), h = E("DrawerArea");
2111
- return b(), B(h, {
2112
- loading: n(e).loading,
2113
- noscroll: "",
2114
- "cancel-txt": "Reset",
2115
- "cancel-icon": "im-sync",
2116
- class: "MvcTableColumnConfig",
2117
- onCancel: _,
2118
- onSubmit: w
2119
- }, {
2120
- default: V(() => [
2121
- r("div", on, [
2122
- r("div", nn, [
2123
- r("div", ln, L(a.$l("Column Type")), 1),
2124
- r("div", sn, [
2125
- (b(!0), M(Y, null, se(n(d), (x) => (b(), M("div", {
2126
- key: x.value,
2127
- class: F(["typeItem p8-16 mb4 radius4 txt-nowrap", [n(e).type === x.value && "active", x.hide && "hide"]]),
2128
- onClick: (i) => u(x.value)
2129
- }, L(x.label), 11, an))), 128))
2130
- ])
2131
- ]),
2132
- r("div", rn, [
2133
- r("div", cn, [
2134
- r("div", un, [
2135
- r("span", null, L(a.$l("Columns")), 1),
2136
- r("span", dn, L(n(e).columns[n(e).type].length), 1)
2137
- ]),
2138
- z(c, { style: { height: "calc(100% - 36px)" } }, {
2139
- default: V(() => [
2140
- r("div", pn, [
2141
- n(e).columns[n(e).type].length === 0 ? (b(), M("span", mn, L(a.$l("No Columns")), 1)) : K("", !0),
2142
- (b(!0), M(Y, null, se(n(e).columns[n(e).type], (x, i) => (b(), M("div", {
2143
- key: x.prop,
2144
- class: "columnItem flexMode vc hb h40 g8 p4-8 mb4 radius4 txt-nowrap"
2145
- }, [
2146
- r("span", null, L(a.$l(x.label)), 1),
2147
- r("div", fn, [
2148
- r("div", {
2149
- class: "tipbtn left",
2150
- txt: a.$l("Visible"),
2151
- onClick: (f) => C(x, i)
2152
- }, [...l[0] || (l[0] = [
2153
- r("i", { class: "imicon im-plus fs16" }, null, -1)
2154
- ])], 8, gn)
2155
- ])
2156
- ]))), 128))
2157
- ])
2158
- ]),
2159
- _: 1
2160
- })
2161
- ]),
2162
- r("div", hn, [
2163
- r("div", bn, [
2164
- r("span", null, L(a.$l("Visible Columns")), 1),
2165
- r("span", yn, L(n(e).visible.length), 1)
2166
- ]),
2167
- r("div", vn, [
2168
- r("div", _n, [
2169
- n(e).fixed.length === 0 ? (b(), M("span", wn, L(a.$l("No Fixed Columns")), 1)) : K("", !0),
2170
- z(c, { height: n(A) }, {
2171
- default: V(() => [
2172
- z(n(Se), {
2173
- list: n(e).fixed,
2174
- "item-key": (x) => x,
2175
- handle: ".im-handle",
2176
- "ghost-class": "ghost"
2177
- }, {
2178
- item: V(({ element: x, index: i }) => [
2179
- r("div", $n, [
2180
- r("div", xn, [
2181
- l[1] || (l[1] = r("i", { class: "imicon im-handle cursor-grab" }, null, -1)),
2182
- r("span", null, L(a.$l(x.label)), 1)
2183
- ]),
2184
- r("div", Sn, [
2185
- r("div", {
2186
- class: "tipbtn red left",
2187
- txt: a.$l("Unfixed"),
2188
- onClick: (f) => y(x, i)
2189
- }, [...l[2] || (l[2] = [
2190
- r("i", { class: "imicon im-download1 fs14" }, null, -1)
2191
- ])], 8, Cn)
2192
- ])
2193
- ])
2194
- ]),
2195
- _: 1
2196
- }, 8, ["list", "item-key"])
2197
- ]),
2198
- _: 1
2199
- }, 8, ["height"])
2200
- ]),
2201
- l[6] || (l[6] = r("div", { class: "p4-0" }, [
2202
- r("div", { class: "border-t" })
2203
- ], -1)),
2204
- r("div", kn, [
2205
- n(e).visible.length === 0 ? (b(), M("span", Tn, L(a.$l("No Columns")), 1)) : K("", !0),
2206
- z(c, { height: n(k) }, {
2207
- default: V(() => [
2208
- z(n(Se), {
2209
- list: n(e).visible,
2210
- "item-key": (x) => x,
2211
- options: { lockAxis: "y" },
2212
- handle: ".im-handle",
2213
- "ghost-class": "ghost"
2214
- }, {
2215
- item: V(({ element: x, index: i }) => [
2216
- r("div", An, [
2217
- r("div", Mn, [
2218
- l[3] || (l[3] = r("i", { class: "imicon im-handle cursor-grab" }, null, -1)),
2219
- r("span", null, L(a.$l(x.label)), 1)
2220
- ]),
2221
- r("div", Vn, [
2222
- r("div", {
2223
- class: "tipbtn left",
2224
- txt: a.$l("Fixed"),
2225
- onClick: (f) => $(x, i)
2226
- }, [...l[4] || (l[4] = [
2227
- r("i", { class: "imicon im-download1 fs14 rotateZ180" }, null, -1)
2228
- ])], 8, On),
2229
- r("div", {
2230
- class: "tipbtn red left",
2231
- txt: a.$l("Hide"),
2232
- onClick: (f) => g(x, i)
2233
- }, [...l[5] || (l[5] = [
2234
- r("i", { class: "imicon im-close fs14" }, null, -1)
2235
- ])], 8, Ln)
2236
- ])
2237
- ])
2238
- ]),
2239
- _: 1
2240
- }, 8, ["list", "item-key"])
2241
- ]),
2242
- _: 1
2243
- }, 8, ["height"])
2244
- ])
2245
- ])
2246
- ])
2247
- ])
2248
- ])
2249
- ]),
2250
- _: 1
2251
- }, 8, ["loading"]);
2252
- };
2253
- }
2254
- }), jn = /* @__PURE__ */ J(In, [["__scopeId", "data-v-01691821"]]), zn = { class: "p16 border-b" }, En = { class: "flexMode vc g8" }, Nn = {
2255
- key: 0,
2256
- class: "flexMode vc g8"
2257
- }, Kn = { class: "flexMode g16 hr vc" }, Fn = { class: "TheEnd p16" }, Dn = { class: "sticky flexMode vc hb p4-8 mt16 mb8 fs14 txt-dark9 z9 backdrop border-l4-primary bg-gray3 radius4" }, Bn = { class: "fw700" }, Pn = { class: "flexMode vc g8" }, Rn = /* @__PURE__ */ Object.assign({
2258
- name: "MvcTableColumnDownload",
2259
- inheritAttrs: !1
2260
- }, {
2261
- __name: "ColumnDownload",
2262
- props: {
2263
- tableName: {
2264
- type: String,
2265
- default: ""
2266
- },
2267
- list: {
2268
- type: Array,
2269
- default: () => []
2270
- },
2271
- selection: {
2272
- type: Array,
2273
- default: () => []
2274
- }
2275
- },
2276
- emits: ["mounted"],
2277
- setup(p, { emit: m }) {
2278
- const o = p, e = H({
2279
- loading: !1,
2280
- columns: [],
2281
- checked: [],
2282
- useHead: !1,
2283
- onlySelection: !1,
2284
- mounted: !1
2285
- });
2286
- ee(() => {
2287
- s();
2288
- });
2289
- const t = m, s = () => {
2290
- t("mounted"), u(), C();
2291
- }, u = () => {
2292
- const d = JSON.parse(localStorage.getItem(`${o.tableName}_Column`)), a = ["selection", "operation"];
2293
- e.columns = d.filter((l) => !a.includes(l.type) && l.label);
2294
- }, C = () => {
2295
- o.selection.length && (e.onlySelection = !0);
2296
- }, $ = (d, a) => {
2297
- d ? a.children.forEach((l) => {
2298
- l.visible = !0;
2299
- }) : a.children.forEach((l) => {
2300
- l.visible = !1;
2301
- });
2302
- }, y = () => {
2303
- window.$copy(w());
2304
- }, g = async () => {
2305
- e.loading = !0;
2306
- try {
2307
- const d = w("download");
2308
- let a = e.fileName || _.value;
2309
- a && !a.toLowerCase().endsWith(".csv") && (a = `${a}.csv`), await Qe({ content: d, filename: a, bom: !0 });
2310
- } finally {
2311
- e.loading = !1;
2312
- }
2313
- }, w = (d) => {
2314
- const a = e.onlySelection ? o.selection : o.list, l = {}, c = [];
2315
- e.columns.filter((v) => v.visible).forEach((v) => {
2316
- c.push(window.$l(v.label)), l[v.prop] = !0;
2317
- });
2318
- let h = "", x = [], i = d === "download" ? "," : " ";
2319
- (e.useHead || d) && (h = c.join(i) + `
2320
- `);
2321
- let f = [], S;
2322
- return Object.keys(l).forEach((v, N) => {
2323
- v.includes("country") && (S = N);
2324
- const I = [];
2325
- a.forEach((P) => {
2326
- P[v] !== void 0 && I.push(P[v]);
2327
- }), f.push(I);
2328
- }), f.forEach((v, N) => {
2329
- !e.useCountryCode && S === N ? v.forEach((I, P) => {
2330
- let Z = I;
2331
- window.$getType(I) === "Array" ? Z = I.map((ue) => k[ue.toUpperCase()].label.$l()).join(",") : window.$getType(I) === "String" ? Z = I.split(",").map((ue) => k[ue.toUpperCase()].label.$l()).join(",") : Z = JSON.stringify(I), x[P] ? x[P] += Z + i : x[P] = Z + i;
2332
- }) : v.forEach((I, P) => {
2333
- x[P] ? x[P] += I + i : x[P] = I + i;
2334
- });
2335
- }), `${h}${x.join(`
2336
- `)}`;
2337
- }, _ = O(() => {
2338
- const d = window.$m().format("YYYYMMDDHHmmss");
2339
- return `${o.tableName}_${d}`;
2340
- }), T = O(() => {
2341
- const d = {};
2342
- return e.columns.forEach((a) => {
2343
- const l = a.type ? a.type : "normal", c = {
2344
- label: A[l],
2345
- type: l,
2346
- visible: 0
2347
- };
2348
- d[l] ? (d[l].children.push(a), a.visible && d[l].visible++) : (c.children = [a], a.visible && c.visible++, d[l] = c);
2349
- }), Object.keys(d).forEach((a) => {
2350
- const l = d[a].visible === d[a].children.length, c = d[a].visible === 0;
2351
- l ? (d[a].checkstatus = !0, d[a].indeterminate = !1) : c ? (d[a].checkstatus = !1, d[a].indeterminate = !1) : (d[a].checkstatus = !1, d[a].indeterminate = !0);
2352
- }), d;
2353
- }), A = {
2354
- asa: "Asa Metrics",
2355
- normal: "Base Info",
2356
- mmp: "MMP Metrics"
2357
- };
2358
- "Check All".$l(), "Cancel All".$l();
2359
- const k = useMap("asa.countryAll.obj");
2360
- return (d, a) => {
2361
- const l = E("el-checkbox"), c = E("el-button"), h = E("MvcAlert"), x = E("el-switch"), i = E("Input"), f = E("DrawerArea");
2362
- return b(), B(f, oe(d.$attrs, { class: "MvcTableColumnDownload" }), {
2363
- cancel: V(() => [
2364
- z(i, {
2365
- modelValue: n(e).fileName,
2366
- "onUpdate:modelValue": a[3] || (a[3] = (S) => n(e).fileName = S),
2367
- icon: "catalog",
2368
- placeholder: n(_),
2369
- class: "w600"
2370
- }, {
2371
- append: V(() => [
2372
- z(c, {
2373
- loading: n(e).loading,
2374
- onClick: g
2375
- }, {
2376
- icon: V(() => [...a[5] || (a[5] = [
2377
- r("i", { class: "imicon im-download1" }, null, -1)
2378
- ])]),
2379
- default: V(() => [
2380
- W(" " + L(d.$l("Download")), 1)
2381
- ]),
2382
- _: 1
2383
- }, 8, ["loading"])
2384
- ]),
2385
- _: 1
2386
- }, 8, ["modelValue", "placeholder"])
2387
- ]),
2388
- submit: V(() => [...a[6] || (a[6] = [])]),
2389
- default: V(() => [
2390
- r("div", zn, [
2391
- z(h, null, {
2392
- default: V(() => [
2393
- r("div", En, [
2394
- r("span", null, L(d.$l("Total")), 1),
2395
- r("span", null, L(o.list.length), 1)
2396
- ]),
2397
- o.selection.length ? (b(), M("div", Nn, [
2398
- r("span", null, L(d.$l("Selection")), 1),
2399
- r("span", null, L(o.selection.length), 1),
2400
- z(l, {
2401
- modelValue: n(e).onlySelection,
2402
- "onUpdate:modelValue": a[0] || (a[0] = (S) => n(e).onlySelection = S),
2403
- label: d.$l("Only Selection")
2404
- }, null, 8, ["modelValue", "label"])
2405
- ])) : K("", !0),
2406
- r("div", Kn, [
2407
- z(c, { onClick: y }, {
2408
- icon: V(() => [...a[4] || (a[4] = [
2409
- r("i", { class: "imicon im-copy" }, null, -1)
2410
- ])]),
2411
- default: V(() => [
2412
- W(" " + L(d.$l("Copy to Clipboard")), 1)
2413
- ]),
2414
- _: 1
2415
- }),
2416
- z(l, {
2417
- modelValue: n(e).useHead,
2418
- "onUpdate:modelValue": a[1] || (a[1] = (S) => n(e).useHead = S),
2419
- label: d.$l("With Table Head")
2420
- }, null, 8, ["modelValue", "label"])
2421
- ])
2422
- ]),
2423
- _: 1
2424
- })
2425
- ]),
2426
- r("div", Fn, [
2427
- (b(!0), M(Y, null, se(n(T), (S) => (b(), M("div", {
2428
- key: S.type
2429
- }, [
2430
- r("div", Dn, [
2431
- r("span", Bn, L(S.label), 1),
2432
- z(l, {
2433
- modelValue: S.checkstatus,
2434
- "onUpdate:modelValue": (v) => S.checkstatus = v,
2435
- indeterminate: S.indeterminate,
2436
- label: d.$l("Check"),
2437
- onChange: (v) => $(v, S)
2438
- }, null, 8, ["modelValue", "onUpdate:modelValue", "indeterminate", "label", "onChange"])
2439
- ]),
2440
- (b(!0), M(Y, null, se(S.children, (v, N) => (b(), B(l, {
2441
- modelValue: v.visible,
2442
- "onUpdate:modelValue": (I) => v.visible = I,
2443
- key: N,
2444
- label: v.label,
2445
- value: v.value,
2446
- class: "fullCheckbox p8-12 mb4 radius2 hover-txt-primary hover-bg-gray3"
2447
- }, {
2448
- default: V(() => {
2449
- var I;
2450
- return [
2451
- r("div", Pn, [
2452
- r("span", null, L(v.label), 1),
2453
- (I = v.prop) != null && I.includes("country") ? (b(), B(x, {
2454
- key: 0,
2455
- modelValue: n(e).useCountryCode,
2456
- "onUpdate:modelValue": a[2] || (a[2] = (P) => n(e).useCountryCode = P),
2457
- "inline-prompt": "",
2458
- "active-text": "Use Alpha-2 Code",
2459
- "inactive-text": "Use Country Name",
2460
- class: "primarySwitch"
2461
- }, null, 8, ["modelValue"])) : K("", !0)
2462
- ])
2463
- ];
2464
- }),
2465
- _: 2
2466
- }, 1032, ["modelValue", "onUpdate:modelValue", "label", "value"]))), 128))
2467
- ]))), 128))
2468
- ])
2469
- ]),
2470
- _: 1
2471
- }, 16);
2472
- };
2473
- }
2474
- }), Hn = { class: "MvcTable" }, Un = {
2475
- key: 0,
2476
- class: "flexMode vc"
2477
- }, Gn = { class: "tableArea relative radius ctx-auto" }, Jn = {
2478
- key: 1,
2479
- class: "flexMode vc h56 p16 xscroll nobar fadeout"
2480
- }, qn = /* @__PURE__ */ Object.assign({
2481
- name: "MvcTable",
2482
- inheritAttrs: !1
2483
- }, {
2484
- __name: "index",
2485
- props: {
2486
- defaultLoading: {
2487
- type: Boolean,
2488
- default: !0
2489
- },
2490
- tableName: {
2491
- type: String,
2492
- default: ""
2493
- },
2494
- autoHeader: {
2495
- type: Boolean,
2496
- default: !0
2497
- },
2498
- headerClass: {
2499
- type: String,
2500
- default: ""
2501
- },
2502
- height: {
2503
- type: [String, Number],
2504
- default: 0
2505
- },
2506
- minusHeight: {
2507
- type: [String, Number],
2508
- default: 0
2509
- },
2510
- defer: {
2511
- type: Boolean,
2512
- default: !1
2513
- },
2514
- rowKey: {
2515
- type: String,
2516
- default: ""
2517
- },
2518
- defaultExpandAll: {
2519
- type: Boolean,
2520
- default: !1
2521
- },
2522
- tool: {
2523
- type: [Object, Boolean],
2524
- default: () => ({
2525
- download: !0,
2526
- refresh: !0,
2527
- column: !0
2528
- })
2529
- },
2530
- noheader: {
2531
- type: Boolean,
2532
- default: !1
2533
- },
2534
- nofooter: {
2535
- type: Boolean,
2536
- default: !1
2537
- },
2538
- loadData: {
2539
- type: Function,
2540
- default: () => ({
2541
- list: [],
2542
- total: 0
2543
- })
2544
- },
2545
- pageSize: {
2546
- type: Number,
2547
- default: 0
2548
- },
2549
- pageSizes: {
2550
- type: Array,
2551
- default: () => [10, 20, 50, 100]
2552
- },
2553
- /**
2554
- * 远程汇总行按列格式化:与 util `$fu` 的 metric 形态一致。
2555
- * 未传时使用全局 `$config.table.summaryMetric`(应用入口一次配置即可)。
2556
- * 对象:`{ spend: { unit: 'currency', precision: 2 }, rate: { unit: '%', precision: 2 } }`
2557
- * 函数:`(prop) => ({ unit, precision, currency })`。
2558
- */
2559
- summaryMetric: {
2560
- type: [Object, Function],
2561
- default: null
2562
- }
2563
- },
2564
- emits: ["selection-change", "refresh"],
2565
- setup(p, { expose: m, emit: o }) {
2566
- const e = p, t = H({
2567
- loading: !0,
2568
- selection: []
2569
- }), s = H({
2570
- list: [],
2571
- total: 0,
2572
- page: 1,
2573
- pageSize: 50,
2574
- summary: !1,
2575
- summaryType: "remote",
2576
- nopagination: !1,
2577
- params: {}
2578
- }), u = H({
2579
- tabelKey: 0,
2580
- current: "",
2581
- list: [
2582
- {
2583
- title: "Table Column Customization",
2584
- size: 1024,
2585
- cpt: me(jn)
2586
- },
2587
- {
2588
- title: "Download from Current Table",
2589
- cpt: me(Rn)
2590
- }
2591
- ]
2592
- }), C = G(null), { proxy: $ } = ae();
2593
- We(() => {
2594
- g();
2595
- }), ee(() => {
2596
- w();
2597
- });
2598
- const y = o, g = () => {
2599
- t.loading = e.defaultLoading, e.pageSize && (s.pageSize = e.pageSize);
2600
- }, w = () => {
2601
- S(), e.defer === !1 && T();
2602
- }, _ = (j) => {
2603
- T(j);
2604
- }, T = async (j = {}) => {
2605
- if (j.refresh && t.loading)
2606
- return;
2607
- t.loading = !0;
2608
- const D = {
2609
- pageSize: j.pageSize || s.pageSize,
2610
- pageStart: j.pageStart || s.page
2611
- };
2612
- j.refresh && (D.remote = !0);
2613
- const { list: Q = [], total: U, summary: q } = await e.loadData(D) || {};
2614
- s.list = Q.map((te, le) => (te.index = le, te)), U === void 0 ? (s.total = s.list.length, s.nopagination = !0) : (s.total = U, s.nopagination = !1), window.config.table.scrollToTop && d(), A(q), t.loading = !1;
2615
- }, A = (j) => {
2616
- j ? s.summary = j : s.summary = !1;
2617
- }, k = (j) => {
2618
- if (s.summaryType === "locale")
2619
- return [];
2620
- if (s.summaryType === "remote") {
2621
- const D = (U, q) => {
2622
- if (U != null)
2623
- return typeof U == "function" ? U(q) : U[q];
2624
- }, Q = (U) => {
2625
- var te, le;
2626
- const q = D(e.summaryMetric, U);
2627
- return q !== void 0 ? q : D((le = (te = globalThis.$config) == null ? void 0 : te.table) == null ? void 0 : le.summaryMetric, U);
2628
- };
2629
- return Xe(j, s.summary, { resolveMetric: Q });
2630
- }
2631
- return [];
2632
- }, d = () => {
2633
- C.value.$refs.scrollBarRef.setScrollTop(0);
2634
- }, a = () => {
2635
- T({
2636
- pageStart: 1
2637
- });
2638
- }, l = () => {
2639
- T();
2640
- }, c = (j) => {
2641
- if (t.selection = j, y("selection-change", j), t.shiftKey) {
2642
- const D = j[j.length - 2], Q = j[j.length - 1], U = s.list.filter1((X) => X.id === D.id).index || 0, q = s.list.filter1((X) => X.id === Q.id).index;
2643
- let te = U, le = q;
2644
- U > q && (te = q, le = U);
2645
- for (let X = te; X <= le; X++)
2646
- $.$refs.body.toggleRowSelection(s.list[X], !0);
2647
- }
2648
- }, h = () => {
2649
- t.loading || (T({ refresh: !0 }), y("refresh"));
2650
- }, x = () => {
2651
- u.current = 0;
2652
- }, i = () => {
2653
- u.current = 1;
2654
- }, f = () => {
2655
- t.tableKey++;
2656
- }, S = () => {
2657
- document.addEventListener("keydown", v), document.addEventListener("keyup", N);
2658
- }, v = (j) => {
2659
- j.keyCode === 16 && (t.shiftKey = !0);
2660
- }, N = (j) => {
2661
- j.keyCode === 16 && (t.shiftKey = !1);
2662
- }, I = () => {
2663
- document.removeEventListener("keydown", v), document.removeEventListener("keyup", N);
2664
- }, P = ({ i: j, row: D }) => {
2665
- s.list[j] = D;
2666
- }, Z = O(() => {
2667
- let j = e.height || window.config.options.pageHeight;
2668
- return e.noheader === !1 && (j -= 64), e.nofooter === !1 && (j -= 56), j -= e.minusHeight, j;
2669
- }), ue = O(() => !!s.summary), Ee = O(() => s.nopagination === !0 ? "total" : "total,->,prev,pager,next,sizes"), re = O(() => {
2670
- if (e.tool) {
2671
- const { column: j = !0, download: D = !0, refresh: Q = !0 } = e.tool;
2672
- return {
2673
- column: j,
2674
- download: D,
2675
- refresh: Q
2676
- };
2677
- } else
2678
- return !1;
2679
- });
2680
- return ce(() => {
2681
- I();
2682
- }), m({
2683
- initTable: _,
2684
- editRow: P
2685
- }), (j, D) => {
2686
- const Q = E("el-button"), U = E("Loading"), q = E("el-table"), te = E("el-pagination"), le = E("Drawer");
2687
- return b(), M("div", Hn, [
2688
- e.noheader === !1 ? (b(), M("div", {
2689
- key: 0,
2690
- class: F(["flexMode hb g12 p16 bg-white", e.autoHeader ? "minh64" : "h64"])
2691
- }, [
2692
- r("div", {
2693
- class: F(["flexMode vc flexGrow maxwp100", e.headerClass])
2694
- }, [
2695
- R(j.$slots, "header", {}, void 0, !0)
2696
- ], 2),
2697
- n(re) ? (b(), M("div", Un, [
2698
- n(re).refresh ? (b(), B(Q, {
2699
- key: 0,
2700
- onClick: h
2701
- }, {
2702
- icon: V(() => [...D[2] || (D[2] = [
2703
- r("i", { class: "imicon im-sync" }, null, -1)
2704
- ])]),
2705
- default: V(() => [
2706
- W(" " + L(j.$l("Refresh")), 1)
2707
- ]),
2708
- _: 1
2709
- })) : K("", !0),
2710
- n(re).column ? (b(), B(Q, {
2711
- key: 1,
2712
- onClick: x
2713
- }, {
2714
- icon: V(() => [...D[3] || (D[3] = [
2715
- r("i", { class: "imicon im-column" }, null, -1)
2716
- ])]),
2717
- default: V(() => [
2718
- W(" " + L(j.$l("Columns")), 1)
2719
- ]),
2720
- _: 1
2721
- })) : K("", !0),
2722
- n(re).download ? (b(), B(Q, {
2723
- key: 2,
2724
- onClick: i
2725
- }, {
2726
- icon: V(() => [...D[4] || (D[4] = [
2727
- r("i", { class: "imicon im-download1" }, null, -1)
2728
- ])]),
2729
- default: V(() => [
2730
- W(" " + L(j.$l("Download")), 1)
2731
- ]),
2732
- _: 1
2733
- })) : K("", !0)
2734
- ])) : K("", !0)
2735
- ], 2)) : K("", !0),
2736
- r("div", Gn, [
2737
- z(U, {
2738
- loading: n(t).loading
2739
- }, null, 8, ["loading"]),
2740
- (b(), B(q, {
2741
- ref_key: "body",
2742
- ref: C,
2743
- key: n(t).tableKey,
2744
- height: n(Z),
2745
- data: n(s).list,
2746
- "default-expand-all": e.defaultExpandAll,
2747
- "row-key": e.rowKey,
2748
- stripe: "",
2749
- border: "",
2750
- "show-summary": n(ue),
2751
- "summary-method": k,
2752
- class: "MainTable",
2753
- onSelectionChange: c
2754
- }, {
2755
- default: V(() => [
2756
- z(n(tn), oe({
2757
- "table-name": e.tableName,
2758
- column: n(re) ? n(re).column : !1
2759
- }, j.$attrs), {
2760
- default: V(() => [
2761
- R(j.$slots, "default", {}, void 0, !0)
2762
- ]),
2763
- _: 3
2764
- }, 16, ["table-name", "column"])
2765
- ]),
2766
- _: 3
2767
- }, 8, ["height", "data", "default-expand-all", "row-key", "show-summary"]))
2768
- ]),
2769
- e.nofooter === !1 ? (b(), M("div", Jn, [
2770
- z(te, {
2771
- "current-page": n(s).page,
2772
- "onUpdate:currentPage": D[0] || (D[0] = (X) => n(s).page = X),
2773
- background: "",
2774
- total: n(s).total,
2775
- "default-page-size": n(s).pageSize,
2776
- "page-sizes": e.pageSizes,
2777
- "pager-count": 5,
2778
- layout: n(Ee),
2779
- class: "wp100",
2780
- onSizeChange: a,
2781
- onCurrentChange: l
2782
- }, null, 8, ["current-page", "total", "default-page-size", "page-sizes", "layout"])
2783
- ])) : K("", !0),
2784
- z(le, {
2785
- current: n(u).current,
2786
- "onUpdate:current": D[1] || (D[1] = (X) => n(u).current = X),
2787
- "table-name": e.tableName,
2788
- drawer: n(u).list,
2789
- list: n(s).list,
2790
- selection: n(t).selection,
2791
- onInitColumn: f
2792
- }, null, 8, ["current", "table-name", "drawer", "list", "selection"])
2793
- ]);
2794
- };
2795
- }
2796
- }), Wn = /* @__PURE__ */ J(qn, [["__scopeId", "data-v-e72098dd"]]), Yn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2797
- __proto__: null,
2798
- default: Wn
2799
- }, Symbol.toStringTag, { value: "Module" })), Zn = { class: "panelWrap" }, Qn = /* @__PURE__ */ Object.assign({
2800
- name: "MvcTabs",
2801
- inheritAttrs: !1
2802
- }, {
2803
- __name: "index",
2804
- props: {
2805
- modelValue: {
2806
- type: [String, Number, Boolean],
2807
- default: void 0
2808
- },
2809
- /** 与 BtnGroup 一致;每项需含 `component`(或 `componentKey` 指定字段)指向要渲染的组件 */
2810
- options: {
2811
- type: Array,
2812
- default: () => []
2813
- },
2814
- valueKey: {
2815
- type: String,
2816
- default: "value"
2817
- },
2818
- labelKey: {
2819
- type: String,
2820
- default: "label"
2821
- },
2822
- iconKey: {
2823
- type: String,
2824
- default: "icon"
2825
- },
2826
- iconClass: {
2827
- type: String,
2828
- default: "imicon"
2829
- },
2830
- componentKey: {
2831
- type: String,
2832
- default: "component"
2833
- },
2834
- /** 选项对象上用于 `v-bind` 到当前面板的字段名,如 `{ paneProps: { id: 1 } }` */
2835
- panePropsKey: {
2836
- type: String,
2837
- default: "paneProps"
2838
- },
2839
- disabled: {
2840
- type: Boolean,
2841
- default: !1
2842
- }
2843
- },
2844
- emits: ["update:modelValue", "change"],
2845
- setup(p, { emit: m }) {
2846
- const o = p, e = m, t = ve(), s = (g) => g == null ? g : ["Object", "Array"].includes(globalThis.$getType(g)) ? g[o.valueKey] : g, u = (g) => {
2847
- e("update:modelValue", g);
2848
- const w = o.options.find((_) => s(_) === g);
2849
- e("change", g, w);
2850
- }, C = O(
2851
- () => o.options.find((g) => s(g) === o.modelValue)
2852
- ), $ = O(() => {
2853
- const g = C.value;
2854
- if (!(!g || !["Object", "Array"].includes(globalThis.$getType(g))))
2855
- return g[o.componentKey];
2856
- }), y = O(() => {
2857
- const g = C.value;
2858
- return !g || !["Object", "Array"].includes(globalThis.$getType(g)) ? {} : g[o.panePropsKey] ?? {};
2859
- });
2860
- return (g, w) => {
2861
- const _ = E("BtnGroup");
2862
- return b(), M("div", oe({ class: "MvcTabs flexMode flexV g12" }, n(t)), [
2863
- z(_, {
2864
- "model-value": o.modelValue,
2865
- options: o.options,
2866
- "value-key": o.valueKey,
2867
- "label-key": o.labelKey,
2868
- "icon-key": o.iconKey,
2869
- "icon-class": o.iconClass,
2870
- disabled: o.disabled,
2871
- "onUpdate:modelValue": u
2872
- }, null, 8, ["model-value", "options", "value-key", "label-key", "icon-key", "icon-class", "disabled"]),
2873
- r("div", Zn, [
2874
- n($) ? (b(), B(Oe(n($)), de(oe({ key: 0 }, n(y))), null, 16)) : K("", !0)
2875
- ])
2876
- ], 16);
2877
- };
2878
- }
2879
- }), Xn = /* @__PURE__ */ J(Qn, [["__scopeId", "data-v-292f6bba"]]), el = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2880
- __proto__: null,
2881
- default: Xn
2882
- }, Symbol.toStringTag, { value: "Module" })), tl = /* @__PURE__ */ Object.assign({
2883
- name: "MvcTextarea",
2884
- inheritAttrs: !1
2885
- }, {
2886
- __name: "index",
2887
- props: {
2888
- modelValue: {
2889
- type: [String, Number, Array],
2890
- default: ""
2891
- },
2892
- rows: {
2893
- type: Number,
2894
- default: 3
2895
- },
2896
- height: {
2897
- type: [String, Number],
2898
- default: ""
2899
- },
2900
- output: {
2901
- type: String,
2902
- default: "string",
2903
- validator: (p) => ["string", "array"].includes(p)
2904
- },
2905
- resize: {
2906
- type: String,
2907
- default: "vertical",
2908
- validator: (p) => ["none", "vertical"].includes(p)
2909
- }
2910
- },
2911
- emits: [
2912
- "update:modelValue",
2913
- "input",
2914
- "change",
2915
- "blur",
2916
- "focus"
2917
- ],
2918
- setup(p, { emit: m }) {
2919
- const o = p, e = G(null);
2920
- let t = null;
2921
- const s = H({
2922
- val: "",
2923
- isComposing: !1
2924
- }), u = m, { proxy: C } = ae();
2925
- ee(() => {
2926
- var l, c;
2927
- const a = (l = e.value) == null ? void 0 : l.$el;
2928
- t = (c = a == null ? void 0 : a.querySelector) == null ? void 0 : c.call(a, "textarea"), t && (t.addEventListener("compositionstart", $), t.addEventListener("compositionend", y));
2929
- });
2930
- const $ = () => {
2931
- s.isComposing = !0;
2932
- }, y = () => {
2933
- s.isComposing = !1, ge(() => T(s.val));
2934
- }, g = (a) => {
2935
- s.isComposing || T(a);
2936
- }, w = (a) => {
2937
- const l = String(a ?? "").split(/\r?\n/);
2938
- return o.output === "array" ? l : l.join(",");
2939
- }, _ = (a) => Array.isArray(a) ? a.join(`
2940
- `) : String(a ?? "").replace(/,/g, `
2941
- `), T = (a) => {
2942
- const l = w(a);
2943
- u("update:modelValue", l), u("input", l);
2944
- }, A = O(() => {
2945
- if (!o.height) return C.$attrs["input-style"];
2946
- const a = typeof o.height == "number" ? `${o.height}px` : o.height;
2947
- return { ...C.$attrs["input-style"] && typeof C.$attrs["input-style"] == "object" ? { ...C.$attrs["input-style"] } : {}, height: a, minHeight: a };
2948
- }), k = O(() => !!(C.$attrs.maxlength || d.value)), d = O(() => C.$attrs.max);
2949
- return ne(
2950
- () => o.modelValue,
2951
- (a) => {
2952
- const l = _(a);
2953
- s.val !== l && (s.val = l);
2954
- },
2955
- { immediate: !0 }
2956
- ), ce(() => {
2957
- t && (t.removeEventListener("compositionstart", $), t.removeEventListener("compositionend", y), t = null);
2958
- }), (a, l) => {
2959
- const c = E("el-input");
2960
- return b(), B(c, oe({
2961
- ref_key: "inputRef",
2962
- ref: e,
2963
- type: "textarea",
2964
- modelValue: n(s).val,
2965
- "onUpdate:modelValue": l[0] || (l[0] = (h) => n(s).val = h),
2966
- rows: o.rows,
2967
- style: a.$attrs.style,
2968
- "input-style": n(A),
2969
- "show-word-limit": n(k),
2970
- maxlength: n(d),
2971
- class: "MvcTextarea"
2972
- }, a.$attrs, { onInput: g }), null, 16, ["modelValue", "rows", "style", "input-style", "show-word-limit", "maxlength"]);
2973
- };
2974
- }
2975
- }), ol = /* @__PURE__ */ J(tl, [["__scopeId", "data-v-4dba94bf"]]), nl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2976
- __proto__: null,
2977
- default: ol
2978
- }, Symbol.toStringTag, { value: "Module" })), ke = /* @__PURE__ */ Object.assign({ "../component/BtnGroup/index.vue": mt, "../component/Drawer/index.vue": vt, "../component/DrawerArea/index.vue": Ct, "../component/Form/index.vue": Vt, "../component/Frame/index.vue": ro, "../component/Icon/index.vue": po, "../component/Input/index.vue": fo, "../component/Loading/index.vue": yo, "../component/Login/index.vue": Lo, "../component/Page/index.vue": Po, "../component/Select/index.vue": qo, "../component/SelectV2/index.vue": en, "../component/Table/index.vue": Yn, "../component/Tabs/index.vue": el, "../component/Textarea/index.vue": nl }), ll = (p) => {
2979
- for (let m in ke) {
2980
- let o = m.match(/\.\.\/component\/(.*)\/index.vue/)[1];
2981
- p.component(o, ke[m].default);
2982
- }
2983
- }, sl = {
2984
- name: "Matt Avias Frame",
2985
- copyright: "©2026",
2986
- version: "1.0.16",
2987
- author: "Matt Avias",
2988
- date: "2026-02-26",
2989
- /** 默认语言 key,与 `$getLang`、localStorage `lang` 一致;业务在 app.use(mvframe, { config }) 里覆盖 */
2990
- lang: "en_us",
2991
- /** Table 等表格默认;业务在 app.use(mvframe, { config }) 里覆盖 */
2992
- table: {
2993
- /** 同 Table 的 summary-metric:{ [prop]: { unit, precision, currency } } 或 (prop) => metric */
2994
- summaryMetric: null
2995
- }
2996
- }, al = (p, m = {}) => {
2997
- globalThis.$config = {
2998
- ...sl,
2999
- ...m
3000
- };
3001
- }, bl = (p, m) => {
3002
- p.use(al, m.config).use(ze).use(ll).use(Ne).use(Ke).use(Fe, m.pinia).use(ct, m.vueRouter).use(et, m.lang);
3003
- };
1
+ import "./util.js";
2
+ import "./directive.js";
3
+ import "./store-shared.js";
4
+ import { h as m, i as o, g as n, a as r, m as g, b as l, c as u, n as L, p as M, u as c } from "./vendor.js";
5
+ import "./composition.js";
3004
6
  export {
3005
- gl as builtinLocales,
3006
- bl as default,
3007
- hl as getBuiltinLangMaps,
3008
- rt as normalizeBuiltinLocale
7
+ m as builtinLocales,
8
+ o as default,
9
+ n as getBuiltinLangMaps,
10
+ r as getMaps,
11
+ g as mapLang,
12
+ l as mapLangPath,
13
+ u as mergeMaps,
14
+ L as normalizeBuiltinLocale,
15
+ M as patchMaps,
16
+ c as useMap
3009
17
  };