|
|
@@ -24,22 +24,24 @@
|
|
|
<el-header height="36px" style="margin-top: 8px">
|
|
|
日期范围:
|
|
|
<el-date-picker
|
|
|
- v-model="dateRange"
|
|
|
- type="daterange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- :shortcuts="shortcuts"
|
|
|
- style="width: 260px"
|
|
|
+ v-model="dateRange"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :shortcuts="shortcuts"
|
|
|
+ style="width: 260px"
|
|
|
></el-date-picker>
|
|
|
医疗类别:
|
|
|
- <el-select v-model="selectedMedtypes" style="width: 180px" multiple clearable collapse-tags placeholder="不选默认为全部类别">
|
|
|
+ <el-select v-model="selectedMedtypes" style="width: 180px" multiple clearable collapse-tags
|
|
|
+ placeholder="不选默认为全部类别">
|
|
|
<el-option v-for="item in medtypes" :key="item.code" :label="item.name" :value="item.code"></el-option>
|
|
|
</el-select>
|
|
|
<el-divider direction="vertical"></el-divider>
|
|
|
<el-button type="primary" icon="el-icon-search" @click="fetchTargetData">检索</el-button>
|
|
|
<el-button type="primary" icon="el-icon-upload" @click="exportExcel">导出Excel</el-button>
|
|
|
<el-button type="success" icon="el-icon-search" @click="queryHuanZheRuYuanJianGe">患者入院间隔</el-button>
|
|
|
+ <huan-zhe-zhu-yuan-tian-shu :date-range="dateRange"></huan-zhe-zhu-yuan-tian-shu>
|
|
|
</el-header>
|
|
|
<el-container>
|
|
|
<el-aside>
|
|
|
@@ -48,14 +50,14 @@
|
|
|
</el-input>
|
|
|
<div style="height: 4px"></div>
|
|
|
<el-tree
|
|
|
- ref="tree"
|
|
|
- :data="templates"
|
|
|
- :props="defaultProps"
|
|
|
- @node-click="handleNodeClick"
|
|
|
- @node-contextmenu="handleNodeRightClick"
|
|
|
- :style="{ height: treeHeight + 'px', overflowY: 'scroll' }"
|
|
|
- :filter-node-method="filterNode"
|
|
|
- highlight-current
|
|
|
+ ref="tree"
|
|
|
+ :data="templates"
|
|
|
+ :props="defaultProps"
|
|
|
+ @node-click="handleNodeClick"
|
|
|
+ @node-contextmenu="handleNodeRightClick"
|
|
|
+ :style="{ height: treeHeight + 'px', overflowY: 'scroll' }"
|
|
|
+ :filter-node-method="filterNode"
|
|
|
+ highlight-current
|
|
|
>
|
|
|
<template #default="{ node }">
|
|
|
<span class="custom-tree-node">{{ node.label }}</span>
|
|
|
@@ -63,7 +65,8 @@
|
|
|
</el-tree>
|
|
|
</el-aside>
|
|
|
<el-main>
|
|
|
- <el-table :data="targetData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" stripe :height="treeHeight">
|
|
|
+ <el-table :data="targetData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" stripe
|
|
|
+ :height="treeHeight">
|
|
|
<el-table-column prop="name" label="姓名" width="50"></el-table-column>
|
|
|
<el-table-column prop="inpatientNo" label="住院号"></el-table-column>
|
|
|
<el-table-column prop="admissTimes" label="次数" width="50"></el-table-column>
|
|
|
@@ -96,14 +99,14 @@
|
|
|
<el-table-column prop="conflictChargeAmount" label="冲突收费数量" v-if="nowAttribute === 1"></el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- @size-change="handleSizeChange"
|
|
|
- @current-change="handleCurrentChange"
|
|
|
- :current-page="currentPage"
|
|
|
- :page-sizes="[15, 30, 45, 70, 100]"
|
|
|
- :page-size="pageSize"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="targetData.length"
|
|
|
- style="margin-top: 5px"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-sizes="[15, 30, 45, 70, 100]"
|
|
|
+ :page-size="pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="targetData.length"
|
|
|
+ style="margin-top: 5px"
|
|
|
></el-pagination>
|
|
|
</el-main>
|
|
|
</el-container>
|
|
|
@@ -132,7 +135,8 @@
|
|
|
</div>
|
|
|
<el-row :gutter="5">
|
|
|
<el-col :span="12">
|
|
|
- <el-autocomplete v-model="mainCharge" :fetch-suggestions="fetchChargeItem" placeholder="请输入内容" clearable @select="handleSelectMainCharge">
|
|
|
+ <el-autocomplete v-model="mainCharge" :fetch-suggestions="fetchChargeItem" placeholder="请输入内容" clearable
|
|
|
+ @select="handleSelectMainCharge">
|
|
|
<template #prepend>收费主体</template>
|
|
|
<template #default="{ item }">
|
|
|
<span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
@@ -151,7 +155,8 @@
|
|
|
</el-table>
|
|
|
</el-col>
|
|
|
<el-col :span="12" v-show="currentTemplate.attribute === 1">
|
|
|
- <el-autocomplete v-model="conflictCharge" :fetch-suggestions="fetchChargeItem" placeholder="请输入内容" clearable @select="handleSelectConflictCharge">
|
|
|
+ <el-autocomplete v-model="conflictCharge" :fetch-suggestions="fetchChargeItem" placeholder="请输入内容"
|
|
|
+ clearable @select="handleSelectConflictCharge">
|
|
|
<template #prepend>冲突收费</template>
|
|
|
<template #default="{ item }">
|
|
|
<span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
|
|
|
@@ -164,7 +169,8 @@
|
|
|
<el-table-column prop="name" label="收费名称"></el-table-column>
|
|
|
<el-table-column label="操作">
|
|
|
<template #default="scope">
|
|
|
- <el-button type="text" icon="el-icon-delete" @click="removeConflictCharge(scope.$index)">删除</el-button>
|
|
|
+ <el-button type="text" icon="el-icon-delete" @click="removeConflictCharge(scope.$index)">删除
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
@@ -189,9 +195,9 @@
|
|
|
<el-dialog v-model="ruYuanJianGeDialog" title="查询入院间隔" width="1200px">
|
|
|
<el-button type="primary" icon="el-icon-upload" @click="exportExcelHuanZhe">导出Excel</el-button>
|
|
|
<el-table
|
|
|
- :data="huoQuHuanZheShuJu.slice((queryHuanZhe.currentPage - 1) * queryHuanZhe.pageSize, queryHuanZhe.currentPage * queryHuanZhe.pageSize)"
|
|
|
- stripe
|
|
|
- :height="treeHeight - 200"
|
|
|
+ :data="huoQuHuanZheShuJu.slice((queryHuanZhe.currentPage - 1) * queryHuanZhe.pageSize, queryHuanZhe.currentPage * queryHuanZhe.pageSize)"
|
|
|
+ stripe
|
|
|
+ :height="treeHeight - 200"
|
|
|
>
|
|
|
<el-table-column label="姓名" prop="name"></el-table-column>
|
|
|
<el-table-column label="住院号" prop="inpatientNo"></el-table-column>
|
|
|
@@ -205,14 +211,14 @@
|
|
|
<el-table-column label="医保类型" prop="responceTypeName"></el-table-column>
|
|
|
</el-table>
|
|
|
<el-pagination
|
|
|
- @size-change="handleSizeChangeHuanZhe"
|
|
|
- @current-change="handleCurrentChangeHuanZhe"
|
|
|
- :current-page="queryHuanZhe.currentPage"
|
|
|
- :page-sizes="[20, 30, 40, 50, 100]"
|
|
|
- :page-size="queryHuanZhe.pageSize"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- :total="huoQuHuanZheShuJu.length"
|
|
|
- style="margin-top: 5px"
|
|
|
+ @size-change="handleSizeChangeHuanZhe"
|
|
|
+ @current-change="handleCurrentChangeHuanZhe"
|
|
|
+ :current-page="queryHuanZhe.currentPage"
|
|
|
+ :page-sizes="[20, 30, 40, 50, 100]"
|
|
|
+ :page-size="queryHuanZhe.pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="huoQuHuanZheShuJu.length"
|
|
|
+ style="margin-top: 5px"
|
|
|
></el-pagination>
|
|
|
</el-dialog>
|
|
|
<el-dialog v-model="showOrders" title="医嘱详情" width="60%">
|
|
|
@@ -232,10 +238,10 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { ref } from 'vue'
|
|
|
+import {ref} from 'vue'
|
|
|
import store from '@/store'
|
|
|
-import { onMounted, watchEffect } from 'vue'
|
|
|
-import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
+import {onMounted, watchEffect} from 'vue'
|
|
|
+import {ElMessage, ElMessageBox} from 'element-plus'
|
|
|
import {
|
|
|
analyzeTargetData,
|
|
|
deleteChosenTemplate,
|
|
|
@@ -246,11 +252,14 @@ import {
|
|
|
searchChargeItem,
|
|
|
selectOrderPair,
|
|
|
} from '@/api/reports/illegal-charges-analysis'
|
|
|
-import { shortcuts } from '@/data/shortcuts'
|
|
|
-import { getGreatestRole } from '@/utils/permission'
|
|
|
-import { formatDate, getDateRangeFormatDate } from '@/utils/date'
|
|
|
-import { createWorkSheet, writeExcelFile } from '@/utils/excel'
|
|
|
+import {shortcuts} from '@/data/shortcuts'
|
|
|
+import {getGreatestRole} from '@/utils/permission'
|
|
|
+import {formatDate, getDateRangeFormatDate} from '@/utils/date'
|
|
|
+import {createWorkSheet, writeExcelFile} from '@/utils/excel'
|
|
|
+import HuanZheZhuYuanTianShu from "../../components/reports/huanZheZhuYuanTianShu.vue";
|
|
|
+
|
|
|
export default {
|
|
|
+ components: {HuanZheZhuYuanTianShu},
|
|
|
setup() {
|
|
|
const medtypes = initMedtypes()
|
|
|
const selectedMedtypes = ref([])
|
|
|
@@ -312,7 +321,7 @@ export default {
|
|
|
confirmButtonText: '添加',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning',
|
|
|
- }).then(({ value }) => {
|
|
|
+ }).then(({value}) => {
|
|
|
const parentId = rightClickData.value.id
|
|
|
const childrenLength = rightClickData.value.children.length
|
|
|
const template = {
|
|
|
@@ -370,7 +379,13 @@ export default {
|
|
|
}
|
|
|
|
|
|
const showEditRule = ref(false)
|
|
|
- const currentTemplate = ref({ children: [], mainCharges: [], conflictCharges: [], maxChargeNum: null, maxChargeUnit: 'day' })
|
|
|
+ const currentTemplate = ref({
|
|
|
+ children: [],
|
|
|
+ mainCharges: [],
|
|
|
+ conflictCharges: [],
|
|
|
+ maxChargeNum: null,
|
|
|
+ maxChargeUnit: 'day'
|
|
|
+ })
|
|
|
const editTemplateRule = () => {
|
|
|
if (!rightClickData.value.parent) {
|
|
|
ElMessage({
|
|
|
@@ -381,7 +396,7 @@ export default {
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- currentTemplate.value = { ...rightClickData.value }
|
|
|
+ currentTemplate.value = {...rightClickData.value}
|
|
|
showEditRule.value = true
|
|
|
}
|
|
|
|
|
|
@@ -436,7 +451,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
saveTemplateChanges(currentTemplate.value).then(() => {
|
|
|
- rightClickNode.value.data = { ...currentTemplate.value }
|
|
|
+ rightClickNode.value.data = {...currentTemplate.value}
|
|
|
ElMessage({
|
|
|
message: '保存成功。',
|
|
|
type: 'success',
|
|
|
@@ -679,13 +694,13 @@ function initMedtypes() {
|
|
|
// { code: '04', name: '新农合' },
|
|
|
// { code: '09', name: '市城职医保' },
|
|
|
// { code: '10', name: '省医保-异地' },
|
|
|
- { code: '2101', name: '普通住院' },
|
|
|
- { code: '2102', name: '单病种住院' },
|
|
|
- { code: '2106', name: '生育平产(居民)' },
|
|
|
- { code: '2107', name: '生育剖宫产(居民)' },
|
|
|
- { code: '22', name: '外伤住院' },
|
|
|
- { code: '52', name: '生育住院(职工)' },
|
|
|
- { code: '42', name: '工伤住院' },
|
|
|
+ {code: '2101', name: '普通住院'},
|
|
|
+ {code: '2102', name: '单病种住院'},
|
|
|
+ {code: '2106', name: '生育平产(居民)'},
|
|
|
+ {code: '2107', name: '生育剖宫产(居民)'},
|
|
|
+ {code: '22', name: '外伤住院'},
|
|
|
+ {code: '52', name: '生育住院(职工)'},
|
|
|
+ {code: '42', name: '工伤住院'},
|
|
|
]
|
|
|
}
|
|
|
</script>
|
|
|
@@ -694,15 +709,18 @@ function initMedtypes() {
|
|
|
:deep() .el-tree-node {
|
|
|
white-space: normal;
|
|
|
}
|
|
|
+
|
|
|
:deep() .el-tree-node__content {
|
|
|
padding: 8px 4px 0 0;
|
|
|
height: 100%;
|
|
|
align-items: start;
|
|
|
}
|
|
|
+
|
|
|
.node-label {
|
|
|
margin: 5px 0;
|
|
|
width: 220px;
|
|
|
}
|
|
|
+
|
|
|
.overlay {
|
|
|
position: absolute;
|
|
|
top: 0;
|
|
|
@@ -712,6 +730,7 @@ function initMedtypes() {
|
|
|
z-index: 3000;
|
|
|
background-color: transparent;
|
|
|
}
|
|
|
+
|
|
|
.menu-box {
|
|
|
position: fixed;
|
|
|
border: 1px solid #409eff;
|
|
|
@@ -719,13 +738,16 @@ function initMedtypes() {
|
|
|
background-color: white;
|
|
|
width: 120px;
|
|
|
}
|
|
|
+
|
|
|
.menu-item {
|
|
|
padding: 8px;
|
|
|
cursor: pointer;
|
|
|
}
|
|
|
+
|
|
|
.menu-item:hover {
|
|
|
color: #409eff;
|
|
|
}
|
|
|
+
|
|
|
.menu-title {
|
|
|
padding: 4px;
|
|
|
background-color: #409eff;
|
|
|
@@ -737,6 +759,7 @@ function initMedtypes() {
|
|
|
white-space: nowrap;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
+
|
|
|
.edit-line-title {
|
|
|
font-size: 14px;
|
|
|
font-weight: bold;
|