@skyfox2000/webui 1.5.7 → 1.5.9

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.
@@ -0,0 +1,114 @@
1
+ import { defineComponent as B, provide as N, ref as A, watch as p, onMounted as _, createBlock as n, openBlock as r, unref as a, withCtx as s, createElementVNode as V, renderSlot as C, createVNode as $, createCommentVNode as d, createTextVNode as m, toDisplayString as u } from "vue";
2
+ import { _ as v } from "./index-BwMaOrJT.js";
3
+ import { Modal as D, Space as E } from "ant-design-vue";
4
+ import "@skyfox2000/fapi";
5
+ import { P as M, e as P, $ as f, b as K, d as U } from "./upload-template-BKm9mFq8.js";
6
+ import "@skyfox2000/microbase";
7
+ import "vue-m-message";
8
+ import "async-validator";
9
+ import "dayjs";
10
+ import "vue-draggable-next";
11
+ const j = { class: "overflow-y-auto w-full h-full" }, W = /* @__PURE__ */ B({
12
+ __name: "index",
13
+ props: {
14
+ saveText: {},
15
+ saveAsText: {},
16
+ cancelText: {},
17
+ editorCtrl: {},
18
+ dialogSave: { type: Function },
19
+ dialogSaveAs: { type: Function },
20
+ width: {},
21
+ full: { type: Boolean },
22
+ open: { type: Boolean }
23
+ },
24
+ emits: ["update:open"],
25
+ setup(T, { emit: b }) {
26
+ const l = T, e = l.editorCtrl;
27
+ N(M.EditorControl, e);
28
+ const t = A(l.open ?? !1), h = b, k = A(l.width ?? 430);
29
+ p(
30
+ () => e == null ? void 0 : e.visible.value,
31
+ (o) => {
32
+ t.value = o ?? !1;
33
+ }
34
+ ), p(
35
+ () => l.open,
36
+ (o) => {
37
+ t.value = o;
38
+ }
39
+ ), p(
40
+ () => t.value,
41
+ (o) => {
42
+ h("update:open", o), o || c();
43
+ }
44
+ ), _(() => {
45
+ t.value = (e == null ? void 0 : e.visible.value) ?? !1;
46
+ });
47
+ const x = () => {
48
+ l.dialogSave ? l.dialogSave() : e && K(e);
49
+ }, F = () => {
50
+ l.dialogSaveAs ? l.dialogSaveAs() : e && U(e);
51
+ }, c = () => {
52
+ e ? P(e) : t.value = !1;
53
+ };
54
+ return (o, g) => (r(), n(a(D), {
55
+ open: t.value,
56
+ "onUpdate:open": g[0] || (g[0] = (i) => t.value = i),
57
+ wrapClassName: "modal mx-auto min-w-[430px] " + (o.full ? "full-modal w-full" : ""),
58
+ width: k.value
59
+ }, {
60
+ footer: s(() => [
61
+ C(o.$slots, "footer", {}, () => [
62
+ $(a(E), null, {
63
+ default: s(() => {
64
+ var i, w, S, y;
65
+ return [
66
+ o.cancelText !== "" ? (r(), n(a(v), {
67
+ key: 0,
68
+ onClick: c
69
+ }, {
70
+ default: s(() => [
71
+ m(u(o.cancelText ?? a(f)("webui.common.cancel")), 1)
72
+ ]),
73
+ _: 1
74
+ })) : d("", !0),
75
+ o.saveAsText !== "" && ((i = a(e)) == null ? void 0 : i.saveAsBtnVisible) !== !1 ? (r(), n(a(v), {
76
+ key: 1,
77
+ onClick: F,
78
+ type: "primary",
79
+ loading: (w = a(e)) == null ? void 0 : w.isFormSaving.value
80
+ }, {
81
+ default: s(() => [
82
+ m(u(o.saveAsText ?? a(f)("webui.common.saveAs")), 1)
83
+ ]),
84
+ _: 1
85
+ }, 8, ["loading"])) : d("", !0),
86
+ o.saveText !== "" && ((S = a(e)) == null ? void 0 : S.saveBtnVisible) !== !1 ? (r(), n(a(v), {
87
+ key: 2,
88
+ onClick: x,
89
+ type: "primary",
90
+ loading: (y = a(e)) == null ? void 0 : y.isFormSaving.value
91
+ }, {
92
+ default: s(() => [
93
+ m(u(o.saveText ?? a(f)("webui.common.save")), 1)
94
+ ]),
95
+ _: 1
96
+ }, 8, ["loading"])) : d("", !0)
97
+ ];
98
+ }),
99
+ _: 1
100
+ })
101
+ ])
102
+ ]),
103
+ default: s(() => [
104
+ V("div", j, [
105
+ C(o.$slots, "default")
106
+ ])
107
+ ]),
108
+ _: 3
109
+ }, 8, ["open", "wrapClassName", "width"]));
110
+ }
111
+ });
112
+ export {
113
+ W as _
114
+ };
@@ -3,7 +3,7 @@ import "ant-design-vue";
3
3
  import { _ as q } from "../../assets/modules/toolIcon-BYnHhAy-.js";
4
4
  import "@skyfox2000/fapi";
5
5
  import "../../assets/modules/upload-template-BKm9mFq8.js";
6
- import { _ as D } from "../../assets/modules/index-BDoBUrYA.js";
6
+ import { _ as D } from "../../assets/modules/index-DUBY49Au.js";
7
7
  import "@skyfox2000/microbase";
8
8
  import "vue-m-message";
9
9
  import "async-validator";
package/lib/webui.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { u as Me, i as pe, $ as F, L as Ct, a as Ge, o as St, c as $t, P as se, b as We, d as Tt, e as Dt, f as qe, g as He, r as de, h as Qe, j as Je, k as Ae, l as J, m as X, n as W, p as Pt, q as me, s as Xe, t as Ft, v as It, w as he, x as Ze, _ as et, y as tt, O as Be, z as Et, A as at, B as Lt, C as Ut, D as te, E as Mt, F as At, G as Bt, H as Nt, I as zt, J as Ot, K as oe, M as Rt, N as lt, Q as Kt, R as jt, S as rt, T as Yt } from "./assets/modules/upload-template-BKm9mFq8.js";
1
+ import { u as Me, i as pe, $ as F, L as Ct, a as Ge, o as St, c as Tt, P as se, b as We, d as $t, e as Dt, f as qe, g as He, r as de, h as Qe, j as Je, k as Ae, l as J, m as X, n as W, p as Pt, q as me, s as Xe, t as Ft, v as It, w as he, x as Ze, _ as et, y as tt, O as Be, z as Et, A as at, B as Lt, C as Ut, D as te, E as Mt, F as At, G as Bt, H as Nt, I as zt, J as Ot, K as oe, M as Rt, N as lt, Q as Kt, R as jt, S as rt, T as Yt } from "./assets/modules/upload-template-BKm9mFq8.js";
2
2
  import { ap as Er, a4 as Lr, a5 as Ur, a9 as Mr, W as Ar, ao as Br, am as Nr, an as zr, aq as Or, aA as Rr, ac as Kr, a7 as jr, aB as Yr, ak as Vr, ah as Gr, a2 as Wr, aj as qr, ay as Hr, az as Qr, a8 as Jr, X as Xr, ae as Zr, ai as es, al as ts, V as as, a3 as ls, a6 as rs, ar as ss, U as os, ag as ns, as as is, ab as us, ad as cs, aC as ds, aa as ps, ax as fs, aw as vs, at as ms, Y as gs, Z as hs, au as bs, a1 as ys, av as xs, a0 as _s, af as ws } from "./assets/modules/upload-template-BKm9mFq8.js";
3
3
  import { f as Vt, p as Re } from "./assets/modules/file-upload-DTOdV5vM.js";
4
4
  import { A as Cs, U as Ss } from "./assets/modules/file-upload-DTOdV5vM.js";
@@ -11,14 +11,14 @@ import Le from "dayjs";
11
11
  import { Popover as Jt, theme as nt, Drawer as Xt, Space as ce, Form as it, message as Zt, FormItem as ut, ConfigProvider as xe, Popconfirm as ct, DropdownButton as dt, Menu as Ce, MenuItem as Se, Dropdown as Ue, Checkbox as ea, List as ta, ListItem as aa, Card as la, Button as pt, Table as ft, Tree as ra, Cascader as sa, DatePicker as oa, Input as fe, InputPassword as na, InputNumber as ia, RangePicker as ua, Textarea as ca, TimePicker as da, Transfer as pa, TreeSelect as fa, Upload as va, Image as ma, LayoutContent as ga } from "ant-design-vue";
12
12
  import { VueDraggableNext as ha } from "vue-draggable-next";
13
13
  import { d as ba } from "./assets/modules/uploadList-CHvr6Hp1.js";
14
- import { C as Ts, U as Ds, a as Ps, p as Fs } from "./assets/modules/uploadList-CHvr6Hp1.js";
14
+ import { C as $s, U as Ds, a as Ps, p as Fs } from "./assets/modules/uploadList-CHvr6Hp1.js";
15
15
  import { c as vt } from "./assets/modules/index-M1qERbea.js";
16
16
  import { _ as Es, h as Ls, b as Us, a as Ms, d as As, e as Bs, g as Ns, f as zs, n as Os, p as Rs, t as Ks, v as js } from "./assets/modules/index-M1qERbea.js";
17
17
  import { _ as ee } from "./assets/modules/index-BwMaOrJT.js";
18
18
  import { _ as V } from "./assets/modules/toolIcon-BYnHhAy-.js";
19
19
  import { a as Vs } from "./assets/modules/toolIcon-BYnHhAy-.js";
20
20
  import { _ as Ws, b as qs, c as Hs, d as Qs, e as Js, I as Xs, f as Zs, g as eo, a as to } from "./assets/modules/menuTabs-DWaBSRNr.js";
21
- import { _ as lo } from "./assets/modules/index-BDoBUrYA.js";
21
+ import { _ as lo } from "./assets/modules/index-DUBY49Au.js";
22
22
  import { _ as ie } from "./assets/modules/_plugin-vue_export-helper-CHgC5LLL.js";
23
23
  const Ye = (d, l, e, t = "remove") => {
24
24
  if (!e)
@@ -289,7 +289,7 @@ const Zl = async (d, l) => {
289
289
  }
290
290
  },
291
291
  setup(d) {
292
- const l = d, t = $t({
292
+ const l = d, t = Tt({
293
293
  iconUrl: `${Wt.MICROLAYOUT_ICONS}`,
294
294
  monoColor: !0,
295
295
  icon: l.icon,
@@ -325,7 +325,7 @@ const Zl = async (d, l) => {
325
325
  const s = () => {
326
326
  o.drawerSave ? o.drawerSave() : n && We(n);
327
327
  }, f = () => {
328
- o.drawerSaveAs ? o.drawerSaveAs() : n && Tt(n);
328
+ o.drawerSaveAs ? o.drawerSaveAs() : n && $t(n);
329
329
  }, u = () => {
330
330
  Dt(n);
331
331
  };
@@ -452,7 +452,7 @@ const Zl = async (d, l) => {
452
452
  }), Sa = {
453
453
  key: 0,
454
454
  class: "flex-grow"
455
- }, $a = { class: "w-8 mt-[-2px]" }, nr = /* @__PURE__ */ E({
455
+ }, Ta = { class: "w-8 mt-[-2px]" }, nr = /* @__PURE__ */ E({
456
456
  inheritAttrs: !1,
457
457
  __name: "formItem",
458
458
  props: {
@@ -495,7 +495,7 @@ const Zl = async (d, l) => {
495
495
  u.nextLine ? k("", !0) : (i(), y("div", Sa, [
496
496
  R(u.$slots, "default")
497
497
  ])),
498
- I("div", $a, [
498
+ I("div", Ta, [
499
499
  R(u.$slots, "helper", {}, () => [
500
500
  u.helper ? (i(), _(a(ka), {
501
501
  key: 0,
@@ -520,7 +520,7 @@ const Zl = async (d, l) => {
520
520
  }, M(a(n).msg), 5)) : k("", !0)
521
521
  ], 2));
522
522
  }
523
- }), Ta = /* @__PURE__ */ E({
523
+ }), $a = /* @__PURE__ */ E({
524
524
  __name: "listOperate",
525
525
  props: {
526
526
  record: {},
@@ -982,7 +982,7 @@ const Zl = async (d, l) => {
982
982
  loading: a(t).isGridLoading.value,
983
983
  pagination: u.value
984
984
  }, a(e)), {
985
- renderItem: x(({ item: $ }) => [
985
+ renderItem: x(({ item: T }) => [
986
986
  D(a(aa), { class: "!m-0 !p-0" }, {
987
987
  default: x(() => [
988
988
  D(a(la), {
@@ -992,32 +992,32 @@ const Zl = async (d, l) => {
992
992
  }, {
993
993
  title: x(() => [
994
994
  I("div", La, [
995
- I("span", null, M($[l.titleField]), 1),
995
+ I("span", null, M(T[l.titleField]), 1),
996
996
  I("div", Ua, [
997
997
  Q(D(et, {
998
- checked: $[a(t).statusKey],
999
- "onUpdate:checked": (b) => $[a(t).statusKey] = b,
1000
- disabled: v.statusDisabled ? v.statusDisabled($) : !1,
998
+ checked: T[a(t).statusKey],
999
+ "onUpdate:checked": (b) => T[a(t).statusKey] = b,
1000
+ disabled: v.statusDisabled ? v.statusDisabled(T) : !1,
1001
1001
  data: a(Be).EnableDisable,
1002
- onClick: (b) => a(tt)(a(t), $),
1002
+ onClick: (b) => a(tt)(a(t), T),
1003
1003
  size: "small",
1004
1004
  class: B([
1005
1005
  "relative mt-[3px] transform scale-[1.1]",
1006
- v.statusDisabled && v.statusDisabled($) ? "cursor-not-allowed disabled" : ""
1006
+ v.statusDisabled && v.statusDisabled(T) ? "cursor-not-allowed disabled" : ""
1007
1007
  ]),
1008
- loading: $.isLoading
1008
+ loading: T.isLoading
1009
1009
  }, null, 8, ["checked", "onUpdate:checked", "disabled", "data", "onClick", "class", "loading"]), [
1010
1010
  [m, { url: o.value, role: ["Super", "Admin"], permit: ":enabled" }, "disable"]
1011
1011
  ]),
1012
- D(Ta, {
1013
- record: $,
1012
+ D($a, {
1013
+ record: T,
1014
1014
  "grid-ctrl": a(t)
1015
1015
  }, null, 8, ["record", "grid-ctrl"])
1016
1016
  ])
1017
1017
  ])
1018
1018
  ]),
1019
1019
  default: x(() => [
1020
- R(v.$slots, "cardContent", { record: $ })
1020
+ R(v.$slots, "cardContent", { record: T })
1021
1021
  ]),
1022
1022
  _: 2
1023
1023
  }, 1024)
@@ -1090,8 +1090,8 @@ const Zl = async (d, l) => {
1090
1090
  setup(d, { emit: l }) {
1091
1091
  const e = d, t = l, o = C(0), n = C(0), s = C(0), f = (p) => {
1092
1092
  let w = 0;
1093
- for (let $ = 0; $ < p.length; $++)
1094
- typeof p[$].type == "object" && w++;
1093
+ for (let T = 0; T < p.length; T++)
1094
+ typeof p[T].type == "object" && w++;
1095
1095
  return w;
1096
1096
  }, u = qt(), c = () => {
1097
1097
  n.value = 0, s.value = 0, u.default && (n.value = f(u.default({}))), e.gridCtrl && e.gridCtrl.searchBar && u.control && (s.value = f(u.control({}))), o.value = 2 - (n.value + s.value) % 3;
@@ -1122,8 +1122,8 @@ const Zl = async (d, l) => {
1122
1122
  var w;
1123
1123
  let p = { ...e.search };
1124
1124
  if (e.likeFields)
1125
- for (const $ of e.likeFields)
1126
- p[$] && (p[$] = { $like: "%" + p[$] + "%" });
1125
+ for (const T of e.likeFields)
1126
+ p[T] && (p[T] = { $like: "%" + p[T] + "%" });
1127
1127
  e.gridCtrl && (e.gridCtrl.gridQuery = {
1128
1128
  ...e.gridCtrl.gridQuery,
1129
1129
  Query: {
@@ -1138,7 +1138,7 @@ const Zl = async (d, l) => {
1138
1138
  t("update:search", p), t("onreset");
1139
1139
  };
1140
1140
  return (p, w) => {
1141
- const $ = ne("submit");
1141
+ const T = ne("submit");
1142
1142
  return n.value + s.value > 0 ? Q((i(), _(a(it), {
1143
1143
  key: 0,
1144
1144
  "label-col": { flex: "60px" },
@@ -1175,7 +1175,7 @@ const Zl = async (d, l) => {
1175
1175
  icon: "icon-search"
1176
1176
  }, {
1177
1177
  default: x(() => [
1178
- G(M(p.$t("webui.common.search")), 1)
1178
+ G(M(a(F)("webui.common.search")), 1)
1179
1179
  ]),
1180
1180
  _: 1
1181
1181
  }),
@@ -1184,7 +1184,7 @@ const Zl = async (d, l) => {
1184
1184
  icon: "icon-reset"
1185
1185
  }, {
1186
1186
  default: x(() => [
1187
- G(M(p.$t("webui.common.reset")), 1)
1187
+ G(M(a(F)("webui.common.reset")), 1)
1188
1188
  ]),
1189
1189
  _: 1
1190
1190
  })
@@ -1198,7 +1198,7 @@ const Zl = async (d, l) => {
1198
1198
  }),
1199
1199
  _: 3
1200
1200
  })), [
1201
- [$, r]
1201
+ [T, r]
1202
1202
  ]) : k("", !0);
1203
1203
  };
1204
1204
  }
@@ -1405,13 +1405,13 @@ const Zl = async (d, l) => {
1405
1405
  return ke(() => {
1406
1406
  m.value && t && t.autoload && (t.reload.value = !0);
1407
1407
  }), we(se.GridControl, t), ae(async () => {
1408
- var p, w, $, b, S;
1409
- t.page && ((p = t.gridUrl) != null && p.url) && (((w = t.gridUrl) == null ? void 0 : w.url) === (($ = t.page.urls.list) == null ? void 0 : $.url) && (t.remotePage = !1), ((b = t.gridUrl) == null ? void 0 : b.url) === ((S = t.page.urls.find) == null ? void 0 : S.url) && (t.remotePage = !0)), t.tableData.value ? (f.value = t.tableData.value, t.total.value = f.value.length, u.value !== !1 && (u.value.total = t.total.value ?? 0)) : t.autoload !== !1 && (t.remotePage ? f.value = (await he(t)).rows : f.value = await Ze(t)), setTimeout(() => {
1408
+ var p, w, T, b, S;
1409
+ t.page && ((p = t.gridUrl) != null && p.url) && (((w = t.gridUrl) == null ? void 0 : w.url) === ((T = t.page.urls.list) == null ? void 0 : T.url) && (t.remotePage = !1), ((b = t.gridUrl) == null ? void 0 : b.url) === ((S = t.page.urls.find) == null ? void 0 : S.url) && (t.remotePage = !0)), t.tableData.value ? (f.value = t.tableData.value, t.total.value = f.value.length, u.value !== !1 && (u.value.total = t.total.value ?? 0)) : t.autoload !== !1 && (t.remotePage ? f.value = (await he(t)).rows : f.value = await Ze(t)), setTimeout(() => {
1410
1410
  m.value = !0;
1411
1411
  }, 50);
1412
1412
  }), (p, w) => {
1413
1413
  var b, S;
1414
- const $ = ne("auth");
1414
+ const T = ne("auth");
1415
1415
  return i(), y(L, null, [
1416
1416
  (b = a(t).buttons) != null && b.value.length || (S = a(t).tools) != null && S.length ? (i(), _(_t, {
1417
1417
  key: 0,
@@ -1451,7 +1451,7 @@ const Zl = async (d, l) => {
1451
1451
  ]),
1452
1452
  loading: g == null ? void 0 : g.record.isLoading
1453
1453
  }, null, 8, ["checked", "onUpdate:checked", "disabled", "data", "onClick", "class", "loading"])), [
1454
- [$, { url: o.value, role: ["Super", "Admin"], permit: ":enabled" }, "disable"]
1454
+ [T, { url: o.value, role: ["Super", "Admin"], permit: ":enabled" }, "disable"]
1455
1455
  ]) : k("", !0),
1456
1456
  a(t) && ((N = g == null ? void 0 : g.column) == null ? void 0 : N.dataIndex) === "operation" ? R(p.$slots, "operate", {
1457
1457
  key: 1,
@@ -1779,7 +1779,7 @@ const Zl = async (d, l) => {
1779
1779
  }, w = (b, S) => {
1780
1780
  var g, h;
1781
1781
  (h = (g = l.dragConfig) == null ? void 0 : g.onDragStart) == null || h.call(g, b, S);
1782
- }, $ = (b) => {
1782
+ }, T = (b) => {
1783
1783
  var S, g;
1784
1784
  (g = (S = l.dragConfig) == null ? void 0 : S.onDragEnd) == null || g.call(S, b);
1785
1785
  };
@@ -1811,7 +1811,7 @@ const Zl = async (d, l) => {
1811
1811
  draggable: (K = b.dragConfig) == null ? void 0 : K.draggable,
1812
1812
  onClick: (z) => h.click ? h.click(h, z) : m(h, z),
1813
1813
  onDragstart: (z) => w(z, h),
1814
- onDragend: S[5] || (S[5] = (z) => $(z))
1814
+ onDragend: S[5] || (S[5] = (z) => T(z))
1815
1815
  }, { ref_for: !0 }, b.dragConfig), [
1816
1816
  h.icon ? (i(), _(a(V), A({
1817
1817
  key: 0,
@@ -1879,7 +1879,7 @@ const Zl = async (d, l) => {
1879
1879
  draggable: (K = b.dragConfig) == null ? void 0 : K.draggable,
1880
1880
  onClick: (O) => h.click ? h.click(h, O) : m(h, O),
1881
1881
  onDragstart: (O) => w(O, h),
1882
- onDragend: S[3] || (S[3] = (O) => $(O))
1882
+ onDragend: S[3] || (S[3] = (O) => T(O))
1883
1883
  }, { ref_for: !0 }, b.dragConfig), [
1884
1884
  h.icon ? (i(), _(a(V), A({
1885
1885
  key: 0,
@@ -1908,7 +1908,7 @@ const Zl = async (d, l) => {
1908
1908
  draggable: (K = b.dragConfig) == null ? void 0 : K.draggable,
1909
1909
  onClick: (O) => h.click ? h.click(h, O) : m(h, O),
1910
1910
  onDragstart: (O) => w(O, h),
1911
- onDragend: S[4] || (S[4] = (O) => $(O))
1911
+ onDragend: S[4] || (S[4] = (O) => T(O))
1912
1912
  }, { ref_for: !0 }, b.dragConfig), [
1913
1913
  h.icon ? (i(), _(a(V), A({
1914
1914
  key: 0,
@@ -1943,12 +1943,12 @@ const Zl = async (d, l) => {
1943
1943
  props: Ut,
1944
1944
  emits: ["change", "update:labels", "update:value"],
1945
1945
  setup(d, { emit: l }) {
1946
- var $, b, S;
1946
+ var T, b, S;
1947
1947
  const e = d, t = ue(), o = te(), n = Mt(e.url, e), s = e.optionCtrl ?? n.optionCtrl;
1948
1948
  s.inputFactory = Ht(o);
1949
1949
  const f = C({
1950
1950
  ...s == null ? void 0 : s.url,
1951
- url: (($ = s == null ? void 0 : s.url) == null ? void 0 : $.url) || "",
1951
+ url: ((T = s == null ? void 0 : s.url) == null ? void 0 : T.url) || "",
1952
1952
  fieldMap: (s == null ? void 0 : s.fieldMap) || ((b = s == null ? void 0 : s.url) == null ? void 0 : b.fieldMap),
1953
1953
  params: (s == null ? void 0 : s.params) || ((S = s == null ? void 0 : s.url) == null ? void 0 : S.params),
1954
1954
  loadingText: !1
@@ -2046,7 +2046,7 @@ const vl = {
2046
2046
  }, ml = {
2047
2047
  placeholder: "请选择时间",
2048
2048
  rangePlaceholder: ["开始时间", "结束时间"]
2049
- }, $e = {
2049
+ }, Te = {
2050
2050
  lang: _e({
2051
2051
  placeholder: "请选择日期",
2052
2052
  yearPlaceholder: "请选择年份",
@@ -2061,7 +2061,7 @@ const vl = {
2061
2061
  }, vl),
2062
2062
  timePickerLocale: _e({}, ml)
2063
2063
  };
2064
- $e.lang.ok = "确定";
2064
+ Te.lang.ok = "确定";
2065
2065
  const gr = /* @__PURE__ */ E({
2066
2066
  __name: "index",
2067
2067
  props: {
@@ -2076,7 +2076,7 @@ const gr = /* @__PURE__ */ E({
2076
2076
  return i(), _(a(oa), {
2077
2077
  class: B(["w-full", [((c = a(o)) == null ? void 0 : c.errClass) === "error" ? "error !border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""]]),
2078
2078
  placeholder: "请选择" + a(t),
2079
- locale: a($e),
2079
+ locale: a(Te),
2080
2080
  valueFormat: s.value,
2081
2081
  onBlur: n
2082
2082
  }, null, 8, ["class", "placeholder", "locale", "valueFormat"]);
@@ -2114,17 +2114,17 @@ const gr = /* @__PURE__ */ E({
2114
2114
  v.value === "" && (v.value = u ? void 0 : null);
2115
2115
  };
2116
2116
  return (m, p) => {
2117
- var w, $;
2117
+ var w, T;
2118
2118
  return i(), _(a(fe), A({
2119
2119
  class: [
2120
2120
  (w = a(n)) == null ? void 0 : w.errClass,
2121
- (($ = a(n)) == null ? void 0 : $.errClass) === "error" && !m.$slots.addonBefore && !m.$slots.addonAfter ? "!border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""
2121
+ ((T = a(n)) == null ? void 0 : T.errClass) === "error" && !m.$slots.addonBefore && !m.$slots.addonAfter ? "!border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""
2122
2122
  ],
2123
2123
  value: v.value,
2124
2124
  "onUpdate:value": p[0] || (p[0] = (b) => v.value = b),
2125
2125
  autocomplete: "new-password",
2126
2126
  "allow-clear": !0,
2127
- placeholder: a(e)("webui.form.inputPlaceholder", [a(o)]),
2127
+ placeholder: a(e)("webui.common.placeholder", [a(o)]),
2128
2128
  onBlur: s,
2129
2129
  onChange: r
2130
2130
  }, m.$attrs), ot({ _: 2 }, [
@@ -2385,7 +2385,7 @@ const gr = /* @__PURE__ */ E({
2385
2385
  var r;
2386
2386
  return i(), _(a(ua), {
2387
2387
  class: B([((r = a(n)) == null ? void 0 : r.errClass) === "error" ? ["error", "!border-red-300", "shadow-[0_0_3px_0px_#ff4d4f]"] : "", "w-full"]),
2388
- locale: a($e),
2388
+ locale: a(Te),
2389
2389
  "value-format": s.value,
2390
2390
  value: f.value,
2391
2391
  onChange: u
@@ -2403,7 +2403,7 @@ const gr = /* @__PURE__ */ E({
2403
2403
  return i(), _(a(ca), A({
2404
2404
  class: ((u = a(o)) == null ? void 0 : u.errClass) === "error" ? ["error", "!border-red-300", "shadow-[0_0_3px_0px_#ff4d4f]"] : "",
2405
2405
  "allow-clear": !0,
2406
- placeholder: a(l)("webui.form.inputPlaceholder", [a(t)]),
2406
+ placeholder: a(l)("webui.common.placeholder", [a(t)]),
2407
2407
  onBlur: n,
2408
2408
  onKeyup: f[0] || (f[0] = je(ve(() => {
2409
2409
  }, ["stop"]), ["enter", "native"])),
@@ -2426,7 +2426,7 @@ const gr = /* @__PURE__ */ E({
2426
2426
  return i(), _(a(da), {
2427
2427
  class: B(["w-full", [((c = a(o)) == null ? void 0 : c.errClass) === "error" ? "error !border-red-300 shadow-[0_0_3px_0px_#ff4d4f]" : ""]]),
2428
2428
  placeholder: "请选择" + a(t),
2429
- locale: a($e),
2429
+ locale: a(Te),
2430
2430
  valueFormat: s.value,
2431
2431
  onBlur: n
2432
2432
  }, null, 8, ["class", "placeholder", "locale", "valueFormat"]);
@@ -2475,10 +2475,10 @@ const gr = /* @__PURE__ */ E({
2475
2475
  targetKeys: c.value,
2476
2476
  onChange: v
2477
2477
  }, r.$attrs), {
2478
- children: x(({ direction: w, disabled: $, filteredItems: b, onItemSelectAll: S, onItemSelect: g, selectedKeys: h }) => [
2478
+ children: x(({ direction: w, disabled: T, filteredItems: b, onItemSelectAll: S, onItemSelect: g, selectedKeys: h }) => [
2479
2479
  R(r.$slots, "children", {
2480
2480
  direction: w,
2481
- disabled: $,
2481
+ disabled: T,
2482
2482
  filteredItems: b,
2483
2483
  onItemSelectAll: S,
2484
2484
  onItemSelect: g,
@@ -2489,7 +2489,7 @@ const gr = /* @__PURE__ */ E({
2489
2489
  }, 16, ["class", "placeholder", "targetKeys"]);
2490
2490
  };
2491
2491
  }
2492
- }), $r = /* @__PURE__ */ E({
2492
+ }), Tr = /* @__PURE__ */ E({
2493
2493
  __name: "transferTable",
2494
2494
  props: {
2495
2495
  /**
@@ -2534,8 +2534,8 @@ const gr = /* @__PURE__ */ E({
2534
2534
  disabled: c || p.disabled
2535
2535
  }),
2536
2536
  onSelectAll(p, w) {
2537
- const $ = w.filter((b) => !b.disabled).map(({ [s.value]: b }) => b);
2538
- r($, p);
2537
+ const T = w.filter((b) => !b.disabled).map(({ [s.value]: b }) => b);
2538
+ r(T, p);
2539
2539
  },
2540
2540
  onSelect({ [s.value]: p }, w) {
2541
2541
  m(p, w);
@@ -2584,9 +2584,9 @@ const gr = /* @__PURE__ */ E({
2584
2584
  size: "small",
2585
2585
  "data-source": r,
2586
2586
  scroll: { x: 300 },
2587
- "custom-row": ($) => ({
2587
+ "custom-row": (T) => ({
2588
2588
  onClick: () => {
2589
- const b = $[s.value];
2589
+ const b = T[s.value];
2590
2590
  p(b, !w.includes(b));
2591
2591
  }
2592
2592
  })
@@ -2659,9 +2659,9 @@ const gr = /* @__PURE__ */ E({
2659
2659
  v.value = t ? void 0 : null;
2660
2660
  };
2661
2661
  return (p, w) => {
2662
- var $;
2662
+ var T;
2663
2663
  return i(), _(a(fa), A({
2664
- class: [[($ = a(s)) == null ? void 0 : $.errClass], "w-full"],
2664
+ class: [[(T = a(s)) == null ? void 0 : T.errClass], "w-full"],
2665
2665
  "tree-line": "",
2666
2666
  multiple: d.multiple,
2667
2667
  "tree-default-expanded-keys": ["-"],
@@ -2674,7 +2674,7 @@ const gr = /* @__PURE__ */ E({
2674
2674
  }, p.$attrs), null, 16, ["class", "multiple", "value", "tree-data", "placeholder"]);
2675
2675
  };
2676
2676
  }
2677
- }), Tr = /* @__PURE__ */ ie(_l, [["__scopeId", "data-v-71d50074"]]), wl = { class: "w-full mt-1" }, kl = { class: "flex flex-wrap gap-2" }, Cl = ["onMouseenter"], Sl = { class: "w-16 h-16 border border-solid border-gray-200 rounded overflow-hidden" }, $l = ["src"], Tl = {
2677
+ }), $r = /* @__PURE__ */ ie(_l, [["__scopeId", "data-v-71d50074"]]), wl = { class: "w-full mt-1" }, kl = { class: "flex flex-wrap gap-2" }, Cl = ["onMouseenter"], Sl = { class: "w-16 h-16 border border-solid border-gray-200 rounded overflow-hidden" }, Tl = ["src"], $l = {
2678
2678
  key: 0,
2679
2679
  class: "absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center gap-4 rounded"
2680
2680
  }, Dl = ["onClick"], Pl = ["onClick"], Fl = {
@@ -2701,24 +2701,24 @@ const gr = /* @__PURE__ */ E({
2701
2701
  emits: ["update:file-list"],
2702
2702
  setup(d, { emit: l }) {
2703
2703
  const e = d, t = te(), { errInfo: o } = t, n = C(e.fileList), s = C([]), f = C(), u = l, c = j(() => {
2704
- var T;
2705
- return (T = e.fileExt) != null && T.length ? e.fileExt.map((P) => `.${P}`).join(",") : "";
2706
- }), v = (T) => {
2704
+ var $;
2705
+ return ($ = e.fileExt) != null && $.length ? e.fileExt.map((P) => `.${P}`).join(",") : "";
2706
+ }), v = ($) => {
2707
2707
  var P;
2708
2708
  if (e.fileExt && e.fileExt.length > 0) {
2709
- const q = ((P = T.name.split(".").pop()) == null ? void 0 : P.toLowerCase()) || "";
2709
+ const q = ((P = $.name.split(".").pop()) == null ? void 0 : P.toLowerCase()) || "";
2710
2710
  if (!e.fileExt.includes(q))
2711
2711
  return re.error("文件类型不支持"), !1;
2712
2712
  }
2713
- return T.size / 1024 / 1024 > e.maxFileSize ? (re.error(`文件大小超过 ${e.maxFileSize}MB 限制`), !1) : !0;
2714
- }, r = () => e.maxCount > 1 && n.value.length >= e.maxCount, m = (T) => {
2715
- const P = T;
2713
+ return $.size / 1024 / 1024 > e.maxFileSize ? (re.error(`文件大小超过 ${e.maxFileSize}MB 限制`), !1) : !0;
2714
+ }, r = () => e.maxCount > 1 && n.value.length >= e.maxCount, m = ($) => {
2715
+ const P = $;
2716
2716
  return P.params || (P.params = {}), P.params.FileKey = P.name, e.parentPath && (P.params.FileKey = Re.join("/", e.parentPath, P.name)), P;
2717
- }, p = (T) => v(T) && e.autoUpload, w = async (T) => {
2718
- if (T.length === 0) return;
2717
+ }, p = ($) => v($) && e.autoUpload, w = async ($) => {
2718
+ if ($.length === 0) return;
2719
2719
  const P = [...n.value];
2720
2720
  let q = !1;
2721
- for (const Z of T) {
2721
+ for (const Z of $) {
2722
2722
  if (!v(Z)) {
2723
2723
  q = !0;
2724
2724
  continue;
@@ -2736,67 +2736,67 @@ const gr = /* @__PURE__ */ E({
2736
2736
  le > -1 ? P[le] = H : P.push(H);
2737
2737
  }
2738
2738
  (!q || P.length > 0) && (n.value = P), s.value = [];
2739
- }, $ = (T) => {
2740
- s.value = T, w(T);
2739
+ }, T = ($) => {
2740
+ s.value = $, w($);
2741
2741
  }, b = j(() => ({
2742
2742
  accept: c.value,
2743
2743
  multiple: e.maxCount !== 1,
2744
2744
  fileList: s.value,
2745
- "onUpdate:fileList": $,
2745
+ "onUpdate:fileList": T,
2746
2746
  beforeUpload: p,
2747
2747
  listType: "text",
2748
2748
  showUploadList: !1,
2749
2749
  customRequest: async () => {
2750
2750
  if (e.autoUpload && e.uploadUrl)
2751
- for (const T of n.value)
2752
- T.percent === 0 && await Vt(e.uploadUrl, T);
2751
+ for (const $ of n.value)
2752
+ $.percent === 0 && await Vt(e.uploadUrl, $);
2753
2753
  }
2754
2754
  }));
2755
2755
  U(
2756
2756
  () => e.fileList,
2757
- (T) => {
2758
- n.value = T;
2757
+ ($) => {
2758
+ n.value = $;
2759
2759
  },
2760
2760
  { deep: !0, immediate: !0 }
2761
2761
  ), U(
2762
2762
  () => n.value,
2763
- (T) => {
2764
- u("update:file-list", T);
2763
+ ($) => {
2764
+ u("update:file-list", $);
2765
2765
  },
2766
2766
  { deep: !0 }
2767
2767
  ), U(
2768
2768
  () => e.parentPath,
2769
- (T) => {
2770
- T && n.value.forEach((P) => {
2771
- P.params.FileKey = Re.join("/", T, P.fileName);
2769
+ ($) => {
2770
+ $ && n.value.forEach((P) => {
2771
+ P.params.FileKey = Re.join("/", $, P.fileName);
2772
2772
  });
2773
2773
  }
2774
2774
  );
2775
- const S = C(!1), g = C(""), h = (T) => {
2776
- const P = n.value[T];
2775
+ const S = C(!1), g = C(""), h = ($) => {
2776
+ const P = n.value[$];
2777
2777
  g.value = z(P), S.value = !0;
2778
- }, N = (T) => {
2779
- const P = n.value[T];
2778
+ }, N = ($) => {
2779
+ const P = n.value[$];
2780
2780
  e.deleteUrl && P.minioFile && P.minioFile.Key ? Ne(e.deleteUrl, {
2781
2781
  Query: {
2782
2782
  FileKey: P.minioFile.Key
2783
2783
  }
2784
2784
  }).then((q) => {
2785
- q && q.status === ze.SUCCESS && (re.success("删除文件成功!"), n.value.splice(T, 1));
2786
- }) : n.value.splice(T, 1);
2787
- }, K = C(/* @__PURE__ */ new Map()), z = (T) => {
2788
- if (T.originFileObj)
2789
- return URL.createObjectURL(T.originFileObj);
2790
- if (T.minioFile) {
2791
- const P = T.minioFile.Key;
2792
- return K.value.has(P) ? K.value.get(P) : (O(T), "");
2785
+ q && q.status === ze.SUCCESS && (re.success("删除文件成功!"), n.value.splice($, 1));
2786
+ }) : n.value.splice($, 1);
2787
+ }, K = C(/* @__PURE__ */ new Map()), z = ($) => {
2788
+ if ($.originFileObj)
2789
+ return URL.createObjectURL($.originFileObj);
2790
+ if ($.minioFile) {
2791
+ const P = $.minioFile.Key;
2792
+ return K.value.has(P) ? K.value.get(P) : (O($), "");
2793
2793
  }
2794
2794
  return "";
2795
- }, O = async (T) => {
2796
- if (!T.minioFile || !e.previewUrl) return;
2797
- const P = T.minioFile.Key;
2795
+ }, O = async ($) => {
2796
+ if (!$.minioFile || !e.previewUrl) return;
2797
+ const P = $.minioFile.Key;
2798
2798
  try {
2799
- const q = `${e.previewUrl.url}?FileKey=${encodeURIComponent(T.minioFile.Key)}`, Z = Gt() ? await Yt.getToken() : Me().getToken(), H = await fetch(q, {
2799
+ const q = `${e.previewUrl.url}?FileKey=${encodeURIComponent($.minioFile.Key)}`, Z = Gt() ? await Yt.getToken() : Me().getToken(), H = await fetch(q, {
2800
2800
  method: "GET",
2801
2801
  headers: {
2802
2802
  Authorization: `Bearer ${Z}`
@@ -2810,25 +2810,25 @@ const gr = /* @__PURE__ */ E({
2810
2810
  } catch (q) {
2811
2811
  console.error("加载图片失败:", q);
2812
2812
  }
2813
- }, kt = j(() => n.value.length < e.maxCount), Te = C(-1);
2814
- return (T, P) => {
2813
+ }, kt = j(() => n.value.length < e.maxCount), $e = C(-1);
2814
+ return ($, P) => {
2815
2815
  const q = ne("auth");
2816
2816
  return i(), y("div", wl, [
2817
2817
  I("div", kl, [
2818
2818
  (i(!0), y(L, null, Y(n.value, (Z, H) => (i(), y("div", {
2819
2819
  key: H,
2820
2820
  class: "relative image-item",
2821
- onMouseenter: (le) => Te.value = H,
2822
- onMouseleave: P[0] || (P[0] = (le) => Te.value = -1)
2821
+ onMouseenter: (le) => $e.value = H,
2822
+ onMouseleave: P[0] || (P[0] = (le) => $e.value = -1)
2823
2823
  }, [
2824
2824
  I("div", Sl, [
2825
2825
  I("img", {
2826
2826
  src: z(Z),
2827
2827
  class: "w-full h-full object-cover"
2828
- }, null, 8, $l)
2828
+ }, null, 8, Tl)
2829
2829
  ]),
2830
- Te.value === H ? (i(), y("div", Tl, [
2831
- T.previewUrl ? (i(), y("div", {
2830
+ $e.value === H ? (i(), y("div", $l, [
2831
+ $.previewUrl ? (i(), y("div", {
2832
2832
  key: 0,
2833
2833
  class: "flex items-center text-white cursor-pointer hover:text-blue-400",
2834
2834
  onClick: (le) => h(H)
@@ -2839,7 +2839,7 @@ const gr = /* @__PURE__ */ E({
2839
2839
  }),
2840
2840
  P[1] || (P[1] = I("span", { class: "text-sm ml-1" }, "预览", -1))
2841
2841
  ], 8, Dl)) : k("", !0),
2842
- T.showDelete !== !1 ? (i(), y("div", {
2842
+ $.showDelete !== !1 ? (i(), y("div", {
2843
2843
  key: 1,
2844
2844
  class: "flex items-center text-white cursor-pointer hover:text-red-400",
2845
2845
  onClick: (le) => N(H)
@@ -2928,7 +2928,7 @@ export {
2928
2928
  ee as Button,
2929
2929
  mt as Cache,
2930
2930
  _a as CacheKeys,
2931
- Ts as CanPreviewFileExt,
2931
+ $s as CanPreviewFileExt,
2932
2932
  vr as Cascader,
2933
2933
  mr as Checkbox,
2934
2934
  Pr as Content,
@@ -2954,7 +2954,7 @@ export {
2954
2954
  br as InputPassword,
2955
2955
  rr as LayoutIcon,
2956
2956
  ir as List,
2957
- Ta as ListOperate,
2957
+ $a as ListOperate,
2958
2958
  Ls as Loading,
2959
2959
  Zs as Menu,
2960
2960
  eo as MenuTabs,
@@ -2980,16 +2980,16 @@ export {
2980
2980
  _t as Toolbar,
2981
2981
  Vs as Tooltip,
2982
2982
  xl as Transfer,
2983
- $r as TransferTable,
2983
+ Tr as TransferTable,
2984
2984
  dr as Tree,
2985
- Tr as TreeSelect,
2985
+ $r as TreeSelect,
2986
2986
  Ds as UploadList,
2987
2987
  Ss as UploadStatus,
2988
2988
  Us as appendExcelData,
2989
2989
  Ms as checkExcelDuplicates,
2990
2990
  Ur as checkIconsExpired,
2991
2991
  Nt as circleLoading,
2992
- $t as createFromIconfont,
2992
+ Tt as createFromIconfont,
2993
2993
  As as createMarkedExcelView,
2994
2994
  Mr as crumbs,
2995
2995
  Zl as csvToExcelBlob,
@@ -3039,7 +3039,7 @@ export {
3039
3039
  Ft as onColumnVisibleChanged,
3040
3040
  Dt as onFormClose,
3041
3041
  We as onFormSave,
3042
- Tt as onFormSaveAs,
3042
+ $t as onFormSaveAs,
3043
3043
  St as onFullscreenClick,
3044
3044
  Je as onGridRowDelete,
3045
3045
  Qe as onGridRowEdit,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyfox2000/webui",
3
- "version": "1.5.7",
3
+ "version": "1.5.9",
4
4
  "description": "后台前端通用组件定义, 支持国际化",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -4,6 +4,7 @@ import { Button } from '../../common';
4
4
  import { Modal, Space } from 'ant-design-vue';
5
5
  import { onFormSave, onFormSaveAs, onFormClose, EditorControl, ProviderKeys } from '@/index';
6
6
  import { AnyData } from '@skyfox2000/fapi';
7
+ import { $t } from '@/locales/index';
7
8
 
8
9
  const props = defineProps<{
9
10
  /**
@@ -5,6 +5,7 @@ import SearchItem from './searchItem.vue';
5
5
  import { Button } from '../../common';
6
6
  import { GridControl } from '@/index';
7
7
  import { AnyData } from '@skyfox2000/fapi';
8
+ import { $t } from '@/locales/index';
8
9
 
9
10
  /**
10
11
  * 搜索表单BUG
@@ -70,7 +70,7 @@ const onClear = () => {
70
70
  v-model:value="innerValue"
71
71
  autocomplete="new-password"
72
72
  :allow-clear="true"
73
- :placeholder="t('webui.form.inputPlaceholder', [labelText])"
73
+ :placeholder="t('webui.common.placeholder', [labelText])"
74
74
  @blur="onBlur"
75
75
  @change="onClear"
76
76
  v-bind="$attrs"
@@ -16,7 +16,7 @@ const onBlur = () => {
16
16
  <Textarea
17
17
  :class="errInfo?.errClass === 'error' ? ['error', '!border-red-300', 'shadow-[0_0_3px_0px_#ff4d4f]'] : ''"
18
18
  :allow-clear="true"
19
- :placeholder="t('webui.form.inputPlaceholder', [labelText])"
19
+ :placeholder="t('webui.common.placeholder', [labelText])"
20
20
  @blur="onBlur"
21
21
  @keyup.enter.native.stop
22
22
  @keydown.enter.native.stop
@@ -0,0 +1,320 @@
1
+ {
2
+ "webui": {
3
+ "common": {
4
+ "confirm": "Confirm",
5
+ "cancel": "Cancel",
6
+ "yes": "Yes",
7
+ "no": "No",
8
+
9
+ "save": "Save",
10
+ "saveAs": "Save As",
11
+ "delete": "Delete",
12
+ "edit": "Edit",
13
+ "add": "Add",
14
+ "upload": "Upload",
15
+ "download": "Download",
16
+ "preview": "Preview",
17
+ "choose": "Choose",
18
+ "placeholder": "Please enter {0}",
19
+ "pleaseSelect": "Please select",
20
+ "pleaseInput": "Please input",
21
+ "all": "All",
22
+ "success": "Success",
23
+ "failed": "Failed",
24
+ "enable": "Enable",
25
+ "disable": "Disable",
26
+ "male": "Male",
27
+ "female": "Female",
28
+ "online": "Online",
29
+ "offline": "Offline",
30
+ "onlineStatus": "Online",
31
+ "offlineStatus": "Offline",
32
+ "refresh": "Refresh",
33
+ "search": "Search",
34
+ "export": "Export",
35
+ "file": "File",
36
+ "total": "Total {0} records",
37
+ "reset": "Reset",
38
+ "more": "More",
39
+ "moreActions": "More Actions",
40
+ "uploadSave": "Upload & Save"
41
+ },
42
+
43
+ "components": {
44
+ "common": {
45
+ "button": {
46
+ "tooltip": "Tooltip Title"
47
+ },
48
+ "icon": {
49
+ "question": "Question",
50
+ "help": "Help"
51
+ },
52
+ "loading": {
53
+ "loading": "Loading"
54
+ },
55
+ "alert": {
56
+ "info": "Info",
57
+ "warning": "Warning",
58
+ "error": "Error"
59
+ }
60
+ },
61
+ "content": {
62
+ "dialog": {
63
+ "fileUpload": "File Upload",
64
+ "templateFileManager": "Template File Manager",
65
+ "close": "Close",
66
+ "uploadFile": "Upload File",
67
+ "chooseExcelFile": "Please select Excel file",
68
+ "chooseCsvFile": "Please select CSV file",
69
+ "chooseExcelOrCsvFile": "Please select Excel or CSV file",
70
+ "noValidationRules": "No validation rules set",
71
+ "fieldMustBeUnique": "The following {0} must be unique",
72
+ "combinationMustBeUnique": "The following combination must be unique",
73
+ "validationRules": "Data validation rules to check",
74
+ "duplicateData": "Duplicate data to validate",
75
+ "validationException": "Validation exception",
76
+ "batchImportUser": "Batch Import Users"
77
+ },
78
+
79
+ "excelForm": {
80
+ "uploadAddressNotConfigured": "File upload address not configured!",
81
+ "validationError": "Table data has validation errors, please correct before uploading!",
82
+ "pleaseSelectFileFirst": "Please select a file first!",
83
+ "fileUploadSuccess": "File uploaded successfully, starting business processing!",
84
+ "uploadFailed": "Upload processing failed:",
85
+ "unknownError": "Unknown error",
86
+ "onlyExcelAllowed": "Only Excel files can be uploaded!",
87
+ "onlyCsvAllowed": "Only CSV files can be uploaded!",
88
+ "onlyExcelOrCsvAllowed": "Only Excel or CSV files can be uploaded!",
89
+ "csvProcessingFailed": "CSV file processing failed",
90
+ "gridCtrlNotConfigured": "Grid controller not configured!",
91
+ "fileProcessingFailed": "File processing failed, please check file format!",
92
+ "loadFileFailed": "Failed to load file, please check file format!",
93
+ "fileProcessingError": "File processing error",
94
+ "dataSaveFailed": "Data save failed, please try again later!"
95
+ },
96
+
97
+ "listOperate": {
98
+ "confirmDelete": "Are you sure to delete this record?",
99
+ "more": "More"
100
+ },
101
+ "toolpanel": {
102
+ "tool": "Tools",
103
+ "searchResult": "Search Results",
104
+ "list": "List",
105
+ "grid": "Grid",
106
+ "listView": "List View",
107
+ "gridView": "Grid View",
108
+ "expand": "Expand",
109
+ "collapse": "Collapse",
110
+ "expandPanel": "Expand Panel",
111
+ "collapsePanel": "Collapse Panel",
112
+ "searchPlaceholder": "Search tools..."
113
+ }
114
+ },
115
+ "error": {
116
+ "forbidden": "Sorry, you don't have permission to access this page",
117
+ "pageNotFound": "Sorry, the page you visited does not exist",
118
+ "clickReturn": "Click to return"
119
+ },
120
+ "layout": {
121
+ "header": {
122
+ "exitPlatform": "Exit Platform",
123
+ "exitSystem": "Exit System",
124
+ "confirmExit": "Confirm Exit",
125
+ "exitConfirmMessage": "Are you sure you want to exit the system?"
126
+ }
127
+ },
128
+ "form": {
129
+ "upload": {
130
+ "selectFile": "Select File",
131
+ "selectDirectory": "Select Directory",
132
+ "uploading": "Uploading",
133
+ "uploadComplete": "Upload Complete",
134
+ "uploadFailed": "Upload Failed",
135
+ "pendingUpload": "Pending Upload",
136
+ "onlineOrOffline": "Online or Offline",
137
+ "deleteConfirm": "Are you sure to delete this file?",
138
+ "deleteSuccess": "File deleted successfully!",
139
+ "fileSizeExceeded": "File size exceeds {0}MB limit",
140
+ "maxFileCount": "Maximum {0} files can be uploaded",
141
+ "fileTypeRequired": "File must be {0}",
142
+ "maxFileSize": "Maximum file size {0}MB",
143
+ "maxFileCountMsg": "Maximum {0} files",
144
+ "dataLoading": "Loading data...",
145
+ "loadImageFailed": "Failed to load image:",
146
+ "unsupportedFileType": "Unsupported file type",
147
+ "fileSizeExceedsLimit": "File size exceeds {0}MB limit",
148
+ "maxFilesReached": "Maximum {0} files can be uploaded",
149
+ "onlineOffline": "Online or Offline",
150
+ "chooseFile": "Choose File",
151
+ "chooseDirectory": "Choose Directory",
152
+ "confirmDeleteFile": "Are you sure to delete this file?",
153
+ "fileMustBe": "File must be {0}",
154
+ "singleFileMax": "Maximum single file size {0}MB",
155
+ "maxFiles": "Maximum {0} files",
156
+ "pleaseSelectFile": "Please select a file to upload!",
157
+ "allUploadSuccess": "All files uploaded successfully!",
158
+ "partialUploadFailed": "Upload completed, some files failed to upload!",
159
+ "saveUploadSuccess": "Save successfully uploaded files!",
160
+ "partialUploadFailedCancel": "Upload completed, some files failed to upload, save cancelled!",
161
+ "allUploadFailed": "Upload completed, all files failed to upload!",
162
+ "uploadFailedError": "Upload failed",
163
+ "uploadingStatus": "Uploading",
164
+ "unauthorized": "Unauthorized or authorization expired",
165
+ "invalidJson": "Returned result is not in JSON format",
166
+ "uploadSuccessStatus": "Upload successful",
167
+ "parseJsonError": "Unable to parse returned JSON data",
168
+ "uploadFailedStatusCode": "Upload failed, status code:",
169
+ "uploadFailedNetwork": "Upload failed, network error",
170
+ "uploadCanceled": "Upload cancelled",
171
+ "fileUploadSuccess": "File uploaded successfully!",
172
+ "fileUploadFailed": "File upload failed!"
173
+ },
174
+ "select": {
175
+ "pleaseSelect": "Please select {0}",
176
+ "noData": "No data"
177
+ },
178
+ "aceEditor": {
179
+ "title": "Code Editor"
180
+ },
181
+ "switch": {
182
+ "error": "Switch component must have exactly two options"
183
+ },
184
+ "radioStatus": {
185
+ "all": "All"
186
+ },
187
+ "radio": {
188
+ "noData": "No data",
189
+ "all": "All"
190
+ },
191
+ "autoComplete": {
192
+ "pleaseInputAndSelect": "{0} and select"
193
+ },
194
+ "propEditor": {
195
+ "configName": "Config Name",
196
+ "configValue": "Please enter config value",
197
+ "inputConfigValue": "Please enter {0}"
198
+ },
199
+ "transfer": {
200
+ "pleaseInput": "Please enter {0}"
201
+ }
202
+ }
203
+ },
204
+
205
+ "stores": {
206
+ "userInfo": {
207
+ "tokenParseFailed": "Token parsing failed",
208
+ "exiting": "Exiting...",
209
+ "logoutSuccess": "Logged out successfully",
210
+ "authInfoFailed": "Failed to get authorization info",
211
+ "userInfoParseFailed": "User info parsing failed"
212
+ },
213
+ "appInfo": {
214
+ "loadAppListFailed": "Failed to load application list"
215
+ }
216
+ },
217
+
218
+ "utils": {
219
+ "exportTable": {
220
+ "exportFailed": "Export failed",
221
+ "fileExportFailed": "File export failed, please try again later"
222
+ },
223
+ "formValidate": {
224
+ "required": "Cannot be empty",
225
+ "numberType": "Must be a number",
226
+ "enum": "Must be one of {enum}",
227
+ "stringLen": "Length must be {len}",
228
+ "stringMin": "Length cannot be less than {min}",
229
+ "stringMax": "Length cannot be greater than {max}",
230
+ "stringRange": "Length must be between {min} and {max}",
231
+ "numberLen": "Must be {len}",
232
+ "numberMin": "Cannot be less than {min}",
233
+ "numberMax": "Cannot be greater than {max}",
234
+ "numberRange": "Must be between {min} and {max}",
235
+ "arrayLen": "Length must be {len}",
236
+ "arrayMin": "Length cannot be less than {min}",
237
+ "arrayMax": "Length cannot be greater than {max}",
238
+ "arrayRange": "Length must be between {min} and {max}",
239
+ "formatValidationError": "Error formatting validation message",
240
+ "processValidationError": "Error processing validation rules"
241
+ },
242
+ "fileUpload": {
243
+ "pleaseSelectFile": "Please select a file to upload!",
244
+ "allUploadSuccess": "All files uploaded successfully!",
245
+ "partialUploadFailed": "Upload completed, some files failed to upload!",
246
+ "saveUploadSuccess": "Save successfully uploaded files!",
247
+ "partialUploadFailedCancel": "Upload completed, some files failed to upload, save cancelled!",
248
+ "allUploadFailed": "Upload completed, all files failed to upload!",
249
+ "fileUploadSuccess": "File uploaded successfully!",
250
+ "fileUploadFailed": "File upload failed!"
251
+ },
252
+ "data": {
253
+ "executeSuccess": "Execution successful!",
254
+ "noDataToSave": "Error! No data to save!",
255
+ "saveSuccess": "Save successful!",
256
+ "conditionalDeleteForbidden": "Error! Unconditional data deletion is forbidden!",
257
+ "deleteSuccess": "Delete successful!"
258
+ },
259
+ "download": {
260
+ "downloadFailed": "File download failed!",
261
+ "fileDownloadFailed": "File download failed, please try again later",
262
+ "fileTypeNotSupported": "File type not supported for preview",
263
+ "filePreviewFailed": "File preview failed!"
264
+ },
265
+ "formExcel": {
266
+ "excelNoSheets": "Excel file does not contain worksheets",
267
+ "excelInsufficientData": "Excel file does not contain enough data",
268
+ "validationError": "Error occurred while validating table data",
269
+ "missingDuplicateFields": "Table header missing fields required for duplicate detection",
270
+ "fileNotExcel": "Uploaded file is not an Excel file",
271
+ "processFailed": "Excel file processing failed",
272
+ "validationSuccess": "Data validation successful",
273
+ "duplicateValidationPending": "Duplicate data to validate",
274
+ "validationFailed": "Data validation failed",
275
+ "validationPassed": "Data validation passed",
276
+ "duplicateDetected": "Duplicate data detected",
277
+ "duplicateCheckPassed": "Duplicate check passed"
278
+ },
279
+ "options": {
280
+ "notConfigured": "Options data not configured!"
281
+ },
282
+ "form": {
283
+ "submitValidationFailed": "Validation failed when submitting form!",
284
+ "saveSuccess": "Save successful!",
285
+ "dataAlreadyExists": "Save failed! Data `{0}` already exists!",
286
+ "saveFailed": "Save failed!"
287
+ },
288
+ "excelPreview": {
289
+ "previewUrlNotConfigured": "Preview URL or Excel controller not configured",
290
+ "fileLoadFailed": "File load failed"
291
+ },
292
+ "tools": {
293
+ "noClickHandler": "Click handler not configured!",
294
+ "refreshTable": "Refresh Table",
295
+ "expandSearch": "Expand Search Bar",
296
+ "collapseSearch": "Collapse Search Bar",
297
+ "rowHeight": "Adjust Row Height",
298
+ "showCheckbox": "Show Checkbox",
299
+ "hideCheckbox": "Hide Checkbox",
300
+ "expandRows": "Expand Rows",
301
+ "collapseRows": "Collapse Rows",
302
+ "exportExcel": "Export Excel",
303
+ "exportAllRecords": "All Records",
304
+ "exportSelectedRecords": "Selected Records",
305
+ "exportPDF": "Export PDF",
306
+ "tableHeaderSettings": "Table Header Settings",
307
+ "setFullscreen": "Set Fullscreen",
308
+ "exitFullscreen": "Exit Fullscreen"
309
+ },
310
+ "iconLoader": {
311
+ "networkError": "Network error, unable to load icon library!"
312
+ },
313
+ "formCsv": {
314
+ "csvToExcelFailed": "CSV to Excel conversion failed",
315
+ "csvProcessFailed": "CSV file processing failed",
316
+ "unknownError": "Unknown error"
317
+ }
318
+ }
319
+ }
320
+ }
@@ -1,114 +0,0 @@
1
- import { defineComponent as B, provide as N, ref as y, watch as p, onMounted as $, createBlock as n, openBlock as r, unref as a, withCtx as s, createElementVNode as V, renderSlot as A, createVNode as x, createCommentVNode as d, createTextVNode as m, toDisplayString as u } from "vue";
2
- import { _ as v } from "./index-BwMaOrJT.js";
3
- import { Modal as D, Space as _ } from "ant-design-vue";
4
- import "@skyfox2000/fapi";
5
- import { P as E, e as M, b as P, d as K } from "./upload-template-BKm9mFq8.js";
6
- import "@skyfox2000/microbase";
7
- import "vue-m-message";
8
- import "async-validator";
9
- import "dayjs";
10
- import "vue-draggable-next";
11
- const U = { class: "overflow-y-auto w-full h-full" }, R = /* @__PURE__ */ B({
12
- __name: "index",
13
- props: {
14
- saveText: {},
15
- saveAsText: {},
16
- cancelText: {},
17
- editorCtrl: {},
18
- dialogSave: { type: Function },
19
- dialogSaveAs: { type: Function },
20
- width: {},
21
- full: { type: Boolean },
22
- open: { type: Boolean }
23
- },
24
- emits: ["update:open"],
25
- setup(C, { emit: T }) {
26
- const l = C, o = l.editorCtrl;
27
- N(E.EditorControl, o);
28
- const t = y(l.open ?? !1), b = T, h = y(l.width ?? 430);
29
- p(
30
- () => o == null ? void 0 : o.visible.value,
31
- (e) => {
32
- t.value = e ?? !1;
33
- }
34
- ), p(
35
- () => l.open,
36
- (e) => {
37
- t.value = e;
38
- }
39
- ), p(
40
- () => t.value,
41
- (e) => {
42
- b("update:open", e), e || f();
43
- }
44
- ), $(() => {
45
- t.value = (o == null ? void 0 : o.visible.value) ?? !1;
46
- });
47
- const k = () => {
48
- l.dialogSave ? l.dialogSave() : o && P(o);
49
- }, F = () => {
50
- l.dialogSaveAs ? l.dialogSaveAs() : o && K(o);
51
- }, f = () => {
52
- o ? M(o) : t.value = !1;
53
- };
54
- return (e, c) => (r(), n(a(D), {
55
- open: t.value,
56
- "onUpdate:open": c[0] || (c[0] = (i) => t.value = i),
57
- wrapClassName: "modal mx-auto min-w-[430px] " + (e.full ? "full-modal w-full" : ""),
58
- width: h.value
59
- }, {
60
- footer: s(() => [
61
- A(e.$slots, "footer", {}, () => [
62
- x(a(_), null, {
63
- default: s(() => {
64
- var i, g, w, S;
65
- return [
66
- e.cancelText !== "" ? (r(), n(a(v), {
67
- key: 0,
68
- onClick: f
69
- }, {
70
- default: s(() => [
71
- m(u(e.cancelText ?? e.$t("webui.common.cancel")), 1)
72
- ]),
73
- _: 1
74
- })) : d("", !0),
75
- e.saveAsText !== "" && ((i = a(o)) == null ? void 0 : i.saveAsBtnVisible) !== !1 ? (r(), n(a(v), {
76
- key: 1,
77
- onClick: F,
78
- type: "primary",
79
- loading: (g = a(o)) == null ? void 0 : g.isFormSaving.value
80
- }, {
81
- default: s(() => [
82
- m(u(e.saveAsText ?? e.$t("webui.common.saveAs")), 1)
83
- ]),
84
- _: 1
85
- }, 8, ["loading"])) : d("", !0),
86
- e.saveText !== "" && ((w = a(o)) == null ? void 0 : w.saveBtnVisible) !== !1 ? (r(), n(a(v), {
87
- key: 2,
88
- onClick: k,
89
- type: "primary",
90
- loading: (S = a(o)) == null ? void 0 : S.isFormSaving.value
91
- }, {
92
- default: s(() => [
93
- m(u(e.saveText ?? e.$t("webui.common.save")), 1)
94
- ]),
95
- _: 1
96
- }, 8, ["loading"])) : d("", !0)
97
- ];
98
- }),
99
- _: 1
100
- })
101
- ])
102
- ]),
103
- default: s(() => [
104
- V("div", U, [
105
- A(e.$slots, "default")
106
- ])
107
- ]),
108
- _: 3
109
- }, 8, ["open", "wrapClassName", "width"]));
110
- }
111
- });
112
- export {
113
- R as _
114
- };