|
@@ -2,16 +2,9 @@
|
|
|
<page-layer>
|
|
|
<template #header>
|
|
|
<el-date-picker v-model="dateRange" type="monthrange" range-separator="至" start-placeholder="开始月份"
|
|
|
- end-placeholder="结束月份" style="width: 220px"></el-date-picker>
|
|
|
- <el-cascader
|
|
|
- v-model="setlCondition.dataInfo"
|
|
|
- :options="setlCondition.options"
|
|
|
- :props="{ expandTrigger: 'hover' }"
|
|
|
- @change="handleChange"
|
|
|
- :clearable="true"
|
|
|
- :filterable="true"
|
|
|
- placeholder="请选择险种"
|
|
|
- >
|
|
|
+ end-placeholder="结束月份" style="width: 220px"></el-date-picker>
|
|
|
+ <el-cascader v-model="setlCondition.dataInfo" :options="setlCondition.options" :props="{ expandTrigger: 'hover' }"
|
|
|
+ @change="handleChange" :clearable="true" :filterable="true" placeholder="请选择险种">
|
|
|
</el-cascader>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<el-button icon="Search" type="primary" @click="fetchSetlinfos">查询</el-button>
|
|
@@ -23,51 +16,33 @@
|
|
|
<template #main>
|
|
|
<el-tabs type="border-card" v-model="setlCondition.selectType" @tab-click="handleClick">
|
|
|
<el-tab-pane label="数据" name="first">
|
|
|
- <el-table
|
|
|
- :data="setlinfos"
|
|
|
- :height="tableHeight"
|
|
|
- border
|
|
|
- highlight-current-row
|
|
|
- row-key="childKey"
|
|
|
- show-summary
|
|
|
- :summary-method="getSummaries1"
|
|
|
- stripe
|
|
|
- @row-dblclick="fetchSetldetails"
|
|
|
- >
|
|
|
- <el-table-column label="险种类型" prop="insurName" fixed header-align="center"
|
|
|
- width="130"></el-table-column>
|
|
|
+ <el-table :data="setlinfos" :height="tableHeight" border highlight-current-row row-key="childKey" show-summary
|
|
|
+ :summary-method="getSummaries1" stripe @row-dblclick="fetchSetldetails">
|
|
|
+ <el-table-column label="险种类型" prop="insurName" fixed header-align="center" width="130"></el-table-column>
|
|
|
<el-table-column label="住院人次" prop="psnCount" align="center" header-align="center"></el-table-column>
|
|
|
<el-table-column label="住院天数" prop="inDays" align="center" header-align="center"></el-table-column>
|
|
|
<el-table-column label="平均住院日" prop="avgInDays" align="right" header-align="center"></el-table-column>
|
|
|
<el-table-column label="总费用" prop="totalFee" align="right" header-align="center"></el-table-column>
|
|
|
<el-table-column label="药品费用" prop="drugFee" align="right" header-align="center"></el-table-column>
|
|
|
- <el-table-column label="药品占比(%)" prop="drugFeeRatio" align="right"
|
|
|
- header-align="center"></el-table-column>
|
|
|
+ <el-table-column label="药品占比(%)" prop="drugFeeRatio" align="right" header-align="center"></el-table-column>
|
|
|
<el-table-column label="耗材费用" prop="matFee" align="right" header-align="center"></el-table-column>
|
|
|
- <el-table-column label="耗材占比(%)" prop="matFeeRatio" align="right"
|
|
|
- header-align="center"></el-table-column>
|
|
|
- <el-table-column label="基本医疗统筹金额" prop="fundPooling" align="right"
|
|
|
- header-align="center"></el-table-column>
|
|
|
- <el-table-column label="大病基金" prop="bigIllFundPooling" align="right"
|
|
|
- header-align="center"></el-table-column>
|
|
|
- <el-table-column label="公务员基金支付" prop="civilServiceFund" align="right"
|
|
|
- header-align="center"></el-table-column>
|
|
|
+ <el-table-column label="耗材占比(%)" prop="matFeeRatio" align="right" header-align="center"></el-table-column>
|
|
|
+ <el-table-column label="基本医疗统筹金额" prop="fundPooling" align="right" header-align="center"></el-table-column>
|
|
|
+ <el-table-column label="大病基金" prop="bigIllFundPooling" align="right" header-align="center">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="公务员基金支付" prop="civilServiceFund" align="right" header-align="center">
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="其他基金" prop="otherFunds" align="right" header-align="center"></el-table-column>
|
|
|
<el-table-column label="全部基金" prop="allFunds" align="right" header-align="center"></el-table-column>
|
|
|
<el-table-column label="个人账户支出" prop="acctPay" align="right" header-align="center"></el-table-column>
|
|
|
</el-table>
|
|
|
<el-dialog v-model="showSetldetails" :close-on-click-modal="false" :close-on-press-escape="false"
|
|
|
- :title="filterDialogTitle" width="80%">
|
|
|
+ :title="filterDialogTitle" width="80%">
|
|
|
<div style="width: 130px; height: 36px; position: absolute; top: 16px; right: 60px">
|
|
|
<el-button icon="Download" type="primary" @click="exportYbDetailExcel">导出Excel</el-button>
|
|
|
</div>
|
|
|
- <el-table
|
|
|
- :data="setldetails.slice(pageSize * (currentPage - 1), pageSize * currentPage)"
|
|
|
- height="560"
|
|
|
- highlight-current-row
|
|
|
- stripe
|
|
|
- @row-dblclick="openSetlinfoComponent"
|
|
|
- >
|
|
|
+ <el-table :data="setldetails.slice(pageSize * (currentPage - 1), pageSize * currentPage)" height="560"
|
|
|
+ highlight-current-row stripe @row-dblclick="openSetlinfoComponent">
|
|
|
<el-table-column fixed label="序号" type="index" width="40"></el-table-column>
|
|
|
<el-table-column fixed label="姓名" prop="psnName" width="60"></el-table-column>
|
|
|
<el-table-column fixed label="住院号" prop="patNo" width="70"></el-table-column>
|
|
@@ -76,10 +51,8 @@
|
|
|
<el-table-column label="性别" prop="gendName" width="50"></el-table-column>
|
|
|
<el-table-column label="出生日期" prop="brdy"></el-table-column>
|
|
|
<el-table-column label="身份证" prop="certno"></el-table-column>
|
|
|
- <el-table-column label="主要诊断" prop="mainDiagnosis" width="120"
|
|
|
- show-overflow-tooltip></el-table-column>
|
|
|
- <el-table-column label="主要手术" prop="mainOperation" width="120"
|
|
|
- show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column label="主要诊断" prop="mainDiagnosis" width="120" show-overflow-tooltip></el-table-column>
|
|
|
+ <el-table-column label="主要手术" prop="mainOperation" width="120" show-overflow-tooltip></el-table-column>
|
|
|
<el-table-column label="参保地区" prop="insuplcAdmdvsName"></el-table-column>
|
|
|
<el-table-column label="险种类型" prop="insutypeName"></el-table-column>
|
|
|
<el-table-column label="人员类别" prop="psnTypeName"></el-table-column>
|
|
@@ -100,51 +73,26 @@
|
|
|
<el-table-column label="中药饮片费" prop="chargeHerbal"></el-table-column>
|
|
|
<el-table-column label="耗材费" prop="chargeSanitaryMaterial"></el-table-column>
|
|
|
</el-table>
|
|
|
- <el-pagination
|
|
|
- :current-page="currentPage"
|
|
|
- :page-size="pageSize"
|
|
|
- :page-sizes="[15, 30, 45, 60]"
|
|
|
- :total="setldetails.length"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- style="margin-top: 5px"
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- ></el-pagination>
|
|
|
+ <el-pagination :current-page="currentPage" :page-size="pageSize" :page-sizes="[15, 30, 45, 60]"
|
|
|
+ :total="setldetails.length" layout="total, sizes, prev, pager, next, jumper" style="margin-top: 5px"
|
|
|
+ @size-change="handleSizeChange" @current-change="handleCurrentChange"></el-pagination>
|
|
|
</el-dialog>
|
|
|
<el-dialog v-model="showSetlinfoComponent" :close-on-click-modal="false" title="结算信息" width="70%">
|
|
|
- <Setlinfo :setlinfo="currentSetldetail"/>
|
|
|
+ <Setlinfo :setlinfo="currentSetldetail" />
|
|
|
</el-dialog>
|
|
|
- <el-dialog v-model="showChart" :close-on-click-modal="false" title="费用趋势图" width="70%" top="40px"
|
|
|
- draggable>
|
|
|
- <BarChart :ybkf="barChangeData"/>
|
|
|
+ <el-dialog v-model="showChart" :close-on-click-modal="false" title="费用趋势图" width="70%" top="40px" draggable>
|
|
|
+ <BarChart :ybkf="barChangeData" />
|
|
|
</el-dialog>
|
|
|
- <el-dialog v-model="treeChart" :close-on-click-modal="false" title="人数树状图" width="70%" top="40px"
|
|
|
- draggable>
|
|
|
+ <el-dialog v-model="treeChart" :close-on-click-modal="false" title="人数树状图" width="70%" top="40px" draggable>
|
|
|
<div style="height: 35px">
|
|
|
- <el-autocomplete
|
|
|
- v-model="deptNo"
|
|
|
- value-key="name"
|
|
|
- :fetch-suggestions="querySearchDept"
|
|
|
- :trigger-on-focus="false"
|
|
|
- clearable
|
|
|
- class="inline-input w-50 m-2"
|
|
|
- style="width: 240px"
|
|
|
- placeholder="请输入关键字"
|
|
|
- @select="handleSelect"
|
|
|
- >
|
|
|
+ <el-autocomplete v-model="deptNo" value-key="name" :fetch-suggestions="querySearchDept"
|
|
|
+ :trigger-on-focus="false" clearable class="inline-input w-50 m-2" style="width: 240px"
|
|
|
+ placeholder="请输入关键字" @select="handleSelect">
|
|
|
<template #prepend>科室</template>
|
|
|
</el-autocomplete>
|
|
|
- <el-autocomplete
|
|
|
- v-model="doctorId"
|
|
|
- value-key="name"
|
|
|
- :fetch-suggestions="querySearchDoctor"
|
|
|
- :trigger-on-focus="false"
|
|
|
- clearable
|
|
|
- class="inline-input w-50 m-2"
|
|
|
- style="width: 240px"
|
|
|
- placeholder="请输入关键字"
|
|
|
- @select="handleSelect"
|
|
|
- >
|
|
|
+ <el-autocomplete v-model="doctorId" value-key="name" :fetch-suggestions="querySearchDoctor"
|
|
|
+ :trigger-on-focus="false" clearable class="inline-input w-50 m-2" style="width: 240px"
|
|
|
+ placeholder="请输入关键字" @select="handleSelect">
|
|
|
<template #prepend>管床医生</template>
|
|
|
</el-autocomplete>
|
|
|
<el-input v-model="insurCode" clearable style="width: 240px" class="w-50 m-2">
|
|
@@ -152,13 +100,14 @@
|
|
|
</el-input>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<el-button icon="Search" type="primary" @click="selectTreeChart">查询</el-button>
|
|
|
+ <el-button icon="Download" type="primary" @click="exportTreeRs">导出</el-button>
|
|
|
</div>
|
|
|
<div style="width: 100%; height: 700px" id="treedsf"></div>
|
|
|
</el-dialog>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="同比" name="second">
|
|
|
<el-table :data="setlinfos" :height="tableHeight" border highlight-current-row row-key="childKey" show-summary
|
|
|
- :summary-method="getSummaries1">
|
|
|
+ :summary-method="getSummaries1">
|
|
|
<el-table-column label="月份" prop="month" fixed align="center" header-align="center"></el-table-column>
|
|
|
<el-table-column label="总费用" prop="zfy" header-align="center">
|
|
|
<el-table-column label="今年" prop="zfy_jn" align="right" header-align="center"></el-table-column>
|
|
@@ -184,7 +133,7 @@
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="环比" name="third">
|
|
|
<el-table :data="setlinfos" :height="tableHeight" border highlight-current-row row-key="childKey" show-summary
|
|
|
- :summary-method="getSummaries1">
|
|
|
+ :summary-method="getSummaries1">
|
|
|
<el-table-column label="月份" prop="month" align="center" fixed header-align="center"></el-table-column>
|
|
|
<el-table-column label="总费用" prop="zfys" header-align="center">
|
|
|
<el-table-column label="费用" prop="zfy" align="right" header-align="center"></el-table-column>
|
|
@@ -237,10 +186,10 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {computed, onMounted, reactive, ref, watch} from 'vue'
|
|
|
-import {useStore} from 'vuex'
|
|
|
+import { computed, onMounted, reactive, ref, watch } from 'vue'
|
|
|
+import { useStore } from 'vuex'
|
|
|
import store from '@/store'
|
|
|
-import {getDateRangeFormatDate, formatDatetime} from '@/utils/date'
|
|
|
+import { getDateRangeFormatDate, formatDatetime } from '@/utils/date'
|
|
|
import {
|
|
|
selectYbStatInfo,
|
|
|
selectYbStatRatio,
|
|
@@ -250,14 +199,14 @@ import {
|
|
|
selectBarChangeData,
|
|
|
selectTreeData
|
|
|
} from '@/api/medical-insurance/si-ybkf'
|
|
|
-import {clone} from '@/utils/clone'
|
|
|
-import {Export} from '@/utils/ExportExcel'
|
|
|
-import {ElMessage, ElMessageBox} from 'element-plus'
|
|
|
-import {downloadExcel} from '@/utils/excel'
|
|
|
-import {pieUtilsOne, barUtilsTwo, barUtilsThree, treeChartRoot} from '@/utils/echarts-utils'
|
|
|
+import { clone } from '@/utils/clone'
|
|
|
+import { Export } from '@/utils/ExportExcel'
|
|
|
+import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
+import { downloadExcel } from '@/utils/excel'
|
|
|
+import { pieUtilsOne, barUtilsTwo, barUtilsThree, treeChartRoot } from '@/utils/echarts-utils'
|
|
|
import Setlinfo from '../../../components/medical-insurance/setlinfo/Index.vue'
|
|
|
import BarChart from '../../../components/medical-insurance/ybkf/BarChart.vue'
|
|
|
-import {selectSmallDept, selectDoctor} from '@/api/medical-insurance/si-yb-util'
|
|
|
+import { selectSmallDept, selectDoctor } from '@/api/medical-insurance/si-yb-util'
|
|
|
import PageLayer from "@/layout/PageLayer";
|
|
|
|
|
|
export default {
|
|
@@ -301,43 +250,43 @@ export default {
|
|
|
|
|
|
let selectInfo = clone(setlCondition)
|
|
|
selectBarChangeData(selectInfo)
|
|
|
- .then((res) => {
|
|
|
- barChangeData.value = res
|
|
|
- showChart.value = true
|
|
|
-
|
|
|
- //月份
|
|
|
- let months = []
|
|
|
- //数据
|
|
|
- let dataBar = []
|
|
|
- //显示排名前几名
|
|
|
- let num = 15
|
|
|
- //单位
|
|
|
- let unit = '元'
|
|
|
-
|
|
|
- barChangeData.value.forEach((item) => {
|
|
|
- let d = []
|
|
|
-
|
|
|
- if (months.length === 0 || months[months.length - 1] !== item.yf) {
|
|
|
- months.push(item.yf)
|
|
|
- }
|
|
|
+ .then((res) => {
|
|
|
+ barChangeData.value = res
|
|
|
+ showChart.value = true
|
|
|
+
|
|
|
+ //月份
|
|
|
+ let months = []
|
|
|
+ //数据
|
|
|
+ let dataBar = []
|
|
|
+ //显示排名前几名
|
|
|
+ let num = 15
|
|
|
+ //单位
|
|
|
+ let unit = '元'
|
|
|
+
|
|
|
+ barChangeData.value.forEach((item) => {
|
|
|
+ let d = []
|
|
|
+
|
|
|
+ if (months.length === 0 || months[months.length - 1] !== item.yf) {
|
|
|
+ months.push(item.yf)
|
|
|
+ }
|
|
|
|
|
|
- d.push(item.totalFee)
|
|
|
- d.push(item.medins_type)
|
|
|
- d.push(item.yf)
|
|
|
+ d.push(item.totalFee)
|
|
|
+ d.push(item.medins_type)
|
|
|
+ d.push(item.yf)
|
|
|
|
|
|
- dataBar.push(d)
|
|
|
- })
|
|
|
- nextTick(() => {
|
|
|
- barUtilsThree(hightChart, '总费用(TOP' + num + ')', months, dataBar, num - 1, unit)
|
|
|
- })
|
|
|
+ dataBar.push(d)
|
|
|
})
|
|
|
- .catch(() => {
|
|
|
- barChangeData.value = []
|
|
|
+ nextTick(() => {
|
|
|
+ barUtilsThree(hightChart, '总费用(TOP' + num + ')', months, dataBar, num - 1, unit)
|
|
|
})
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ barChangeData.value = []
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const querySearchDept = async (str, cb) => {
|
|
|
- let results = await selectSmallDept({str})
|
|
|
+ let results = await selectSmallDept({ str })
|
|
|
if (results) {
|
|
|
// 调用 callback 返回建议列表的数据
|
|
|
cb(results)
|
|
@@ -345,7 +294,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
const querySearchDoctor = async (str, cb) => {
|
|
|
- let results = await selectDoctor({str})
|
|
|
+ let results = await selectDoctor({ str })
|
|
|
if (results) {
|
|
|
// 调用 callback 返回建议列表的数据
|
|
|
cb(results)
|
|
@@ -425,13 +374,13 @@ export default {
|
|
|
let selectInfo = clone(setlCondition)
|
|
|
selectInfo.insurType = row.insurType
|
|
|
selectYbStatDetail(selectInfo)
|
|
|
- .then((res) => {
|
|
|
- setldetails.value = res
|
|
|
- showSetldetails.value = true
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setldetails.value = []
|
|
|
- })
|
|
|
+ .then((res) => {
|
|
|
+ setldetails.value = res
|
|
|
+ showSetldetails.value = true
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setldetails.value = []
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const filterDialogTitle = computed(() => {
|
|
@@ -495,20 +444,20 @@ export default {
|
|
|
|
|
|
if (setlCondition.selectType === 'first') {
|
|
|
selectYbStatInfo(setlCondition)
|
|
|
- .then((res) => {
|
|
|
- setlinfos.value = res
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setlinfos.value = []
|
|
|
- })
|
|
|
+ .then((res) => {
|
|
|
+ setlinfos.value = res
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setlinfos.value = []
|
|
|
+ })
|
|
|
} else {
|
|
|
selectYbStatRatio(setlCondition)
|
|
|
- .then((res) => {
|
|
|
- setlinfos.value = res
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setlinfos.value = []
|
|
|
- })
|
|
|
+ .then((res) => {
|
|
|
+ setlinfos.value = res
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setlinfos.value = []
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -619,66 +568,66 @@ export default {
|
|
|
}
|
|
|
|
|
|
watch(
|
|
|
- () => chartData.value,
|
|
|
- () => {
|
|
|
- let nameText
|
|
|
- let barTitles = ['总费用', '全部基金', '药品费', '耗材费']
|
|
|
- if (setlCondition.setlType === '21') {
|
|
|
- nameText = '住院'
|
|
|
+ () => chartData.value,
|
|
|
+ () => {
|
|
|
+ let nameText
|
|
|
+ let barTitles = ['总费用', '全部基金', '药品费', '耗材费']
|
|
|
+ if (setlCondition.setlType === '21') {
|
|
|
+ nameText = '住院'
|
|
|
+ } else {
|
|
|
+ nameText = '门诊'
|
|
|
+ }
|
|
|
+ nameText = titleChart.value + '(' + nameText + ')-'
|
|
|
+ let yAxisName = '单位:百万元'
|
|
|
+ let tipUnit = '元'
|
|
|
+
|
|
|
+ let echartsXdata = []
|
|
|
+ let zfy = []
|
|
|
+ let zjj = []
|
|
|
+ let ypf = []
|
|
|
+ let clf = []
|
|
|
+ let pieRc = []
|
|
|
+ let pieZyts = []
|
|
|
+ let pieZfy = []
|
|
|
+
|
|
|
+ chartData.value.forEach((item) => {
|
|
|
+ if (item.month) {
|
|
|
+ zfy.push(item.zfy_jn)
|
|
|
+ zjj.push(item.zjj_jn)
|
|
|
+ if (item.ypf_jn > 0.0) {
|
|
|
+ ypf.push(item.ypf_jn)
|
|
|
+ }
|
|
|
+ if (item.clf_jn > 0.0) {
|
|
|
+ clf.push(item.clf_jn)
|
|
|
+ }
|
|
|
+ echartsXdata.push(item.month)
|
|
|
} else {
|
|
|
- nameText = '门诊'
|
|
|
+ let dataRc = {}
|
|
|
+ let dataZyts = {}
|
|
|
+ let dataZfy = {}
|
|
|
+ dataRc.value = item.psnCount
|
|
|
+ dataRc.name = item.insurName
|
|
|
+ dataRc.unit = '人'
|
|
|
+ pieRc.push(dataRc)
|
|
|
+ dataZyts.value = item.inDays
|
|
|
+ dataZyts.name = item.insurName
|
|
|
+ dataZyts.unit = '天'
|
|
|
+ pieZyts.push(dataZyts)
|
|
|
+ dataZfy.value = item.totalFee
|
|
|
+ dataZfy.name = item.insurName
|
|
|
+ dataZfy.unit = '元'
|
|
|
+ pieZfy.push(dataZfy)
|
|
|
}
|
|
|
- nameText = titleChart.value + '(' + nameText + ')-'
|
|
|
- let yAxisName = '单位:百万元'
|
|
|
- let tipUnit = '元'
|
|
|
-
|
|
|
- let echartsXdata = []
|
|
|
- let zfy = []
|
|
|
- let zjj = []
|
|
|
- let ypf = []
|
|
|
- let clf = []
|
|
|
- let pieRc = []
|
|
|
- let pieZyts = []
|
|
|
- let pieZfy = []
|
|
|
-
|
|
|
- chartData.value.forEach((item) => {
|
|
|
- if (item.month) {
|
|
|
- zfy.push(item.zfy_jn)
|
|
|
- zjj.push(item.zjj_jn)
|
|
|
- if (item.ypf_jn > 0.0) {
|
|
|
- ypf.push(item.ypf_jn)
|
|
|
- }
|
|
|
- if (item.clf_jn > 0.0) {
|
|
|
- clf.push(item.clf_jn)
|
|
|
- }
|
|
|
- echartsXdata.push(item.month)
|
|
|
- } else {
|
|
|
- let dataRc = {}
|
|
|
- let dataZyts = {}
|
|
|
- let dataZfy = {}
|
|
|
- dataRc.value = item.psnCount
|
|
|
- dataRc.name = item.insurName
|
|
|
- dataRc.unit = '人'
|
|
|
- pieRc.push(dataRc)
|
|
|
- dataZyts.value = item.inDays
|
|
|
- dataZyts.name = item.insurName
|
|
|
- dataZyts.unit = '天'
|
|
|
- pieZyts.push(dataZyts)
|
|
|
- dataZfy.value = item.totalFee
|
|
|
- dataZfy.name = item.insurName
|
|
|
- dataZfy.unit = '元'
|
|
|
- pieZfy.push(dataZfy)
|
|
|
- }
|
|
|
- })
|
|
|
- barUtilsTwo(zfyDst, nameText + barTitles[0], echartsXdata, zfy, barTitles[0], yAxisName, tipUnit)
|
|
|
- barUtilsTwo(zjjDst, nameText + barTitles[1], echartsXdata, zjj, barTitles[1], yAxisName, tipUnit)
|
|
|
- barUtilsTwo(ypfDst, nameText + barTitles[2], echartsXdata, ypf, barTitles[2], yAxisName, tipUnit)
|
|
|
- barUtilsTwo(clfDst, nameText + barTitles[3], echartsXdata, clf, barTitles[3], yAxisName, tipUnit)
|
|
|
-
|
|
|
- pieUtilsOne(rcpie, '住院人次', pieRc)
|
|
|
- pieUtilsOne(zytsPie, '住院天数', pieZyts)
|
|
|
- pieUtilsOne(zfyPie, '总费用', pieZfy)
|
|
|
- }
|
|
|
+ })
|
|
|
+ barUtilsTwo(zfyDst, nameText + barTitles[0], echartsXdata, zfy, barTitles[0], yAxisName, tipUnit)
|
|
|
+ barUtilsTwo(zjjDst, nameText + barTitles[1], echartsXdata, zjj, barTitles[1], yAxisName, tipUnit)
|
|
|
+ barUtilsTwo(ypfDst, nameText + barTitles[2], echartsXdata, ypf, barTitles[2], yAxisName, tipUnit)
|
|
|
+ barUtilsTwo(clfDst, nameText + barTitles[3], echartsXdata, clf, barTitles[3], yAxisName, tipUnit)
|
|
|
+
|
|
|
+ pieUtilsOne(rcpie, '住院人次', pieRc)
|
|
|
+ pieUtilsOne(zytsPie, '住院天数', pieZyts)
|
|
|
+ pieUtilsOne(zfyPie, '总费用', pieZfy)
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
const handleClick = (tab, event) => {
|
|
@@ -713,20 +662,20 @@ export default {
|
|
|
|
|
|
if (setlCondition.selectType === 'first') {
|
|
|
selectYbStatInfo(setlCondition)
|
|
|
- .then((res) => {
|
|
|
- setlinfos.value = res
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setlinfos.value = []
|
|
|
- })
|
|
|
+ .then((res) => {
|
|
|
+ setlinfos.value = res
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setlinfos.value = []
|
|
|
+ })
|
|
|
} else {
|
|
|
selectYbStatRatio(setlCondition)
|
|
|
- .then((res) => {
|
|
|
- setlinfos.value = res
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- setlinfos.value = []
|
|
|
- })
|
|
|
+ .then((res) => {
|
|
|
+ setlinfos.value = res
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ setlinfos.value = []
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -814,7 +763,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
const getSummaries1 = (param) => {
|
|
|
- const {columns, data} = param
|
|
|
+ const { columns, data } = param
|
|
|
const sums = []
|
|
|
// 住院人次下标
|
|
|
let psnCountIndex = 0
|
|
@@ -1042,25 +991,25 @@ export default {
|
|
|
inputPattern: /\S/,
|
|
|
inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
|
|
|
})
|
|
|
- .then(({value}) => {
|
|
|
- const data = {
|
|
|
- param: {
|
|
|
- startTime: setlCondition.startTime,
|
|
|
- endTime: setlCondition.endTime,
|
|
|
- setlType: setlCondition.setlType,
|
|
|
- insurType: setlCondition.insurType,
|
|
|
- selectType: setlCondition.selectType,
|
|
|
- exportName: exportName,
|
|
|
- },
|
|
|
- url: '/ybQuery/exportYbStatRatioExcel',
|
|
|
- fileName: value + '.xlsx',
|
|
|
- }
|
|
|
- setTimeout(() => {
|
|
|
- downloadExcel(data)
|
|
|
- }, 500)
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- })
|
|
|
+ .then(({ value }) => {
|
|
|
+ const data = {
|
|
|
+ param: {
|
|
|
+ startTime: setlCondition.startTime,
|
|
|
+ endTime: setlCondition.endTime,
|
|
|
+ setlType: setlCondition.setlType,
|
|
|
+ insurType: setlCondition.insurType,
|
|
|
+ selectType: setlCondition.selectType,
|
|
|
+ exportName: exportName,
|
|
|
+ },
|
|
|
+ url: '/ybQuery/exportYbStatRatioExcel',
|
|
|
+ fileName: value + '.xlsx',
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ downloadExcel(data)
|
|
|
+ }, 500)
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
} else {
|
|
|
const setlTypeName = filterSetlTypeName()
|
|
|
const exportName = year + setlTypeName + '环比'
|
|
@@ -1078,25 +1027,25 @@ export default {
|
|
|
inputPattern: /\S/,
|
|
|
inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
|
|
|
})
|
|
|
- .then(({value}) => {
|
|
|
- const data = {
|
|
|
- param: {
|
|
|
- startTime: setlCondition.startTime,
|
|
|
- endTime: setlCondition.endTime,
|
|
|
- setlType: setlCondition.setlType,
|
|
|
- insurType: setlCondition.insurType,
|
|
|
- selectType: setlCondition.selectType,
|
|
|
- exportName: exportName,
|
|
|
- },
|
|
|
- url: '/ybQuery/exportYbStatRatioExcel',
|
|
|
- fileName: value + '.xlsx',
|
|
|
- }
|
|
|
- setTimeout(() => {
|
|
|
- downloadExcel(data)
|
|
|
- }, 500)
|
|
|
- })
|
|
|
- .catch(() => {
|
|
|
- })
|
|
|
+ .then(({ value }) => {
|
|
|
+ const data = {
|
|
|
+ param: {
|
|
|
+ startTime: setlCondition.startTime,
|
|
|
+ endTime: setlCondition.endTime,
|
|
|
+ setlType: setlCondition.setlType,
|
|
|
+ insurType: setlCondition.insurType,
|
|
|
+ selectType: setlCondition.selectType,
|
|
|
+ exportName: exportName,
|
|
|
+ },
|
|
|
+ url: '/ybQuery/exportYbStatRatioExcel',
|
|
|
+ fileName: value + '.xlsx',
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ downloadExcel(data)
|
|
|
+ }, 500)
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1106,18 +1055,18 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
this.$confirm('确定要提交表单吗?')
|
|
|
- .then((_) => {
|
|
|
- this.loading = true
|
|
|
- this.timer = setTimeout(() => {
|
|
|
- done()
|
|
|
- // 动画关闭需要一定的时间
|
|
|
- setTimeout(() => {
|
|
|
- this.loading = false
|
|
|
- }, 400)
|
|
|
- }, 2000)
|
|
|
- })
|
|
|
- .catch((_) => {
|
|
|
- })
|
|
|
+ .then((_) => {
|
|
|
+ this.loading = true
|
|
|
+ this.timer = setTimeout(() => {
|
|
|
+ done()
|
|
|
+ // 动画关闭需要一定的时间
|
|
|
+ setTimeout(() => {
|
|
|
+ this.loading = false
|
|
|
+ }, 400)
|
|
|
+ }, 2000)
|
|
|
+ })
|
|
|
+ .catch((_) => {
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const cancelForm = () => {
|
|
@@ -1132,6 +1081,47 @@ export default {
|
|
|
deptNo.value = ''
|
|
|
})
|
|
|
|
|
|
+ const exportTreeRs = () => {
|
|
|
+ let year = setlCondition.startTime.substr(0, 4) + '年'
|
|
|
+ const setlTypeName = filterSetlTypeName()
|
|
|
+ const exportName = year + setlTypeName + '人数'
|
|
|
+ if (treeData.value.length <= 0) {
|
|
|
+ ElMessage({
|
|
|
+ message: '没有可以导出的数据!',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ ElMessageBox.prompt('导出文件名字', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ inputPattern: /\S/,
|
|
|
+ inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
|
|
|
+ })
|
|
|
+ .then(({ value }) => {
|
|
|
+ const data = {
|
|
|
+ param: {
|
|
|
+ startTime: setlCondition.startTime,
|
|
|
+ endTime: setlCondition.endTime,
|
|
|
+ setlType: setlCondition.setlType,
|
|
|
+ selectType: setlCondition.selectType,
|
|
|
+ dept: deptNo.value,
|
|
|
+ doctor: doctorId.value,
|
|
|
+ insurType: insurCode.value,
|
|
|
+ exportName: exportName,
|
|
|
+ },
|
|
|
+ url: '/ybQuery/selectTreeAllData',
|
|
|
+ fileName: value + '.xlsx',
|
|
|
+ }
|
|
|
+ setTimeout(() => {
|
|
|
+ downloadExcel(data)
|
|
|
+ }, 500)
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
return {
|
|
|
tableHeight,
|
|
|
deptNo,
|
|
@@ -1161,6 +1151,7 @@ export default {
|
|
|
showBarChart,
|
|
|
showTreeChart,
|
|
|
selectTreeChart,
|
|
|
+ exportTreeRs,
|
|
|
selectChart,
|
|
|
handleSelect,
|
|
|
querySearchDept,
|