smart-admin-web 10.20.1 → 10.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/api/index.d.ts +19 -1
  2. package/dist/api/index.js +85 -66
  3. package/dist/api/index.js.map +1 -1
  4. package/dist/api/schema.d.ts +448 -1
  5. package/dist/assets/icons/ph-subset.json.js +1 -1
  6. package/dist/components/FormContainer/index.vue.js +87 -75
  7. package/dist/components/FormContainer/index.vue.js.map +1 -1
  8. package/dist/components/UserPicker/UserAvatar.vue.d.ts +8 -0
  9. package/dist/components/UserPicker/UserAvatar.vue.js +8 -0
  10. package/dist/components/UserPicker/UserAvatar.vue.js.map +1 -0
  11. package/dist/components/UserPicker/UserAvatar2.vue.js +38 -0
  12. package/dist/components/UserPicker/UserAvatar2.vue.js.map +1 -0
  13. package/dist/components/UserPicker/index.vue.js +1 -1
  14. package/dist/components/UserPicker/index2.vue.js +328 -186
  15. package/dist/components/UserPicker/index2.vue.js.map +1 -1
  16. package/dist/composables/authMenuRoute.d.ts +10 -0
  17. package/dist/composables/authMenuRoute.js +39 -23
  18. package/dist/composables/authMenuRoute.js.map +1 -1
  19. package/dist/composables/useModule.d.ts +3 -1
  20. package/dist/composables/useModule.js +44 -32
  21. package/dist/composables/useModule.js.map +1 -1
  22. package/dist/index.js +246 -242
  23. package/dist/layouts/components/SideNav.vue.js +2 -2
  24. package/dist/layouts/components/SideNav2.vue.js.map +1 -1
  25. package/dist/lib/runtime.js +1 -1
  26. package/dist/lib/watermark.d.ts +1 -1
  27. package/dist/locales/en-US.d.ts +68 -3
  28. package/dist/locales/en-US.js +74 -8
  29. package/dist/locales/en-US.js.map +1 -1
  30. package/dist/locales/kernelMenuTitles.js +1 -0
  31. package/dist/locales/kernelMenuTitles.js.map +1 -1
  32. package/dist/locales/zh-CN.d.ts +68 -3
  33. package/dist/locales/zh-CN.js +74 -8
  34. package/dist/locales/zh-CN.js.map +1 -1
  35. package/dist/router/viewRegistry.js +6 -6
  36. package/dist/router/viewRegistry.js.map +1 -1
  37. package/dist/style.css +1 -1
  38. package/dist/theme/naive-theme.js +80 -77
  39. package/dist/theme/naive-theme.js.map +1 -1
  40. package/dist/types/api.d.ts +91 -0
  41. package/dist/types/api.js +17 -15
  42. package/dist/types/api.js.map +1 -1
  43. package/dist/utils/shake.d.ts +1 -0
  44. package/dist/utils/shake.js +30 -0
  45. package/dist/utils/shake.js.map +1 -0
  46. package/dist/utils/tree.d.ts +15 -0
  47. package/dist/utils/tree.js +43 -29
  48. package/dist/utils/tree.js.map +1 -1
  49. package/dist/utils/treeCard.d.ts +6 -0
  50. package/dist/utils/treeCard.js +9 -0
  51. package/dist/utils/treeCard.js.map +1 -0
  52. package/dist/views/error/404.vue.js +2 -2
  53. package/dist/views/error/4042.vue.js +81 -24
  54. package/dist/views/error/4042.vue.js.map +1 -1
  55. package/dist/views/login/LoginForm.vue.js +2 -2
  56. package/dist/views/login/LoginForm2.vue.js +135 -135
  57. package/dist/views/login/LoginForm2.vue.js.map +1 -1
  58. package/dist/views/login/components/LoginDesk.vue.js +2 -2
  59. package/dist/views/login/components/LoginDesk2.vue.js +59 -47
  60. package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
  61. package/dist/views/login/components/LoginHeroPanel.vue.js +2 -2
  62. package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
  63. package/dist/views/personal/notice2.vue.js +1 -1
  64. package/dist/views/personal/notice2.vue.js.map +1 -1
  65. package/dist/views/personal/sessions.vue.js +2 -2
  66. package/dist/views/personal/sessions2.vue.js +41 -40
  67. package/dist/views/personal/sessions2.vue.js.map +1 -1
  68. package/dist/views/system/ai-usage/index.vue.js +3 -3
  69. package/dist/views/system/ai-usage/index2.vue.js +13 -12
  70. package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
  71. package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
  72. package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
  73. package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
  74. package/dist/views/system/dict/index.vue.js +2 -2
  75. package/dist/views/system/dict/index2.vue.js +12 -1
  76. package/dist/views/system/dict/index2.vue.js.map +1 -1
  77. package/dist/views/system/file/index2.vue.js +1 -0
  78. package/dist/views/system/file/index2.vue.js.map +1 -1
  79. package/dist/views/system/job/index.vue.js +3 -3
  80. package/dist/views/system/job/index2.vue.js +182 -181
  81. package/dist/views/system/job/index2.vue.js.map +1 -1
  82. package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
  83. package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
  84. package/dist/views/system/job-log/index.vue.js +1 -1
  85. package/dist/views/system/job-log/index2.vue.js +5 -5
  86. package/dist/views/system/job-log/index2.vue.js.map +1 -1
  87. package/dist/views/system/job-monitor/index.vue.js +2 -2
  88. package/dist/views/system/job-monitor/index2.vue.js +46 -46
  89. package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
  90. package/dist/views/system/log/exception/index.vue.js +2 -2
  91. package/dist/views/system/log/exception/index2.vue.js +8 -5
  92. package/dist/views/system/log/exception/index2.vue.js.map +1 -1
  93. package/dist/views/system/log/login/index2.vue.js +21 -12
  94. package/dist/views/system/log/login/index2.vue.js.map +1 -1
  95. package/dist/views/system/log/op/index.vue.js +2 -2
  96. package/dist/views/system/log/op/index2.vue.js +50 -40
  97. package/dist/views/system/log/op/index2.vue.js.map +1 -1
  98. package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
  99. package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
  100. package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
  101. package/dist/views/system/menu/index.vue.js +1 -1
  102. package/dist/views/system/menu/index2.vue.js +162 -151
  103. package/dist/views/system/menu/index2.vue.js.map +1 -1
  104. package/dist/views/system/module/index.vue.js +1 -1
  105. package/dist/views/system/module/index2.vue.js +171 -117
  106. package/dist/views/system/module/index2.vue.js.map +1 -1
  107. package/dist/views/system/notice/index.vue.js +3 -3
  108. package/dist/views/system/notice/index2.vue.js +1 -0
  109. package/dist/views/system/notice/index2.vue.js.map +1 -1
  110. package/dist/views/system/org/index.vue.js +2 -2
  111. package/dist/views/system/org/index2.vue.js +204 -195
  112. package/dist/views/system/org/index2.vue.js.map +1 -1
  113. package/dist/views/system/position/index.vue.js +2 -2
  114. package/dist/views/system/position/index2.vue.js +57 -48
  115. package/dist/views/system/position/index2.vue.js.map +1 -1
  116. package/dist/views/system/recycle/index.vue.js +1 -1
  117. package/dist/views/system/recycle/index2.vue.js +3 -1
  118. package/dist/views/system/recycle/index2.vue.js.map +1 -1
  119. package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
  120. package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
  121. package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
  122. package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
  123. package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
  124. package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
  125. package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
  126. package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
  127. package/dist/views/system/role/components/grantMenuGroups.js +116 -76
  128. package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
  129. package/dist/views/system/role/index.vue.js +2 -2
  130. package/dist/views/system/role/index2.vue.js +152 -145
  131. package/dist/views/system/role/index2.vue.js.map +1 -1
  132. package/dist/views/system/session/index2.vue.js +39 -35
  133. package/dist/views/system/session/index2.vue.js.map +1 -1
  134. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
  135. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
  136. package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
  137. package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
  138. package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
  139. package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
  140. package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
  141. package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
  142. package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
  143. package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
  144. package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
  145. package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
  146. package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
  147. package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
  148. package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
  149. package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
  150. package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
  151. package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
  152. package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
  153. package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
  154. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
  155. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
  156. package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
  157. package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
  158. package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
  159. package/dist/views/system/user/components/userGrantState.d.ts +64 -0
  160. package/dist/views/system/user/components/userGrantState.js +117 -0
  161. package/dist/views/system/user/components/userGrantState.js.map +1 -0
  162. package/dist/views/system/user/index.vue.js +2 -2
  163. package/dist/views/system/user/index2.vue.js +369 -295
  164. package/dist/views/system/user/index2.vue.js.map +1 -1
  165. package/package.json +3 -3
@@ -1,21 +1,21 @@
1
1
  import { defineComponent as Ke, ref as w, computed as ze, h as m, reactive as Re, onDeactivated as Oe, resolveDirective as Pe, openBlock as c, createElementBlock as k, Fragment as P, createVNode as o, unref as e, withCtx as n, withDirectives as ie, createBlock as z, createTextVNode as p, toDisplayString as d, normalizeClass as de, createElementVNode as y, createCommentVNode as x, renderList as ue } from "vue";
2
2
  import { useMediaQuery as Me } from "@vueuse/core";
3
- import { useMessage as Ie, NSpace as U, NButton as h, NTooltip as me, NPopconfirm as Be, NDrawer as He, NDrawerContent as Ae, NForm as De, NCollapse as Le, NCollapseItem as A, NGrid as D, NFormItemGi as u, NInput as g, NRadioGroup as L, NRadio as j, NInputNumber as M, NDatePicker as Q, NSelect as pe, NSwitch as Ve, NTag as X } from "naive-ui";
3
+ import { useMessage as Ie, NSpace as U, NButton as h, NTooltip as me, NPopconfirm as Be, NDrawer as He, NDrawerContent as Ae, NForm as De, NCollapse as Le, NCollapseItem as A, NGrid as D, NFormItemGi as u, NInput as g, NRadioGroup as L, NRadio as j, NInputNumber as M, NDatePicker as W, NSelect as pe, NSwitch as Ve, NTag as X } from "naive-ui";
4
4
  import { useRouter as Je } from "vue-router";
5
5
  import { useI18n as Fe } from "vue-i18n";
6
6
  import { SmartTable as Ge } from "smart-naive-table";
7
7
  import R from "../../../components/AppIcon.vue.js";
8
8
  import $e from "../../../components/StatusSwitch/index.vue.js";
9
- import We from "../../../components/CronEditor/index.vue.js";
10
- import { useConfirm as Qe } from "../../../composables/useConfirm.js";
9
+ import Qe from "../../../components/CronEditor/index.vue.js";
10
+ import { useConfirm as We } from "../../../composables/useConfirm.js";
11
11
  import { useBatchDelete as Xe } from "../../../composables/useBatchDelete.js";
12
12
  import { useShellBreakpoint as Ye } from "../../../composables/useShellBreakpoint.js";
13
13
  import { useAuthStore as Ze } from "../../../stores/auth.js";
14
14
  import { jobApi as C } from "../../../api/index.js";
15
15
  import { translateError as ce } from "../../../utils/error.js";
16
16
  import { SEARCH_ACTIONS as Y, deriveHeaderFilters as el } from "../../../utils/tableFilter.js";
17
- import { TABLE_MIN_ROW_HEIGHT as ll, TABLE_TOOLBAR as al } from "../../../utils/tableToolbar.js";
18
- import tl from "../../../components/TableTotal/index.vue.js";
17
+ import { TABLE_MIN_ROW_HEIGHT as ll, TABLE_TOOLBAR as tl } from "../../../utils/tableToolbar.js";
18
+ import al from "../../../components/TableTotal/index.vue.js";
19
19
  import { fmtDateTime as rl } from "../../../utils/format.js";
20
20
  import { JobHandlerKind as f, JobStatus as b, JobTriggerKind as v, JobMisfireStrategy as V, JobConcurrencyMode as J } from "../../../types/api.js";
21
21
  const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { class: "job-sec-text" }, il = {
@@ -27,39 +27,39 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
27
27
  }, pl = { class: "job-sec-text" }, cl = { class: "job-hint" }, fl = { class: "job-inline" }, bl = { class: "job-hint" }, hl = { class: "job-inline" }, vl = { class: "job-hint" }, Bl = /* @__PURE__ */ Ke({
28
28
  __name: "index",
29
29
  setup(yl) {
30
- const { t: a } = Fe(), F = Ie(), fe = Je(), { run: be, confirm: he } = Qe(), I = Ze(), q = w(), Z = Me("(min-width: 820px)"), { bp: ve } = Ye(), O = ze(() => ve.value === "narrow"), { checkedKeys: ee, run: ye } = Xe({
30
+ const { t } = Fe(), F = Ie(), fe = Je(), { run: be, confirm: he } = We(), I = Ze(), q = w(), Z = Me("(min-width: 820px)"), { bp: ve } = Ye(), O = ze(() => ve.value === "narrow"), { checkedKeys: ee, run: ye } = Xe({
31
31
  remove: C.batchRemove,
32
32
  refresh: () => {
33
- var t;
34
- return (t = q.value) == null ? void 0 : t.refresh();
33
+ var a;
34
+ return (a = q.value) == null ? void 0 : a.refresh();
35
35
  },
36
- successMsg: a("job.deleted")
36
+ successMsg: t("job.deleted")
37
37
  }), ge = [
38
38
  {
39
- label: () => a("job.handler.compiled"),
39
+ label: () => t("job.handler.compiled"),
40
40
  value: f.Compiled,
41
41
  tagType: "info"
42
42
  },
43
- { label: () => a("job.handler.http"), value: f.Http, tagType: "success" },
44
- { label: () => a("job.handler.sql"), value: f.Sql, tagType: "warning" }
43
+ { label: () => t("job.handler.http"), value: f.Http, tagType: "success" },
44
+ { label: () => t("job.handler.sql"), value: f.Sql, tagType: "warning" }
45
45
  ], je = [
46
- { label: () => a("job.status.ready"), value: b.Ready, tagType: "success" },
47
- { label: () => a("job.status.paused"), value: b.Paused, tagType: "default" },
46
+ { label: () => t("job.status.ready"), value: b.Ready, tagType: "success" },
47
+ { label: () => t("job.status.paused"), value: b.Paused, tagType: "default" },
48
48
  {
49
- label: () => a("job.status.completed"),
49
+ label: () => t("job.status.completed"),
50
50
  value: b.Completed,
51
51
  tagType: "default"
52
52
  },
53
- { label: () => a("job.status.panic"), value: b.Panic, tagType: "error" }
53
+ { label: () => t("job.status.panic"), value: b.Panic, tagType: "error" }
54
54
  ];
55
- function Se(t) {
56
- switch (t.triggerKind) {
55
+ function Se(a) {
56
+ switch (a.triggerKind) {
57
57
  case v.Interval:
58
- return a("job.trigger.everySeconds", { n: t.intervalSeconds ?? 0 });
58
+ return t("job.trigger.everySeconds", { n: a.intervalSeconds ?? 0 });
59
59
  case v.OneShot:
60
- return rl(t.oneShotTime, { empty: "—" });
60
+ return rl(a.oneShotTime, { empty: "—" });
61
61
  default:
62
- return t.cronExpression || "—";
62
+ return a.cronExpression || "—";
63
63
  }
64
64
  }
65
65
  const ke = {
@@ -67,60 +67,61 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
67
67
  [b.Paused]: "default",
68
68
  [b.Completed]: "default",
69
69
  [b.Panic]: "error"
70
- }, le = (t) => a(
71
- t === b.Ready ? "job.status.ready" : t === b.Paused ? "job.status.paused" : t === b.Completed ? "job.status.completed" : "job.status.panic"
70
+ }, le = (a) => t(
71
+ a === b.Ready ? "job.status.ready" : a === b.Paused ? "job.status.paused" : a === b.Completed ? "job.status.completed" : "job.status.panic"
72
72
  );
73
- function Te(t) {
74
- if (t.status === b.Completed)
75
- return m(X, { size: "small", bordered: !1 }, () => le(t.status));
73
+ function Te(a) {
74
+ if (a.status === b.Completed)
75
+ return m(X, { size: "small", bordered: !1 }, () => le(a.status));
76
76
  if (!I.hasPerm("PUT:/api/v1/sys/job/{id}/enabled"))
77
77
  return m(
78
78
  X,
79
- { size: "small", bordered: !1, type: ke[t.status] },
80
- () => le(t.status)
79
+ { size: "small", bordered: !1, type: ke[a.status] },
80
+ () => le(a.status)
81
81
  );
82
82
  const r = m($e, {
83
- value: t.status === b.Ready,
84
- confirm: (i) => i ? null : a("job.pauseConfirm", { name: t.name }),
85
- request: (i) => C.setEnabled(t.id, i),
83
+ value: a.status === b.Ready,
84
+ confirm: (i) => i ? null : t("job.pauseConfirm", { name: a.name }),
85
+ request: (i) => C.setEnabled(a.id, i),
86
86
  // 启停会重算 nextRunTime / 清连败计数,本地写回拼不出来 → 直接重拉
87
87
  "onUpdate:value": () => {
88
88
  var i;
89
89
  return (i = q.value) == null ? void 0 : i.refresh();
90
90
  }
91
91
  });
92
- return t.status !== b.Panic ? r : m(U, { size: 6, wrapItem: !1, align: "center" }, () => [
92
+ return a.status !== b.Panic ? r : m(U, { size: 6, wrapItem: !1, align: "center" }, () => [
93
93
  r,
94
94
  m(me, null, {
95
- trigger: () => m(X, { size: "small", bordered: !1, type: "error" }, () => a("job.status.panic")),
96
- default: () => a("job.panicTooltip", { n: t.consecutiveErrors })
95
+ trigger: () => m(X, { size: "small", bordered: !1, type: "error" }, () => t("job.status.panic")),
96
+ default: () => t("job.panicTooltip", { n: a.consecutiveErrors })
97
97
  })
98
98
  ]);
99
99
  }
100
- const ae = [
101
- { type: "index", title: () => a("common.rowNo"), width: 64, align: "center", fixed: "left" },
100
+ const te = [
101
+ { type: "index", title: () => t("common.rowNo"), width: 64, align: "center", fixed: "left" },
102
102
  // 内置任务禁删,批量删除同样不可含内置(后端整批拒绝 47014)
103
- { type: "selection", width: 44, fixed: "left", disabled: (t) => t.isSystem },
103
+ { type: "selection", width: 44, fixed: "left", disabled: (a) => a.isSystem },
104
104
  {
105
105
  key: "name",
106
- title: () => a("job.name"),
106
+ title: () => t("job.name"),
107
107
  search: { actions: Y.fuzzy },
108
- minWidth: 180,
108
+ width: 240,
109
+ ellipsis: { tooltip: !0 },
109
110
  card: "title",
110
- render: (t) => m("div", null, [
111
- m("div", { style: "font-weight:500;" }, t.name),
111
+ render: (a) => m("div", null, [
112
+ m("div", { style: "font-weight:500;" }, a.name),
112
113
  m(
113
114
  "div",
114
115
  {
115
116
  style: "font-size:12px;color:var(--text-3);font-family:var(--font-mono,ui-monospace,monospace);"
116
117
  },
117
- t.code
118
+ a.code
118
119
  )
119
120
  ])
120
121
  },
121
122
  {
122
123
  key: "handlerKind",
123
- title: () => a("job.handler.kind"),
124
+ title: () => t("job.handler.kind"),
124
125
  width: 100,
125
126
  tag: !0,
126
127
  search: { actions: Y.exact },
@@ -128,57 +129,57 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
128
129
  },
129
130
  {
130
131
  key: "trigger",
131
- title: () => a("job.trigger.kind"),
132
- minWidth: 150,
132
+ title: () => t("job.trigger.kind"),
133
+ width: 160,
133
134
  ellipsis: { tooltip: !0 },
134
135
  // cron 原文用等宽字体,间隔 / 一次性时刻用等宽数字
135
- render: (t) => m(
136
+ render: (a) => m(
136
137
  "span",
137
- { class: t.triggerKind === v.Cron ? "job-mono" : "tabular" },
138
- Se(t)
138
+ { class: a.triggerKind === v.Cron ? "job-mono" : "tabular" },
139
+ Se(a)
139
140
  )
140
141
  },
141
142
  {
142
143
  key: "status",
143
- title: () => a("common.status"),
144
+ title: () => t("common.status"),
144
145
  width: 130,
145
146
  search: { actions: Y.exact },
146
147
  options: je,
147
148
  render: Te
148
149
  },
149
- { key: "nextRunTime", title: () => a("job.nextRunTime"), width: 176, format: "datetime" },
150
- { key: "lastRunTime", title: () => a("job.lastRunTime"), width: 176, format: "datetime" },
150
+ { key: "nextRunTime", title: () => t("job.nextRunTime"), width: 176, format: "datetime" },
151
+ { key: "lastRunTime", title: () => t("job.lastRunTime"), width: 176, format: "datetime" },
151
152
  {
152
153
  key: "numberOfRuns",
153
- title: () => a("job.runCount"),
154
+ title: () => t("job.runCount"),
154
155
  width: 110,
155
156
  align: "center",
156
- render: (t) => m("span", { class: "tabular" }, [
157
- m("span", null, String(t.numberOfRuns)),
157
+ render: (a) => m("span", { class: "tabular" }, [
158
+ m("span", null, String(a.numberOfRuns)),
158
159
  m("span", { style: "color:var(--text-3);" }, " / "),
159
160
  m(
160
161
  "span",
161
- { style: t.numberOfErrors > 0 ? "color:var(--err);" : "" },
162
- String(t.numberOfErrors)
162
+ { style: a.numberOfErrors > 0 ? "color:var(--err);" : "" },
163
+ String(a.numberOfErrors)
163
164
  )
164
165
  ])
165
166
  },
166
167
  {
167
168
  key: "op",
168
- title: () => a("common.operation"),
169
+ title: () => t("common.operation"),
169
170
  width: 240,
170
171
  fixed: "right",
171
172
  hideInSetting: !0,
172
- render: (t) => m(U, { size: 4, wrapItem: !1 }, () => [
173
+ render: (a) => m(U, { size: 4, wrapItem: !1 }, () => [
173
174
  I.hasPerm("PUT:/api/v1/sys/job/{id}") ? m(
174
175
  h,
175
- { size: "small", quaternary: !0, type: "primary", onClick: () => Ee(t) },
176
- () => a("common.edit")
176
+ { size: "small", quaternary: !0, type: "primary", onClick: () => Ee(a) },
177
+ () => t("common.edit")
177
178
  ) : null,
178
179
  I.hasPerm("POST:/api/v1/sys/job/{id}/run") ? m(
179
180
  h,
180
- { size: "small", quaternary: !0, onClick: () => we(t) },
181
- () => a("job.runOnce")
181
+ { size: "small", quaternary: !0, onClick: () => we(a) },
182
+ () => t("job.runOnce")
182
183
  ) : null,
183
184
  // 记录:携 jobId 跳执行记录页(那边 watch query 自动带上筛选)
184
185
  m(
@@ -186,21 +187,21 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
186
187
  {
187
188
  size: "small",
188
189
  quaternary: !0,
189
- onClick: () => fe.push({ path: "/system/job-log", query: { jobId: String(t.id) } })
190
+ onClick: () => fe.push({ path: "/system/job-log", query: { jobId: String(a.id) } })
190
191
  },
191
- () => a("job.viewLogs")
192
+ () => t("job.viewLogs")
192
193
  ),
193
- I.hasPerm("DELETE:/api/v1/sys/job/{id}") ? t.isSystem ? m(me, null, {
194
+ I.hasPerm("DELETE:/api/v1/sys/job/{id}") ? a.isSystem ? m(me, null, {
194
195
  trigger: () => m(
195
196
  h,
196
197
  { size: "small", quaternary: !0, type: "error", disabled: !0 },
197
- () => a("common.delete")
198
+ () => t("common.delete")
198
199
  ),
199
- default: () => a("job.protectedTip")
200
+ default: () => t("job.protectedTip")
200
201
  }) : m(
201
202
  Be,
202
203
  {
203
- onPositiveClick: () => be(() => C.remove(t.id), a("job.deleted")).then((r) => {
204
+ onPositiveClick: () => be(() => C.remove(a.id), t("job.deleted")).then((r) => {
204
205
  var i;
205
206
  r && ((i = q.value) == null || i.refresh());
206
207
  })
@@ -209,26 +210,26 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
209
210
  trigger: () => m(
210
211
  h,
211
212
  { size: "small", quaternary: !0, type: "error" },
212
- () => a("common.delete")
213
+ () => t("common.delete")
213
214
  ),
214
- default: () => a("job.deleteConfirm", { name: t.name })
215
+ default: () => t("job.deleteConfirm", { name: a.name })
215
216
  }
216
217
  ) : null
217
218
  ])
218
219
  }
219
220
  ];
220
- el(ae);
221
- function we(t) {
221
+ el(te);
222
+ function we(a) {
222
223
  he({
223
- content: a("job.runConfirm", { name: t.name }),
224
- action: () => C.run(t.id),
225
- successMsg: a("job.runStarted")
224
+ content: t("job.runConfirm", { name: a.name }),
225
+ action: () => C.run(a.id),
226
+ successMsg: t("job.runStarted")
226
227
  }).then((r) => {
227
228
  var i;
228
229
  r && ((i = q.value) == null || i.refresh());
229
230
  });
230
231
  }
231
- const N = w(!1), te = w(null), _ = w(null), G = () => ({
232
+ const N = w(!1), ae = w(null), _ = w(null), G = () => ({
232
233
  code: "",
233
234
  name: "",
234
235
  remark: "",
@@ -261,50 +262,50 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
261
262
  code: {
262
263
  required: !0,
263
264
  whitespace: !0,
264
- message: () => a("job.codeRequired"),
265
+ message: () => t("job.codeRequired"),
265
266
  trigger: ["input", "blur"]
266
267
  },
267
268
  name: {
268
269
  required: !0,
269
270
  whitespace: !0,
270
- message: () => a("job.nameRequired"),
271
+ message: () => t("job.nameRequired"),
271
272
  trigger: ["input", "blur"]
272
273
  },
273
274
  // 条件字段的 form-item 随 triggerKind/handlerKind v-if 切换,只有挂着的才参与校验
274
275
  cronExpression: {
275
276
  required: !0,
276
277
  validator: () => !!l.cronExpression.trim(),
277
- message: () => a("job.trigger.cronRequired"),
278
+ message: () => t("job.trigger.cronRequired"),
278
279
  trigger: ["change", "blur"]
279
280
  },
280
281
  intervalSeconds: {
281
282
  required: !0,
282
283
  validator: () => l.intervalSeconds != null && l.intervalSeconds >= 5,
283
- message: () => a("job.trigger.intervalRequired"),
284
+ message: () => t("job.trigger.intervalRequired"),
284
285
  trigger: ["change", "blur"]
285
286
  },
286
287
  oneShotTime: {
287
288
  required: !0,
288
289
  validator: () => !!l.oneShotTime,
289
- message: () => a("job.trigger.oneShotRequired"),
290
+ message: () => t("job.trigger.oneShotRequired"),
290
291
  trigger: ["change", "blur"]
291
292
  },
292
293
  handlerName: {
293
294
  required: !0,
294
295
  validator: () => !!l.handlerName,
295
- message: () => a("job.handler.nameRequired"),
296
+ message: () => t("job.handler.nameRequired"),
296
297
  trigger: ["change", "blur"]
297
298
  },
298
299
  httpUrl: {
299
300
  required: !0,
300
301
  whitespace: !0,
301
- message: () => a("job.handler.httpUrlRequired"),
302
+ message: () => t("job.handler.httpUrlRequired"),
302
303
  trigger: ["input", "blur"]
303
304
  },
304
305
  sqlText: {
305
306
  required: !0,
306
307
  whitespace: !0,
307
- message: () => a("job.handler.sqlRequired"),
308
+ message: () => t("job.handler.sqlRequired"),
308
309
  trigger: ["input", "blur"]
309
310
  }
310
311
  }, re = w([]), $ = w(!0);
@@ -312,35 +313,35 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
312
313
  async function ne() {
313
314
  if (!oe)
314
315
  try {
315
- const t = await C.handlers();
316
- re.value = t.handlers.map((r) => ({ label: r, value: r })), $.value = t.sqlEnabled, oe = !0;
316
+ const a = await C.handlers();
317
+ re.value = a.handlers.map((r) => ({ label: r, value: r })), $.value = a.sqlEnabled, oe = !0;
317
318
  } catch {
318
319
  }
319
320
  }
320
- const Ce = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"].map((t) => ({
321
- label: t,
322
- value: t
321
+ const Ce = ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD"].map((a) => ({
322
+ label: a,
323
+ value: a
323
324
  })), T = {
324
325
  basic: "basic",
325
326
  trigger: "trigger",
326
327
  handler: "handler",
327
328
  advanced: "advanced"
328
329
  }, B = [T.basic, T.trigger, T.handler], H = w([...B]);
329
- function Ne(t) {
330
- return !!t.startTime || !!t.endTime || t.misfireStrategy !== V.Skip || t.concurrencyMode !== J.SerialSkip || t.timeoutSeconds > 0 || t.retryCount > 0 || t.retryIntervalSeconds !== 30 || t.failAlertThreshold > 0 || !t.alertByNotice || !!t.alertEmails;
330
+ function Ne(a) {
331
+ return !!a.startTime || !!a.endTime || a.misfireStrategy !== V.Skip || a.concurrencyMode !== J.SerialSkip || a.timeoutSeconds > 0 || a.retryCount > 0 || a.retryIntervalSeconds !== 30 || a.failAlertThreshold > 0 || !a.alertByNotice || !!a.alertEmails;
331
332
  }
332
- const W = (t) => t ? t.slice(0, 19) : null;
333
+ const Q = (a) => a ? a.slice(0, 19) : null;
333
334
  function _e() {
334
335
  _.value = null, Object.assign(l, G()), H.value = [...B], N.value = !0, ne();
335
336
  }
336
- function Ee(t) {
337
- _.value = t.id, Object.assign(l, G()), H.value = Ne(t) ? [...B, T.advanced] : [...B];
337
+ function Ee(a) {
338
+ _.value = a.id, Object.assign(l, G()), H.value = Ne(a) ? [...B, T.advanced] : [...B];
338
339
  let r = {};
339
340
  try {
340
- r = JSON.parse(t.propsJson || "{}");
341
+ r = JSON.parse(a.propsJson || "{}");
341
342
  } catch {
342
343
  }
343
- if (l.code = t.code, l.name = t.name, l.remark = t.remark ?? "", l.triggerKind = t.triggerKind, l.cronExpression = t.cronExpression ?? "", l.intervalSeconds = t.intervalSeconds ?? 60, l.oneShotTime = W(t.oneShotTime), l.startTime = W(t.startTime), l.endTime = W(t.endTime), l.misfireStrategy = t.misfireStrategy, l.concurrencyMode = t.concurrencyMode, l.handlerKind = t.handlerKind, l.timeoutSeconds = t.timeoutSeconds, l.retryCount = t.retryCount, l.retryIntervalSeconds = t.retryIntervalSeconds, l.failAlertThreshold = t.failAlertThreshold, l.alertByNotice = t.alertByNotice, l.alertEmails = t.alertEmails ?? "", t.handlerKind === f.Http) {
344
+ if (l.code = a.code, l.name = a.name, l.remark = a.remark ?? "", l.triggerKind = a.triggerKind, l.cronExpression = a.cronExpression ?? "", l.intervalSeconds = a.intervalSeconds ?? 60, l.oneShotTime = Q(a.oneShotTime), l.startTime = Q(a.startTime), l.endTime = Q(a.endTime), l.misfireStrategy = a.misfireStrategy, l.concurrencyMode = a.concurrencyMode, l.handlerKind = a.handlerKind, l.timeoutSeconds = a.timeoutSeconds, l.retryCount = a.retryCount, l.retryIntervalSeconds = a.retryIntervalSeconds, l.failAlertThreshold = a.failAlertThreshold, l.alertByNotice = a.alertByNotice, l.alertEmails = a.alertEmails ?? "", a.handlerKind === f.Http) {
344
345
  l.httpUrl = r.url ?? "", l.httpMethod = (r.method ?? "GET").toUpperCase(), l.httpBody = r.body ?? "", l.successStatuses = r.successStatuses ?? "";
345
346
  let i = {};
346
347
  try {
@@ -348,27 +349,27 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
348
349
  } catch {
349
350
  }
350
351
  l.headers = Object.entries(i).map(([s, E]) => ({ key: s, value: E ?? "" }));
351
- } else t.handlerKind === f.Sql ? l.sqlText = r.sql ?? "" : (l.handlerName = t.handlerName, l.props = Object.entries(r).map(([i, s]) => ({ key: i, value: s ?? "" })));
352
+ } else a.handlerKind === f.Sql ? l.sqlText = r.sql ?? "" : (l.handlerName = a.handlerName, l.props = Object.entries(r).map(([i, s]) => ({ key: i, value: s ?? "" })));
352
353
  N.value = !0, ne();
353
354
  }
354
355
  function se() {
355
- const t = {};
356
+ const a = {};
356
357
  if (l.handlerKind === f.Http) {
357
- t.url = l.httpUrl.trim(), t.method = l.httpMethod;
358
+ a.url = l.httpUrl.trim(), a.method = l.httpMethod;
358
359
  const r = {};
359
360
  for (const i of l.headers) i.key.trim() && (r[i.key.trim()] = i.value);
360
- Object.keys(r).length && (t.headers = JSON.stringify(r)), l.httpBody.trim() && (t.body = l.httpBody), l.successStatuses.trim() && (t.successStatuses = l.successStatuses.trim());
361
+ Object.keys(r).length && (a.headers = JSON.stringify(r)), l.httpBody.trim() && (a.body = l.httpBody), l.successStatuses.trim() && (a.successStatuses = l.successStatuses.trim());
361
362
  } else if (l.handlerKind === f.Sql)
362
- t.sql = l.sqlText;
363
+ a.sql = l.sqlText;
363
364
  else
364
- for (const r of l.props) r.key.trim() && (t[r.key.trim()] = r.value);
365
+ for (const r of l.props) r.key.trim() && (a[r.key.trim()] = r.value);
365
366
  return {
366
367
  code: l.code.trim(),
367
368
  name: l.name.trim(),
368
369
  handlerKind: l.handlerKind,
369
370
  // HTTP/SQL 的处理器名由服务端固定填内置处理器,这里传空即可
370
371
  handlerName: l.handlerKind === f.Compiled ? l.handlerName : "",
371
- properties: t,
372
+ properties: a,
372
373
  triggerKind: l.triggerKind,
373
374
  cronExpression: l.triggerKind === v.Cron ? l.cronExpression.trim() : null,
374
375
  intervalSeconds: l.triggerKind === v.Interval ? l.intervalSeconds : null,
@@ -400,22 +401,22 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
400
401
  N.value = !1;
401
402
  });
402
403
  async function qe() {
403
- var t, r;
404
- await ((t = te.value) == null ? void 0 : t.validate());
404
+ var a, r;
405
+ await ((a = ae.value) == null ? void 0 : a.validate());
405
406
  try {
406
- _.value === null ? await C.add(se()) : await C.update(_.value, se()), F.success(a("job.saved")), await ((r = q.value) == null ? void 0 : r.refresh());
407
+ _.value === null ? await C.add(se()) : await C.update(_.value, se()), F.success(t("job.saved")), await ((r = q.value) == null ? void 0 : r.refresh());
407
408
  } catch (i) {
408
409
  return F.error(ce(i)), !1;
409
410
  }
410
411
  }
411
- return (t, r) => {
412
+ return (a, r) => {
412
413
  const i = Pe("auth");
413
414
  return c(), k(P, null, [
414
415
  o(e(Ge), {
415
- toolbar: e(al),
416
+ toolbar: e(tl),
416
417
  ref_key: "tableRef",
417
418
  ref: q,
418
- columns: ae,
419
+ columns: te,
419
420
  fetcher: e(C).page,
420
421
  search: { container: "table" },
421
422
  "fill-height": "",
@@ -427,7 +428,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
427
428
  onError: r[1] || (r[1] = (s) => e(F).error(e(ce)(s)))
428
429
  }, {
429
430
  "pagination-prefix": n(({ itemCount: s }) => [
430
- o(tl, { count: s }, null, 8, ["count"])
431
+ o(al, { count: s }, null, 8, ["count"])
431
432
  ]),
432
433
  "toolbar-right": n(() => [
433
434
  ie((c(), z(e(h), {
@@ -441,7 +442,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
441
442
  })
442
443
  ]),
443
444
  default: n(() => [
444
- p(" " + d(e(a)("common.add")), 1)
445
+ p(" " + d(e(t)("common.add")), 1)
445
446
  ]),
446
447
  _: 1
447
448
  })), [
@@ -460,7 +461,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
460
461
  })
461
462
  ]),
462
463
  default: n(() => [
463
- p(" " + d(e(a)("common.batchDelete")), 1)
464
+ p(" " + d(e(t)("common.batchDelete")), 1)
464
465
  ]),
465
466
  _: 1
466
467
  }, 8, ["onClick"])), [
@@ -481,7 +482,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
481
482
  }, {
482
483
  default: n(() => [
483
484
  o(e(Ae), {
484
- title: _.value === null ? e(a)("job.addTitle") : e(a)("job.editTitle"),
485
+ title: _.value === null ? e(t)("job.addTitle") : e(t)("job.editTitle"),
485
486
  closable: !K.value,
486
487
  "native-scrollbar": !1
487
488
  }, {
@@ -495,7 +496,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
495
496
  onClick: r[29] || (r[29] = (s) => N.value = !1)
496
497
  }, {
497
498
  default: n(() => [
498
- p(d(e(a)("common.cancel")), 1)
499
+ p(d(e(t)("common.cancel")), 1)
499
500
  ]),
500
501
  _: 1
501
502
  }, 8, ["size", "disabled"]),
@@ -506,7 +507,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
506
507
  onClick: Ue
507
508
  }, {
508
509
  default: n(() => [
509
- p(d(e(a)("common.save")), 1)
510
+ p(d(e(t)("common.save")), 1)
510
511
  ]),
511
512
  _: 1
512
513
  }, 8, ["size", "loading"])
@@ -515,7 +516,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
515
516
  default: n(() => [
516
517
  o(e(De), {
517
518
  ref_key: "formRef",
518
- ref: te,
519
+ ref: ae,
519
520
  model: l,
520
521
  rules: xe,
521
522
  "label-placement": e(Z) ? "left" : "top",
@@ -534,7 +535,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
534
535
  name: T.basic
535
536
  }, {
536
537
  header: n(() => [
537
- y("span", ol, d(e(a)("job.form.sectionBasic")), 1)
538
+ y("span", ol, d(e(t)("job.form.sectionBasic")), 1)
538
539
  ]),
539
540
  default: n(() => [
540
541
  o(e(D), {
@@ -545,35 +546,35 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
545
546
  }, {
546
547
  default: n(() => [
547
548
  o(e(u), {
548
- label: e(a)("job.code"),
549
+ label: e(t)("job.code"),
549
550
  path: "code"
550
551
  }, {
551
552
  default: n(() => [
552
553
  o(e(g), {
553
554
  value: l.code,
554
555
  "onUpdate:value": r[2] || (r[2] = (s) => l.code = s),
555
- placeholder: e(a)("job.codePlaceholder"),
556
+ placeholder: e(t)("job.codePlaceholder"),
556
557
  disabled: _.value !== null
557
558
  }, null, 8, ["value", "placeholder", "disabled"])
558
559
  ]),
559
560
  _: 1
560
561
  }, 8, ["label"]),
561
562
  o(e(u), {
562
- label: e(a)("job.name"),
563
+ label: e(t)("job.name"),
563
564
  path: "name"
564
565
  }, {
565
566
  default: n(() => [
566
567
  o(e(g), {
567
568
  value: l.name,
568
569
  "onUpdate:value": r[3] || (r[3] = (s) => l.name = s),
569
- placeholder: e(a)("job.name")
570
+ placeholder: e(t)("job.name")
570
571
  }, null, 8, ["value", "placeholder"])
571
572
  ]),
572
573
  _: 1
573
574
  }, 8, ["label"]),
574
575
  o(e(u), {
575
576
  span: 2,
576
- label: e(a)("job.remark"),
577
+ label: e(t)("job.remark"),
577
578
  "show-feedback": !1
578
579
  }, {
579
580
  default: n(() => [
@@ -596,7 +597,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
596
597
  name: T.trigger
597
598
  }, {
598
599
  header: n(() => [
599
- y("span", nl, d(e(a)("job.form.sectionTrigger")), 1)
600
+ y("span", nl, d(e(t)("job.form.sectionTrigger")), 1)
600
601
  ]),
601
602
  default: n(() => [
602
603
  o(e(D), {
@@ -607,7 +608,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
607
608
  }, {
608
609
  default: n(() => [
609
610
  o(e(u), {
610
- label: e(a)("job.trigger.kind"),
611
+ label: e(t)("job.trigger.kind"),
611
612
  "show-feedback": !1
612
613
  }, {
613
614
  default: n(() => [
@@ -622,7 +623,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
622
623
  value: e(v).Cron
623
624
  }, {
624
625
  default: n(() => [
625
- p(d(e(a)("job.trigger.cron")), 1)
626
+ p(d(e(t)("job.trigger.cron")), 1)
626
627
  ]),
627
628
  _: 1
628
629
  }, 8, ["value"]),
@@ -630,7 +631,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
630
631
  value: e(v).Interval
631
632
  }, {
632
633
  default: n(() => [
633
- p(d(e(a)("job.trigger.interval")), 1)
634
+ p(d(e(t)("job.trigger.interval")), 1)
634
635
  ]),
635
636
  _: 1
636
637
  }, 8, ["value"]),
@@ -638,7 +639,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
638
639
  value: e(v).OneShot
639
640
  }, {
640
641
  default: n(() => [
641
- p(d(e(a)("job.trigger.oneShot")), 1)
642
+ p(d(e(t)("job.trigger.oneShot")), 1)
642
643
  ]),
643
644
  _: 1
644
645
  }, 8, ["value"])
@@ -653,7 +654,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
653
654
  }, 8, ["label"]),
654
655
  l.triggerKind === e(v).Interval ? (c(), z(e(u), {
655
656
  key: 0,
656
- label: e(a)("job.trigger.intervalSeconds"),
657
+ label: e(t)("job.trigger.intervalSeconds"),
657
658
  path: "intervalSeconds"
658
659
  }, {
659
660
  default: n(() => [
@@ -664,7 +665,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
664
665
  style: { width: "200px" }
665
666
  }, {
666
667
  suffix: n(() => [
667
- p(d(e(a)("job.trigger.seconds")), 1)
668
+ p(d(e(t)("job.trigger.seconds")), 1)
668
669
  ]),
669
670
  _: 1
670
671
  }, 8, ["value"])
@@ -673,11 +674,11 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
673
674
  }, 8, ["label"])) : x("", !0),
674
675
  l.triggerKind === e(v).OneShot ? (c(), z(e(u), {
675
676
  key: 1,
676
- label: e(a)("job.trigger.oneShotTime"),
677
+ label: e(t)("job.trigger.oneShotTime"),
677
678
  path: "oneShotTime"
678
679
  }, {
679
680
  default: n(() => [
680
- o(e(Q), {
681
+ o(e(W), {
681
682
  "formatted-value": l.oneShotTime,
682
683
  "onUpdate:formattedValue": r[7] || (r[7] = (s) => l.oneShotTime = s),
683
684
  type: "datetime",
@@ -691,11 +692,11 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
691
692
  l.triggerKind === e(v).Cron ? (c(), z(e(u), {
692
693
  key: 2,
693
694
  span: 2,
694
- label: e(a)("job.trigger.cronExpression"),
695
+ label: e(t)("job.trigger.cronExpression"),
695
696
  path: "cronExpression"
696
697
  }, {
697
698
  default: n(() => [
698
- o(We, {
699
+ o(Qe, {
699
700
  "model-value": l.cronExpression,
700
701
  "onUpdate:modelValue": r[8] || (r[8] = (s) => l.cronExpression = s)
701
702
  }, null, 8, ["model-value"])
@@ -712,7 +713,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
712
713
  name: T.handler
713
714
  }, {
714
715
  header: n(() => [
715
- y("span", sl, d(e(a)("job.form.sectionHandler")), 1)
716
+ y("span", sl, d(e(t)("job.form.sectionHandler")), 1)
716
717
  ]),
717
718
  default: n(() => [
718
719
  o(e(D), {
@@ -724,7 +725,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
724
725
  default: n(() => [
725
726
  o(e(u), {
726
727
  span: 2,
727
- label: e(a)("job.handler.kind"),
728
+ label: e(t)("job.handler.kind"),
728
729
  "show-feedback": !1
729
730
  }, {
730
731
  default: n(() => [
@@ -741,7 +742,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
741
742
  value: e(f).Compiled
742
743
  }, {
743
744
  default: n(() => [
744
- p(d(e(a)("job.handler.compiled")), 1)
745
+ p(d(e(t)("job.handler.compiled")), 1)
745
746
  ]),
746
747
  _: 1
747
748
  }, 8, ["value"]),
@@ -749,7 +750,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
749
750
  value: e(f).Http
750
751
  }, {
751
752
  default: n(() => [
752
- p(d(e(a)("job.handler.http")), 1)
753
+ p(d(e(t)("job.handler.http")), 1)
753
754
  ]),
754
755
  _: 1
755
756
  }, 8, ["value"]),
@@ -758,7 +759,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
758
759
  disabled: !$.value
759
760
  }, {
760
761
  default: n(() => [
761
- p(d(e(a)("job.handler.sql")), 1)
762
+ p(d(e(t)("job.handler.sql")), 1)
762
763
  ]),
763
764
  _: 1
764
765
  }, 8, ["value", "disabled"])
@@ -768,7 +769,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
768
769
  ]),
769
770
  _: 1
770
771
  }, 8, ["value"]),
771
- $.value ? x("", !0) : (c(), k("span", il, d(e(a)("job.handler.sqlDisabledHint")), 1))
772
+ $.value ? x("", !0) : (c(), k("span", il, d(e(t)("job.handler.sqlDisabledHint")), 1))
772
773
  ]),
773
774
  _: 1
774
775
  })
@@ -778,7 +779,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
778
779
  l.handlerKind === e(f).Compiled ? (c(), k(P, { key: 0 }, [
779
780
  o(e(u), {
780
781
  span: 2,
781
- label: e(a)("job.handler.name"),
782
+ label: e(t)("job.handler.name"),
782
783
  path: "handlerName"
783
784
  }, {
784
785
  default: n(() => [
@@ -787,14 +788,14 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
787
788
  "onUpdate:value": r[10] || (r[10] = (s) => l.handlerName = s),
788
789
  filterable: "",
789
790
  options: re.value,
790
- placeholder: e(a)("job.handler.namePlaceholder")
791
+ placeholder: e(t)("job.handler.namePlaceholder")
791
792
  }, null, 8, ["value", "options", "placeholder"])
792
793
  ]),
793
794
  _: 1
794
795
  }, 8, ["label"]),
795
796
  o(e(u), {
796
797
  span: 2,
797
- label: e(a)("job.handler.props"),
798
+ label: e(t)("job.handler.props"),
798
799
  "show-feedback": !1
799
800
  }, {
800
801
  default: n(() => [
@@ -807,19 +808,19 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
807
808
  value: s.key,
808
809
  "onUpdate:value": (S) => s.key = S,
809
810
  size: "small",
810
- placeholder: e(a)("job.handler.propKey")
811
+ placeholder: e(t)("job.handler.propKey")
811
812
  }, null, 8, ["value", "onUpdate:value", "placeholder"]),
812
813
  o(e(g), {
813
814
  value: s.value,
814
815
  "onUpdate:value": (S) => s.value = S,
815
816
  size: "small",
816
- placeholder: e(a)("job.handler.propValue")
817
+ placeholder: e(t)("job.handler.propValue")
817
818
  }, null, 8, ["value", "onUpdate:value", "placeholder"]),
818
819
  o(e(h), {
819
820
  quaternary: "",
820
821
  circle: "",
821
822
  size: "small",
822
- "aria-label": e(a)("common.delete"),
823
+ "aria-label": e(t)("common.delete"),
823
824
  onClick: (S) => l.props.splice(E, 1)
824
825
  }, {
825
826
  icon: n(() => [
@@ -843,7 +844,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
843
844
  })
844
845
  ]),
845
846
  default: n(() => [
846
- p(" " + d(e(a)("job.handler.addProp")), 1)
847
+ p(" " + d(e(t)("job.handler.addProp")), 1)
847
848
  ]),
848
849
  _: 1
849
850
  })
@@ -855,7 +856,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
855
856
  l.handlerKind === e(f).Http ? (c(), k(P, { key: 1 }, [
856
857
  o(e(u), {
857
858
  span: 2,
858
- label: e(a)("job.handler.httpUrl"),
859
+ label: e(t)("job.handler.httpUrl"),
859
860
  path: "httpUrl"
860
861
  }, {
861
862
  default: n(() => [
@@ -868,7 +869,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
868
869
  _: 1
869
870
  }, 8, ["label"]),
870
871
  o(e(u), {
871
- label: e(a)("job.handler.httpMethod"),
872
+ label: e(t)("job.handler.httpMethod"),
872
873
  "show-feedback": !1
873
874
  }, {
874
875
  default: n(() => [
@@ -882,14 +883,14 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
882
883
  _: 1
883
884
  }, 8, ["label"]),
884
885
  o(e(u), {
885
- label: e(a)("job.handler.successStatuses"),
886
+ label: e(t)("job.handler.successStatuses"),
886
887
  "show-feedback": !1
887
888
  }, {
888
889
  default: n(() => [
889
890
  o(e(g), {
890
891
  value: l.successStatuses,
891
892
  "onUpdate:value": r[14] || (r[14] = (s) => l.successStatuses = s),
892
- placeholder: e(a)("job.handler.successStatusesPlaceholder"),
893
+ placeholder: e(t)("job.handler.successStatusesPlaceholder"),
893
894
  style: { width: "240px" }
894
895
  }, null, 8, ["value", "placeholder"])
895
896
  ]),
@@ -897,7 +898,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
897
898
  }, 8, ["label"]),
898
899
  o(e(u), {
899
900
  span: 2,
900
- label: e(a)("job.handler.httpHeaders"),
901
+ label: e(t)("job.handler.httpHeaders"),
901
902
  "show-feedback": !1
902
903
  }, {
903
904
  default: n(() => [
@@ -910,19 +911,19 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
910
911
  value: s.key,
911
912
  "onUpdate:value": (S) => s.key = S,
912
913
  size: "small",
913
- placeholder: e(a)("job.handler.propKey")
914
+ placeholder: e(t)("job.handler.propKey")
914
915
  }, null, 8, ["value", "onUpdate:value", "placeholder"]),
915
916
  o(e(g), {
916
917
  value: s.value,
917
918
  "onUpdate:value": (S) => s.value = S,
918
919
  size: "small",
919
- placeholder: e(a)("job.handler.propValue")
920
+ placeholder: e(t)("job.handler.propValue")
920
921
  }, null, 8, ["value", "onUpdate:value", "placeholder"]),
921
922
  o(e(h), {
922
923
  quaternary: "",
923
924
  circle: "",
924
925
  size: "small",
925
- "aria-label": e(a)("common.delete"),
926
+ "aria-label": e(t)("common.delete"),
926
927
  onClick: (S) => l.headers.splice(E, 1)
927
928
  }, {
928
929
  icon: n(() => [
@@ -946,18 +947,18 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
946
947
  })
947
948
  ]),
948
949
  default: n(() => [
949
- p(" " + d(e(a)("job.handler.addProp")), 1)
950
+ p(" " + d(e(t)("job.handler.addProp")), 1)
950
951
  ]),
951
952
  _: 1
952
953
  }),
953
- _.value !== null ? (c(), k("span", ml, d(e(a)("job.handler.headersMaskHint")), 1)) : x("", !0)
954
+ _.value !== null ? (c(), k("span", ml, d(e(t)("job.handler.headersMaskHint")), 1)) : x("", !0)
954
955
  ])
955
956
  ]),
956
957
  _: 1
957
958
  }, 8, ["label"]),
958
959
  o(e(u), {
959
960
  span: 2,
960
- label: e(a)("job.handler.httpBody"),
961
+ label: e(t)("job.handler.httpBody"),
961
962
  "show-feedback": !1
962
963
  }, {
963
964
  default: n(() => [
@@ -974,7 +975,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
974
975
  l.handlerKind === e(f).Sql ? (c(), z(e(u), {
975
976
  key: 2,
976
977
  span: 2,
977
- label: e(a)("job.handler.sqlText"),
978
+ label: e(t)("job.handler.sqlText"),
978
979
  path: "sqlText"
979
980
  }, {
980
981
  default: n(() => [
@@ -999,8 +1000,8 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
999
1000
  class: "job-advanced"
1000
1001
  }, {
1001
1002
  header: n(() => [
1002
- y("span", pl, d(e(a)("job.form.sectionAdvanced")), 1),
1003
- y("span", cl, d(e(a)("job.form.sectionAdvancedHint")), 1)
1003
+ y("span", pl, d(e(t)("job.form.sectionAdvanced")), 1),
1004
+ y("span", cl, d(e(t)("job.form.sectionAdvancedHint")), 1)
1004
1005
  ]),
1005
1006
  default: n(() => [
1006
1007
  o(e(D), {
@@ -1011,34 +1012,34 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1011
1012
  }, {
1012
1013
  default: n(() => [
1013
1014
  o(e(u), {
1014
- label: e(a)("job.form.startTime"),
1015
+ label: e(t)("job.form.startTime"),
1015
1016
  "show-feedback": !1
1016
1017
  }, {
1017
1018
  default: n(() => [
1018
- o(e(Q), {
1019
+ o(e(W), {
1019
1020
  "formatted-value": l.startTime,
1020
1021
  "onUpdate:formattedValue": r[18] || (r[18] = (s) => l.startTime = s),
1021
1022
  type: "datetime",
1022
1023
  "value-format": "yyyy-MM-dd'T'HH:mm:ss",
1023
1024
  clearable: "",
1024
- placeholder: e(a)("job.form.windowPlaceholder"),
1025
+ placeholder: e(t)("job.form.windowPlaceholder"),
1025
1026
  style: { width: "100%" }
1026
1027
  }, null, 8, ["formatted-value", "placeholder"])
1027
1028
  ]),
1028
1029
  _: 1
1029
1030
  }, 8, ["label"]),
1030
1031
  o(e(u), {
1031
- label: e(a)("job.form.endTime"),
1032
+ label: e(t)("job.form.endTime"),
1032
1033
  "show-feedback": !1
1033
1034
  }, {
1034
1035
  default: n(() => [
1035
- o(e(Q), {
1036
+ o(e(W), {
1036
1037
  "formatted-value": l.endTime,
1037
1038
  "onUpdate:formattedValue": r[19] || (r[19] = (s) => l.endTime = s),
1038
1039
  type: "datetime",
1039
1040
  "value-format": "yyyy-MM-dd'T'HH:mm:ss",
1040
1041
  clearable: "",
1041
- placeholder: e(a)("job.form.windowPlaceholder"),
1042
+ placeholder: e(t)("job.form.windowPlaceholder"),
1042
1043
  style: { width: "100%" }
1043
1044
  }, null, 8, ["formatted-value", "placeholder"])
1044
1045
  ]),
@@ -1046,7 +1047,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1046
1047
  }, 8, ["label"]),
1047
1048
  o(e(u), {
1048
1049
  span: 2,
1049
- label: e(a)("job.form.misfireStrategy"),
1050
+ label: e(t)("job.form.misfireStrategy"),
1050
1051
  "show-feedback": !1
1051
1052
  }, {
1052
1053
  default: n(() => [
@@ -1061,7 +1062,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1061
1062
  value: e(V).Skip
1062
1063
  }, {
1063
1064
  default: n(() => [
1064
- p(d(e(a)("job.form.misfireSkip")), 1)
1065
+ p(d(e(t)("job.form.misfireSkip")), 1)
1065
1066
  ]),
1066
1067
  _: 1
1067
1068
  }, 8, ["value"]),
@@ -1069,7 +1070,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1069
1070
  value: e(V).FireOnceNow
1070
1071
  }, {
1071
1072
  default: n(() => [
1072
- p(d(e(a)("job.form.misfireFireOnceNow")), 1)
1073
+ p(d(e(t)("job.form.misfireFireOnceNow")), 1)
1073
1074
  ]),
1074
1075
  _: 1
1075
1076
  }, 8, ["value"])
@@ -1084,7 +1085,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1084
1085
  }, 8, ["label"]),
1085
1086
  o(e(u), {
1086
1087
  span: 2,
1087
- label: e(a)("job.form.concurrencyMode"),
1088
+ label: e(t)("job.form.concurrencyMode"),
1088
1089
  "show-feedback": !1
1089
1090
  }, {
1090
1091
  default: n(() => [
@@ -1099,7 +1100,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1099
1100
  value: e(J).SerialSkip
1100
1101
  }, {
1101
1102
  default: n(() => [
1102
- p(d(e(a)("job.form.concurrencySerial")), 1)
1103
+ p(d(e(t)("job.form.concurrencySerial")), 1)
1103
1104
  ]),
1104
1105
  _: 1
1105
1106
  }, 8, ["value"]),
@@ -1107,7 +1108,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1107
1108
  value: e(J).Parallel
1108
1109
  }, {
1109
1110
  default: n(() => [
1110
- p(d(e(a)("job.form.concurrencyParallel")), 1)
1111
+ p(d(e(t)("job.form.concurrencyParallel")), 1)
1111
1112
  ]),
1112
1113
  _: 1
1113
1114
  }, 8, ["value"])
@@ -1121,7 +1122,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1121
1122
  _: 1
1122
1123
  }, 8, ["label"]),
1123
1124
  o(e(u), {
1124
- label: e(a)("job.form.timeoutSeconds"),
1125
+ label: e(t)("job.form.timeoutSeconds"),
1125
1126
  "show-feedback": !1
1126
1127
  }, {
1127
1128
  default: n(() => [
@@ -1132,13 +1133,13 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1132
1133
  min: 0,
1133
1134
  style: { width: "140px" }
1134
1135
  }, null, 8, ["value"]),
1135
- y("span", bl, d(e(a)("job.form.timeoutHint")), 1)
1136
+ y("span", bl, d(e(t)("job.form.timeoutHint")), 1)
1136
1137
  ])
1137
1138
  ]),
1138
1139
  _: 1
1139
1140
  }, 8, ["label"]),
1140
1141
  o(e(u), {
1141
- label: e(a)("job.form.retryCount"),
1142
+ label: e(t)("job.form.retryCount"),
1142
1143
  "show-feedback": !1
1143
1144
  }, {
1144
1145
  default: n(() => [
@@ -1153,7 +1154,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1153
1154
  _: 1
1154
1155
  }, 8, ["label"]),
1155
1156
  o(e(u), {
1156
- label: e(a)("job.form.retryIntervalSeconds"),
1157
+ label: e(t)("job.form.retryIntervalSeconds"),
1157
1158
  "show-feedback": !1
1158
1159
  }, {
1159
1160
  default: n(() => [
@@ -1167,7 +1168,7 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1167
1168
  _: 1
1168
1169
  }, 8, ["label"]),
1169
1170
  o(e(u), {
1170
- label: e(a)("job.form.failAlertThreshold"),
1171
+ label: e(t)("job.form.failAlertThreshold"),
1171
1172
  "show-feedback": !1
1172
1173
  }, {
1173
1174
  default: n(() => [
@@ -1178,13 +1179,13 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1178
1179
  min: 0,
1179
1180
  style: { width: "140px" }
1180
1181
  }, null, 8, ["value"]),
1181
- y("span", vl, d(e(a)("job.form.failAlertHint")), 1)
1182
+ y("span", vl, d(e(t)("job.form.failAlertHint")), 1)
1182
1183
  ])
1183
1184
  ]),
1184
1185
  _: 1
1185
1186
  }, 8, ["label"]),
1186
1187
  o(e(u), {
1187
- label: e(a)("job.form.alertByNotice"),
1188
+ label: e(t)("job.form.alertByNotice"),
1188
1189
  "show-feedback": !1
1189
1190
  }, {
1190
1191
  default: n(() => [
@@ -1196,14 +1197,14 @@ const ol = { class: "job-sec-text" }, nl = { class: "job-sec-text" }, sl = { cla
1196
1197
  _: 1
1197
1198
  }, 8, ["label"]),
1198
1199
  o(e(u), {
1199
- label: e(a)("job.form.alertEmails"),
1200
+ label: e(t)("job.form.alertEmails"),
1200
1201
  "show-feedback": !1
1201
1202
  }, {
1202
1203
  default: n(() => [
1203
1204
  o(e(g), {
1204
1205
  value: l.alertEmails,
1205
1206
  "onUpdate:value": r[27] || (r[27] = (s) => l.alertEmails = s),
1206
- placeholder: e(a)("job.form.alertEmailsPlaceholder")
1207
+ placeholder: e(t)("job.form.alertEmailsPlaceholder")
1207
1208
  }, null, 8, ["value", "placeholder"])
1208
1209
  ]),
1209
1210
  _: 1