From 80fde605263acdaa422c8a5b33cc590afad6ba22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Wed, 31 Dec 2025 17:38:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E7=9A=84Cron=E8=A1=A8?= =?UTF-8?q?=E8=BE=BE=E5=BC=8F=E7=94=9F=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/components/common/CronPreview.vue | 155 ++++++++++++ web/src/components/common/CronSelector.vue | 260 +++++++++++++++++++++ web/src/views/task/CreateModal.vue | 13 +- web/src/views/task/CronView.vue | 16 +- 4 files changed, 430 insertions(+), 14 deletions(-) create mode 100644 web/src/components/common/CronPreview.vue create mode 100644 web/src/components/common/CronSelector.vue diff --git a/web/src/components/common/CronPreview.vue b/web/src/components/common/CronPreview.vue new file mode 100644 index 00000000..47c4ff3b --- /dev/null +++ b/web/src/components/common/CronPreview.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/web/src/components/common/CronSelector.vue b/web/src/components/common/CronSelector.vue new file mode 100644 index 00000000..e254935b --- /dev/null +++ b/web/src/components/common/CronSelector.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/web/src/views/task/CreateModal.vue b/web/src/views/task/CreateModal.vue index 7f5b62ef..897334e8 100644 --- a/web/src/views/task/CreateModal.vue +++ b/web/src/views/task/CreateModal.vue @@ -3,6 +3,7 @@ import app from '@/api/panel/app' import cron from '@/api/panel/cron' import home from '@/api/panel/home' import website from '@/api/panel/website' +import CronSelector from '@/components/common/CronSelector.vue' import { NInput } from 'naive-ui' import { useGettext } from 'vue3-gettext' @@ -106,7 +107,7 @@ onMounted(() => { - +
{{ $gettext('Script Content') }} @@ -152,13 +153,9 @@ onMounted(() => { - - - - {{ $gettext('Submit') }} - - - + + {{ $gettext('Submit') }} + diff --git a/web/src/views/task/CronView.vue b/web/src/views/task/CronView.vue index 35b8195a..815a3c9a 100644 --- a/web/src/views/task/CronView.vue +++ b/web/src/views/task/CronView.vue @@ -4,6 +4,7 @@ import { useGettext } from 'vue3-gettext' import cron from '@/api/panel/cron' import file from '@/api/panel/file' +import CronPreview from '@/components/common/CronPreview.vue' import { decodeBase64, formatDateTime } from '@/utils' const { $gettext } = useGettext() @@ -71,7 +72,7 @@ const columns: any = [ resizable: true, ellipsis: { tooltip: true }, render(row: any) { - return row.time + return h(CronPreview, { cron: row.time }) } }, { @@ -196,6 +197,7 @@ const saveTaskEdit = async () => { useRequest( cron.update(editTask.value.id, editTask.value.name, editTask.value.time, editTask.value.script) ).onSuccess(() => { + editModal.value = false window.$message.success($gettext('Modified successfully')) window.$bus.emit('task:refresh-cron') }) @@ -239,20 +241,22 @@ onUnmounted(() => { v-model:show="editModal" preset="card" :title="$gettext('Edit Task')" - style="width: 80vw" + style="width: 60vw" size="huge" :bordered="false" :segmented="false" - @close="saveTaskEdit" > - + - + - + + + {{ $gettext('Save') }} +