497【住院医生工作站-检查申请】检查申请列表缺失“申请单状态”列及全流程闭环状态流转逻辑

523 [住院医生站-临床医嘱] 待保存医嘱总金额显示缺失且编辑态单位选择框变为数字控件
560 [住院医生站-检验申请] “已签发”状态的申请单在操作列缺失“详情”查看按钮
563 [住院医生站-临床医嘱-手术] 打开手术申请单弹窗时出现异常,功能无法使用
This commit is contained in:
Ranyunqiao
2026-05-21 17:06:09 +08:00
parent 8c81c52f4e
commit 966e4f6544
8 changed files with 121 additions and 41 deletions

View File

@@ -23,7 +23,7 @@
</template>
<script setup lang="ts">
import {computed, nextTick, onMounted, ref} from 'vue';
import {computed, nextTick, ref} from 'vue';
import {throttle} from 'lodash-es';
import Table from '@/components/TableLayout/Table.vue';
import {getAdviceBaseInfo} from './api';
@@ -204,11 +204,6 @@ defineExpose({
handleKeyDown,
refresh,
});
// 组件挂载时自动加载数据el-popover 懒渲染,父组件 refresh 可能因时序问题未生效onMounted 最可靠)
onMounted(() => {
getList();
});
</script>
<style scoped lang="scss">

View File

@@ -127,9 +127,19 @@
<el-button link type="warning" @click="handleWithdraw(scope.row)">撤回</el-button>
</template>
</template>
<template v-if="isReportStatus(scope.row)">
<!-- 报告已出可查看报告 -->
<template v-else-if="isReportStatus(scope.row)">
<el-button link type="success" @click="handleViewReport(scope.row)">查看报告</el-button>
</template>
<!-- 已签发可查看详情可撤回 -->
<template v-else-if="isIssuedStatus(scope.row)">
<el-button link type="primary" @click="handleViewDetail(scope.row)">详情</el-button>
<el-button link type="warning" @click="handleWithdraw(scope.row)">撤回</el-button>
</template>
<!-- 已采证已送检已作废仅查看详情 -->
<template v-else>
<el-button link type="primary" @click="handleViewDetail(scope.row)">详情</el-button>
</template>
</template>
</el-table-column>
</el-table>

View File

@@ -633,11 +633,11 @@ const calculateTotalAmount = () => {
nextTick(() => {
const row = props.row;
const qty = new Decimal(row.doseQuantity || 0);
const isMinUnit = row.unitCode == row.minUnitCode;
const price = isMinUnit ? row.minUnitPrice : row.unitPrice;
// 四舍五入到2位再算与页面显示的单价一致
// 根据首次用量单位类型决定使用哪个单价
const unitType = row.unitCodeList?.find((k) => k.value == row.doseUnitCode)?.type;
const price = unitType == 'unit' ? row.unitPrice : row.minUnitPrice;
const roundedPrice = new Decimal(price || 0).toDecimalPlaces(2, Decimal.ROUND_HALF_UP);
row.totalPrice = qty.mul(roundedPrice).toFixed(6);
row.totalPrice = qty.mul(roundedPrice).toDecimalPlaces(2, Decimal.ROUND_HALF_UP).toString();
});
};
const setInputRef = props.handlers.setInputRef;

View File

@@ -910,6 +910,11 @@ function handleFocus(row, index) {
categoryCode = selectedItem ? selectedItem.categoryCode : (row.categoryCode || '');
}
adviceQueryParams.value = { adviceType, categoryCode, searchKey: '' };
// handleFocus 打开 popover 时也要加载数据
const tableRef = Array.isArray(adviceTableRef.value) ? adviceTableRef.value[index] : adviceTableRef.value;
if (tableRef && tableRef.refresh) {
tableRef.refresh(adviceType, categoryCode, '');
}
}
function handleBlur(row) {