From c97178b68b90b2ca6d6f1cc1bcbeff7551abf00e Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Sun, 21 Sep 2025 13:32:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=9B=E5=BB=BA=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- node_modules/.package-lock.json | 5 + node_modules/vue3-cron-plus-picker/README.md | 125 ++ .../vue3-cron-plus-picker/package.json | 18 + node_modules/vue3-cron-plus-picker/style.css | 1 + node_modules/vue3-cron-plus-picker/vite.svg | 1 + .../vue3-cron-plus-picker.js | 1852 +++++++++++++++++ .../vue3-cron-plus-picker.umd.cjs | 1 + package-lock.json | 8 +- package.json | 3 +- src/components/PlanForm.vue | 288 +++ src/components/PlanList.vue | 71 +- 11 files changed, 2329 insertions(+), 44 deletions(-) create mode 100644 node_modules/vue3-cron-plus-picker/README.md create mode 100644 node_modules/vue3-cron-plus-picker/package.json create mode 100644 node_modules/vue3-cron-plus-picker/style.css create mode 100644 node_modules/vue3-cron-plus-picker/vite.svg create mode 100644 node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.js create mode 100644 node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.umd.cjs create mode 100644 src/components/PlanForm.vue diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index eb6bd76b..a9e52349 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -9919,6 +9919,11 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "node_modules/vue3-cron-plus-picker": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/vue3-cron-plus-picker/-/vue3-cron-plus-picker-1.0.2.tgz", + "integrity": "sha512-SUVmAb2qSPMuAm5GIU0wQZyUawiiL3OKEy1HAZs94eZz+neKF+wEPNP4wICWMU78u4LzeCNni2Njnhf8bsqkcw==" + }, "node_modules/watchpack": { "version": "2.4.4", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.4.tgz", diff --git a/node_modules/vue3-cron-plus-picker/README.md b/node_modules/vue3-cron-plus-picker/README.md new file mode 100644 index 00000000..6ef69e53 --- /dev/null +++ b/node_modules/vue3-cron-plus-picker/README.md @@ -0,0 +1,125 @@ +# vue3+elementplus 的cron表达式生成插件 +## 目的 +- vue3环境中使用cron表达式插件 +## 依赖版本 +- Vue3.0.0+ +- element-plus +## 使用 +### 1 安装 +`npm i vue3-cron-plus-picker` +或者 +`pnpm add vue3-cron-plus-picker` + +### 2 引入 +1. 全局引入 + 在src\main.js中引入下载的包,并引入其样式 + ```js + import { createApp } from 'vue' + import './style.css' + import App from './App.vue' + import ElementPlus from 'element-plus' + import 'element-plus/dist/index.css' + import Vue3CronPlusPicker from 'vue3-cron-plus-picker' // 引入组件 + import 'vue3-cron-plus-picker/style.css' //引入组件相关样式 + + createApp(App).use(ElementPlus).use(Vue3CronPlusPicker).mount('#app') + + ``` +2. 局部引入 +在使用的组件的vue文件中直接引入 +```js +import 'vue3-cron-plus-picker/style.css' +import {Vue3CronPlusPicker} from 'vue3-cron-plus-picker' +``` +### 3 使用 +```js + + + + + +``` +### 4 参数 + + + + + + + + + + + + + + + + + + + + + + + + + + +
属性名说明类型Default可选值
expressioncron表达式绑定的值string--
hideComponent可以隐藏的组件内容Array-second/min/hour/day/mouth/week/year/result
+ +### 5 事件 + + + + + + + + + + + + + + + + + + + + + + + + +
名称说明类型方法对应的参数类型
fill填充选择的cron表达式Function(contabValue: string) => void
hide关闭组件Function() => void
+ diff --git a/node_modules/vue3-cron-plus-picker/package.json b/node_modules/vue3-cron-plus-picker/package.json new file mode 100644 index 00000000..ea700fa1 --- /dev/null +++ b/node_modules/vue3-cron-plus-picker/package.json @@ -0,0 +1,18 @@ +{ + "name": "vue3-cron-plus-picker", + "version": "1.0.2", + "description": "Corn expression plugin based on vue3+elementPlus(基于vue3+elementplus+vue3的corn表达式插件)", + "main": "vue3-cron-plus-picker.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "vue3-cron-plus-picker", + "vue3-cron-plus", + "vue3-cron", + "vue3", + "cron" + ], + "author": "", + "license": "ISC" +} diff --git a/node_modules/vue3-cron-plus-picker/style.css b/node_modules/vue3-cron-plus-picker/style.css new file mode 100644 index 00000000..ff733bfb --- /dev/null +++ b/node_modules/vue3-cron-plus-picker/style.css @@ -0,0 +1 @@ +.pop_btn[data-v-8ae49d29]{text-align:center;margin-top:20px}.popup-main[data-v-8ae49d29]{position:relative;margin:10px auto;background:#fff;border-radius:5px;font-size:12px;overflow:hidden}.popup-title[data-v-8ae49d29]{overflow:hidden;line-height:34px;padding-top:6px;background:#f2f2f2}.popup-result[data-v-8ae49d29]{box-sizing:border-box;line-height:24px;margin:25px auto;padding:15px 10px 10px;border:1px solid #ccc;position:relative}.popup-result .title[data-v-8ae49d29]{position:absolute;top:-28px;left:50%;width:140px;font-size:14px;margin-left:-70px;text-align:center;line-height:30px;background:#fff}.popup-result table[data-v-8ae49d29]{text-align:center;width:100%;margin:0 auto}.popup-result table span[data-v-8ae49d29]{display:block;width:100%;font-family:arial;line-height:30px;height:30px;white-space:nowrap;overflow:hidden;border:1px solid #e8e8e8}.popup-result-scroll[data-v-8ae49d29]{font-size:12px;line-height:24px;height:10em;overflow-y:auto} diff --git a/node_modules/vue3-cron-plus-picker/vite.svg b/node_modules/vue3-cron-plus-picker/vite.svg new file mode 100644 index 00000000..e7b8dfb1 --- /dev/null +++ b/node_modules/vue3-cron-plus-picker/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.js b/node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.js new file mode 100644 index 00000000..6e6b6874 --- /dev/null +++ b/node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.js @@ -0,0 +1,1852 @@ +import { ref as b, computed as T, watch as S, resolveComponent as U, openBlock as M, createBlock as H, withCtx as d, createVNode as l, createTextVNode as m, createElementBlock as B, Fragment as ae, renderList as ue, toDisplayString as z, reactive as be, onMounted as ye, createElementVNode as j, getCurrentInstance as De, createCommentVNode as ne, pushScopeId as Ne, popScopeId as Oe } from "vue"; +const Ae = { + __name: "Crontab-Second", + props: { + check: Function + }, + emits: ["update", "fill"], + setup(L, { expose: s, emit: f }) { + const e = L, o = b(1), v = b(1), y = b(2), _ = b(0), x = b(1), C = b([]), w = b(e.check), O = T({ + get: () => v.value + "-" + y.value, + set: (n) => { + v.value = w.value(v.value, 0, 59), y.value = w.value(y.value, 0, 59); + } + }), D = T({ + get: () => _.value + "/" + x.value, + set: (n) => { + _.value = w.value(_.value, 0, 59), x.value = w.value(x.value, 1, 59); + } + }), W = T(() => { + const n = C.value.join(); + return n === "" ? "*" : n; + }), F = () => { + switch (o.value) { + case 1: + f("update", "second", "*", "second"), f("update", "min", "*", "second"); + break; + case 2: + f("update", "second", v.value + "-" + y.value); + break; + case 3: + f("update", "second", _.value + "/" + x.value); + break; + case 4: + f("update", "second", W.value); + break; + } + }, g = () => { + o.value === 2 && f("update", "second", O.value); + }, k = () => { + o.value === 3 && f("update", "second", D.value); + }, h = () => { + o.value === 4 && f("update", "second", W.value); + }; + return S(o, () => { + F(); + }, { deep: !0 }), S(O, () => { + g(); + }, { deep: !0 }), S(D, () => { + k(); + }, { deep: !0 }), S(W, () => { + h(); + }, { deep: !0 }), s({ radioValue: o.value }), (n, r) => { + const c = U("el-radio"), a = U("el-form-item"), A = U("el-input-number"), u = U("el-option"), V = U("el-select"), t = U("el-form"); + return M(), H(t, { size: "small" }, { + default: d(() => [ + l(a, null, { + default: d(() => [ + l(c, { + modelValue: o.value, + "onUpdate:modelValue": r[0] || (r[0] = (i) => o.value = i), + label: 1 + }, { + default: d(() => [ + m(" 秒,允许的通配符[, - * /] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + modelValue: o.value, + "onUpdate:modelValue": r[3] || (r[3] = (i) => o.value = i), + label: 2 + }, { + default: d(() => [ + m(" 周期从 "), + l(A, { + modelValue: v.value, + "onUpdate:modelValue": r[1] || (r[1] = (i) => v.value = i), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" - "), + l(A, { + modelValue: y.value, + "onUpdate:modelValue": r[2] || (r[2] = (i) => y.value = i), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 秒 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + modelValue: o.value, + "onUpdate:modelValue": r[6] || (r[6] = (i) => o.value = i), + label: 3 + }, { + default: d(() => [ + m(" 从 "), + l(A, { + modelValue: _.value, + "onUpdate:modelValue": r[4] || (r[4] = (i) => _.value = i), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 秒开始,每 "), + l(A, { + modelValue: x.value, + "onUpdate:modelValue": r[5] || (r[5] = (i) => x.value = i), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 秒执行一次 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + modelValue: o.value, + "onUpdate:modelValue": r[8] || (r[8] = (i) => o.value = i), + label: 4 + }, { + default: d(() => [ + m(" 指定 "), + l(V, { + clearable: "", + modelValue: C.value, + "onUpdate:modelValue": r[7] || (r[7] = (i) => C.value = i), + placeholder: "可多选", + multiple: "", + "collapse-tags": "", + "collapse-tags-tooltip": "", + style: { width: "100%" } + }, { + default: d(() => [ + (M(), B(ae, null, ue(60, (i) => l(u, { + key: i, + value: i - 1 + }, { + default: d(() => [ + m(z(i - 1), 1) + ]), + _: 2 + }, 1032, ["value"])), 64)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, Se = { + __name: "Crontab-Min", + props: { + check: Function, + cron: Object + }, + emits: ["update", "fill"], + setup(L, { emit: s }) { + const f = L, e = b(1), o = b(1), v = b(2), y = b(0), _ = b(1), x = b([]), C = b(f.check), w = T({ + get: () => o.value + "-" + v.value, + set: (h) => { + o.value = C.value(o.value, 0, 59), v.value = C.value(v.value, 0, 59); + } + }), O = T({ + get: () => y.value + "/" + _.value, + set: (h) => { + y.value = C.value(y.value, 0, 59), _.value = C.value(_.value, 1, 59); + } + }), D = T(() => { + const h = x.value.join(); + return h === "" ? "*" : h; + }), W = () => { + var h; + switch (e.value !== 1 && ((h = f.cron) == null ? void 0 : h.second) === "*" && s("update", "second", "0", "min"), e.value) { + case 1: + s("update", "min", "*", "min"), s("update", "hour", "*", "min"); + break; + case 2: + s("update", "min", o.value + "-" + v.value, "min"); + break; + case 3: + s("update", "min", y.value + "/" + _.value, "min"); + break; + case 4: + s("update", "min", D.value, "min"); + break; + } + }, F = () => { + e.value === 2 && s("update", "min", w.value, "min"); + }, g = () => { + e.value === 3 && s("update", "min", O.value, "min"); + }, k = () => { + e.value === 4 && s("update", "min", D.value, "min"); + }; + return S(e, () => { + W(); + }, { deep: !0 }), S(w, () => { + F(); + }, { deep: !0 }), S(O, () => { + g(); + }, { deep: !0 }), S(D, () => { + k(); + }, { deep: !0 }), (h, n) => { + const r = U("el-radio"), c = U("el-form-item"), a = U("el-input-number"), A = U("el-option"), u = U("el-select"), V = U("el-form"); + return M(), H(V, { size: "small" }, { + default: d(() => [ + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[0] || (n[0] = (t) => e.value = t), + label: 1 + }, { + default: d(() => [ + m(" 分钟,允许的通配符[, - * /] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[3] || (n[3] = (t) => e.value = t), + label: 2 + }, { + default: d(() => [ + m(" 周期从 "), + l(a, { + modelValue: o.value, + "onUpdate:modelValue": n[1] || (n[1] = (t) => o.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" - "), + l(a, { + modelValue: v.value, + "onUpdate:modelValue": n[2] || (n[2] = (t) => v.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 分钟 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[6] || (n[6] = (t) => e.value = t), + label: 3 + }, { + default: d(() => [ + m(" 从 "), + l(a, { + modelValue: y.value, + "onUpdate:modelValue": n[4] || (n[4] = (t) => y.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 分钟开始,每 "), + l(a, { + modelValue: _.value, + "onUpdate:modelValue": n[5] || (n[5] = (t) => _.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 分钟执行一次 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[8] || (n[8] = (t) => e.value = t), + label: 4 + }, { + default: d(() => [ + m(" 指定 "), + l(u, { + clearable: "", + modelValue: x.value, + "onUpdate:modelValue": n[7] || (n[7] = (t) => x.value = t), + placeholder: "可多选", + multiple: "", + "collapse-tags": "", + "collapse-tags-tooltip": "", + style: { width: "100%" } + }, { + default: d(() => [ + (M(), B(ae, null, ue(60, (t) => l(A, { + key: t, + value: t - 1 + }, { + default: d(() => [ + m(z(t - 1), 1) + ]), + _: 2 + }, 1032, ["value"])), 64)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, Me = { + __name: "Crontab-Hour", + props: { + check: Function, + cron: Object + }, + emits: ["update", "fill"], + setup(L, { emit: s }) { + const f = L, e = b(1), o = b(0), v = b(1), y = b(0), _ = b(1), x = b([]), C = b(f.check), w = T({ + get: () => o.value + "-" + v.value, + set: (h) => { + o.value = C.value(o.value, 0, 23), v.value = C.value(v.value, 0, 23); + } + }), O = T({ + get: () => y.value + "/" + _.value, + set: (h) => { + y.value = C.value(y.value, 0, 23), _.value = C.value(_.value, 1, 23); + } + }), D = T(() => { + const h = x.value.join(); + return h === "" ? "*" : h; + }), W = () => { + switch (e.value === 1 ? (s("update", "hour", "*", "hour"), s("update", "day", "*", "hour")) : (f.cron.min === "*" && s("update", "min", "0", "hour"), f.cron.second === "*" && s("update", "second", "0", "hour")), e.value) { + case 2: + s("update", "hour", o.value + "-" + v.value); + break; + case 3: + s("update", "hour", y.value + "/" + _.value); + break; + case 4: + s("update", "hour", D.value); + break; + } + }, F = () => { + e.value === 2 && s("update", "hour", w.value); + }, g = () => { + e.value === 3 && s("update", "hour", O.value); + }, k = () => { + e.value === 4 && s("update", "hour", D.value); + }; + return S(e, () => { + W(); + }, { deep: !0 }), S(w, () => { + F(); + }, { deep: !0 }), S(O, () => { + g(); + }, { deep: !0 }), S(D, () => { + k(); + }, { deep: !0 }), (h, n) => { + const r = U("el-radio"), c = U("el-form-item"), a = U("el-input-number"), A = U("el-option"), u = U("el-select"), V = U("el-form"); + return M(), H(V, { size: "small" }, { + default: d(() => [ + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[0] || (n[0] = (t) => e.value = t), + label: 1 + }, { + default: d(() => [ + m(" 小时,允许的通配符[, - * /] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[3] || (n[3] = (t) => e.value = t), + label: 2 + }, { + default: d(() => [ + m(" 周期从 "), + l(a, { + modelValue: o.value, + "onUpdate:modelValue": n[1] || (n[1] = (t) => o.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" - "), + l(a, { + modelValue: v.value, + "onUpdate:modelValue": n[2] || (n[2] = (t) => v.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 小时 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[6] || (n[6] = (t) => e.value = t), + label: 3 + }, { + default: d(() => [ + m(" 从 "), + l(a, { + modelValue: y.value, + "onUpdate:modelValue": n[4] || (n[4] = (t) => y.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 小时开始,每 "), + l(a, { + modelValue: _.value, + "onUpdate:modelValue": n[5] || (n[5] = (t) => _.value = t), + min: 0, + max: 60 + }, null, 8, ["modelValue"]), + m(" 小时执行一次 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[8] || (n[8] = (t) => e.value = t), + label: 4 + }, { + default: d(() => [ + m(" 指定 "), + l(u, { + clearable: "", + modelValue: x.value, + "onUpdate:modelValue": n[7] || (n[7] = (t) => x.value = t), + placeholder: "可多选", + multiple: "", + "collapse-tags": "", + "collapse-tags-tooltip": "", + style: { width: "100%" } + }, { + default: d(() => [ + (M(), B(ae, null, ue(60, (t) => l(A, { + key: t, + value: t - 1 + }, { + default: d(() => [ + m(z(t - 1), 1) + ]), + _: 2 + }, 1032, ["value"])), 64)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, Le = { + __name: "Crontab-Day", + props: { + check: Function, + cron: Object + }, + emits: ["update", "fill"], + setup(L, { emit: s }) { + const f = L, e = b(1), o = b(1), v = b(1), y = b(2), _ = b(1), x = b(1), C = b([]), w = b(f.check), O = T({ + get: () => v.value + "-" + y.value, + set: () => { + v.value = w.value(v.value, 0, 59), y.value = w.value(y.value, 0, 59); + } + }), D = T({ + get: () => _.value + "/" + x.value, + set: () => { + _.value = w.value(_.value, 0, 59), x.value = w.value(x.value, 1, 59); + } + }), W = T({ + get: () => o.value, + set: () => { + o.value = w.value(o.value, 1, 31); + } + }), F = T(() => { + const c = C.value.join(); + return c === "" ? "*" : c; + }), g = () => { + switch (e.value === 1 ? (s("update", "day", "*", "day"), s("update", "week", "?", "day"), s("update", "mouth", "*", "day")) : (f.cron.hour === "*" && s("update", "hour", "0", "day"), f.cron.min === "*" && s("update", "min", "0", "day"), f.cron.second === "*" && s("update", "second", "0", "day")), e.value) { + case 2: + s("update", "day", "?"); + break; + case 3: + s("update", "day", v.value + "-" + y.value); + break; + case 4: + s("update", "day", _.value + "/" + x.value); + break; + case 5: + s("update", "day", o.value + "W"); + break; + case 6: + s("update", "day", "L"); + break; + case 7: + s("update", "day", F.value); + break; + } + }, k = () => { + e.value === 3 && s("update", "day", O.value); + }, h = () => { + e.value === 4 && s("update", "day", D.value); + }, n = () => { + e.value === 5 && s("update", "day", o.value + "W"); + }, r = () => { + e.value === 7 && s("update", "day", F.value); + }; + return S(e, () => { + g(); + }, { deep: !0 }), S(O, () => { + k(); + }, { deep: !0 }), S(D, () => { + h(); + }, { deep: !0 }), S(W, () => { + n(); + }, { deep: !0 }), S(F, () => { + r(); + }, { deep: !0 }), (c, a) => { + const A = U("el-radio"), u = U("el-form-item"), V = U("el-input-number"), t = U("el-option"), i = U("el-select"), I = U("el-form"); + return M(), H(I, { size: "small" }, { + default: d(() => [ + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[0] || (a[0] = (p) => e.value = p), + label: 1 + }, { + default: d(() => [ + m(" 日,允许的通配符[, - * / L M] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[1] || (a[1] = (p) => e.value = p), + label: 2 + }, { + default: d(() => [ + m(" 不指定 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[4] || (a[4] = (p) => e.value = p), + label: 3 + }, { + default: d(() => [ + m(" 周期从 "), + l(V, { + modelValue: v.value, + "onUpdate:modelValue": a[2] || (a[2] = (p) => v.value = p), + min: 0, + max: 31 + }, null, 8, ["modelValue"]), + m(" - "), + l(V, { + modelValue: y.value, + "onUpdate:modelValue": a[3] || (a[3] = (p) => y.value = p), + min: 0, + max: 31 + }, null, 8, ["modelValue"]), + m(" 日 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[7] || (a[7] = (p) => e.value = p), + label: 4 + }, { + default: d(() => [ + m(" 从 "), + l(V, { + modelValue: _.value, + "onUpdate:modelValue": a[5] || (a[5] = (p) => _.value = p), + min: 0, + max: 31 + }, null, 8, ["modelValue"]), + m(" 号开始,每 "), + l(V, { + modelValue: x.value, + "onUpdate:modelValue": a[6] || (a[6] = (p) => x.value = p), + min: 0, + max: 31 + }, null, 8, ["modelValue"]), + m(" 日执行一次 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[9] || (a[9] = (p) => e.value = p), + label: 5 + }, { + default: d(() => [ + m(" 每月 "), + l(V, { + modelValue: o.value, + "onUpdate:modelValue": a[8] || (a[8] = (p) => o.value = p), + min: 0, + max: 31 + }, null, 8, ["modelValue"]), + m(" 号最近的那个工作日 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[10] || (a[10] = (p) => e.value = p), + label: 6 + }, { + default: d(() => [ + m(" 本月最后一天 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[12] || (a[12] = (p) => e.value = p), + label: 7 + }, { + default: d(() => [ + m(" 指定 "), + l(i, { + clearable: "", + modelValue: C.value, + "onUpdate:modelValue": a[11] || (a[11] = (p) => C.value = p), + placeholder: "可多选", + multiple: "", + "collapse-tags": "", + "collapse-tags-tooltip": "", + style: { width: "100%" } + }, { + default: d(() => [ + (M(), B(ae, null, ue(31, (p) => l(t, { + key: p, + value: p + }, { + default: d(() => [ + m(z(p), 1) + ]), + _: 2 + }, 1032, ["value"])), 64)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, je = { + __name: "Crontab-Mouth", + props: { + check: Function, + cron: Object + }, + emits: ["update", "fill"], + setup(L, { emit: s }) { + const f = L, e = b(1), o = b(1), v = b(2), y = b(1), _ = b(1), x = b([]), C = b(f.check), w = T({ + get: () => o.value + "-" + v.value, + set: () => { + o.value = C.value(o.value, 0, 12), v.value = C.value(v.value, 0, 12); + } + }), O = T({ + get: () => y.value + "/" + _.value, + set: () => { + y.value = C.value(y.value, 1, 12), _.value = C.value(_.value, 1, 12); + } + }), D = T(() => { + const h = x.value.join(); + return h === "" ? "*" : h; + }), W = () => { + switch (e.value === 1 ? (s("update", "mouth", "*"), s("update", "year", "*")) : (f.cron.day === "*" && s("update", "day", "0", "mouth"), f.cron.hour === "*" && s("update", "hour", "0", "mouth"), f.cron.min === "*" && s("update", "min", "0", "mouth"), f.cron.second === "*" && s("update", "second", "0", "mouth")), e.value) { + case 2: + s("update", "mouth", o.value + "-" + v.value); + break; + case 3: + s("update", "mouth", y.value + "/" + _.value); + break; + case 4: + s("update", "mouth", D.value); + break; + } + }, F = () => { + e.value === 2 && s("update", "mouth", w.value); + }, g = () => { + e.value === 3 && s("update", "mouth", O.value); + }, k = () => { + e.value === 4 && s("update", "mouth", D.value); + }; + return S(e, () => { + W(); + }, { deep: !0 }), S(w, () => { + F(); + }, { deep: !0 }), S(O, () => { + g(); + }, { deep: !0 }), S(D, () => { + k(); + }, { deep: !0 }), (h, n) => { + const r = U("el-radio"), c = U("el-form-item"), a = U("el-input-number"), A = U("el-option"), u = U("el-select"), V = U("el-form"); + return M(), H(V, { size: "small" }, { + default: d(() => [ + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[0] || (n[0] = (t) => e.value = t), + label: 1 + }, { + default: d(() => [ + m(" 月,允许的通配符[, - * /] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[3] || (n[3] = (t) => e.value = t), + label: 2 + }, { + default: d(() => [ + m(" 周期从 "), + l(a, { + modelValue: o.value, + "onUpdate:modelValue": n[1] || (n[1] = (t) => o.value = t), + min: 1, + max: 12 + }, null, 8, ["modelValue"]), + m(" - "), + l(a, { + modelValue: v.value, + "onUpdate:modelValue": n[2] || (n[2] = (t) => v.value = t), + min: 1, + max: 12 + }, null, 8, ["modelValue"]), + m(" 月 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[6] || (n[6] = (t) => e.value = t), + label: 3 + }, { + default: d(() => [ + m(" 从 "), + l(a, { + modelValue: y.value, + "onUpdate:modelValue": n[4] || (n[4] = (t) => y.value = t), + min: 1, + max: 12 + }, null, 8, ["modelValue"]), + m(" 月开始,每 "), + l(a, { + modelValue: _.value, + "onUpdate:modelValue": n[5] || (n[5] = (t) => _.value = t), + min: 1, + max: 12 + }, null, 8, ["modelValue"]), + m(" 月月执行一次 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(c, null, { + default: d(() => [ + l(r, { + modelValue: e.value, + "onUpdate:modelValue": n[8] || (n[8] = (t) => e.value = t), + label: 4 + }, { + default: d(() => [ + m(" 指定 "), + l(u, { + clearable: "", + modelValue: x.value, + "onUpdate:modelValue": n[7] || (n[7] = (t) => x.value = t), + placeholder: "可多选", + multiple: "", + "collapse-tags": "", + "collapse-tags-tooltip": "", + style: { width: "100%" } + }, { + default: d(() => [ + (M(), B(ae, null, ue(12, (t) => l(A, { + key: t, + value: t + }, { + default: d(() => [ + m(z(t), 1) + ]), + _: 2 + }, 1032, ["value"])), 64)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, Te = { + __name: "Crontab-Week", + props: { + check: Function, + cron: Object + }, + emits: ["update", "fill"], + setup(L, { emit: s }) { + const f = L, e = b(2), o = b(1), v = b(1), y = b(2), _ = b(1), x = b(1), C = b([]), w = b(f.check), O = be(["周一", "周二", "周三", "周四", "周五", "周六", "周日"]), D = T({ + get: () => v.value + "-" + y.value, + set: () => { + v.value = w.value(v.value, 1, 7), y.value = w.value(y.value, 1, 7); + } + }), W = T({ + get: () => _.value + "/" + x.value, + set: () => { + _.value = w.value(_.value, 1, 4), x.value = w.value(x.value, 1, 7); + } + }), F = T({ + get: () => o.value, + set: () => { + o.value = w.value(o.value, 1, 7); + } + }), g = T(() => { + const c = C.value.join(); + return c === "" ? "*" : c; + }), k = () => { + switch (e.value === 1 ? (s("update", "week", "*"), s("update", "year", "*")) : (f.cron.mouth === "*" && s("update", "mouth", "0", "week"), f.cron.day === "*" && s("update", "day", "0", "week"), f.cron.hour === "*" && s("update", "hour", "0", "week"), f.cron.min === "*" && s("update", "min", "0", "week"), f.cron.second === "*" && s("update", "second", "0", "week")), e.value) { + case 2: + s("update", "week", "?"); + break; + case 3: + s("update", "week", v.value + "-" + y.value); + break; + case 4: + s("update", "week", _.value + "#" + x.value); + break; + case 5: + s("update", "week", o.value + "L"); + break; + case 6: + s("update", "week", g.value); + break; + } + }, h = () => { + e.value === "3" && s("update", "week", D.value); + }, n = () => { + e.value === "4" && s("update", "week", W.value); + }, r = () => { + e.value === "6" && s("update", "week", g.value); + }; + return S(e, () => { + k(); + }, { deep: !0 }), S(D, () => { + h(); + }, { deep: !0 }), S(W, () => { + n(); + }, { deep: !0 }), S(F, () => { + F(); + }, { deep: !0 }), S(g, () => { + r(); + }, { deep: !0 }), (c, a) => { + const A = U("el-radio"), u = U("el-form-item"), V = U("el-input-number"), t = U("el-option"), i = U("el-select"), I = U("el-form"); + return M(), H(I, { size: "small" }, { + default: d(() => [ + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[0] || (a[0] = (p) => e.value = p), + label: 1 + }, { + default: d(() => [ + m(" 周,允许的通配符[, - * / L #] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[1] || (a[1] = (p) => e.value = p), + label: 2 + }, { + default: d(() => [ + m(" 不指定 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[4] || (a[4] = (p) => e.value = p), + label: 3 + }, { + default: d(() => [ + m(" 周期从星期 "), + l(V, { + modelValue: v.value, + "onUpdate:modelValue": a[2] || (a[2] = (p) => v.value = p), + min: 1, + max: 7 + }, null, 8, ["modelValue"]), + m(" - "), + l(V, { + modelValue: y.value, + "onUpdate:modelValue": a[3] || (a[3] = (p) => y.value = p), + min: 1, + max: 7 + }, null, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[7] || (a[7] = (p) => e.value = p), + label: 4 + }, { + default: d(() => [ + m(" 第 "), + l(V, { + modelValue: _.value, + "onUpdate:modelValue": a[5] || (a[5] = (p) => _.value = p), + min: 1, + max: 4 + }, null, 8, ["modelValue"]), + m(" 周的星期 "), + l(V, { + modelValue: x.value, + "onUpdate:modelValue": a[6] || (a[6] = (p) => x.value = p), + min: 1, + max: 7 + }, null, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[9] || (a[9] = (p) => e.value = p), + label: 5 + }, { + default: d(() => [ + m(" 本月最后一个星期 "), + l(V, { + modelValue: o.value, + "onUpdate:modelValue": a[8] || (a[8] = (p) => o.value = p), + min: 1, + max: 7 + }, null, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(u, null, { + default: d(() => [ + l(A, { + modelValue: e.value, + "onUpdate:modelValue": a[11] || (a[11] = (p) => e.value = p), + label: 6 + }, { + default: d(() => [ + m(" 指定 "), + l(i, { + clearable: "", + modelValue: C.value, + "onUpdate:modelValue": a[10] || (a[10] = (p) => C.value = p), + placeholder: "可多选", + multiple: "", + "collapse-tags": "", + "collapse-tags-tooltip": "", + style: { width: "100%" } + }, { + default: d(() => [ + (M(!0), B(ae, null, ue(O, (p, R) => (M(), H(t, { + key: R, + value: R + 1 + }, { + default: d(() => [ + m(z(p), 1) + ]), + _: 2 + }, 1032, ["value"]))), 128)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, We = { + __name: "Crontab-Year", + props: { + check: Function, + cron: Object + }, + emits: ["update", "fill"], + setup(L, { emit: s }) { + const f = L, e = b(0), o = b(1), v = b(0), y = b(0), _ = b(0), x = b(1), C = b([]), w = b(f.check), O = T({ + get: () => v.value + "-" + y.value, + set: () => { + v.value = w.value(v.value, e.value, e.value + 100), y.value = w.value(y.value, e.value + 1, e.value + 101); + } + }), D = T({ + get: () => _.value + "/" + x.value, + set: () => { + _.value = w.value(_.value, e.value, e.value + 100), x.value = w.value(x.value, 1, 10); + } + }), W = T(() => C.value.join()), F = () => { + switch (f.cron.mouth === "*" && s("update", "mouth", "0", "year"), f.cron.day === "*" && s("update", "day", "0", "year"), f.cron.hour === "*" && s("update", "hour", "0", "year"), f.cron.min === "*" && s("update", "min", "0", "year"), f.cron.second === "*" && s("update", "second", "0", "year"), o.value) { + case 1: + s("update", "year", ""); + break; + case 2: + s("update", "year", "*"); + break; + case 3: + s("update", "year", v.value + "-" + y.value); + break; + case 4: + s("update", "year", _.value + "/" + x.value); + break; + case 5: + s("update", "year", W.value); + break; + } + }, g = () => { + o.value === 3 && s("update", "year", O.value); + }, k = () => { + o.value === 4 && s("update", "year", D.value); + }, h = () => { + o.value === 5 && s("update", "year", W.value); + }; + return S(o, () => { + F(); + }, { deep: !0 }), S(O, () => { + g(); + }, { deep: !0 }), S(D, () => { + k(); + }, { deep: !0 }), S(W, () => { + h(); + }, { deep: !0 }), ye(() => { + e.value = Number((/* @__PURE__ */ new Date()).getFullYear()); + }), (n, r) => { + const c = U("el-radio"), a = U("el-form-item"), A = U("el-input-number"), u = U("el-option"), V = U("el-select"), t = U("el-form"); + return M(), H(t, { size: "small" }, { + default: d(() => [ + l(a, null, { + default: d(() => [ + l(c, { + label: 1, + modelValue: o.value, + "onUpdate:modelValue": r[0] || (r[0] = (i) => o.value = i) + }, { + default: d(() => [ + m(" 不填,允许的通配符[, - * /] ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + label: 2, + modelValue: o.value, + "onUpdate:modelValue": r[1] || (r[1] = (i) => o.value = i) + }, { + default: d(() => [ + m(" 每年 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + label: 3, + modelValue: o.value, + "onUpdate:modelValue": r[4] || (r[4] = (i) => o.value = i) + }, { + default: d(() => [ + m(" 周期从 "), + l(A, { + modelValue: v.value, + "onUpdate:modelValue": r[2] || (r[2] = (i) => v.value = i), + min: e.value + }, null, 8, ["modelValue", "min"]), + m(" - "), + l(A, { + modelValue: y.value, + "onUpdate:modelValue": r[3] || (r[3] = (i) => y.value = i), + min: e.value + }, null, 8, ["modelValue", "min"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + label: 4, + modelValue: o.value, + "onUpdate:modelValue": r[7] || (r[7] = (i) => o.value = i) + }, { + default: d(() => [ + m(" 从 "), + l(A, { + modelValue: _.value, + "onUpdate:modelValue": r[5] || (r[5] = (i) => _.value = i), + min: e.value + }, null, 8, ["modelValue", "min"]), + m(" 年开始,每 "), + l(A, { + modelValue: x.value, + "onUpdate:modelValue": r[6] || (r[6] = (i) => x.value = i), + min: e.value + }, null, 8, ["modelValue", "min"]), + m(" 年执行一次 ") + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }), + l(a, null, { + default: d(() => [ + l(c, { + label: 5, + modelValue: o.value, + "onUpdate:modelValue": r[9] || (r[9] = (i) => o.value = i) + }, { + default: d(() => [ + m(" 指定 "), + l(V, { + clearable: "", + modelValue: C.value, + "onUpdate:modelValue": r[8] || (r[8] = (i) => C.value = i), + placeholder: "可多选", + "collapse-tags": "", + "collapse-tags-tooltip": "", + multiple: "" + }, { + default: d(() => [ + (M(), B(ae, null, ue(9, (i) => l(u, { + key: i, + value: i - 1 + e.value, + label: i - 1 + e.value + }, null, 8, ["value", "label"])), 64)) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }, 8, ["modelValue"]) + ]), + _: 1 + }) + ]), + _: 1 + }); + }; + } +}, Ye = { class: "popup-result" }, Fe = /* @__PURE__ */ j("p", { class: "title" }, "最近5次运行时间", -1), Ie = { class: "popup-result-scroll" }, $e = { key: 1 }, ze = { + __name: "Crontab-Result", + props: { + ex: String + }, + setup(L) { + const s = L, f = b(""), e = b(""), o = b([]), v = b([]), y = b(!1), _ = (u, V) => V - u > 0 ? -1 : 1, x = (u, V) => { + if (V <= u[0] || V > u[u.length - 1]) + return 0; + for (let t = 0; t < u.length - 1; t++) + if (V > u[t] && V <= u[t + 1]) + return t + 1; + }, C = (u, V) => { + const t = []; + for (let i = u; i <= V; i++) + t.push(i); + return t; + }, w = (u) => { + const V = [], t = u.split(","); + for (let i = 0; i < t.length; i++) + V[i] = Number(t[i]); + return V.sort(_), V; + }, O = (u, V) => { + const t = [], i = u.split("/"); + let I = Number(i[0]); + const p = Number(i[1]); + for (; I <= V; ) + t.push(I), I += p; + return t; + }, D = (u, V, t) => { + const i = [], I = u.split("-"), p = Number(I[0]); + let R = Number(I[1]); + p > R && (R += V); + for (let P = p; P <= R; P++) { + let Q = 0; + t === !1 && P % V === 0 && (Q = V), i.push(Math.round(P % V + Q)); + } + return i.sort(_), i; + }, W = (u) => { + o.value[2] = C(0, 23), u.indexOf("-") >= 0 ? o.value[2] = D(u, 24, !0) : u.indexOf("/") >= 0 ? o.value[2] = O(u, 23) : u !== "*" && (o.value[2] = w(u)); + }, F = (u) => { + o.value[1] = C(0, 59), u.indexOf("-") >= 0 ? o.value[1] = D(u, 60, !0) : u.indexOf("/") >= 0 ? o.value[1] = O(u, 59) : u !== "*" && (o.value[1] = w(u)); + }, g = (u) => { + o.value[0] = C(0, 59), u.indexOf("-") >= 0 ? o.value[0] = D(u, 60, !0) : u.indexOf("/") >= 0 ? o.value[0] = O(u, 59) : u !== "*" && (o.value[0] = w(u)); + }, k = (u, V) => { + o.value[5] = C(V, V + 100), u !== void 0 && (u.indexOf("-") >= 0 ? o.value[5] = D(u, V + 100, !1) : u.indexOf("/") >= 0 ? o.value[5] = O(u, V + 100) : u !== "*" && (o.value[5] = w(u))); + }, h = (u) => { + o.value[4] = C(1, 12), u.indexOf("-") >= 0 ? o.value[4] = D(u, 12, !1) : u.indexOf("/") >= 0 ? o.value[4] = O(u, 12) : u !== "*" && (o.value[4] = w(u)); + }, n = (u) => { + if (f.value === "" && e.value === "") { + if (u.indexOf("-") >= 0) + f.value = "weekDay", e.value = D(u, 7, !1); + else if (u.indexOf("#") >= 0) { + f.value = "assWeek"; + const V = u.match(/[0-9]{1}/g); + e.value = [Number(V[0]), Number(V[1])], o.value[3] = [1], e.value[1] === 7 && (e.value[1] = 0); + } else + u.indexOf("L") >= 0 ? (f.value = "lastWeek", e.value = Number(u.match(/[0-9]{1,2}/g)[0]), o.value[3] = [31], e.value === 7 && (e.value = 0)) : u !== "*" && u !== "?" && (f.value = "weekDay", e.value = w(u)); + if (f.value === "weekDay") + for (let V = 0; V < e.value.length; V++) + e.value[V] === 7 && (e.value[V] = 0); + } + }, r = (u) => { + o.value[3] = C(1, 31), f.value = "", e.value = "", u.indexOf("-") >= 0 ? (o.value[3] = D(u, 31, !1), e.value = "null") : u.indexOf("/") >= 0 ? (o.value[3] = O(u, 31), e.value = "null") : u.indexOf("W") >= 0 ? (f.value = "workDay", e.value = Number(u.match(/[0-9]{1,2}/g)[0]), o.value[3] = [e.value]) : u.indexOf("L") >= 0 ? (f.value = "lastDay", e.value = "null", o.value[3] = [31]) : u !== "*" && u !== "?" ? (o.value[3] = w(u), e.value = "null") : u === "*" && (e.value = "null"); + }, c = (u, V) => { + const t = typeof u == "number" ? new Date(u) : u, i = t.getFullYear(), I = t.getMonth() + 1, p = t.getDate(), R = t.getHours(), P = t.getMinutes(), Q = t.getSeconds(), ve = t.getDay(); + if (V === void 0) + return i + "-" + (I < 10 ? "0" + I : I) + "-" + (p < 10 ? "0" + p : p) + " " + (R < 10 ? "0" + R : R) + ":" + (P < 10 ? "0" + P : P) + ":" + (Q < 10 ? "0" + Q : Q); + if (V === "week") + return ve; + }, a = (u) => { + const V = new Date(u), t = c(V); + return u === t; + }, A = () => { + y.value = !1; + const u = s.ex.split(" "); + let V = 0; + const t = [], i = /* @__PURE__ */ new Date(), I = i.getFullYear(); + let p = i.getMonth() + 1, R = i.getDate(), P = i.getHours(), Q = i.getMinutes(), ve = i.getSeconds(); + g(u[0]), F(u[1]), W(u[2]), r(u[3]), h(u[4]), n(u[5]), k(u[6], I); + const Z = o.value[0], X = o.value[1], J = o.value[2], K = o.value[3], q = o.value[4], ce = o.value[5]; + let ge = x(Z, ve), pe = x(X, Q), me = x(J, P), fe = x(K, R), Ve = x(q, p); + const he = x(ce, I), _e = function() { + ge = 0, ve = Z[ge]; + }, ie = function() { + pe = 0, Q = X[pe], _e(); + }, se = function() { + me = 0, P = J[me], ie(); + }, ee = function() { + fe = 0, R = K[fe], se(); + }, te = function() { + Ve = 0, p = q[Ve], ee(); + }; + I !== ce[he] && te(), p !== q[Ve] && ee(), R !== K[fe] && se(), P !== J[me] && ie(), Q !== X[pe] && _e(); + e: + for (let ke = he; ke < ce.length; ke++) { + const G = ce[ke]; + if (p > q[q.length - 1]) { + te(); + continue; + } + l: + for (let le = Ve; le < q.length; le++) { + let $ = q[le]; + if ($ = $ < 10 ? "0" + $ : $, R > K[K.length - 1]) { + if (ee(), le === q.length - 1) { + te(); + continue e; + } + continue; + } + a: + for (let oe = fe; oe < K.length; oe++) { + let N = K[oe], E = N < 10 ? "0" + N : N; + if (P > J[J.length - 1]) { + if (se(), oe === K.length - 1) { + if (ee(), le === q.length - 1) { + te(); + continue e; + } + continue l; + } + continue; + } + if (a(G + "-" + $ + "-" + E + " 00:00:00") !== !0 && f.value !== "workDay" && f.value !== "lastWeek" && f.value !== "lastDay") { + ee(); + continue l; + } + if (f.value === "lastDay") { + if (a(G + "-" + $ + "-" + E + " 00:00:00") !== !0) + for (; N > 0 && a(G + "-" + $ + "-" + E + " 00:00:00") !== !0; ) + N--, E = N < 10 ? "0" + N : N; + } else if (f.value === "workDay") { + if (a(G + "-" + $ + "-" + E + " 00:00:00") !== !0) + for (; N > 0 && a(G + "-" + $ + "-" + E + " 00:00:00") !== !0; ) + N--, E = N < 10 ? "0" + N : N; + const Y = c(/* @__PURE__ */ new Date(G + "-" + $ + "-" + E + " 00:00:00"), "week"); + Y === 0 ? (N++, E = N < 10 ? "0" + N : N, a(G + "-" + $ + "-" + E + " 00:00:00") !== !0 && (N -= 3)) : Y === 6 && (e.value !== 1 ? N-- : N += 2); + } else if (f.value === "weekDay") { + const Y = c(/* @__PURE__ */ new Date(G + "-" + $ + "-" + N + " 00:00:00"), "week"); + if (Array.indexOf(e.value, Y) < 0) { + if (oe === K.length - 1) { + if (ee(), le === q.length - 1) { + te(); + continue e; + } + continue l; + } + continue; + } + } else if (f.value === "assWeek") { + const Y = c(/* @__PURE__ */ new Date(G + "-" + $ + "-" + N + " 00:00:00"), "week"); + e.value[1] >= Y ? N = (e.value[0] - 1) * 7 + e.value[1] - Y + 1 : N = e.value[0] * 7 + e.value[1] - Y + 1; + } else if (f.value === "lastWeek") { + if (a(G + "-" + $ + "-" + E + " 00:00:00") !== !0) + for (; N > 0 && a(G + "-" + $ + "-" + E + " 00:00:00") !== !0; ) + N--, E = N < 10 ? "0" + N : N; + const Y = c(/* @__PURE__ */ new Date(G + "-" + $ + "-" + E + " 00:00:00"), "week"); + e.value < Y ? N -= Y - e.value : e.value > Y && (N -= 7 - (e.value - Y)); + } + N = N < 10 ? "0" + N : N; + u: + for (let Y = me; Y < J.length; Y++) { + const Ue = J[Y] < 10 ? "0" + J[Y] : J[Y]; + if (Q > X[X.length - 1]) { + if (ie(), Y === J.length - 1) { + if (se(), oe === K.length - 1) { + if (ee(), le === q.length - 1) { + te(); + continue e; + } + continue l; + } + continue a; + } + continue; + } + t: + for (let de = pe; de < X.length; de++) { + const we = X[de] < 10 ? "0" + X[de] : X[de]; + if (ve > Z[Z.length - 1]) { + if (_e(), de === X.length - 1) { + if (ie(), Y === J.length - 1) { + if (se(), oe === K.length - 1) { + if (ee(), le === q.length - 1) { + te(); + continue e; + } + continue l; + } + continue a; + } + continue u; + } + continue; + } + for (let re = ge; re <= Z.length - 1; re++) { + const Ce = Z[re] < 10 ? "0" + Z[re] : Z[re]; + if ($ !== "00" && N !== "00" && (t.push(G + "-" + $ + "-" + N + " " + Ue + ":" + we + ":" + Ce), V++), V === 5) + break e; + if (re === Z.length - 1) { + if (_e(), de === X.length - 1) { + if (ie(), Y === J.length - 1) { + if (se(), oe === K.length - 1) { + if (ee(), le === q.length - 1) { + te(); + continue e; + } + continue l; + } + continue a; + } + continue u; + } + continue t; + } + } + } + } + } + } + } + t.length === 0 ? v.value = ["没有达到条件的结果!"] : (v.value = t, t.length !== 5 && v.value.push("最近100年内只有上面" + t.length + "条结果!")), y.value = !0; + }; + return S(() => s.ex, () => { + A(); + }, { deep: !0 }), ye(() => { + A(); + }), (u, V) => (M(), B("div", Ye, [ + Fe, + j("ul", Ie, [ + y.value ? (M(!0), B(ae, { key: 0 }, ue(v.value, (t) => (M(), B("li", { key: t }, z(t), 1))), 128)) : (M(), B("li", $e, "计算结果中...")) + ]) + ])); + } +}; +const He = (L, s) => { + const f = L.__vccOpts || L; + for (const [e, o] of s) + f[e] = o; + return f; +}, xe = (L) => (Ne("data-v-8ae49d29"), L = L(), Oe(), L), Re = { class: "popup-main" }, Ee = { class: "popup-result" }, Be = /* @__PURE__ */ xe(() => /* @__PURE__ */ j("p", { class: "title" }, "时间表达式", -1)), Pe = /* @__PURE__ */ xe(() => /* @__PURE__ */ j("th", null, "crontab完整表达式", -1)), qe = { class: "pop_btn" }, Ge = { + name: "vue3-cron-plus-picker" +}, Je = /* @__PURE__ */ Object.assign(Ge, { + props: { + expression: String, + hideComponent: String + }, + emits: ["hide", "fill"], + setup(L, { emit: s }) { + const f = L, e = De(), o = be(["秒", "分钟", "小时", "日", "月", "周", "年"]); + b(0), b(0); + const v = be({ + second: "*", + min: "*", + hour: "*", + day: "*", + mouth: "*", + week: "?", + year: "" + }), y = T(() => { + const g = v; + return g.second + " " + g.min + " " + g.hour + " " + g.day + " " + g.mouth + " " + g.week + (g.year === "" ? "" : " " + g.year); + }), _ = (g) => !(f.hideComponent && f.hideComponent.includes(g)), x = (g, k) => { + const h = ["second", "min", "hour", "mouth"], n = "cron" + g; + let r; + const c = e.refs; + if (c[n]) { + if (h.includes(g)) + if (k === "*") + r = 1; + else if (k.indexOf("-") > -1) { + const a = k.split("-"); + isNaN(a[0]) ? c[n].cycle01 = 0 : c[n].cycle01 = a[0], c[n].cycle02 = a[1], r = 2; + } else if (k.indexOf("/") > -1) { + const a = k.split("/"); + isNaN(a[0]) ? c[n].average01 = 0 : c[n].average01 = a[0], c[n].average02 = a[1], r = 3; + } else + r = 4, c[n].checkboxList = k.split(","); + else if (g === "day") + if (k === "*") + r = 1; + else if (k === "?") + r = 2; + else if (k.indexOf("-") > -1) { + const a = k.split("-"); + isNaN(a[0]) ? c[n].cycle01 = 0 : c[n].cycle01 = a[0], c[n].cycle02 = a[1], r = 3; + } else if (k.indexOf("/") > -1) { + const a = k.split("/"); + isNaN(a[0]) ? c[n].average01 = 0 : c[n].average01 = a[0], c[n].average02 = a[1], r = 4; + } else if (k.indexOf("W") > -1) { + const a = k.split("W"); + isNaN(a[0]) ? c[n].workday = 0 : c[n].workday = a[0], r = 5; + } else + k === "L" ? r = 6 : (c[n].checkboxList = k.split(","), r = 7); + else if (g === "week") + if (k === "*") + r = 1; + else if (k === "?") + r = 2; + else if (k.indexOf("-") > -1) { + const a = k.split("-"); + isNaN(a[0]) ? c[n].cycle01 = 0 : c[n].cycle01 = a[0], c[n].cycle02 = a[1], r = 3; + } else if (k.indexOf("#") > -1) { + const a = k.split("#"); + isNaN(a[0]) ? c[n].average01 = 1 : c[n].average01 = a[0], c[n].average02 = a[1], r = 4; + } else if (k.indexOf("L") > -1) { + const a = k.split("L"); + isNaN(a[0]) ? c[n].weekday = 1 : c[n].weekday = a[0], r = 5; + } else + c[n].checkboxList = k.split(","), r = 7; + else + g === "year" && (k === "" ? r = 1 : k === "*" ? r = 2 : k.indexOf("-") > -1 ? r = 3 : k.indexOf("/") > -1 ? r = 4 : (c[n].checkboxList = k.split(","), r = 5)); + c[n].radioValue = r; + } + }, C = () => { + v.second = "*", v.min = "*", v.hour = "*", v.day = "*", v.mouth = "*", v.week = "?", v.year = "*"; + for (const g in v) + x(g, v[g]); + }, w = () => { + if (f.expression) { + const g = f.expression.split(" "); + if (g.length >= 6) { + const k = { + second: g[0], + min: g[1], + hour: g[2], + day: g[3], + mouth: g[4], + week: g[5], + year: g[6] ? g[6] : "" + }; + for (const h in k) + v[h] = k[h]; + for (const h in k) + k[h] && x(h, k[h]); + } + } else + C(); + }, O = (g, k, h) => { + v[g] = k, h && h !== g && x(g, k); + }, D = (g, k, h) => (g = Math.floor(g), g < k ? g = k : g > h && (g = h), g), W = () => { + s("hide"); + }, F = () => { + s("fill", y.value), W(); + }; + return ye(() => { + w(); + }), S(() => f.expression, () => { + w(); + }, { deep: !0 }), (g, k) => { + const h = U("el-tab-pane"), n = U("el-tabs"), r = U("el-button"); + return M(), B("div", null, [ + l(n, { type: "border-card" }, { + default: d(() => [ + _("second") ? (M(), H(h, { + key: 0, + label: "秒" + }, { + default: d(() => [ + l(Ae, { + onUpdate: O, + check: D, + ref: "cronsecond" + }, null, 512) + ]), + _: 1 + })) : ne("", !0), + _("min") ? (M(), H(h, { + key: 1, + label: "分钟" + }, { + default: d(() => [ + l(Se, { + onUpdate: O, + check: D, + cron: v, + ref: "cronmin" + }, null, 8, ["cron"]) + ]), + _: 1 + })) : ne("", !0), + _("hour") ? (M(), H(h, { + key: 2, + label: "小时" + }, { + default: d(() => [ + l(Me, { + onUpdate: O, + check: D, + cron: v, + ref: "cronhour" + }, null, 8, ["cron"]) + ]), + _: 1 + })) : ne("", !0), + _("day") ? (M(), H(h, { + key: 3, + label: "日" + }, { + default: d(() => [ + l(Le, { + onUpdate: O, + check: D, + cron: v, + ref: "cronday" + }, null, 8, ["cron"]) + ]), + _: 1 + })) : ne("", !0), + _("mouth") ? (M(), H(h, { + key: 4, + label: "月" + }, { + default: d(() => [ + l(je, { + onUpdate: O, + check: D, + cron: v, + ref: "cronmouth" + }, null, 8, ["cron"]) + ]), + _: 1 + })) : ne("", !0), + _("week") ? (M(), H(h, { + key: 5, + label: "周" + }, { + default: d(() => [ + l(Te, { + onUpdate: O, + check: D, + cron: v, + ref: "cronweek" + }, null, 8, ["cron"]) + ]), + _: 1 + })) : ne("", !0), + _("year") ? (M(), H(h, { + key: 6, + label: "年" + }, { + default: d(() => [ + l(We, { + onUpdate: O, + check: D, + cron: v, + ref: "cronyear" + }, null, 8, ["cron"]) + ]), + _: 1 + })) : ne("", !0) + ]), + _: 1 + }), + j("div", Re, [ + j("div", Ee, [ + Be, + j("table", null, [ + j("thead", null, [ + (M(!0), B(ae, null, ue(o, (c) => (M(), B("th", { + width: "40", + key: c + }, z(c), 1))), 128)), + Pe + ]), + j("tbody", null, [ + j("td", null, [ + j("span", null, z(v.second), 1) + ]), + j("td", null, [ + j("span", null, z(v.min), 1) + ]), + j("td", null, [ + j("span", null, z(v.hour), 1) + ]), + j("td", null, [ + j("span", null, z(v.day), 1) + ]), + j("td", null, [ + j("span", null, z(v.mouth), 1) + ]), + j("td", null, [ + j("span", null, z(v.week), 1) + ]), + j("td", null, [ + j("span", null, z(v.year), 1) + ]), + j("td", null, [ + j("span", null, z(y.value), 1) + ]) + ]) + ]) + ]), + _("result") ? (M(), H(ze, { + key: 0, + ex: y.value + }, null, 8, ["ex"])) : ne("", !0), + j("div", qe, [ + l(r, { + size: "small", + type: "primary", + onClick: F + }, { + default: d(() => [ + m("确定") + ]), + _: 1 + }), + l(r, { + size: "small", + type: "warning", + onClick: C + }, { + default: d(() => [ + m("重置") + ]), + _: 1 + }), + l(r, { + size: "small", + onClick: W + }, { + default: d(() => [ + m("取消") + ]), + _: 1 + }) + ]) + ]) + ]); + }; + } +}), Ke = /* @__PURE__ */ He(Je, [["__scopeId", "data-v-8ae49d29"]]), Qe = [Ke], Xe = function(L) { + Qe.forEach((s) => { + L.component(s.name, s); + }); +}, el = { install: Xe }; +export { + Ke as Vue3CronPlusPicker, + el as default +}; diff --git a/node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.umd.cjs b/node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.umd.cjs new file mode 100644 index 00000000..b2d2a0a5 --- /dev/null +++ b/node_modules/vue3-cron-plus-picker/vue3-cron-plus-picker.umd.cjs @@ -0,0 +1 @@ +(function(R,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(R=typeof globalThis<"u"?globalThis:R||self,e(R["vue3-cron-plus-picker"]={},R.Vue))})(this,function(R,e){"use strict";const se={__name:"Crontab-Second",props:{check:Function},emits:["update","fill"],setup(U,{expose:r,emit:p}){const l=U,n=e.ref(1),u=e.ref(1),h=e.ref(2),V=e.ref(0),g=e.ref(1),_=e.ref([]),w=e.ref(l.check),b=e.computed({get:()=>u.value+"-"+h.value,set:d=>{u.value=w.value(u.value,0,59),h.value=w.value(h.value,0,59)}}),C=e.computed({get:()=>V.value+"/"+g.value,set:d=>{V.value=w.value(V.value,0,59),g.value=w.value(g.value,1,59)}}),B=e.computed(()=>{const d=_.value.join();return d===""?"*":d}),E=()=>{switch(n.value){case 1:p("update","second","*","second"),p("update","min","*","second");break;case 2:p("update","second",u.value+"-"+h.value);break;case 3:p("update","second",V.value+"/"+g.value);break;case 4:p("update","second",B.value);break}},x=()=>{n.value===2&&p("update","second",b.value)},N=()=>{n.value===3&&p("update","second",C.value)},k=()=>{n.value===4&&p("update","second",B.value)};return e.watch(n,()=>{E()},{deep:!0}),e.watch(b,()=>{x()},{deep:!0}),e.watch(C,()=>{N()},{deep:!0}),e.watch(B,()=>{k()},{deep:!0}),r({radioValue:n.value}),(d,c)=>{const i=e.resolveComponent("el-radio"),t=e.resolveComponent("el-form-item"),T=e.resolveComponent("el-input-number"),a=e.resolveComponent("el-option"),f=e.resolveComponent("el-select"),o=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(o,{size:"small"},{default:e.withCtx(()=>[e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{modelValue:n.value,"onUpdate:modelValue":c[0]||(c[0]=s=>n.value=s),label:1},{default:e.withCtx(()=>[e.createTextVNode(" 秒,允许的通配符[, - * /] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{modelValue:n.value,"onUpdate:modelValue":c[3]||(c[3]=s=>n.value=s),label:2},{default:e.withCtx(()=>[e.createTextVNode(" 周期从 "),e.createVNode(T,{modelValue:u.value,"onUpdate:modelValue":c[1]||(c[1]=s=>u.value=s),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" - "),e.createVNode(T,{modelValue:h.value,"onUpdate:modelValue":c[2]||(c[2]=s=>h.value=s),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 秒 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{modelValue:n.value,"onUpdate:modelValue":c[6]||(c[6]=s=>n.value=s),label:3},{default:e.withCtx(()=>[e.createTextVNode(" 从 "),e.createVNode(T,{modelValue:V.value,"onUpdate:modelValue":c[4]||(c[4]=s=>V.value=s),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 秒开始,每 "),e.createVNode(T,{modelValue:g.value,"onUpdate:modelValue":c[5]||(c[5]=s=>g.value=s),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 秒执行一次 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{modelValue:n.value,"onUpdate:modelValue":c[8]||(c[8]=s=>n.value=s),label:4},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(f,{clearable:"",modelValue:_.value,"onUpdate:modelValue":c[7]||(c[7]=s=>_.value=s),placeholder:"可多选",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(60,s=>e.createVNode(a,{key:s,value:s-1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s-1),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},ie={__name:"Crontab-Min",props:{check:Function,cron:Object},emits:["update","fill"],setup(U,{emit:r}){const p=U,l=e.ref(1),n=e.ref(1),u=e.ref(2),h=e.ref(0),V=e.ref(1),g=e.ref([]),_=e.ref(p.check),w=e.computed({get:()=>n.value+"-"+u.value,set:k=>{n.value=_.value(n.value,0,59),u.value=_.value(u.value,0,59)}}),b=e.computed({get:()=>h.value+"/"+V.value,set:k=>{h.value=_.value(h.value,0,59),V.value=_.value(V.value,1,59)}}),C=e.computed(()=>{const k=g.value.join();return k===""?"*":k}),B=()=>{var k;switch(l.value!==1&&((k=p.cron)==null?void 0:k.second)==="*"&&r("update","second","0","min"),l.value){case 1:r("update","min","*","min"),r("update","hour","*","min");break;case 2:r("update","min",n.value+"-"+u.value,"min");break;case 3:r("update","min",h.value+"/"+V.value,"min");break;case 4:r("update","min",C.value,"min");break}},E=()=>{l.value===2&&r("update","min",w.value,"min")},x=()=>{l.value===3&&r("update","min",b.value,"min")},N=()=>{l.value===4&&r("update","min",C.value,"min")};return e.watch(l,()=>{B()},{deep:!0}),e.watch(w,()=>{E()},{deep:!0}),e.watch(b,()=>{x()},{deep:!0}),e.watch(C,()=>{N()},{deep:!0}),(k,d)=>{const c=e.resolveComponent("el-radio"),i=e.resolveComponent("el-form-item"),t=e.resolveComponent("el-input-number"),T=e.resolveComponent("el-option"),a=e.resolveComponent("el-select"),f=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(f,{size:"small"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=o=>l.value=o),label:1},{default:e.withCtx(()=>[e.createTextVNode(" 分钟,允许的通配符[, - * /] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[3]||(d[3]=o=>l.value=o),label:2},{default:e.withCtx(()=>[e.createTextVNode(" 周期从 "),e.createVNode(t,{modelValue:n.value,"onUpdate:modelValue":d[1]||(d[1]=o=>n.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" - "),e.createVNode(t,{modelValue:u.value,"onUpdate:modelValue":d[2]||(d[2]=o=>u.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 分钟 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[6]||(d[6]=o=>l.value=o),label:3},{default:e.withCtx(()=>[e.createTextVNode(" 从 "),e.createVNode(t,{modelValue:h.value,"onUpdate:modelValue":d[4]||(d[4]=o=>h.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 分钟开始,每 "),e.createVNode(t,{modelValue:V.value,"onUpdate:modelValue":d[5]||(d[5]=o=>V.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 分钟执行一次 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[8]||(d[8]=o=>l.value=o),label:4},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(a,{clearable:"",modelValue:g.value,"onUpdate:modelValue":d[7]||(d[7]=o=>g.value=o),placeholder:"可多选",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(60,o=>e.createVNode(T,{key:o,value:o-1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o-1),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},me={__name:"Crontab-Hour",props:{check:Function,cron:Object},emits:["update","fill"],setup(U,{emit:r}){const p=U,l=e.ref(1),n=e.ref(0),u=e.ref(1),h=e.ref(0),V=e.ref(1),g=e.ref([]),_=e.ref(p.check),w=e.computed({get:()=>n.value+"-"+u.value,set:k=>{n.value=_.value(n.value,0,23),u.value=_.value(u.value,0,23)}}),b=e.computed({get:()=>h.value+"/"+V.value,set:k=>{h.value=_.value(h.value,0,23),V.value=_.value(V.value,1,23)}}),C=e.computed(()=>{const k=g.value.join();return k===""?"*":k}),B=()=>{switch(l.value===1?(r("update","hour","*","hour"),r("update","day","*","hour")):(p.cron.min==="*"&&r("update","min","0","hour"),p.cron.second==="*"&&r("update","second","0","hour")),l.value){case 2:r("update","hour",n.value+"-"+u.value);break;case 3:r("update","hour",h.value+"/"+V.value);break;case 4:r("update","hour",C.value);break}},E=()=>{l.value===2&&r("update","hour",w.value)},x=()=>{l.value===3&&r("update","hour",b.value)},N=()=>{l.value===4&&r("update","hour",C.value)};return e.watch(l,()=>{B()},{deep:!0}),e.watch(w,()=>{E()},{deep:!0}),e.watch(b,()=>{x()},{deep:!0}),e.watch(C,()=>{N()},{deep:!0}),(k,d)=>{const c=e.resolveComponent("el-radio"),i=e.resolveComponent("el-form-item"),t=e.resolveComponent("el-input-number"),T=e.resolveComponent("el-option"),a=e.resolveComponent("el-select"),f=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(f,{size:"small"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=o=>l.value=o),label:1},{default:e.withCtx(()=>[e.createTextVNode(" 小时,允许的通配符[, - * /] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[3]||(d[3]=o=>l.value=o),label:2},{default:e.withCtx(()=>[e.createTextVNode(" 周期从 "),e.createVNode(t,{modelValue:n.value,"onUpdate:modelValue":d[1]||(d[1]=o=>n.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" - "),e.createVNode(t,{modelValue:u.value,"onUpdate:modelValue":d[2]||(d[2]=o=>u.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 小时 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[6]||(d[6]=o=>l.value=o),label:3},{default:e.withCtx(()=>[e.createTextVNode(" 从 "),e.createVNode(t,{modelValue:h.value,"onUpdate:modelValue":d[4]||(d[4]=o=>h.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 小时开始,每 "),e.createVNode(t,{modelValue:V.value,"onUpdate:modelValue":d[5]||(d[5]=o=>V.value=o),min:0,max:60},null,8,["modelValue"]),e.createTextVNode(" 小时执行一次 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[8]||(d[8]=o=>l.value=o),label:4},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(a,{clearable:"",modelValue:g.value,"onUpdate:modelValue":d[7]||(d[7]=o=>g.value=o),placeholder:"可多选",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(60,o=>e.createVNode(T,{key:o,value:o-1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o-1),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},pe={__name:"Crontab-Day",props:{check:Function,cron:Object},emits:["update","fill"],setup(U,{emit:r}){const p=U,l=e.ref(1),n=e.ref(1),u=e.ref(1),h=e.ref(2),V=e.ref(1),g=e.ref(1),_=e.ref([]),w=e.ref(p.check),b=e.computed({get:()=>u.value+"-"+h.value,set:()=>{u.value=w.value(u.value,0,59),h.value=w.value(h.value,0,59)}}),C=e.computed({get:()=>V.value+"/"+g.value,set:()=>{V.value=w.value(V.value,0,59),g.value=w.value(g.value,1,59)}}),B=e.computed({get:()=>n.value,set:()=>{n.value=w.value(n.value,1,31)}}),E=e.computed(()=>{const i=_.value.join();return i===""?"*":i}),x=()=>{switch(l.value===1?(r("update","day","*","day"),r("update","week","?","day"),r("update","mouth","*","day")):(p.cron.hour==="*"&&r("update","hour","0","day"),p.cron.min==="*"&&r("update","min","0","day"),p.cron.second==="*"&&r("update","second","0","day")),l.value){case 2:r("update","day","?");break;case 3:r("update","day",u.value+"-"+h.value);break;case 4:r("update","day",V.value+"/"+g.value);break;case 5:r("update","day",n.value+"W");break;case 6:r("update","day","L");break;case 7:r("update","day",E.value);break}},N=()=>{l.value===3&&r("update","day",b.value)},k=()=>{l.value===4&&r("update","day",C.value)},d=()=>{l.value===5&&r("update","day",n.value+"W")},c=()=>{l.value===7&&r("update","day",E.value)};return e.watch(l,()=>{x()},{deep:!0}),e.watch(b,()=>{N()},{deep:!0}),e.watch(C,()=>{k()},{deep:!0}),e.watch(B,()=>{d()},{deep:!0}),e.watch(E,()=>{c()},{deep:!0}),(i,t)=>{const T=e.resolveComponent("el-radio"),a=e.resolveComponent("el-form-item"),f=e.resolveComponent("el-input-number"),o=e.resolveComponent("el-option"),s=e.resolveComponent("el-select"),S=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(S,{size:"small"},{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=m=>l.value=m),label:1},{default:e.withCtx(()=>[e.createTextVNode(" 日,允许的通配符[, - * / L M] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=m=>l.value=m),label:2},{default:e.withCtx(()=>[e.createTextVNode(" 不指定 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[4]||(t[4]=m=>l.value=m),label:3},{default:e.withCtx(()=>[e.createTextVNode(" 周期从 "),e.createVNode(f,{modelValue:u.value,"onUpdate:modelValue":t[2]||(t[2]=m=>u.value=m),min:0,max:31},null,8,["modelValue"]),e.createTextVNode(" - "),e.createVNode(f,{modelValue:h.value,"onUpdate:modelValue":t[3]||(t[3]=m=>h.value=m),min:0,max:31},null,8,["modelValue"]),e.createTextVNode(" 日 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[7]||(t[7]=m=>l.value=m),label:4},{default:e.withCtx(()=>[e.createTextVNode(" 从 "),e.createVNode(f,{modelValue:V.value,"onUpdate:modelValue":t[5]||(t[5]=m=>V.value=m),min:0,max:31},null,8,["modelValue"]),e.createTextVNode(" 号开始,每 "),e.createVNode(f,{modelValue:g.value,"onUpdate:modelValue":t[6]||(t[6]=m=>g.value=m),min:0,max:31},null,8,["modelValue"]),e.createTextVNode(" 日执行一次 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[9]||(t[9]=m=>l.value=m),label:5},{default:e.withCtx(()=>[e.createTextVNode(" 每月 "),e.createVNode(f,{modelValue:n.value,"onUpdate:modelValue":t[8]||(t[8]=m=>n.value=m),min:0,max:31},null,8,["modelValue"]),e.createTextVNode(" 号最近的那个工作日 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[10]||(t[10]=m=>l.value=m),label:6},{default:e.withCtx(()=>[e.createTextVNode(" 本月最后一天 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[12]||(t[12]=m=>l.value=m),label:7},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(s,{clearable:"",modelValue:_.value,"onUpdate:modelValue":t[11]||(t[11]=m=>_.value=m),placeholder:"可多选",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(31,m=>e.createVNode(o,{key:m,value:m},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},fe={__name:"Crontab-Mouth",props:{check:Function,cron:Object},emits:["update","fill"],setup(U,{emit:r}){const p=U,l=e.ref(1),n=e.ref(1),u=e.ref(2),h=e.ref(1),V=e.ref(1),g=e.ref([]),_=e.ref(p.check),w=e.computed({get:()=>n.value+"-"+u.value,set:()=>{n.value=_.value(n.value,0,12),u.value=_.value(u.value,0,12)}}),b=e.computed({get:()=>h.value+"/"+V.value,set:()=>{h.value=_.value(h.value,1,12),V.value=_.value(V.value,1,12)}}),C=e.computed(()=>{const k=g.value.join();return k===""?"*":k}),B=()=>{switch(l.value===1?(r("update","mouth","*"),r("update","year","*")):(p.cron.day==="*"&&r("update","day","0","mouth"),p.cron.hour==="*"&&r("update","hour","0","mouth"),p.cron.min==="*"&&r("update","min","0","mouth"),p.cron.second==="*"&&r("update","second","0","mouth")),l.value){case 2:r("update","mouth",n.value+"-"+u.value);break;case 3:r("update","mouth",h.value+"/"+V.value);break;case 4:r("update","mouth",C.value);break}},E=()=>{l.value===2&&r("update","mouth",w.value)},x=()=>{l.value===3&&r("update","mouth",b.value)},N=()=>{l.value===4&&r("update","mouth",C.value)};return e.watch(l,()=>{B()},{deep:!0}),e.watch(w,()=>{E()},{deep:!0}),e.watch(b,()=>{x()},{deep:!0}),e.watch(C,()=>{N()},{deep:!0}),(k,d)=>{const c=e.resolveComponent("el-radio"),i=e.resolveComponent("el-form-item"),t=e.resolveComponent("el-input-number"),T=e.resolveComponent("el-option"),a=e.resolveComponent("el-select"),f=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(f,{size:"small"},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=o=>l.value=o),label:1},{default:e.withCtx(()=>[e.createTextVNode(" 月,允许的通配符[, - * /] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[3]||(d[3]=o=>l.value=o),label:2},{default:e.withCtx(()=>[e.createTextVNode(" 周期从 "),e.createVNode(t,{modelValue:n.value,"onUpdate:modelValue":d[1]||(d[1]=o=>n.value=o),min:1,max:12},null,8,["modelValue"]),e.createTextVNode(" - "),e.createVNode(t,{modelValue:u.value,"onUpdate:modelValue":d[2]||(d[2]=o=>u.value=o),min:1,max:12},null,8,["modelValue"]),e.createTextVNode(" 月 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[6]||(d[6]=o=>l.value=o),label:3},{default:e.withCtx(()=>[e.createTextVNode(" 从 "),e.createVNode(t,{modelValue:h.value,"onUpdate:modelValue":d[4]||(d[4]=o=>h.value=o),min:1,max:12},null,8,["modelValue"]),e.createTextVNode(" 月开始,每 "),e.createVNode(t,{modelValue:V.value,"onUpdate:modelValue":d[5]||(d[5]=o=>V.value=o),min:1,max:12},null,8,["modelValue"]),e.createTextVNode(" 月月执行一次 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(i,null,{default:e.withCtx(()=>[e.createVNode(c,{modelValue:l.value,"onUpdate:modelValue":d[8]||(d[8]=o=>l.value=o),label:4},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(a,{clearable:"",modelValue:g.value,"onUpdate:modelValue":d[7]||(d[7]=o=>g.value=o),placeholder:"可多选",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(12,o=>e.createVNode(T,{key:o,value:o},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o),1)]),_:2},1032,["value"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},Ve={__name:"Crontab-Week",props:{check:Function,cron:Object},emits:["update","fill"],setup(U,{emit:r}){const p=U,l=e.ref(2),n=e.ref(1),u=e.ref(1),h=e.ref(2),V=e.ref(1),g=e.ref(1),_=e.ref([]),w=e.ref(p.check),b=e.reactive(["周一","周二","周三","周四","周五","周六","周日"]),C=e.computed({get:()=>u.value+"-"+h.value,set:()=>{u.value=w.value(u.value,1,7),h.value=w.value(h.value,1,7)}}),B=e.computed({get:()=>V.value+"/"+g.value,set:()=>{V.value=w.value(V.value,1,4),g.value=w.value(g.value,1,7)}}),E=e.computed({get:()=>n.value,set:()=>{n.value=w.value(n.value,1,7)}}),x=e.computed(()=>{const i=_.value.join();return i===""?"*":i}),N=()=>{switch(l.value===1?(r("update","week","*"),r("update","year","*")):(p.cron.mouth==="*"&&r("update","mouth","0","week"),p.cron.day==="*"&&r("update","day","0","week"),p.cron.hour==="*"&&r("update","hour","0","week"),p.cron.min==="*"&&r("update","min","0","week"),p.cron.second==="*"&&r("update","second","0","week")),l.value){case 2:r("update","week","?");break;case 3:r("update","week",u.value+"-"+h.value);break;case 4:r("update","week",V.value+"#"+g.value);break;case 5:r("update","week",n.value+"L");break;case 6:r("update","week",x.value);break}},k=()=>{l.value==="3"&&r("update","week",C.value)},d=()=>{l.value==="4"&&r("update","week",B.value)},c=()=>{l.value==="6"&&r("update","week",x.value)};return e.watch(l,()=>{N()},{deep:!0}),e.watch(C,()=>{k()},{deep:!0}),e.watch(B,()=>{d()},{deep:!0}),e.watch(E,()=>{E()},{deep:!0}),e.watch(x,()=>{c()},{deep:!0}),(i,t)=>{const T=e.resolveComponent("el-radio"),a=e.resolveComponent("el-form-item"),f=e.resolveComponent("el-input-number"),o=e.resolveComponent("el-option"),s=e.resolveComponent("el-select"),S=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(S,{size:"small"},{default:e.withCtx(()=>[e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[0]||(t[0]=m=>l.value=m),label:1},{default:e.withCtx(()=>[e.createTextVNode(" 周,允许的通配符[, - * / L #] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=m=>l.value=m),label:2},{default:e.withCtx(()=>[e.createTextVNode(" 不指定 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[4]||(t[4]=m=>l.value=m),label:3},{default:e.withCtx(()=>[e.createTextVNode(" 周期从星期 "),e.createVNode(f,{modelValue:u.value,"onUpdate:modelValue":t[2]||(t[2]=m=>u.value=m),min:1,max:7},null,8,["modelValue"]),e.createTextVNode(" - "),e.createVNode(f,{modelValue:h.value,"onUpdate:modelValue":t[3]||(t[3]=m=>h.value=m),min:1,max:7},null,8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[7]||(t[7]=m=>l.value=m),label:4},{default:e.withCtx(()=>[e.createTextVNode(" 第 "),e.createVNode(f,{modelValue:V.value,"onUpdate:modelValue":t[5]||(t[5]=m=>V.value=m),min:1,max:4},null,8,["modelValue"]),e.createTextVNode(" 周的星期 "),e.createVNode(f,{modelValue:g.value,"onUpdate:modelValue":t[6]||(t[6]=m=>g.value=m),min:1,max:7},null,8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[9]||(t[9]=m=>l.value=m),label:5},{default:e.withCtx(()=>[e.createTextVNode(" 本月最后一个星期 "),e.createVNode(f,{modelValue:n.value,"onUpdate:modelValue":t[8]||(t[8]=m=>n.value=m),min:1,max:7},null,8,["modelValue"])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(a,null,{default:e.withCtx(()=>[e.createVNode(T,{modelValue:l.value,"onUpdate:modelValue":t[11]||(t[11]=m=>l.value=m),label:6},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(s,{clearable:"",modelValue:_.value,"onUpdate:modelValue":t[10]||(t[10]=m=>_.value=m),placeholder:"可多选",multiple:"","collapse-tags":"","collapse-tags-tooltip":"",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b,(m,L)=>(e.openBlock(),e.createBlock(o,{key:L,value:L+1},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},xe={__name:"Crontab-Year",props:{check:Function,cron:Object},emits:["update","fill"],setup(U,{emit:r}){const p=U,l=e.ref(0),n=e.ref(1),u=e.ref(0),h=e.ref(0),V=e.ref(0),g=e.ref(1),_=e.ref([]),w=e.ref(p.check),b=e.computed({get:()=>u.value+"-"+h.value,set:()=>{u.value=w.value(u.value,l.value,l.value+100),h.value=w.value(h.value,l.value+1,l.value+101)}}),C=e.computed({get:()=>V.value+"/"+g.value,set:()=>{V.value=w.value(V.value,l.value,l.value+100),g.value=w.value(g.value,1,10)}}),B=e.computed(()=>_.value.join()),E=()=>{switch(p.cron.mouth==="*"&&r("update","mouth","0","year"),p.cron.day==="*"&&r("update","day","0","year"),p.cron.hour==="*"&&r("update","hour","0","year"),p.cron.min==="*"&&r("update","min","0","year"),p.cron.second==="*"&&r("update","second","0","year"),n.value){case 1:r("update","year","");break;case 2:r("update","year","*");break;case 3:r("update","year",u.value+"-"+h.value);break;case 4:r("update","year",V.value+"/"+g.value);break;case 5:r("update","year",B.value);break}},x=()=>{n.value===3&&r("update","year",b.value)},N=()=>{n.value===4&&r("update","year",C.value)},k=()=>{n.value===5&&r("update","year",B.value)};return e.watch(n,()=>{E()},{deep:!0}),e.watch(b,()=>{x()},{deep:!0}),e.watch(C,()=>{N()},{deep:!0}),e.watch(B,()=>{k()},{deep:!0}),e.onMounted(()=>{l.value=Number(new Date().getFullYear())}),(d,c)=>{const i=e.resolveComponent("el-radio"),t=e.resolveComponent("el-form-item"),T=e.resolveComponent("el-input-number"),a=e.resolveComponent("el-option"),f=e.resolveComponent("el-select"),o=e.resolveComponent("el-form");return e.openBlock(),e.createBlock(o,{size:"small"},{default:e.withCtx(()=>[e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{label:1,modelValue:n.value,"onUpdate:modelValue":c[0]||(c[0]=s=>n.value=s)},{default:e.withCtx(()=>[e.createTextVNode(" 不填,允许的通配符[, - * /] ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{label:2,modelValue:n.value,"onUpdate:modelValue":c[1]||(c[1]=s=>n.value=s)},{default:e.withCtx(()=>[e.createTextVNode(" 每年 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{label:3,modelValue:n.value,"onUpdate:modelValue":c[4]||(c[4]=s=>n.value=s)},{default:e.withCtx(()=>[e.createTextVNode(" 周期从 "),e.createVNode(T,{modelValue:u.value,"onUpdate:modelValue":c[2]||(c[2]=s=>u.value=s),min:l.value},null,8,["modelValue","min"]),e.createTextVNode(" - "),e.createVNode(T,{modelValue:h.value,"onUpdate:modelValue":c[3]||(c[3]=s=>h.value=s),min:l.value},null,8,["modelValue","min"])]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{label:4,modelValue:n.value,"onUpdate:modelValue":c[7]||(c[7]=s=>n.value=s)},{default:e.withCtx(()=>[e.createTextVNode(" 从 "),e.createVNode(T,{modelValue:V.value,"onUpdate:modelValue":c[5]||(c[5]=s=>V.value=s),min:l.value},null,8,["modelValue","min"]),e.createTextVNode(" 年开始,每 "),e.createVNode(T,{modelValue:g.value,"onUpdate:modelValue":c[6]||(c[6]=s=>g.value=s),min:l.value},null,8,["modelValue","min"]),e.createTextVNode(" 年执行一次 ")]),_:1},8,["modelValue"])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createVNode(i,{label:5,modelValue:n.value,"onUpdate:modelValue":c[9]||(c[9]=s=>n.value=s)},{default:e.withCtx(()=>[e.createTextVNode(" 指定 "),e.createVNode(f,{clearable:"",modelValue:_.value,"onUpdate:modelValue":c[8]||(c[8]=s=>_.value=s),placeholder:"可多选","collapse-tags":"","collapse-tags-tooltip":"",multiple:""},{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(9,s=>e.createVNode(a,{key:s,value:s-1+l.value,label:s-1+l.value},null,8,["value","label"])),64))]),_:1},8,["modelValue"])]),_:1},8,["modelValue"])]),_:1})]),_:1})}}},Ne={class:"popup-result"},he=e.createElementVNode("p",{class:"title"},"最近5次运行时间",-1),ke={class:"popup-result-scroll"},ge={key:1},we={__name:"Crontab-Result",props:{ex:String},setup(U){const r=U,p=e.ref(""),l=e.ref(""),n=e.ref([]),u=e.ref([]),h=e.ref(!1),V=(a,f)=>f-a>0?-1:1,g=(a,f)=>{if(f<=a[0]||f>a[a.length-1])return 0;for(let o=0;oa[o]&&f<=a[o+1])return o+1},_=(a,f)=>{const o=[];for(let s=a;s<=f;s++)o.push(s);return o},w=a=>{const f=[],o=a.split(",");for(let s=0;s{const o=[],s=a.split("/");let S=Number(s[0]);const m=Number(s[1]);for(;S<=f;)o.push(S),S+=m;return o},C=(a,f,o)=>{const s=[],S=a.split("-"),m=Number(S[0]);let L=Number(S[1]);m>L&&(L+=f);for(let M=m;M<=L;M++){let I=0;o===!1&&M%f===0&&(I=f),s.push(Math.round(M%f+I))}return s.sort(V),s},B=a=>{n.value[2]=_(0,23),a.indexOf("-")>=0?n.value[2]=C(a,24,!0):a.indexOf("/")>=0?n.value[2]=b(a,23):a!=="*"&&(n.value[2]=w(a))},E=a=>{n.value[1]=_(0,59),a.indexOf("-")>=0?n.value[1]=C(a,60,!0):a.indexOf("/")>=0?n.value[1]=b(a,59):a!=="*"&&(n.value[1]=w(a))},x=a=>{n.value[0]=_(0,59),a.indexOf("-")>=0?n.value[0]=C(a,60,!0):a.indexOf("/")>=0?n.value[0]=b(a,59):a!=="*"&&(n.value[0]=w(a))},N=(a,f)=>{n.value[5]=_(f,f+100),a!==void 0&&(a.indexOf("-")>=0?n.value[5]=C(a,f+100,!1):a.indexOf("/")>=0?n.value[5]=b(a,f+100):a!=="*"&&(n.value[5]=w(a)))},k=a=>{n.value[4]=_(1,12),a.indexOf("-")>=0?n.value[4]=C(a,12,!1):a.indexOf("/")>=0?n.value[4]=b(a,12):a!=="*"&&(n.value[4]=w(a))},d=a=>{if(p.value===""&&l.value===""){if(a.indexOf("-")>=0)p.value="weekDay",l.value=C(a,7,!1);else if(a.indexOf("#")>=0){p.value="assWeek";const f=a.match(/[0-9]{1}/g);l.value=[Number(f[0]),Number(f[1])],n.value[3]=[1],l.value[1]===7&&(l.value[1]=0)}else a.indexOf("L")>=0?(p.value="lastWeek",l.value=Number(a.match(/[0-9]{1,2}/g)[0]),n.value[3]=[31],l.value===7&&(l.value=0)):a!=="*"&&a!=="?"&&(p.value="weekDay",l.value=w(a));if(p.value==="weekDay")for(let f=0;f{n.value[3]=_(1,31),p.value="",l.value="",a.indexOf("-")>=0?(n.value[3]=C(a,31,!1),l.value="null"):a.indexOf("/")>=0?(n.value[3]=b(a,31),l.value="null"):a.indexOf("W")>=0?(p.value="workDay",l.value=Number(a.match(/[0-9]{1,2}/g)[0]),n.value[3]=[l.value]):a.indexOf("L")>=0?(p.value="lastDay",l.value="null",n.value[3]=[31]):a!=="*"&&a!=="?"?(n.value[3]=w(a),l.value="null"):a==="*"&&(l.value="null")},i=(a,f)=>{const o=typeof a=="number"?new Date(a):a,s=o.getFullYear(),S=o.getMonth()+1,m=o.getDate(),L=o.getHours(),M=o.getMinutes(),I=o.getSeconds(),X=o.getDay();if(f===void 0)return s+"-"+(S<10?"0"+S:S)+"-"+(m<10?"0"+m:m)+" "+(L<10?"0"+L:L)+":"+(M<10?"0"+M:M)+":"+(I<10?"0"+I:I);if(f==="week")return X},t=a=>{const f=new Date(a),o=i(f);return a===o},T=()=>{h.value=!1;const a=r.ex.split(" ");let f=0;const o=[],s=new Date,S=s.getFullYear();let m=s.getMonth()+1,L=s.getDate(),M=s.getHours(),I=s.getMinutes(),X=s.getSeconds();x(a[0]),E(a[1]),B(a[2]),c(a[3]),k(a[4]),d(a[5]),N(a[6],S);const z=n.value[0],$=n.value[1],W=n.value[2],Y=n.value[3],j=n.value[4],v=n.value[5];let ne=g(z,X),ee=g($,I),le=g(W,M),te=g(Y,L),ae=g(j,m);const ue=g(v,S),oe=function(){ne=0,X=z[ne]},Z=function(){ee=0,I=$[ee],oe()},K=function(){le=0,M=W[le],Z()},H=function(){te=0,L=Y[te],K()},q=function(){ae=0,m=j[ae],H()};S!==v[ue]&&q(),m!==j[ae]&&H(),L!==Y[te]&&K(),M!==W[le]&&Z(),I!==$[ee]&&oe();e:for(let de=ue;dej[j.length-1]){q();continue}l:for(let P=ae;PY[Y.length-1]){if(H(),P===j.length-1){q();continue e}continue}t:for(let G=te;GW[W.length-1]){if(K(),G===Y.length-1){if(H(),P===j.length-1){q();continue e}continue l}continue}if(t(F+"-"+O+"-"+A+" 00:00:00")!==!0&&p.value!=="workDay"&&p.value!=="lastWeek"&&p.value!=="lastDay"){H();continue l}if(p.value==="lastDay"){if(t(F+"-"+O+"-"+A+" 00:00:00")!==!0)for(;y>0&&t(F+"-"+O+"-"+A+" 00:00:00")!==!0;)y--,A=y<10?"0"+y:y}else if(p.value==="workDay"){if(t(F+"-"+O+"-"+A+" 00:00:00")!==!0)for(;y>0&&t(F+"-"+O+"-"+A+" 00:00:00")!==!0;)y--,A=y<10?"0"+y:y;const D=i(new Date(F+"-"+O+"-"+A+" 00:00:00"),"week");D===0?(y++,A=y<10?"0"+y:y,t(F+"-"+O+"-"+A+" 00:00:00")!==!0&&(y-=3)):D===6&&(l.value!==1?y--:y+=2)}else if(p.value==="weekDay"){const D=i(new Date(F+"-"+O+"-"+y+" 00:00:00"),"week");if(Array.indexOf(l.value,D)<0){if(G===Y.length-1){if(H(),P===j.length-1){q();continue e}continue l}continue}}else if(p.value==="assWeek"){const D=i(new Date(F+"-"+O+"-"+y+" 00:00:00"),"week");l.value[1]>=D?y=(l.value[0]-1)*7+l.value[1]-D+1:y=l.value[0]*7+l.value[1]-D+1}else if(p.value==="lastWeek"){if(t(F+"-"+O+"-"+A+" 00:00:00")!==!0)for(;y>0&&t(F+"-"+O+"-"+A+" 00:00:00")!==!0;)y--,A=y<10?"0"+y:y;const D=i(new Date(F+"-"+O+"-"+A+" 00:00:00"),"week");l.valueD&&(y-=7-(l.value-D))}y=y<10?"0"+y:y;a:for(let D=le;D$[$.length-1]){if(Z(),D===W.length-1){if(K(),G===Y.length-1){if(H(),P===j.length-1){q();continue e}continue l}continue t}continue}o:for(let J=ee;J<$.length;J++){const Se=$[J]<10?"0"+$[J]:$[J];if(X>z[z.length-1]){if(oe(),J===$.length-1){if(Z(),D===W.length-1){if(K(),G===Y.length-1){if(H(),P===j.length-1){q();continue e}continue l}continue t}continue a}continue}for(let Q=ne;Q<=z.length-1;Q++){const Oe=z[Q]<10?"0"+z[Q]:z[Q];if(O!=="00"&&y!=="00"&&(o.push(F+"-"+O+"-"+y+" "+Ee+":"+Se+":"+Oe),f++),f===5)break e;if(Q===z.length-1){if(oe(),J===$.length-1){if(Z(),D===W.length-1){if(K(),G===Y.length-1){if(H(),P===j.length-1){q();continue e}continue l}continue t}continue a}continue o}}}}}}}o.length===0?u.value=["没有达到条件的结果!"]:(u.value=o,o.length!==5&&u.value.push("最近100年内只有上面"+o.length+"条结果!")),h.value=!0};return e.watch(()=>r.ex,()=>{T()},{deep:!0}),e.onMounted(()=>{T()}),(a,f)=>(e.openBlock(),e.createElementBlock("div",Ne,[he,e.createElementVNode("ul",ke,[h.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(u.value,o=>(e.openBlock(),e.createElementBlock("li",{key:o},e.toDisplayString(o),1))),128)):(e.openBlock(),e.createElementBlock("li",ge,"计算结果中..."))])]))}},Le="",_e=(U,r)=>{const p=U.__vccOpts||U;for(const[l,n]of r)p[l]=n;return p},re=U=>(e.pushScopeId("data-v-8ae49d29"),U=U(),e.popScopeId(),U),Ce={class:"popup-main"},ye={class:"popup-result"},be=re(()=>e.createElementVNode("p",{class:"title"},"时间表达式",-1)),Te=re(()=>e.createElementVNode("th",null,"crontab完整表达式",-1)),Ue={class:"pop_btn"},ce=_e(Object.assign({name:"vue3-cron-plus-picker"},{props:{expression:String,hideComponent:String},emits:["hide","fill"],setup(U,{emit:r}){const p=U,l=e.getCurrentInstance(),n=e.reactive(["秒","分钟","小时","日","月","周","年"]);e.ref(0),e.ref(0);const u=e.reactive({second:"*",min:"*",hour:"*",day:"*",mouth:"*",week:"?",year:""}),h=e.computed(()=>{const x=u;return x.second+" "+x.min+" "+x.hour+" "+x.day+" "+x.mouth+" "+x.week+(x.year===""?"":" "+x.year)}),V=x=>!(p.hideComponent&&p.hideComponent.includes(x)),g=(x,N)=>{const k=["second","min","hour","mouth"],d="cron"+x;let c;const i=l.refs;if(i[d]){if(k.includes(x))if(N==="*")c=1;else if(N.indexOf("-")>-1){const t=N.split("-");isNaN(t[0])?i[d].cycle01=0:i[d].cycle01=t[0],i[d].cycle02=t[1],c=2}else if(N.indexOf("/")>-1){const t=N.split("/");isNaN(t[0])?i[d].average01=0:i[d].average01=t[0],i[d].average02=t[1],c=3}else c=4,i[d].checkboxList=N.split(",");else if(x==="day")if(N==="*")c=1;else if(N==="?")c=2;else if(N.indexOf("-")>-1){const t=N.split("-");isNaN(t[0])?i[d].cycle01=0:i[d].cycle01=t[0],i[d].cycle02=t[1],c=3}else if(N.indexOf("/")>-1){const t=N.split("/");isNaN(t[0])?i[d].average01=0:i[d].average01=t[0],i[d].average02=t[1],c=4}else if(N.indexOf("W")>-1){const t=N.split("W");isNaN(t[0])?i[d].workday=0:i[d].workday=t[0],c=5}else N==="L"?c=6:(i[d].checkboxList=N.split(","),c=7);else if(x==="week")if(N==="*")c=1;else if(N==="?")c=2;else if(N.indexOf("-")>-1){const t=N.split("-");isNaN(t[0])?i[d].cycle01=0:i[d].cycle01=t[0],i[d].cycle02=t[1],c=3}else if(N.indexOf("#")>-1){const t=N.split("#");isNaN(t[0])?i[d].average01=1:i[d].average01=t[0],i[d].average02=t[1],c=4}else if(N.indexOf("L")>-1){const t=N.split("L");isNaN(t[0])?i[d].weekday=1:i[d].weekday=t[0],c=5}else i[d].checkboxList=N.split(","),c=7;else x==="year"&&(N===""?c=1:N==="*"?c=2:N.indexOf("-")>-1?c=3:N.indexOf("/")>-1?c=4:(i[d].checkboxList=N.split(","),c=5));i[d].radioValue=c}},_=()=>{u.second="*",u.min="*",u.hour="*",u.day="*",u.mouth="*",u.week="?",u.year="*";for(const x in u)g(x,u[x])},w=()=>{if(p.expression){const x=p.expression.split(" ");if(x.length>=6){const N={second:x[0],min:x[1],hour:x[2],day:x[3],mouth:x[4],week:x[5],year:x[6]?x[6]:""};for(const k in N)u[k]=N[k];for(const k in N)N[k]&&g(k,N[k])}}else _()},b=(x,N,k)=>{u[x]=N,k&&k!==x&&g(x,N)},C=(x,N,k)=>(x=Math.floor(x),xk&&(x=k),x),B=()=>{r("hide")},E=()=>{r("fill",h.value),B()};return e.onMounted(()=>{w()}),e.watch(()=>p.expression,()=>{w()},{deep:!0}),(x,N)=>{const k=e.resolveComponent("el-tab-pane"),d=e.resolveComponent("el-tabs"),c=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(d,{type:"border-card"},{default:e.withCtx(()=>[V("second")?(e.openBlock(),e.createBlock(k,{key:0,label:"秒"},{default:e.withCtx(()=>[e.createVNode(se,{onUpdate:b,check:C,ref:"cronsecond"},null,512)]),_:1})):e.createCommentVNode("",!0),V("min")?(e.openBlock(),e.createBlock(k,{key:1,label:"分钟"},{default:e.withCtx(()=>[e.createVNode(ie,{onUpdate:b,check:C,cron:u,ref:"cronmin"},null,8,["cron"])]),_:1})):e.createCommentVNode("",!0),V("hour")?(e.openBlock(),e.createBlock(k,{key:2,label:"小时"},{default:e.withCtx(()=>[e.createVNode(me,{onUpdate:b,check:C,cron:u,ref:"cronhour"},null,8,["cron"])]),_:1})):e.createCommentVNode("",!0),V("day")?(e.openBlock(),e.createBlock(k,{key:3,label:"日"},{default:e.withCtx(()=>[e.createVNode(pe,{onUpdate:b,check:C,cron:u,ref:"cronday"},null,8,["cron"])]),_:1})):e.createCommentVNode("",!0),V("mouth")?(e.openBlock(),e.createBlock(k,{key:4,label:"月"},{default:e.withCtx(()=>[e.createVNode(fe,{onUpdate:b,check:C,cron:u,ref:"cronmouth"},null,8,["cron"])]),_:1})):e.createCommentVNode("",!0),V("week")?(e.openBlock(),e.createBlock(k,{key:5,label:"周"},{default:e.withCtx(()=>[e.createVNode(Ve,{onUpdate:b,check:C,cron:u,ref:"cronweek"},null,8,["cron"])]),_:1})):e.createCommentVNode("",!0),V("year")?(e.openBlock(),e.createBlock(k,{key:6,label:"年"},{default:e.withCtx(()=>[e.createVNode(xe,{onUpdate:b,check:C,cron:u,ref:"cronyear"},null,8,["cron"])]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createElementVNode("div",Ce,[e.createElementVNode("div",ye,[be,e.createElementVNode("table",null,[e.createElementVNode("thead",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n,i=>(e.openBlock(),e.createElementBlock("th",{width:"40",key:i},e.toDisplayString(i),1))),128)),Te]),e.createElementVNode("tbody",null,[e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.second),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.min),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.hour),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.day),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.mouth),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.week),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(u.year),1)]),e.createElementVNode("td",null,[e.createElementVNode("span",null,e.toDisplayString(h.value),1)])])])]),V("result")?(e.openBlock(),e.createBlock(we,{key:0,ex:h.value},null,8,["ex"])):e.createCommentVNode("",!0),e.createElementVNode("div",Ue,[e.createVNode(c,{size:"small",type:"primary",onClick:E},{default:e.withCtx(()=>[e.createTextVNode("确定")]),_:1}),e.createVNode(c,{size:"small",type:"warning",onClick:_},{default:e.withCtx(()=>[e.createTextVNode("重置")]),_:1}),e.createVNode(c,{size:"small",onClick:B},{default:e.withCtx(()=>[e.createTextVNode("取消")]),_:1})])])])}}}),[["__scopeId","data-v-8ae49d29"]]),Be=[ce],De={install:function(U){Be.forEach(r=>{U.component(r.name,r)})}};R.Vue3CronPlusPicker=ce,R.default=De,Object.defineProperties(R,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}); diff --git a/package-lock.json b/package-lock.json index ddac4ca3..89ae6435 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,8 @@ "axios": "^1.6.0", "element-plus": "^2.4.0", "vue": "^3.4.0", - "vue-router": "^4.2.0" + "vue-router": "^4.2.0", + "vue3-cron-plus-picker": "^1.0.2" }, "devDependencies": { "@babel/core": "^7.23.0", @@ -9959,6 +9960,11 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "node_modules/vue3-cron-plus-picker": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/vue3-cron-plus-picker/-/vue3-cron-plus-picker-1.0.2.tgz", + "integrity": "sha512-SUVmAb2qSPMuAm5GIU0wQZyUawiiL3OKEy1HAZs94eZz+neKF+wEPNP4wICWMU78u4LzeCNni2Njnhf8bsqkcw==" + }, "node_modules/watchpack": { "version": "2.4.4", "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.4.tgz", diff --git a/package.json b/package.json index 193f24da..32e2a0b7 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "axios": "^1.6.0", "element-plus": "^2.4.0", "vue": "^3.4.0", - "vue-router": "^4.2.0" + "vue-router": "^4.2.0", + "vue3-cron-plus-picker": "^1.0.2" }, "devDependencies": { "@babel/core": "^7.23.0", diff --git a/src/components/PlanForm.vue b/src/components/PlanForm.vue new file mode 100644 index 00000000..99e074a3 --- /dev/null +++ b/src/components/PlanForm.vue @@ -0,0 +1,288 @@ + + + + + \ No newline at end of file diff --git a/src/components/PlanList.vue b/src/components/PlanList.vue index ea206852..4741664b 100644 --- a/src/components/PlanList.vue +++ b/src/components/PlanList.vue @@ -37,56 +37,38 @@ - - - - - - - - - - - - - - - - - - 任务 - 子计划 - - - - - + +