diff --git a/openhis-ui-vue3/src/views/clinicmanagement/dayEnd/index.vue b/openhis-ui-vue3/src/views/clinicmanagement/dayEnd/index.vue
index a9113868..ea05f2ec 100755
--- a/openhis-ui-vue3/src/views/clinicmanagement/dayEnd/index.vue
+++ b/openhis-ui-vue3/src/views/clinicmanagement/dayEnd/index.vue
@@ -62,142 +62,188 @@
门诊收费日结单
-
-
- 经办人姓名:
- {{ userStore.nickName || '全部' }}
-
-
- 科室:
- {{ userStore.orgName || '-' }}
-
-
- 机构:
- {{ userStore.hospitalName || '-' }}
-
-
- 时间:
- {{ queryTime && queryTime.length === 2 ? queryTime[0] + ' ~ ' + queryTime[1] : '-' }}
-
-
+
+
+
+ 经办人姓名:
+ {{ userStore.nickName || '全部' }}
+
+
+
+
+ 科室:
+ {{ userStore.orgName || '-' }}
+
+
+
+
+ 机构:
+ {{ userStore.hospitalName || '-' }}
+
+
+
+
+ 时间:
+ {{ queryTime && queryTime.length === 2 ? queryTime[0] + ' ~ ' + queryTime[1] : '-' }}
+
+
+
-
- 收入汇总
-
-
-
- 总收入:
- {{ formatValue(reportValue.cashSum) }}
-
-
- 现金:
- {{ formatValue(reportValue.rmbCashSum) }}
-
-
- 微信:
- {{ formatValue(reportValue.vxCashSum) }}
-
-
- 支付宝:
- {{ formatValue(reportValue.aliCashSum) }}
-
-
+ 收入汇总
+
+
+
+ 总收入:
+ {{ formatValue(reportValue.cashSum) }}
+
+
+
+
+ 现金:
+ {{ formatValue(reportValue.rmbCashSum) }}
+
+
+
+
+ 微信:
+ {{ formatValue(reportValue.vxCashSum) }}
+
+
+
+
+ 支付宝:
+ {{ formatValue(reportValue.aliCashSum) }}
+
+
+
-
- 医保支付
-
-
-
- 统筹支付:
- {{ formatValue(reportValue.tcSum) }}
-
-
- 账户支付:
- {{ formatValue(reportValue.zhSum) }}
-
-
- 基金支付总额:
- {{ formatValue(reportValue.fundSum) }}
-
-
- 医保统筹+账户:
- {{ formatValue(Number(reportValue.zhSum || 0) + Number(reportValue.fundSum || 0)) }}
-
-
+ 医保支付
+
+
+
+ 统筹支付:
+ {{ formatValue(reportValue.tcSum) }}
+
+
+
+
+ 账户支付:
+ {{ formatValue(reportValue.zhSum) }}
+
+
+
+
+ 基金支付总额:
+ {{ formatValue(reportValue.fundSum) }}
+
+
+
+
+ 医保统筹+账户:
+ {{ formatValue(Number(reportValue.zhSum || 0) + Number(reportValue.fundSum || 0)) }}
+
+
+
-
- 费用明细
-
-
-
- 诊查费:
- {{ formatValue(reportValue.DIAGNOSTIC_FEE) }}
-
-
- 检查费:
- {{ formatValue(reportValue.CHECK_FEE) }}
-
-
- 化验费:
- {{ formatValue(reportValue.DIAGNOSTIC_TEST_FEE) }}
-
-
- 治疗费:
- {{ formatValue(reportValue.MEDICAL_EXPENSE_FEE) }}
-
-
-
-
- 西药费:
- {{ formatValue(reportValue.WEST_MEDICINE) }}
-
-
- 中药饮片费:
- {{ formatValue(reportValue.CHINESE_MEDICINE_SLICES_FEE) }}
-
-
- 中成药费:
- {{ formatValue(reportValue.CHINESE_MEDICINE_FEE) }}
-
-
- 卫生材料费:
- {{ formatValue(reportValue.SANITARY_MATERIALS_FEE) }}
-
-
-
-
- 普通挂号费:
- {{ formatValue(reportValue.GENERAL_CONSULTATION_FEE) }}
-
-
- 挂号费:
- {{ formatValue(reportValue.REGISTRATION_FEE) }}
-
-
- 其他费用:
- {{ formatValue(reportValue.OTHER_FEE) }}
-
-
- 退费金额:
- {{ formatValue(reportValue.returnFee) }}
-
-
-
-
- 费用总额:
- {{ totalFeeAmount }}
-
-
- 医保报销:
- {{ insuranceReimbursement }}
-
-
+ 费用明细
+
+
+
+ 诊查费:
+ {{ formatValue(reportValue.DIAGNOSTIC_FEE) }}
+
+
+
+
+ 检查费:
+ {{ formatValue(reportValue.CHECK_FEE) }}
+
+
+
+
+ 化验费:
+ {{ formatValue(reportValue.DIAGNOSTIC_TEST_FEE) }}
+
+
+
+
+ 治疗费:
+ {{ formatValue(reportValue.MEDICAL_EXPENSE_FEE) }}
+
+
+
+
+
+
+ 西药费:
+ {{ formatValue(reportValue.WEST_MEDICINE) }}
+
+
+
+
+ 中药饮片费:
+ {{ formatValue(reportValue.CHINESE_MEDICINE_SLICES_FEE) }}
+
+
+
+
+ 中成药费:
+ {{ formatValue(reportValue.CHINESE_MEDICINE_FEE) }}
+
+
+
+
+ 卫生材料费:
+ {{ formatValue(reportValue.SANITARY_MATERIALS_FEE) }}
+
+
+
+
+
+
+ 普通挂号费:
+ {{ formatValue(reportValue.GENERAL_CONSULTATION_FEE) }}
+
+
+
+
+ 挂号费:
+ {{ formatValue(reportValue.REGISTRATION_FEE) }}
+
+
+
+
+ 其他费用:
+ {{ formatValue(reportValue.OTHER_FEE) }}
+
+
+
+
+ 退费金额:
+ {{ formatValue(reportValue.returnFee) }}
+
+
+
+
+
+
+ 费用总额:
+ {{ totalFeeAmount }}
+
+
+
+
+ 医保报销:
+ {{ insuranceReimbursement }}
+
+
+
@@ -418,54 +464,60 @@ getPharmacyCabinetLists();
color: #303133;
}
-.info-grid {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: 12px 16px;
- padding: 8px 0;
+.info-row {
+ padding: 12px 0;
}
-.data-grid {
- display: grid;
- grid-template-columns: repeat(4, 1fr);
- gap: 10px 16px;
- padding: 6px 0;
-}
-
-.data-grid-summary {
- margin-top: 12px;
- padding-top: 12px;
- border-top: 1px dashed #e4e7ed;
-}
-
-.info-item,
-.data-item {
+.info-cell {
display: flex;
- align-items: baseline;
- line-height: 28px;
+ align-items: center;
+ padding: 6px 0;
+ min-height: 32px;
}
-.section-title {
- font-size: 15px;
- font-weight: 600;
- color: #409eff;
- padding: 12px 0 8px 10px;
- margin: 4px 0 0;
- border-left: 3px solid #409eff;
- background: linear-gradient(90deg, rgba(64, 158, 255, 0.05) 0%, transparent 100%);
-}
-
-.label {
+.info-label {
color: #909399;
font-size: 13px;
white-space: nowrap;
- min-width: 95px;
+ min-width: 80px;
}
-.value {
+.info-value {
color: #303133;
font-size: 14px;
font-weight: 500;
+ flex: 1;
+}
+
+.data-row {
+ padding: 4px 0;
+}
+
+.data-cell {
+ display: flex;
+ align-items: center;
+ padding: 8px 12px;
+ margin-bottom: 4px;
+ background: #fafafa;
+ border-radius: 4px;
+ min-height: 40px;
+}
+
+.data-label {
+ color: #606266;
+ font-size: 13px;
+ white-space: nowrap;
+ min-width: 100px;
+ text-align: right;
+ padding-right: 8px;
+}
+
+.data-value {
+ color: #303133;
+ font-size: 14px;
+ font-weight: 500;
+ flex: 1;
+ text-align: right;
}
.value-highlight {
@@ -474,6 +526,30 @@ getPharmacyCabinetLists();
font-size: 15px;
}
+.summary-row {
+ margin-top: 8px;
+}
+
+.summary-cell {
+ background: #ecf5ff;
+ border: 1px solid #d9ecff;
+}
+
+.summary-label {
+ font-weight: 600;
+ color: #409eff;
+}
+
+.section-title {
+ font-size: 15px;
+ font-weight: 600;
+ color: #409eff;
+ padding: 8px 0 8px 12px;
+ margin: 8px 0 4px;
+ border-left: 3px solid #409eff;
+ background: linear-gradient(90deg, rgba(64, 158, 255, 0.05) 0%, transparent 100%);
+}
+
.search-buttons {
margin-bottom: 0;
}
@@ -483,11 +559,27 @@ getPharmacyCabinetLists();
}
:deep(.el-divider--horizontal) {
- margin: 16px 0;
+ margin: 12px 0;
}
.el-form--inline .el-form-item {
margin-bottom: 12px;
margin-right: 16px;
}
+
+@media (max-width: 768px) {
+ .data-label {
+ min-width: 80px;
+ text-align: left;
+ padding-right: 4px;
+ }
+
+ .data-value {
+ text-align: left;
+ }
+
+ .info-label {
+ min-width: 70px;
+ }
+}
diff --git a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outPatientCharge.vue b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outPatientCharge.vue
index 0e708a51..d20ef16f 100755
--- a/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outPatientCharge.vue
+++ b/openhis-ui-vue3/src/views/medicationmanagement/statisticalManagement/outPatientCharge.vue
@@ -551,7 +551,7 @@ function handleTotalAmount() {
// 表格合并行方法(纯函数,不修改数据)
const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
- // 仅处理科室列(columnIndex === 1)的门诊号合并
+ // 合并门诊号列(columnIndex === 1)
if (columnIndex === 1) {
const spanInfo = rowSpanMap.value[rowIndex];
if (spanInfo) {
@@ -694,8 +694,8 @@ function getList(type) {
: '0.0000' + (k.quantityUnit_dictText ? k.quantityUnit_dictText : '');
});
- // 处理搜索关键词时的合计
- if (queryParams.value.searchKey) {
+ // 处理搜索关键词或单页数据
+ if (queryParams.value.searchKey || (total.value && total.value <= queryParams.value.pageSize)) {
// 先处理小计行和合并信息
purchaseinventoryList.value = processListWithSubtotals(purchaseinventoryList.value);
@@ -706,42 +706,24 @@ function getList(type) {
});
totalPrice2 = totalPrice2 ? totalPrice2.toFixed(4) : totalPrice2;
- purchaseinventoryList.value.push({ departmentName: '合计', totalPrice: totalPrice2 });
- loading.value = false;
- return;
- }
-
- // 处理分页数据
- purchaseinventoryList.value.forEach((k) => {
- if (total.value && total.value <= queryParams.value.pageSize) {
- totalPrice2 += Number(k.totalPrice);
- }
- });
-
- if (total.value <= res.data.size) {
- loading.value = false;
- }
-
- // 单页数据合计
- if (total.value && total.value <= queryParams.value.pageSize) {
- // 先处理小计行和合并信息
- purchaseinventoryList.value = processListWithSubtotals(purchaseinventoryList.value);
- totalPrice2 = totalPrice2 ? totalPrice2.toFixed(4) : totalPrice2;
let pageNoAll = total.value / queryParams.value.pageSize;
-
if (Math.ceil(pageNoAll) == queryParams.value.pageNo) {
purchaseinventoryList.value.push({ departmentName: '合计', totalPrice: totalPrice2 });
+ rowSpanMap.value[purchaseinventoryList.value.length - 1] = { rowspan: 1, colspan: 1 };
}
- }
-
- // 多页数据处理
- if (total.value && total.value > queryParams.value.pageSize && !queryParams.value.searchKey) {
+
+ loading.value = false;
+ } else if (total.value && total.value > queryParams.value.pageSize && !queryParams.value.searchKey) {
+ // 多页数据:先处理当前页数据确保rowSpanMap正确初始化,避免表格格式错乱
+ purchaseinventoryList.value = processListWithSubtotals(purchaseinventoryList.value);
+ loading.value = false;
+
+ // 然后获取全部数据进行完整处理
let queryParamsValue = { ...queryParams.value };
queryParamsValue.pageSize = total.value;
queryParamsValue.pageNo = 1;
- // 移除空值参数
Object.keys(queryParamsValue).forEach(key => {
if (queryParamsValue[key] === undefined || queryParamsValue[key] === null || queryParamsValue[key] === '') {
delete queryParamsValue[key];
@@ -762,15 +744,14 @@ function getList(type) {
totalPrice2 += Number(k.totalPrice);
});
- // 用 processListWithSubtotals 统一处理小计和合并行
purchaseinventoryList.value = processListWithSubtotals(purchaseinventoryListAll.value);
totalPrice2 = totalPrice2 ? totalPrice2.toFixed(4) : totalPrice2;
- loading.value = false;
let pageNoAll = total.value / queryParams.value.pageSize;
if (Math.ceil(pageNoAll) == queryParams.value.pageNo) {
purchaseinventoryList.value.push({ departmentName: '合计', totalPrice: totalPrice2 });
+ rowSpanMap.value[purchaseinventoryList.value.length - 1] = { rowspan: 1, colspan: 1 };
}
}
});