|
@@ -2,18 +2,18 @@
|
|
|
<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-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 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">
|
|
|
- <el-option v-for="item in insuOptins" :key="item.code" :value="item.code" :label="item.name"></el-option>
|
|
|
- </el-select>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<el-button type="success" icon="el-icon-search" @click="fetchSetlinfos">查询</el-button>
|
|
|
- <el-button type="primary" icon="el-icon-download" @click="exportExcel">导出Excel</el-button>
|
|
|
+ <el-button type="primary" icon="el-icon-download" @click="exportSetlinfoExcel">导出Excel</el-button>
|
|
|
</el-header>
|
|
|
<el-main>
|
|
|
- <el-table :data="setlinfos" stripe :max-height="tableHeight" highlight-current-row border show-summary>
|
|
|
+ <el-table :data="setlinfos" stripe :max-height="tableHeight" highlight-current-row border show-summary @row-dblclick="fetchSetldetails">
|
|
|
<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>
|
|
@@ -22,23 +22,63 @@
|
|
|
<el-table-column prop="bigDssFundpaySumamt" label="大病基金"></el-table-column>
|
|
|
<el-table-column prop="clvFundpaySumamt" label="公务员基金支付"></el-table-column>
|
|
|
<el-table-column prop="othFundpaySumamt" label="其他基金"></el-table-column>
|
|
|
- <el-table-column prop="acctpaySumamt" 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%">
|
|
|
+ <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-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>
|
|
|
+ <el-table-column prop="times" label="次数" width="40"></el-table-column>
|
|
|
+ <el-table-column prop="gendName" label="性别" width="50"></el-table-column>
|
|
|
+ <el-table-column prop="brdy" label="出生日期"></el-table-column>
|
|
|
+ <el-table-column prop="insuplcAdmdvsName" label="参保地区"></el-table-column>
|
|
|
+ <el-table-column prop="insutypeName" label="险种类型"></el-table-column>
|
|
|
+ <el-table-column prop="psnTypeName" label="人员类别"></el-table-column>
|
|
|
+ <el-table-column prop="mdtrtId" label="就诊ID"></el-table-column>
|
|
|
+ <el-table-column prop="setlId" label="结算ID"></el-table-column>
|
|
|
+ <el-table-column prop="setlTime" label="结算时间"></el-table-column>
|
|
|
+ <el-table-column prop="medTypeName" label="医疗类别"></el-table-column>
|
|
|
+ <el-table-column prop="medfeeSumamt" label="总费用"></el-table-column>
|
|
|
+ <el-table-column prop="fundPaySumamt" label="报销金额"></el-table-column>
|
|
|
+ <el-table-column prop="acctPay" label="个人账户支出"></el-table-column>
|
|
|
+ <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"
|
|
|
+ ></el-pagination>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog v-model="showSetlinfoComponent" title="结算信息" :close-on-click-modal="false" width="70%">
|
|
|
+ <Setlinfo :setlinfo="currentSetldetail" />
|
|
|
+ </el-dialog>
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { onMounted, reactive, ref } from 'vue'
|
|
|
+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 } from '@/api/medical-insurance/si-query'
|
|
|
+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'
|
|
|
export default {
|
|
|
+ components: {
|
|
|
+ Setlinfo,
|
|
|
+ },
|
|
|
setup() {
|
|
|
const store = useStore()
|
|
|
const windowSize = store.state.app.windowSize
|
|
@@ -47,12 +87,19 @@ export default {
|
|
|
const setlConditon = reactive({
|
|
|
month: formatMonth(new Date()),
|
|
|
insutype: null,
|
|
|
- admdvs: null,
|
|
|
+ admdvsType: null,
|
|
|
+ insuplcAdmdvs: null,
|
|
|
})
|
|
|
|
|
|
const insutypes = ref([])
|
|
|
const insuOptins = initInsuOptions()
|
|
|
const setlinfos = ref([])
|
|
|
+ const setldetails = ref([])
|
|
|
+ const showSetldetails = ref(false)
|
|
|
+
|
|
|
+ const filterDialogTitle = computed(() => {
|
|
|
+ return `【${setlConditon.month}】【${filterAdmdvsName()}】【${filterInsutypeName()}】结算明细`
|
|
|
+ })
|
|
|
|
|
|
const fetchSetlinfos = () => {
|
|
|
if (!setlConditon.month) {
|
|
@@ -73,9 +120,9 @@ export default {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- if (!setlConditon.admdvs) {
|
|
|
+ if (!setlConditon.admdvsType) {
|
|
|
ElMessage({
|
|
|
- message: '请选择参保地!',
|
|
|
+ message: '请选择参保地归属!',
|
|
|
type: 'warning',
|
|
|
duration: 2500,
|
|
|
showClose: true,
|
|
@@ -100,7 +147,6 @@ export default {
|
|
|
bigDssFundpaySumamt: 0,
|
|
|
clvFundpaySumamt: 0,
|
|
|
othFundpaySumamt: 0,
|
|
|
- acctpaySumamt: 0,
|
|
|
fundpaySumamt: 0,
|
|
|
}
|
|
|
setlinfos.value.forEach((itm) => {
|
|
@@ -122,13 +168,15 @@ export default {
|
|
|
}
|
|
|
|
|
|
const filterAdmdvsName = () => {
|
|
|
- if (setlConditon.admdvs === 1) {
|
|
|
- return '省内异地'
|
|
|
+ for (let i = 0; i < insuOptins.length; i++) {
|
|
|
+ if (insuOptins[i].code === setlConditon.admdvsType) {
|
|
|
+ return insuOptins[i].name
|
|
|
+ }
|
|
|
}
|
|
|
- return '省外异地'
|
|
|
+ return ''
|
|
|
}
|
|
|
|
|
|
- const exportExcel = () => {
|
|
|
+ const exportSetlinfoExcel = () => {
|
|
|
if (setlinfos.value.length === 0) {
|
|
|
ElMessage({
|
|
|
message: '没有可以导出的数据!',
|
|
@@ -147,7 +195,6 @@ export default {
|
|
|
bigDssFundpaySumamt: '大病基金',
|
|
|
clvFundpaySumamt: '公务员基金支付',
|
|
|
othFundpaySumamt: '其他基金',
|
|
|
- acctpaySumamt: '个人账户基金',
|
|
|
fundpaySumamt: '全部基金',
|
|
|
}
|
|
|
const admdvsName = filterAdmdvsName()
|
|
@@ -156,6 +203,71 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const pageSize = ref(30)
|
|
|
+ const currentPage = ref(1)
|
|
|
+ const handleSizeChange = (val) => {
|
|
|
+ pageSize.value = val
|
|
|
+ }
|
|
|
+ const handleCurrentChange = (val) => {
|
|
|
+ currentPage.value = val
|
|
|
+ }
|
|
|
+
|
|
|
+ const fetchSetldetails = (row) => {
|
|
|
+ setlConditon.insuplcAdmdvs = row.insuplcAdmdvs
|
|
|
+ selectSetldetailStatistics(setlConditon)
|
|
|
+ .then((res) => {
|
|
|
+ setldetails.value = res
|
|
|
+ showSetldetails.value = true
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setldetails.value = []
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ const showSetlinfoComponent = ref(false)
|
|
|
+ const currentSetldetail = ref({})
|
|
|
+ const openSetlinfoComponent = (row) => {
|
|
|
+ const param = {
|
|
|
+ psnNo: row.psnNo,
|
|
|
+ mdtrtId: row.mdtrtId,
|
|
|
+ }
|
|
|
+ querySettlementInfo(param).then((res) => {
|
|
|
+ currentSetldetail.value = res
|
|
|
+ showSetlinfoComponent.value = true
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ const exportSetldetailExcel = () => {
|
|
|
+ if (setldetails.value.length === 0) {
|
|
|
+ ElMessage({
|
|
|
+ message: '没有可以导出的数据!',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ const title = {
|
|
|
+ patNo: '住院号',
|
|
|
+ times: '住院次数',
|
|
|
+ psnName: '姓名',
|
|
|
+ gendName: '性别',
|
|
|
+ brdy: '出生日期',
|
|
|
+ insuplcAdmdvsName: '参保地名称',
|
|
|
+ insutypeName: '险种类型',
|
|
|
+ medTypeName: '医疗类别',
|
|
|
+ psnTypeName: '人员类别',
|
|
|
+ mdtrtId: '就诊ID',
|
|
|
+ setlId: '结算ID',
|
|
|
+ setlTime: '结算时间',
|
|
|
+ medfeeSumamt: '医疗总费用',
|
|
|
+ fundPaySumamt: '报销金额',
|
|
|
+ acctPay: '个人账户支出',
|
|
|
+ psnCashPay: '个人现金支出',
|
|
|
+ }
|
|
|
+ Export(setldetails.value, title, filterDialogTitle.value)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
getInsutypes().then((res) => {
|
|
|
insutypes.value = res
|
|
@@ -168,8 +280,20 @@ export default {
|
|
|
insutypes,
|
|
|
insuOptins,
|
|
|
setlinfos,
|
|
|
+ setldetails,
|
|
|
+ showSetldetails,
|
|
|
+ filterDialogTitle,
|
|
|
+ pageSize,
|
|
|
+ currentPage,
|
|
|
+ showSetlinfoComponent,
|
|
|
+ currentSetldetail,
|
|
|
+ handleCurrentChange,
|
|
|
+ handleSizeChange,
|
|
|
fetchSetlinfos,
|
|
|
- exportExcel,
|
|
|
+ exportSetlinfoExcel,
|
|
|
+ fetchSetldetails,
|
|
|
+ openSetlinfoComponent,
|
|
|
+ exportSetldetailExcel,
|
|
|
}
|
|
|
},
|
|
|
}
|
|
@@ -178,12 +302,24 @@ function initInsuOptions() {
|
|
|
return [
|
|
|
{
|
|
|
code: 1,
|
|
|
- name: '省内异地',
|
|
|
+ name: '省本级',
|
|
|
},
|
|
|
{
|
|
|
code: 2,
|
|
|
+ name: '市本级',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 3,
|
|
|
+ name: '省内异地',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ code: 4,
|
|
|
name: '省外异地',
|
|
|
},
|
|
|
+ {
|
|
|
+ code: 99,
|
|
|
+ name: '全部',
|
|
|
+ },
|
|
|
]
|
|
|
}
|
|
|
</script>
|