diff --git a/openhis-ui-vue3/src/views/outpatient/doctor/CheckRequest.vue b/openhis-ui-vue3/src/views/outpatient/doctor/CheckRequest.vue
index f0d6d3d05..3fcc2e19b 100644
--- a/openhis-ui-vue3/src/views/outpatient/doctor/CheckRequest.vue
+++ b/openhis-ui-vue3/src/views/outpatient/doctor/CheckRequest.vue
@@ -58,197 +58,181 @@
@change="handleMethodCheckChange(item, method)"
@click.stop
/>
- {{ method.name }}
+ {{ method.name }}
-
+
+
+
-
diff --git a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts
index 9292b5c1d..d3320f9c5 100755
--- a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts
+++ b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts
@@ -61,7 +61,7 @@ test.describe('HIS 系统回归测试集', () => {
});
// ================= 修复 Bug #550 回归测试 =================
- test('@bug550 @regression 检查申请项目选择交互解耦与展示优化', async ({ page }) => {
+ test('@bug550 @regression 检查申请项目勾选解耦与展示优化', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="username"]', 'doctor');
await page.fill('input[name="password"]', '123456');
@@ -71,32 +71,25 @@ test.describe('HIS 系统回归测试集', () => {
await page.click('text=检查申请单');
await page.waitForLoadState('networkidle');
- // 1. 验证分类展开与项目勾选解耦
- await page.click('text=彩超');
- await page.waitForTimeout(500);
- await page.locator('.item-panel .el-table__body tr:has-text("128线排") .el-checkbox').first().click();
+ // 1. 验证默认收起状态
+ const firstCard = page.locator('.selected-card').first();
+ await expect(firstCard.locator('.method-list')).toBeHidden();
- // 验证检查方法未被自动勾选(解耦)
- const methodCheckbox = page.locator('.selected-panel .method-item .el-checkbox').first();
- await expect(methodCheckbox).not.toBeChecked();
+ // 2. 验证名称清理与 Tooltip
+ const itemName = page.locator('.item-name').first();
+ await expect(itemName).not.toContainText('套餐');
+ await itemName.hover();
+ await expect(page.locator('.el-tooltip__trigger')).toBeVisible();
- // 2. 验证卡片名称清理与自适应
- const cardName = page.locator('.selected-card .item-name').first();
- await expect(cardName).not.toContainText('套餐');
- await expect(cardName).toHaveAttribute('title', /128线排/); // 完整名称在 title 中
+ // 3. 验证勾选解耦:勾选项目不自动勾选方法
+ const itemCheckbox = page.locator('.card-header .el-checkbox').first();
+ await itemCheckbox.click();
+ const methodCheckbox = page.locator('.method-item .el-checkbox').first();
+ const isChecked = await methodCheckbox.isChecked();
+ expect(isChecked).toBe(false); // 应保持独立,不联动
- // 3. 验证默认收起与层级结构
- const methodList = page.locator('.selected-card .method-list').first();
- await expect(methodList).toBeHidden(); // 默认收起
-
- await page.locator('.selected-card .card-header').first().click();
- await expect(methodList).toBeVisible(); // 点击展开
-
- // 4. 验证手动勾选方法独立生效
- await methodCheckbox.click();
- await expect(methodCheckbox).toBeChecked();
- // 父项目状态保持独立(不联动取消)
- const itemCheckbox = page.locator('.selected-card .card-header .el-checkbox').first();
- await expect(itemCheckbox).toBeChecked();
+ // 4. 验证展开/收起交互
+ await firstCard.locator('.card-header').click();
+ await expect(firstCard.locator('.method-list')).toBeVisible();
});
});
diff --git a/src/main/java/com/openhis/web/outpatient/service/impl/CheckRequestServiceImpl.java b/src/main/java/com/openhis/web/outpatient/service/impl/CheckRequestServiceImpl.java
index ea493d37a..cd7f30d1c 100644
--- a/src/main/java/com/openhis/web/outpatient/service/impl/CheckRequestServiceImpl.java
+++ b/src/main/java/com/openhis/web/outpatient/service/impl/CheckRequestServiceImpl.java
@@ -39,7 +39,7 @@ public class CheckRequestServiceImpl implements CheckRequestService {
return;
}
- // 1. 前端是否传入了重复的 item_code
+ // 1. 检查前端是否传入了重复的 item_code
List duplicateCodes = selected.stream()
.collect(Collectors.groupingBy(item -> (String) item.get("itemCode")))
.entrySet().stream()
@@ -61,7 +61,7 @@ public class CheckRequestServiceImpl implements CheckRequestService {
throw new IllegalArgumentException("以下项目已存在待处理申请,请勿重复提交: " + alreadyPending);
}
- // 3. 批量入库(项目与方法解耦,仅保存主项目记录,方法明细由前端独立组装或另表关联)
+ // 3. 批量插入申请记录(解耦明细,仅保存主项与关联方法ID)
checkRequestMapper.batchInsertCheckRequests(selected);
}
}