75 lines
2.5 KiB
JavaScript
75 lines
2.5 KiB
JavaScript
import fs from 'fs';
|
|
|
|
// 读取生成的日历数据
|
|
const calendarData = JSON.parse(fs.readFileSync('calendarData.json', 'utf-8'));
|
|
|
|
// 读取当前的mockData.js
|
|
let mockDataContent = fs.readFileSync('src/data/mockData.js', 'utf-8');
|
|
|
|
// 将calendarEvents替换为真实数据
|
|
const calendarEventsStr = JSON.stringify(calendarData.calendarEvents, null, 2)
|
|
.replace(/"([^"]+)":/g, '$1:') // 移除属性名的引号
|
|
.replace(/"/g, "'"); // 将双引号替换为单引号
|
|
|
|
// 查找calendarEvents的起始和结束位置
|
|
const startPattern = 'calendarEvents: (() => {';
|
|
const endPattern = '})(),';
|
|
|
|
const startIndex = mockDataContent.indexOf(startPattern);
|
|
const endIndex = mockDataContent.indexOf(endPattern, startIndex) + endPattern.length;
|
|
|
|
if (startIndex === -1 || endIndex === -1) {
|
|
console.error('无法找到calendarEvents的位置');
|
|
} else {
|
|
// 构建新的calendarEvents部分
|
|
const newCalendarEvents = `calendarEvents: ${calendarEventsStr},`;
|
|
|
|
// 替换原有的calendarEvents
|
|
mockDataContent =
|
|
mockDataContent.substring(0, startIndex) +
|
|
newCalendarEvents +
|
|
mockDataContent.substring(endIndex);
|
|
|
|
// 查找并更新allTasks
|
|
const allTasksPattern = 'allTasks: [';
|
|
const allTasksStart = mockDataContent.indexOf(allTasksPattern,
|
|
mockDataContent.indexOf('tasks: {'));
|
|
|
|
if (allTasksStart !== -1) {
|
|
// 找到allTasks的结束位置
|
|
let braceCount = 0;
|
|
let allTasksEnd = allTasksStart + allTasksPattern.length;
|
|
let inArray = true;
|
|
|
|
for (let i = allTasksEnd; i < mockDataContent.length && inArray; i++) {
|
|
if (mockDataContent[i] === '[') braceCount++;
|
|
if (mockDataContent[i] === ']') {
|
|
if (braceCount === 0) {
|
|
allTasksEnd = i + 1;
|
|
inArray = false;
|
|
} else {
|
|
braceCount--;
|
|
}
|
|
}
|
|
}
|
|
|
|
// 准备新的allTasks数据
|
|
const allTasksStr = JSON.stringify(calendarData.allTasks.slice(0, 10), null, 2)
|
|
.replace(/"([^"]+)":/g, '$1:')
|
|
.replace(/"/g, "'");
|
|
|
|
// 替换allTasks
|
|
const newAllTasks = `allTasks: ${allTasksStr}`;
|
|
|
|
mockDataContent =
|
|
mockDataContent.substring(0, allTasksStart) +
|
|
newAllTasks +
|
|
mockDataContent.substring(allTasksEnd);
|
|
}
|
|
|
|
// 写回文件
|
|
fs.writeFileSync('src/data/mockData.js', mockDataContent);
|
|
console.log('✅ mockData.js 已更新');
|
|
console.log(`📅 添加了 ${calendarData.calendarEvents.length} 个日历事件`);
|
|
console.log(`📝 添加了 ${Math.min(calendarData.allTasks.length, 10)} 个任务`);
|
|
} |