mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 09:50:21 +08:00
fix(system-settings): 修复定时任务时间选择器截断及添加取消按钮
Co-Authored-By: AAEE86 <ppk0227@hotmail.com>
This commit is contained in:
@@ -58,10 +58,10 @@
|
|||||||
:model-value="task.hour"
|
:model-value="task.hour"
|
||||||
@update:model-value="(val: string) => task.updateTime(val, task.minute)"
|
@update:model-value="(val: string) => task.updateTime(val, task.minute)"
|
||||||
>
|
>
|
||||||
<SelectTrigger class="w-14 h-8 text-xs">
|
<SelectTrigger class="w-16 h-8 text-xs px-2 justify-center gap-1">
|
||||||
<SelectValue placeholder="时" />
|
<SelectValue placeholder="时" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent class="min-w-0">
|
||||||
<SelectItem
|
<SelectItem
|
||||||
v-for="h in 24"
|
v-for="h in 24"
|
||||||
:key="h - 1"
|
:key="h - 1"
|
||||||
@@ -76,10 +76,10 @@
|
|||||||
:model-value="task.minute"
|
:model-value="task.minute"
|
||||||
@update:model-value="(val: string) => task.updateTime(task.hour, val)"
|
@update:model-value="(val: string) => task.updateTime(task.hour, val)"
|
||||||
>
|
>
|
||||||
<SelectTrigger class="w-14 h-8 text-xs">
|
<SelectTrigger class="w-16 h-8 text-xs px-2 justify-center gap-1">
|
||||||
<SelectValue placeholder="分" />
|
<SelectValue placeholder="分" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent class="min-w-0">
|
||||||
<SelectItem
|
<SelectItem
|
||||||
v-for="m in 60"
|
v-for="m in 60"
|
||||||
:key="m - 1"
|
:key="m - 1"
|
||||||
@@ -89,23 +89,33 @@
|
|||||||
</SelectItem>
|
</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
<Button
|
<template v-if="task.hasChanges">
|
||||||
v-if="task.hasChanges"
|
<Button
|
||||||
variant="default"
|
variant="ghost"
|
||||||
size="sm"
|
size="sm"
|
||||||
class="h-8 px-2.5 text-xs"
|
class="h-8 px-2.5 text-xs"
|
||||||
:disabled="task.loading"
|
:disabled="task.loading"
|
||||||
@click="task.onSave"
|
@click="task.onCancel"
|
||||||
>
|
>
|
||||||
<Check
|
<X class="w-3.5 h-3.5" />
|
||||||
v-if="!task.loading"
|
</Button>
|
||||||
class="w-3.5 h-3.5"
|
<Button
|
||||||
/>
|
variant="default"
|
||||||
<Loader2
|
size="sm"
|
||||||
v-else
|
class="h-8 px-2.5 text-xs"
|
||||||
class="w-3.5 h-3.5 animate-spin"
|
:disabled="task.loading"
|
||||||
/>
|
@click="task.onSave"
|
||||||
</Button>
|
>
|
||||||
|
<Check
|
||||||
|
v-if="!task.loading"
|
||||||
|
class="w-3.5 h-3.5"
|
||||||
|
/>
|
||||||
|
<Loader2
|
||||||
|
v-else
|
||||||
|
class="w-3.5 h-3.5 animate-spin"
|
||||||
|
/>
|
||||||
|
</Button>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -142,7 +152,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { Clock, Check, Loader2 } from 'lucide-vue-next'
|
import { Clock, Check, Loader2, X } from 'lucide-vue-next'
|
||||||
import Button from '@/components/ui/button.vue'
|
import Button from '@/components/ui/button.vue'
|
||||||
import Input from '@/components/ui/input.vue'
|
import Input from '@/components/ui/input.vue'
|
||||||
import Switch from '@/components/ui/switch.vue'
|
import Switch from '@/components/ui/switch.vue'
|
||||||
@@ -168,6 +178,7 @@ interface ScheduledTask {
|
|||||||
loading: boolean
|
loading: boolean
|
||||||
onToggle: (enabled: boolean) => void
|
onToggle: (enabled: boolean) => void
|
||||||
onSave: () => void
|
onSave: () => void
|
||||||
|
onCancel: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
defineProps<{
|
defineProps<{
|
||||||
|
|||||||
@@ -129,6 +129,16 @@ export function useScheduledTasks(systemConfig: Ref<SystemConfig>) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Cancel handlers
|
||||||
|
function handleCheckinTimeCancel() {
|
||||||
|
systemConfig.value.provider_checkin_time = previousCheckinTime.value
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleQuotaResetConfigCancel() {
|
||||||
|
systemConfig.value.user_quota_reset_time = previousUserQuotaResetTime.value
|
||||||
|
systemConfig.value.user_quota_reset_interval_days = previousUserQuotaResetIntervalDays.value
|
||||||
|
}
|
||||||
|
|
||||||
// Save handlers
|
// Save handlers
|
||||||
async function handleCheckinTimeSave() {
|
async function handleCheckinTimeSave() {
|
||||||
const newTime = systemConfig.value.provider_checkin_time
|
const newTime = systemConfig.value.provider_checkin_time
|
||||||
@@ -238,6 +248,7 @@ export function useScheduledTasks(systemConfig: Ref<SystemConfig>) {
|
|||||||
loading: checkinConfigLoading.value,
|
loading: checkinConfigLoading.value,
|
||||||
onToggle: handleProviderCheckinToggle,
|
onToggle: handleProviderCheckinToggle,
|
||||||
onSave: handleCheckinTimeSave,
|
onSave: handleCheckinTimeSave,
|
||||||
|
onCancel: handleCheckinTimeCancel,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'user-quota-reset',
|
id: 'user-quota-reset',
|
||||||
@@ -253,6 +264,7 @@ export function useScheduledTasks(systemConfig: Ref<SystemConfig>) {
|
|||||||
loading: quotaResetConfigLoading.value,
|
loading: quotaResetConfigLoading.value,
|
||||||
onToggle: handleUserQuotaResetToggle,
|
onToggle: handleUserQuotaResetToggle,
|
||||||
onSave: handleQuotaResetConfigSave,
|
onSave: handleQuotaResetConfigSave,
|
||||||
|
onCancel: handleQuotaResetConfigCancel,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'oauth-token-refresh',
|
id: 'oauth-token-refresh',
|
||||||
@@ -268,6 +280,7 @@ export function useScheduledTasks(systemConfig: Ref<SystemConfig>) {
|
|||||||
loading: false,
|
loading: false,
|
||||||
onToggle: handleOAuthTokenRefreshToggle,
|
onToggle: handleOAuthTokenRefreshToggle,
|
||||||
onSave: () => {},
|
onSave: () => {},
|
||||||
|
onCancel: () => {},
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user