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 @@
+
+
+
+ {{ parseDescription }}
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+ {{ $gettext('Minutes') }}
+
+
+
+
+ {{ $gettext('Hours') }}
+
+
+
+
+ {{ $gettext('Days') }}
+
+
+
+
+
+
+
+ {{ $gettext('Day') }}
+
+
+
+
+
+
+
+ {{ $gettext('Hour') }}
+
+
+
+
+ {{ $gettext('Minute') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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') }}
+