Procházet zdrojové kódy

结算单上传时,数据没有变化不能保存,显示申请备注。

xiaochan před 3 roky
rodič
revize
b701b2ccc0

+ 140 - 100
src/components/si-sheet-upload/JieSuanDanXiangQing.vue

@@ -6,12 +6,14 @@
           <el-button type="info" @click="shenHeClick">审核信息</el-button>
           <el-button size="small" type="primary" @click="shuJuDuiBi">数据对比</el-button>
           <el-button size="small" type="success" @click="baoCunXiuGai">保存修改</el-button>
-          <bei-zhu v-if="beiZhuRef" :data="baoCunXiuGaiData" @close="beiZhuRef = false" @baoCunHouGuanBi="baoCunHouGuanBi"></bei-zhu>
+          <bei-zhu v-if="beiZhuRef" :data="baoCunXiuGaiData" @baoCunHouGuanBi="baoCunHouGuanBi"
+                   @close="beiZhuRef = false"></bei-zhu>
         </template>
         <el-descriptions-item label="姓名">
           {{ setlinfo.name }}
           <el-button @click="feiYongDrawer">{{ setlinfo.outDeptName }}</el-button>
-          <ke-shi-fei-yong v-if="keShiFeiYongRef" @close="keShiFeiYongRef = false" :patNo="setlinfo.inpatientNo" :times="setlinfo.admissTimes"></ke-shi-fei-yong>
+          <ke-shi-fei-yong v-if="keShiFeiYongRef" :patNo="setlinfo.inpatientNo" :times="setlinfo.admissTimes"
+                           @close="keShiFeiYongRef = false"></ke-shi-fei-yong>
         </el-descriptions-item>
         <el-descriptions-item label="性别">
           {{ cptSex(setlinfo.sex) }}
@@ -20,10 +22,10 @@
           {{ setlinfo.inpatientNo }}
         </el-descriptions-item>
         <el-descriptions-item label="医保身份">
-          <el-tag type="success" effect="dark">
+          <el-tag effect="dark" type="success">
             {{ setlinfo.responceTypeName }}
           </el-tag>
-          <el-tag type="warning" effect="dark">
+          <el-tag effect="dark" type="warning">
             {{ setlinfo.insutypeName }}
           </el-tag>
         </el-descriptions-item>
@@ -56,7 +58,8 @@
         </el-descriptions-item>
         <el-descriptions-item label="申报类型">
           <el-select v-model="setlinfo.decType" clearable filterable style="width: 150px">
-            <el-option v-for="item in decTypes" :key="item.code" :disabled="item.dis" :label="item.name" :value="item.code">
+            <el-option v-for="item in decTypes" :key="item.code" :disabled="item.dis" :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>
@@ -72,7 +75,8 @@
       <el-tag size="small">住院诊断信息</el-tag>
       <el-button icon="el-icon-circle-plus" type="success" @click="addZhenDuanClick">新增诊断</el-button>
       入院病情: 1.有,2.临床未确定,3.情况不明,4.无
-      <el-table id="sortable-diseinfo" :data="diseinfo" :height="store.state.app.windowSize.h / 2.5" highlight-current-row row-key="id" stripe>
+      <el-table id="sortable-diseinfo" :data="diseinfo" :height="store.state.app.windowSize.h / 2.5"
+                highlight-current-row row-key="id" stripe>
         <el-table-column width="50">
           <template #default>
             <el-button class="shangxiatuodong"><i class="iconfont icon-shangxiatuodong"></i></el-button>
@@ -95,19 +99,22 @@
           <template #default="scope">
             {{ scope.row.disDiagNo }}
             &nbsp;&nbsp;&nbsp;
-            <el-button v-if="scope.row.disDiagNo !== 1" type="primary" @click="sheZhiZhuZhenDuan(scope.$index, scope.row.disDiagNo)"> 设为主诊断 </el-button>
+            <el-button v-if="scope.row.disDiagNo !== 1" type="primary"
+                       @click="sheZhiZhuZhenDuan(scope.$index, scope.row.disDiagNo)"> 设为主诊断
+            </el-button>
           </template>
         </el-table-column>
         <el-table-column label="删除">
           <template #default="scope">
-            <el-button icon="el-icon-edit" type="warning" @click="xiuGaiZhenDuanClick(scope.$index, scope.row)">修改 </el-button>
+            <el-button icon="el-icon-edit" type="warning" @click="xiuGaiZhenDuanClick(scope.$index, scope.row)">修改
+            </el-button>
             <el-popconfirm
-              cancel-button-text="取消"
-              confirm-button-text="确认"
-              icon="el-icon-info"
-              iconColor="#F56C6C"
-              title="是否删除该诊断"
-              @confirm="delZhenDuan(scope.$index, scope.row.disDiagNo)"
+                cancel-button-text="取消"
+                confirm-button-text="确认"
+                icon="el-icon-info"
+                iconColor="#F56C6C"
+                title="是否删除该诊断"
+                @confirm="delZhenDuan(scope.$index, scope.row.disDiagNo)"
             >
               <template #reference>
                 <el-button icon="el-icon-delete" size="mini" type="danger">删除</el-button>
@@ -118,7 +125,8 @@
       </el-table>
       <el-tag size="small">手术操作信息</el-tag>
       <el-button icon="el-icon-circle-plus" type="success" @click="tianJiaXiuGaiShouShu(-1)">新增手术</el-button>
-      <el-table id="sortable-oprninfo" :data="oprninfo" :height="store.state.app.windowSize.h / 2.5" highlight-current-row row-key="id" stripe>
+      <el-table id="sortable-oprninfo" :data="oprninfo" :height="store.state.app.windowSize.h / 2.5"
+                highlight-current-row row-key="id" stripe>
         <el-table-column width="50">
           <template #default>
             <el-button class="shangxiatuodong"><i class="iconfont icon-shangxiatuodong"></i></el-button>
@@ -148,7 +156,8 @@
         <el-table-column label="操作" width="210">
           <template #default="scope">
             <el-button icon="el-icon-edit" type="warning" @click="tianJiaXiuGaiShouShu(scope.$index)">修改</el-button>
-            <el-popconfirm cancel-button-text="取消" confirm-button-text="确认" icon="el-icon-info" iconColor="#F56C6C" title="是否删除该手术" @confirm="delShouShu(scope.$index)">
+            <el-popconfirm cancel-button-text="取消" confirm-button-text="确认" icon="el-icon-info" iconColor="#F56C6C"
+                           title="是否删除该手术" @confirm="delShouShu(scope.$index)">
               <template #reference>
                 <el-button icon="el-icon-delete" size="mini" type="danger">删除</el-button>
               </template>
@@ -165,7 +174,8 @@
           <span>{{ item.name }}</span>
         </el-option>
       </el-select>
-      <el-input v-model="zhenDuanQuery.content" clearable style="width: 120px" @keyup.enter="zhenDuanChaXunClick"></el-input>
+      <el-input v-model="zhenDuanQuery.content" clearable style="width: 120px"
+                @keyup.enter="zhenDuanChaXunClick"></el-input>
       <el-button icon="el-icon-search" type="primary" @click="zhenDuanChaXunClick">查询</el-button>
       诊断类别:
       <el-select v-model="lingShiZhenDuan.siDiagType" style="width: 120px">
@@ -190,26 +200,26 @@
         <el-table-column label="操作">
           <template #default="scope">
             <el-popconfirm
-              v-if="addZhenDuanFlag"
-              cancel-button-text="取消"
-              confirm-button-text="确认"
-              icon="el-icon-info"
-              iconColor="#67C23A"
-              title="是否添加该诊断"
-              @confirm="addZhenDuan(scope.row)"
+                v-if="addZhenDuanFlag"
+                cancel-button-text="取消"
+                confirm-button-text="确认"
+                icon="el-icon-info"
+                iconColor="#67C23A"
+                title="是否添加该诊断"
+                @confirm="addZhenDuan(scope.row)"
             >
               <template #reference>
                 <el-button icon="el-icon-circle-plus" size="mini" type="success">新增</el-button>
               </template>
             </el-popconfirm>
             <el-popconfirm
-              v-else
-              cancel-button-text="取消"
-              confirm-button-text="确认"
-              icon="el-icon-info"
-              iconColor="#E6A23C"
-              title="是否修改为该诊断"
-              @confirm="xuanZheZhenDuan(scope.row)"
+                v-else
+                cancel-button-text="取消"
+                confirm-button-text="确认"
+                icon="el-icon-info"
+                iconColor="#E6A23C"
+                title="是否修改为该诊断"
+                @confirm="xuanZheZhenDuan(scope.row)"
             >
               <template #reference>
                 <el-button icon="el-icon-edit" size="mini" type="warning">修改</el-button>
@@ -218,8 +228,9 @@
           </template>
         </el-table-column>
       </el-table>
-      <br />
-      <el-button :disabled="zhenDuanQuery.page === 1" @click="pageZhenDuanChaXun((zhenDuanQuery.page -= 1))">上一页 </el-button>
+      <br/>
+      <el-button :disabled="zhenDuanQuery.page === 1" @click="pageZhenDuanChaXun((zhenDuanQuery.page -= 1))">上一页
+      </el-button>
       <el-button @click="pageZhenDuanChaXun((zhenDuanQuery.page += 1))">下一页</el-button>
     </el-dialog>
     <!--    这里都是手术的了  -->
@@ -288,37 +299,47 @@
           </template>
         </el-table-column>
       </el-table>
-      <el-pagination :total="queryShouShuCodeData.total" layout="total,  prev, pager, next" @current-change="shouShuCurrentPage"> </el-pagination>
+      <el-pagination :total="queryShouShuCodeData.total" layout="total,  prev, pager, next"
+                     @current-change="shouShuCurrentPage"></el-pagination>
     </el-dialog>
-    <shen-he-xin-xi v-if="shenHeRef" @close="shenHeRef = false" :data="props.data.shenHeXinXi"></shen-he-xin-xi>
+    <shen-he-xin-xi v-if="shenHeRef" :data="props.data.shenHeXinXi" @close="shenHeRef = false"></shen-he-xin-xi>
     <ShuJuDuiBi
-      v-if="shuJuDuiBiDialogRef"
-      @close="shuJuDuiBiDialogRef = false"
-      :new-bat="props.data.newBatjBa4"
-      :newYbZyDisDiag="props.data.newYbZyDisDiag"
-      :oldBat="props.data.batjBa4"
-      :oldYbZyDisDiag="props.data.ybZyDisDiag"
+        v-if="shuJuDuiBiDialogRef"
+        :new-bat="props.data.newBatjBa4"
+        :newYbZyDisDiag="props.data.newYbZyDisDiag"
+        :oldBat="props.data.batjBa4"
+        :oldYbZyDisDiag="props.data.ybZyDisDiag"
+        @close="shuJuDuiBiDialogRef = false"
     ></ShuJuDuiBi>
   </el-container>
 </template>
 
-<script setup name="JieSuanDanXiangQing">
+<script name="JieSuanDanXiangQing" setup>
 import store from '@/store'
-import { cptSex } from '../../utils/computed'
-import { searchYbDiag } from '../../api/yibao/dictionary'
-import { decTypes, operations } from '../../data'
-import { clone } from '../../utils/clone'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { getRenYuan } from '../../api/public-api'
-import { setlUploadAudit, shouShuBianMa, upldSetlList } from '../../api/medical-insurance/si-setl-upload'
-import { formatDatetime } from '../../utils/date'
-import { listIsBlank, stringIsBlank, stringNotBlank } from '../../utils/blank-utils'
-import { getAdmissCond, getsiDiagTypeName, maZuiFangShis, maZuiName, qieKouName, qks, shenHeQuanXian } from './jieSuanDanXiuGai'
+import {cptSex} from '@/utils/computed'
+import {searchYbDiag} from '@/api/yibao/dictionary'
+import {decTypes, operations} from '../../data'
+import {clone} from '@/utils/clone'
+import {ElMessage, ElMessageBox} from 'element-plus'
+import {getRenYuan} from '@/api/public-api'
+import {setlUploadAudit, shouShuBianMa, upldSetlList} from '@/api/medical-insurance/si-setl-upload'
+import {formatDatetime} from '@/utils/date'
+import {listIsBlank, stringIsBlank, stringNotBlank} from '@/utils/blank-utils'
+import {
+  getAdmissCond,
+  getsiDiagTypeName,
+  maZuiFangShis,
+  maZuiName,
+  qieKouName,
+  qks,
+  shenHeQuanXian
+} from './jieSuanDanXiuGai'
 import ShenHeXinXi from './ShenHeXinXi.vue'
 import KeShiFeiYong from './KeShiFeiYong.vue'
 import BeiZhu from './BeiZhu.vue'
 import Sortable from 'sortablejs'
 import ShuJuDuiBi from './ShuJuDuiBi.vue'
+import {ArrayIsEqual} from "@/utils/list-utlis";
 
 const props = defineProps({
   data: {},
@@ -480,12 +501,12 @@ const formShouShuCz = ref({})
 formShouShuCz.value = clone(formShouShu.value)
 // 限制
 const shouShuRules = ref({
-  ssmc: [{ required: true, message: '该项不能为空', trigger: 'blur' }],
-  ssrq: [{ required: true, message: '该项不能为空', trigger: 'blur' }],
-  ssjb: [{ required: true, message: '该项不能为空', trigger: 'blur' }],
-  ssbm: [{ required: true, message: '该项不能为空', trigger: 'blur' }],
-  ssysName: [{ required: true, message: '该项不能为空', trigger: 'blur' }],
-  qkName: [{ required: true, message: '该项不能为空', trigger: 'blur' }],
+  ssmc: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  ssrq: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  ssjb: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  ssbm: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  ssysName: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  qkName: [{required: true, message: '该项不能为空', trigger: 'blur'}],
 })
 
 const oprninfoIndex = ref(-1)
@@ -593,7 +614,8 @@ const addShouShuClick = async () => {
     setTimeout(() => {
       sortableOprninfo()
     }, 100)
-  } catch (e) {}
+  } catch (e) {
+  }
 }
 
 const delShouShu = (index) => {
@@ -613,6 +635,9 @@ const baoCunHouGuanBi = () => {
   ctx.emit('shua-xin')
 }
 const baoCunXiuGai = () => {
+  if (ArrayIsEqual(oldOprninfo, oprninfo.value) || ArrayIsEqual(oldDiseinfo, diseinfo.value)) {
+    return ElMessage.error('数据无变化请勿点击。')
+  }
   if (setlinfo.value.operation === '1' || setlinfo.value.operation === '2' || setlinfo.value.operation === '3') {
     if (listIsBlank(oprninfo.value)) {
       return ElMessage.error('选择治疗类型为手术的,至少要有一个手术。')
@@ -662,10 +687,11 @@ const shenHeTongGuoClick = () => {
       auditName: name,
     }
     setlUploadAudit(data)
-      .then((res) => {
-        guanBi()
-      })
-      .catch((e) => {})
+        .then((res) => {
+          guanBi()
+        })
+        .catch((e) => {
+        })
   })
 }
 
@@ -681,14 +707,15 @@ const shenHeTongGuoShangChuanClick = () => {
       auditName: name,
     }
     setlUploadAudit(data)
-      .then((res) => {
-        let data = []
-        data.push(props.data.upload)
-        upldSetlList(data).then((res) => {
-          guanBi()
+        .then((res) => {
+          let data = []
+          data.push(props.data.upload)
+          upldSetlList(data).then((res) => {
+            guanBi()
+          })
+        })
+        .catch((e) => {
         })
-      })
-      .catch((e) => {})
   })
 }
 
@@ -700,22 +727,23 @@ const shenHeBoHuiClick = () => {
     inputPattern: /\S/,
     inputErrorMessage: '审核备注不能为空且不得超过 100 字 (∩•̀ω•́)⊃-*⋆',
   })
-    .then(({ value }) => {
-      if (value.length > 100) {
-        return ElMessage.error('驳回原因超过 100 字。')
-      }
-      const data = {
-        id: props.data.shenHeXinXi.id,
-        auditFlag: 2,
-        auditRemark: value,
-        auditStaff: code,
-        auditName: name,
-      }
-      setlUploadAudit(data).then((res) => {
-        guanBi()
+      .then(({value}) => {
+        if (value.length > 100) {
+          return ElMessage.error('驳回原因超过 100 字。')
+        }
+        const data = {
+          id: props.data.shenHeXinXi.id,
+          auditFlag: 2,
+          auditRemark: value,
+          auditStaff: code,
+          auditName: name,
+        }
+        setlUploadAudit(data).then((res) => {
+          guanBi()
+        })
+      })
+      .catch((e) => {
       })
-    })
-    .catch((e) => {})
 }
 
 function guanBi() {
@@ -742,12 +770,21 @@ const feiYongDrawer = () => {
 }
 /* 获取患者各个科室的费用结束 */
 
+// 原来的诊断 用来判断是否数据有变化
+let oldDiseinfo = $ref([])
+// 原来的手术
+let oldOprninfo = $ref([])
+
 const init = () => {
   setlinfo.value = clone(props.data)
   // 如果新的没有就用老的
   if (stringNotBlank(props.data.shenHeXinXi.id)) {
     diseinfo.value = clone(props.data.newYbZyDisDiag)
     oprninfo.value = clone(props.data.newBatjBa4)
+
+    oldDiseinfo = props.data.newYbZyDisDiag
+    oldOprninfo = props.data.newBatjBa4
+
     if (stringNotBlank(props.data.shenHeXinXi.reqRemark) && props.data.shenHeXinXi.auditFlag === 0) {
       setTimeout(() => {
         ElMessageBox.alert(props.data.shenHeXinXi.reqRemark, '申请备注', {
@@ -755,12 +792,14 @@ const init = () => {
         })
       }, 1000)
     }
-
-    //初始化拖拽表格
   } else {
     diseinfo.value = clone(props.data.ybZyDisDiag)
     oprninfo.value = clone(props.data.batjBa4)
+
+    oldDiseinfo = props.data.ybZyDisDiag
+    oldOprninfo = props.data.batjBa4
   }
+  //初始化拖拽表格
   if (diseinfo.value.length > 0) {
     setTimeout(() => {
       sortableDiseinfo()
@@ -771,6 +810,7 @@ const init = () => {
       sortableOprninfo()
     }, 100)
   }
+
   diagnosticQuery.value.medType = props.data.medType
 }
 
@@ -783,7 +823,7 @@ function sortableDiseinfo() {
   const ops = {
     animation: 200, //动画时长
     handle: '.shangxiatuodong', // 拖动的 class
-    onEnd({ newIndex, oldIndex }) {
+    onEnd({newIndex, oldIndex}) {
       const currRow = diseinfo.value.splice(oldIndex, 1)[0]
       diseinfo.value.splice(newIndex, 0, currRow)
       diseinfo.value.forEach((item, index) => {
@@ -799,7 +839,7 @@ function sortableOprninfo() {
   const ops = {
     animation: 200, //动画时长
     handle: '.shangxiatuodong',
-    onEnd({ newIndex, oldIndex }) {
+    onEnd({newIndex, oldIndex}) {
       const currRow = oprninfo.value.splice(oldIndex, 1)[0]
       oprninfo.value.splice(newIndex, 0, currRow)
       oprninfo.value.forEach((item, index) => {
@@ -816,23 +856,23 @@ onMounted(() => {
 })
 
 const methods = [
-  { code: 'alpha', name: '拼音' },
-  { code: 'code', name: '编码' },
-  { code: 'name', name: '名称' },
+  {code: 'alpha', name: '拼音'},
+  {code: 'code', name: '编码'},
+  {code: 'name', name: '名称'},
 ]
 
 const admissCondData = [
-  { code: 1, name: '有' },
-  { code: 2, name: '临床未确定' },
-  { code: 3, name: '情况不明' },
-  { code: 4, name: '无' },
+  {code: 1, name: '有'},
+  {code: 2, name: '临床未确定'},
+  {code: 3, name: '情况不明'},
+  {code: 4, name: '无'},
 ]
 
 const siDiagTypes = [
-  { code: '1', name: '西医主要诊断' },
-  { code: '2', name: '西医其他诊断' },
-  { code: '3', name: '中医主要诊断' },
-  { code: '4', name: '中医其他诊断' },
+  {code: '1', name: '西医主要诊断'},
+  {code: '2', name: '西医其他诊断'},
+  {code: '3', name: '中医主要诊断'},
+  {code: '4', name: '中医其他诊断'},
 ]
 </script>
 

+ 4 - 0
src/utils/list-utlis.js

@@ -0,0 +1,4 @@
+export function ArrayIsEqual(arr1, arr2) {
+    return JSON.stringify(arr1) === JSON.stringify(arr2);
+}
+

+ 163 - 124
src/views/medical-insurance/allpatient/SetSheetUpload.vue

@@ -1,92 +1,102 @@
 <template>
   <el-container>
     <el-header style="margin-top: 10px">
-      <el-button @click="queryTermDialog = true" type="primary" icon="el-icon-search">检索条件</el-button>
+      <el-button icon="el-icon-search" type="primary" @click="queryTermDialog = true">检索条件</el-button>
       <el-divider direction="vertical"></el-divider>
-      <el-button icon="el-icon-upload" type="success" @click="upldAllList" :disabled="queryTerm.list.length === 0" v-if="shenHeQuanXian()"> 选中上传 </el-button>
-      <el-button icon="el-icon-upload" type="warning" @click="upldSelections" :disabled="queryTerm.list.length === 0" v-if="shenHeQuanXian()"> 全部上传 </el-button>
-      <el-button icon="el-icon-download" type="success" @click="exportExcel" :disabled="queryTerm.list.length === 0" v-if="shenHeQuanXian()">导出 Execl </el-button>
-      <el-button type="primary" icon="el-icon-refresh-left" @click="shuaXin">刷新数据 </el-button>
-      <el-button type="success" @click="xianZhiShiJianClick" v-if="shenHeQuanXian()">设置限制时间</el-button>
+      <el-button v-if="shenHeQuanXian()" :disabled="queryTerm.list.length === 0" icon="el-icon-upload" type="success"
+                 @click="upldAllList"> 选中上传
+      </el-button>
+      <el-button v-if="shenHeQuanXian()" :disabled="queryTerm.list.length === 0" icon="el-icon-upload" type="warning"
+                 @click="upldSelections"> 全部上传
+      </el-button>
+      <el-button v-if="shenHeQuanXian()" :disabled="queryTerm.list.length === 0" icon="el-icon-download" type="success"
+                 @click="exportExcel">导出 Execl
+      </el-button>
+      <el-button icon="el-icon-refresh-left" type="primary" @click="shuaXin">刷新数据</el-button>
+      <el-button v-if="shenHeQuanXian()" type="success" @click="xianZhiShiJianClick">设置限制时间</el-button>
       <xian-zhi-shi-jian ref="xianZhiShiJian"></xian-zhi-shi-jian>
     </el-header>
     <el-main>
-      <el-table :height="store.state.app.windowSize.h / 1.2" :data="queryTerm.list" border highlight-current-row stripe @selection-change="handleSelectionChange">
+      <el-table ref="tableRef" :data="queryTerm.list" :height="store.state.app.windowSize.h / 1.2" border
+                highlight-current-row
+                stripe @selection-change="handleSelectionChange">
         <el-table-column fixed type="selection" width="35"></el-table-column>
-        <el-table-column fixed prop="psnName" label="姓名">
+        <el-table-column fixed label="姓名" prop="psnName">
           <template #default="scope">
             <el-button type="text" @click="jieSuanDanXinXi(scope.row)">
               <span v-html="auditName(scope.row)"></span>
             </el-button>
           </template>
         </el-table-column>
-        <el-table-column prop="outDeptName" label="出院科室">
+        <el-table-column label="出院科室" prop="outDeptName">
           <template #default="scope">
             <el-button
-              v-if="scope.row.outDept === dept || shenHeQuanXian"
-              type="text"
-              @click="huoQuXiuGaiYiShen(scope.row.referPhysician, scope.row.referPhysicianName, scope.row.patNo, scope.row.times)"
+                v-if="scope.row.outDept === dept || shenHeQuanXian"
+                type="text"
+                @click="huoQuXiuGaiYiShen(scope.row.referPhysician, scope.row.referPhysicianName, scope.row.patNo, scope.row.times)"
             >
               {{ scope.row.outDeptName }}
             </el-button>
             <span v-else>{{ scope.row.outDeptName }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="patNo" label="住院号/门诊号"></el-table-column>
-        <el-table-column prop="gendName" label="性别" width="40"></el-table-column>
-        <el-table-column prop="actIptDays" label="住院天数"></el-table-column>
-        <el-table-column prop="disDiag" label="诊断编码"></el-table-column>
-        <el-table-column prop="disDiagComment" label="诊断名称"></el-table-column>
-        <el-table-column prop="operationName" 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="insutypeName" label="险种类型"></el-table-column>
-        <el-table-column prop="psnTypeName" label="人员类别"></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="clrOptinsName" label="清算机构"></el-table-column>
-        <el-table-column prop="referPhysicianName" label="管床医生"></el-table-column>
-        <el-table-column prop="zhuanKeName" label="转科室"></el-table-column>
-        <el-table-column label="结算单" v-if="shenHeQuanXian()">
+        <el-table-column label="住院号/门诊号" prop="patNo"></el-table-column>
+        <el-table-column label="性别" prop="gendName" width="40"></el-table-column>
+        <el-table-column label="住院天数" prop="actIptDays"></el-table-column>
+        <el-table-column label="诊断编码" prop="disDiag"></el-table-column>
+        <el-table-column label="诊断名称" prop="disDiagComment"></el-table-column>
+        <el-table-column label="治疗方式" prop="operationName"></el-table-column>
+        <el-table-column label="总费用" prop="medfeeSumamt"></el-table-column>
+        <el-table-column label="报销金额" prop="fundPaySumamt"></el-table-column>
+        <el-table-column label="险种类型" prop="insutypeName"></el-table-column>
+        <el-table-column label="人员类别" prop="psnTypeName"></el-table-column>
+        <el-table-column label="结算时间" prop="setlTime"></el-table-column>
+        <el-table-column label="医疗类别" prop="medTypeName"></el-table-column>
+        <el-table-column label="清算机构" prop="clrOptinsName"></el-table-column>
+        <el-table-column label="管床医生" prop="referPhysicianName"></el-table-column>
+        <el-table-column label="转科室" prop="zhuanKeName"></el-table-column>
+        <el-table-column label="申请备注" prop="reqRemark"></el-table-column>
+        <el-table-column v-if="shenHeQuanXian()" label="结算单">
           <template #default="scope">
             <el-button @click="jieSuanDanClick(scope.row)">查看结算单</el-button>
           </template>
         </el-table-column>
       </el-table>
-      <jie-suan-dan-da-ying v-if="daYingJieSuanDanRef.dialog" :data="daYingJieSuanDanRef" @close="daYingJieSuanDanRef.dialog = false"></jie-suan-dan-da-ying>
+      <jie-suan-dan-da-ying v-if="daYingJieSuanDanRef.dialog" :data="daYingJieSuanDanRef"
+                            @close="daYingJieSuanDanRef.dialog = false"></jie-suan-dan-da-ying>
       <el-pagination
-        :page-sizes="[10, 20, 30, 40, 50, 100]"
-        :page-size="queryTerm.pageSize"
-        :current-page="queryTerm.currentPage"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="queryTerm.total"
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
+          :current-page="queryTerm.currentPage"
+          :page-size="queryTerm.pageSize"
+          :page-sizes="[10, 20, 30, 40, 50, 100]"
+          :total="queryTerm.total"
+          layout="total, sizes, prev, pager, next, jumper"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
       >
       </el-pagination>
     </el-main>
-    <el-dialog v-model="queryTermDialog" width="60%" title="数据筛选">
-      <el-form ref="queryTermRef" label-width="120px" size="mini" :model="queryTerm">
+    <el-dialog v-model="queryTermDialog" title="数据筛选" width="60%">
+      <el-form ref="queryTermRef" :model="queryTerm" label-width="120px" size="mini">
         <el-row>
           <el-col :span="24">
             <el-form-item label="日期范围" prop="dateRange">
               <el-date-picker
-                type="daterange"
-                v-model="queryTerm.dateRange"
-                placeholder="选择日期"
-                size="mini"
-                style="width: 280px"
-                range-separator="至"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                :shortcuts="clockinShortcuts"
+                  v-model="queryTerm.dateRange"
+                  :shortcuts="clockinShortcuts"
+                  end-placeholder="结束日期"
+                  placeholder="选择日期"
+                  range-separator="至"
+                  size="mini"
+                  start-placeholder="开始日期"
+                  style="width: 280px"
+                  type="daterange"
               ></el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="结算类型" prop="clrType">
               <el-select v-model="queryTerm.clrType" placeholder="结算类别" style="width: 100px">
-                <el-option v-for="item in clrTypes" :key="item.code" :value="item.code" :label="item.name">
+                <el-option v-for="item in clrTypes" :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>
@@ -96,13 +106,15 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="住院号" prop="patNo">
-              <el-input v-model="queryTerm.patNo" style="width: 120px" @blur="patNo = $event.target.value.trim()" clearable @keyup.enter="query" placeholder="住院号"></el-input>
+              <el-input v-model="queryTerm.patNo" clearable placeholder="住院号"
+                        style="width: 120px" @blur="patNo = $event.target.value.trim()" @keyup.enter="query"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="出院科室" prop="disDept">
-              <el-select v-model="queryTerm.outDept" placeholder="出院科室" filterable clearable multiple :collapse-tags="true">
-                <el-option v-for="item in disDepts" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.outDept" :collapse-tags="true" clearable filterable multiple
+                         placeholder="出院科室">
+                <el-option v-for="item in disDepts" :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>
@@ -113,8 +125,9 @@
 
           <el-col :span="spanWidth">
             <el-form-item label="医疗类别" prop="medType">
-              <el-select v-model="queryTerm.medType" placeholder="医疗类别" filterable clearable multiple :collapse-tags="true">
-                <el-option v-for="item in medTypes" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.medType" :collapse-tags="true" clearable filterable multiple
+                         placeholder="医疗类别">
+                <el-option v-for="item in medTypes" :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>
@@ -125,7 +138,7 @@
           <el-col :span="spanWidth">
             <el-form-item label="上传类型" prop="psnType">
               <el-select v-model="queryTerm.flag">
-                <el-option v-for="item in flags" :key="item.code" :value="item.code" :label="item.name">
+                <el-option v-for="item in flags" :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>
@@ -135,8 +148,10 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="管床医生" prop="referPhysician">
-              <el-select v-model="queryTerm.referPhysician" placeholder="管床医生" filterable clearable remote reserve-keyword :remote-method="remoteMethod">
-                <el-option v-for="item in referPhysicians" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.referPhysician" :remote-method="remoteMethod" clearable filterable
+                         placeholder="管床医生"
+                         remote reserve-keyword>
+                <el-option v-for="item in referPhysicians" :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>
@@ -146,8 +161,9 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="险种类型" prop="insutype">
-              <el-select v-model="queryTerm.insutype" placeholder="险种类型" filterable clearable multiple :collapse-tags="true">
-                <el-option v-for="item in insutypes" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.insutype" :collapse-tags="true" clearable filterable multiple
+                         placeholder="险种类型">
+                <el-option v-for="item in insutypes" :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>
@@ -157,8 +173,9 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="人员类别" prop="psnType">
-              <el-select v-model="queryTerm.psnType" placeholder="人员类别" filterable clearable multiple :collapse-tags="true">
-                <el-option v-for="item in getPsnType" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.psnType" :collapse-tags="true" clearable filterable multiple
+                         placeholder="人员类别">
+                <el-option v-for="item in getPsnType" :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>
@@ -168,8 +185,9 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="结算机构" prop="clrOptins">
-              <el-select v-model="queryTerm.clrOptins" placeholder="结算机构" filterable clearable multiple :collapse-tags="true">
-                <el-option v-for="item in clrOptins" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.clrOptins" :collapse-tags="true" clearable filterable multiple
+                         placeholder="结算机构">
+                <el-option v-for="item in clrOptins" :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>
@@ -180,7 +198,7 @@
           <el-col :span="spanWidth">
             <el-form-item label="审核类型" prop="auditFlag">
               <el-select v-model="queryTerm.auditFlag">
-                <el-option v-for="item in auditFlags" :key="item.code" :value="item.code" :label="item.name">
+                <el-option v-for="item in auditFlags" :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>
@@ -190,8 +208,8 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="申报类型" prop="auditFlag">
-              <el-select v-model="queryTerm.decTypes" filterable clearable multiple :collapse-tags="true">
-                <el-option v-for="item in decTypes" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.decTypes" :collapse-tags="true" clearable filterable multiple>
+                <el-option v-for="item in decTypes" :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>
@@ -201,8 +219,8 @@
           </el-col>
           <el-col :span="spanWidth">
             <el-form-item label="支付类型" prop="hiPaymtd">
-              <el-select v-model="queryTerm.hiPaymtd" clearable :collapse-tags="true">
-                <el-option v-for="item in hiPaymtdData" :key="item.code" :value="item.code" :label="item.name">
+              <el-select v-model="queryTerm.hiPaymtd" :collapse-tags="true" clearable>
+                <el-option v-for="item in hiPaymtdData" :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>
@@ -212,15 +230,16 @@
           </el-col>
         </el-row>
       </el-form>
-      <el-button type="primary" size="small" icon="el-icon-search" @click="query">查询</el-button>
-      <el-button type="primary" size="small" icon="el-icon-search" @click="zhongKongTiaoJian">总控数据条件</el-button>
+      <el-button icon="el-icon-search" size="small" type="primary" @click="query">查询</el-button>
+      <el-button icon="el-icon-search" size="small" type="primary" @click="zhongKongTiaoJian">总控数据条件</el-button>
 
-      <el-button type="warning" size="small" icon="el-icon-refresh-right" @click="chongZhi">重置</el-button>
+      <el-button icon="el-icon-refresh-right" size="small" type="warning" @click="chongZhi">重置</el-button>
       <el-divider direction="vertical"></el-divider>
     </el-dialog>
     <el-dialog v-model="xiuGaiYiShen" title="修改管床医生">
-      <el-select v-model="guanChuangYiShen.yiShenCode" filterable clearable remote reserve-keyword :remote-method="remoteMethod">
-        <el-option v-for="item in referPhysicians" :key="item.code" :value="item.code" :label="item.name">
+      <el-select v-model="guanChuangYiShen.yiShenCode" :remote-method="remoteMethod" clearable filterable remote
+                 reserve-keyword>
+        <el-option v-for="item in referPhysicians" :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>
@@ -229,33 +248,46 @@
       <el-divider direction="vertical"></el-divider>
       <el-button @click="xiuGaiGuanChuangYiShenClick">修改</el-button>
     </el-dialog>
-    <jie-suan-dan-xiang-qing @close="jieSuanDanDataDialog = false" @shuaXin="shuaXin" v-if="jieSuanDanDataDialog" :data="jieSuanDanData"></jie-suan-dan-xiang-qing>
-    <Progress />
+    <jie-suan-dan-xiang-qing v-if="jieSuanDanDataDialog" :data="jieSuanDanData" @close="jieSuanDanDataDialog = false"
+                             @shuaXin="shuaXin"></jie-suan-dan-xiang-qing>
+    <Progress/>
   </el-container>
 </template>
 
 <script>
-import { clockinShortcuts } from '../../../data/shortcuts'
-import { ref, unref, watch, onMounted } from 'vue'
+import {clockinShortcuts} from '@/data/shortcuts'
+import {onMounted, ref, unref, watch} from 'vue'
 import store from '../../../store'
-import { getClrTypes, getInsutypes } from '../../../api/medical-insurance/si-dict'
-import { getDateRangeFormatDate } from '../../../utils/date'
-import { getMedType, huoQuJieSuanRenYuan, jieSuanDanKeXiuGaiXinXi, upldSetlList, upldSetlListTimes, xiuGaiGuanChuangYiShen } from '../../../api/medical-insurance/si-setl-upload'
-import { clrOptinsData, decTypes, getPsnType } from '../../../data'
-import { getDept } from '../../../api/yibao/xiang-mu-lu-ru'
+import {getClrTypes, getInsutypes} from '@/api/medical-insurance/si-dict'
+import {getDateRangeFormatDate} from '@/utils/date'
+import {
+  getMedType,
+  huoQuJieSuanRenYuan,
+  jieSuanDanKeXiuGaiXinXi,
+  upldSetlList,
+  upldSetlListTimes,
+  xiuGaiGuanChuangYiShen
+} from '@/api/medical-insurance/si-setl-upload'
+import {clrOptinsData, decTypes, getPsnType} from '../../../data'
+import {getDept} from '@/api/yibao/xiang-mu-lu-ru'
 import JieSuanDanXiangQing from '../../../components/si-sheet-upload/JieSuanDanXiangQing.vue'
-import { ElMessage, ElMessageBox } from 'element-plus'
+import {ElMessage, ElMessageBox} from 'element-plus'
 import Progress from '../../../components/progress/Index.vue'
-import { downloadExcel } from '../../../utils/excel'
-import { getRenYuan } from '../../../api/public-api'
-import { auditFlags, auditName, shenHeQuanXian, huoQuZhongKongChaXunTiaoJian } from '../../../components/si-sheet-upload/jieSuanDanXiuGai'
+import {downloadExcel} from '@/utils/excel'
+import {getRenYuan} from '@/api/public-api'
+import {
+  auditFlags,
+  auditName,
+  huoQuZhongKongChaXunTiaoJian,
+  shenHeQuanXian
+} from '@/components/si-sheet-upload/jieSuanDanXiuGai'
 import XianZhiShiJian from '../../../components/si-sheet-upload/XianZhiShiJian.vue'
-import { stringNotBlank } from '../../../utils/blank-utils'
+import {stringNotBlank} from '@/utils/blank-utils'
 import JieSuanDanDaYing from '../../../components/si-sheet-upload/jieSuanDanDaYing.vue'
 
 export default {
   name: 'SetSheetUpload',
-  components: { JieSuanDanDaYing, XianZhiShiJian, JieSuanDanXiangQing, Progress },
+  components: {JieSuanDanDaYing, XianZhiShiJian, JieSuanDanXiangQing, Progress},
   setup: function () {
     const queryTerm = ref({
       startTime: '',
@@ -301,6 +333,8 @@ export default {
     const referPhysicians = ref([])
 
     const selections = ref([])
+    // 表格 ref
+    const tableRef = ref(null)
 
     const jieSuanDanDataDialog = ref(false)
 
@@ -323,7 +357,8 @@ export default {
           queryTerm.value.total = res.total
           queryTermDialog.value = false
         })
-      } catch (error) {}
+      } catch (error) {
+      }
     }
 
     const queryCurrentPage = async () => {
@@ -337,21 +372,22 @@ export default {
         huoQuJieSuanRenYuan(queryTerm.value).then((res) => {
           queryTerm.value.list = res.records
         })
-      } catch (error) {}
+      } catch (error) {
+      }
     }
 
     watch(
-      () => store.state.app.windowSize.w,
-      () => {
-        const w = store.state.app.windowSize.w
-        if (w >= 1500) {
-          spanWidth.value = 8
-        } else if (w >= 1300) {
-          spanWidth.value = 12
-        } else {
-          spanWidth.value = 24
+        () => store.state.app.windowSize.w,
+        () => {
+          const w = store.state.app.windowSize.w
+          if (w >= 1500) {
+            spanWidth.value = 8
+          } else if (w >= 1300) {
+            spanWidth.value = 12
+          } else {
+            spanWidth.value = 24
+          }
         }
-      }
     )
 
     const upldAllList = () => {
@@ -394,6 +430,7 @@ export default {
     const handleCurrentChange = (val) => {
       queryTerm.value.currentPage = val
       queryCurrentPage()
+      tableRef.value.$refs.bodyWrapper.scrollTop = 0
     }
 
     const chongZhi = () => {
@@ -446,18 +483,19 @@ export default {
           inputPattern: /\S/,
           inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
         })
-          .then(({ value }) => {
-            const data = {
-              param: queryTerm.value,
-              url: '/setlListUpld/exportExcel',
-              fileName: `${value}.xlsx`,
-              jdt: true,
-            }
-            setTimeout(() => {
-              downloadExcel(data)
-            }, 500)
-          })
-          .catch((e) => {})
+            .then(({value}) => {
+              const data = {
+                param: queryTerm.value,
+                url: '/setlListUpld/exportExcel',
+                fileName: `${value}.xlsx`,
+                jdt: true,
+              }
+              setTimeout(() => {
+                downloadExcel(data)
+              }, 500)
+            })
+            .catch((e) => {
+            })
       } else {
         ElMessage.error('请先查询出数据')
       }
@@ -490,7 +528,7 @@ export default {
     const xiuGaiYiShen = ref(false)
     const huoQuXiuGaiYiShen = (code, name, patNo, times) => {
       if (stringNotBlank(code)) {
-        referPhysicians.value = [{ code: code, name: name }]
+        referPhysicians.value = [{code: code, name: name}]
         guanChuangYiShen.value.yiShenCode = code
       }
       xiuGaiYiShen.value = true
@@ -508,7 +546,7 @@ export default {
     const zhongKongTiaoJian = () => {
       if (!shenHeQuanXian()) {
         queryTerm.value.outDept = [store.state.user.info.deptCode]
-        referPhysicians.value = [{ code: store.state.user.info.code, name: store.state.user.info.name }]
+        referPhysicians.value = [{code: store.state.user.info.code, name: store.state.user.info.name}]
       }
       queryTerm.value.medType = ['22', '2101']
       queryTerm.value.insutype = huoQuZhongKongChaXunTiaoJian(insutypes.value, ['340', '350', '360', '510', '410'])
@@ -586,20 +624,21 @@ export default {
       daYingJieSuanDanRef,
       jieSuanDanClick,
       flags: ref([
-        { code: 0, name: '全部' },
-        { code: 1, name: '未传' },
-        { code: 2, name: '已传' },
+        {code: 0, name: '全部'},
+        {code: 1, name: '未传'},
+        {code: 2, name: '已传'},
       ]),
       hiPaymtdData: [
-        { code: 1, name: '按项目' },
-        { code: 2, name: '单病种' },
-        { code: 3, name: '按病种分值' },
-        { code: 4, name: '基本诊断相关分组(DRG)' },
-        { code: 5, name: '按床日' },
-        { code: 6, name: '按人次' },
-        { code: 9, name: '其他' },
-        { code: 0, name: '全部' },
+        {code: 1, name: '按项目'},
+        {code: 2, name: '单病种'},
+        {code: 3, name: '按病种分值'},
+        {code: 4, name: '基本诊断相关分组(DRG)'},
+        {code: 5, name: '按床日'},
+        {code: 6, name: '按人次'},
+        {code: 9, name: '其他'},
+        {code: 0, name: '全部'},
       ],
+      tableRef,
     }
   },
 }