Initial commit: 教务系统在线平台
- 包含4个产业方向的前端项目:智能开发、智能制造、大健康、财经商贸 - 已清理node_modules、.yoyo等大文件,项目大小从2.6GB优化至631MB - 配置完善的.gitignore文件 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
98
frontend_智能开发/fixDetailResponse.cjs
Normal file
98
frontend_智能开发/fixDetailResponse.cjs
Normal file
@@ -0,0 +1,98 @@
|
||||
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字段,弹窗应该能正常打开。');
|
||||
Reference in New Issue
Block a user