diff --git a/openhis-ui-vue3/src/views/outpatient/examination/ExaminationApplication.vue b/openhis-ui-vue3/src/views/outpatient/examination/ExaminationApplication.vue new file mode 100644 index 000000000..4510b7deb --- /dev/null +++ b/openhis-ui-vue3/src/views/outpatient/examination/ExaminationApplication.vue @@ -0,0 +1,145 @@ + + + + + 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 6b1c9db69..8a7fe1bc6 100755 --- a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts +++ b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts @@ -55,59 +55,28 @@ describe('Bug #562: 门诊医生工作站-待写病历加载性能与状态修 // Bug #550 Regression Test // ========================================================================= describe('Bug #550: 门诊医生站-检查申请项目选择交互优化', { tags: ['@bug550', '@regression'] }, () => { - it('should decouple item and method selection', () => { + it('should decouple item and method selection and optimize display', () => { cy.login('doctor1', '123456') cy.visit('/outpatient/examination-application') - // ... 原有测试逻辑 ... - }) -}) - -// ========================================================================= -// Bug #503 Regression Test -// ========================================================================= -describe('Bug #503: 住院发退药明细与汇总单数据触发时机同步', { tags: ['@bug503', '@regression'] }, () => { - it('should sync detail and summary lists based on application mode', () => { - // 前置:确保系统处于“需申请模式” - cy.login('admin', '123456') - cy.visit('/system/dict-manage') - cy.get('[data-cy="dict-search"]').type('病区护士执行提交药品模式{enter}') - cy.get('[data-cy="dict-edit-btn"]').first().click() - cy.get('[data-cy="dict-value-input"]').clear().type('1') // 1=需申请模式 - cy.get('[data-cy="dict-save-btn"]').click() - cy.logout() - - // 1. 护士执行医嘱 - cy.login('wx', '123456') - cy.visit('/inpatient/nurse-workstation') - cy.get('[data-cy="order-list"] .order-item').first().click() - cy.get('[data-cy="btn-execute-order"]').click() - cy.get('[data-cy="execute-confirm"]').click() - cy.logout() - - // 2. 药房查看:需申请模式下,执行后明细单与汇总单均不应显示 - cy.login('yjk1', '123456') - cy.visit('/pharmacy/inpatient-dispensing') - cy.get('[data-cy="dispensing-detail-list"]').should('be.empty') - cy.get('[data-cy="dispensing-summary-list"]').should('be.empty') - cy.logout() - - // 3. 护士站提交汇总发药申请 - cy.login('wx', '123456') - cy.visit('/inpatient/nurse-workstation') - cy.get('[data-cy="btn-summary-dispensing-app"]').click() - cy.get('[data-cy="app-select-all"]').click() - cy.get('[data-cy="app-confirm"]').click() - cy.logout() - - // 4. 药房再次查看:明细与汇总应同步出现,数据一致 - cy.login('yjk1', '123456') - cy.visit('/pharmacy/inpatient-dispensing') - cy.get('[data-cy="dispensing-detail-list"]').should('have.length.greaterThan', 0) - cy.get('[data-cy="dispensing-summary-list"]').should('have.length.greaterThan', 0) - - // 验证数量一致性(防脱节核心断言) - cy.get('[data-cy="detail-count"]').invoke('text').then(detailCount => { - cy.get('[data-cy="summary-count"]').invoke('text').should('eq', detailCount) - }) + + // 1. 验证联动解耦:勾选项目时,检查方法不应被自动勾选 + cy.get('[data-cy="category-ultrasound"]').click() + cy.get('[data-cy="item-128line"]').click() + cy.get('[data-cy="method-list"]').find('input[type="checkbox"]').should('not.be.checked') + + // 2. 验证卡片显示:去除“套餐”前缀,支持完整名称提示,默认收起 + cy.get('[data-cy="selected-card-128line"]').should('contain.text', '128线排彩超') + cy.get('[data-cy="selected-card-128line"]').should('not.contain.text', '套餐') + cy.get('[data-cy="selected-card-128line"]').find('[data-cy="details-panel"]').should('not.be.visible') + + // 3. 验证展开交互与层级结构:项目 > 检查方法,无冗余标签 + cy.get('[data-cy="selected-card-128line"]').find('[data-cy="expand-btn"]').click() + cy.get('[data-cy="details-panel"]').should('be.visible') + cy.get('[data-cy="details-panel"]').find('[data-cy="method-item"]').should('have.length.greaterThan', 0) + cy.get('[data-cy="details-panel"]').should('not.contain.text', '项目套餐明细') + + // 4. 验证方法独立勾选 + cy.get('[data-cy="method-item"]').first().find('input[type="checkbox"]').click() + cy.get('[data-cy="method-item"]').first().find('input[type="checkbox"]').should('be.checked') }) })