mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 07:28:37 +08:00
refactor: Relocate scheduler service settings from the main settings page to a new dedicated system view accessible via the shortcut bar.
This commit is contained in:
@@ -7,6 +7,7 @@ import ModuleTestView from '@/views/system/ModuleTestView.vue'
|
|||||||
import MessageView from '@/views/system/MessageView.vue'
|
import MessageView from '@/views/system/MessageView.vue'
|
||||||
import WordsView from '@/views/system/WordsView.vue'
|
import WordsView from '@/views/system/WordsView.vue'
|
||||||
import CacheView from '@/views/system/CacheView.vue'
|
import CacheView from '@/views/system/CacheView.vue'
|
||||||
|
import AccountSettingService from '@/views/system/ServiceView.vue'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
import { useDisplay } from 'vuetify'
|
import { useDisplay } from 'vuetify'
|
||||||
import { getQueryValue } from '@/@core/utils'
|
import { getQueryValue } from '@/@core/utils'
|
||||||
@@ -49,6 +50,9 @@ const wordsDialog = ref(false)
|
|||||||
// 缓存管理弹窗
|
// 缓存管理弹窗
|
||||||
const cacheDialog = ref(false)
|
const cacheDialog = ref(false)
|
||||||
|
|
||||||
|
// 定时服务弹窗
|
||||||
|
const schedulerDialog = ref(false)
|
||||||
|
|
||||||
// 输入消息
|
// 输入消息
|
||||||
const user_message = ref('')
|
const user_message = ref('')
|
||||||
|
|
||||||
@@ -108,6 +112,13 @@ const shortcuts = [
|
|||||||
dialog: 'cache',
|
dialog: 'cache',
|
||||||
dialogRef: cacheDialog,
|
dialogRef: cacheDialog,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: t('shortcut.scheduler.title'),
|
||||||
|
subtitle: t('shortcut.scheduler.subtitle'),
|
||||||
|
icon: 'mdi-list-box',
|
||||||
|
dialog: 'scheduler',
|
||||||
|
dialogRef: schedulerDialog,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: t('shortcut.system.title'),
|
title: t('shortcut.system.title'),
|
||||||
subtitle: t('shortcut.system.subtitle'),
|
subtitle: t('shortcut.system.subtitle'),
|
||||||
@@ -275,10 +286,10 @@ onMounted(() => {
|
|||||||
item.dialog === 'message'
|
item.dialog === 'message'
|
||||||
? openMessageDialog()
|
? openMessageDialog()
|
||||||
: item.dialog === 'words'
|
: item.dialog === 'words'
|
||||||
? openDialog(item.dialogRef)
|
? openDialog(item.dialogRef)
|
||||||
: item.dialog === 'cache'
|
: item.dialog === 'cache'
|
||||||
? openDialog(item.dialogRef)
|
? openDialog(item.dialogRef)
|
||||||
: openDialog(item.dialogRef)
|
: openDialog(item.dialogRef)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<VAvatar variant="text" size="48" rounded="lg">
|
<VAvatar variant="text" size="48" rounded="lg">
|
||||||
@@ -420,6 +431,29 @@ onMounted(() => {
|
|||||||
</VCardText>
|
</VCardText>
|
||||||
</VCard>
|
</VCard>
|
||||||
</VDialog>
|
</VDialog>
|
||||||
|
<!-- 定时服务弹窗 -->
|
||||||
|
<VDialog
|
||||||
|
v-if="schedulerDialog"
|
||||||
|
v-model="schedulerDialog"
|
||||||
|
max-width="60rem"
|
||||||
|
scrollable
|
||||||
|
:fullscreen="!display.mdAndUp.value"
|
||||||
|
>
|
||||||
|
<VCard>
|
||||||
|
<VCardItem class="py-2">
|
||||||
|
<VCardTitle>
|
||||||
|
<VIcon icon="mdi-list-box" class="me-2" />
|
||||||
|
{{ t('shortcut.scheduler.subtitle') }}
|
||||||
|
</VCardTitle>
|
||||||
|
<VCardSubtitle>{{ t('setting.scheduler.subtitle') }}</VCardSubtitle>
|
||||||
|
<VDialogCloseBtn @click="schedulerDialog = false" />
|
||||||
|
</VCardItem>
|
||||||
|
<VDivider />
|
||||||
|
<VCardText class="pa-0">
|
||||||
|
<AccountSettingService />
|
||||||
|
</VCardText>
|
||||||
|
</VCard>
|
||||||
|
</VDialog>
|
||||||
<!-- 系统健康检查弹窗 -->
|
<!-- 系统健康检查弹窗 -->
|
||||||
<VDialog
|
<VDialog
|
||||||
v-if="systemTestDialog"
|
v-if="systemTestDialog"
|
||||||
|
|||||||
@@ -582,6 +582,10 @@ export default {
|
|||||||
title: 'Cache',
|
title: 'Cache',
|
||||||
subtitle: 'Manage Cache',
|
subtitle: 'Manage Cache',
|
||||||
},
|
},
|
||||||
|
scheduler: {
|
||||||
|
title: 'Services',
|
||||||
|
subtitle: 'Scheduled Services',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
workflow: {
|
workflow: {
|
||||||
components: 'Action Components',
|
components: 'Action Components',
|
||||||
|
|||||||
@@ -579,6 +579,10 @@ export default {
|
|||||||
title: '缓存',
|
title: '缓存',
|
||||||
subtitle: '管理缓存',
|
subtitle: '管理缓存',
|
||||||
},
|
},
|
||||||
|
scheduler: {
|
||||||
|
title: '服务',
|
||||||
|
subtitle: '定时服务',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
workflow: {
|
workflow: {
|
||||||
components: '动作组件',
|
components: '动作组件',
|
||||||
|
|||||||
@@ -579,6 +579,10 @@ export default {
|
|||||||
title: '緩存',
|
title: '緩存',
|
||||||
subtitle: '管理緩存',
|
subtitle: '管理緩存',
|
||||||
},
|
},
|
||||||
|
scheduler: {
|
||||||
|
title: '服務',
|
||||||
|
subtitle: '定時服務',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
workflow: {
|
workflow: {
|
||||||
components: '動作組件',
|
components: '動作組件',
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import AccountSettingSite from '@/views/setting/AccountSettingSite.vue'
|
|||||||
import AccountSettingSearch from '@/views/setting/AccountSettingSearch.vue'
|
import AccountSettingSearch from '@/views/setting/AccountSettingSearch.vue'
|
||||||
import AccountSettingSubscribe from '@/views/setting/AccountSettingSubscribe.vue'
|
import AccountSettingSubscribe from '@/views/setting/AccountSettingSubscribe.vue'
|
||||||
import AccountSettingSystem from '@/views/setting/AccountSettingSystem.vue'
|
import AccountSettingSystem from '@/views/setting/AccountSettingSystem.vue'
|
||||||
import AccountSettingService from '@/views/setting/AccountSettingService.vue'
|
|
||||||
import AccountSettingDirectory from '@/views/setting/AccountSettingDirectory.vue'
|
import AccountSettingDirectory from '@/views/setting/AccountSettingDirectory.vue'
|
||||||
import AccountSettingRule from '@/views/setting/AccountSettingRule.vue'
|
import AccountSettingRule from '@/views/setting/AccountSettingRule.vue'
|
||||||
import { getSettingTabs } from '@/router/i18n-menu'
|
import { getSettingTabs } from '@/router/i18n-menu'
|
||||||
@@ -93,15 +92,6 @@ onMounted(() => {
|
|||||||
</transition>
|
</transition>
|
||||||
</VWindowItem>
|
</VWindowItem>
|
||||||
|
|
||||||
<!-- 服务 -->
|
|
||||||
<VWindowItem value="scheduler">
|
|
||||||
<transition name="fade-slide" appear>
|
|
||||||
<div>
|
|
||||||
<AccountSettingService />
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
</VWindowItem>
|
|
||||||
|
|
||||||
<!-- 通知 -->
|
<!-- 通知 -->
|
||||||
<VWindowItem value="notification">
|
<VWindowItem value="notification">
|
||||||
<transition name="fade-slide" appear>
|
<transition name="fade-slide" appear>
|
||||||
|
|||||||
@@ -185,12 +185,6 @@ export function getSettingTabs(t: Composer['t']) {
|
|||||||
tab: 'subscribe',
|
tab: 'subscribe',
|
||||||
description: t('settingTabs.subscribe.description'),
|
description: t('settingTabs.subscribe.description'),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: t('settingTabs.scheduler.title'),
|
|
||||||
icon: 'mdi-list-box',
|
|
||||||
tab: 'scheduler',
|
|
||||||
description: t('settingTabs.scheduler.description'),
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: t('settingTabs.notification.title'),
|
title: t('settingTabs.notification.title'),
|
||||||
icon: 'mdi-bell',
|
icon: 'mdi-bell',
|
||||||
|
|||||||
@@ -70,10 +70,6 @@ useDataRefresh(
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<VCard>
|
<VCard>
|
||||||
<VCardItem>
|
|
||||||
<VCardTitle>{{ t('setting.scheduler.title') }}</VCardTitle>
|
|
||||||
<VCardSubtitle>{{ t('setting.scheduler.subtitle') }}</VCardSubtitle>
|
|
||||||
</VCardItem>
|
|
||||||
<VTable class="text-no-wrap">
|
<VTable class="text-no-wrap">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
Reference in New Issue
Block a user