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

79 lines
2.7 KiB
JavaScript
Raw Permalink Normal View History

const fs = require('fs');
// 新的头像URL选择选择不同的头像
const newAvatars = {
// 袁嘉宇 - 使用id=30的头像
'袁嘉宇': 'https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/a5798abc96cf8b9f3c8d99e887b4c89e.jpg',
// 冯欣怡第3名 - 使用id=22的头像
'冯欣怡': 'https://ddcz-1315997005.cos.ap-nanjing.myqcloud.com/static/avatar/douyin/751e76f916fb3e090e37d096a8bb2ff2.jpg'
};
// 读取mockData.js
const mockDataPath = './src/data/mockData.js';
let mockDataContent = fs.readFileSync(mockDataPath, 'utf-8');
// 备份
const backupPath = `${mockDataPath}.backup_avatars_again_${new Date().toISOString().replace(/[:.]/g, '-')}`;
fs.writeFileSync(backupPath, mockDataContent);
console.log(`✅ 已创建备份:${backupPath}`);
// 1. 更新user中的袁嘉宇头像
mockDataContent = mockDataContent.replace(
/user:\s*{[\s\S]*?avatar:\s*"[^"]+"/,
(match) => {
return match.replace(
/avatar:\s*"[^"]+"/,
`avatar: "${newAvatars['袁嘉宇']}"`
);
}
);
// 2. 更新classRanking和其他地方的头像
for (const [name, url] of Object.entries(newAvatars)) {
// 使用更精确的正则表达式来匹配每个学生的数据块
const namePattern = new RegExp(
`(name|studentName):\\s*"${name}"[\\s\\S]*?avatar:\\s*"[^"]+"`,
'g'
);
mockDataContent = mockDataContent.replace(namePattern, (match) => {
return match.replace(/avatar:\s*"[^"]+"/, `avatar: "${url}"`);
});
}
// 3. 更新personalProfile中袁嘉宇的头像
mockDataContent = mockDataContent.replace(
/personalProfile[\s\S]*?basicInfo:\s*{[\s\S]*?avatar:\s*"[^"]+"/,
(match) => {
return match.replace(/avatar:\s*"[^"]+"/, `avatar: "${newAvatars['袁嘉宇']}"`);
}
);
// 更新ClassRankModal组件中的头像映射
const modalPath = './src/components/ClassRankModal/index.jsx';
let modalContent = fs.readFileSync(modalPath, 'utf-8');
// 备份ClassRankModal
const modalBackup = `${modalPath}.backup_avatars_again_${new Date().toISOString().replace(/[:.]/g, '-')}`;
fs.writeFileSync(modalBackup, modalContent);
// 更新ClassRankModal中的头像映射
for (const [name, url] of Object.entries(newAvatars)) {
const casePattern = new RegExp(
`case\\s*"${name}":[\\s\\S]*?avatarUrl\\s*=\\s*"[^"]+"`,
'g'
);
modalContent = modalContent.replace(casePattern, (match) => {
return match.replace(/avatarUrl\s*=\s*"[^"]+"/, `avatarUrl = "${url}"`);
});
}
// 写回文件
fs.writeFileSync(mockDataPath, mockDataContent);
fs.writeFileSync(modalPath, modalContent);
console.log('✅ 头像更新完成!');
console.log('更新的头像:');
console.log('- 袁嘉宇(个人信息): 使用id=30的新头像');
console.log('- 冯欣怡第3名: 使用id=22的新头像');