diff --git a/openhis-ui-vue3/src/views/outpatient/examination/ExamApply.vue b/openhis-ui-vue3/src/views/outpatient/examination/ExamApply.vue new file mode 100644 index 000000000..391b080e4 --- /dev/null +++ b/openhis-ui-vue3/src/views/outpatient/examination/ExamApply.vue @@ -0,0 +1,190 @@ + + + + + + + 检查项目分类 + + + + + + + + 检查项目 + + + + + {{ item.name }} + + + + + + + 检查方法 + + + + {{ method.name }} + + + + + + + + + 已选择项目 + + + + + + + + {{ cleanName(sel.name) }} + + 移除 + + + + + 检查方法: + + + {{ m.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 c3470f839..6ca8cca26 100755 --- a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts +++ b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts @@ -34,4 +34,30 @@ describe('HIS System Regression Tests', () => { cy.url().should('include', 'endDate=2026-05-02') }) }) + + // @bug550 @regression + describe('Bug #550: Exam Item Selection Interaction Optimization', () => { + it('should decouple item/method selection, display full names without "套餐" prefix, and show hierarchical collapsed details', () => { + cy.visit('/outpatient/examination/apply') + + // 1. 展开分类并勾选项目 + cy.get('[data-cy="category-tree"]').contains('彩超').click() + cy.get('[data-cy="item-list"]').contains('128线排').parent().find('input[type="checkbox"]').check() + + // 2. 验证联动解耦:检查方法区域未被自动勾选 + cy.get('[data-cy="method-list"]').find('input[type="checkbox"]:checked').should('have.length', 0) + + // 3. 验证已选卡片显示:名称完整/提示,去除“套餐”冗余前缀 + cy.get('[data-cy="selected-area"]').should('be.visible') + cy.get('[data-cy="selected-card"]').should('contain', '128线排') + cy.get('[data-cy="selected-card"]').should('not.contain', '套餐') + + // 4. 验证默认收起状态及层级结构(项目 > 检查方法) + cy.get('[data-cy="selected-card"] .details-panel').should('not.be.visible') // 默认收起 + cy.get('[data-cy="selected-card"] .card-header').click() // 点击展开 + cy.get('[data-cy="selected-card"] .details-panel').should('be.visible') + cy.get('[data-cy="selected-card"] .details-panel').should('contain', '检查方法') + cy.get('[data-cy="selected-card"] .details-panel').should('not.contain', '项目套餐明细') // 验证冗余标签已移除 + }) + }) })