Jelajahi Sumber

Merge branch 'master' into 'master'

结算与对账增加查看结算明细和结算单功能

See merge request lighter/vue-intergration-platform!16
huangshuhua 3 tahun lalu
induk
melakukan
74dd51308f

+ 8 - 0
src/api/medical-insurance/si-manage.js

@@ -47,3 +47,11 @@ export function autoRecoveryTrade(data) {
     data,
   })
 }
+
+export function selectSetlPrescription(mdtrtId) {
+  return request({
+    url: '/siManage/selectSetlPrescription',
+    method: 'get',
+    params: { mdtrtId }
+  })
+}

+ 1 - 1
src/router/modules/dashboard.js

@@ -316,7 +316,7 @@ const route = [
             },
             {
                 path: 'bedDays',
-                component: createNameComponent(() => import('@/views/reports/bedDays.vue')),
+                component: createNameComponent(() => import('@/views/reports/BedDays.vue')),
                 meta: {title: '管床日数统计', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
             },
             {

+ 115 - 5
src/views/medical-insurance/allpatient/SetllistReconciliation.vue

@@ -26,11 +26,23 @@
       <el-button type="primary" icon="DataAnalysis" @click="setlDtlCheck">明细对账</el-button>
     </el-header>
     <el-main>
-      <el-table :data="cptSetlinfos.slice(pageSize * (currentPage - 1), pageSize * currentPage)" stripe :height="tableHeight" highlight-current-row>
+      <el-table
+        :data="cptSetlinfos.slice(pageSize * (currentPage - 1), pageSize * currentPage)"
+        stripe
+        :height="tableHeight"
+        highlight-current-row
+        @row-dblclick="selectSetlDetail"
+      >
         <el-table-column type="index" label="序号"></el-table-column>
         <el-table-column prop="patNo" label="住院号/门诊号"></el-table-column>
         <el-table-column prop="times" label="次数"></el-table-column>
-        <el-table-column prop="psnName" label="姓名"></el-table-column>
+        <el-table-column prop="psnName" label="姓名">
+          <template #default="scope">
+            <el-button text @click="setlListInfo(scope.row)" type="primary">
+              {{ scope.row.psnName }}
+            </el-button>
+          </template>
+        </el-table-column>
         <el-table-column prop="gendName" label="性别"></el-table-column>
         <el-table-column prop="brdy" label="出生日期"></el-table-column>
         <el-table-column prop="insutypeName" label="险种类型"></el-table-column>
@@ -75,6 +87,35 @@
       <el-dialog v-model="showSetlinfo" title="结算信息" :close-on-click-modal="false" width="70%">
         <Setlinfo :setlinfo="setlinfo" />
       </el-dialog>
+      <el-dialog v-model="showSetlPrescription" title="结算详情" :close-on-click-modal="false" width="82%">
+        <el-table :data="setlDetails" stripe :height="500" highlight-current-row>
+          <el-table-column type="index" label="序号"></el-table-column>
+          <el-table-column prop="mdtrtId" label="就诊ID"></el-table-column>
+          <el-table-column prop="setlId" label="结算ID" width="80"></el-table-column>
+          <el-table-column prop="hilistName" label="收费医保目录名称" width="280" align="left" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="feeOcurTime" label="发生时间" width="120" sortable></el-table-column>
+          <el-table-column prop="totalFee" label="费用" sortable></el-table-column>
+          <el-table-column prop="pric" label="单价" sortable></el-table-column>
+          <el-table-column prop="cnt" label="数量" sortable></el-table-column>
+          <el-table-column prop="chrgitmLvName" label="收费目录等级"></el-table-column>
+          <el-table-column prop="bilgDeptName" label="开单科室"></el-table-column>
+          <el-table-column prop="bilgDrName" label="开单医生"></el-table-column>
+          <el-table-column prop="opterName" label="经办人"></el-table-column>
+          <el-table-column prop="optTime" label="经办时间" width="120"></el-table-column>
+        </el-table>
+      </el-dialog>
+      <el-dialog v-model="showSetlList" title="医保结算单" :close-on-click-modal="false" fullscreen>
+        <div style="width: 856px; padding: 20px; background: white; text-align: center">
+          <div style="width: 100%; text-align: center; font-size: 22px; font-weight: bold; margin-bottom: 4px">{{ listTitle }}</div>
+          <div style="width: 100%; display: flex; font-size: 15px; margin-bottom: 8px">
+            <div style="width: 50%; text-align: left">统筹区划:{{ setlListDetail.insuplcAdmdvsName }}</div>
+            <div style="width: 50%; text-align: right">打印日期:{{ nowdate }}</div>
+          </div>
+          <InpatientSetlList v-if="settleType === '21'" :setlinfo="setlListDetail" />
+          <OtherOutpatientSetlList v-if="settleType === '11' && !isEmployeeOutpatient" :setlinfo="setlListDetail" />
+          <EmployeeOutpatientSetlList v-if="settleType === '11' && isEmployeeOutpatient" :setlinfo="setlListDetail" />
+        </div>
+      </el-dialog>
     </el-main>
   </el-container>
 </template>
@@ -85,14 +126,20 @@ import store from '@/store'
 import { getClrTypes, getInsutypes } from '@/api/medical-insurance/si-dict'
 import { setlShtcuts } from '@/data/shortcuts'
 import { ElMessage, ElMessageBox } from 'element-plus'
-import { institutionSettlementDetailCheck, institutionSettlementLedgerCheck, selectSetlinfos } from '@/api/medical-insurance/si-manage'
-import { querySettlementInfo } from '@/api/medical-insurance/si-query'
-import { formatDate } from '@/utils/date'
+import { institutionSettlementDetailCheck, institutionSettlementLedgerCheck, selectSetlinfos, selectSetlPrescription } from '@/api/medical-insurance/si-manage'
+import { querySettlementInfo, querySiSetlList } from '@/api/medical-insurance/si-query'
+import { formatDate, getDate } from '@/utils/date'
 import Setlinfo from '../../../components/medical-insurance/setlinfo/Index.vue'
+import InpatientSetlList from '@/components/medical-insurance/settle-detail-list/InpatientSetlList.vue'
+import OtherOutpatientSetlList from '@/components/medical-insurance/settle-detail-list/OtherOutpatientSetlList.vue'
+import EmployeeOutpatientSetlList from '@/components/medical-insurance/settle-detail-list/EmployeeOutpatientSetlList.vue'
 
 export default {
   components: {
     Setlinfo,
+    InpatientSetlList,
+    OtherOutpatientSetlList,
+    EmployeeOutpatientSetlList,
   },
   setup() {
     const windowSize = store.state.app.windowSize
@@ -242,6 +289,52 @@ export default {
       })
     }
 
+    // -----------------------查询结算单住院/门诊诊断处方明细----------------------------
+    const setlDetails = ref([])
+    const showSetlPrescription = ref(false)
+
+    const selectSetlDetail = (row) => {
+      selectSetlPrescription(row.mdtrtId)
+        .then((res) => {
+          setlDetails.value = res
+          showSetlPrescription.value = true
+        })
+        .catch(() => {
+          setlDetails.value = []
+        })
+    }
+
+    // --------------------------跳转结算清单查询页-------------------------------------
+    const showSetlList = ref(false)
+    const isEmployeeOutpatient = ref(false)
+    const isProvincial = ref(false)
+    const nowdate = getDate()
+    const settleType = ref('21')
+    const setlListDetail = ref({})
+    const listTitle = computed(() => {
+      if (settleType.value === '21') {
+        return '湖南省长沙市住院费用结算单'
+      }
+      if (!isEmployeeOutpatient.value) {
+        return '湖南省长沙市(普通、特殊)门诊费用结算单'
+      }
+      return isProvincial.value ? '湖南省省本级门诊统筹费用结算单' : '湖南省长沙市门诊统筹费用结算单'
+    })
+    const setlListInfo = (row) => {
+      settleType.value = row.setlType
+      isEmployeeOutpatient.value = row.insutype === '310'
+      isProvincial.value = row.insuplcAdmdvs === '439900'
+      const params = {
+        type: row.setlType,
+        patNo: row.patNo,
+        label: row.setlId + '_' + row.times + '_' + row.ledgerSn,
+      }
+      querySiSetlList(params).then((res) => {
+        setlListDetail.value = res
+        showSetlList.value = true
+      })
+    }
+
     onMounted(() => {
       getInsutypes().then((res) => {
         insutypes.value = res
@@ -256,10 +349,15 @@ export default {
       insutypes,
       clrTypes,
       dateRange,
+      nowdate,
+      listTitle,
       slctSetlPrm,
       setlShtcuts,
       setlinfos,
       cptSetlinfos,
+      setlDetails,
+      showSetlPrescription,
+      selectSetlDetail,
       pageSize,
       currentPage,
       setlDtlCheckRslt,
@@ -268,6 +366,11 @@ export default {
       setlinfo,
       showSetlinfo,
       getSetlinfo,
+      setlListInfo,
+      showSetlList,
+      isEmployeeOutpatient,
+      settleType,
+      setlListDetail,
       handleCurrentChange,
       handleSizeChange,
       getSetlInfos,
@@ -295,3 +398,10 @@ function calSumamt(list) {
   return { medSum, fundSum, acctSum, psnCashPay }
 }
 </script>
+
+<style scoped>
+:deep(.el-dialog__body) {
+  display: flex;
+  justify-content: center;
+}
+</style>