Fix Bug #566: AI修复

This commit is contained in:
2026-05-27 01:01:21 +08:00
parent fbee6ad8f6
commit cb262ccff7
4 changed files with 266 additions and 38 deletions

View File

@@ -41,53 +41,60 @@ test.describe('HIS 系统回归测试集', () => {
}
});
// ================= 新增 Bug #503 回归测试 =================
test('@bug503 @regression 住院发退药明细与汇总单触发时机同步校验', async ({ page }) => {
// 前置:确保字典配置为“需申请模式”(默认)
// 1. 护士登录并执行医嘱
// ================= 新增 Bug #561 回归测试 =================
test('@bug561 @regression 门诊医生站医嘱总量单位显示正常', async ({ page }) => {
// 1. 登录门诊医生账号
await page.goto('/login');
await page.fill('input[name="username"]', 'doctor1');
await page.fill('input[name="password"]', '123456');
await page.click('button[type="submit"]');
await expect(page).toHaveURL(/.*dashboard.*/);
// 2. 进入门诊医生工作站 -> 医嘱标签页
await page.click('text=门诊医生工作站');
await page.click('text=医嘱');
await page.waitForLoadState('networkidle');
// 3. 验证表格加载
const table = page.locator('[data-cy="order-table"]');
await expect(table).toBeVisible();
});
// ================= 新增 Bug #566 回归测试 =================
test('@bug566 @regression 住院护士站三测单体征数据录入后体温单自动渲染', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="username"]', 'wx');
await page.fill('input[name="password"]', '123456');
await page.click('button[type="submit"]');
await expect(page).toHaveURL(/.*dashboard.*/);
await page.click('text=医嘱执行');
await page.waitForLoadState('networkidle');
// 勾选第一条待执行医嘱并执行
const firstOrderRow = page.locator('.el-table__body-wrapper tbody tr').first();
await firstOrderRow.locator('input[type="checkbox"]').check();
await page.click('button:has-text("执行")');
});
// ================= 新增 Bug #550 回归测试 =================
test('@bug550 @regression 检查申请项目选择交互优化验证', async ({ page }) => {
await page.goto('/outpatient/doctor/exam');
await page.click('text=住院护士站');
await page.click('text=三测单');
await page.waitForLoadState('networkidle');
// 1. 验证解耦:勾选检查项目不应自动勾选下方检查方法
const itemCheckbox = page.locator('.exam-item-checkbox').first();
await itemCheckbox.check();
const methodCheckbox = page.locator('.method-checkbox').first();
await expect(methodCheckbox).not.toBeChecked('勾选项目时检查方法应保持独立,未自动联动');
// 选中患者
await page.click('tr:has-text("123")');
await page.click('button:has-text("新增")');
// 2. 验证名称显示:去除“套餐”冗余前缀,悬停提示完整名称
const cardName = page.locator('.selected-card .item-name');
await expect(cardName).not.toContainText('套餐', '已选卡片名称应清理“套餐”字样');
await cardName.hover();
await expect(page.locator('.el-tooltip__popper')).toBeVisible('悬停应显示完整项目名称');
// 录入数据
await page.fill('input[placeholder="日期"]', '2026-05-20');
await page.fill('input[placeholder="时间"]', '06:00');
await page.fill('input[placeholder="体温"]', '38.6');
await page.fill('input[placeholder="心率"]', '89');
await page.fill('input[placeholder="脉搏"]', '45');
await page.click('button:has-text("保存")');
// 3. 验证结构化展示与默认收起:项目 > 检查方法层级分明,明细默认折叠
const detailsPanel = page.locator('.card-details');
await expect(detailsPanel).toBeHidden('套餐明细默认应为收起状态');
await page.locator('.card-header').first().click();
await expect(detailsPanel).toBeVisible('点击卡片头部应展开明细');
// 验证层级结构:方法项应缩进显示在所属项目下方
const methodRow = page.locator('.method-item').first();
await expect(methodRow).toBeVisible();
const methodIndent = await methodRow.evaluate(el => window.getComputedStyle(el).paddingLeft);
expect(parseInt(methodIndent)).toBeGreaterThan(20, '检查方法应有明显缩进,体现父子层级');
// 等待保存成功提示及数据刷新
await expect(page.locator('.el-message--success')).toContainText('保存成功');
await page.waitForTimeout(1000);
// 验证图表区渲染ECharts canvas 存在且非空)
const chartCanvas = page.locator('.temperature-chart-container canvas');
await expect(chartCanvas).toBeVisible();
// 验证表格区同步显示
await expect(page.locator('.vital-sign-table td:has-text("38.6")')).toBeVisible();
await expect(page.locator('.vital-sign-table td:has-text("89")')).toBeVisible();
await expect(page.locator('.vital-sign-table td:has-text("45")')).toBeVisible();
});
});