浏览代码

江苏工伤个人住院结算单10

LIJU 1 月之前
父节点
当前提交
fecad56320

+ 1 - 1
src/components/work-injury/settle-detail-list/WorkInjurySetlList.vue

@@ -35,7 +35,7 @@
         </tr>
         <tr>
           <td colspan="1" style="padding: 10px 0;">医疗费用明细</td>
-          <td colspan="7" style="padding: 10px 0;">{{ setlinfo.feeItemsString }}</td>
+          <td colspan="7" style="padding: 10px 10px; text-align: left;">{{ setlinfo.feeItemsString }}</td>
         </tr>
         <tr>
           <td colspan="1" style="width: 12.5%;padding: 10px 0;">医疗总费用</td>

+ 29 - 6
src/views/work-injury/InpatientStatement.vue

@@ -329,14 +329,37 @@ const executeQrySetlinfo = async () => {
       console.log('费用明细接口请求参数:', requestParams)
       const chargeListRes = await selectChargeList(requestParams)
       const sumsMap = chargeListRes?.sumsMap || {}
-      // 生成“检查费:586.00元 化验费:592.00元 ...”
-      // 排除“总计”
-      const feeItemsString = Object.entries(sumsMap)
-        .filter(([k]) => k !== '总计')
+
+      // 顺序要求(按示例单据的顺序排列;不存在的项自动跳过)
+      const order = [
+        '西药费',
+        '中成药费',
+        '床位费',
+        '诊疗费',
+        '检查费',
+        '治疗费',
+        '影像费',
+        '检验费',
+        '输氧费',
+        '化验费',
+        '手术费',
+        '卫生材料费',
+        '护理费',
+        '其他住院费用'
+      ]
+
+      const entries = Object.entries(sumsMap).filter(([k]) => k !== '总计')
+      entries.sort((a, b) => {
+        const ia = order.indexOf(a[0])
+        const ib = order.indexOf(b[0])
+        return (ia === -1 ? 999 : ia) - (ib === -1 ? 999 : ib)
+      })
+
+      const feeItemsString = entries
         .map(([k, v]) => `${k}:${toAmount(v)}元`)
-        .join(';')
+        .join(';  ')
 
-      setlinfo.value.feeItemsString = feeItemsString
+      setlinfo.value.feeItemsString = feeItemsString ? feeItemsString + ';' : ''
     } catch (e) {
       console.warn('费用明细接口调用失败:', e)
       // 兜底:使用简化显示