Browse Source

添加合计行

lighter 3 years ago
parent
commit
2834a4929a
1 changed files with 26 additions and 3 deletions
  1. 26 3
      src/views/medical-insurance/allpatient/SetlStatistics.vue

+ 26 - 3
src/views/medical-insurance/allpatient/SetlStatistics.vue

@@ -2,7 +2,7 @@
   <el-container>
     <el-header style="height: 35px; margin-top: 10px">
       <el-date-picker v-model="setlConditon.month" type="month" style="width: 110px" placeholder="请选择" :clearable="false"></el-date-picker>
-      <el-select v-model="setlConditon.insutype" placeholder="险种类型" filterable clearable style="width: 150px">
+      <el-select v-model="setlConditon.insutype" placeholder="险种类型" filterable style="width: 200px">
         <el-option v-for="item in insutypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
       </el-select>
       <el-select v-model="setlConditon.admdvs" placeholder="参保地" style="width: 120px">
@@ -13,7 +13,7 @@
       <el-button type="primary" icon="el-icon-download" @click="exportExcel">导出Excel</el-button>
     </el-header>
     <el-main>
-      <el-table :data="setlinfos" stripe :height="tableHeight" highlight-current-row>
+      <el-table :data="setlinfos" stripe :max-height="tableHeight" highlight-current-row border show-summary>
         <el-table-column type="index" label="序号"></el-table-column>
         <el-table-column prop="admdvsName" label="参保地名称"></el-table-column>
         <el-table-column prop="psnSumamt" label="人次"></el-table-column>
@@ -37,6 +37,7 @@ import { useStore } from 'vuex'
 import { selectSetlinfoStatistics } from '@/api/medical-insurance/si-query'
 import { ElMessage } from 'element-plus'
 import { Export } from '@/utils/ExportExcel'
+import { clone } from '../../../utils/clone'
 export default {
   setup() {
     const store = useStore()
@@ -91,6 +92,26 @@ export default {
         })
     }
 
+    const getSummaries = () => {
+      let sums = {
+        psnSumamt: 0,
+        medfeeSumamt: 0,
+        baseMedFundpaySumamt: 0,
+        bigDssFundpaySumamt: 0,
+        clvFundpaySumamt: 0,
+        othFundpaySumamt: 0,
+        acctpaySumamt: 0,
+        fundpaySumamt: 0,
+      }
+      setlinfos.value.forEach((itm) => {
+        for (let k in sums) {
+          sums[k] = Number(sums[k]) + Number(itm[k])
+        }
+      })
+      sums.admdvsName = '合计'
+      return sums
+    }
+
     const filterInsutypeName = () => {
       for (let i = 0; i < insutypes.value.length; i++) {
         if (insutypes.value[i].code === setlConditon.insutype) {
@@ -116,6 +137,8 @@ export default {
           showClose: true,
         })
       } else {
+        const data = clone(setlinfos.value)
+        data.push(getSummaries())
         const title = {
           admdvsName: '参保地名称',
           psnSumamt: '人次',
@@ -129,7 +152,7 @@ export default {
         }
         const admdvsName = filterAdmdvsName()
         const insutypeName = filterInsutypeName()
-        Export(setlinfos.value, title, `【${setlConditon.month}】【${admdvsName}】【${insutypeName}】`)
+        Export(data, title, `【${setlConditon.month}】【${admdvsName}】【${insutypeName}】`)
       }
     }