From e9dbc599537e9c12ddd669d5b747b159b779cbbd Mon Sep 17 00:00:00 2001 From: zhaoyun Date: Wed, 27 May 2026 00:39:29 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#550:=20AI=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../examination/ExaminationApplication.vue | 114 +++++++++--------- .../tests/e2e/specs/bug-regression.spec.ts | 48 ++++---- 2 files changed, 84 insertions(+), 78 deletions(-) diff --git a/openhis-ui-vue3/src/views/outpatient/doctor/examination/ExaminationApplication.vue b/openhis-ui-vue3/src/views/outpatient/doctor/examination/ExaminationApplication.vue index 65f7cf130..f9fb9415e 100644 --- a/openhis-ui-vue3/src/views/outpatient/doctor/examination/ExaminationApplication.vue +++ b/openhis-ui-vue3/src/views/outpatient/doctor/examination/ExaminationApplication.vue @@ -65,67 +65,72 @@ - @@ -135,80 +140,81 @@ const toggleCard = (id) => { gap: 16px; height: 100%; padding: 12px; - background: #f5f7fa; + box-sizing: border-box; } + .left-panel, .middle-panel, .right-panel { flex: 1; - background: #fff; border: 1px solid #ebeef5; border-radius: 6px; padding: 12px; overflow-y: auto; - display: flex; - flex-direction: column; + background: #fff; } + .panel-title { font-weight: 600; margin-bottom: 12px; color: #303133; + font-size: 14px; } + .item-list { display: flex; flex-direction: column; gap: 8px; } + .selected-list { - flex: 1; - overflow-y: auto; + display: flex; + flex-direction: column; + gap: 10px; } + .selected-card { + width: 100%; /* 修复:取消固定宽度,支持自适应 */ + min-width: 0; /* 防止 flex 子项溢出 */ border: 1px solid #dcdfe6; - border-radius: 6px; - margin-bottom: 10px; + border-radius: 4px; + padding: 10px; background: #fafafa; - /* 宽度自适应,取消固定宽度导致的截断溢出 */ - width: 100%; - min-width: 0; - box-sizing: border-box; + transition: all 0.2s; } + .card-header { display: flex; justify-content: space-between; align-items: center; - padding: 10px 12px; cursor: pointer; user-select: none; - background: #fff; - border-bottom: 1px solid transparent; - transition: all 0.2s; -} -.card-header:hover { - background: #f5f7fa; } + .card-name { - font-weight: 500; + flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - max-width: 85%; + font-weight: 500; color: #303133; } + .expand-toggle { color: #409eff; font-size: 12px; + margin-left: 8px; flex-shrink: 0; } + .card-details { - padding: 8px 12px; - background: #fff; + margin-top: 8px; + padding-left: 16px; + border-top: 1px dashed #ebeef5; + padding-top: 8px; } + .method-row { - padding: 6px 0; + padding: 4px 0; display: flex; align-items: center; - border-bottom: 1px dashed #ebeef5; -} -.method-row:last-child { - border-bottom: none; } 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 573781770..4cbd949e4 100755 --- a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts +++ b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts @@ -2,6 +2,30 @@ import { describe, it, beforeEach } from 'cypress' // ... existing regression tests ... +describe('Bug #561 Regression', { tags: ['@bug561', '@regression'] }, () => { + beforeEach(() => { + cy.visit('/outpatient/doctor/order') + }) + + it('should display total unit from treatment catalog instead of null', () => { + // 拦截医嘱详情接口,模拟返回诊疗目录配置的“使用单位” + cy.intercept('GET', '/api/outpatient/orders/*/detail', { + statusCode: 200, + body: { + id: 1001, + itemName: '超声切骨刀辅助操作', + totalQuantity: 1, + totalUnit: '次' + } + }).as('getOrderDetail') + + // 模拟进入医嘱详情页 + cy.visit('/outpatient/doctor/order/1001') + cy.wait('@getOrderDetail') + cy.get('[data-cy="total-unit"]').should('contain', '次') + }) +}) + describe('Bug #550 Regression', { tags: ['@bug550', '@regression'] }, () => { beforeEach(() => { // 模拟进入门诊医生站检查申请页 @@ -37,27 +61,3 @@ describe('Bug #550 Regression', { tags: ['@bug550', '@regression'] }, () => { cy.get('[data-cy="selected-card"]').should('not.contain', '项目套餐明细') }) }) - -describe('Bug #561 Regression', { tags: ['@bug561', '@regression'] }, () => { - beforeEach(() => { - cy.visit('/outpatient/doctor/order') - }) - - it('should display total unit from treatment catalog instead of null', () => { - // 拦截医嘱详情接口,模拟返回诊疗目录配置的“使用单位” - cy.intercept('GET', '/api/outpatient/orders/*/detail', { - statusCode: 200, - body: { - id: 1001, - itemName: '超声切骨刀辅助操作', - totalQuantity: 1, - totalUnit: '次' - } - }).as('getOrderDetail') - - // 模拟进入医嘱详情页 - cy.visit('/outpatient/doctor/order/1001') - cy.wait('@getOrderDetail') - cy.get('[data-cy="total-unit"]').should('contain', '次') - }) -})