|
@@ -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) => {
|