Files
online_sys/frontend_智能开发/fixDetailResponse.cjs

98 lines
3.0 KiB
JavaScript
Raw Normal View History

const fs = require('fs');
// 读取projectLibraryMock.js文件
const mockFilePath = './src/mocks/projectLibraryMock.js';
let mockFileContent = fs.readFileSync(mockFilePath, 'utf-8');
// 找到getMockProjectsList中的projects数组
const firstProjectsMatch = mockFileContent.match(/const projects = \[([\s\S]*?)\];\s*\/\/ 搜索过滤/);
if (!firstProjectsMatch) {
console.error('❌ 未找到getMockProjectsList中的projects数组');
process.exit(1);
}
// 提取第一个projects数组的内容
const projectsArrayContent = firstProjectsMatch[1];
// 找到getMockProjectDetail函数的开始和结束位置
const detailFunctionStart = mockFileContent.indexOf('export const getMockProjectDetail = (id) => {');
if (detailFunctionStart === -1) {
console.error('❌ 未找到getMockProjectDetail函数');
process.exit(1);
}
// 找到函数结束位置
const functionEndPattern = /\n\};/g;
functionEndPattern.lastIndex = detailFunctionStart;
let functionEndMatch;
let detailFunctionEnd = -1;
while ((functionEndMatch = functionEndPattern.exec(mockFileContent))) {
const functionContent = mockFileContent.substring(detailFunctionStart, functionEndMatch.index + functionEndMatch[0].length);
if (functionContent.split('{').length === functionContent.split('}').length) {
detailFunctionEnd = functionEndMatch.index + functionEndMatch[0].length;
break;
}
}
if (detailFunctionEnd === -1) {
console.error('❌ 未找到getMockProjectDetail函数的结束位置');
process.exit(1);
}
// 构建新的getMockProjectDetail函数返回正确的格式
const newDetailFunction = `export const getMockProjectDetail = (id) => {
// 直接根据ID返回对应项目的详情
const projects = [${projectsArrayContent}];
const project = projects.find(p => p.id === parseInt(id));
if (!project) {
return {
success: false,
code: 404,
message: "项目不存在",
data: null
};
}
// 返回组件期望的格式
return {
success: true,
code: 0,
message: "success",
data: {
id: project.id,
title: project.name,
category: "智能开发",
description: project.overview || "暂无项目概述",
overview: project.overview || "暂无项目概述",
// 适用岗位 - 转换为组件期望的格式
applicablePositions: project.positions || [],
// 对应单元
correspondingUnits: project.unit ? [project.unit] : [],
// 流程和关键技术点
process: project.process || "",
keyPoints: project.keyPoints || "",
// 其他字段
attachments: []
}
};
}`;
// 替换getMockProjectDetail函数
mockFileContent =
mockFileContent.substring(0, detailFunctionStart) +
newDetailFunction +
mockFileContent.substring(detailFunctionEnd);
// 写入文件
fs.writeFileSync(mockFilePath, mockFileContent, 'utf-8');
console.log('✅ getMockProjectDetail函数返回格式已修复');
console.log('现在返回的数据包含success字段弹窗应该能正常打开。');