Просмотр исходного кода

优化代码以及提示信息

xiaochan 3 лет назад
Родитель
Сommit
925f12cccf

+ 5 - 0
src/App.vue

@@ -186,4 +186,9 @@ function getWindowSize() {
   width: 30%;
   text-align: right;
 }
+
+table th.star div::after {
+  content: '*';
+  color: red;
+}
 </style>

+ 9 - 1
src/api/public-api.js

@@ -37,9 +37,17 @@ export function maZuiFangShi() {
     })
 }
 
-export async function getServerDateApi() {
+export function getServerDateApi() {
     return request({
         url: '/publicApi/getDate',
         method: 'get',
     });
 }
+
+export function yaoPinShiFouPiPeiYiBao(data) {
+    return request({
+        url: '/publicApi/yaoPinXiangMuPiPeiYiBao',
+        method: 'post',
+        data
+    })
+}

+ 32 - 0
src/components/zhu-yuan-yi-sheng/CuoWuXinXi.vue

@@ -0,0 +1,32 @@
+<template>
+  <el-divider direction="vertical"></el-divider>
+  <el-popover :width="500" placement="bottom-end" title="错误信息" trigger="click">
+    <template #reference>
+      <el-badge :is-dot="cuoWuXinXi.length > 0" type="danger">
+        <el-button>错误信息</el-button>
+      </el-badge>
+    </template>
+    <template #default>
+      <el-button v-show="cuoWuXinXi.length > 0" @click="cuoWuXinXi = '' ">清空</el-button>
+      <el-divider v-show="cuoWuXinXi.length > 0" style="margin:5px 0"></el-divider>
+      <span v-html="cuoWuXinXi"></span>
+    </template>
+  </el-popover>
+</template>
+
+<script>
+import {cuoWuXinXi} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+
+export default {
+  name: "CuoWuXinXi",
+  setup() {
+    return {
+      cuoWuXinXi
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>

+ 58 - 12
src/components/zhu-yuan-yi-sheng/TianJiaJianChaJianYan.vue

@@ -32,8 +32,9 @@
       <el-button icon="el-icon-arrow-left" style="font-size: 14px" type="text" @click="router.go(-1)">返回</el-button>
       <el-button :disabled="xuanZhongJianCha.data.length === 0" @click="dianJiBaoCunShenQing">保存</el-button>
       <el-button :disabled="xuanZhongJianCha.data.length === 0" @click="baoCunMuBan.dialog = true">存为模板</el-button>
+      <cuo-wu-xin-xi/>
       <!--   这里是检查的数据信息     -->
-      <el-table :data="xuanZhongJianCha.data" :height="windowSize.h / 1.4">
+      <el-table :data="xuanZhongJianCha.data" :header-cell-class-name="starAdd" :height="windowSize.h / 1.4">
         <el-table-column label="项目编码" prop="orderCode"></el-table-column>
         <el-table-column label="项目名称" prop="orderName" show-overflow-tooltip></el-table-column>
         <el-table-column label="检查时间" prop="startTime" show-overflow-tooltip></el-table-column>
@@ -51,7 +52,7 @@
         <el-table-column v-if="!jianCha" label="标本" prop="inspectStuffName" show-overflow-tooltip></el-table-column>
         <el-table-column :label="jianCha ? '病室摘要' : '申请说明'" prop="reqComment" show-overflow-tooltip></el-table-column>
         <el-table-column v-if="jianCha" label="体征信息" prop="reqTzComment" show-overflow-tooltip></el-table-column>
-        <el-table-column v-if="jianCha" label="相关辅检结果" prop="reqOtherResult" show-overflow-tooltip></el-table-column>
+        <el-table-column v-if="jianCha" label="辅检结果" prop="reqOtherResult" show-overflow-tooltip></el-table-column>
         <el-table-column v-if="jianCha" label="临床诊断" prop="diagText" show-overflow-tooltip></el-table-column>
         <el-table-column label="编辑" width="120">
           <template #default="scope">
@@ -126,16 +127,22 @@ import {
 import store from "@/store";
 import {clone} from "@/utils/clone";
 import {ElMessage, ElMessageBox} from "element-plus";
-import {listNotBlank} from "@/utils/blank-utils";
+import {listNotBlank, stringNotBlank} from "@/utils/blank-utils";
 import BianJiJianChaShenQing
   from "@/views/hospitalization/zhu-yuan-yi-sheng/jian-cha-jian-yan-shen-qing/BianJiJianChaJianYanShenQing.vue";
 import {huanHangXianShi} from "@/utils/date";
-import {huanZheXinXi, youWuXuanZheHuanZhe} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import {
+  cuoWuXinXi,
+  huanZheXinXi,
+  youWuXuanZheHuanZhe
+} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import router from '@/router'
+import {yaoPinShiFouPiPeiYiBao} from "@/api/public-api";
+import CuoWuXinXi from "@/components/zhu-yuan-yi-sheng/CuoWuXinXi.vue";
 
 export default {
   name: "tianJiaJianChaJianYan",
-  components: {BianJiJianChaShenQing},
+  components: {CuoWuXinXi, BianJiJianChaShenQing},
   props: {
     jianCha: {
       type: Boolean,
@@ -222,13 +229,41 @@ export default {
 
     const dianJiBaoCunShenQing = () => {
       if (youWuXuanZheHuanZhe()) return
-      let data = huanZheXinXi.value
-      data.list = xuanZhongJianCha.value.data
-      data.reqType = props.jianCha ? 3 : 2
-      baoCunJianYanJianCha(data).then(res => {
-        xuanZhongJianCha.value.weiBianMa = []
-        xuanZhongJianCha.value.data = []
+      let listCode = []
+      xuanZhongJianCha.value.data.forEach(item => {
+        listCode.push(item.orderCode + "-00")
+      })
+      yaoPinShiFouPiPeiYiBao(listCode).then((res) => {
+        if (stringNotBlank(res)) {
+          cuoWuXinXi.value = res
+          ElMessageBox.confirm(res, '提示', {
+            type: 'warning',
+            dangerouslyUseHTMLString: true,
+          }).then(() => {
+            baoCunShuJu()
+          }).catch(() => {
+          })
+        } else {
+          baoCunShuJu()
+        }
+      })
+
+    }
+
+    function baoCunShuJu() {
+      ElMessageBox.confirm('确定要保存这些数据吗?', '提示', {
+        type: 'warning'
+      }).then(() => {
+        let data = huanZheXinXi.value
+        data.list = xuanZhongJianCha.value.data
+        data.reqType = props.jianCha ? 3 : 2
+        baoCunJianYanJianCha(data).then(res => {
+          xuanZhongJianCha.value.weiBianMa = []
+          xuanZhongJianCha.value.data = []
+        })
+      }).catch(() => {
       })
+
     }
 
 
@@ -300,6 +335,14 @@ export default {
       bianJiRef.value.daKaiBenDuiHua(xuanZhongJianCha.value.data[index], index, xuanZhongJianCha.value.data.length)
     }
 
+    const starAdd = (obj) => {
+      let index = [0, 1, 2, 3, 6, 7, 8, 9]
+      if (index.indexOf(obj.columnIndex) > -1) {
+        return 'star';
+      }
+    }
+
+
     onMounted(() => {
       dianJiLeiXingChaXun()
     })
@@ -327,7 +370,8 @@ export default {
       bianJiFanYe,
       jianCha: props.jianCha,
       biaoBenShuJu,
-      router
+      router,
+      starAdd,
     }
   }
 }
@@ -341,4 +385,6 @@ export default {
 :deep(.el-table) {
   --el-table-row-hover-background-color: #85dbfd7a;
 }
+
+
 </style>

+ 20 - 4
src/components/zhu-yuan-yi-sheng/jian-cha-shen-qing/ShuoMingMuBan.vue

@@ -38,13 +38,17 @@
         </el-pagination>
       </el-aside>
       <el-main>
-        <div v-for="item in jcText">
+        <div v-for="item in jcText" v-if="jsonType">
           <div class="jc-header">{{ item.header }}:
             <el-button circle class="iconfont icon-fuzhi" @click="fuZhi(item.content)"></el-button>
           </div>
           <div class="jc-content"><span>{{ item.content }}</span></div>
           <br><br>
         </div>
+
+        <div v-else>
+          <el-input v-model="stringJcText" :rows="20" type="textarea"></el-input>
+        </div>
       </el-main>
     </el-container>
   </el-dialog>
@@ -126,11 +130,14 @@ export default {
       return store.state.app.windowSize
     })
 
+    const jsonType = ref(false)
+
     const dialog = ref(false)
     const leiXing = ref(3)
     const name = ref('')
 
     const jcText = ref([])
+    const stringJcText = ref('')
 
     const bianJiMuBan = ref({
       dialog: false,
@@ -169,16 +176,23 @@ export default {
       switch (chaoZuo) {
         case '查看':
           try {
+            jsonType.value = true
             jcText.value = JSON.parse(row.jcText)
           } catch (e) {
-            ElMessage.error('无法使用老系统数据。')
+            jsonType.value = false
+            stringJcText.value = row.jcText
           }
           break;
         case '修改':
           bianJiMuBan.value.dialog = true
           bianJiMuBan.value.leiXing = '修改'
           bianJiMuBan.value.data = clone(row)
-          bianJiMuBan.value.data.jcText = JSON.parse(row.jcText)
+          try {
+            bianJiMuBan.value.data.jcText = JSON.parse(row.jcText)
+          } catch (e) {
+            bianJiMuBan.value.dialog = false
+            ElMessage.error("老系统数据无法修改")
+          }
           break;
         case '删除':
           ElMessageBox.confirm('您确定要删除该模板吗?', '提示', {
@@ -254,7 +268,9 @@ export default {
       xinZengMuBan,
       jcText,
       fuZhi,
-      tianJiaMuBanNeiRong
+      tianJiaMuBanNeiRong,
+      jsonType,
+      stringJcText
     }
   }
 }

+ 4 - 2
src/views/hospitalization/zhu-yuan-yi-sheng/XinZengShuJu.vue

@@ -16,7 +16,7 @@ import XinZengShouShuShenQing
   from "@/views/hospitalization/zhu-yuan-yi-sheng/shou-shu-shen-qing/XinZengShouShuShenQing.vue";
 import XinZhenCaoYao from "@/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/XinZhengCaoYao.vue";
 import {ElNotification} from "element-plus";
-import {huanZheXinXi} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import {cuoWuXinXi, huanZheXinXi} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import {stringIsBlank} from "@/utils/blank-utils";
 
 export default {
@@ -28,6 +28,7 @@ export default {
     let notify = null
 
     onActivated(() => {
+      name.value = ''
       if (router.currentRoute.value.params.name) {
         name.value = router.currentRoute.value.params.name
       } else {
@@ -52,8 +53,9 @@ export default {
     })
 
     onDeactivated(() => {
-      name.value = ''
+      name.value = '关闭'
       notify.close()
+      cuoWuXinXi.value = ''
     })
 
     return {

+ 43 - 13
src/views/hospitalization/zhu-yuan-yi-sheng/cao-yao-yi-zhu/XinZhengCaoYao.vue

@@ -7,27 +7,28 @@
       <el-button :disabled="mingXi.list.length === 0 " type="success" @click="cunMuBan.dialog = true">存模板</el-button>
       <el-divider direction="vertical"></el-divider>
       <el-button :disabled="mingXi.list.length === 0 " type="success" @click="dianJiBaoCunCaoYao">保存数据</el-button>
+      <cuo-wu-xin-xi/>
     </el-header>
     <el-main>
       <el-form label-width="120px">
         <el-row>
           <el-col :span="6">
-            <el-form-item label="处方名:">
+            <el-form-item label="处方名:" :required="true">
               <el-input v-model="chuFang.orderName" style="width: 120px;"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="剂数:">
+            <el-form-item label="剂数:" :required="true">
               <el-input-number v-model="chuFang.quantity" :min="0"></el-input-number>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="代煎:">
+            <el-form-item label="代煎:" :required="true">
               <el-input-number v-model="chuFang.quantityDj" :max="chuFang.quantity" :min="0"></el-input-number>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="执行科室:">
+            <el-form-item label="执行科室:" :required="true">
               {{ huanZheXinXi.smallDeptName }}
             </el-form-item>
           </el-col>
@@ -75,7 +76,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="药房:">
+            <el-form-item label="药房:" :required="true">
               <el-switch
                   v-model="chuFang.groupNo"
                   active-color="#13ce66"
@@ -93,14 +94,14 @@
       <el-divider></el-divider>
       <el-form label-width="120px">
         <el-row>
-          <el-col :span="6">
-            <el-form-item label="药品编码:">
-              <el-input v-model="caoYao.chargeCode" @click="chaXunCaoYaoZuJian = true"></el-input>
+          <el-col :span="6" @click="chaXunCaoYaoZuJian = true">
+            <el-form-item label="药品编码:" :required="true">
+              <el-input v-model="caoYao.chargeCode" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="药品名称:">
-              <el-input v-model="caoYao.chargeCodeName"></el-input>
+            <el-form-item label="药品名称:" :required="true">
+              <el-input v-model="caoYao.chargeCodeName" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -161,17 +162,23 @@
 <script>
 import router from '@/router'
 import {computed, onMounted, ref, watch} from "vue";
-import {huanZheXinXi, youWuXuanZheHuanZhe} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
+import {
+  cuoWuXinXi,
+  huanZheXinXi,
+  youWuXuanZheHuanZhe
+} from "@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng";
 import {baoCunCaoYao, chongFuMuBanMing, cunMuBanApi, fuYongFangFa} from "@/api/zhu-yuan-yi-sheng/cao-yao-yi-zhu";
 import store from "@/store";
 import {ElMessage, ElMessageBox} from "element-plus";
-import {stringIsBlank} from "@/utils/blank-utils";
+import {stringIsBlank, stringNotBlank} from "@/utils/blank-utils";
 import ChaXuanCaoYao from "@/components/zhu-yuan-yi-sheng/cao-yao-yi-zhu/ChaXuanCaoYao.vue";
 import CaoYaoMuBan from "@/components/zhu-yuan-yi-sheng/cao-yao-yi-zhu/CaoYaoMuBan.vue";
+import {yaoPinShiFouPiPeiYiBao} from "@/api/public-api";
+import CuoWuXinXi from "@/components/zhu-yuan-yi-sheng/CuoWuXinXi.vue";
 
 export default {
   name: "XinZhenCaoYao",
-  components: {CaoYaoMuBan, ChaXuanCaoYao},
+  components: {CuoWuXinXi, CaoYaoMuBan, ChaXuanCaoYao},
   setup() {
     const windowSize = computed(() => {
       return store.state.app.windowSize
@@ -324,6 +331,29 @@ export default {
       if (chuFang.value.quantityDj === 0) {
         return ElMessage.error("请选择代煎数")
       }
+      let listCode = []
+      mingXi.value.list.forEach(item => {
+        listCode.push(item.chargeCode + '-' + item.serial)
+      })
+      yaoPinShiFouPiPeiYiBao(listCode).then((res) => {
+        yaoPinShiFouPiPeiYiBao(listCode).then((res) => {
+          if (stringNotBlank(res)) {
+            cuoWuXinXi.value = res
+            ElMessageBox.confirm(res, '提示', {
+              type: 'warning',
+              dangerouslyUseHTMLString: true,
+            }).then(() => {
+              baoCunShuJu()
+            }).catch(() => {
+            })
+          } else {
+            baoCunShuJu()
+          }
+        })
+      })
+    }
+
+    function baoCunShuJu() {
       ElMessageBox.confirm(chuFang.value.quantity > 20 ? '剂数大于20是否继续录入?' : '请确定好数据?', '提示', {
         type: 'warning'
       }).then(() => {

+ 6 - 6
src/views/hospitalization/zhu-yuan-yi-sheng/jian-cha-jian-yan-shen-qing/BianJiJianChaJianYanShenQing.vue

@@ -21,14 +21,14 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="检查时间:">
+          <el-form-item :required="true" label="检查时间:">
             <el-date-picker v-model="bianJiJianChaShuJu.startTime"
                             format="YYYY-MM-DD HH:mm:ss" style="width: 180px" type="datetime"
                             value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="执行科室:">
+          <el-form-item :required="true" label="执行科室:">
             {{ bianJiJianChaShuJu.execDeptName }}
           </el-form-item>
         </el-col>
@@ -72,7 +72,7 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item :label="jianCha ? '病室摘要:':'申请说明'">
+          <el-form-item :label="jianCha ? '病室摘要:':'申请说明'" :required="true">
             <el-input v-model="bianJiJianChaShuJu.reqComment" :rows="6" maxlength="125" show-word-limit
                       type="textarea"></el-input>
           </el-form-item>
@@ -81,19 +81,19 @@
           <el-button @click="daKaiShuoMingMuBan">说明模板</el-button>
         </el-col>
         <el-col v-if="jianCha" :span="24">
-          <el-form-item label="体征信息:">
+          <el-form-item :required="true" label="体征信息:">
             <el-input v-model="bianJiJianChaShuJu.reqTzComment" :rows="6" maxlength="125" show-word-limit
                       type="textarea"></el-input>
           </el-form-item>
         </el-col>
         <el-col v-if="jianCha" :span="24">
-          <el-form-item label="相关辅检结果:">
+          <el-form-item :required="true" label="相关辅检结果:">
             <el-input v-model="bianJiJianChaShuJu.reqOtherResult" :rows="6" maxlength="125" show-word-limit
                       type="textarea"></el-input>
           </el-form-item>
         </el-col>
         <el-col v-if="jianCha" :span="12">
-          <el-form-item label="临床诊断:">
+          <el-form-item ::required="true" label="临床诊断:">
             <el-select v-model="bianJiJianChaShuJu.diagCode"
                        :remote-method="linChuangZhenDuanSuoSou" clearable
                        filterable remote size="mini"

+ 3 - 0
src/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng.js

@@ -13,6 +13,8 @@ export const selectWardCode = ref(0)
 export const muBanMing = ref({})
 // 复制选中的医嘱
 export const fuZhiYiZhu = ref([])
+// 错误信息系
+export const cuoWuXinXi = ref('')
 
 export function youWuXuanZheHuanZhe() {
     if (stringIsBlank(huanZheXinXi.value.inpatientNo)) {
@@ -56,3 +58,4 @@ export function shouShuDengJi(val) {
             return "";
     }
 }
+

+ 45 - 24
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TianJiaYiZhu.vue

@@ -7,21 +7,14 @@
   <el-button icon="el-icon-arrow-left" style="font-size: 14px" type="text" @click="router.go(-1)">返回</el-button>
   <el-button type="primary" @click="muBanRef.dialog = true">获取模板</el-button>
   <el-button :disabled="yiZhuList.length === 0" type="primary" @click="baoCunMuBanClick">保存模板</el-button>
-  <el-popover :width="260" placement="bottom-end" title="错误信息" trigger="click">
-    <template #reference>
-      <el-button>错误信息</el-button>
-    </template>
-    <template #default>
-      <span v-html="cuoWuXinXi"></span>
-    </template>
-  </el-popover>
   <el-button icon="el-icon-check" type="success" @click="baoCunYiZhuClick">保存</el-button>
   {{ count }}
+  <cuo-wu-xin-xi/>
   <el-form ref="yiZhuRef" v-model="yiZhuData" label-width="90px" size="mini">
     <el-row>
-      <el-col :span="span">
-        <el-form-item class="biTian" label="医嘱名称:" prop="orderName">
-          <el-input v-model="yiZhuData.orderName" @click="yiZhuMingDialog = true"></el-input>
+      <el-col :span="span" @click="yiZhuMingDialog = true">
+        <el-form-item class="biTian" label="医嘱名称:" prop="orderName" :required="true">
+          <el-input v-model="yiZhuData.orderName" disabled></el-input>
         </el-form-item>
       </el-col>
       <el-col :span="span">
@@ -30,7 +23,7 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="频率:" prop="orderName">
+        <el-form-item label="频率:" prop="orderName" :required="true">
           <el-select
               v-model="yiZhuData.frequCode"
               :remote-method="pinLvRemoteMethod"
@@ -49,7 +42,7 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="一次剂量:" prop="orderName">
+        <el-form-item label="一次剂量:" prop="orderName" :required="true">
           <el-input-number v-model="yiZhuData.dose" :min="0" :precision="2" style="width: 110px"
                            @change="jiSuanLingLiang"></el-input-number>
           <el-select v-model="yiZhuData.doseUnit" size="mini" style="width: 80px" @change="xuanZheJiLiang">
@@ -67,7 +60,7 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="给药方式:" prop="orderName">
+        <el-form-item label="给药方式:" prop="orderName" :required="true">
           <el-select v-model="yiZhuData.supplyCode" :remote-method="geiYaoFangShiRemoteMethod" filterable remote
                      size="mini">
             <el-option v-for="item in geiYaoFangShiData" :key="item.code" :label="item.name" :value="item.code">
@@ -84,7 +77,7 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="开始时间:" prop="orderName">
+        <el-form-item label="开始时间:" prop="orderName" :required="true">
           <el-date-picker
               v-model="yiZhuData.startTime"
               :disabled-date="disabledDate"
@@ -95,7 +88,7 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="停止时间:" prop="orderName">
+        <el-form-item label="停止时间:" prop="orderName" :required="true">
           <el-date-picker
               v-model="yiZhuData.endTime"
               :disabled="yiZhuData.frequCode === 'ONCE'"
@@ -112,7 +105,7 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="执行科室:" prop="orderName">
+        <el-form-item label="执行科室:" prop="orderName" :required="true">
           <el-select v-model="yiZhuData.execUnit" :remote-method="metZhiXingKeShi" filterable remote
                      style="width: 120px">
             <el-option v-for="item in zhiXingKeShiData" :key="item.code" :label="item.name" :value="item.code">
@@ -164,14 +157,14 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="医保自费:">
+        <el-form-item label="医保自费:" :required="true">
           <el-switch v-model="yiZhuData.ybSelfFlag" active-color="#13ce66" active-text="自费" active-value="1"
                      inactive-color="#ff4949" inactive-text="记账" inactive-value="0">
           </el-switch>
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="是否紧急:">
+        <el-form-item label="是否紧急:" :required="true">
           <el-switch v-model="yiZhuData.emergencyFlag" active-color="#13ce66" active-text="是" active-value="1"
                      inactive-color="#ff4949" inactive-text="否" inactive-value="0">
           </el-switch>
@@ -287,6 +280,7 @@ import {
   shangChuanYiZhu
 } from '@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru'
 import {
+  cuoWuXinXi,
   fuZhiYiZhu,
   getSelfBuy,
   huanZheXinXi,
@@ -300,19 +294,20 @@ import {clone} from '@/utils/clone'
 import HuoQuMuBan from '../../../../components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/HuoQuMuBan.vue'
 import {uuid} from '@/utils/getUuid'
 import BaoCunMuBan from '../../../../components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/BaoCunMuBan.vue'
-import {getServerDateApi} from '@/api/public-api'
+import {getServerDateApi, yaoPinShiFouPiPeiYiBao} from '@/api/public-api'
 import router from '@/router'
 import SouSuoYiZhu from "@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/SouSuoYiZhu.vue";
+import CuoWuXinXi from "@/components/zhu-yuan-yi-sheng/CuoWuXinXi.vue";
 
 export default {
   name: 'TianJiaYiZhu',
-  components: {SouSuoYiZhu, BaoCunMuBan, HuoQuMuBan},
+  components: {CuoWuXinXi, SouSuoYiZhu, BaoCunMuBan, HuoQuMuBan},
   setup() {
     const windowSize = computed(() => {
       return store.state.app.windowSize
     })
 
-    const cuoWuXinXi = ref('')
+
     // 设置倒计时
     const seconds = ref(600)
     // 倒计时提示
@@ -630,14 +625,38 @@ export default {
       ElMessage.success('复制成功')
     }
 
+
     /* 保存信息 */
     const baoCunYiZhuClick = () => {
       if (listIsBlank(yiZhuList.value)) {
         return ElMessage.error('请先选择数据')
       }
       if (youWuXuanZheHuanZhe()) return
+      let yiBaoBianMaTiShi = []
+      yiZhuList.value.forEach(item => {
+        yiBaoBianMaTiShi.push(item.orderCode + "-" + item.serial)
+      })
+      yaoPinShiFouPiPeiYiBao(yiBaoBianMaTiShi).then((res) => {
+        if (stringNotBlank(res)) {
+          cuoWuXinXi.value = res
+          ElMessageBox.confirm(res, '提示', {
+            type: 'warning',
+            dangerouslyUseHTMLString: true,
+            confirmButtonText: '继续录入'
+          }).then((res) => {
+            baoCunYiZhu()
+          }).catch(() => {
+          })
+        } else {
+          baoCunYiZhu()
+        }
+      })
+    }
+
+    function baoCunYiZhu() {
       ElMessageBox.confirm('您确定要保存这些数据吗?请仔细检查数据。', '提示', {
-        type: 'warning'
+        type: 'warning',
+        closeOnClickModal: false,
       }).then(() => {
         let data = {
           inpatientNo: huanZheXinXi.value.inpatientNo,
@@ -794,7 +813,7 @@ export default {
     let daoJiShi = null
 
     onMounted(() => {
-      yiZhuList.value = fuZhiYiZhu.value
+      yiZhuList.value = clone(fuZhiYiZhu.value)
       for (let i = 0; i < yiZhuList.value.length; i++) {
         yiZhuList.value[i].id = yiZhuList.value[i].actOrderNo
       }
@@ -812,9 +831,11 @@ export default {
           },
         ]
       }
+      fuZhiYiZhu.value = []
     })
 
     onUnmounted(() => {
+      ElMessageBox.close()
       clearInterval(daoJiShi)
     })
 

+ 44 - 40
src/views/reports/KeShiShouRuTongJi.vue

@@ -2,22 +2,22 @@
   <el-container>
     <el-header style="margin-top: 10px">
       <el-date-picker
-          type="daterange"
           v-model="queryTerm.dateRange"
+          :shortcuts="clockinShortcuts"
+          end-placeholder="结束日期"
           placeholder="选择日期"
-          style="width: 280px"
           range-separator="至"
           start-placeholder="开始日期"
-          end-placeholder="结束日期"
-          :shortcuts="clockinShortcuts"
+          style="width: 280px"
+          type="daterange"
       ></el-date-picker>
-      <el-select style="width: 70px" v-model="queryTerm.laiYuan">
-        <el-option label="住院" :value="0"></el-option>
-        <el-option label="门诊" :value="1"></el-option>
+      <el-select v-model="queryTerm.laiYuan" style="width: 70px">
+        <el-option :value="0" label="住院"></el-option>
+        <el-option :value="1" label="门诊"></el-option>
       </el-select>
       <span v-if="quanXian.indexOf(1) > -1 || quanXian.indexOf(34) > -1">
         录入人
-        <el-select v-model="queryTerm.opId" remote filterable clearable :remote-method="remoteMethodRenYuan"
+        <el-select v-model="queryTerm.opId" :remote-method="remoteMethodRenYuan" clearable filterable remote
                    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>
@@ -27,7 +27,7 @@
         </el-select>
       </span>
       申请科室
-      <el-select v-model="queryTerm.reqDeptCode" remote filterable clearable style="width: 120px">
+      <el-select v-model="queryTerm.reqDeptCode" clearable filterable remote 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>
@@ -35,7 +35,7 @@
         </el-option>
       </el-select>
       项目名称
-      <el-select v-model="queryTerm.chargeCodeMx" remote filterable clearable :remote-method="remoteMethodChargeCode"
+      <el-select v-model="queryTerm.chargeCodeMx" :remote-method="remoteMethodChargeCode" clearable filterable remote
                  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>
@@ -55,7 +55,7 @@
       <br/>
       <span v-if="quanXian.indexOf(1) > -1">
         执行科室
-        <el-select v-model="queryTerm.execUnitList" remote filterable multiple collapse-tags clearable>
+        <el-select v-model="queryTerm.execUnitList" clearable collapse-tags filterable multiple remote>
           <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>
@@ -63,40 +63,40 @@
           </el-option>
         </el-select>
       </span>
-      <el-button type="success" icon="el-icon-search" @click="getKeShouFeiClick">查询</el-button>
-      <el-button type="primary" icon="el-icon-download" @click="exportExcel"> 导出excel</el-button>
+      <el-button icon="el-icon-search" type="success" @click="getKeShouFeiClick">查询</el-button>
+      <el-button icon="el-icon-download" type="primary" @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 :data="keShiFeiYongData" :height="windowHeigth / 1.15 - 10" highlight-current-row stripe>
+        <el-table-column v-if="queryTerm.fenLei === 3" label="患者姓名" prop="patientName"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 3" label="住院号" prop="patient"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 3" label="次数" prop="times"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3" label="项目编码"
+                         prop="chargeCodeMx"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 2 || queryTerm.fenLei === 3" label="项目名称"
+                         prop="chargeCodeName"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 3" label="执行日期" prop="chargeDate" width="80"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 0" label="收费日期" prop="chargeDateString"
+                         width="80"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 3 || queryTerm.fenLei === 1" label="录入人"
+                         prop="opName"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 3" label="执行科室" prop="execUnitName"></el-table-column>
-        <el-table-column label="申请科室" prop="wardCodeName" v-if="queryTerm.fenLei === 3"></el-table-column>
+        <el-table-column v-if="queryTerm.fenLei === 3" label="申请科室" prop="wardCodeName"></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
+          :current-page="fenYeQueryTerm.currentPage"
+          :page-size="fenYeQueryTerm.pageSize"
           :page-sizes="[20, 30, 40, 50]"
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-          layout="total, sizes, prev, pager, next, jumper"
           :total="fenYeQueryTerm.total"
+          layout="total, sizes, prev, pager, next, jumper"
           style="margin-top: 5px"
-          :current-page="fenYeQueryTerm.currentPage"
-          :page-size="fenYeQueryTerm.pageSize"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
       ></el-pagination>
     </el-main>
   </el-container>
@@ -104,14 +104,14 @@
 
 <script>
 import {clockinShortcuts} from '@/data/shortcuts'
-import {ref, onMounted} from 'vue'
-import {getKeShouFei} from '../../api/querydata/keshishourutongji.js'
-import {getChargeCode, getDept, getRenYuan} from '../../api/public-api.js'
-import {getDateRangeFormatDate} from '../../utils/date.js'
+import {onMounted, ref} from 'vue'
+import {getKeShouFei} from '@/api/querydata/keshishourutongji'
+import {getChargeCode, getDept, getRenYuan} from '@/api/public-api'
+import {getDateRangeFormatDate} from '@/utils/date'
 import store from '@/store'
-import {clone} from '../../utils/clone.js'
+import {clone} from '@/utils/clone'
 import {ElMessage, ElMessageBox} from 'element-plus'
-import {downloadExcel} from '../../utils/excel.js'
+import {downloadExcel} from '@/utils/excel'
 
 export default {
   setup() {
@@ -134,7 +134,11 @@ export default {
       chargeFee: 0,
     })
 
-    const fenYeQueryTerm = ref({})
+    const fenYeQueryTerm = ref({
+      total: 0,
+      currentPage: 1,
+      pageSize: 40
+    })
 
     const renYuanList = ref([])
     const chargeCodeList = ref([])