|
@@ -1,12 +1,15 @@
|
|
|
<template>
|
|
|
<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.admdvsType" placeholder="参保地归属" style="width: 120px">
|
|
|
+ <el-date-picker v-model="setlCondition.month" type="month" style="width: 110px" placeholder="请选择" :clearable="false"></el-date-picker>
|
|
|
+ <el-select v-model="setlCondition.setlType" style="width: 100px">
|
|
|
+ <el-option label="住院" value="21"></el-option>
|
|
|
+ <el-option label="门诊" value="11"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="setlCondition.admdvsType" placeholder="参保地归属" style="width: 120px">
|
|
|
<el-option v-for="item in insuOptins" :key="item.code" :value="item.code" :label="item.name"></el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-model="setlConditon.insutype" placeholder="险种类型" filterable clearable style="width: 200px">
|
|
|
+ <el-select v-model="setlCondition.insutype" placeholder="险种类型" filterable clearable style="width: 200px">
|
|
|
<el-option v-for="item in insutypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
|
|
|
</el-select>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
@@ -16,20 +19,18 @@
|
|
|
</el-header>
|
|
|
<el-main>
|
|
|
<el-table
|
|
|
- :data="setlinfos"
|
|
|
- row-key="childKey"
|
|
|
- :row-class-name="differChildrenRows"
|
|
|
- :max-height="tableHeight"
|
|
|
- highlight-current-row
|
|
|
- border
|
|
|
- show-summary
|
|
|
- @row-dblclick="fetchSetldetails"
|
|
|
+ :data="setlinfos"
|
|
|
+ row-key="childKey"
|
|
|
+ :row-class-name="differChildrenRows"
|
|
|
+ :max-height="tableHeight"
|
|
|
+ highlight-current-row
|
|
|
+ border
|
|
|
+ show-summary
|
|
|
+ @row-dblclick="fetchSetldetails"
|
|
|
>
|
|
|
<el-table-column label="参保地" width="144">
|
|
|
<template #default="scope">
|
|
|
- <div :style="admdvsNameStyle(scope.row.children, scope.row.isChildren)" class="ellipsis-text"
|
|
|
- :title="scope.row.admdvsName">{{ scope.row.admdvsName }}
|
|
|
- </div>
|
|
|
+ <div :style="admdvsNameStyle(scope.row.children, scope.row.isChildren)" class="ellipsis-text" :title="scope.row.admdvsName">{{ scope.row.admdvsName }}</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="insutypeName" label="险种类型"></el-table-column>
|
|
@@ -41,13 +42,11 @@
|
|
|
<el-table-column prop="othFundpaySumamt" label="其他基金"></el-table-column>
|
|
|
<el-table-column prop="fundpaySumamt" label="全部基金"></el-table-column>
|
|
|
</el-table>
|
|
|
- <el-dialog v-model="showSetldetails" :close-on-click-modal="false" :close-on-press-escape="false"
|
|
|
- :title="filterDialogTitle" width="70%">
|
|
|
+ <el-dialog v-model="showSetldetails" :close-on-click-modal="false" :close-on-press-escape="false" :title="filterDialogTitle" width="70%">
|
|
|
<div style="width: 130px; height: 36px; position: absolute; top: 16px; right: 60px">
|
|
|
<el-button type="primary" icon="el-icon-download" @click="exportSetldetailExcel">导出Excel</el-button>
|
|
|
</div>
|
|
|
- <el-table :data="setldetails.slice(pageSize * (currentPage - 1), pageSize * currentPage)" stripe
|
|
|
- highlight-current-row height="360" @row-dblclick="openSetlinfoComponent">
|
|
|
+ <el-table :data="setldetails.slice(pageSize * (currentPage - 1), pageSize * currentPage)" stripe highlight-current-row height="360" @row-dblclick="openSetlinfoComponent">
|
|
|
<el-table-column type="index" label="序号" fixed width="40"></el-table-column>
|
|
|
<el-table-column prop="psnName" label="姓名" fixed width="60"></el-table-column>
|
|
|
<el-table-column prop="patNo" label="住院号" width="70"></el-table-column>
|
|
@@ -67,33 +66,31 @@
|
|
|
<el-table-column prop="psnCashPay" label="个人现金支出"></el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :current-page="currentPage"
|
|
|
- :page-sizes="[15, 30, 45, 60]"
|
|
|
- :page-size="pageSize"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="setldetails.length"
|
|
|
- style="margin-top: 5px"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-sizes="[15, 30, 45, 60]"
|
|
|
+ :page-size="pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="setldetails.length"
|
|
|
+ style="margin-top: 5px"
|
|
|
></el-pagination>
|
|
|
</el-dialog>
|
|
|
<el-dialog v-model="showSetlinfoComponent" title="结算信息" :close-on-click-modal="false" width="70%">
|
|
|
- <Setlinfo :setlinfo="currentSetldetail"/>
|
|
|
+ <Setlinfo :setlinfo="currentSetldetail" />
|
|
|
</el-dialog>
|
|
|
</el-main>
|
|
|
<el-drawer v-model="shangChuanShuJuDrawer" size="80%">
|
|
|
- <el-select filterable size="mini" v-model="shangChuanLeiXing" style="width: 80px;margin-left: 10px"
|
|
|
- @change="jieSuanDanCurrentPage = 1">
|
|
|
+ <el-select filterable size="mini" v-model="shangChuanLeiXing" style="width: 80px; margin-left: 10px" @change="jieSuanDanCurrentPage = 1">
|
|
|
<el-option v-for="item in jieSuanDanLeiXingData" :key="item.code" :label="item.name" :value="item.code">
|
|
|
<span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
- <span>{{ item.name }}</span></el-option>
|
|
|
+ <span>{{ item.name }}</span></el-option
|
|
|
+ >
|
|
|
</el-select>
|
|
|
- <el-button style="margin-left: 20px" type="primary" icon="el-icon-download" @click="shangChuanDaoChu">导出Excel
|
|
|
- </el-button>
|
|
|
+ <el-button style="margin-left: 20px" type="primary" icon="el-icon-download" @click="shangChuanDaoChu">导出Excel </el-button>
|
|
|
<el-alert title="上传返回的流水如果没有,就代表该患者没有上传数据"></el-alert>
|
|
|
- <el-table :data="cptShangChuanJieSuanDanData.slice((jieSuanDanCurrentPage - 1) * 40,jieSuanDanCurrentPage * 40 )"
|
|
|
- highlight-current-row :height="tableHeight - 30">
|
|
|
+ <el-table :data="cptShangChuanJieSuanDanData.slice((jieSuanDanCurrentPage - 1) * 40, jieSuanDanCurrentPage * 40)" highlight-current-row :height="tableHeight - 30">
|
|
|
<el-table-column prop="psnName" label="姓名" fixed width="60"></el-table-column>
|
|
|
<el-table-column prop="patNo" label="住院号" width="70"></el-table-column>
|
|
|
<el-table-column prop="times" label="次数" width="40"></el-table-column>
|
|
@@ -105,11 +102,11 @@
|
|
|
<el-table-column prop="setlListId" label="上传返回流水"></el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- :page-size="40"
|
|
|
- layout="total, prev, pager, next"
|
|
|
- :total="cptShangChuanJieSuanDanData.length"
|
|
|
- @current-change="shangChuanCurrent"
|
|
|
- :current-page="jieSuanDanCurrentPage"
|
|
|
+ :page-size="40"
|
|
|
+ layout="total, prev, pager, next"
|
|
|
+ :total="cptShangChuanJieSuanDanData.length"
|
|
|
+ @current-change="shangChuanCurrent"
|
|
|
+ :current-page="jieSuanDanCurrentPage"
|
|
|
>
|
|
|
</el-pagination>
|
|
|
</el-drawer>
|
|
@@ -117,20 +114,16 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {computed, onMounted, reactive, ref} from 'vue'
|
|
|
-import {formatMonth} from '../../../utils/date'
|
|
|
-import {getInsutypes} from '@/api/medical-insurance/si-dict'
|
|
|
-import {useStore} from 'vuex'
|
|
|
-import {
|
|
|
- selectSetlinfoStatistics,
|
|
|
- selectSetldetailStatistics,
|
|
|
- querySettlementInfo
|
|
|
-} from '@/api/medical-insurance/si-query'
|
|
|
-import {ElMessage} from 'element-plus'
|
|
|
-import {Export} from '@/utils/ExportExcel'
|
|
|
-import {clone} from '../../../utils/clone'
|
|
|
+import { computed, onMounted, reactive, ref } from 'vue'
|
|
|
+import { formatMonth } from '../../../utils/date'
|
|
|
+import { getInsutypes } from '@/api/medical-insurance/si-dict'
|
|
|
+import { useStore } from 'vuex'
|
|
|
+import { selectSetlinfoStatistics, selectSetldetailStatistics, querySettlementInfo } from '@/api/medical-insurance/si-query'
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+import { Export } from '@/utils/ExportExcel'
|
|
|
+import { clone } from '../../../utils/clone'
|
|
|
import Setlinfo from '../../../components/medical-insurance/setlinfo/Index.vue'
|
|
|
-import {ExcelName} from "../../../utils/ExportExcel";
|
|
|
+import { ExcelName } from '../../../utils/ExportExcel'
|
|
|
|
|
|
export default {
|
|
|
components: {
|
|
@@ -141,8 +134,9 @@ export default {
|
|
|
const windowSize = store.state.app.windowSize
|
|
|
const tableHeight = windowSize.h - 55
|
|
|
|
|
|
- const setlConditon = reactive({
|
|
|
+ const setlCondition = reactive({
|
|
|
month: formatMonth(new Date()),
|
|
|
+ setlType: '21',
|
|
|
insutype: null,
|
|
|
admdvsType: null,
|
|
|
insuplcAdmdvs: null,
|
|
@@ -163,18 +157,18 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- const differChildrenRows = ({row}) => {
|
|
|
+ const differChildrenRows = ({ row }) => {
|
|
|
if (row.isChildren) {
|
|
|
return 'children-row'
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const filterDialogTitle = computed(() => {
|
|
|
- return `【${setlConditon.month}】【${filterAdmdvsName()}】【${filterInsutypeName()}】结算明细`
|
|
|
+ return `【${setlCondition.month}】【${filterAdmdvsName()}】【${filterInsutypeName()}】结算明细`
|
|
|
})
|
|
|
|
|
|
const fetchSetlinfos = () => {
|
|
|
- if (!setlConditon.month) {
|
|
|
+ if (!setlCondition.month) {
|
|
|
ElMessage({
|
|
|
message: '请选择年月!',
|
|
|
type: 'warning',
|
|
@@ -183,7 +177,7 @@ export default {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- if (!setlConditon.admdvsType) {
|
|
|
+ if (!setlCondition.admdvsType) {
|
|
|
ElMessage({
|
|
|
message: '请选择参保地归属!',
|
|
|
type: 'warning',
|
|
@@ -192,15 +186,15 @@ export default {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- setlConditon.month = formatMonth(setlConditon.month)
|
|
|
- selectSetlinfoStatistics(setlConditon)
|
|
|
- .then((res) => {
|
|
|
- setlinfos.value = res
|
|
|
- shangChuanJieSuanDanData.value = setlinfos.value[0].shangChuanJieSuanDan
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setlinfos.value = []
|
|
|
- })
|
|
|
+ setlCondition.month = formatMonth(setlCondition.month)
|
|
|
+ selectSetlinfoStatistics(setlCondition)
|
|
|
+ .then((res) => {
|
|
|
+ setlinfos.value = res
|
|
|
+ shangChuanJieSuanDanData.value = setlinfos.value[0].shangChuanJieSuanDan
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setlinfos.value = []
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const getSummaries = () => {
|
|
@@ -224,7 +218,7 @@ export default {
|
|
|
|
|
|
const filterInsutypeName = () => {
|
|
|
for (let i = 0; i < insutypes.value.length; i++) {
|
|
|
- if (insutypes.value[i].code === setlConditon.insutype) {
|
|
|
+ if (insutypes.value[i].code === setlCondition.insutype) {
|
|
|
return insutypes.value[i].name
|
|
|
}
|
|
|
}
|
|
@@ -233,7 +227,7 @@ export default {
|
|
|
|
|
|
const filterAdmdvsName = () => {
|
|
|
for (let i = 0; i < insuOptins.length; i++) {
|
|
|
- if (insuOptins[i].code === setlConditon.admdvsType) {
|
|
|
+ if (insuOptins[i].code === setlCondition.admdvsType) {
|
|
|
return insuOptins[i].name
|
|
|
}
|
|
|
}
|
|
@@ -263,7 +257,7 @@ export default {
|
|
|
}
|
|
|
const admdvsName = filterAdmdvsName()
|
|
|
const insutypeName = filterInsutypeName()
|
|
|
- Export(data, title, `【${setlConditon.month}】【${admdvsName}】【${insutypeName}】`)
|
|
|
+ Export(data, title, `【${setlCondition.month}】【${admdvsName}】【${insutypeName}】`)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -277,16 +271,16 @@ export default {
|
|
|
}
|
|
|
|
|
|
const fetchSetldetails = (row) => {
|
|
|
- setlConditon.insuplcAdmdvs = row.insuplcAdmdvs
|
|
|
- setlConditon.insutype = row.insutype
|
|
|
- selectSetldetailStatistics(setlConditon)
|
|
|
- .then((res) => {
|
|
|
- setldetails.value = res
|
|
|
- showSetldetails.value = true
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setldetails.value = []
|
|
|
- })
|
|
|
+ setlCondition.insuplcAdmdvs = row.insuplcAdmdvs
|
|
|
+ setlCondition.insutype = row.insutype
|
|
|
+ selectSetldetailStatistics(setlCondition)
|
|
|
+ .then((res) => {
|
|
|
+ setldetails.value = res
|
|
|
+ showSetldetails.value = true
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setldetails.value = []
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const showSetlinfoComponent = ref(false)
|
|
@@ -341,7 +335,7 @@ export default {
|
|
|
const shangChuanLeiXing = ref(0)
|
|
|
|
|
|
const cptShangChuanJieSuanDanData = computed(() => {
|
|
|
- return shangChuanJieSuanDanData.value.filter(item => {
|
|
|
+ return shangChuanJieSuanDanData.value.filter((item) => {
|
|
|
if (shangChuanLeiXing.value === 0) {
|
|
|
return item
|
|
|
} else if (shangChuanLeiXing.value === 1) {
|
|
@@ -378,7 +372,7 @@ export default {
|
|
|
|
|
|
return {
|
|
|
tableHeight,
|
|
|
- setlConditon,
|
|
|
+ setlCondition,
|
|
|
insutypes,
|
|
|
insuOptins,
|
|
|
setlinfos,
|
|
@@ -406,10 +400,10 @@ export default {
|
|
|
shangChuanCurrent,
|
|
|
shangChuanDaoChu,
|
|
|
jieSuanDanLeiXingData: ref([
|
|
|
- {code: 0, name: "全部"},
|
|
|
- {code: 1, name: "未传"},
|
|
|
- {code: 2, name: "已传"},
|
|
|
- ])
|
|
|
+ { code: 0, name: '全部' },
|
|
|
+ { code: 1, name: '未传' },
|
|
|
+ { code: 2, name: '已传' },
|
|
|
+ ]),
|
|
|
}
|
|
|
},
|
|
|
}
|
|
@@ -424,6 +418,14 @@ function initInsuOptions() {
|
|
|
code: 2,
|
|
|
name: '市本级',
|
|
|
},
|
|
|
+ {
|
|
|
+ code: 5,
|
|
|
+ name: '长沙县',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 6,
|
|
|
+ name: '浏阳市',
|
|
|
+ },
|
|
|
{
|
|
|
code: 3,
|
|
|
name: '省内异地',
|