Files
online_sys/frontend_智能制造/removeDuplicates.js

69 lines
1.8 KiB
JavaScript
Raw Permalink Normal View History

import fs from 'fs';
const content = fs.readFileSync('src/data/mockData.js', 'utf-8');
const lines = content.split('\n');
// 要删除的重复函数及其行号范围
const duplicatesToRemove = [
{ name: 'generateCalendarDays', start: 6018 },
{ name: 'getWeekDays', start: 6091 },
{ name: 'calculateStageProgress', start: 6108 },
{ name: 'getCurrentActiveStage', start: 6133 },
{ name: 'checkMilestoneBlockage', start: 6149 },
{ name: 'updateStageStatuses', start: 6182 },
{ name: 'getOverallProgress', start: 6214 }
];
// 找到每个函数的结束行
duplicatesToRemove.forEach(func => {
let braceCount = 0;
let inFunction = false;
for (let i = func.start - 1; i < lines.length; i++) {
const line = lines[i];
if (!inFunction && line.includes('export const ' + func.name)) {
inFunction = true;
}
if (inFunction) {
// 计算大括号
for (const char of line) {
if (char === '{') braceCount++;
if (char === '}') braceCount--;
}
// 函数结束
if (braceCount === 0 && line.includes('};')) {
func.end = i + 1; // 行号从1开始
break;
}
}
}
});
// 标记要删除的行
const linesToDelete = new Set();
duplicatesToRemove.forEach(func => {
if (func.end) {
for (let i = func.start; i <= func.end; i++) {
linesToDelete.add(i);
}
console.log(`标记删除 ${func.name}: 行 ${func.start}-${func.end}`);
}
});
// 创建新内容,跳过标记的行
const newLines = [];
lines.forEach((line, index) => {
const lineNum = index + 1;
if (!linesToDelete.has(lineNum)) {
newLines.push(line);
}
});
// 写入文件
fs.writeFileSync('src/data/mockData.js', newLines.join('\n'));
console.log(`\n✅ 已删除 ${duplicatesToRemove.length} 个重复的函数`);
console.log(`📄 文件已更新`);