Bläddra i källkod

违规收费分析可以检索已停用的内容。

lighter 3 år sedan
förälder
incheckning
3a89c780a1
1 ändrade filer med 71 tillägg och 66 borttagningar
  1. 71 66
      src/views/reports/IllegalChargesAnalysis.vue

+ 71 - 66
src/views/reports/IllegalChargesAnalysis.vue

@@ -22,19 +22,16 @@
       </div>
     </div>
     <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: 220px"
       ></el-date-picker>
-      &nbsp;&nbsp;医疗类别:
-      <el-select v-model="selectedMedtypes" style="width: 180px" multiple clearable collapse-tags
-                 placeholder="不选默认为全部类别">
+      <el-select v-model="selectedMedtypes" style="width: 150px" 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>
@@ -50,14 +47,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>
@@ -65,8 +62,7 @@
         </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>
@@ -99,14 +95,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>
@@ -131,12 +127,13 @@
             <el-radio v-model="searchMethod" label="alpha">首拼</el-radio>
             <el-radio v-model="searchMethod" label="code">编码</el-radio>
             <el-radio v-model="searchMethod" label="name">名称</el-radio>
+            <el-divider direction="vertical"></el-divider>
+            <el-checkbox v-model="includeDeactivate" style="margin-left: 16px">包含停用内容</el-checkbox>
             &nbsp;)
           </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>
@@ -155,8 +152,7 @@
               </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>
@@ -169,8 +165,7 @@
                 <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>
@@ -195,9 +190,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>
@@ -211,14 +206,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%">
@@ -238,10 +233,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,
@@ -252,14 +247,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 HuanZheZhuYuanTianShu from "../../components/reports/huanZheZhuYuanTianShu.vue";
+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},
+  components: { HuanZheZhuYuanTianShu },
   setup() {
     const medtypes = initMedtypes()
     const selectedMedtypes = ref([])
@@ -270,6 +265,7 @@ export default {
     const templateSearch = ref('')
     const showOrders = ref(false)
     const orders = ref([])
+    const includeDeactivate = ref(false)
     watchEffect(() => {
       if (templateSearch.value !== null) {
         if (tree.value) {
@@ -321,7 +317,7 @@ export default {
         confirmButtonText: '添加',
         cancelButtonText: '取消',
         type: 'warning',
-      }).then(({value}) => {
+      }).then(({ value }) => {
         const parentId = rightClickData.value.id
         const childrenLength = rightClickData.value.children.length
         const template = {
@@ -384,7 +380,7 @@ export default {
       mainCharges: [],
       conflictCharges: [],
       maxChargeNum: null,
-      maxChargeUnit: 'day'
+      maxChargeUnit: 'day',
     })
     const editTemplateRule = () => {
       if (!rightClickData.value.parent) {
@@ -396,7 +392,7 @@ export default {
         })
         return
       }
-      currentTemplate.value = {...rightClickData.value}
+      currentTemplate.value = { ...rightClickData.value }
       showEditRule.value = true
     }
 
@@ -411,6 +407,7 @@ export default {
         const param = {
           method: searchMethod.value,
           content: queryString,
+          includeDeactivate: includeDeactivate.value,
         }
         searchChargeItem(param).then((res) => {
           cb(res)
@@ -451,7 +448,7 @@ export default {
       }
 
       saveTemplateChanges(currentTemplate.value).then(() => {
-        rightClickNode.value.data = {...currentTemplate.value}
+        rightClickNode.value.data = { ...currentTemplate.value }
         ElMessage({
           message: '保存成功。',
           type: 'success',
@@ -638,6 +635,7 @@ export default {
     return {
       medtypes,
       selectedMedtypes,
+      includeDeactivate,
       treeHeight,
       tree,
       templateSearch,
@@ -694,13 +692,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>
@@ -765,4 +763,11 @@ function initMedtypes() {
   font-weight: bold;
   padding: 8px 0;
 }
+
+:deep(.edit-line-title .el-radio__label) {
+  padding-left: 6px;
+}
+:deep(.edit-line-title .el-radio) {
+  margin-right: 16px;
+}
 </style>