@duxweb/dvha-pro 1.1.27 → 1.1.29

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.
@@ -1,6 +1,6 @@
1
- import { defineComponent as f, computed as u, createVNode as t, mergeProps as E, isVNode as x } from "vue";
2
- import { useI18n as F } from "@duxweb/dvha-core";
3
- import { NButton as a } from "naive-ui";
1
+ import { defineComponent as f, computed as c, createVNode as m, mergeProps as E, isVNode as x } from "vue";
2
+ import { useI18n as b } from "@duxweb/dvha-core";
3
+ import { NButton as s } from "naive-ui";
4
4
  import "vue-router";
5
5
  import "@overlastic/vue";
6
6
  import "@vueuse/core";
@@ -48,34 +48,34 @@ import "vue-command-palette";
48
48
  import "@duxweb/dvha-naiveui";
49
49
  import "../../pages/page404.js";
50
50
  import "vue-draggable-plus";
51
- import { DuxDesignEditor as l } from "../designEditor/editor.js";
51
+ import { DuxDesignEditor as a } from "../designEditor/editor.js";
52
52
  import "short-unique-id";
53
53
  import "aieditor";
54
54
  import "@vue-flow/core";
55
- import { DuxFormLayout as g } from "../form/formLayout.js";
55
+ import { DuxFormLayout as y } from "../form/formLayout.js";
56
56
  import "lodash-es/cloneDeep";
57
57
  import "@vue-flow/background";
58
58
  /* empty css */
59
- import { DuxFormEditorSettingPage as v } from "./base/setting.js";
60
- import { duxFormEditorCascader as y } from "./components/cascader.js";
61
- import { duxFormEditorCascaderAsync as b } from "./components/cascaderAsync.js";
62
- import { duxFormEditorCheckbox as S } from "./components/checkbox.js";
63
- import { duxFormEditorColor as D } from "./components/color.js";
64
- import { duxFormEditorDate as C } from "./components/date.js";
65
- import { duxFormEditorDynamicInput as P } from "./components/dynamicInput.js";
59
+ import { DuxFormEditorSettingPage as D } from "./base/setting.js";
60
+ import { duxFormEditorCascader as F } from "./components/cascader.js";
61
+ import { duxFormEditorCascaderAsync as g } from "./components/cascaderAsync.js";
62
+ import { duxFormEditorCheckbox as v } from "./components/checkbox.js";
63
+ import { duxFormEditorColor as S } from "./components/color.js";
64
+ import { duxFormEditorDate as A } from "./components/date.js";
65
+ import { duxFormEditorDynamicInput as h } from "./components/dynamicInput.js";
66
66
  import { duxFormEditorDynamicTags as k } from "./components/dynamicTags.js";
67
- import { duxFormEditorAIEditor as A } from "./components/editor.js";
68
- import { duxFormEditorFileUpload as I } from "./components/fileUpload.js";
69
- import { duxFormEditorImageUpload as h } from "./components/imageUpload.js";
70
- import { duxFormEditorInput as j } from "./components/input.js";
67
+ import { duxFormEditorAIEditor as C } from "./components/editor.js";
68
+ import { duxFormEditorFileUpload as P } from "./components/fileUpload.js";
69
+ import { duxFormEditorImageUpload as I } from "./components/imageUpload.js";
70
+ import { duxFormEditorInput as w } from "./components/input.js";
71
71
  import { duxFormEditorInputNumber as T } from "./components/inputNumber.js";
72
- import { duxFormEditorMentionAsync as w } from "./components/mentionAsync.js";
72
+ import { duxFormEditorMentionAsync as j } from "./components/mentionAsync.js";
73
73
  import { duxFormEditorRadio as N } from "./components/radio.js";
74
74
  import { duxFormEditorRegion as O } from "./components/region.js";
75
- import { duxFormEditorSelect as _ } from "./components/select.js";
76
- import { duxFormEditorSelectAsync as R } from "./components/selectAsync.js";
77
- import { duxFormEditorSider as M } from "./components/sider.js";
78
- import { duxFormEditorSwitch as U } from "./components/switch.js";
75
+ import { duxFormEditorSelect as U } from "./components/select.js";
76
+ import { duxFormEditorSelectAsync as _ } from "./components/selectAsync.js";
77
+ import { duxFormEditorSider as R } from "./components/sider.js";
78
+ import { duxFormEditorSwitch as M } from "./components/switch.js";
79
79
  import { duxFormEditorTime as V } from "./components/time.js";
80
80
  import { duxFormEditorTransferAsync as B } from "./components/transferAsync.js";
81
81
  import { duxFormEditorTreeSelect as L } from "./components/treeSelect.js";
@@ -89,19 +89,19 @@ import "dayjs";
89
89
  import { useModal as q } from "../../hooks/modal.js";
90
90
  import "@tanstack/vue-query";
91
91
  import "pinia";
92
- function p(m) {
93
- return typeof m == "function" || Object.prototype.toString.call(m) === "[object Object]" && !x(m);
92
+ function n(e) {
93
+ return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !x(e);
94
94
  }
95
- const Ir = /* @__PURE__ */ f({
95
+ const Pr = /* @__PURE__ */ f({
96
96
  name: "DuxFormEditor",
97
97
  props: {
98
98
  onSave: Function
99
99
  },
100
- extends: l,
101
- setup(m) {
100
+ extends: a,
101
+ setup(e) {
102
102
  const {
103
103
  t: o
104
- } = F(), d = q(), c = u(() => [{
104
+ } = b(), d = q(), l = c(() => [{
105
105
  name: "form",
106
106
  label: o("components.formEditor.groups.form"),
107
107
  icon: "i-tabler:forms"
@@ -113,30 +113,60 @@ const Ir = /* @__PURE__ */ f({
113
113
  name: "async",
114
114
  label: o("components.formEditor.groups.async"),
115
115
  icon: "i-tabler:loader"
116
- }]), s = u(() => [j(o), T(o), A(o), M(o), C(o), V(o), D(o), S(o), N(o), U(o), P(o), k(o), h(o), I(o), _(o), y(o), L(o), O(o), R(o), b(o), W(o), B(o), w(o)]);
117
- return () => t(l, E(m, {
118
- groups: c.value,
119
- components: s.value,
116
+ }]), u = c(() => {
117
+ const r = [w(o), T(o), C(o), R(o), A(o), V(o), S(o), v(o), N(o), M(o), h(o), k(o), I(o), P(o), U(o), F(o), L(o), O(o), _(o), g(o), W(o), B(o), j(o)], i = {
118
+ "dux-input": o("components.formEditor.toolbarDescriptions.input"),
119
+ "dux-input-number": o("components.formEditor.toolbarDescriptions.inputNumber"),
120
+ "dux-editor": o("components.formEditor.toolbarDescriptions.aiEditor"),
121
+ sider: o("components.formEditor.toolbarDescriptions.slider"),
122
+ "dux-date": o("components.formEditor.toolbarDescriptions.date"),
123
+ "dux-time": o("components.formEditor.toolbarDescriptions.time"),
124
+ "dux-color": o("components.formEditor.toolbarDescriptions.color"),
125
+ "dux-checkbox": o("components.formEditor.toolbarDescriptions.checkbox"),
126
+ "dux-radio": o("components.formEditor.toolbarDescriptions.radio"),
127
+ "dux-switch": o("components.formEditor.toolbarDescriptions.switch"),
128
+ "dux-dynamic-input": o("components.formEditor.toolbarDescriptions.dynamicInput"),
129
+ "dynamic-tags": o("components.formEditor.toolbarDescriptions.dynamicTags"),
130
+ "dux-image-upload": o("components.formEditor.toolbarDescriptions.imageUpload"),
131
+ "dux-file-upload": o("components.formEditor.toolbarDescriptions.fileUpload"),
132
+ "dux-select": o("components.formEditor.toolbarDescriptions.select"),
133
+ "dux-cascader": o("components.formEditor.toolbarDescriptions.cascader"),
134
+ "tree-select": o("components.formEditor.toolbarDescriptions.treeSelect"),
135
+ region: o("components.formEditor.toolbarDescriptions.region"),
136
+ "select-async": o("components.formEditor.toolbarDescriptions.selectAsync"),
137
+ "dux-cascader-async": o("components.formEditor.toolbarDescriptions.cascaderAsync"),
138
+ "tree-select-async": o("components.formEditor.toolbarDescriptions.treeSelectAsync"),
139
+ "transfer-async": o("components.formEditor.toolbarDescriptions.transferAsync"),
140
+ "mention-async": o("components.formEditor.toolbarDescriptions.mentionAsync")
141
+ };
142
+ return r.map((t) => ({
143
+ ...t,
144
+ description: t.description || i[t.name] || ""
145
+ }));
146
+ });
147
+ return () => m(a, E(e, {
148
+ groups: l.value,
149
+ components: u.value,
120
150
  settingPage: {
121
- component: (r) => t(v, r, null),
151
+ component: (r) => m(D, r, null),
122
152
  default: {
123
153
  labelPlacement: "left"
124
154
  }
125
155
  },
126
156
  previewWrapper: (r, i) => {
127
- const e = u(() => i?.value?.value?.config);
128
- return t(g, {
129
- labelPlacement: e.value?.labelPlacement || "left",
157
+ const t = c(() => i?.value?.value?.config);
158
+ return m(y, {
159
+ labelPlacement: t.value?.labelPlacement || "left",
130
160
  class: "h-full"
131
- }, p(r) ? r : {
161
+ }, n(r) ? r : {
132
162
  default: () => [r]
133
163
  });
134
164
  },
135
165
  actionRender: (r) => {
136
- let i, e, n;
137
- return t("div", {
166
+ let i, t, p;
167
+ return m("div", {
138
168
  class: "flex flex-col gap-2"
139
- }, [t(a, {
169
+ }, [m(s, {
140
170
  type: "primary",
141
171
  secondary: !0,
142
172
  block: !0,
@@ -149,9 +179,9 @@ const Ir = /* @__PURE__ */ f({
149
179
  }
150
180
  });
151
181
  }
152
- }, p(i = o("components.formEditor.main.actions.jsonOutput")) ? i : {
182
+ }, n(i = o("components.formEditor.main.actions.jsonOutput")) ? i : {
153
183
  default: () => [i]
154
- }), t(a, {
184
+ }), m(s, {
155
185
  type: "info",
156
186
  secondary: !0,
157
187
  block: !0,
@@ -165,21 +195,21 @@ const Ir = /* @__PURE__ */ f({
165
195
  }
166
196
  });
167
197
  }
168
- }, p(e = o("common.preview")) ? e : {
169
- default: () => [e]
170
- }), t(a, {
198
+ }, n(t = o("common.preview")) ? t : {
199
+ default: () => [t]
200
+ }), m(s, {
171
201
  type: "primary",
172
202
  block: !0,
173
203
  onClick: () => {
174
- m.onSave?.(r?.value?.value || {});
204
+ e.onSave?.(r?.value?.value || {});
175
205
  }
176
- }, p(n = o("components.formEditor.main.actions.save")) ? n : {
177
- default: () => [n]
206
+ }, n(p = o("components.formEditor.main.actions.save")) ? p : {
207
+ default: () => [p]
178
208
  })]);
179
209
  }
180
210
  }), null);
181
211
  }
182
212
  });
183
213
  export {
184
- Ir as DuxFormEditor
214
+ Pr as DuxFormEditor
185
215
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent as U, ref as c, computed as s, watch as b, nextTick as w, createVNode as o, Fragment as Z, createTextVNode as j, isVNode as O } from "vue";
1
+ import { defineComponent as U, ref as c, computed as s, watch as b, nextTick as j, createVNode as o, Fragment as O, createTextVNode as w, isVNode as Z } from "vue";
2
2
  import { useI18n as B, useUpload as T } from "@duxweb/dvha-core";
3
3
  import { useVModel as X, useDropZone as L } from "@vueuse/core";
4
4
  import E from "mime";
@@ -66,7 +66,7 @@ import "dayjs";
66
66
  import "@tanstack/vue-query";
67
67
  import "pinia";
68
68
  function P(t) {
69
- return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !O(t);
69
+ return typeof t == "function" || Object.prototype.toString.call(t) === "[object Object]" && !Z(t);
70
70
  }
71
71
  const d = {
72
72
  "image/*": "JPG, PNG, GIF, BMP, WEBP",
@@ -78,7 +78,7 @@ const d = {
78
78
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document": "DOCX",
79
79
  "application/vnd.ms-excel": "XLS",
80
80
  "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": "XLSX"
81
- }, r = {
81
+ }, i = {
82
82
  container: "flex flex-col gap-2",
83
83
  dropZone: {
84
84
  base: "flex items-center justify-center p-6 rounded bg-muted border border-dashed transition-all cursor-pointer group",
@@ -124,8 +124,8 @@ const d = {
124
124
  multiple: Boolean,
125
125
  manager: Boolean,
126
126
  accept: String,
127
- value: [String, Array],
128
- defaultValue: [String, Array],
127
+ value: [String, Array, Object],
128
+ defaultValue: [String, Array, Object],
129
129
  onUpdateValue: Function,
130
130
  method: String
131
131
  },
@@ -138,11 +138,11 @@ const d = {
138
138
  defaultValue: t.defaultValue
139
139
  }), C = I(), {
140
140
  t: a
141
- } = B(), f = c(), m = s(() => t.maxSize || 5), N = H(), {
141
+ } = B(), f = c(), m = s(() => t.maxSize || 5), V = H(), {
142
142
  uploadPath: g,
143
- managePath: V,
143
+ managePath: N,
144
144
  driver: k,
145
- method: v
145
+ method: h
146
146
  } = J({
147
147
  driver: t?.driver,
148
148
  signPath: t?.signPath,
@@ -159,29 +159,29 @@ const d = {
159
159
  accept: t.accept,
160
160
  onError: (e) => C.error(e.message || a("components.upload.error")),
161
161
  driver: k.value,
162
- method: v.value
162
+ method: h.value
163
163
  }), {
164
- isOverDropZone: h
164
+ isOverDropZone: v
165
165
  } = L(f, {
166
166
  onDrop: (e) => {
167
167
  e && e.length > 0 && n.addFiles(Array.from(e), "file");
168
168
  }
169
169
  }), p = c(!1);
170
170
  b(n.dataFiles, (e) => {
171
- const i = t.multiple ? e : e[0];
172
- p.value = !0, u.value = i, t.onUpdateValue?.(i), w(() => {
171
+ const r = t.multiple ? e : e[0];
172
+ p.value = !0, u.value = r, t.onUpdateValue?.(r), j(() => {
173
173
  p.value = !1;
174
174
  });
175
175
  });
176
176
  const x = s(() => t.accept ? t.accept.split(",").map((e) => {
177
- const i = e.trim();
178
- if (d[i]) return d[i];
179
- if (i.includes("*")) {
180
- const A = i.split("/")[0];
181
- return d[i] || A.toUpperCase();
177
+ const r = e.trim();
178
+ if (d[r]) return d[r];
179
+ if (r.includes("*")) {
180
+ const M = r.split("/")[0];
181
+ return d[r] || M.toUpperCase();
182
182
  }
183
- const l = E.getExtension(i);
184
- return l ? l.toUpperCase() : i;
183
+ const l = E.getExtension(r);
184
+ return l ? l.toUpperCase() : r;
185
185
  }).filter(Boolean).join(", ") : ""), z = s(() => ({
186
186
  pending: o("div", {
187
187
  class: "text-info"
@@ -195,60 +195,60 @@ const d = {
195
195
  error: o("div", {
196
196
  class: "text-error"
197
197
  }, [a("components.upload.status.error")])
198
- })), D = s(() => [r.dropZone.base, h.value ? r.dropZone.active : r.dropZone.hover]), M = s(() => [n.uploadFiles.value.length === 0 && "border-b border-muted"]), y = c(!1);
198
+ })), A = s(() => [i.dropZone.base, v.value ? i.dropZone.active : i.dropZone.hover]), D = s(() => [n.uploadFiles.value.length === 0 && "border-b border-muted"]), y = c(!1);
199
199
  return b(u, (e) => {
200
- if (p.value || !e || !e?.length || y.value)
200
+ if (p.value || y.value || !(Array.isArray(e) ? e.length > 0 : !!e))
201
201
  return;
202
202
  y.value = !0;
203
- const i = Array.isArray(e) ? e : [e];
204
- n.addDataFiles(i);
203
+ const l = Array.isArray(e) ? e : [e];
204
+ n.addDataFiles(l);
205
205
  }, {
206
206
  immediate: !0
207
207
  }), () => o("div", {
208
- class: r.container
208
+ class: i.container
209
209
  }, [o("div", {
210
210
  ref: f,
211
- class: D.value,
211
+ class: A.value,
212
212
  onClick: () => n.open()
213
213
  }, [o("div", {
214
- class: r.content
214
+ class: i.content
215
215
  }, [o("div", {
216
- class: r.icon.wrapper,
216
+ class: i.icon.wrapper,
217
217
  onClick: (e) => {
218
- t.manager && (e.stopPropagation(), N.show({
218
+ t.manager && (e.stopPropagation(), V.show({
219
219
  title: a("components.upload.title"),
220
220
  width: 800,
221
221
  component: () => import("./manager.js"),
222
222
  componentProps: {
223
- path: V.value,
223
+ path: N.value,
224
224
  multiple: t.multiple,
225
225
  uploadParams: {
226
226
  path: g.value,
227
227
  accept: t.accept,
228
228
  maxNum: t.maxNum,
229
229
  maxSize: m.value,
230
- method: v.value
230
+ method: h.value
231
231
  }
232
232
  }
233
- }).then((i) => {
234
- n.addDataFiles(i);
233
+ }).then((r) => {
234
+ n.addDataFiles(r);
235
235
  }));
236
236
  }
237
237
  }, [o("div", {
238
- class: r.icon.icon
238
+ class: i.icon.icon
239
239
  }, null)]), o("div", {
240
- class: r.text.title
240
+ class: i.text.title
241
241
  }, [a("components.upload.desc")]), o("div", {
242
- class: r.text.desc
243
- }, [h.value ? o("span", {
244
- class: r.text.highlight
245
- }, [a("components.upload.dropHere")]) : o(Z, null, [x.value ? a("components.upload.supportFormats", {
242
+ class: i.text.desc
243
+ }, [v.value ? o("span", {
244
+ class: i.text.highlight
245
+ }, [a("components.upload.dropHere")]) : o(O, null, [x.value ? a("components.upload.supportFormats", {
246
246
  formats: x.value
247
- }) : a("components.upload.allFormats"), j(","), " ", a("components.upload.maxSize", {
247
+ }) : a("components.upload.allFormats"), w(","), " ", a("components.upload.maxSize", {
248
248
  size: m.value
249
249
  })])])])]), o(W, {
250
250
  bordered: !1,
251
- class: M.value,
251
+ class: D.value,
252
252
  columns: [{
253
253
  key: "filename",
254
254
  title: a("components.upload.file.name"),
@@ -284,17 +284,17 @@ const d = {
284
284
  title: a("components.upload.actions"),
285
285
  width: 120,
286
286
  render: (e) => {
287
- let i, l;
287
+ let r, l;
288
288
  return o("div", {
289
- class: r.table.actions
289
+ class: i.table.actions
290
290
  }, [o(F, {
291
291
  type: "warning",
292
292
  size: "small",
293
293
  text: !0,
294
294
  disabled: ["success", "error", "cancelled"].includes(e.status),
295
295
  onClick: () => n.cancelFiles([e.id])
296
- }, P(i = a("components.upload.cancel")) ? i : {
297
- default: () => [i]
296
+ }, P(r = a("components.upload.cancel")) ? r : {
297
+ default: () => [r]
298
298
  }), o(F, {
299
299
  type: "error",
300
300
  size: "small",
@@ -308,7 +308,7 @@ const d = {
308
308
  data: n.uploadFiles.value
309
309
  }, {
310
310
  empty: () => o("div", {
311
- class: r.table.empty
311
+ class: i.table.empty
312
312
  }, [a("components.upload.empty")])
313
313
  })]);
314
314
  }
@@ -1,15 +1,15 @@
1
- const e = { search: "Search", keyword: "Keyword", empty: "No data", menu: "Menu", theme: "Theme", dark: "Dark", light: "Light", back: "Back", loading: "Loading...", success: "Success", error: "Error", unknownError: "Unknown error", preview: "Preview" }, a = /* @__PURE__ */ JSON.parse('{"tab":{"lock":"Lock","closeOther":"Close Other","closeLeft":"Close Left","closeRight":"Close Right"},"dialog":{"confirm":{"title":"Confirm","content":"Are you sure you want to confirm?"},"cancel":{"title":"Cancel","content":"Are you sure you want to cancel?"},"success":{"title":"Success","content":"Your operation has been successful"},"error":{"title":"Error","content":"Your operation has been failed"},"prompt":{"title":"Prompt"}},"button":{"confirm":"Confirm","cancel":"Cancel","submit":"Submit","reset":"Reset","delete":"Delete","search":"Search","advanced":"Advanced","export":"Export","import":"Import","autoRefresh":"Auto Refresh","filter":"Filter","refresh":"Refresh","select":"Select","create":"Create","download":"Download","rename":"Rename","preview":"Preview"},"dateTag":{"recentMinutes":"Last {num} mins","recentHours":"Last {num} hrs","recentDays":"Last {num} days","recentThreeDays":"Last 3 days","recentSevenDays":"Last 7 days","recentThirtyDays":"Last 30 days"},"textImageEditor":{"hint":"Click to add an image or text. You can also drag to reorder.","empty":"Live preview","addImage":"Add image","addText":"Add text","preview":"Preview","previewTitle":"Preview","textLabel":"Text","editText":"Edit text"},"form":{"edit":"Edit","create":"Create"},"list":{"selectAll":"Select All","columnSetting":"Column Setting","selectedItems":"Selected Items: {num}","total":"Total: {total}","batchTitle":"Batch Operation Confirmation","batchContent":"Are you sure you want to execute this batch operation?"},"editor":{"placeholder":"Please enter content"},"cascaderPanel":{"level":"Level {num}","selectAll":"Select All","clearAll":"Clear All"},"upload":{"title":"File Manager","fileManager":"File Manager","uploadFile":"Upload File","cancel":"Cancel","delete":"Delete","error":"Upload failed","empty":"No files","desc":"Click or drag files to this area","dropHere":"Drop files here","allFormats":"Support any format files","supportFormats":"Support {formats} format files","maxSize":"Max file size: {size}MB","success":"Upload success","failed":"Upload failed","status":{"pending":"Pending","uploading":"Uploading","success":"Success","cancelled":"Cancelled","error":"Error"},"file":{"name":"File Name","size":"Size","type":"Type","status":"Status"},"actions":"Actions","selectUpload":{"clickOrDrag":"Click to select files or drag here","selectedFiles":"Selected {count} files","multipleSupport":"Support multiple file selection","defaultDesc":"Support uploading specified file types","acceptDesc":"Only support uploading {accept} format files","maxFiles":"Max {max} files"}},"uploadManage":{"title":"File Manager","all":"All","image":"Images","media":"Media","docs":"Documents","upload":"Upload","empty":"No files","emptyDesc":"No more files, please upload files","back":"Back to parent","parentLevel":"Parent Level","namePlaceholder":"Please enter name","createError":"Create failed","editError":"Edit failed","delError":"Delete failed","delTitle":"Confirm Delete","delDesc":"Are you sure you want to delete the selected files? This action cannot be undone."},"crop":{"title":"Crop","select":"Select","confirm":"Confirm"},"stats":{"realTimeData":"Real-time Data"},"data":{"selectTitle":"Please select data"},"menu":{"language":"Language","chinese":"中文","english":"English","color":"Color","primaryColor":"Primary Color","neutralColor":"Neutral Color","theme":"Theme","followSystem":"Follow System","lightMode":"Light","darkMode":"Dark","logout":"Logout","notice":"Notice","noNotice":"No notices","markAllRead":"Mark all read","viewAllNotices":"View all notices","themeToggle":"Theme Toggle"},"iconPicker":{"title":"Icon Picker"},"designEditor":{"layout":"Layout","all":"All","grid":{"label":"Grid","title":"Grid Settings","columns":"Columns","spacing":"Spacing","columnsPlaceholder":"Enter columns","spacingPlaceholder":"Enter spacing"}},"spec":{"nameLabel":"Spec Name","namePlaceholder":"e.g. Color, Weight","addImage":"Add Spec Image","valueLabel":"Spec Values","valuePlaceholder":"e.g. Red","addValue":"Add Spec Value","addSpec":"Add Spec","imageHint":"Upload an image for each spec value","status":"Status"},"flowEditor":{"properties":"Properties","nodeInfo":"Node Info","nodeConfig":"Node Config","label":"Label","description":"Description","descriptionPlaceholder":"Please enter node description","selectNodeOrEdge":"Select a node or edge to configure","edgeSettings":"Edge Settings","edgeDescription":"Configure connection properties between nodes","editJSON":"Edit JSON","saveFlow":"Save Flow","clearFlow":"Clear Flow","flowCleared":"Flow cleared","flowSaved":"Flow data saved","editFlowJSON":"Edit Flow JSON","deleteEdge":"Delete Edge","edgeDeleted":"Edge deleted","from":"From","to":"To","connectionType":"Connection Type","pass":"Pass","reject":"Reject","categories":{"start":"Start","process":"Process","condition":"Condition","end":"End"},"nodes":{"start":{"label":"Start","description":"Starting node of the process"},"end":{"label":"End","description":"Ending node of the process"}},"fieldTypes":{"text":"Text","number":"Number","boolean":"Boolean","date":"Date","array":"Array","object":"Object"},"toolbar":{"releaseToAdd":"Release to add node"},"setting":{"operations":"Operations","node":"Node","connection":"Connection"},"nodeCard":{"delete":"Delete","copy":"Copy"},"jsonEditor":{"copiedToClipboard":"Copied to clipboard","dataApplied":"Data applied to flow","jsonFormatError":"JSON format error"},"processNode":{"label":"Process","description":"Generic process node"},"startNode":{"label":"Start","description":"Starting node of the process","configTitle":"Start Node Configuration"},"nodeId":"Node ID","nodeIdPlaceholder":"e.g. ai_task","nodeIdExists":"Node ID already exists","fieldConfig":{"modePlaceholder":"Select input mode","modeText":"Text mode","modeJson":"JSON builder","modeCode":"Code editor","fieldNamePlaceholder":"Field name","fieldTypePlaceholder":"Field type","labelPlaceholder":"Display label","textPlaceholder":"Supports {{input.xxx}} / {{node.output}}","notePlaceholder":"Notes (optional)","addField":"Add Field"}},"schemaEditor":{"treeTitle":"Schema tree","addRoot":"Add root","addRootTitle":"Create root node","addChild":"Add child","addChildTitle":"Create child node","duplicate":"Duplicate","duplicateTitle":"Duplicate node","editNodeTitle":"Edit node","editNode":"Edit","editModalTitle":"Schema node","remove":"Delete","empty":"No nodes yet","addFirst":"Create node","newNode":"New node","childNode":"Child node","copySuffix":"Copy","untitled":"Untitled","nodeName":"Node name","nodeNamePlaceholder":"e.g. user","nodeType":"Node type","nodeTypePlaceholder":"Select node type","description":"Description","descriptionPlaceholder":"Describe the purpose of this node","params":"Custom parameters","paramsEmpty":"No parameters configured","noDescription":"No description yet","selectHint":"Select a node on the left to edit"},"formEditor":{"config":"Component Config","options":"Option Config","data":"Data","common":{"componentConfig":"Component Config","optionConfig":"Option Config","optionData":"Option Data","dataConfig":"Data Config","dataEdit":"Data Edit","label":"Label","placeholder":"Placeholder","disabled":"Disabled","clearable":"Clearable","multiple":"Multiple","defaultValue":"Default Value","readonly":"Readonly","showCount":"Show Count","prefix":"Prefix","suffix":"Suffix","status":"Status","minLength":"Min Length","maxLength":"Max Length","minValue":"Min Value","maxValue":"Max Value","minCount":"Min Count","maxCount":"Max Count","optionLabel":"Option Label","optionValue":"Option Value","labelField":"Label Field","valueField":"Value Field","dataInterface":"Data Interface","cascade":"Cascade","showPath":"Show Path","uploadUrl":"Upload URL","showAlpha":"Show Alpha","timeFormat":"Time Format","hour12":"12 Hours","dateType":"Date Type","inputType":"Input Type","formDirection":"Form Direction","leftAlign":"Left Align","topAlign":"Top Align","settingAlign":"Setting Layout","pageAlign":"Page Layout","name":"Name","desc":"Description"},"setting":{"title":"Form Settings"},"validation":"Validation Rules","componentConfig":"Component Config","input":{"label":"Text","types":{"text":"Text","textarea":"Textarea","password":"Password"}},"inputNumber":{"label":"Number"},"select":{"label":"Select","configDesc":"Config options"},"radio":{"label":"Radio","configDesc":"Config options"},"checkbox":{"label":"Checkbox","configDesc":"Config options"},"switch":{"label":"Switch"},"date":{"label":"Date","placeholder":"Select date","dateType":"Date Type","date":"Date","daterange":"Date Range","datetime":"DateTime","datetimerange":"DateTime Range","month":"Month","monthrange":"Month Range","year":"Year","yearrange":"Year Range","quarter":"Quarter","quarterrange":"Quarter Range","week":"Week"},"time":{"label":"Time","placeholder":"Select time","timeFormat":"Format","use12Hours":"12 Hours"},"color":{"label":"Color","showAlpha":"Show Alpha"},"cascader":{"label":"Cascader","desc":"Cascader options data in JSON array format","configDesc":"Config options","optionDesc":"JSON array format","optionsDescription":"Config cascader options","cascade":"Cascade","showPath":"Show Path"},"cascaderAsync":{"label":"Cascader","dataApi":"Data API","apiPlaceholder":"Enter API URL","cascade":"Cascade","showPath":"Show Path"},"dynamicInput":{"label":"Dynamic"},"editor":{"label":"Editor","placeholder":"Enter content","uploadUrlDesc":"Editor image upload URL"},"aiEditor":{"label":"Editor","uploadUrl":"Upload URL","uploadUrlFeedback":"Image upload URL"},"sider":{"name":"Slider","step":"Step","min":"Min","max":"Max"},"dynamicTags":{"name":"Tags","max":"Max Count"},"mentionAsync":{"name":"Mention","clearable":"Clearable","path":"Data API","labelField":"Label Field","valueField":"Value Field"},"region":{"name":"Region","Path":"Data API","labelField":"Label Field","valueField":"Value Field"},"selectAsync":{"name":"Select","pagination":"Pagination","path":"Data API","labelField":"Label Field","valueField":"Value Field","imageField":"Image Field","descField":"Desc Field"},"transferAsync":{"name":"Transfer"},"treeSelect":{"name":"Tree"},"treeSelectAsync":{"name":"Tree Select","path":"Data API","labelField":"Label Field","keyField":"Key Field"},"tree":{"disabled":"Disabled"},"groups":{"form":"Form","select":"Selector","async":"Async"},"imageUpload":{"label":"Image Upload","maxSize":"Max File Size (MB)","maxSizePlaceholder":"Enter max file size","maxNumPlaceholder":"Enter max file count","manager":"File Manager"},"fileUpload":{"label":"File Upload","accept":"Accept File Types","acceptPlaceholder":"Enter accepted file types, e.g.: image/*,video/*","maxSize":"Max File Size (MB)","maxSizePlaceholder":"Enter max file size","maxNumPlaceholder":"Enter max file count","manager":"File Manager"},"main":{"label":"Main Content","categories":{"form":"Form","select":"Selector","async":"Async"},"actions":{"jsonOutput":"Json Output","save":"Save"}}}}'), t = { table: { exportSuccess: "Export data successfully", exportProgress: "Exporting data, please wait...", exportFailed: "Export data failed", exportSuccessContent: "Successfully exported {count} records", exportProgressContent: "Page {page} data", exportFailedContent: "Export data failed: {error}", importSuccess: "Import data successfully", importProgress: "Importing data, please wait...", importFailed: "Import data failed", importSuccessContent: "Successfully imported {count} records", importProgressContent: "{processed} / {total} records", importFailedContent: "Import data failed: {error}", saveSuccess: "Save successfully", copySuccess: "Copy successfully", copyFailed: "Copy failed" }, download: { failed: "Download failed" } }, o = { 400: { title: "400", desc: "Request error" }, 401: { title: "401", desc: "You do not have permission to access this page" }, 403: { title: "403", desc: "You do not have permission to access this page" }, 404: { title: "404", desc: "Page not found" }, 500: { title: "500", desc: "Server error" }, empty: { title: "No data", desc: "No more data, please try again later" }, loading: { title: "Loading", desc: "Data is loading, please try again later" }, exception: { title: "System Exception", desc: "A system exception occurred. Please check the console for details" }, login: { success: "Login success", error: "Login failed, please check your username and password", placeholder: { username: "Please enter username", password: "Please enter password" }, buttons: { login: "Login" } } }, l = { "zh-CN": "Chinese", "en-US": "English", "ja-JP": "Japanese", "ko-KR": "Korean", "ru-RU": "Russian" }, i = {
1
+ const e = { search: "Search", keyword: "Keyword", empty: "No data", menu: "Menu", theme: "Theme", dark: "Dark", light: "Light", back: "Back", loading: "Loading...", success: "Success", error: "Error", unknownError: "Unknown error", preview: "Preview" }, t = /* @__PURE__ */ JSON.parse('{"tab":{"lock":"Lock","closeOther":"Close Other","closeLeft":"Close Left","closeRight":"Close Right"},"dialog":{"confirm":{"title":"Confirm","content":"Are you sure you want to confirm?"},"cancel":{"title":"Cancel","content":"Are you sure you want to cancel?"},"success":{"title":"Success","content":"Your operation has been successful"},"error":{"title":"Error","content":"Your operation has been failed"},"prompt":{"title":"Prompt"}},"button":{"confirm":"Confirm","cancel":"Cancel","submit":"Submit","reset":"Reset","delete":"Delete","search":"Search","advanced":"Advanced","export":"Export","import":"Import","autoRefresh":"Auto Refresh","filter":"Filter","refresh":"Refresh","select":"Select","create":"Create","download":"Download","rename":"Rename","preview":"Preview"},"dateTag":{"recentMinutes":"Last {num} mins","recentHours":"Last {num} hrs","recentDays":"Last {num} days","recentThreeDays":"Last 3 days","recentSevenDays":"Last 7 days","recentThirtyDays":"Last 30 days"},"textImageEditor":{"hint":"Click to add an image or text. You can also drag to reorder.","empty":"Live preview","addImage":"Add image","addText":"Add text","preview":"Preview","previewTitle":"Preview","textLabel":"Text","editText":"Edit text"},"form":{"edit":"Edit","create":"Create"},"list":{"selectAll":"Select All","columnSetting":"Column Setting","selectedItems":"Selected Items: {num}","total":"Total: {total}","batchTitle":"Batch Operation Confirmation","batchContent":"Are you sure you want to execute this batch operation?"},"editor":{"placeholder":"Please enter content"},"cascaderPanel":{"level":"Level {num}","selectAll":"Select All","clearAll":"Clear All"},"upload":{"title":"File Manager","fileManager":"File Manager","uploadFile":"Upload File","cancel":"Cancel","delete":"Delete","error":"Upload failed","empty":"No files","desc":"Click or drag files to this area","dropHere":"Drop files here","allFormats":"Support any format files","supportFormats":"Support {formats} format files","maxSize":"Max file size: {size}MB","success":"Upload success","failed":"Upload failed","status":{"pending":"Pending","uploading":"Uploading","success":"Success","cancelled":"Cancelled","error":"Error"},"file":{"name":"File Name","size":"Size","type":"Type","status":"Status"},"actions":"Actions","selectUpload":{"clickOrDrag":"Click to select files or drag here","selectedFiles":"Selected {count} files","multipleSupport":"Support multiple file selection","defaultDesc":"Support uploading specified file types","acceptDesc":"Only support uploading {accept} format files","maxFiles":"Max {max} files"}},"uploadManage":{"title":"File Manager","all":"All","image":"Images","media":"Media","docs":"Documents","upload":"Upload","empty":"No files","emptyDesc":"No more files, please upload files","back":"Back to parent","parentLevel":"Parent Level","namePlaceholder":"Please enter name","createError":"Create failed","editError":"Edit failed","delError":"Delete failed","delTitle":"Confirm Delete","delDesc":"Are you sure you want to delete the selected files? This action cannot be undone."},"crop":{"title":"Crop","select":"Select","confirm":"Confirm"},"stats":{"realTimeData":"Real-time Data"},"data":{"selectTitle":"Please select data"},"menu":{"language":"Language","chinese":"中文","english":"English","color":"Color","primaryColor":"Primary Color","neutralColor":"Neutral Color","theme":"Theme","followSystem":"Follow System","lightMode":"Light","darkMode":"Dark","logout":"Logout","notice":"Notice","noNotice":"No notices","markAllRead":"Mark all read","viewAllNotices":"View all notices","themeToggle":"Theme Toggle"},"iconPicker":{"title":"Icon Picker"},"designEditor":{"layout":"Layout","all":"All","properties":"Properties","component":"Component","componentSettings":"Configure the selected component options","selectComponent":"Select a component on the left to configure it here","grid":{"label":"Grid","description":"Arrange form fields into multi-column sections","title":"Grid Settings","columns":"Columns","spacing":"Spacing","columnsPlaceholder":"Enter columns","spacingPlaceholder":"Enter spacing"}},"spec":{"nameLabel":"Spec Name","namePlaceholder":"e.g. Color, Weight","addImage":"Add Spec Image","valueLabel":"Spec Values","valuePlaceholder":"e.g. Red","addValue":"Add Spec Value","addSpec":"Add Spec","imageHint":"Upload an image for each spec value","status":"Status"},"flowEditor":{"properties":"Properties","nodeInfo":"Node Info","nodeConfig":"Node Config","label":"Label","description":"Description","descriptionPlaceholder":"Please enter node description","selectNodeOrEdge":"Select a node or edge to configure","edgeSettings":"Edge Settings","edgeDescription":"Configure connection properties between nodes","editJSON":"Edit JSON","saveFlow":"Save Flow","clearFlow":"Clear Flow","flowCleared":"Flow cleared","flowSaved":"Flow data saved","editFlowJSON":"Edit Flow JSON","deleteEdge":"Delete Edge","edgeDeleted":"Edge deleted","from":"From","to":"To","connectionType":"Connection Type","pass":"Pass","reject":"Reject","categories":{"start":"Start","process":"Process","condition":"Condition","end":"End"},"nodes":{"start":{"label":"Start","description":"Starting node of the process"},"end":{"label":"End","description":"Ending node of the process"}},"fieldTypes":{"text":"Text","number":"Number","boolean":"Boolean","date":"Date","array":"Array","object":"Object"},"toolbar":{"releaseToAdd":"Release to add node"},"setting":{"operations":"Operations","node":"Node","connection":"Connection"},"nodeCard":{"delete":"Delete","copy":"Copy"},"jsonEditor":{"copiedToClipboard":"Copied to clipboard","dataApplied":"Data applied to flow","jsonFormatError":"JSON format error"},"processNode":{"label":"Process","description":"Generic process node"},"startNode":{"label":"Start","description":"Starting node of the process","configTitle":"Start Node Configuration"},"nodeId":"Node ID","nodeIdPlaceholder":"e.g. ai_task","nodeIdExists":"Node ID already exists","fieldConfig":{"modePlaceholder":"Select input mode","modeText":"Text mode","modeJson":"JSON builder","modeCode":"Code editor","fieldNamePlaceholder":"Field name","fieldTypePlaceholder":"Field type","labelPlaceholder":"Display label","textPlaceholder":"Supports {{input.xxx}} / {{node.output}}","notePlaceholder":"Notes (optional)","addField":"Add Field"}},"schemaEditor":{"treeTitle":"Schema tree","addRoot":"Add root","addRootTitle":"Create root node","addChild":"Add child","addChildTitle":"Create child node","duplicate":"Duplicate","duplicateTitle":"Duplicate node","editNodeTitle":"Edit node","editNode":"Edit","editModalTitle":"Schema node","remove":"Delete","empty":"No nodes yet","addFirst":"Create node","newNode":"New node","childNode":"Child node","copySuffix":"Copy","untitled":"Untitled","nodeName":"Node name","nodeNamePlaceholder":"e.g. user","nodeType":"Node type","nodeTypePlaceholder":"Select node type","description":"Description","descriptionPlaceholder":"Describe the purpose of this node","params":"Custom parameters","paramsEmpty":"No parameters configured","noDescription":"No description yet","selectHint":"Select a node on the left to edit"},"formEditor":{"config":"Component Config","options":"Option Config","data":"Data","common":{"componentConfig":"Component Config","optionConfig":"Option Config","optionData":"Option Data","dataConfig":"Data Config","dataEdit":"Data Edit","label":"Label","placeholder":"Placeholder","disabled":"Disabled","clearable":"Clearable","multiple":"Multiple","defaultValue":"Default Value","readonly":"Readonly","showCount":"Show Count","prefix":"Prefix","suffix":"Suffix","status":"Status","minLength":"Min Length","maxLength":"Max Length","minValue":"Min Value","maxValue":"Max Value","minCount":"Min Count","maxCount":"Max Count","optionLabel":"Option Label","optionValue":"Option Value","labelField":"Label Field","valueField":"Value Field","dataInterface":"Data Interface","cascade":"Cascade","showPath":"Show Path","uploadUrl":"Upload URL","showAlpha":"Show Alpha","timeFormat":"Time Format","hour12":"12 Hours","dateType":"Date Type","inputType":"Input Type","formDirection":"Form Direction","leftAlign":"Left Align","topAlign":"Top Align","settingAlign":"Setting Layout","pageAlign":"Page Layout","name":"Name","desc":"Description"},"setting":{"title":"Form Settings"},"validation":"Validation Rules","componentConfig":"Component Config","input":{"label":"Text","types":{"text":"Text","textarea":"Textarea","password":"Password"}},"inputNumber":{"label":"Number"},"select":{"label":"Select","configDesc":"Config options"},"radio":{"label":"Radio","configDesc":"Config options"},"checkbox":{"label":"Checkbox","configDesc":"Config options"},"switch":{"label":"Switch"},"date":{"label":"Date","placeholder":"Select date","dateType":"Date Type","date":"Date","daterange":"Date Range","datetime":"DateTime","datetimerange":"DateTime Range","month":"Month","monthrange":"Month Range","year":"Year","yearrange":"Year Range","quarter":"Quarter","quarterrange":"Quarter Range","week":"Week"},"time":{"label":"Time","placeholder":"Select time","timeFormat":"Format","use12Hours":"12 Hours"},"color":{"label":"Color","showAlpha":"Show Alpha"},"cascader":{"label":"Cascader","desc":"Cascader options data in JSON array format","configDesc":"Config options","optionDesc":"JSON array format","optionsDescription":"Config cascader options","cascade":"Cascade","showPath":"Show Path"},"cascaderAsync":{"label":"Cascader","dataApi":"Data API","apiPlaceholder":"Enter API URL","cascade":"Cascade","showPath":"Show Path"},"dynamicInput":{"label":"Dynamic"},"editor":{"label":"Editor","placeholder":"Enter content","uploadUrlDesc":"Editor image upload URL"},"aiEditor":{"label":"Editor","uploadUrl":"Upload URL","uploadUrlFeedback":"Image upload URL"},"sider":{"name":"Slider","step":"Step","min":"Min","max":"Max"},"dynamicTags":{"name":"Tags","max":"Max Count"},"mentionAsync":{"name":"Mention","clearable":"Clearable","path":"Data API","labelField":"Label Field","valueField":"Value Field"},"region":{"name":"Region","Path":"Data API","labelField":"Label Field","valueField":"Value Field"},"selectAsync":{"name":"Select","pagination":"Pagination","path":"Data API","labelField":"Label Field","valueField":"Value Field","imageField":"Image Field","descField":"Desc Field"},"transferAsync":{"name":"Transfer"},"treeSelect":{"name":"Tree"},"treeSelectAsync":{"name":"Tree Select","path":"Data API","labelField":"Label Field","keyField":"Key Field"},"tree":{"disabled":"Disabled"},"groups":{"form":"Form","select":"Selector","async":"Async"},"toolbarDescriptions":{"input":"Enter short or multi-line text","inputNumber":"Input numbers with range limits","aiEditor":"Rich text content editor","slider":"Pick values with a slider","date":"Select date or date range","time":"Select time values","color":"Pick color values","checkbox":"Choose multiple options","radio":"Choose a single option","switch":"Toggle boolean state","dynamicInput":"Add dynamic input rows","dynamicTags":"Enter dynamic tags","imageUpload":"Upload image files","fileUpload":"Upload any file type","select":"Dropdown for static options","cascader":"Cascading multi-level selector","treeSelect":"Select from tree options","region":"Select province/city/district","selectAsync":"Async API dropdown selector","cascaderAsync":"Async cascading options","treeSelectAsync":"Async tree options","transferAsync":"Async transfer selector","mentionAsync":"Async mention selector"},"imageUpload":{"label":"Image Upload","maxSize":"Max File Size (MB)","maxSizePlaceholder":"Enter max file size","maxNumPlaceholder":"Enter max file count","manager":"File Manager"},"fileUpload":{"label":"File Upload","accept":"Accept File Types","acceptPlaceholder":"Enter accepted file types, e.g.: image/*,video/*","maxSize":"Max File Size (MB)","maxSizePlaceholder":"Enter max file size","maxNumPlaceholder":"Enter max file count","manager":"File Manager"},"main":{"label":"Main Content","categories":{"form":"Form","select":"Selector","async":"Async"},"actions":{"jsonOutput":"Json Output","save":"Save"}}}}'), a = { table: { exportSuccess: "Export data successfully", exportProgress: "Exporting data, please wait...", exportFailed: "Export data failed", exportSuccessContent: "Successfully exported {count} records", exportProgressContent: "Page {page} data", exportFailedContent: "Export data failed: {error}", importSuccess: "Import data successfully", importProgress: "Importing data, please wait...", importFailed: "Import data failed", importSuccessContent: "Successfully imported {count} records", importProgressContent: "{processed} / {total} records", importFailedContent: "Import data failed: {error}", saveSuccess: "Save successfully", copySuccess: "Copy successfully", copyFailed: "Copy failed" }, download: { failed: "Download failed" } }, o = { 400: { title: "400", desc: "Request error" }, 401: { title: "401", desc: "You do not have permission to access this page" }, 403: { title: "403", desc: "You do not have permission to access this page" }, 404: { title: "404", desc: "Page not found" }, 500: { title: "500", desc: "Server error" }, empty: { title: "No data", desc: "No more data, please try again later" }, loading: { title: "Loading", desc: "Data is loading, please try again later" }, exception: { title: "System Exception", desc: "A system exception occurred. Please check the console for details" }, login: { success: "Login success", error: "Login failed, please check your username and password", placeholder: { username: "Please enter username", password: "Please enter password" }, buttons: { login: "Login" } } }, l = { "zh-CN": "Chinese", "en-US": "English", "ja-JP": "Japanese", "ko-KR": "Korean", "ru-RU": "Russian" }, i = {
2
2
  common: e,
3
- components: a,
4
- hooks: t,
3
+ components: t,
4
+ hooks: a,
5
5
  pages: o,
6
6
  locale: l
7
7
  };
8
8
  export {
9
9
  e as common,
10
- a as components,
10
+ t as components,
11
11
  i as default,
12
- t as hooks,
12
+ a as hooks,
13
13
  l as locale,
14
14
  o as pages
15
15
  };
@@ -1,4 +1,4 @@
1
- const e = { search: "搜索", empty: "暂无数据", menu: "菜单", theme: "主题", dark: "暗色模式", light: "亮色模式", back: "返回", loading: "加载中...", success: "操作成功", error: "操作失败", unknownError: "未知错误", keyword: "请输入关键字", preview: "预览" }, t = { tab: { lock: "锁定", closeOther: "关闭其他", closeLeft: "关闭左侧", closeRight: "关闭右侧" }, dialog: { confirm: { title: "确定", content: "确定要确认吗?" }, cancel: { title: "取消", content: "确定要取消吗?" }, success: { title: "成功", content: "您的操作已成功" }, error: { title: "错误", content: "您的操作已失败" }, prompt: { title: "提示" } }, button: { confirm: "确定", cancel: "取消", submit: "提交", reset: "重置", delete: "删除", search: "查询", advanced: "高级", export: "导出", import: "导入", autoRefresh: "自动刷新", filter: "筛选", refresh: "刷新", select: "选择", create: "新建", download: "下载", rename: "重命名", preview: "预览", sideLeft: "左侧", sideRight: "右侧" }, dateTag: { recentMinutes: "近{num}分钟", recentHours: "近{num}小时", recentDays: "近{num}日", recentThreeDays: "近3日", recentSevenDays: "近7日", recentThirtyDays: "近30日" }, textImageEditor: { hint: "点击按钮添加图片或文本,也可以拖拽进行排序", empty: "右侧实时预览", addImage: "添加图片", addText: "添加文本", preview: "预览", previewTitle: "预览", textLabel: "文本", editText: "编辑文本" }, form: { edit: "编辑", create: "新增", success: "保存成功", error: "保存失败" }, list: { selectAll: "全选", columnSetting: "列设置", selectedItems: "选中项: {num}", total: "共 {total} 条", batchTitle: "批量操作确认", batchContent: "确定要执行此批量操作吗?" }, editor: { placeholder: "请输入内容" }, upload: { title: "文件管理", fileManager: "文件管理器", uploadFile: "上传文件", cancel: "取消", delete: "删除", error: "上传失败", empty: "暂无文件", desc: "点击或拖拽文件到此区域", dropHere: "拖拽文件到此处", allFormats: "支持任意格式文件", supportFormats: "支持 {formats} 格式文件", maxSize: "最大文件大小: {size}MB", success: "上传成功", failed: "上传失败", status: { pending: "待上传", uploading: "上传中", success: "已上传", cancelled: "已取消", error: "失败" }, file: { name: "文件名", size: "大小", type: "类型", status: "状态" }, actions: "操作", selectUpload: { clickOrDrag: "点击选择文件或拖拽到此处", selectedFiles: "已选择 {count} 个文件", multipleSupport: "支持多文件选择", defaultDesc: "支持上传指定类型文件", acceptDesc: "仅支持上传 {accept} 格式文件", maxFiles: "最多 {max} 个文件" } }, uploadManage: { title: "文件管理", all: "全部", image: "图片", media: "媒体", docs: "文档", upload: "上传", empty: "暂无文件", emptyDesc: "暂无更多文件,请先上传文件", back: "返回上一级", parentLevel: "上一级", namePlaceholder: "请输入名称", createError: "创建失败", editError: "修改失败", delError: "删除失败", delTitle: "确认删除", delDesc: "确定要删除选中的文件吗?删除后不可恢复。" }, crop: { title: "裁剪", select: "选择", confirm: "确认" }, stats: { realTimeData: "实时数据" }, cascaderPanel: { level: "第{num}级", selectAll: "全选", clearAll: "全不选" }, data: { selectTitle: "请选择数据" }, menu: { language: "语言", chinese: "中文", english: "English", color: "颜色", primaryColor: "主题色", neutralColor: "中性色", theme: "主题", followSystem: "跟随系统", lightMode: "亮色", darkMode: "暗色", logout: "退出登录", notice: "通知", noNotice: "暂无通知", markAllRead: "一键已读", viewAllNotices: "查看全部消息", themeToggle: "主题切换" }, iconPicker: { title: "图标选择" }, designEditor: { layout: "布局", all: "全部", grid: { label: "网格", title: "网格设置", columns: "列数", spacing: "间距", columnsPlaceholder: "请输入列数", spacingPlaceholder: "请输入间距" } }, spec: { nameLabel: "规格名", namePlaceholder: "如:颜色、重量", addImage: "添加规格图片", valueLabel: "规格值", valuePlaceholder: "如:红色", addValue: "添加规格值", addSpec: "新增规格", imageHint: "每个规格值可上传图片", status: "启用状态" }, flowEditor: { properties: "属性", nodeInfo: "节点信息", nodeConfig: "节点配置", label: "标签", description: "描述", descriptionPlaceholder: "请输入节点描述", selectNodeOrEdge: "选择节点或连接线进行配置", edgeSettings: "连接线设置", edgeDescription: "配置节点间的连接属性", editJSON: "编辑JSON", saveFlow: "保存流程", clearFlow: "清空流程", flowCleared: "流程已清空", flowSaved: "流程数据已保存", editFlowJSON: "编辑流程 JSON", deleteEdge: "删除连接线", edgeDeleted: "连接线已删除", from: "从", to: "到", connectionType: "连接类型", pass: "通过", reject: "退回", categories: { start: "开始", process: "处理", condition: "条件", end: "结束" }, nodes: { start: { label: "开始", description: "流程的起始节点" }, end: { label: "结束", description: "流程的结束节点" } }, fieldTypes: { text: "文本", number: "数字", boolean: "布尔", date: "日期", array: "数组", object: "对象" }, toolbar: { releaseToAdd: "释放以添加节点" }, setting: { operations: "操作", node: "节点", connection: "连接" }, nodeCard: { delete: "删除", copy: "复制" }, jsonEditor: { copiedToClipboard: "已复制到剪贴板", dataApplied: "数据已应用到流程", jsonFormatError: "JSON 格式错误" }, processNode: { label: "处理", description: "通用处理节点" }, startNode: { label: "开始", description: "流程的起始节点", configTitle: "开始节点配置" }, nodeId: "节点 ID", nodeIdPlaceholder: "例如:ai_task", nodeIdExists: "节点 ID 已存在", fieldConfig: { modePlaceholder: "请选择输入模式", modeText: "文本模式", modeJson: "JSON 列表", modeCode: "代码编辑", fieldNamePlaceholder: "字段名称", fieldTypePlaceholder: "字段类型", labelPlaceholder: "显示名称", textPlaceholder: "支持 {{input.xxx}} / {{节点ID.output}}", notePlaceholder: "备注说明(可选)", addField: "新增字段" } }, schemaEditor: { treeTitle: "Schema 树", addRoot: "新增节点", addRootTitle: "新增根节点", addChild: "新增子节点", addChildTitle: "新增子节点", duplicate: "复制节点", duplicateTitle: "复制节点", editNodeTitle: "编辑节点", editNode: "编辑", editModalTitle: "节点配置", remove: "删除节点", empty: "暂无节点", addFirst: "创建节点", newNode: "新节点", childNode: "子节点", copySuffix: "副本", untitled: "未命名节点", nodeName: "节点名称", nodeNamePlaceholder: "例如:user", nodeType: "节点类型", nodeTypePlaceholder: "请选择节点类型", description: "节点说明", descriptionPlaceholder: "补充该节点的用途", params: "自定义参数", paramsEmpty: "暂无参数配置", noDescription: "暂无描述", selectHint: "请选择左侧的节点开始编辑" }, formEditor: { config: "组件配置", options: "选项配置", data: "数据", common: { componentConfig: "组件配置", optionConfig: "选项配置", optionData: "选项数据", dataConfig: "数据配置", dataEdit: "数据编辑", label: "标签", disabled: "禁用", clearable: "可清除", readonly: "只读", showCount: "显示字数", placeholder: "占位符", prefix: "前缀", suffix: "后缀", status: "状态", defaultValue: "默认值", minLength: "最小长度", maxLength: "最大长度", minValue: "最小值", maxValue: "最大值", labelField: "标签字段", valueField: "值字段", optionLabel: "选项标签", optionValue: "选项值", dataInterface: "数据接口", multiple: "多选", cascade: "级联", showPath: "显示路径", minCount: "最小数量", maxCount: "最大数量", uploadUrl: "上传地址", showAlpha: "显示透明度", timeFormat: "时间格式", hour12: "12小时制", dateType: "日期类型", inputType: "输入类型", formDirection: "表单方向", leftAlign: "左对齐", topAlign: "上对齐", settingAlign: "设置布局", pageAlign: "页面布局", name: "名称", desc: "描述" }, setting: { title: "表单设置" }, validation: "验证规则", componentConfig: "组件配置", input: { label: "文本", types: { text: "文本", textarea: "多行文本", password: "密码" } }, inputNumber: { label: "数字" }, select: { label: "选择", configDesc: "配置选项数据" }, radio: { label: "单选", configDesc: "配置单选框选项数据" }, checkbox: { label: "复选", configDesc: "配置复选框选项数据" }, switch: { label: "开关" }, date: { label: "日期", placeholder: "选择日期", dateType: "日期类型", date: "日期", daterange: "日期范围", datetime: "日期时间", datetimerange: "日期时间范围", month: "月份", monthrange: "月份范围", year: "年份", yearrange: "年份范围", quarter: "季度", quarterrange: "季度范围", week: "周" }, time: { label: "时间", placeholder: "选择时间", timeFormat: "格式", use12Hours: "12小时制" }, color: { label: "颜色", showAlpha: "显示透明度" }, cascader: { label: "级联", desc: "级联选择器选项数据,格式为 JSON 数组", configDesc: "配置选项", optionDesc: "JSON 数组格式", optionsDescription: "配置级联选择器选项数据", cascade: "级联", showPath: "显示路径" }, cascaderAsync: { label: "级联", dataApi: "数据接口", apiPlaceholder: "输入接口地址", cascade: "级联", showPath: "显示路径" }, dynamicInput: { label: "动态" }, editor: { label: "编辑器", placeholder: "输入内容", uploadUrlDesc: "编辑器图片上传地址" }, aiEditor: { label: "编辑器", uploadUrl: "上传地址", uploadUrlFeedback: "编辑器图片上传地址" }, sider: { name: "滑块", step: "步长", min: "最小", max: "最大" }, dynamicTags: { name: "标签", max: "最大数量" }, mentionAsync: { name: "提及", clearable: "可清除", path: "数据接口", labelField: "标签字段", valueField: "值字段" }, region: { name: "地区", Path: "数据接口", labelField: "标签字段", valueField: "值字段" }, selectAsync: { name: "选择", pagination: "分页", path: "数据接口", labelField: "标签字段", valueField: "值字段", imageField: "图片字段", descField: "描述字段" }, transferAsync: { name: "穿梭框" }, treeSelect: { name: "树选择" }, treeSelectAsync: { name: "异步树选择", path: "数据接口", labelField: "标签字段", keyField: "键字段" }, tree: { disabled: "禁用" }, groups: { form: "表单", select: "选择器", async: "异步" }, imageUpload: { label: "图片上传", maxSize: "最大文件大小(MB)", maxSizePlaceholder: "请输入最大文件大小", maxNumPlaceholder: "请输入最大文件数量", manager: "文件管理器" }, fileUpload: { label: "文件上传", accept: "接受文件类型", acceptPlaceholder: "请输入接受的文件类型,如:image/*,video/*", maxSize: "最大文件大小(MB)", maxSizePlaceholder: "请输入最大文件大小", maxNumPlaceholder: "请输入最大文件数量", manager: "文件管理器" }, main: { label: "主要内容", categories: { form: "表单", select: "选择器", async: "异步" }, actions: { jsonOutput: "Json 输出", save: "保存" } } } }, a = { table: { exportSuccess: "导出数据成功", exportProgress: "导出数据中, 请稍后...", exportFailed: "导出数据失败", exportSuccessContent: "成功导出 {count} 条数据", exportProgressContent: "第 {page} 页数据", exportFailedContent: "导出数据失败:{error}", importSuccess: "导入数据成功", importProgress: "导入数据中, 请稍后...", importFailed: "导入数据失败", importSuccessContent: "成功导入 {count} 条数据", importProgressContent: "{processed} / {total} 条数据", importFailedContent: "导入数据失败:{error}", saveSuccess: "保存成功", copySuccess: "复制成功", copyFailed: "复制失败" }, download: { failed: "下载失败" } }, l = { 400: { title: "400", desc: "请求错误" }, 401: { title: "401", desc: "您没有权限访问该页面" }, 403: { title: "403", desc: "您没有权限访问该页面" }, 404: { title: "404", desc: "页面不存在" }, 500: { title: "500", desc: "服务器错误" }, empty: { title: "暂无数据", desc: "暂无更多数据,请先创建数据" }, loading: { title: "加载中", desc: "数据正在加载中,请稍后..." }, exception: { title: "系统异常", desc: "系统发生异常,具体原因请查看控制台" }, login: { success: "登录成功", error: "登录失败,请检查用户名和密码", placeholder: { username: "请输入用户名", password: "请输入密码" }, buttons: { login: "登录" } } }, o = { "zh-CN": "中文", "en-US": "English", "ja-JP": "日本語", "ko-KR": "한국어", "ru-RU": "Русский" }, i = {
1
+ const e = { search: "搜索", empty: "暂无数据", menu: "菜单", theme: "主题", dark: "暗色模式", light: "亮色模式", back: "返回", loading: "加载中...", success: "操作成功", error: "操作失败", unknownError: "未知错误", keyword: "请输入关键字", preview: "预览" }, t = { tab: { lock: "锁定", closeOther: "关闭其他", closeLeft: "关闭左侧", closeRight: "关闭右侧" }, dialog: { confirm: { title: "确定", content: "确定要确认吗?" }, cancel: { title: "取消", content: "确定要取消吗?" }, success: { title: "成功", content: "您的操作已成功" }, error: { title: "错误", content: "您的操作已失败" }, prompt: { title: "提示" } }, button: { confirm: "确定", cancel: "取消", submit: "提交", reset: "重置", delete: "删除", search: "查询", advanced: "高级", export: "导出", import: "导入", autoRefresh: "自动刷新", filter: "筛选", refresh: "刷新", select: "选择", create: "新建", download: "下载", rename: "重命名", preview: "预览", sideLeft: "左侧", sideRight: "右侧" }, dateTag: { recentMinutes: "近{num}分钟", recentHours: "近{num}小时", recentDays: "近{num}日", recentThreeDays: "近3日", recentSevenDays: "近7日", recentThirtyDays: "近30日" }, textImageEditor: { hint: "点击按钮添加图片或文本,也可以拖拽进行排序", empty: "右侧实时预览", addImage: "添加图片", addText: "添加文本", preview: "预览", previewTitle: "预览", textLabel: "文本", editText: "编辑文本" }, form: { edit: "编辑", create: "新增", success: "保存成功", error: "保存失败" }, list: { selectAll: "全选", columnSetting: "列设置", selectedItems: "选中项: {num}", total: "共 {total} 条", batchTitle: "批量操作确认", batchContent: "确定要执行此批量操作吗?" }, editor: { placeholder: "请输入内容" }, upload: { title: "文件管理", fileManager: "文件管理器", uploadFile: "上传文件", cancel: "取消", delete: "删除", error: "上传失败", empty: "暂无文件", desc: "点击或拖拽文件到此区域", dropHere: "拖拽文件到此处", allFormats: "支持任意格式文件", supportFormats: "支持 {formats} 格式文件", maxSize: "最大文件大小: {size}MB", success: "上传成功", failed: "上传失败", status: { pending: "待上传", uploading: "上传中", success: "已上传", cancelled: "已取消", error: "失败" }, file: { name: "文件名", size: "大小", type: "类型", status: "状态" }, actions: "操作", selectUpload: { clickOrDrag: "点击选择文件或拖拽到此处", selectedFiles: "已选择 {count} 个文件", multipleSupport: "支持多文件选择", defaultDesc: "支持上传指定类型文件", acceptDesc: "仅支持上传 {accept} 格式文件", maxFiles: "最多 {max} 个文件" } }, uploadManage: { title: "文件管理", all: "全部", image: "图片", media: "媒体", docs: "文档", upload: "上传", empty: "暂无文件", emptyDesc: "暂无更多文件,请先上传文件", back: "返回上一级", parentLevel: "上一级", namePlaceholder: "请输入名称", createError: "创建失败", editError: "修改失败", delError: "删除失败", delTitle: "确认删除", delDesc: "确定要删除选中的文件吗?删除后不可恢复。" }, crop: { title: "裁剪", select: "选择", confirm: "确认" }, stats: { realTimeData: "实时数据" }, cascaderPanel: { level: "第{num}级", selectAll: "全选", clearAll: "全不选" }, data: { selectTitle: "请选择数据" }, menu: { language: "语言", chinese: "中文", english: "English", color: "颜色", primaryColor: "主题色", neutralColor: "中性色", theme: "主题", followSystem: "跟随系统", lightMode: "亮色", darkMode: "暗色", logout: "退出登录", notice: "通知", noNotice: "暂无通知", markAllRead: "一键已读", viewAllNotices: "查看全部消息", themeToggle: "主题切换" }, iconPicker: { title: "图标选择" }, designEditor: { layout: "布局", all: "全部", properties: "属性", component: "组件", componentSettings: "配置当前组件参数", selectComponent: "选择左侧组件后可在这里进行配置", grid: { label: "网格", description: "将表单项按多列分区布局", title: "网格设置", columns: "列数", spacing: "间距", columnsPlaceholder: "请输入列数", spacingPlaceholder: "请输入间距" } }, spec: { nameLabel: "规格名", namePlaceholder: "如:颜色、重量", addImage: "添加规格图片", valueLabel: "规格值", valuePlaceholder: "如:红色", addValue: "添加规格值", addSpec: "新增规格", imageHint: "每个规格值可上传图片", status: "启用状态" }, flowEditor: { properties: "属性", nodeInfo: "节点信息", nodeConfig: "节点配置", label: "标签", description: "描述", descriptionPlaceholder: "请输入节点描述", selectNodeOrEdge: "选择节点或连接线进行配置", edgeSettings: "连接线设置", edgeDescription: "配置节点间的连接属性", editJSON: "编辑JSON", saveFlow: "保存流程", clearFlow: "清空流程", flowCleared: "流程已清空", flowSaved: "流程数据已保存", editFlowJSON: "编辑流程 JSON", deleteEdge: "删除连接线", edgeDeleted: "连接线已删除", from: "从", to: "到", connectionType: "连接类型", pass: "通过", reject: "退回", categories: { start: "开始", process: "处理", condition: "条件", end: "结束" }, nodes: { start: { label: "开始", description: "流程的起始节点" }, end: { label: "结束", description: "流程的结束节点" } }, fieldTypes: { text: "文本", number: "数字", boolean: "布尔", date: "日期", array: "数组", object: "对象" }, toolbar: { releaseToAdd: "释放以添加节点" }, setting: { operations: "操作", node: "节点", connection: "连接" }, nodeCard: { delete: "删除", copy: "复制" }, jsonEditor: { copiedToClipboard: "已复制到剪贴板", dataApplied: "数据已应用到流程", jsonFormatError: "JSON 格式错误" }, processNode: { label: "处理", description: "通用处理节点" }, startNode: { label: "开始", description: "流程的起始节点", configTitle: "开始节点配置" }, nodeId: "节点 ID", nodeIdPlaceholder: "例如:ai_task", nodeIdExists: "节点 ID 已存在", fieldConfig: { modePlaceholder: "请选择输入模式", modeText: "文本模式", modeJson: "JSON 列表", modeCode: "代码编辑", fieldNamePlaceholder: "字段名称", fieldTypePlaceholder: "字段类型", labelPlaceholder: "显示名称", textPlaceholder: "支持 {{input.xxx}} / {{节点ID.output}}", notePlaceholder: "备注说明(可选)", addField: "新增字段" } }, schemaEditor: { treeTitle: "Schema 树", addRoot: "新增节点", addRootTitle: "新增根节点", addChild: "新增子节点", addChildTitle: "新增子节点", duplicate: "复制节点", duplicateTitle: "复制节点", editNodeTitle: "编辑节点", editNode: "编辑", editModalTitle: "节点配置", remove: "删除节点", empty: "暂无节点", addFirst: "创建节点", newNode: "新节点", childNode: "子节点", copySuffix: "副本", untitled: "未命名节点", nodeName: "节点名称", nodeNamePlaceholder: "例如:user", nodeType: "节点类型", nodeTypePlaceholder: "请选择节点类型", description: "节点说明", descriptionPlaceholder: "补充该节点的用途", params: "自定义参数", paramsEmpty: "暂无参数配置", noDescription: "暂无描述", selectHint: "请选择左侧的节点开始编辑" }, formEditor: { config: "组件配置", options: "选项配置", data: "数据", common: { componentConfig: "组件配置", optionConfig: "选项配置", optionData: "选项数据", dataConfig: "数据配置", dataEdit: "数据编辑", label: "标签", disabled: "禁用", clearable: "可清除", readonly: "只读", showCount: "显示字数", placeholder: "占位符", prefix: "前缀", suffix: "后缀", status: "状态", defaultValue: "默认值", minLength: "最小长度", maxLength: "最大长度", minValue: "最小值", maxValue: "最大值", labelField: "标签字段", valueField: "值字段", optionLabel: "选项标签", optionValue: "选项值", dataInterface: "数据接口", multiple: "多选", cascade: "级联", showPath: "显示路径", minCount: "最小数量", maxCount: "最大数量", uploadUrl: "上传地址", showAlpha: "显示透明度", timeFormat: "时间格式", hour12: "12小时制", dateType: "日期类型", inputType: "输入类型", formDirection: "表单方向", leftAlign: "左对齐", topAlign: "上对齐", settingAlign: "设置布局", pageAlign: "页面布局", name: "名称", desc: "描述" }, setting: { title: "表单设置" }, validation: "验证规则", componentConfig: "组件配置", input: { label: "文本", types: { text: "文本", textarea: "多行文本", password: "密码" } }, inputNumber: { label: "数字" }, select: { label: "选择", configDesc: "配置选项数据" }, radio: { label: "单选", configDesc: "配置单选框选项数据" }, checkbox: { label: "复选", configDesc: "配置复选框选项数据" }, switch: { label: "开关" }, date: { label: "日期", placeholder: "选择日期", dateType: "日期类型", date: "日期", daterange: "日期范围", datetime: "日期时间", datetimerange: "日期时间范围", month: "月份", monthrange: "月份范围", year: "年份", yearrange: "年份范围", quarter: "季度", quarterrange: "季度范围", week: "周" }, time: { label: "时间", placeholder: "选择时间", timeFormat: "格式", use12Hours: "12小时制" }, color: { label: "颜色", showAlpha: "显示透明度" }, cascader: { label: "级联", desc: "级联选择器选项数据,格式为 JSON 数组", configDesc: "配置选项", optionDesc: "JSON 数组格式", optionsDescription: "配置级联选择器选项数据", cascade: "级联", showPath: "显示路径" }, cascaderAsync: { label: "级联", dataApi: "数据接口", apiPlaceholder: "输入接口地址", cascade: "级联", showPath: "显示路径" }, dynamicInput: { label: "动态" }, editor: { label: "编辑器", placeholder: "输入内容", uploadUrlDesc: "编辑器图片上传地址" }, aiEditor: { label: "编辑器", uploadUrl: "上传地址", uploadUrlFeedback: "编辑器图片上传地址" }, sider: { name: "滑块", step: "步长", min: "最小", max: "最大" }, dynamicTags: { name: "标签", max: "最大数量" }, mentionAsync: { name: "提及", clearable: "可清除", path: "数据接口", labelField: "标签字段", valueField: "值字段" }, region: { name: "地区", Path: "数据接口", labelField: "标签字段", valueField: "值字段" }, selectAsync: { name: "选择", pagination: "分页", path: "数据接口", labelField: "标签字段", valueField: "值字段", imageField: "图片字段", descField: "描述字段" }, transferAsync: { name: "穿梭框" }, treeSelect: { name: "树选择" }, treeSelectAsync: { name: "异步树选择", path: "数据接口", labelField: "标签字段", keyField: "键字段" }, tree: { disabled: "禁用" }, groups: { form: "表单", select: "选择器", async: "异步" }, toolbarDescriptions: { input: "输入短文本或多行文本", inputNumber: "录入数字并限制范围", aiEditor: "富文本内容编辑器", slider: "通过滑块选择区间值", date: "选择日期或日期区间", time: "选择时间值", color: "拾取颜色值", checkbox: "多项勾选", radio: "单项互斥选择", switch: "开关状态切换", dynamicInput: "动态新增输入项", dynamicTags: "动态录入标签", imageUpload: "上传图片文件", fileUpload: "上传任意文件", select: "下拉选择静态选项", cascader: "级联选择多级选项", treeSelect: "树形结构选择", region: "选择省市区地址", selectAsync: "异步接口下拉选择", cascaderAsync: "异步加载级联数据", treeSelectAsync: "异步加载树数据", transferAsync: "异步数据穿梭框", mentionAsync: "异步检索提及用户" }, imageUpload: { label: "图片上传", maxSize: "最大文件大小(MB)", maxSizePlaceholder: "请输入最大文件大小", maxNumPlaceholder: "请输入最大文件数量", manager: "文件管理器" }, fileUpload: { label: "文件上传", accept: "接受文件类型", acceptPlaceholder: "请输入接受的文件类型,如:image/*,video/*", maxSize: "最大文件大小(MB)", maxSizePlaceholder: "请输入最大文件大小", maxNumPlaceholder: "请输入最大文件数量", manager: "文件管理器" }, main: { label: "主要内容", categories: { form: "表单", select: "选择器", async: "异步" }, actions: { jsonOutput: "Json 输出", save: "保存" } } } }, a = { table: { exportSuccess: "导出数据成功", exportProgress: "导出数据中, 请稍后...", exportFailed: "导出数据失败", exportSuccessContent: "成功导出 {count} 条数据", exportProgressContent: "第 {page} 页数据", exportFailedContent: "导出数据失败:{error}", importSuccess: "导入数据成功", importProgress: "导入数据中, 请稍后...", importFailed: "导入数据失败", importSuccessContent: "成功导入 {count} 条数据", importProgressContent: "{processed} / {total} 条数据", importFailedContent: "导入数据失败:{error}", saveSuccess: "保存成功", copySuccess: "复制成功", copyFailed: "复制失败" }, download: { failed: "下载失败" } }, l = { 400: { title: "400", desc: "请求错误" }, 401: { title: "401", desc: "您没有权限访问该页面" }, 403: { title: "403", desc: "您没有权限访问该页面" }, 404: { title: "404", desc: "页面不存在" }, 500: { title: "500", desc: "服务器错误" }, empty: { title: "暂无数据", desc: "暂无更多数据,请先创建数据" }, loading: { title: "加载中", desc: "数据正在加载中,请稍后..." }, exception: { title: "系统异常", desc: "系统发生异常,具体原因请查看控制台" }, login: { success: "登录成功", error: "登录失败,请检查用户名和密码", placeholder: { username: "请输入用户名", password: "请输入密码" }, buttons: { login: "登录" } } }, o = { "zh-CN": "中文", "en-US": "English", "ja-JP": "日本語", "ko-KR": "한국어", "ru-RU": "Русский" }, i = {
2
2
  common: e,
3
3
  components: t,
4
4
  hooks: a,