refactor: standardize code formatting and linting configuration

- Replace .eslintrc.js with .eslintrc.cjs for better ES module compatibility
- Add .prettierrc configuration for consistent code formatting
- Update package.json with new lint and format scripts
- Add nodemon.json for development hot reloading configuration
- Standardize code formatting across all JavaScript and Vue files
- Update web admin SPA with improved linting rules and formatting
- Add prettier configuration to web admin SPA

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
千羽
2025-08-07 18:19:31 +09:00
parent 4a0eba117c
commit 8a74bf5afe
124 changed files with 20878 additions and 18757 deletions

View File

@@ -2,127 +2,140 @@
* 测试 API 响应中的账号数据
*/
const redis = require('../src/models/redis');
const claudeAccountService = require('../src/services/claudeAccountService');
const claudeConsoleAccountService = require('../src/services/claudeConsoleAccountService');
const accountGroupService = require('../src/services/accountGroupService');
const redis = require('../src/models/redis')
const claudeAccountService = require('../src/services/claudeAccountService')
const claudeConsoleAccountService = require('../src/services/claudeConsoleAccountService')
const accountGroupService = require('../src/services/accountGroupService')
async function testApiResponse() {
console.log('🔍 测试 API 响应数据...\n');
console.log('🔍 测试 API 响应数据...\n')
try {
// 确保 Redis 已连接
await redis.connect();
await redis.connect()
// 1. 测试 Claude OAuth 账号服务
console.log('📋 测试 Claude OAuth 账号服务...');
const claudeAccounts = await claudeAccountService.getAllAccounts();
console.log(`找到 ${claudeAccounts.length} 个 Claude OAuth 账号`);
console.log('📋 测试 Claude OAuth 账号服务...')
const claudeAccounts = await claudeAccountService.getAllAccounts()
console.log(`找到 ${claudeAccounts.length} 个 Claude OAuth 账号`)
// 检查前3个账号的数据结构
console.log('\n账号数据结构示例:');
claudeAccounts.slice(0, 3).forEach(acc => {
console.log(`\n账号: ${acc.name}`);
console.log(` - ID: ${acc.id}`);
console.log(` - accountType: ${acc.accountType}`);
console.log(` - platform: ${acc.platform}`);
console.log(` - status: ${acc.status}`);
console.log(` - isActive: ${acc.isActive}`);
});
console.log('\n账号数据结构示例:')
claudeAccounts.slice(0, 3).forEach((acc) => {
console.log(`\n账号: ${acc.name}`)
console.log(` - ID: ${acc.id}`)
console.log(` - accountType: ${acc.accountType}`)
console.log(` - platform: ${acc.platform}`)
console.log(` - status: ${acc.status}`)
console.log(` - isActive: ${acc.isActive}`)
})
// 统计专属账号
const claudeDedicated = claudeAccounts.filter(a => a.accountType === 'dedicated');
const claudeGroup = claudeAccounts.filter(a => a.accountType === 'group');
console.log(`\n统计结果:`);
console.log(` - 专属账号: ${claudeDedicated.length}`);
console.log(` - 分组账号: ${claudeGroup.length}`);
const claudeDedicated = claudeAccounts.filter((a) => a.accountType === 'dedicated')
const claudeGroup = claudeAccounts.filter((a) => a.accountType === 'group')
console.log('\n统计结果:')
console.log(` - 专属账号: ${claudeDedicated.length}`)
console.log(` - 分组账号: ${claudeGroup.length}`)
// 2. 测试 Claude Console 账号服务
console.log('\n\n📋 测试 Claude Console 账号服务...');
const consoleAccounts = await claudeConsoleAccountService.getAllAccounts();
console.log(`找到 ${consoleAccounts.length} 个 Claude Console 账号`);
console.log('\n\n📋 测试 Claude Console 账号服务...')
const consoleAccounts = await claudeConsoleAccountService.getAllAccounts()
console.log(`找到 ${consoleAccounts.length} 个 Claude Console 账号`)
// 检查前3个账号的数据结构
console.log('\n账号数据结构示例:');
consoleAccounts.slice(0, 3).forEach(acc => {
console.log(`\n账号: ${acc.name}`);
console.log(` - ID: ${acc.id}`);
console.log(` - accountType: ${acc.accountType}`);
console.log(` - platform: ${acc.platform}`);
console.log(` - status: ${acc.status}`);
console.log(` - isActive: ${acc.isActive}`);
});
console.log('\n账号数据结构示例:')
consoleAccounts.slice(0, 3).forEach((acc) => {
console.log(`\n账号: ${acc.name}`)
console.log(` - ID: ${acc.id}`)
console.log(` - accountType: ${acc.accountType}`)
console.log(` - platform: ${acc.platform}`)
console.log(` - status: ${acc.status}`)
console.log(` - isActive: ${acc.isActive}`)
})
// 统计专属账号
const consoleDedicated = consoleAccounts.filter(a => a.accountType === 'dedicated');
const consoleGroup = consoleAccounts.filter(a => a.accountType === 'group');
console.log(`\n统计结果:`);
console.log(` - 专属账号: ${consoleDedicated.length}`);
console.log(` - 分组账号: ${consoleGroup.length}`);
const consoleDedicated = consoleAccounts.filter((a) => a.accountType === 'dedicated')
const consoleGroup = consoleAccounts.filter((a) => a.accountType === 'group')
console.log('\n统计结果:')
console.log(` - 专属账号: ${consoleDedicated.length}`)
console.log(` - 分组账号: ${consoleGroup.length}`)
// 3. 测试账号分组服务
console.log('\n\n📋 测试账号分组服务...');
const groups = await accountGroupService.getAllGroups();
console.log(`找到 ${groups.length} 个账号分组`);
console.log('\n\n📋 测试账号分组服务...')
const groups = await accountGroupService.getAllGroups()
console.log(`找到 ${groups.length} 个账号分组`)
// 显示分组信息
groups.forEach(group => {
console.log(`\n分组: ${group.name}`);
console.log(` - ID: ${group.id}`);
console.log(` - platform: ${group.platform}`);
console.log(` - memberCount: ${group.memberCount}`);
});
groups.forEach((group) => {
console.log(`\n分组: ${group.name}`)
console.log(` - ID: ${group.id}`)
console.log(` - platform: ${group.platform}`)
console.log(` - memberCount: ${group.memberCount}`)
})
// 4. 验证结果
console.log('\n\n📊 验证结果:');
console.log('\n\n📊 验证结果:')
// 检查 platform 字段
const claudeWithPlatform = claudeAccounts.filter(a => a.platform === 'claude-oauth');
const consoleWithPlatform = consoleAccounts.filter(a => a.platform === 'claude-console');
const claudeWithPlatform = claudeAccounts.filter((a) => a.platform === 'claude-oauth')
const consoleWithPlatform = consoleAccounts.filter((a) => a.platform === 'claude-console')
if (claudeWithPlatform.length === claudeAccounts.length) {
console.log('✅ 所有 Claude OAuth 账号都有正确的 platform 字段');
console.log('✅ 所有 Claude OAuth 账号都有正确的 platform 字段')
} else {
console.log(`⚠️ 只有 ${claudeWithPlatform.length}/${claudeAccounts.length} 个 Claude OAuth 账号有正确的 platform 字段`);
console.log(
`⚠️ 只有 ${claudeWithPlatform.length}/${claudeAccounts.length} 个 Claude OAuth 账号有正确的 platform 字段`
)
}
if (consoleWithPlatform.length === consoleAccounts.length) {
console.log('✅ 所有 Claude Console 账号都有正确的 platform 字段');
console.log('✅ 所有 Claude Console 账号都有正确的 platform 字段')
} else {
console.log(`⚠️ 只有 ${consoleWithPlatform.length}/${consoleAccounts.length} 个 Claude Console 账号有正确的 platform 字段`);
console.log(
`⚠️ 只有 ${consoleWithPlatform.length}/${consoleAccounts.length} 个 Claude Console 账号有正确的 platform 字段`
)
}
// 总结
const totalDedicated = claudeDedicated.length + consoleDedicated.length;
const totalGroup = claudeGroup.length + consoleGroup.length;
const totalGroups = groups.filter(g => g.platform === 'claude').length;
console.log('\n📈 总结:');
console.log(`- 专属账号总数: ${totalDedicated} 个 (Claude OAuth: ${claudeDedicated.length}, Console: ${consoleDedicated.length})`);
console.log(`- 分组账号总数: ${totalGroup} 个 (Claude OAuth: ${claudeGroup.length}, Console: ${consoleGroup.length})`);
console.log(`- 账号分组总数: ${totalGroups}`);
const totalDedicated = claudeDedicated.length + consoleDedicated.length
const totalGroup = claudeGroup.length + consoleGroup.length
const totalGroups = groups.filter((g) => g.platform === 'claude').length
console.log('\n📈 总结:')
console.log(
`- 专属账号总数: ${totalDedicated} 个 (Claude OAuth: ${claudeDedicated.length}, Console: ${consoleDedicated.length})`
)
console.log(
`- 分组账号总数: ${totalGroup} 个 (Claude OAuth: ${claudeGroup.length}, Console: ${consoleGroup.length})`
)
console.log(`- 账号分组总数: ${totalGroups}`)
if (totalDedicated + totalGroups > 0) {
console.log('\n✅ 前端下拉框应该能够显示:');
if (totalGroups > 0) console.log(' - 调度分组');
if (claudeDedicated.length > 0) console.log(' - Claude OAuth 专属账号 (仅 dedicated 类型)');
if (consoleDedicated.length > 0) console.log(' - Claude Console 专属账号 (仅 dedicated 类型)');
console.log('\n✅ 前端下拉框应该能够显示:')
if (totalGroups > 0) {
console.log(' - 调度分组')
}
if (claudeDedicated.length > 0) {
console.log(' - Claude OAuth 专属账号 (仅 dedicated 类型)')
}
if (consoleDedicated.length > 0) {
console.log(' - Claude Console 专属账号 (仅 dedicated 类型)')
}
} else {
console.log('\n⚠ 没有找到任何专属账号或分组,请检查账号配置');
console.log('\n⚠ 没有找到任何专属账号或分组,请检查账号配置')
}
console.log('\n💡 说明:');
console.log('- 专属账号下拉框只显示 accountType="dedicated" 的账号');
console.log('- accountType="group" 的账号通过分组调度,不在专属账号中显示');
console.log('\n💡 说明:')
console.log('- 专属账号下拉框只显示 accountType="dedicated" 的账号')
console.log('- accountType="group" 的账号通过分组调度,不在专属账号中显示')
} catch (error) {
console.error('❌ 测试失败:', error);
console.error(error.stack);
console.error('❌ 测试失败:', error)
console.error(error.stack)
} finally {
process.exit(0);
process.exit(0)
}
}
testApiResponse();
testApiResponse()