Files
hms/apps/miniprogram/audit-detail-pages.cjs
iven 50eae8b809 feat(miniprogram): 温润东方风全面 UI 重设计
73 文件变更,覆盖全部 40 个页面 SCSS + TabBar 图标 + 组件样式。
统一赤陶主色 #C4623A + 暖米背景 + 衬线标题字体 + 12px 圆角体系。
2026-04-28 00:19:52 +08:00

68 lines
2.8 KiB
JavaScript

/**
* 审计详情页(带参数)- 测试带假 ID 的页面是否优雅降级
*/
const automator = require('miniprogram-automator');
const DETAIL_PAGES = [
'pages/appointment/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/article/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/report/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/ai-report/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/mall/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/mall/exchange/index?id=00000000-0000-0000-0000-000000000000',
'pages/profile/family-add/index',
'pages/doctor/patients/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/doctor/consultation/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/doctor/followup/detail/index?id=00000000-0000-0000-0000-000000000000',
'pages/doctor/report/detail/index?id=00000000-0000-0000-0000-000000000000',
];
async function main() {
console.log('连接...');
const mp = await automator.connect({ wsEndpoint: 'ws://localhost:9420' });
const results = { ok: [], crash: [], login: [] };
for (const pageUrl of DETAIL_PAGES) {
const pagePath = pageUrl.split('?')[0];
try {
await mp.reLaunch(`/${pageUrl}`);
await new Promise(r => setTimeout(r, 2000));
const current = await mp.currentPage();
if (current.path === pagePath) {
// 检查页面是否有错误提示或空状态
const content = await mp.evaluate(() => {
const texts = [];
document.querySelectorAll && document.querySelectorAll('.error-state, .empty-state, [class*="error"], [class*="empty"]').forEach(el => {
texts.push(el.textContent);
});
return texts.length > 0 ? texts.join('; ') : 'loaded';
}).catch(() => 'loaded');
results.ok.push(`${pagePath} (${content.slice(0, 30)})`);
console.log(` OK: ${pagePath} - ${content.slice(0, 40)}`);
} else if (current.path === 'pages/login/index') {
results.login.push(pagePath);
console.log(` AUTH: ${pagePath} → login`);
} else {
results.crash.push(`${pagePath}${current.path}`);
console.log(` REDIR: ${pagePath}${current.path}`);
}
} catch (e) {
results.crash.push(`${pagePath}: ${e.message.slice(0, 50)}`);
console.log(` ERR: ${pagePath} - ${e.message.slice(0, 40)}`);
}
}
console.log(`\n===== 详情页审计 =====`);
console.log(`正常: ${results.ok.length}`);
console.log(`需登录: ${results.login.length}`);
console.log(`异常: ${results.crash.length}`);
results.crash.forEach(p => console.log(` 异常: ${p}`));
results.login.forEach(p => console.log(` 需登录: ${p}`));
await mp.disconnect();
}
main().catch(e => { console.error(e); process.exit(1); });