Selaa lähdekoodia

同步老项目

lighter 4 vuotta sitten
vanhempi
commit
929ae31a76

+ 31 - 0
src/api/public-api.js

@@ -0,0 +1,31 @@
+import request from '@/utils/request'
+
+export function getRoleCode() {
+  return request({
+    url: '/publicApi/getRoleCode',
+    method: 'get',
+  })
+}
+
+export function getRenYuan(code) {
+  return request({
+    url: '/publicApi/getRenYuan',
+    method: 'get',
+    params: { code },
+  })
+}
+
+export function getChargeCode(pyCode) {
+  return request({
+    url: '/publicApi/getChargeCode',
+    method: 'get',
+    params: { pyCode },
+  })
+}
+
+export function getDept() {
+  return request({
+    url: '/publicApi/getDept',
+    method: 'get',
+  })
+}

+ 9 - 0
src/api/querydata/keshishourutongji.js

@@ -0,0 +1,9 @@
+import request from '../../utils/request'
+
+export function getKeShouFei(data) {
+  return request({
+    url: 'keShiTongJi/getKeShouFei',
+    method: 'post',
+    data,
+  })
+}

+ 1 - 1
src/api/zhu-yuan-yi-ji/men-zhen-xiang-mu.js

@@ -24,7 +24,7 @@ export function getMingXi(patientId, times, reqNo) {
   })
 }
 
-export function menZhenXiangMuQueXiaoHuoQueRen(data) {
+export function menZhenXiangMuQuXiaoHuoQueRen(data) {
   return request({
     url: '/menZhenXiangMu/queRenOrQuXiao',
     method: 'post',

+ 0 - 8
src/api/zhu-yuan-yi-ji/que-ren-yi-zhu-shou-fei.js

@@ -10,14 +10,6 @@ export function getXuQueFeiYiZhu(data) {
   })
 }
 
-export function getXuQueFeiXiangXiXinXi(inpatientNo, admissTimes, execUnit) {
-  return request({
-    url: url + '/getXuQueFeiXiangXiXinXi',
-    method: 'get',
-    params: { inpatientNo, admissTimes, execUnit },
-  })
-}
-
 export function baoCunYiZhuQueFeiShuJu(data) {
   return request({
     url: url + '/baoCunYiZhuQueFeiShuJu',

+ 4 - 3
src/components/inpatient/XiangMuLuRu.vue

@@ -12,7 +12,7 @@
     </el-header>
     <el-container>
       <el-main>
-        <el-tabs v-model="xmlrTabs" style="margin-top: 11px">
+        <el-tabs v-model="xmlrTabs">
           <el-tab-pane label="已录入项目" name="ylrxm">
             项目名称:<el-select
               v-model="patient.chargeCode"
@@ -66,6 +66,7 @@
             <el-table :height="tableHeight" @selection-change="handleSelectionChange" :data="cptTableDataHuanZheFeiYong" stripe highlight-current-row class="eltable">
               <el-table-column type="selection" style="width: 100px"> </el-table-column>
               <el-table-column label="流水号" prop="detailSn" width="70px"></el-table-column>
+              <el-table-column label="医嘱号" prop="orderNo" width="70px"></el-table-column>
               <el-table-column prop="chargeDate" label="录入日期" width="80px"></el-table-column>
               <el-table-column prop="chargeCodeMx" label="项目编码"></el-table-column>
               <el-table-column prop="chargeName" label="项目名称"></el-table-column>
@@ -148,10 +149,10 @@
                           </template>
                         </el-table-column>
                         <el-table-column label="单价" prop="chargeAmount"></el-table-column>
-                        <el-table-column label="数量" prop="amount">
+                        <el-table-column label="数量" prop="amount" width="130">
                           <template #default="scope">
                             <!--precision 限制输入的精度 0 就是不带任何一位小数点  -->
-                            <el-input-number v-model="scope.row.amount" size="mini" :min="0" :precision="1"></el-input-number>
+                            <el-input-number v-model="scope.row.amount" style="width: 120px" size="mini" :min="0" :precision="1"></el-input-number>
                           </template>
                         </el-table-column>
                       </el-table-column>

+ 2 - 2
src/components/inpatient/YiZhuTuiFei.vue

@@ -20,13 +20,13 @@
           <span>{{ item.name }}</span>
         </el-option>
       </el-select>
-      是否退费:<el-select size="mini" remote filterable v-model="tuiFeiCode">
+      <!-- 是否退费:<el-select size="mini" remote filterable v-model="tuiFeiCode">
         <el-option v-for="item in tuiFeiLeiXin" :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>
         </el-option>
-      </el-select>
+      </el-select> -->
       医嘱时间:
       <el-date-picker
         v-model="dateRange"

+ 5 - 3
src/components/med-tec-mod/HuanZheFeiYong.vue

@@ -3,13 +3,15 @@
     <el-main>
       <el-button size="mini" type="danger" @click="xiangMuTuiFeiClick" icon="el-icon-delete-solid">退费</el-button>
       <el-table :data="cptTableDataHuanZheFeiYong" :height="windowHeigth - 170" @selection-change="handleSelectionChange" highlight-current-row stripe>
+        <el-table-column type="index"></el-table-column>
         <el-table-column type="selection"></el-table-column>
         <el-table-column label="流水号" prop="detailSn" width="70px"></el-table-column>
+        <el-table-column label="医嘱号" prop="orderNo" width="70px"></el-table-column>
         <el-table-column prop="chargeDate" label="录入日期" width="80px"></el-table-column>
         <el-table-column prop="chargeCodeMx" label="项目编码"></el-table-column>
         <el-table-column prop="chargeName" label="项目名称"></el-table-column>
-        <el-table-column prop="drugname" label="药品名称"></el-table-column>
-        <el-table-column prop="execDept" label="执行科室"></el-table-column>
+        <el-table-column prop="drugname" label="药品名称" v-if="patient.feiYongLeiXingCode === 1"></el-table-column>
+        <el-table-column prop="genTime" label="执行时间" width="80px"></el-table-column>
         <el-table-column prop="deptCode" label="申请科室"></el-table-column>
         <el-table-column prop="chargeFee" label="金额"></el-table-column>
         <el-table-column label="数量" prop="chargeAmount"></el-table-column>
@@ -68,7 +70,7 @@ export default {
     const windowHeigth = windowSize.h
     const cptTableDataHuanZheFeiYong = ref([])
     const fenYe = ref({
-      pageSize: 40,
+      pageSize: 30,
       currentPage: 1,
       total: 0,
     })

+ 4 - 3
src/components/med-tec-mod/YiJiXiangMuLuRu.vue

@@ -37,7 +37,7 @@
       <el-tag type="danger"> 项目总价:{{ xiangMuZongJia }}</el-tag>
       <el-table :data="feiYongShuJu" :height="tableHeight - 27" style="margin-top: 10px" stripe highlight-current-row>
         <el-table-column label="录入信息">
-          <el-table-column label="是否自费">
+          <el-table-column label="是否自费" width="130">
             <template #default="scope">
               <el-switch
                 active-color="#ff4949"
@@ -69,10 +69,10 @@
             </template>
           </el-table-column>
           <el-table-column label="单价" prop="chargeAmount"></el-table-column>
-          <el-table-column label="数量" prop="amount">
+          <el-table-column label="数量" prop="amount" width="130">
             <template #default="scope">
               <!--precision 限制输入的精度 0 就是不带任何一位小数点  -->
-              <el-input-number v-model="scope.row.amount" size="mini" :min="0" :precision="1"></el-input-number>
+              <el-input-number v-model="scope.row.amount" size="mini" style="width: 120px" :min="0" :precision="1"></el-input-number>
             </template>
           </el-table-column>
         </el-table-column>
@@ -262,6 +262,7 @@ export default {
         referPhysician: props.patient.referPhysician,
         list: feiYongShuJu.value,
         orderNo: 3,
+        ledgerSn: props.patient.ledgerSn,
       }
       //在此处上传
       ElMessageBox.confirm('共上传【' + feiYongShuJu.value.length + '】条', '请认真核对', {

+ 1 - 1
src/data/index.js

@@ -219,7 +219,7 @@ export const tuiFeiLeiXin = [
 ]
 
 export const yiZhuTuiFeiLeiXing = [
-  { code: 0, name: '住院费用' },
+  { code: 0, name: '护士录入' },
   { code: 2, name: '全部' },
   { code: 1, name: '医嘱' },
   { code: 3, name: '医技' },

+ 2 - 2
src/views/data-modify/SecondFefund.vue

@@ -128,7 +128,7 @@ export default {
         return
       }
       getMzTuiFei(mzTuiFei.value).then((res) => {
-        mzChargeDateilData.value = res.data
+        mzChargeDateilData.value = res.records
         mzTuiFei.value.total = res.total
       })
     }
@@ -188,7 +188,7 @@ export default {
           xiuGaiTuiFei(mzChargeDateil.value).then((res) => {
             mzChargeDateil.value = {}
             getMzTuiFei(mzTuiFei.value).then((res) => {
-              mzChargeDateilData.value = res.data
+              mzChargeDateilData.value = res.records
               mzTuiFei.value.total = res.total
             })
           })

+ 1 - 1
src/views/data-modify/YzActOrderModifyVerify.vue

@@ -194,7 +194,7 @@ export default {
       dataDetails.value = []
       chaKanZhuangTai(queryTerm)
         .then((res) => {
-          dataTable.value = res.data.records
+          dataTable.value = res.records
           queryTerm.total = res.total
         })
         .catch(() => {

+ 1 - 1
src/views/hospitalization/case-front-sheet/JieShouHuiZhen.vue

@@ -167,7 +167,7 @@ export default {
     const getHuiZhenDataClick = () => {
       let riQi = getDateRangeFormatDate(dateRange.value)
       getHuiZhenData(Cookie.get('dept'), currentPage.value, pageSize.value, riQi.stratTime, riQi.endTime).then((res) => {
-        huanZeData.value = res.data
+        huanZeData.value = res.records
         total.value = res.total
       })
     }

+ 94 - 91
src/views/med-tec-mod/MenZhenXiangMu.vue

@@ -1,6 +1,6 @@
 <template>
   <el-container>
-    <el-header height="30px" style="margin-top: 10px">
+    <el-header style="margin-top: 10px">
       <el-date-picker
         type="daterange"
         v-model="dateRange"
@@ -26,95 +26,77 @@
       <el-tag effect="dark" type="warning">性别:{{ cptSex(patient.sex) }} </el-tag>
       <el-tag effect="dark">出生日期: {{ patient.birthDay }} </el-tag>
       <el-tag effect="dark" type="warning">诊疗卡: {{ patient.icCardNo }}</el-tag>
+      <el-alert effect="dark" title="点击表格中绿色的按钮就可以查看详细的信息,点击任意位置即可消失小框框或再次点击按钮。哔哩哔哩-(゜-゜)つロ乾杯~" type="success"></el-alert>
     </el-header>
     <el-container>
       <el-main>
         <el-row>
           <el-col :span="4">
-            <el-table :height="windowsHeight - 500" :data="shouFeiData" highlight-current-row stripe @cell-click="getFeiYongXinXiClick">
+            <el-table :height="windowsHeight / 1.1" :data="shouFeiData" highlight-current-row stripe @cell-click="getFeiYongXinXiClick">
               <el-table-column label="收费信息">
                 <el-table-column label="缴费日期" prop="chargeDate" width="80"></el-table-column>
-                <el-table-column label="流水号" prop="serialNo"></el-table-column>
+                <el-table-column label="流水号" prop="serialNo">
+                  <template #default="scope">
+                    <el-popover placement="right" :width="800" trigger="click">
+                      <template #reference>
+                        <el-button @click="getFeiYongXinXiClick(scope.row)" size="mini" type="success">{{ scope.row.serialNo }}</el-button>
+                      </template>
+                      <el-table :height="windowsHeight / 2" :data="feiYongData" highlight-current-row stripe>
+                        <el-table-column label="缴费明细信息">
+                          <el-table-column label="待确认标志" prop="confirmFlag">
+                            <template #default="scope">
+                              <span v-html="confirmFlag(scope.row.confirmFlag)"></span>
+                            </template>
+                          </el-table-column>
+                          <el-table-column label="项目编码" prop="chargeCode"></el-table-column>
+                          <el-table-column label="项目" prop="chargeName"></el-table-column>
+                          <el-table-column label="金额" prop="je"></el-table-column>
+                          <el-table-column label="确认时间" prop="confirmTime" width="80"></el-table-column>
+                          <el-table-column label="确认人" prop="confirmIdName"></el-table-column>
+                          <el-table-column label="执行科室" prop="execDeptName"></el-table-column>
+                          <el-table-column label="申请号" prop="reqNo"></el-table-column>
+                        </el-table-column>
+                      </el-table>
+                    </el-popover>
+                  </template>
+                </el-table-column>
               </el-table-column>
             </el-table>
           </el-col>
           <el-col :span="20">
-            <el-table :height="windowsHeight - 500" :data="keQueRenData" highlight-current-row stripe>
+            <el-table :height="windowsHeight / 1.1" :data="keQueRenData" highlight-current-row stripe>
               <el-table-column label="本科室">
-                <el-table-column label="待确认标志" prop="confirmFlag">
+                <el-table-column label="待确认标志" prop="confirmFlag" width="250">
                   <template #default="scope">
-                    <el-switch
-                      v-if="xiangMuZhuangTai === 0 && scope.row.confirmFlag === 0"
-                      v-model="scope.row.confirmFlag"
-                      active-color="#13ce66"
-                      inactive-color="#ff4949"
-                      active-text="确认"
-                      inactive-text="不确认"
-                      :active-value="1"
-                      :inactive-value="0"
-                    >
-                    </el-switch>
-                    <el-switch
-                      v-if="xiangMuZhuangTai === 0 && scope.row.confirmFlag !== 0"
-                      v-model="scope.row.confirmFlag"
-                      active-color="#13ce66"
-                      inactive-color="#ff4949"
-                      active-text="保留"
-                      inactive-text="已取消"
-                      :active-value="1"
-                      :inactive-value="3"
-                    >
-                    </el-switch>
-                    <el-switch
-                      v-else
-                      v-model="scope.row.confirmFlag"
-                      active-color="#13ce66"
-                      inactive-color="#ff4949"
-                      active-text="保留"
-                      inactive-text="取消"
-                      :active-value="1"
-                      :inactive-value="3"
-                    >
-                    </el-switch>
+                    <el-radio-group v-model="scope.row.confirmFlag" size="mini">
+                      <el-radio-button :label="0" :disabled="scope.row.xiangMuZhuangTai === 1 || scope.row.xiangMuZhuangTai === 3">未确认</el-radio-button>
+                      <el-radio-button :label="1">确认</el-radio-button>
+                      <el-radio-button :label="3" :disabled="scope.row.xiangMuZhuangTai === 0">取消</el-radio-button>
+                    </el-radio-group>
                   </template>
                 </el-table-column>
                 <el-table-column label="项目编码" prop="chargeCode"></el-table-column>
                 <el-table-column label="项目" prop="chargeName"></el-table-column>
                 <el-table-column label="金额" prop="je"></el-table-column>
-                <el-table-column label="确认时间" prop="confirmTime"></el-table-column>
-                <el-table-column label="确认人" prop="confirmId"></el-table-column>
+                <el-table-column label="确认时间" prop="confirmTime" width="80"></el-table-column>
+                <el-table-column label="确认人" prop="confirmIdName"></el-table-column>
                 <el-table-column label="执行科室" prop="execDeptName"></el-table-column>
-                <el-table-column label="申请号" prop="reqNo"></el-table-column>
-              </el-table-column>
-            </el-table>
-          </el-col>
-        </el-row>
-        <br />
-        <el-row>
-          <el-col :span="16">
-            <el-table :height="windowsHeight - 500" :data="feiYongData" highlight-current-row stripe @cell-click="getMingXiClick">
-              <el-table-column label="缴费明细信息">
-                <el-table-column label="待确认标志" prop="confirmFlag">
+                <el-table-column label="申请号" prop="reqNo">
                   <template #default="scope">
-                    <span v-html="confirmFlag(scope.row.confirmFlag)"></span>
+                    <el-popover placement="left" :width="800" trigger="click">
+                      <template #reference>
+                        <el-button size="mini" type="success" @click="getMingXiClick(scope.row)">{{ scope.row.reqNo }}</el-button>
+                      </template>
+                      <el-table :data="danGeXingXi" highlight-current-row stripe>
+                        <el-table-column label="明细">
+                          <el-table-column label="项目编码" prop="chargeCode"></el-table-column>
+                          <el-table-column label="项目" prop="chargeName"></el-table-column>
+                          <el-table-column label="金额" prop="je"></el-table-column>
+                        </el-table-column>
+                      </el-table>
+                    </el-popover>
                   </template>
                 </el-table-column>
-                <el-table-column label="项目编码" prop="chargeCode"></el-table-column>
-                <el-table-column label="项目" prop="chargeName"></el-table-column>
-                <el-table-column label="金额" prop="je"></el-table-column>
-                <el-table-column label="确认时间" prop="confirmTime"></el-table-column>
-                <el-table-column label="确认人" prop="confirmId"></el-table-column>
-                <el-table-column label="执行科室" prop="execDeptName"></el-table-column>
-                <el-table-column label="申请号" prop="reqNo"></el-table-column>
-              </el-table-column>
-            </el-table>
-          </el-col>
-          <el-col :span="8">
-            <el-table :data="danGeXingXi" highlight-current-row stripe>
-              <el-table-column label="明细">
-                <el-table-column label="项目编码" prop="chargeCode"></el-table-column>
-                <el-table-column label="项目" prop="chargeName"></el-table-column>
-                <el-table-column label="金额" prop="je"></el-table-column>
               </el-table-column>
             </el-table>
           </el-col>
@@ -127,18 +109,19 @@
 import { shortcuts } from '@/data/shortcuts'
 import { ref } from 'vue'
 import { cptSex } from '@/utils/computed'
-import { getMzPatient, getFeiYongXinXi, getMingXi, menZhenXiangMuQueXiaoHuoQueRen } from '@/api/zhu-yuan-yi-ji/men-zhen-xiang-mu.js'
+import { getMzPatient, getFeiYongXinXi, getMingXi, menZhenXiangMuQuXiaoHuoQueRen } from '@/api/zhu-yuan-yi-ji/men-zhen-xiang-mu.js'
 import { getDateRangeFormatDate } from '@/utils/date'
-import store from '@/store'
+import store from '.@/store'
 import jsCookie from 'js-cookie'
-import { getGreatestRole } from '@/utils/permission'
+import { clone } from '@/utils/clone.js'
+import { ElMessageBox } from 'element-plus'
 
 export default {
   setup() {
     const windows = store.state.app.windowSize
     const windowsHeight = windows.h
     const dateRange = ref(shortcuts[0].value)
-    const patientId = ref('290509-4')
+    const patientId = ref('') //290509-4
     const xiangMuZhuangTai = ref(0)
     const chargeDate = ref('')
 
@@ -148,9 +131,9 @@ export default {
     const feiYongData = ref([])
     const keQueRenData = ref([])
     const danGeXingXi = ref([])
-    const role = getGreatestRole()
 
     const getMzPatientClick = () => {
+      lingShiBaoCunJiaoFeiMingXi.value = {}
       shouFeiData.value = []
       keQueRenData.value = []
       feiYongData.value = []
@@ -160,7 +143,6 @@ export default {
         .then((res) => {
           patient.value = res
           patient.value.birthDay = patient.value.birthDay.split(' ')[0]
-          console.log(res)
           shouFeiData.value = res.list
         })
         .catch(() => {
@@ -168,48 +150,69 @@ export default {
         })
     }
 
+    const lingShiBaoCunJiaoFeiMingXi = ref({})
+
     const getFeiYongXinXiClick = (val) => {
+      if (
+        lingShiBaoCunJiaoFeiMingXi.value.serialNo === val.serialNo &&
+        lingShiBaoCunJiaoFeiMingXi.value.patientId === val.patientId &&
+        lingShiBaoCunJiaoFeiMingXi.value.times === val.times
+      ) {
+        return
+      }
       chargeDate.value = val.chargeDate
       getFeiYongXinXi(val.serialNo, val.patientId, val.times).then((res) => {
         keQueRenData.value = []
         feiYongData.value = res
-        console.log(res)
+        lingShiBaoCunJiaoFeiMingXi.value = clone(val)
         let dept = jsCookie.get('dept')
         if (xiangMuZhuangTai.value === 0) {
           for (let i = 0; i < feiYongData.value.length; i++) {
             if (feiYongData.value[i].execDept === dept && feiYongData.value[i].confirmFlag !== 1) {
-              keQueRenData.value.push(feiYongData.value[i])
+              keQueRenData.value.push(clone(feiYongData.value[i]))
             }
           }
         } else {
           for (let i = 0; i < feiYongData.value.length; i++) {
             if (feiYongData.value[i].execDept === dept && feiYongData.value[i].confirmFlag === 1) {
-              keQueRenData.value.push(feiYongData.value[i])
+              keQueRenData.value.push(clone(feiYongData.value[i]))
             }
           }
         }
       })
     }
 
+    const lingShiHuoQuMingXi = ref({})
+
     const getMingXiClick = (val) => {
-      getMingXi(val.patientId, val.times, val.reqNo).then((res) => {
-        console.log(res)
-        danGeXingXi.value = res
-      })
+      if (lingShiHuoQuMingXi.value.patientId === val.patientId && lingShiHuoQuMingXi.value.times === val.times && lingShiHuoQuMingXi.value.reqNo === val.reqNo) {
+        return
+      }
+      if (val.execDept === jsCookie.get('dept')) {
+        getMingXi(val.patientId, val.times, val.reqNo).then((res) => {
+          lingShiHuoQuMingXi.value = val
+          danGeXingXi.value = res
+        })
+      }
     }
 
     const baoCunClick = () => {
-      let baoCun = {
-        list: keQueRenData.value,
-        xiangMuZhuangTai: xiangMuZhuangTai.value,
-        name: patient.value.name,
-        execDept: jsCookie.get('dept'),
-        chargeDateString: chargeDate.value,
-      }
-      menZhenXiangMuQueXiaoHuoQueRen(baoCun).then((res) => {
-        keQueRenData.value = []
+      ElMessageBox.confirm('请确认数据', '提示', {
+        type: 'warning',
       })
-      console.log(baoCun)
+        .then(() => {
+          let baoCun = {
+            list: keQueRenData.value,
+            xiangMuZhuangTai: xiangMuZhuangTai.value,
+            name: patient.value.name,
+            execDept: jsCookie.get('dept'),
+            chargeDateString: chargeDate.value,
+          }
+          menZhenXiangMuQuXiaoHuoQueRen(baoCun).then((res) => {
+            keQueRenData.value = []
+          })
+        })
+        .catch(() => {})
     }
 
     return {

+ 287 - 134
src/views/med-tec-mod/QueRenYiZhuShouFei.vue

@@ -1,8 +1,8 @@
 <template>
   <el-container>
-    <el-header height="36px" style="margin-top: 8px">
-      住院号:<el-input size="mini" style="width: 160px" placeholder="请输入住院号" clearable v-model.trim="queryTerm.inpatientNo" @keyup.enter="getHuanZheXinXiClick"></el-input>
-      病房:<el-select size="mini" v-model="queryTerm.wardCode">
+    <el-header style="margin-top: 8px">
+      <el-input size="mini" style="width: 160px" placeholder="请输入住院号" clearable v-model.trim="queryTerm.inpatientNo" @keyup.enter="getHuanZheXinXiClick"></el-input>
+      <el-select size="mini" v-model="queryTerm.wardCode" filterable clearable placeholder="请选择病区">
         <el-option v-for="item in wardData" :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>
@@ -11,102 +11,181 @@
       </el-select>
       <el-divider direction="vertical"></el-divider>
       <el-button size="mini" type="primary" icon="el-icon-search" @click="getHuanZheXinXiClick">查询</el-button>
-      <el-button size="mini" type="primary" icon="el-icon-refresh-left" @click="getXuQueFeiYiZhuClick">检索</el-button>
-      <el-select size="mini" v-model="chargeStatus" style="width: 120px; margin: auto 10px auto 10px">
-        <el-option v-for="item in chargeStatusData" :key="item.code" :label="item.name" :value="item.code">
+      <el-button size="mini" type="primary" icon="el-icon-refresh-left" @click="getXuQueFeiYiZhuClick">刷新</el-button>
+      <el-select size="mini" v-model="biaoGeWeiZhi" style="width: 60px; margin: auto 10px auto 10px">
+        <el-option v-for="item in xiaoBiaoGeXinShiWeiZhi" :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>
         </el-option>
       </el-select>
-      <el-button size="mini" type="warning" @click="yiJianXiuGaiClick">一键修改</el-button>
-      <el-button size="mini" type="success" @click="baoCunYiZhuQueFeiClick" icon="el-icon-upload">保存</el-button>
+      排序:
+      <el-select size="mini" v-model="queryTerm.fenLei" style="width: 100px; margin: auto 10px auto 10px" @change="getHuanZheXinXiClick">
+        <el-option :value="0" label="病区"></el-option>
+        <el-option :value="1" label="执行人"></el-option>
+      </el-select>
+      <el-button size="mini" type="success" @click="baoCunYiZhuQueFeiClick" icon="el-icon-upload" :disabled="queryTerm.liShi === 1">保存</el-button>
+      <el-divider direction="vertical"></el-divider>
+      <el-radio-group v-model="queryTerm.liShi" size="mini" @change="getHuanZheXinXiClick">
+        <el-radio-button :label="0">未确认</el-radio-button>
+        <el-radio-button :label="1">历史</el-radio-button>
+      </el-radio-group>
+      <el-divider direction="vertical"></el-divider>
+      <el-button size="mini" type="warning" @click="chaoZuoZhiNan = true">操作指南</el-button>
+      <el-date-picker
+        type="daterange"
+        v-model="dateRange"
+        v-if="queryTerm.liShi === 1"
+        placeholder="选择日期"
+        size="mini"
+        style="width: 280px"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        :shortcuts="shortcuts"
+      ></el-date-picker>
     </el-header>
-    <el-container>
-      <el-aside>
-        <el-table :data="huanZheYiZhuFeiYongData" :height="winHeight - 70" @row-click="getXuQueFeiXiangXiXinXiClick" highlight-current-row stripe>
-          <el-table-column prop="wardName" label="病区"></el-table-column>
+    <el-main>
+      <span>
+        <el-table :data="huanZheYiZhuFeiYongData" :height="winHeight / 1.15" highlight-current-row stripe>
+          <el-table-column prop="name" label="姓名" width="90">
+            <template #default="scope">
+              <el-popover :placement="biaoGeWeiZhi" :width="900" trigger="click">
+                <template #reference>
+                  <el-button
+                    size="small"
+                    :type="scope.row.shiFouYouChuYuanYiZhu === 0 ? 'success' : 'danger'"
+                    style="width: 100px"
+                    @click="lingShiQueFeiShuJuClick(scope.row.list)"
+                    >{{ scope.row.name }}</el-button
+                  >
+                </template>
+                <el-tag type="warning" effect="dark"> 姓名:{{ scope.row.name }}</el-tag>
+                <el-tag type="success" effect="dark"> 性别:{{ cptSex(scope.row.sex) }}</el-tag>
+                <el-tag type="warning" effect="dark"> 床号{{ scope.row.bedNo }}</el-tag>
+                <el-tag type="success" effect="dark"> 医保身份:{{ scope.row.responceTypeName }}</el-tag>
+                <el-tag type="warning" effect="dark"> 病区:{{ scope.row.wardName }}</el-tag>
+                <el-table
+                  :data="
+                    lingShiQueFeiShuJu.list.slice((lingShiQueFeiShuJu.currentPage - 1) * lingShiQueFeiShuJu.pageSize, lingShiQueFeiShuJu.currentPage * lingShiQueFeiShuJu.pageSize)
+                  "
+                  highlight-current-row
+                  stripe
+                  :height="winHeight / 1.3"
+                >
+                  <el-table-column label="确认" :width="queryTerm.liShi === 0 ? 230 : 50">
+                    <template #default="scope">
+                      <el-radio-group
+                        v-if="queryTerm.liShi === 0"
+                        v-model="scope.row.chargeStatus"
+                        size="mini"
+                        :fill="scope.row.chargeStatus === '1' ? '#67C23A' : scope.row.chargeStatus === '2' ? '#F56C6C' : '#909399'"
+                      >
+                        <el-radio-button label="1">确认</el-radio-button>
+                        <el-radio-button label="2">取消</el-radio-button>
+                        <el-radio-button label="3">不操作</el-radio-button>
+                      </el-radio-group>
+                      <span v-else v-html="yiZhuZhuangTai(scope.row.chargeStatus)"> </span>
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="actOrderNo" label="医嘱号"> </el-table-column>
+                  <el-table-column prop="occTime" label="医嘱日期" width="80"></el-table-column>
+                  <el-table-column prop="chargeCode" label="项目编码"></el-table-column>
+                  <el-table-column prop="chargeName" label="项目名称"></el-table-column>
+                  <el-table-column prop="docotrName" label="医生"></el-table-column>
+                  <el-table-column prop="orderCount" label="数量"></el-table-column>
+                  <el-table-column prop="chargeFee" label="单价"></el-table-column>
+                  <el-table-column label="金额">
+                    <template #default="scope">
+                      {{ (scope.row.chargeFee * scope.row.orderCount).toFixed(2) }}
+                    </template>
+                  </el-table-column>
+                  <el-table-column prop="opIdName" label="操作人" v-if="queryTerm.liShi === 1"></el-table-column>
+                  <el-table-column prop="opDate" label="操作时间" v-if="queryTerm.liShi === 1"></el-table-column>
+                </el-table>
+                <el-pagination
+                  @current-change="lingShiFanYe"
+                  :current-page="lingShiQueFeiShuJu.currentPage"
+                  :page-size="lingShiQueFeiShuJu.pageSize"
+                  layout=" prev, pager, next,total"
+                  :total="lingShiQueFeiShuJu.total"
+                  style="margin-top: 5px"
+                  :pager-count="5"
+                  small
+                ></el-pagination>
+              </el-popover>
+            </template>
+          </el-table-column>
           <el-table-column prop="inpatientNo" label="住院号" width="90"></el-table-column>
+          <el-table-column prop="admissTimes" label="住院次数" width="90"></el-table-column>
           <el-table-column prop="bedNo" label="床号" width="50"></el-table-column>
-          <el-table-column prop="name" label="姓名"></el-table-column>
-        </el-table>
-        <el-pagination
-          @current-change="changeYiZhuQueFei"
-          :current-page="queryTerm.currentPage"
-          :page-size="queryTerm.pageSize"
-          layout=" prev, pager, next,total"
-          :total="queryTerm.total"
-          style="margin-top: 5px"
-          :pager-count="5"
-          small
-        ></el-pagination>
-      </el-aside>
-      <el-main>
-        <span v-if="patient.inpatientNo != null">
-          <el-tag>住院号: {{ patient.inpatientNo }}</el-tag>
-          <el-tag type="warning">患者姓名: {{ patient.name }}</el-tag>
-          <el-tag>床号: {{ patient.bedNo }}</el-tag>
-          <el-tag type="warning">住院次数: {{ patient.admissTimes }}</el-tag>
-          <el-tag>性别: {{ cptSex(patient.sex) }}</el-tag>
-          <el-tag type="warning">病房: {{ patient.wardName }}</el-tag>
-          <el-tag>入院日期: {{ patient.admissDate }}</el-tag>
-          <el-tag type="warning">医保身份: {{ patient.responceTypeName }}</el-tag>
-          <el-tag>总费用: {{ patient.totalCharge }}</el-tag>
-        </span>
-        <el-table :data="queFeiXiangQingData" :height="winHeight - 120" highlight-current-row stripe>
-          <el-table-column label="费用详情">
-            <el-table-column label="确认" width="90">
-              <template #default="scope">
-                <el-select size="mini" v-model="scope.row.chargeStatus">
-                  <el-option v-for="item in chargeStatusData" :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 :style="{ color: item.color }">{{ item.name }}</span>
-                  </el-option>
-                </el-select>
-              </template>
-            </el-table-column>
-            <el-table-column prop="actOrderNo" label="医嘱号">
-              <template #default="scope">
-                <span
-                  :style="{ backgroundColor: chargeStatusData[(chargeStatusData || []).findIndex((item) => item.code === scope.row.chargeStatus)].color }"
-                  style="color: #fff; border-radius: 10px; padding: 0px 5px 5px 5px"
-                  >{{ scope.row.actOrderNo }}</span
-                >
-              </template>
-            </el-table-column>
-            <!-- <el-table-column prop="inpatientNo" label="住院号"></el-table-column>
-            <el-table-column prop="bedNo" label="床号"></el-table-column>
-            <el-table-column prop="name" label="姓名"></el-table-column>
-            <el-table-column prop="wardName" label="病区"></el-table-column> -->
-            <el-table-column prop="occTime" label="医嘱日期" width="80"> </el-table-column>
-            <el-table-column prop="docotrName" label="医生"></el-table-column>
-            <el-table-column prop="orderName" label="医嘱名称"></el-table-column>
-            <el-table-column prop="chargeCode" label="项目编码"></el-table-column>
-            <el-table-column label="单价">
-              <template #default="scope">
-                {{ (scope.row.chargeFee / scope.row.orderCount).toFixed(2) }}
-              </template>
-            </el-table-column>
-            <el-table-column prop="orderCount" label="数量"></el-table-column>
-            <el-table-column prop="chargeFee" label="金额"></el-table-column>
+          <el-table-column prop="sex" label="性别">
+            <template #default="scope">
+              {{ cptSex(scope.row.sex) }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="admissDate" label="住院日期" width="80"></el-table-column>
+          <el-table-column prop="responceTypeName" label="医保身份"></el-table-column>
+          <el-table-column prop="wardName" label="病区"></el-table-column>
+          <el-table-column prop="totalCharge" label="总费用"></el-table-column>
+          <el-table-column label="操作">
+            <template #default="scope">
+              <span v-html="chaoZuo(scope.row.list)"></span>
+            </template>
           </el-table-column>
         </el-table>
-      </el-main>
-    </el-container>
+      </span>
+      <el-pagination
+        @current-change="changeYiZhuQueFei"
+        :current-page="queryTerm.currentPage"
+        :page-size="queryTerm.pageSize"
+        layout=" prev, pager, next,total"
+        :total="queryTerm.total"
+        style="margin-top: 5px"
+        :pager-count="5"
+        small
+      ></el-pagination>
+    </el-main>
+    <el-dialog v-model="chaoZuoZhiNan" title="操作指南(*^▽^*)">
+      1、输入住院号,点击查询即可查询出该住院患者的信息,同理病区也是一样选择的病区就只会查询该病区的患者,住院号和病区二选一。
+      <br />
+      <br />
+      2、刷新旁边的下拉框是用来选择表格弹出的位置(虽然没啥鸟用)。
+      <br />
+      <br />
+      3、排序:默认根据病区来排,选择了执行人后会根据算法来把当前登陆的人员,执行过最多的患者来排到靠前的位置。
+      <br /><br />
+      4、未确认和历史:默认会查询患者未确认的项目,点击历史后一定要选择时间,该时间是医嘱的执行时间,默认会查询当天的时间,(提示选择时间的跨度建议不要过长,可能会导致数据加载慢。)同时查询历史时
+      也可以使用住院号和病区来查询。
+      <br />
+      <br />
+      5、患者姓名:有出院医嘱会显示为红色,无则显示绿色。
+      <br />
+      <br />
+      6、点击患者姓名:会弹出小表格,显示出具体的医嘱信息以及患者的基本信息会显示在上方,请按照需求来选择对应的操作,默认每页显示八条,可点击弹出的小表格中的分页按钮,跳转至上一页或下一页。
+      点击小弹窗外的任意位置即可消失,或再次点击患者姓名(也可以点击下一个需要操作的患者姓名)。
+      <br /><br />
+      7、分页:该分页不是指小表格中的分页,而是页面下方的分页,点击下一页后,且没有点击保存,那么您此前的操作将会丢失,请在分页之前(如果有操作)点击保存(小表格中点击分页不会出现该情况)。
+      <br /><br />
+      8、保存:在确定数据正确后,点击保存(数据一旦,保存成功就没有回头路了,请认真仔细的确认。)
+      <br /><br />
+      9、错误:在点击保存后,系统会自动接受患者的费用,如出错会在右上角,出现提示,可以请对应病区的护士在出院结算页面中点击费用接受重算按钮即可,或在老系统中护士打印费用清单时,会自动接收。
+      <br /><br />
+      10、如有新的需求或出现未知的意外可联系管理员,如是操作失误后果自负(我觉得我已经写的很详细了,各种提示都有,都是简单的操作,还出现操作失误那就没得办法了) (>ω・* )ノ
+    </el-dialog>
   </el-container>
 </template>
 
 <script>
 import { onMounted, ref } from 'vue'
-import { getHuanZheXinXi } from '@/api/zhu-yuan-yi-ji/yi-ji-fei-yong-lu-ru'
-import { getXuQueFeiYiZhu, getXuQueFeiXiangXiXinXi, baoCunYiZhuQueFeiShuJu } from '@/api/zhu-yuan-yi-ji/que-ren-yi-zhu-shou-fei'
+import { getXuQueFeiYiZhu, baoCunYiZhuQueFeiShuJu } from '@/api/zhu-yuan-yi-ji/que-ren-yi-zhu-shou-fei'
 import { getWard } from '@/api/yibao/xiang-mu-lu-ru'
 import Cookie from 'js-cookie'
 import { cptSex } from '@/utils/computed'
 import store from '@/store'
-import { getDate } from '@/utils/date'
-import { ElMessage } from 'element-plus'
+import { getDate, getDateRangeFormatDate } from '../../utils/date'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { shortcuts } from '@/data/shortcuts'
 export default {
   setup() {
     const windowSize = store.state.app.windowSize
@@ -121,40 +200,54 @@ export default {
       currentPage: 1,
       pageSize: 20,
       total: 0,
+      fenLei: 0,
+      startTimeString: '',
+      endTimeString: '',
+      liShi: 0,
     })
 
+    const chaoZuoZhiNan = ref(true)
+
     // 患者信息
     const patient = ref({})
     // 病房信息
     const wardData = ref([])
     // 需要确费的信息
     const huanZheYiZhuFeiYongData = ref([])
-    // 需要确费的详细信息
-    const queFeiXiangQingData = ref([])
     // 操作
     const chargeStatusData = ref([
-      { code: '0', name: '确认', color: '#67C23A' },
-      { code: '1', name: '取消', color: '#F56C6C' },
-      { code: '3', name: '不操作', color: '#909399' },
+      { code: '1', name: '确认' },
+      { code: '2', name: '取消' },
+      { code: '3', name: '不操作' },
     ])
 
-    const chargeStatus = ref('0')
+    const chargeStatus = ref('1')
+
+    const biaoGeWeiZhi = ref('right')
+
+    const dateRange = ref([new Date(), new Date()])
 
     /**
      * 这个是查询当前病人的
      */
     const getHuanZheXinXiClick = () => {
-      // 这个三个参数是 住院号,是否在院 0 在 1 否 , 住院次数
-      getHuanZheXinXi(queryTerm.value.inpatientNo, 0, 0).then((res) => {
-        queryTerm.value.currentPage = 1
-        patient.value = res
-        queryTerm.value.admissTimes = res.admissTimes
-        queryTerm.value.wardCode = res.ward
-        getXuQueFeiYiZhu(queryTerm.value).then((res) => {
-          queryTerm.value.total = res.total
+      if (queryTerm.value.liShi === 1) {
+        let date = getDateRangeFormatDate(dateRange.value)
+        queryTerm.value.startTimeString = date.stratTime
+        queryTerm.value.endTimeString = date.endTime
+      }
+      queryTerm.value.execUnit = dept
+      queryTerm.value.currentPage = 1
+      queryTerm.value.pageSize = 20
+      getXuQueFeiYiZhu(queryTerm.value)
+        .then((res) => {
           huanZheYiZhuFeiYongData.value = res.records
+          queryTerm.value.total = res.total
+        })
+        .catch(() => {
+          huanZheYiZhuFeiYongData.value = []
+          queryTerm.value.total = 0
         })
-      })
     }
 
     /**
@@ -184,50 +277,58 @@ export default {
       })
     }
 
-    const getXuQueFeiXiangXiXinXiClick = (row) => {
-      patient.value = row
-      getXuQueFeiXiangXiXinXi(row.inpatientNo, row.admissTimes, dept)
-        .then((res) => {
-          queFeiXiangQingData.value = res
-        })
-        .catch(() => {
-          queFeiXiangQingData.value = []
-        })
-    }
-
-    /**
-     * 这个是一件修改需要的操作
-     */
-    const yiJianXiuGaiClick = () => {
-      queFeiXiangQingData.value.forEach((item) => {
-        item.chargeStatus = chargeStatus.value
-      })
-    }
-
     /**
      * 在这里保存数据
      */
     const baoCunYiZhuQueFeiClick = () => {
-      if (queFeiXiangQingData.value.length <= 0) {
+      if (queryTerm.value.liShi === 1)
         return ElMessage.error({
-          message: '请先选择需要确认收费的数据。',
-          showClose: true,
+          message: '历史数据无法操作。',
         })
+      let queRenCount = 0
+      let quXiaoCount = 0
+      for (let i = 0; i < huanZheYiZhuFeiYongData.value.length; i++) {
+        for (let a = 0; a < huanZheYiZhuFeiYongData.value[i].list.length; a++) {
+          if (huanZheYiZhuFeiYongData.value[i].list[a].chargeStatus === '1') {
+            queRenCount += 1
+          } else if (huanZheYiZhuFeiYongData.value[i].list[a].chargeStatus === '2') {
+            quXiaoCount += 1
+          }
+        }
       }
-      let shaungChuanData = {
-        inpatientNo: patient.value.inpatientNo,
-        admissTimes: patient.value.admissTimes,
-        list: queFeiXiangQingData.value,
-      }
-      baoCunYiZhuQueFeiShuJu(shaungChuanData).then((res) => {
-        getXuQueFeiXiangXiXinXi(patient.value.inpatientNo, patient.value.admissTimes, dept)
-          .then((res) => {
-            queFeiXiangQingData.value = res
-          })
-          .catch(() => {
-            queFeiXiangQingData.value = []
-          })
+      ElMessageBox.confirm(`请确认数据其中<br>确认<span style='color:#67C23A'>【${queRenCount}】条</span><br><span style='color:#F56C6C'>取消【${quXiaoCount}】条</span>`, '提示', {
+        type: 'warning',
+        dangerouslyUseHTMLString: true,
       })
+        .then(() => {
+          let shaungChuanData = {
+            list: huanZheYiZhuFeiYongData.value,
+            execUnit: Cookie.get('dept'),
+          }
+          baoCunYiZhuQueFeiShuJu(shaungChuanData).then((res) => {
+            getXuQueFeiYiZhuClick()
+          })
+        })
+        .catch(() => {})
+    }
+
+    const lingShiQueFeiShuJu = ref({
+      list: [],
+      currentPage: 1,
+      pageSize: 8,
+      total: 0,
+    })
+
+    const lingShiQueFeiShuJuClick = (val) => {
+      lingShiQueFeiShuJu.value.list = val
+      lingShiQueFeiShuJu.value.currentPage = 1
+      lingShiQueFeiShuJu.value.pageSize = 8
+      lingShiQueFeiShuJu.value.total = val.length
+      console.log(lingShiQueFeiShuJu.value)
+    }
+
+    const lingShiFanYe = (val) => {
+      lingShiQueFeiShuJu.value.currentPage = val
     }
 
     onMounted(() => {
@@ -247,16 +348,68 @@ export default {
       huanZheYiZhuFeiYongData,
       winHeight,
       changeYiZhuQueFei,
-      getXuQueFeiXiangXiXinXiClick,
-      queFeiXiangQingData,
       chargeStatusData,
       chargeStatus,
       getDate,
-      yiJianXiuGaiClick,
       baoCunYiZhuQueFeiClick,
+      dateRange,
+      xiaoBiaoGeXinShiWeiZhi: ref([
+        { code: 'top', name: '上' },
+        { code: 'right', name: '右' },
+        { code: 'bottom', name: '下' },
+        { code: 'left', name: '左' },
+      ]),
+      biaoGeWeiZhi,
+      chaoZuo,
+      shortcuts,
+      lingShiQueFeiShuJu,
+      lingShiQueFeiShuJuClick,
+      lingShiFanYe,
+      yiZhuZhuangTai,
+      chaoZuoZhiNan,
     }
   },
 }
+function chaoZuo(val) {
+  let quXiao = 0
+  let queRen = 0
+  for (let i = 0; i < val.length; i++) {
+    if (val[i].chargeStatus === '1') {
+      queRen += 1
+    } else if (val[i].chargeStatus === '2') {
+      quXiao += 1
+    }
+  }
+  if (quXiao > 0 && queRen == 0) {
+    return `<span style='color:#F56C6C;font-size: 20px;'>取消【${quXiao}】</span>`
+  } else if (quXiao == 0 && queRen > 0) {
+    return `<span style='color:#67C23A;font-size: 20px;'>确认【${queRen}】</span>`
+  } else if (quXiao > 0 && queRen > 0) {
+    return `<span style='color:#67C23A;font-size: 20px;'>确认【${queRen}】</span><br><span style='color:#F56C6C;font-size: 20px;'>取消【${quXiao}】</span>`
+  }
+  return ''
+}
+
+function yiZhuZhuangTai(val) {
+  switch (val) {
+    case '0':
+      return '<span style="color:#67C23A">上账</span>'
+    case '1':
+      return ' <span style="color:#E6A23C">确认但未上账</span>'
+    case '2':
+      return ' <span style="color:#F56C6C">取消</span>'
+    case '5':
+      return '科室确认'
+    case '6':
+      return '科室录入'
+    case '7':
+      return '科室撤销'
+    case '8':
+      return '科室录入粗项(检验费)'
+    default:
+      return '未知'
+  }
+}
 </script>
 
 <style></style>

+ 1 - 1
src/views/med-tec-mod/YiJiFeiYongLuRu.vue

@@ -52,7 +52,7 @@
         :icon="queryTerm.riQiPaiXu === 'DESC' ? 'el-icon-caret-bottom' : 'el-icon-caret-top'"
         >{{ queryTerm.riQiPaiXu === 'DESC' ? '降序' : '升序' }}</el-button
       >
-      <el-select style="width: 100px" size="mini" v-model="queryTerm.feiYongLeiXingCode">
+      <el-select style="width: 70px" size="mini" v-model="queryTerm.feiYongLeiXingCode">
         <el-option v-for="item in feiYongLeiXing" :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>

+ 2 - 0
src/views/medical-insurance/inpatient/Home.vue

@@ -159,6 +159,7 @@ import { computed, onMounted, reactive, ref } from 'vue'
 import store from '@/store'
 import maleIcon from '@/assets/male-icon.png'
 import femaleIcon from '@/assets/female-icon.png'
+import dismissIcon from '@/assets/dismiss-icon.png'
 import { getOverView, getPatientInfo, getIdCardInfo, getEmpiViewUrl } from '@/api/yibao/patient'
 import { statusFlags, responceTypes } from '@/data/index'
 import { clone } from '@/utils/clone'
@@ -356,6 +357,7 @@ export default {
       cptInsutype,
       cptMedType,
       cptYesOrNo,
+      dismissIcon,
     }
   },
 }

+ 1 - 1
src/views/reports/HuiZhenTongJi.vue

@@ -118,7 +118,7 @@ export default {
       queryTerm.value.startTime = date.stratTime
       queryTerm.value.endTime = date.endTime
       getHuiZhenTongJiData(queryTerm.value).then((res) => {
-        huiZhenData.value = res.data
+        huiZhenData.value = res.records
         queryTerm.value.total = res.total
       })
     }

+ 252 - 0
src/views/reports/KeShiShouRuTongJi.vue

@@ -0,0 +1,252 @@
+<template>
+  <el-container>
+    <el-header style="margin-top: 10px">
+      <el-date-picker
+        type="daterange"
+        v-model="queryTerm.dateRange"
+        placeholder="选择日期"
+        size="mini"
+        style="width: 280px"
+        range-separator="至"
+        start-placeholder="开始日期"
+        end-placeholder="结束日期"
+        :shortcuts="clockinShortcuts"
+      ></el-date-picker>
+      <el-select size="mini" style="width: 70px" v-model="queryTerm.laiYuan">
+        <el-option label="住院" :value="0"></el-option>
+        <el-option label="门诊" :value="1"></el-option>
+      </el-select>
+      <span v-if="quanXian.indexOf(1) > -1 || quanXian.indexOf(34) > -1">
+        录入人
+        <el-select v-model="queryTerm.opId" size="mini" remote filterable clearable :remote-method="remoteMethodRenYuan" style="width: 100px">
+          <el-option v-for="item in renYuanList" :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>
+          </el-option>
+        </el-select>
+      </span>
+      申请科室
+      <el-select v-model="queryTerm.reqDeptCode" size="mini" remote filterable clearable style="width: 120px">
+        <el-option v-for="item in deptList" :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>
+        </el-option>
+      </el-select>
+      项目名称
+      <el-select v-model="queryTerm.chargeCodeMx" size="mini" remote filterable clearable :remote-method="remoteMethodChargeCode" style="width: 150px">
+        <el-option v-for="item in chargeCodeList" :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>
+        </el-option>
+      </el-select>
+      分类
+      <el-select v-model="queryTerm.fenLei" size="mini" style="width: 90px" @change="getKeShouFeiClick">
+        <el-option v-for="item in fenLeiDate" :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>
+        </el-option> </el-select
+      ><br />
+      <span v-if="quanXian.indexOf(1) > -1">
+        执行科室
+        <el-select v-model="queryTerm.execUnitList" size="mini" remote filterable multiple collapse-tags clearable>
+          <el-option v-for="item in deptList" :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>
+          </el-option>
+        </el-select>
+      </span>
+      <el-button size="mini" type="success" icon="el-icon-search" @click="getKeShouFeiClick">查询</el-button>
+      <el-button size="mini" type="primary" icon="el-icon-download" @click="exportExcel"> 导出excel</el-button>
+      <el-tag>总金额:{{ queryTerm.chargeFee }}</el-tag>
+    </el-header>
+    <el-main style="margin-top: 15px">
+      <el-table :height="windowHeigth / 1.15 - 10" :data="keShiFeiYongData" highlight-current-row stripe>
+        <el-table-column label="患者姓名" prop="patientName" v-if="queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="住院号" prop="patient" v-if="queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="次数" prop="times" v-if="queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="项目编码" prop="chargeCodeMx" v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="项目名称" prop="chargeCodeName" v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="收费日期" prop="chargeDate" width="80" v-if="queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="收费日期" prop="chargeDateString" width="80" v-if="queryTerm.fenLei === 0"></el-table-column>
+        <el-table-column label="录入人" prop="opName" v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 1"></el-table-column>
+        <el-table-column label="执行科室" prop="execUnitName" v-if="queryTerm.fenLei === 3"></el-table-column>【
+        <el-table-column label="申请科室" prop="wardCodeName" v-if="queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column label="金额" prop="chargeFee"></el-table-column>
+        <el-table-column label="数量" prop="chargeAmount"></el-table-column>
+        <el-table-column label="来源" prop="source"></el-table-column>
+      </el-table>
+      <el-pagination
+        :page-sizes="[20, 30, 40, 50]"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="fenYeQueryTerm.total"
+        style="margin-top: 5px"
+        :current-page="fenYeQueryTerm.currentPage"
+        :page-size="fenYeQueryTerm.pageSize"
+      ></el-pagination>
+    </el-main>
+  </el-container>
+</template>
+
+<script>
+import { clockinShortcuts } from '@/data/shortcuts'
+import { ref, onMounted } from 'vue'
+import { getKeShouFei } from '../../api/querydata/keshishourutongji.js'
+import jsCookie from 'js-cookie'
+import { getChargeCode, getDept, getRenYuan } from '../../api/public-api.js'
+import { getDateRangeFormatDate } from '../../utils/date.js'
+import store from '@/store'
+import { clone } from '../../utils/clone.js'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { downloadExcel } from '../../utils/excel.js'
+export default {
+  setup() {
+    const windowSize = store.state.app.windowSize
+    const windowHeigth = windowSize.h
+
+    const quanXian = jsCookie.get('roles')
+
+    const queryTerm = ref({
+      dateRange: clockinShortcuts[0].value,
+      laiYuan: 0,
+      opId: '',
+      chargeCodeMx: null,
+      reqDeptCode: '',
+      execUnitList: [jsCookie.get('dept')],
+      fenLei: 3,
+      currentPage: 1,
+      pageSize: 40,
+      total: 0,
+      chargeFee: 0,
+    })
+
+    const fenYeQueryTerm = ref({})
+
+    const renYuanList = ref([])
+    const chargeCodeList = ref([])
+    const deptList = ref([])
+
+    const keShiFeiYongData = ref([])
+
+    const remoteMethodRenYuan = (val) => {
+      if (val.length >= 2)
+        getRenYuan(val).then((res) => {
+          renYuanList.value = res
+        })
+    }
+
+    const remoteMethodChargeCode = (val) => {
+      if (val.length >= 2) {
+        getChargeCode(val).then((res) => {
+          chargeCodeList.value = res
+        })
+      }
+    }
+
+    const getKeShouFeiClick = () => {
+      let date = getDateRangeFormatDate(queryTerm.value.dateRange)
+      queryTerm.value.startTime = date.stratTime
+      queryTerm.value.endTime = date.endTime
+      queryTerm.value.currentPage = 1
+      queryTerm.value.total = 0
+      getKeShouFei(queryTerm.value).then((res) => {
+        queryTerm.value.chargeFee = res.chargeFee
+        queryTerm.value.total = res.total
+        keShiFeiYongData.value = res.data
+        fenYeQueryTerm.value = clone(queryTerm.value)
+      })
+    }
+
+    const handleSizeChange = (val) => {
+      fenYeQueryTerm.value.pageSize = val
+      getKeShouFei(fenYeQueryTerm.value).then((res) => {
+        keShiFeiYongData.value = res.data
+      })
+    }
+
+    const handleCurrentChange = (val) => {
+      fenYeQueryTerm.value.currentPage = val
+      getKeShouFei(fenYeQueryTerm.value).then((res) => {
+        keShiFeiYongData.value = res.data
+      })
+    }
+
+    const exportExcel = () => {
+      if (keShiFeiYongData.value.length <= 0) {
+        return ElMessage.warning({ message: '请先查询出数据' })
+      }
+      ElMessageBox.prompt('导出文件名字', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        inputPattern: /\S/,
+        inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
+      })
+        .then(({ value }) => {
+          store.commit('SET_LOADING', true)
+          const data = {
+            param: {
+              startTime: fenYeQueryTerm.value.startTime,
+              endTime: fenYeQueryTerm.value.endTime,
+              fenLei: fenYeQueryTerm.value.fenLei,
+              chargeCodeMx: fenYeQueryTerm.value.chargeCodeMx,
+              opId: fenYeQueryTerm.value.opId,
+              currentPage: 1,
+              pageSize: fenYeQueryTerm.value.total,
+              total: fenYeQueryTerm.value.total,
+              execUnitList: fenYeQueryTerm.value.execUnitList,
+              reqDeptCode: fenYeQueryTerm.value.reqDeptCode,
+              laiYuan: fenYeQueryTerm.value.laiYuan,
+            },
+            url: '/keShiTongJi/exportExcel',
+            fileName: value + '.xlsx',
+          }
+          setTimeout(() => {
+            downloadExcel(data)
+          }, 500)
+        })
+        .catch(() => {})
+    }
+
+    onMounted(() => {
+      getDept().then((res) => {
+        deptList.value = res
+      })
+      if (!(quanXian.indexOf(1) > -1 || quanXian.indexOf(34) > -1)) {
+        queryTerm.value.opId = jsCookie.get('code')
+      }
+    })
+
+    return {
+      queryTerm,
+      clockinShortcuts,
+      remoteMethodRenYuan,
+      renYuanList,
+      chargeCodeList,
+      remoteMethodChargeCode,
+      deptList,
+      fenLeiDate: ref([
+        { code: 0, name: '日期' },
+        { code: 1, name: '录入人' },
+        { code: 2, name: '项目编码' },
+        { code: 3, name: '不分类' },
+      ]),
+      getKeShouFeiClick,
+      windowHeigth,
+      keShiFeiYongData,
+      handleSizeChange,
+      handleCurrentChange,
+      fenYeQueryTerm,
+      exportExcel,
+      quanXian,
+    }
+  },
+}
+</script>
+
+<style></style>