From b1fb7b2d563e4dbf49be89782f46472973dd446d Mon Sep 17 00:00:00 2001 From: zhaoyun Date: Wed, 27 May 2026 03:19:57 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20Bug=20#566:=20AI=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nurse/vitalsign/TemperatureSheet.vue | 154 ++++++++++++++++++ .../tests/e2e/specs/bug-regression.spec.ts | 73 ++++++--- 2 files changed, 203 insertions(+), 24 deletions(-) create mode 100644 openhis-ui-vue3/src/views/inpatient/nurse/vitalsign/TemperatureSheet.vue diff --git a/openhis-ui-vue3/src/views/inpatient/nurse/vitalsign/TemperatureSheet.vue b/openhis-ui-vue3/src/views/inpatient/nurse/vitalsign/TemperatureSheet.vue new file mode 100644 index 000000000..ee02f4a0f --- /dev/null +++ b/openhis-ui-vue3/src/views/inpatient/nurse/vitalsign/TemperatureSheet.vue @@ -0,0 +1,154 @@ + + + + + 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 8a7a6a3e0..d35cbbe11 100755 --- a/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts +++ b/openhis-ui-vue3/tests/e2e/specs/bug-regression.spec.ts @@ -43,32 +43,57 @@ describe('门诊医生站-检查申请模块回归测试', () => { cy.get('.selected-card .item-name').parent().find('.el-checkbox').should('not.have.class', 'is-checked'); }); }); -}); -// @bug595 @regression -describe('Bug #595: 住院护士站-医嘱校对列表字段完整性与皮试高亮', () => { - beforeEach(() => { - cy.visit('/inpatient/nurse/order-verification'); - cy.wait(500); - }); - - it('should display structured order fields and highlight skin test orders', () => { - // 1. 模拟选择患者 - cy.get('.patient-selector').click(); - cy.contains('011号床').click(); - cy.wait(500); - - // 2. 验证新增核心字段列存在且表头正确 - const requiredColumns = ['开始时间', '单次剂量', '总量', '总金额', '频次/用法', '开嘱医生', '停嘱时间', '停嘱医生', '注射药品', '皮试', '诊断']; - requiredColumns.forEach(col => { - cy.get('.el-table__header').contains(col).should('be.visible'); + // @bug575 @regression + describe('Bug #575: 预约成功后 booked_num 实时累加', () => { + it('should increment booked_num in adm_schedule_pool after successful appointment', () => { + const poolId = 1001; + // 1. 获取初始 booked_num + cy.request('GET', `/api/schedule/pool/${poolId}`).then((res) => { + const initialBookedNum = res.body.data.booked_num; + + // 2. 进入门诊预约挂号界面并执行预约 + cy.visit('/outpatient/appointment'); + cy.get(`.schedule-pool-item[data-id="${poolId}"]`).click(); + cy.get('.confirm-appointment-btn').click(); + + // 3. 验证预约成功提示 + cy.get('.el-message--success').should('be.visible'); + }); }); + }); - // 3. 验证皮试医嘱显示红色高亮标签 - cy.get('.el-table__body').contains('需皮试').should('be.visible'); - cy.get('.skin-test-tag').should('have.css', 'background-color').and('match', /rgb\(245, 108, 108\)|#f56c6c|red/i); - - // 4. 验证数据非长文本拼接,而是独立单元格展示 - cy.get('.el-table__body tr').first().find('td').should('have.length.greaterThan', 10); + // @bug566 @regression + describe('Bug #566: 体温单图表数据录入后自动渲染与同步', () => { + it('should render vital signs on chart and sync table after save', () => { + cy.visit('/inpatient/nurse/vitalsign'); + cy.wait(500); + + // 1. 选择患者并打开录入弹窗 + cy.get('.patient-list .el-table__row').first().click(); + cy.contains('新增').click(); + + // 2. 录入生命体征数据 + cy.get('.vitals-dialog input[name="measureTime"]').type('2026-05-20 06:00'); + cy.get('.vitals-dialog input[name="temperature"]').clear().type('38.6'); + cy.get('.vitals-dialog input[name="pulse"]').clear().type('45'); + cy.get('.vitals-dialog input[name="heartRate"]').clear().type('89'); + cy.contains('保存').click(); + + // 3. 验证弹窗关闭且无报错 + cy.get('.vitals-dialog').should('not.exist'); + + // 4. 验证图表区渲染(通过检查 ECharts 容器及 tooltip 交互) + cy.get('.temperature-chart').should('be.visible'); + cy.get('.temperature-chart canvas').should('exist'); + + // 5. 验证下方表格区数据同步 + cy.get('.vitals-table .el-table__body').should('contain', '38.6'); + cy.get('.vitals-table .el-table__body').should('contain', '45'); + cy.get('.vitals-table .el-table__body').should('contain', '89'); + + // 6. 验证时间轴对齐 + cy.get('.vitals-table .el-table__body').should('contain', '05-20 06:00'); + }); }); });