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.
- package/dist/api/index.d.ts +19 -1
- package/dist/api/index.js +85 -66
- package/dist/api/index.js.map +1 -1
- package/dist/api/schema.d.ts +448 -1
- package/dist/assets/icons/ph-subset.json.js +1 -1
- package/dist/components/FormContainer/index.vue.js +87 -75
- package/dist/components/FormContainer/index.vue.js.map +1 -1
- package/dist/components/UserPicker/UserAvatar.vue.d.ts +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js +8 -0
- package/dist/components/UserPicker/UserAvatar.vue.js.map +1 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js +38 -0
- package/dist/components/UserPicker/UserAvatar2.vue.js.map +1 -0
- package/dist/components/UserPicker/index.vue.js +1 -1
- package/dist/components/UserPicker/index2.vue.js +328 -186
- package/dist/components/UserPicker/index2.vue.js.map +1 -1
- package/dist/composables/authMenuRoute.d.ts +10 -0
- package/dist/composables/authMenuRoute.js +39 -23
- package/dist/composables/authMenuRoute.js.map +1 -1
- package/dist/composables/useModule.d.ts +3 -1
- package/dist/composables/useModule.js +44 -32
- package/dist/composables/useModule.js.map +1 -1
- package/dist/index.js +246 -242
- package/dist/layouts/components/SideNav.vue.js +2 -2
- package/dist/layouts/components/SideNav2.vue.js.map +1 -1
- package/dist/lib/runtime.js +1 -1
- package/dist/lib/watermark.d.ts +1 -1
- package/dist/locales/en-US.d.ts +68 -3
- package/dist/locales/en-US.js +74 -8
- package/dist/locales/en-US.js.map +1 -1
- package/dist/locales/kernelMenuTitles.js +1 -0
- package/dist/locales/kernelMenuTitles.js.map +1 -1
- package/dist/locales/zh-CN.d.ts +68 -3
- package/dist/locales/zh-CN.js +74 -8
- package/dist/locales/zh-CN.js.map +1 -1
- package/dist/router/viewRegistry.js +6 -6
- package/dist/router/viewRegistry.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/theme/naive-theme.js +80 -77
- package/dist/theme/naive-theme.js.map +1 -1
- package/dist/types/api.d.ts +91 -0
- package/dist/types/api.js +17 -15
- package/dist/types/api.js.map +1 -1
- package/dist/utils/shake.d.ts +1 -0
- package/dist/utils/shake.js +30 -0
- package/dist/utils/shake.js.map +1 -0
- package/dist/utils/tree.d.ts +15 -0
- package/dist/utils/tree.js +43 -29
- package/dist/utils/tree.js.map +1 -1
- package/dist/utils/treeCard.d.ts +6 -0
- package/dist/utils/treeCard.js +9 -0
- package/dist/utils/treeCard.js.map +1 -0
- package/dist/views/error/404.vue.js +2 -2
- package/dist/views/error/4042.vue.js +81 -24
- package/dist/views/error/4042.vue.js.map +1 -1
- package/dist/views/login/LoginForm.vue.js +2 -2
- package/dist/views/login/LoginForm2.vue.js +135 -135
- package/dist/views/login/LoginForm2.vue.js.map +1 -1
- package/dist/views/login/components/LoginDesk.vue.js +2 -2
- package/dist/views/login/components/LoginDesk2.vue.js +59 -47
- package/dist/views/login/components/LoginDesk2.vue.js.map +1 -1
- package/dist/views/login/components/LoginHeroPanel.vue.js +2 -2
- package/dist/views/login/components/LoginHeroPanel2.vue.js.map +1 -1
- package/dist/views/personal/notice2.vue.js +1 -1
- package/dist/views/personal/notice2.vue.js.map +1 -1
- package/dist/views/personal/sessions.vue.js +2 -2
- package/dist/views/personal/sessions2.vue.js +41 -40
- package/dist/views/personal/sessions2.vue.js.map +1 -1
- package/dist/views/system/ai-usage/index.vue.js +3 -3
- package/dist/views/system/ai-usage/index2.vue.js +13 -12
- package/dist/views/system/ai-usage/index2.vue.js.map +1 -1
- package/dist/views/system/config/components/AdvancedSection.vue.js +3 -3
- package/dist/views/system/config/components/AdvancedSection2.vue.js +2 -1
- package/dist/views/system/config/components/AdvancedSection2.vue.js.map +1 -1
- package/dist/views/system/dict/index.vue.js +2 -2
- package/dist/views/system/dict/index2.vue.js +12 -1
- package/dist/views/system/dict/index2.vue.js.map +1 -1
- package/dist/views/system/file/index2.vue.js +1 -0
- package/dist/views/system/file/index2.vue.js.map +1 -1
- package/dist/views/system/job/index.vue.js +3 -3
- package/dist/views/system/job/index2.vue.js +182 -181
- package/dist/views/system/job/index2.vue.js.map +1 -1
- package/dist/views/system/job-log/components/AttemptTable2.vue.js +8 -3
- package/dist/views/system/job-log/components/AttemptTable2.vue.js.map +1 -1
- package/dist/views/system/job-log/index.vue.js +1 -1
- package/dist/views/system/job-log/index2.vue.js +5 -5
- package/dist/views/system/job-log/index2.vue.js.map +1 -1
- package/dist/views/system/job-monitor/index.vue.js +2 -2
- package/dist/views/system/job-monitor/index2.vue.js +46 -46
- package/dist/views/system/job-monitor/index2.vue.js.map +1 -1
- package/dist/views/system/log/exception/index.vue.js +2 -2
- package/dist/views/system/log/exception/index2.vue.js +8 -5
- package/dist/views/system/log/exception/index2.vue.js.map +1 -1
- package/dist/views/system/log/login/index2.vue.js +21 -12
- package/dist/views/system/log/login/index2.vue.js.map +1 -1
- package/dist/views/system/log/op/index.vue.js +2 -2
- package/dist/views/system/log/op/index2.vue.js +50 -40
- package/dist/views/system/log/op/index2.vue.js.map +1 -1
- package/dist/views/system/menu/components/ButtonManager.vue.js +2 -2
- package/dist/views/system/menu/components/ButtonManager2.vue.js +45 -36
- package/dist/views/system/menu/components/ButtonManager2.vue.js.map +1 -1
- package/dist/views/system/menu/index.vue.js +1 -1
- package/dist/views/system/menu/index2.vue.js +162 -151
- package/dist/views/system/menu/index2.vue.js.map +1 -1
- package/dist/views/system/module/index.vue.js +1 -1
- package/dist/views/system/module/index2.vue.js +171 -117
- package/dist/views/system/module/index2.vue.js.map +1 -1
- package/dist/views/system/notice/index.vue.js +3 -3
- package/dist/views/system/notice/index2.vue.js +1 -0
- package/dist/views/system/notice/index2.vue.js.map +1 -1
- package/dist/views/system/org/index.vue.js +2 -2
- package/dist/views/system/org/index2.vue.js +204 -195
- package/dist/views/system/org/index2.vue.js.map +1 -1
- package/dist/views/system/position/index.vue.js +2 -2
- package/dist/views/system/position/index2.vue.js +57 -48
- package/dist/views/system/position/index2.vue.js.map +1 -1
- package/dist/views/system/recycle/index.vue.js +1 -1
- package/dist/views/system/recycle/index2.vue.js +3 -1
- package/dist/views/system/recycle/index2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuSheet.vue.d.ts +2 -0
- package/dist/views/system/role/components/GrantMenuSheet.vue.js +2 -2
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js +54 -49
- package/dist/views/system/role/components/GrantMenuSheet2.vue.js.map +1 -1
- package/dist/views/system/role/components/GrantMenuTable.vue.js +1 -1
- package/dist/views/system/role/components/GrantMenuTable2.vue.js +159 -195
- package/dist/views/system/role/components/GrantMenuTable2.vue.js.map +1 -1
- package/dist/views/system/role/components/grantMenuGroups.d.ts +54 -0
- package/dist/views/system/role/components/grantMenuGroups.js +116 -76
- package/dist/views/system/role/components/grantMenuGroups.js.map +1 -1
- package/dist/views/system/role/index.vue.js +2 -2
- package/dist/views/system/role/index2.vue.js +152 -145
- package/dist/views/system/role/index2.vue.js.map +1 -1
- package/dist/views/system/session/index2.vue.js +39 -35
- package/dist/views/system/session/index2.vue.js.map +1 -1
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.d.ts +10 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js +96 -0
- package/dist/views/system/user/components/UserGrantEffectiveTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuSheet.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js +216 -0
- package/dist/views/system/user/components/UserGrantMenuSheet2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.d.ts +13 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantMenuTable.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js +186 -0
- package/dist/views/system/user/components/UserGrantMenuTable2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.d.ts +31 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js +8 -0
- package/dist/views/system/user/components/UserGrantNodeRow.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js +171 -0
- package/dist/views/system/user/components/UserGrantNodeRow2.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.d.ts +21 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js +5 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer.vue.js.map +1 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js +178 -0
- package/dist/views/system/user/components/UserGrantOverviewDrawer2.vue.js.map +1 -0
- package/dist/views/system/user/components/userGrantState.d.ts +64 -0
- package/dist/views/system/user/components/userGrantState.js +117 -0
- package/dist/views/system/user/components/userGrantState.js.map +1 -0
- package/dist/views/system/user/index.vue.js +2 -2
- package/dist/views/system/user/index2.vue.js +369 -295
- package/dist/views/system/user/index2.vue.js.map +1 -1
- 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
|
|
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
|
|
10
|
-
import { useConfirm as
|
|
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
|
|
18
|
-
import
|
|
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
|
|
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
|
|
34
|
-
return (
|
|
33
|
+
var a;
|
|
34
|
+
return (a = q.value) == null ? void 0 : a.refresh();
|
|
35
35
|
},
|
|
36
|
-
successMsg:
|
|
36
|
+
successMsg: t("job.deleted")
|
|
37
37
|
}), ge = [
|
|
38
38
|
{
|
|
39
|
-
label: () =>
|
|
39
|
+
label: () => t("job.handler.compiled"),
|
|
40
40
|
value: f.Compiled,
|
|
41
41
|
tagType: "info"
|
|
42
42
|
},
|
|
43
|
-
{ label: () =>
|
|
44
|
-
{ label: () =>
|
|
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: () =>
|
|
47
|
-
{ label: () =>
|
|
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: () =>
|
|
49
|
+
label: () => t("job.status.completed"),
|
|
50
50
|
value: b.Completed,
|
|
51
51
|
tagType: "default"
|
|
52
52
|
},
|
|
53
|
-
{ label: () =>
|
|
53
|
+
{ label: () => t("job.status.panic"), value: b.Panic, tagType: "error" }
|
|
54
54
|
];
|
|
55
|
-
function Se(
|
|
56
|
-
switch (
|
|
55
|
+
function Se(a) {
|
|
56
|
+
switch (a.triggerKind) {
|
|
57
57
|
case v.Interval:
|
|
58
|
-
return
|
|
58
|
+
return t("job.trigger.everySeconds", { n: a.intervalSeconds ?? 0 });
|
|
59
59
|
case v.OneShot:
|
|
60
|
-
return rl(
|
|
60
|
+
return rl(a.oneShotTime, { empty: "—" });
|
|
61
61
|
default:
|
|
62
|
-
return
|
|
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 = (
|
|
71
|
-
|
|
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(
|
|
74
|
-
if (
|
|
75
|
-
return m(X, { size: "small", bordered: !1 }, () => le(
|
|
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[
|
|
80
|
-
() => le(
|
|
79
|
+
{ size: "small", bordered: !1, type: ke[a.status] },
|
|
80
|
+
() => le(a.status)
|
|
81
81
|
);
|
|
82
82
|
const r = m($e, {
|
|
83
|
-
value:
|
|
84
|
-
confirm: (i) => i ? null :
|
|
85
|
-
request: (i) => C.setEnabled(
|
|
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
|
|
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" }, () =>
|
|
96
|
-
default: () =>
|
|
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
|
|
101
|
-
{ type: "index", title: () =>
|
|
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: (
|
|
103
|
+
{ type: "selection", width: 44, fixed: "left", disabled: (a) => a.isSystem },
|
|
104
104
|
{
|
|
105
105
|
key: "name",
|
|
106
|
-
title: () =>
|
|
106
|
+
title: () => t("job.name"),
|
|
107
107
|
search: { actions: Y.fuzzy },
|
|
108
|
-
|
|
108
|
+
width: 240,
|
|
109
|
+
ellipsis: { tooltip: !0 },
|
|
109
110
|
card: "title",
|
|
110
|
-
render: (
|
|
111
|
-
m("div", { style: "font-weight:500;" },
|
|
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
|
-
|
|
118
|
+
a.code
|
|
118
119
|
)
|
|
119
120
|
])
|
|
120
121
|
},
|
|
121
122
|
{
|
|
122
123
|
key: "handlerKind",
|
|
123
|
-
title: () =>
|
|
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: () =>
|
|
132
|
-
|
|
132
|
+
title: () => t("job.trigger.kind"),
|
|
133
|
+
width: 160,
|
|
133
134
|
ellipsis: { tooltip: !0 },
|
|
134
135
|
// cron 原文用等宽字体,间隔 / 一次性时刻用等宽数字
|
|
135
|
-
render: (
|
|
136
|
+
render: (a) => m(
|
|
136
137
|
"span",
|
|
137
|
-
{ class:
|
|
138
|
-
Se(
|
|
138
|
+
{ class: a.triggerKind === v.Cron ? "job-mono" : "tabular" },
|
|
139
|
+
Se(a)
|
|
139
140
|
)
|
|
140
141
|
},
|
|
141
142
|
{
|
|
142
143
|
key: "status",
|
|
143
|
-
title: () =>
|
|
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: () =>
|
|
150
|
-
{ key: "lastRunTime", title: () =>
|
|
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: () =>
|
|
154
|
+
title: () => t("job.runCount"),
|
|
154
155
|
width: 110,
|
|
155
156
|
align: "center",
|
|
156
|
-
render: (
|
|
157
|
-
m("span", null, String(
|
|
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:
|
|
162
|
-
String(
|
|
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: () =>
|
|
169
|
+
title: () => t("common.operation"),
|
|
169
170
|
width: 240,
|
|
170
171
|
fixed: "right",
|
|
171
172
|
hideInSetting: !0,
|
|
172
|
-
render: (
|
|
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(
|
|
176
|
-
() =>
|
|
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(
|
|
181
|
-
() =>
|
|
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(
|
|
190
|
+
onClick: () => fe.push({ path: "/system/job-log", query: { jobId: String(a.id) } })
|
|
190
191
|
},
|
|
191
|
-
() =>
|
|
192
|
+
() => t("job.viewLogs")
|
|
192
193
|
),
|
|
193
|
-
I.hasPerm("DELETE:/api/v1/sys/job/{id}") ?
|
|
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
|
-
() =>
|
|
198
|
+
() => t("common.delete")
|
|
198
199
|
),
|
|
199
|
-
default: () =>
|
|
200
|
+
default: () => t("job.protectedTip")
|
|
200
201
|
}) : m(
|
|
201
202
|
Be,
|
|
202
203
|
{
|
|
203
|
-
onPositiveClick: () => be(() => C.remove(
|
|
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
|
-
() =>
|
|
213
|
+
() => t("common.delete")
|
|
213
214
|
),
|
|
214
|
-
default: () =>
|
|
215
|
+
default: () => t("job.deleteConfirm", { name: a.name })
|
|
215
216
|
}
|
|
216
217
|
) : null
|
|
217
218
|
])
|
|
218
219
|
}
|
|
219
220
|
];
|
|
220
|
-
el(
|
|
221
|
-
function we(
|
|
221
|
+
el(te);
|
|
222
|
+
function we(a) {
|
|
222
223
|
he({
|
|
223
|
-
content:
|
|
224
|
-
action: () => C.run(
|
|
225
|
-
successMsg:
|
|
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),
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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: () =>
|
|
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
|
|
316
|
-
re.value =
|
|
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((
|
|
321
|
-
label:
|
|
322
|
-
value:
|
|
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(
|
|
330
|
-
return !!
|
|
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
|
|
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(
|
|
337
|
-
_.value =
|
|
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(
|
|
341
|
+
r = JSON.parse(a.propsJson || "{}");
|
|
341
342
|
} catch {
|
|
342
343
|
}
|
|
343
|
-
if (l.code =
|
|
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
|
|
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
|
|
356
|
+
const a = {};
|
|
356
357
|
if (l.handlerKind === f.Http) {
|
|
357
|
-
|
|
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 && (
|
|
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
|
-
|
|
363
|
+
a.sql = l.sqlText;
|
|
363
364
|
else
|
|
364
|
-
for (const r of l.props) r.key.trim() && (
|
|
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:
|
|
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
|
|
404
|
-
await ((
|
|
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(
|
|
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 (
|
|
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(
|
|
416
|
+
toolbar: e(tl),
|
|
416
417
|
ref_key: "tableRef",
|
|
417
418
|
ref: q,
|
|
418
|
-
columns:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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:
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
677
|
+
label: e(t)("job.trigger.oneShotTime"),
|
|
677
678
|
path: "oneShotTime"
|
|
678
679
|
}, {
|
|
679
680
|
default: n(() => [
|
|
680
|
-
o(e(
|
|
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(
|
|
695
|
+
label: e(t)("job.trigger.cronExpression"),
|
|
695
696
|
path: "cronExpression"
|
|
696
697
|
}, {
|
|
697
698
|
default: n(() => [
|
|
698
|
-
o(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
1003
|
-
y("span", cl, d(e(
|
|
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(
|
|
1015
|
+
label: e(t)("job.form.startTime"),
|
|
1015
1016
|
"show-feedback": !1
|
|
1016
1017
|
}, {
|
|
1017
1018
|
default: n(() => [
|
|
1018
|
-
o(e(
|
|
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(
|
|
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(
|
|
1032
|
+
label: e(t)("job.form.endTime"),
|
|
1032
1033
|
"show-feedback": !1
|
|
1033
1034
|
}, {
|
|
1034
1035
|
default: n(() => [
|
|
1035
|
-
o(e(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
1207
|
+
placeholder: e(t)("job.form.alertEmailsPlaceholder")
|
|
1207
1208
|
}, null, 8, ["value", "placeholder"])
|
|
1208
1209
|
]),
|
|
1209
1210
|
_: 1
|