reactor:【infra 基础设施】infra 的 job、joblogger 描述的统一

This commit is contained in:
YunaiV
2025-09-10 23:50:56 +08:00
parent 21f76355fa
commit 5ec4d8ab82
5 changed files with 34 additions and 32 deletions

View File

@@ -228,16 +228,13 @@ export function useDetailSchema(): DescriptionItemSchema[] {
{
field: 'nextTimes',
label: '后续执行时间',
content: (data) => {
if (!data?.nextTimes) {
return '无后续执行时间';
}
if (data.nextTimes.length === 0) {
content: (data: InfraJobApi.Job) => {
if (!data?.nextTimes || data.nextTimes.length === 0) {
return '无后续执行时间';
}
return h(Timeline, {}, () =>
data.nextTimes.map((time: any) =>
h(Timeline.Item, {}, () => formatDateTime(time)?.toString()),
data.nextTimes?.map((time: Date) =>
h(Timeline.Item, {}, () => formatDateTime(time)),
),
);
},

View File

@@ -13,6 +13,15 @@ import { useDetailSchema } from '../data';
const formData = ref<InfraJobApi.Job>(); // 任务详情
const nextTimes = ref<Date[]>([]); // 下一次执行时间
const [Descriptions] = useDescription({
componentProps: {
bordered: true,
column: 1,
class: 'mx-4',
},
schema: useDetailSchema(),
});
const [Modal, modalApi] = useVbenModal({
async onOpenChange(isOpen: boolean) {
if (!isOpen) {
@@ -29,21 +38,13 @@ const [Modal, modalApi] = useVbenModal({
formData.value = await getJob(data.id);
// 获取下一次执行时间
nextTimes.value = await getJobNextTimes(data.id);
// 将 nextTimes 赋值给 formData以便在 schema 中使用
formData.value.nextTimes = nextTimes.value;
} finally {
modalApi.unlock();
}
},
});
const [Description] = useDescription({
componentProps: {
bordered: true,
column: 1,
class: 'mx-4',
},
schema: useDetailSchema(),
});
</script>
<template>
@@ -53,6 +54,6 @@ const [Description] = useDescription({
:show-cancel-button="false"
:show-confirm-button="false"
>
<Description :data="formData" />
<Descriptions :data="formData" />
</Modal>
</template>