Ver código fonte

出院审核可以查看已结算的申请

lighter 2 anos atrás
pai
commit
89aed16933

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

@@ -45,4 +45,12 @@ export function selectApplyHistories(data) {
     method: 'post',
     data,
   })
+}
+
+export function selectSettledApplies(data) {
+  return request({
+    url: '/siSettleApply/selectSettledApplies',
+    method: 'post',
+    data,
+  })
 }

+ 57 - 10
src/views/medical-insurance/inpatient/SettleVerification.vue

@@ -1,12 +1,22 @@
 <template>
   <page-layer>
     <template #header>
-      <el-select v-model="medType" placeholder="医疗类别" style="width: 100px" clearable>
-        <el-option v-for="item in trueMedTypes" :key="item.code" :label="item.name" :value="item.code"></el-option>
-      </el-select>
-      <el-select v-model="statusFlag" placeholder="审核状态" style="width: 90px" clearable>
-        <el-option v-for="item in statusFlags" :key="item.code" :label="item.name" :value="item.code"></el-option>
+      <el-select v-model="inOutFlag" style="width: 80px" @change="handleInOutStatusChange">
+        <el-option :value="1" label="未结算"></el-option>
+        <el-option :value="2" label="已结算"></el-option>
       </el-select>
+      <span v-show="inOutFlag === 2">
+        <el-date-picker type="daterange" v-model="disdateRange" style="width: 180px" @change="handleDisdateRangeChange"></el-date-picker>
+      </span>
+      <span v-show="inOutFlag === 1">
+        <el-select v-model="medType" placeholder="医疗类别" style="width: 100px" clearable>
+          <el-option v-for="item in trueMedTypes" :key="item.code" :label="item.name" :value="item.code"></el-option>
+        </el-select>
+        <el-select v-model="statusFlag" placeholder="审核状态" style="width: 90px" clearable>
+          <el-option v-for="item in statusFlags" :key="item.code" :label="item.name" :value="item.code"></el-option>
+        </el-select>
+      </span>
+      <el-input clearable v-model="patNo" placeholder="住院号筛选" style="width: 100px"></el-input>
       <el-divider direction="vertical"></el-divider>
       <el-button type="success" icon="Document" :disabled="currentApply.medType === '42'" @click="feeDtle">
         医保费用明细
@@ -17,7 +27,7 @@
       <el-button type="danger" icon="Close" @click="beforeHandleApply(false)">审核不通过</el-button>
     </template>
     <template #aside>
-      <el-table :data="cptApplies" stripe highlight-current-row @row-click="handleClickSettleApply">
+      <el-table :data="cptApplies" :height="tableHeight" stripe highlight-current-row @row-click="handleClickSettleApply">
         <el-table-column label="姓名" width="65">
           <template #default="scope">
             <div style="display: flex; align-items: center">
@@ -32,7 +42,7 @@
           </template>
         </el-table-column>
         <el-table-column prop="wardName" label="病房" width="100"></el-table-column>
-        <el-table-column label="历史">
+        <el-table-column label="历史" width="40">
           <template #default="scope">
             <el-button :icon="Search" circle @click.stop="getApplyHistories(scope.row)"></el-button>
           </template>
@@ -217,7 +227,13 @@ import store from '@/store'
 import maleIcon from '@/assets/male-icon.png'
 import femaleIcon from '@/assets/female-icon.png'
 import {ElMessage, ElMessageBox} from 'element-plus'
-import {selectUnhandledApplies, selectPatientInfo, handleApply, selectApplyHistories} from '@/api/medical-insurance/si-settle-apply'
+import {
+  selectUnhandledApplies,
+  selectPatientInfo,
+  handleApply,
+  selectApplyHistories,
+  selectSettledApplies
+} from '@/api/medical-insurance/si-settle-apply'
 import {statusFlags, trueMedTypes} from '../../../data/index'
 import Insuinfo from '../../../components/medical-insurance/insuinfo/Index.vue'
 import Treatmentinfo from '../../../components/medical-insurance/treatmentinfo/Index.vue'
@@ -225,12 +241,17 @@ import MedfeeAnalyse from '../../../components/medical-insurance/medfee-analyse/
 import IdentifyImage from '../../../components/inpatient/IdentifyImage.vue'
 import PageLayer from "@/layout/PageLayer";
 import {Search} from "@element-plus/icons-vue";
+import {formatDate, getOneMonthOffset} from "@/utils/date";
 
 const currentApply = ref({})
 const windowSize = store.state.app.windowSize
+const tableHeight = windowSize.h - 20
 const showFeeDetl = ref(false)
+const inOutFlag = ref(1)
+const disdateRange = ref([])
 const medType = ref('')
 const statusFlag = ref('')
+const patNo = ref('')
 const patient = ref({})
 const zyInYbDiags = ref([])
 const zyDisDiags = ref([])
@@ -239,9 +260,10 @@ const allApplies = ref([])
 const cptApplies = computed(() => {
   return allApplies.value.filter((itm) => {
     if ('' !== statusFlag.value) {
-      return medType.value ? itm.medType === medType.value && itm.status === statusFlag.value : itm.status === statusFlag.value
+      return medType.value ? (itm.medType === medType.value && itm.status === statusFlag.value && itm.patNo.indexOf(patNo.value) > -1)
+          : (itm.status === statusFlag.value && itm.patNo.indexOf(patNo.value) > -1)
     } else {
-      return medType.value ? itm.medType === medType.value : true
+      return medType.value ? (itm.medType === medType.value && itm.patNo.indexOf(patNo.value) > -1) : itm.patNo.indexOf(patNo.value) > -1
     }
   })
 })
@@ -260,6 +282,7 @@ const feeDtle = () => {
 
 const currentRow = ref({})
 const handleClickSettleApply = (row) => {
+  row.inOutFlag = inOutFlag.value
   store.commit('ptnt/setInjuryMode', row.medType === '42')
   selectPatientInfo(row).then((res) => {
     currentRow.value = row
@@ -368,10 +391,34 @@ const getApplyHistories = (row) => {
   })
 }
 
+const handleInOutStatusChange = (val) => {
+  if (val === 1) {
+    selectUnhandledApplies().then((res) => {
+      allApplies.value = res
+    });
+  } else {
+    const params = {start: disdateRange.value[0], end: disdateRange.value[1]}
+    selectSettledApplies(params).then(res => {
+      allApplies.value = res
+    })
+  }
+}
+
+const handleDisdateRangeChange = (val) => {
+  disdateRange.value[0] = formatDate(val[0])
+  disdateRange.value[1] = formatDate(val[1])
+  const params = {start: disdateRange.value[0], end: disdateRange.value[1]}
+  selectSettledApplies(params).then(res => {
+    allApplies.value = res
+  })
+}
+
 onActivated(() => {
   selectUnhandledApplies().then((res) => {
     allApplies.value = res
   })
+  const month = getOneMonthOffset()
+  disdateRange.value = [month.start, month.end]
 })
 
 const getStatusFlag = (status, patNo, times) => {