feat(miniprogram): 温润东方风全面 UI 重设计
73 文件变更,覆盖全部 40 个页面 SCSS + TabBar 图标 + 组件样式。 统一赤陶主色 #C4623A + 暖米背景 + 衬线标题字体 + 12px 圆角体系。
This commit is contained in:
109
apps/miniprogram/audit-verify.cjs
Normal file
109
apps/miniprogram/audit-verify.cjs
Normal file
@@ -0,0 +1,109 @@
|
||||
/**
|
||||
* 审计修复验证脚本
|
||||
* 验证 F1: 今日体征概览 API 支持 patient_id 参数
|
||||
*/
|
||||
const http = require('http');
|
||||
|
||||
const BASE = 'http://localhost:3000/api/v1';
|
||||
|
||||
function request(method, path, body, token) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const url = new URL(BASE + path);
|
||||
const opts = {
|
||||
hostname: url.hostname,
|
||||
port: url.port,
|
||||
path: url.pathname + url.search,
|
||||
method,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
timeout: 10000,
|
||||
};
|
||||
if (token) opts.headers['Authorization'] = `Bearer ${token}`;
|
||||
const req = http.request(opts, (res) => {
|
||||
const chunks = [];
|
||||
res.on('data', (c) => chunks.push(c));
|
||||
res.on('end', () => {
|
||||
const raw = Buffer.concat(chunks).toString();
|
||||
try {
|
||||
resolve({ status: res.statusCode, data: JSON.parse(raw) });
|
||||
} catch {
|
||||
resolve({ status: res.statusCode, data: raw });
|
||||
}
|
||||
});
|
||||
});
|
||||
req.on('error', reject);
|
||||
req.on('timeout', () => { req.destroy(); reject(new Error('timeout')); });
|
||||
if (body) req.write(JSON.stringify(body));
|
||||
req.end();
|
||||
});
|
||||
}
|
||||
|
||||
async function main() {
|
||||
console.log('=== 审计修复验证 ===\n');
|
||||
|
||||
// 1. 登录
|
||||
console.log('1. 登录...');
|
||||
const loginRes = await request('POST', '/auth/login', {
|
||||
username: 'admin',
|
||||
password: 'Admin@2026',
|
||||
});
|
||||
const token = loginRes.data?.data?.access_token;
|
||||
if (!token) {
|
||||
console.error(' FAIL: 登录失败', JSON.stringify(loginRes.data).substring(0, 200));
|
||||
process.exit(1);
|
||||
}
|
||||
console.log(' OK: token 长度', token.length);
|
||||
|
||||
// 2. 获取患者列表(找第一个患者 ID)
|
||||
console.log('\n2. 获取患者列表...');
|
||||
const patientsRes = await request('GET', '/health/patients?page=1&page_size=5', null, token);
|
||||
const patients = patientsRes.data?.data?.data || [];
|
||||
console.log(' 患者数量:', patients.length);
|
||||
const patientId = patients[0]?.id;
|
||||
if (!patientId) {
|
||||
console.log(' WARN: 无患者数据,跳过后续测试');
|
||||
return;
|
||||
}
|
||||
console.log(' 使用患者 ID:', patientId);
|
||||
|
||||
// 3. F1 验证:今日体征概览 - 不带 patient_id
|
||||
console.log('\n3. F1 验证: 今日体征概览(不带 patient_id)...');
|
||||
const todayRes1 = await request('GET', '/health/vital-signs/today', null, token);
|
||||
console.log(' 状态:', todayRes1.status, todayRes1.data?.success ? 'OK' : 'FAIL');
|
||||
|
||||
// 4. F1 验证:今日体征概览 - 带 patient_id 参数
|
||||
console.log('\n4. F1 验证: 今日体征概览(带 patient_id 参数)...');
|
||||
const todayRes2 = await request('GET', `/health/vital-signs/today?patient_id=${patientId}`, null, token);
|
||||
console.log(' 状态:', todayRes2.status, todayRes2.data?.success ? 'OK' : 'FAIL');
|
||||
if (todayRes2.status === 200 && todayRes2.data?.success) {
|
||||
console.log(' 返回数据:', JSON.stringify(todayRes2.data.data || {}).substring(0, 200));
|
||||
} else {
|
||||
console.log(' 响应:', JSON.stringify(todayRes2.data).substring(0, 300));
|
||||
}
|
||||
|
||||
// 5. 验证趋势 API
|
||||
console.log('\n5. 趋势 API 验证...');
|
||||
const trendRes = await request('GET', '/health/vital-signs/trend?indicator=weight&range=7d', null, token);
|
||||
console.log(' 状态:', trendRes.status, trendRes.data?.success ? 'OK' : 'FAIL');
|
||||
|
||||
// 6. 日常监测 API 验证
|
||||
console.log('\n6. 日常监测 API 验证...');
|
||||
const dmRes = await request('POST', '/health/daily-monitoring', {
|
||||
patient_id: patientId,
|
||||
record_date: new Date().toISOString().slice(0, 10),
|
||||
weight: 999, // 超出合理范围,验证后端校验
|
||||
}, token);
|
||||
console.log(' 状态:', dmRes.status);
|
||||
// 后端应该接受或拒绝(取决于后端校验强度)
|
||||
if (dmRes.status >= 400) {
|
||||
console.log(' 后端拒绝了请求(预期:应有范围校验):', JSON.stringify(dmRes.data).substring(0, 200));
|
||||
} else {
|
||||
console.log(' 后端接受了请求:', dmRes.data?.success ? 'OK' : 'FAIL');
|
||||
}
|
||||
|
||||
console.log('\n=== 验证完成 ===');
|
||||
}
|
||||
|
||||
main().catch((e) => {
|
||||
console.error('验证失败:', e.message);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user