94 lines
3.0 KiB
TypeScript
94 lines
3.0 KiB
TypeScript
import { useDayjs } from "@/composables/useDayjs";
|
|
import type { FileUploadDestination,LessonTask } from "@/types/api/lesson";
|
|
|
|
export const extractLessonStage = (lesson: LessonTask) => {
|
|
const currentStep = lesson?.progressStatus || 0;
|
|
const stages = {
|
|
script_creating: currentStep >= 1, // 脚本制作
|
|
script_review: currentStep >= 2, // 脚本审核
|
|
script_confirmed: currentStep >= 3, // 脚本确认
|
|
video_creating: currentStep >= 4, // 视频制作
|
|
video_confirmed: currentStep >= 5, // 视频确认
|
|
step: 0,
|
|
};
|
|
stages.step = currentStep;
|
|
return stages;
|
|
};
|
|
|
|
export const calcLessonProgress = (lesson: LessonTask) => {
|
|
if (!lesson) return 0;
|
|
|
|
// 根据 progressStatus 计算进度
|
|
// 0-未开始, 1-脚本制作, 2-脚本审核, 3-脚本确认, 4-视频拍摄与制作, 5-视频确认
|
|
switch (lesson.progressStatus) {
|
|
case 5: // 视频确认
|
|
return 100;
|
|
case 4: // 视频拍摄与制作
|
|
return 80;
|
|
case 3: // 脚本确认
|
|
return 60;
|
|
case 2: // 脚本审核
|
|
return 40;
|
|
case 1: // 脚本制作
|
|
return 20;
|
|
case 0: // 未开始
|
|
default:
|
|
return 0;
|
|
}
|
|
};
|
|
|
|
export const getLessonSteps = (lesson: LessonTask, simplify: boolean = false) => {
|
|
const dayjs = useDayjs();
|
|
const dateFormat = "YYYY-MM-DD HH:mm:ss";
|
|
const progress = extractLessonStage(lesson);
|
|
|
|
const formatTime = (timestamp?: number | null) => {
|
|
if (!timestamp || isNaN(timestamp) || timestamp <= 0) return '-';
|
|
const date = dayjs(timestamp * 1000);
|
|
return date.isValid() ? date.format(dateFormat) : '-';
|
|
};
|
|
|
|
return [
|
|
{
|
|
title: progress.script_creating ? "脚本制作" : undefined,
|
|
description: progress.script_creating
|
|
? simplify
|
|
? "已完成"
|
|
: `已于 ${formatTime(lesson.scriptCreateTime)} 完成脚本制作`
|
|
: "开始制作脚本",
|
|
},
|
|
{
|
|
title: progress.script_review ? "脚本审核" : undefined,
|
|
description: progress.script_review
|
|
? simplify
|
|
? "已完成"
|
|
: `已于 ${formatTime(lesson.scriptReviewTime)} 完成脚本审核`
|
|
: "提交脚本审核",
|
|
},
|
|
{
|
|
title: progress.script_confirmed ? "脚本确认" : undefined,
|
|
description: progress.script_confirmed
|
|
? simplify
|
|
? "已完成"
|
|
: `已于 ${formatTime(lesson.scriptConfirmTime)} 完成脚本确认`
|
|
: "确认脚本内容",
|
|
},
|
|
{
|
|
title: progress.video_creating ? "视频拍摄制作" : undefined,
|
|
description: progress.video_creating
|
|
? simplify
|
|
? "已完成"
|
|
: `已于 ${formatTime(lesson.videoCreateTime)} 完成拍摄制作`
|
|
: "视频拍摄制作",
|
|
},
|
|
{
|
|
title: progress.video_confirmed ? "视频确认" : undefined,
|
|
description: progress.video_confirmed
|
|
? simplify
|
|
? "已完成"
|
|
: `已于 ${formatTime(lesson.videoConfirmTime)} 完成视频确认`
|
|
: "确认视频内容",
|
|
},
|
|
];
|
|
};
|