86 lines
2.5 KiB
JavaScript
86 lines
2.5 KiB
JavaScript
|
|
import fs from 'fs';
|
|||
|
|
|
|||
|
|
// 读取更新后的mockData
|
|||
|
|
const mockDataContent = fs.readFileSync('src/data/mockData.js', 'utf-8');
|
|||
|
|
|
|||
|
|
// 提取courseLiveList数据
|
|||
|
|
const courseLiveListMatch = mockDataContent.match(/mockData\.courseLiveList = (\[[\s\S]*?\]);/);
|
|||
|
|
if (!courseLiveListMatch) {
|
|||
|
|
console.error('无法找到courseLiveList数据');
|
|||
|
|
process.exit(1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const courseLiveList = eval('(' + courseLiveListMatch[1] + ')');
|
|||
|
|
|
|||
|
|
// 重新生成任务数据
|
|||
|
|
const today = new Date();
|
|||
|
|
today.setHours(0, 0, 0, 0);
|
|||
|
|
const todayStr = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}-${String(today.getDate()).padStart(2, '0')}`;
|
|||
|
|
|
|||
|
|
console.log('今天的日期:', todayStr);
|
|||
|
|
|
|||
|
|
// 查找今天的课程(9月3日)
|
|||
|
|
const todaysCourses = [];
|
|||
|
|
courseLiveList.forEach(unit => {
|
|||
|
|
unit.courses.forEach(course => {
|
|||
|
|
if (course.date === todayStr) {
|
|||
|
|
todaysCourses.push({
|
|||
|
|
...course,
|
|||
|
|
unitName: unit.unitName,
|
|||
|
|
unitId: unit.unitId
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('找到今天的课程:', todaysCourses.length, '门');
|
|||
|
|
todaysCourses.forEach(course => {
|
|||
|
|
console.log(` - ${course.courseName} (${course.teacherName})`);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 生成allTasks
|
|||
|
|
const allTasks = [];
|
|||
|
|
let taskId = 1;
|
|||
|
|
|
|||
|
|
courseLiveList.forEach(unit => {
|
|||
|
|
unit.courses.forEach(course => {
|
|||
|
|
const courseDate = new Date(course.date);
|
|||
|
|
const status = course.completed ? 'COMPLETED' :
|
|||
|
|
course.current ? 'IN_PROGRESS' :
|
|||
|
|
courseDate > today ? 'PENDING' : 'COMPLETED';
|
|||
|
|
|
|||
|
|
allTasks.push({
|
|||
|
|
id: taskId++,
|
|||
|
|
title: `完成${course.courseName}课程学习`,
|
|||
|
|
courseName: course.courseName,
|
|||
|
|
date: course.date,
|
|||
|
|
deadline: `${course.date} 21:00`,
|
|||
|
|
priority: course.current ? 'high' : course.upcoming ? 'medium' : 'low',
|
|||
|
|
status: status,
|
|||
|
|
teacher: course.teacherName,
|
|||
|
|
unit: unit.unitName,
|
|||
|
|
type: 'course'
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 过滤今天的任务
|
|||
|
|
const todayTasks = allTasks.filter(task => task.date === todayStr);
|
|||
|
|
|
|||
|
|
console.log('\n生成的今日任务:', todayTasks.length, '个');
|
|||
|
|
todayTasks.forEach(task => {
|
|||
|
|
console.log(` - ${task.title}`);
|
|||
|
|
console.log(` 状态: ${task.status}, 优先级: ${task.priority}`);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 输出结果到文件
|
|||
|
|
const result = {
|
|||
|
|
todayTasks,
|
|||
|
|
allTasks: allTasks.slice(0, 50), // 限制数量
|
|||
|
|
todayStr
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
fs.writeFileSync('dashboardTasksData.json', JSON.stringify(result, null, 2));
|
|||
|
|
console.log('\n✅ Dashboard任务数据已生成到 dashboardTasksData.json');
|
|||
|
|
console.log(`📝 今日任务: ${todayTasks.length} 个`);
|
|||
|
|
console.log(`📋 总任务: ${allTasks.length} 个`);
|