xiaochan 3 лет назад
Родитель
Сommit
14f6d7d9f2

+ 1 - 1
.prettierrc.js

@@ -1,5 +1,5 @@
 module.exports = {
-  semi: true, // 行位是否使用分号,默认为true
+  semi: false, // 行位是否使用分号,默认为true
   trailingComma: 'es5', // 是否使用尾逗号,有三个可选值"<none|es5|all>"
   singleQuote: true, // 字符串是否使用单引号,默认为false,使用双引号
   printWidth: 180, // 一行的字符数,如果超过会进行换行,默认为80

+ 1 - 1
src/layout/Menu/MenuItem.vue

@@ -65,7 +65,7 @@ export default defineComponent({
       }
       return type
     })
-    // todo: 优化多层if
+    // TODO: 优化多层if
     const pathResolve = computed(() => {
       let path = ''
       if (showMenuType.value === 1) {

+ 1 - 1
src/store/modules/app.js

@@ -4,7 +4,7 @@ const state = () => ({
     isCollapse: true, // 侧边栏是否收缩展示
     contentFullScreen: false, // 内容是否可全屏展示
     showLogo: true, // 是否显示Logo
-    fixedTop: false, // 是否固定顶部, todo,暂未使用
+    fixedTop: false, // 是否固定顶部, TODO,暂未使用
     showTabs: true, // 是否显示导航历史
     expandOneMenu: true, // 一次是否只能展开一个菜单
     elementSize: 'mini', // element默认尺寸,支持官网四个大小参数

+ 175 - 202
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/TianJiaYiZhu.vue

@@ -1,9 +1,8 @@
 <template>
   <!-- 这里是获取模板的 -->
-  <huo-qu-mu-ban v-if="muBanDuiHuaKuang"
-                 @close="muBanDuiHuaKuang = false" @muBanShuJu="muBanShuJu"></huo-qu-mu-ban>
+  <huo-qu-mu-ban v-if="muBanDuiHuaKuang" @close="muBanDuiHuaKuang = false" @muBanShuJu="muBanShuJu"></huo-qu-mu-ban>
   <bao-cun-mu-ban ref="baoCunMuBanRef"></bao-cun-mu-ban>
-  <template v-for="item in tiShiBiaoTi">
+  <template v-for="(item, index) in tiShiBiaoTi" :key="index">
     <el-alert :title="item.title" :type="item.type" effect="dark"></el-alert>
   </template>
   <el-button icon="el-icon-arrow-left" style="font-size: 14px" type="text" @click="router.go(-1)">返回</el-button>
@@ -11,26 +10,24 @@
   <el-button :disabled="yiZhuList.length === 0" type="primary" @click="baoCunMuBanClick">保存模板</el-button>
   <el-button icon="el-icon-check" type="success" @click="baoCunYiZhuClick">保存</el-button>
   {{ count }}
-  <cuo-wu-xin-xi/>
+  <cuo-wu-xin-xi />
   <el-divider direction="vertical"></el-divider>
-  <el-button :disabled="yiZhuData.serial === '00' || stringIsBlank(yiZhuData.serial)" icon="el-icon-view"
-             type="success" @click="HeLiYongYao.dialog = true">
-    药品用法
-  </el-button>
-  <yao-ping-xiang-qing v-if="HeLiYongYao.dialog" :code="HeLiYongYao.code"
-                       @close="HeLiYongYao.dialog = false"></yao-ping-xiang-qing>
+  <el-button :disabled="yiZhuData.serial === '00' || stringIsBlank(yiZhuData.serial)" icon="el-icon-view" type="success" @click="HeLiYongYao.dialog = true"> 药品用法 </el-button>
+  <el-divider direction="vertical"></el-divider>
+  <el-button @click="tiaoZhuanZhiHeLiYongYao">合理用药</el-button>
+  <yao-ping-xiang-qing v-if="HeLiYongYao.dialog" :code="HeLiYongYao.code" @close="HeLiYongYao.dialog = false"></yao-ping-xiang-qing>
   <el-form ref="yiZhuRef" v-model="yiZhuData" label-width="90px" size="mini">
     <el-row>
       <el-col :span="span" @click="yiZhuMingDialog = true">
         <el-form-item class="bi_tian" label="医嘱名称:" prop="orderName">
-          <div style="border-bottom: 1px  solid #000;height: 29px">
+          <div style="border-bottom: 1px solid #000; height: 29px">
             {{ yiZhuData.orderName }}
           </div>
         </el-form-item>
       </el-col>
       <el-col :span="span">
         <el-form-item label="规格:" prop="orderName">
-          <div style="border-bottom: 1px  solid #000;height: 29px">
+          <div style="border-bottom: 1px solid #000; height: 29px">
             {{ yiZhuData.drugSpecification }}
           </div>
         </el-form-item>
@@ -38,13 +35,14 @@
       <el-col :span="span">
         <el-form-item class="bi_tian" label="频率:" prop="frequCode">
           <el-select
-              v-model="yiZhuData.frequCode"
-              :remote-method="pinLvRemoteMethod"
-              clearable
-              filterable
-              remote
-              size="mini"
-              @change="yiZhuData.frequCode === 'ONCE' ? (yiZhuData.endTime = null) : ''">
+            v-model="yiZhuData.frequCode"
+            :remote-method="pinLvRemoteMethod"
+            clearable
+            filterable
+            remote
+            size="mini"
+            @change="yiZhuData.frequCode === 'ONCE' ? (yiZhuData.endTime = null) : ''"
+          >
             <el-option v-for="item in yaoPinPingLvData" :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>
@@ -55,8 +53,7 @@
       </el-col>
       <el-col :span="span">
         <el-form-item class="bi_tian" label="一次剂量:" prop="dose">
-          <el-input-number v-model="yiZhuData.dose" :min="0" :precision="2" style="width: 110px"
-                           @change="jiSuanLingLiang"></el-input-number>
+          <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">
             <el-option v-for="item in yaoPinJiLiangData" :key="item.code" :label="item.name" :value="item.code">
               <span style="color: #8492a6; font-size: 12px">{{ item.value }}</span>
@@ -67,14 +64,11 @@
         </el-form-item>
       </el-col>
       <el-col :span="span">
-        <el-form-item label="领量:">
-          {{ yiZhuData.drugQuan }} {{ yiZhuData.miniUnitName }}
-        </el-form-item>
+        <el-form-item label="领量:"> {{ yiZhuData.drugQuan }} {{ yiZhuData.miniUnitName }} </el-form-item>
       </el-col>
       <el-col :span="span">
         <el-form-item class="bi_tian" label="给药方式:" prop="supplyCode">
-          <el-select v-model="yiZhuData.supplyCode" :remote-method="geiYaoFangShiRemoteMethod" filterable remote
-                     size="mini">
+          <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">
               <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
               <el-divider direction="vertical"></el-divider>
@@ -91,23 +85,23 @@
       <el-col :span="span">
         <el-form-item class="bi_tian" label="开始时间:" prop="startTime">
           <el-date-picker
-              v-model="yiZhuData.startTime"
-              :disabled-date="disabledDate"
-              format="YYYY-MM-DD HH:mm:ss"
-              type="datetime"
-              value-format="YYYY-MM-DD HH:mm:ss"
+            v-model="yiZhuData.startTime"
+            :disabled-date="disabledDate"
+            format="YYYY-MM-DD HH:mm:ss"
+            type="datetime"
+            value-format="YYYY-MM-DD HH:mm:ss"
           ></el-date-picker>
         </el-form-item>
       </el-col>
       <el-col :span="span">
         <el-form-item class="bi_tian" label="停止时间:" prop="endTime">
           <el-date-picker
-              v-model="yiZhuData.endTime"
-              :disabled="yiZhuData.frequCode === 'ONCE'"
-              :disabled-date="disabledDate"
-              format="YYYY-MM-DD HH:mm:ss"
-              type="datetime"
-              value-format="YYYY-MM-DD HH:mm:ss"
+            v-model="yiZhuData.endTime"
+            :disabled="yiZhuData.frequCode === 'ONCE'"
+            :disabled-date="disabledDate"
+            format="YYYY-MM-DD HH:mm:ss"
+            type="datetime"
+            value-format="YYYY-MM-DD HH:mm:ss"
           ></el-date-picker>
         </el-form-item>
       </el-col>
@@ -118,8 +112,7 @@
       </el-col>
       <el-col :span="span">
         <el-form-item class="bi_tian" label="执行科室:" prop="execUnit">
-          <el-select v-model="yiZhuData.execUnit" :remote-method="metZhiXingKeShi" filterable remote
-                     style="width: 120px">
+          <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">
               <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
               <el-divider direction="vertical"></el-divider>
@@ -130,8 +123,7 @@
       </el-col>
       <el-col :span="span">
         <el-form-item label="父医嘱:" prop="orderName">
-          <el-select v-model="yiZhuData.parentNo" :disabled="yiZhuData.serial === '00'" clearable
-                     @clear="yiZhuData.parentNo = null" @click="fuYiZhuClick">
+          <el-select v-model="yiZhuData.parentNo" :disabled="yiZhuData.serial === '00'" clearable @clear="yiZhuData.parentNo = null" @click="fuYiZhuClick">
             <el-option v-for="item in fuYiZhuData" :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>
@@ -147,8 +139,7 @@
       </el-col>
       <el-col :span="span">
         <el-form-item label="医生嘱托:">
-          <el-input v-model="yiZhuData.instruction" clearable maxlength="50" show-word-limit style="width: 130px"
-                    type="textarea"></el-input>
+          <el-input v-model="yiZhuData.instruction" clearable maxlength="50" show-word-limit style="width: 130px" type="textarea"></el-input>
         </el-form-item>
       </el-col>
       <el-col :span="span">
@@ -170,23 +161,20 @@
       </el-col>
       <el-col :span="span">
         <el-form-item label="医保自费:">
-          <el-switch v-model="yiZhuData.ybSelfFlag" active-color="#13ce66" active-text="自费" active-value="1"
-                     inactive-color="#ff4949" inactive-text="记账" inactive-value="0">
+          <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-switch v-model="yiZhuData.emergencyFlag" active-color="#13ce66" active-text="是" active-value="1"
-                     inactive-color="#ff4949" inactive-text="否" inactive-value="0">
+          <el-switch v-model="yiZhuData.emergencyFlag" 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 v-if="yiZhuData.kjywFlag !== 0" :span="span">
         <el-form-item label="用药方式:">
           <el-select v-model="yiZhuData.yyfs" style="width: 120px" @change="kangJunYaoYongYaoFangShiGaiBian">
-            <el-option v-for="item in kangJunYaoWuYongYaoFangShi" :key="item.code" :label="item.name"
-                       :value="item.code">
+            <el-option v-for="item in kangJunYaoWuYongYaoFangShi" :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>
@@ -197,11 +185,11 @@
       <el-col :span="span">
         <el-form-item v-if="yiZhuData.kjywFlag !== 0" label="切口等级:">
           <el-select
-              v-model="yiZhuData.ssqk"
-              :disabled="yiZhuData.yyfs !== 1 && yiZhuData.yyfs !== 2 && yiZhuData.yyfs !== null"
-              clearable
-              style="width: 120px"
-              @clear="yiZhuData.ssqk = null"
+            v-model="yiZhuData.ssqk"
+            :disabled="yiZhuData.yyfs !== 1 && yiZhuData.yyfs !== 2 && yiZhuData.yyfs !== null"
+            clearable
+            style="width: 120px"
+            @clear="yiZhuData.ssqk = null"
           >
             <el-option v-for="item in kangJunYaoWuQieKou" :key="item.code" :label="item.name" :value="item.code">
               <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
@@ -214,14 +202,13 @@
       <el-col :span="span">
         <el-form-item v-if="yiZhuData.kjywFlag !== 0" label="用药时间:">
           <el-select
-              v-model="yiZhuData.yysj"
-              :disabled="yiZhuData.yyfs !== 1 && yiZhuData.yyfs !== 2 && yiZhuData.yyfs !== null"
-              clearable
-              style="width: 120px"
-              @clear="yiZhuData.yysj = null"
+            v-model="yiZhuData.yysj"
+            :disabled="yiZhuData.yyfs !== 1 && yiZhuData.yyfs !== 2 && yiZhuData.yyfs !== null"
+            clearable
+            style="width: 120px"
+            @clear="yiZhuData.yysj = null"
           >
-            <el-option v-for="item in kangJunYaoWuYongYaoShiJian" :key="item.code" :label="item.name"
-                       :value="item.code">
+            <el-option v-for="item in kangJunYaoWuYongYaoShiJian" :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
@@ -278,45 +265,30 @@
     </el-table-column>
   </el-table>
   <!-- 这里是搜索医嘱的 -->
-  <sou-suo-yi-zhu v-if="yiZhuMingDialog" @close="yiZhuMingDialog = false"
-                  @xuanZhongFeiYong="xuanZhongFeiYong"></sou-suo-yi-zhu>
+  <sou-suo-yi-zhu v-if="yiZhuMingDialog" @close="yiZhuMingDialog = false" @xuanZhongFeiYong="xuanZhongFeiYong"></sou-suo-yi-zhu>
 </template>
 
 <script name="TianJiaYiZhu" setup>
-import {
-  huoQuFeiYongXinXi,
-  huoQuGeiYaoFangShi,
-  huoQuZhiXinKeShi,
-  huoQuZhuYuanPinLv,
-  jiaoYan,
-  shangChuanYiZhu
-} from '@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru'
-import {
-  cuoWuXinXi,
-  fuZhiYiZhu,
-  getSelfBuy,
-  huanZheXinXi,
-  youWuXuanZheHuanZhe
-} from '@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng'
+import { huoQuFeiYongXinXi, huoQuGeiYaoFangShi, huoQuZhiXinKeShi, huoQuZhuYuanPinLv, jiaoYan, shangChuanYiZhu } from '@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru'
+import { cuoWuXinXi, fuZhiYiZhu, getSelfBuy, huanZheXinXi, youWuXuanZheHuanZhe } from '@/views/hospitalization/zhu-yuan-yi-sheng/public-js/zhu-yuan-yi-sheng'
 import store from '../../../../store'
-import {listIsBlank, listNotBlank, stringIsBlank, stringNotBlank} from '@/utils/blank-utils'
-import {kangJunYaoWuQieKou, kangJunYaoWuYongYaoFangShi, kangJunYaoWuYongYaoShiJian} from '@/data'
-import {ElMessage, ElMessageBox} from 'element-plus'
-import {clone} from '@/utils/clone'
+import { listIsBlank, listNotBlank, stringIsBlank, stringNotBlank } from '@/utils/blank-utils'
+import { kangJunYaoWuQieKou, kangJunYaoWuYongYaoFangShi, kangJunYaoWuYongYaoShiJian } from '@/data'
+import { ElMessage, ElMessageBox } from 'element-plus'
+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 { uuid } from '@/utils/getUuid'
 import BaoCunMuBan from '../../../../components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/BaoCunMuBan.vue'
-import {getServerDateApi, yaoPinShiFouPiPeiYiBao} 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";
-import YaoPingXiangQing from "@/components/zhu-yuan-yi-sheng/he-li-yong-yao/YaoPingXiangQing.vue";
+import SouSuoYiZhu from '@/components/zhu-yuan-yi-sheng/yi-zhu-lu-ru/SouSuoYiZhu.vue'
+import CuoWuXinXi from '@/components/zhu-yuan-yi-sheng/CuoWuXinXi.vue'
+import YaoPingXiangQing from '@/components/zhu-yuan-yi-sheng/he-li-yong-yao/YaoPingXiangQing.vue'
 
 const windowSize = computed(() => {
   return store.state.app.windowSize
 })
 
-
 // 设置倒计时
 const seconds = ref(600)
 // 倒计时提示
@@ -379,12 +351,11 @@ const spanSize = (val) => {
   }
 }
 spanSize(windowSize.value.w)
-
 watch(
-    () => windowSize.value,
-    () => {
-      spanSize(windowSize.value.w)
-    }
+  () => windowSize.value,
+  () => {
+    spanSize(windowSize.value.w)
+  }
 )
 
 // 搜索医嘱
@@ -395,80 +366,80 @@ const xuanZhongFeiYong = (row) => {
   yiZhuData.value = clone(row)
   if (row.serial !== '00') {
     huoQuFeiYongXinXi(row.orderCode, row.serial)
-        .then((res) => {
-          yiZhuData.value.drugFlag = row.orderType
-          // 判断是否 是皮试的药 如果是就只能有这些 给药方式
-          if (res.data.psFlag === 1) {
-            geiYaoFangShiData.value = res.piShi
-            tiShiBiaoTi.value.push({title: '该药品为皮试药品给药方式只能是皮试类型', type: 'warning'})
-            yiZhuData.value.psFlag = true
-          } else {
-            geiYaoFangShiData.value = []
-            yiZhuData.value.psFlag = false
-          }
-          yiZhuData.value.kjywFlag = res.data.kjywFlag
-          if (yiZhuData.value.kjywFlag === 1) {
-            tiShiBiaoTi.value.push({title: '该药品为抗菌药物,请填写抗菌药物医嘱附注信息录入。', type: 'error'})
-          }
-          if (res.data.selfFlagYb === 1) {
-            tiShiBiaoTi.value.push({title: '该药品医保自费药品,如符合条件请填写记账,不是请填写自费。'})
-          }
-          yiZhuData.value.miniUnitName = res.data.miniUnitName
-          yaoPinJiLiangData.value = res.yaoPingJiLiang
-          // 加载 剂量单位
-          if (stringNotBlank(yiZhuData.value.doseUnit)) {
-            yaoPinJiLiangData.value.forEach((item) => {
-              if (item.code === yiZhuData.value.doseUnit) {
-                jiLiangValue.value = item.value
-              }
-            })
-          } else if (listNotBlank(yaoPinJiLiangData.value)) {
-            // 没有剂量单位的时候默认加载第一个计量单位 并且计算
-            yiZhuData.value.doseUnit = yaoPinJiLiangData.value[0].code
-            yiZhuData.value.dose = yaoPinJiLiangData.value[0].value
-            jiLiangValue.value = yaoPinJiLiangData.value[0].value
-            jiSuanLingLiang(yaoPinJiLiangData.value[0].value)
-          }
-          // 加载默认频率 如果已经填写了 就用有的
-          if (stringNotBlank(row.frequCode)) {
-            pinLvRemoteMethod(yiZhuData.value.frequCode)
-          } else if (stringNotBlank(res.data.frequCode)) {
-            yiZhuData.value.frequCode = res.data.frequCode
-            pinLvRemoteMethod(yiZhuData.value.frequCode)
-          } else {
-            yiZhuData.value.frequCode = 'ONCE'
-            pinLvRemoteMethod('ONCE')
-          }
-          // 加载给药方式
-          if (stringNotBlank(yiZhuData.value.supplyCode)) {
-            geiYaoFangShiRemoteMethod(yiZhuData.value.supplyCode)
-          } else if (stringNotBlank(res.data.supplyCode)) {
-            yiZhuData.value.supplyCode = res.data.supplyCode
-            geiYaoFangShiRemoteMethod(yiZhuData.value.supplyCode)
-          }
-        })
-        .catch((e) => {
-          setTimeout(() => {
-            console.error(e)
-            qingKong()
-          }, 100)
-        })
+      .then((res) => {
+        yiZhuData.value.drugFlag = row.orderType
+        // 判断是否 是皮试的药 如果是就只能有这些 给药方式
+        if (res.data.psFlag === 1) {
+          geiYaoFangShiData.value = res.piShi
+          tiShiBiaoTi.value.push({ title: '该药品为皮试药品给药方式只能是皮试类型', type: 'warning' })
+          yiZhuData.value.psFlag = true
+        } else {
+          geiYaoFangShiData.value = []
+          yiZhuData.value.psFlag = false
+        }
+        yiZhuData.value.kjywFlag = res.data.kjywFlag
+        if (yiZhuData.value.kjywFlag === 1) {
+          tiShiBiaoTi.value.push({ title: '该药品为抗菌药物,请填写抗菌药物医嘱附注信息录入。', type: 'error' })
+        }
+        if (res.data.selfFlagYb === 1) {
+          tiShiBiaoTi.value.push({ title: '该药品医保自费药品,如符合条件请填写记账,不是请填写自费。' })
+        }
+        yiZhuData.value.miniUnitName = res.data.miniUnitName
+        yaoPinJiLiangData.value = res.yaoPingJiLiang
+        // 加载 剂量单位
+        if (stringNotBlank(yiZhuData.value.doseUnit)) {
+          yaoPinJiLiangData.value.forEach((item) => {
+            if (item.code === yiZhuData.value.doseUnit) {
+              jiLiangValue.value = item.value
+            }
+          })
+        } else if (listNotBlank(yaoPinJiLiangData.value)) {
+          // 没有剂量单位的时候默认加载第一个计量单位 并且计算
+          yiZhuData.value.doseUnit = yaoPinJiLiangData.value[0].code
+          yiZhuData.value.dose = yaoPinJiLiangData.value[0].value
+          jiLiangValue.value = yaoPinJiLiangData.value[0].value
+          jiSuanLingLiang(yaoPinJiLiangData.value[0].value)
+        }
+        // 加载默认频率 如果已经填写了 就用有的
+        if (stringNotBlank(row.frequCode)) {
+          pinLvRemoteMethod(yiZhuData.value.frequCode)
+        } else if (stringNotBlank(res.data.frequCode)) {
+          yiZhuData.value.frequCode = res.data.frequCode
+          pinLvRemoteMethod(yiZhuData.value.frequCode)
+        } else {
+          yiZhuData.value.frequCode = 'ONCE'
+          pinLvRemoteMethod('ONCE')
+        }
+        // 加载给药方式
+        if (stringNotBlank(yiZhuData.value.supplyCode)) {
+          geiYaoFangShiRemoteMethod(yiZhuData.value.supplyCode)
+        } else if (stringNotBlank(res.data.supplyCode)) {
+          yiZhuData.value.supplyCode = res.data.supplyCode
+          geiYaoFangShiRemoteMethod(yiZhuData.value.supplyCode)
+        }
+      })
+      .catch((e) => {
+        setTimeout(() => {
+          console.error(e)
+          qingKong()
+        }, 100)
+      })
   } else {
     yiZhuData.value.kjywFlag = 0
     huoQuFeiYongXinXi(row.orderCode, '00')
-        .then((res) => {
-          yiZhuData.value.drugFlag = row.orderType
-          yiZhuData.value.frequCode = 'ONCE'
-          pinLvRemoteMethod('ONCE')
-          if (stringNotBlank(res.paiChiYiZhu)) {
-            tiShiBiaoTi.value.push({title: res.paiChiYiZhu, type: 'error'})
-          }
-        })
-        .catch((e) => {
-          setTimeout(() => {
-            qingKong()
-          }, 100)
-        })
+      .then((res) => {
+        yiZhuData.value.drugFlag = row.orderType
+        yiZhuData.value.frequCode = 'ONCE'
+        pinLvRemoteMethod('ONCE')
+        if (stringNotBlank(res.paiChiYiZhu)) {
+          tiShiBiaoTi.value.push({ title: res.paiChiYiZhu, type: 'error' })
+        }
+      })
+      .catch((e) => {
+        setTimeout(() => {
+          qingKong()
+        }, 100)
+      })
   }
   // 判断这个是不是 新添加的数据 如果是空的就是 新数据
   if (stringIsBlank(row.newData)) {
@@ -539,7 +510,7 @@ const fuYiZhuClick = () => {
   fuYiZhuData.value = []
   yiZhuList.value.forEach((item, index) => {
     if (stringNotBlank(item.drugFlag) && item.drugFlag === 'i' && item.id !== yiZhuData.value.id && stringIsBlank(item.parentNo)) {
-      fuYiZhuData.value.push({code: item.id, name: item.orderName})
+      fuYiZhuData.value.push({ code: item.id, name: item.orderName })
     }
   })
 }
@@ -572,21 +543,21 @@ const tianJiaYiZhu = () => {
     list: list,
   }
   shangChuanYiZhu(data)
-      .then((res) => {
-        let index = tianJiaYiZhuWeiYiBiaoShi.value.indexOf(yiZhuData.value.id)
-        if (index > -1) {
-          yiZhuList.value.splice(index, 1)
-          tianJiaYiZhuWeiYiBiaoShi.value.splice(index, 1)
-          ElMessage.error('重复添加,老记录已删除。')
-        }
-        tianJiaShiHuoQuXiaLaKuangDeZhi()
-        tianJiaYiZhuWeiYiBiaoShi.value.push(yiZhuData.value.id)
-        yiZhuList.value.push(clone(yiZhuData.value))
-        qingKong()
-      })
-      .catch((e) => {
-        cuoWuXinXi.value = e
-      })
+    .then((res) => {
+      let index = tianJiaYiZhuWeiYiBiaoShi.value.indexOf(yiZhuData.value.id)
+      if (index > -1) {
+        yiZhuList.value.splice(index, 1)
+        tianJiaYiZhuWeiYiBiaoShi.value.splice(index, 1)
+        ElMessage.error('重复添加,老记录已删除。')
+      }
+      tianJiaShiHuoQuXiaLaKuangDeZhi()
+      tianJiaYiZhuWeiYiBiaoShi.value.push(yiZhuData.value.id)
+      yiZhuList.value.push(clone(yiZhuData.value))
+      qingKong()
+    })
+    .catch((e) => {
+      cuoWuXinXi.value = e
+    })
 }
 
 // 这里是获取下拉框中的值的
@@ -634,7 +605,6 @@ const dianJiFuZhiYiZhu = (val) => {
   ElMessage.success('复制成功')
 }
 
-
 /* 保存信息 */
 const baoCunYiZhuClick = () => {
   if (listIsBlank(yiZhuList.value)) {
@@ -642,8 +612,8 @@ const baoCunYiZhuClick = () => {
   }
   if (youWuXuanZheHuanZhe()) return
   let yiBaoBianMaTiShi = []
-  yiZhuList.value.forEach(item => {
-    yiBaoBianMaTiShi.push(item.orderCode + "-" + item.serial)
+  yiZhuList.value.forEach((item) => {
+    yiBaoBianMaTiShi.push(item.orderCode + '-' + item.serial)
   })
   yaoPinShiFouPiPeiYiBao(yiBaoBianMaTiShi).then((res) => {
     if (stringNotBlank(res)) {
@@ -651,11 +621,12 @@ const baoCunYiZhuClick = () => {
       ElMessageBox.confirm(res, '提示', {
         type: 'warning',
         dangerouslyUseHTMLString: true,
-        confirmButtonText: '继续录入'
-      }).then((res) => {
-        baoCunYiZhu()
-      }).catch(() => {
+        confirmButtonText: '继续录入',
       })
+        .then((res) => {
+          baoCunYiZhu()
+        })
+        .catch(() => {})
     } else {
       baoCunYiZhu()
     }
@@ -674,8 +645,9 @@ function baoCunYiZhu() {
   ElMessageBox.confirm('您确定要保存这些数据吗?请仔细检查数据。', '提示', {
     type: 'warning',
     closeOnClickModal: false,
-  }).then(() => {
-    shangChuanYiZhu(data)
+  })
+    .then(() => {
+      shangChuanYiZhu(data)
         .then((res) => {
           fuZhiYiZhu.value = []
           router.go(-1)
@@ -683,8 +655,8 @@ function baoCunYiZhu() {
         .catch((e) => {
           cuoWuXinXi.value = e
         })
-  }).catch(() => {
-  })
+    })
+    .catch(() => {})
 }
 
 /*  这里是抗菌药物,选择了除了 1和 2 的其他都可以不用填写 */
@@ -735,13 +707,13 @@ const baoCunMuBanClick = () => {
     list: yiZhuList.value,
   }
   shangChuanYiZhu(data)
-      .then((res) => {
-        baoCunMuBanRef.value.daKaiBaoCunMuBan(yiZhuList.value)
-        cuoWuXinXi.value = ''
-      })
-      .catch((e) => {
-        cuoWuXinXi.value = e
-      })
+    .then((res) => {
+      baoCunMuBanRef.value.daKaiBaoCunMuBan(yiZhuList.value)
+      cuoWuXinXi.value = ''
+    })
+    .catch((e) => {
+      cuoWuXinXi.value = e
+    })
 }
 // 医嘱限制时间不能在之前
 const disabledDate = (time) => {
@@ -770,7 +742,6 @@ const dianJiXiuGaiZhiXingKeShi = () => {
   }
 }
 
-
 const qingKong = () => {
   cuoWuXinXi.value = ''
   zhiXingKeShiData.value = []
@@ -869,8 +840,7 @@ const countDown = () => {
   if (seconds.value === 300) {
     ElMessageBox.alert('您的操作时间过半', '提示', {
       type: 'warning',
-    }).then((res) => {
-    })
+    }).then((res) => {})
   } else if (seconds.value === 60 || seconds.value === 30 || seconds.value === 20) {
     ElMessage({
       message: '剩余操作时间' + seconds.value + '秒',
@@ -887,9 +857,12 @@ const countDown = () => {
 
 let HeLiYongYao = $ref({
   dialog: false,
-  code: ''
+  code: '',
 })
 
+const tiaoZhuanZhiHeLiYongYao = () => {
+  window.open('http://172.16.32.121:9097/index.html')
+}
 </script>
 
 <style scoped>

+ 128 - 124
src/views/hospitalization/zhu-yuan-yi-sheng/yi-zhu-lu-ru/YiZhuLuRu.vue

@@ -42,16 +42,7 @@
       <el-tag effect="dark" type="danger">停止</el-tag>
       <el-divider direction="vertical"></el-divider>
       <el-button :disabled="huanZheXinXi.timesBilled === 1" icon="el-icon-plus" type="primary" @click="addYiZhuClick"> 添加 </el-button>
-      <el-button
-        :disabled="xuanZhongDeShuJu.length === 0"
-        type="warning"
-        @click="
-          chaoZuoBiaoZhi = 90;
-          yiZhuChaoZuoDialog = true;
-          yiZhuChaoZuoBiaoTi = '批量停止';
-        "
-        >批量停止
-      </el-button>
+      <el-button :disabled="xuanZhongDeShuJu.length === 0" type="warning" @click="dianJiPiLiangTingZhi">批量停止 </el-button>
       <el-divider direction="vertical"></el-divider>
       <el-button :disabled="xuanZhongDeShuJu.length === 0" type="success" @click="dianJiFuZhuXuanZhongYiZhu">复制选中医嘱 </el-button>
     </el-header>
@@ -155,13 +146,7 @@
       </div>
       <template #footer>
         <span class="dialog-footer">
-          <el-button
-            @click="
-              yiZhuChaoZuoDialog = false;
-              content = '';
-            "
-            >关闭</el-button
-          >
+          <el-button @click="dianJiDuiHuaKuangZhongDeGuanBi">关闭</el-button>
           <el-button type="primary" @click="zhiXingChaoZuo">确认</el-button>
         </span>
       </template>
@@ -170,48 +155,48 @@
 </template>
 
 <script name="YiZhuLuRuZhuJian" setup>
-import { shortcuts } from '@/data/shortcuts';
-import { huoQuYiZhuMingCheng, huoQuYiZhuShuJu, piLiangXiuGaiTingZhiShiJian, yiZhuChaoZuo } from '@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru';
-import { fuZhiYiZhu, huanZhePinLvData, huanZheXinXi, youWuXuanZheHuanZhe } from '../public-js/zhu-yuan-yi-sheng';
-import { getDateRangeFormatDate, getFormatDatetime } from '@/utils/date';
-import store from '@/store';
-import { stringIsBlank, stringNotBlank } from '@/utils/blank-utils';
-import { getServerDateApi } from '@/api/public-api';
-import router from '@/router';
+import { shortcuts } from '@/data/shortcuts'
+import { huoQuYiZhuMingCheng, huoQuYiZhuShuJu, piLiangXiuGaiTingZhiShiJian, yiZhuChaoZuo } from '@/api/zhu-yuan-yi-sheng/yi-zhu-lu-ru'
+import { fuZhiYiZhu, huanZhePinLvData, huanZheXinXi, youWuXuanZheHuanZhe } from '../public-js/zhu-yuan-yi-sheng'
+import { getDateRangeFormatDate, getFormatDatetime } from '@/utils/date'
+import store from '@/store'
+import { stringIsBlank, stringNotBlank } from '@/utils/blank-utils'
+import { getServerDateApi } from '@/api/public-api'
+import router from '@/router'
 
 const windowSize = computed(() => {
-  return store.state.app.windowSize;
-});
+  return store.state.app.windowSize
+})
 
 const user = computed(() => {
-  return store.state.user.info;
-});
+  return store.state.user.info
+})
 
-const dateRange = ref([]);
+const dateRange = ref([])
 // 根据医嘱的名字来进行搜索
-let orderName = $ref('');
-const yiZhuMingZiData = ref([]);
+let orderName = $ref('')
+const yiZhuMingZiData = ref([])
 // 获取频率
-const pinLv = ref('');
+const pinLv = ref('')
 // 状态
-const zhuangTai = ref(0);
+const zhuangTai = ref(0)
 // 分页
 const yiZhuPage = ref({
   currentPage: 1,
   pageSize: 30,
   total: 0,
   data: [],
-});
-const tableRef = ref(null);
+})
+const tableRef = ref(null)
 
 const remoteMethodChargeCode = (val) => {
-  if (youWuXuanZheHuanZhe()) return;
+  if (youWuXuanZheHuanZhe()) return
   if (val.length > 1) {
     huoQuYiZhuMingCheng(huanZheXinXi.value.inpatientNo, huanZheXinXi.value.admissTimes, val).then((res) => {
-      yiZhuMingZiData.value = res;
-    });
+      yiZhuMingZiData.value = res
+    })
   }
-};
+}
 
 // 根据医嘱的名字来进行搜索 结束
 const zhuangTaiList = ref([
@@ -224,18 +209,18 @@ const zhuangTaiList = ref([
   { code: 7, name: '可撤销' },
   { code: 8, name: '临时医嘱' },
   { code: 9, name: '长期医嘱' },
-]);
+])
 
 const zhuangTaiXuanZhe = (val) => {
   if (val >= 6) {
-    orderName = '';
-    pinLv.value = '';
+    orderName = ''
+    pinLv.value = ''
   }
-};
+}
 
 const chaXunYiZhuClick = (total) => {
-  if (youWuXuanZheHuanZhe()) return;
-  const dateS = getDateRangeFormatDate(dateRange.value);
+  if (youWuXuanZheHuanZhe()) return
+  const dateS = getDateRangeFormatDate(dateRange.value)
   let data = {
     currentPage: yiZhuPage.value.currentPage,
     pageSize: yiZhuPage.value.pageSize,
@@ -247,33 +232,33 @@ const chaXunYiZhuClick = (total) => {
     frequCode: pinLv.value,
     orderName: orderName,
     zhuangTai: zhuangTai.value,
-  };
+  }
   huoQuYiZhuShuJu(data)
     .then((res) => {
-      yiZhuPage.value.total = res.total;
-      yiZhuPage.value.data = res.records;
+      yiZhuPage.value.total = res.total
+      yiZhuPage.value.data = res.records
     })
     .catch((e) => {
-      yiZhuPage.value.total = 0;
-      yiZhuPage.value.data = [];
-    });
-};
+      yiZhuPage.value.total = 0
+      yiZhuPage.value.data = []
+    })
+}
 
 const handleSizeChange = (val) => {
-  yiZhuPage.value.pageSize = val;
-  chaXunYiZhuClick(yiZhuPage.value.total);
-};
+  yiZhuPage.value.pageSize = val
+  chaXunYiZhuClick(yiZhuPage.value.total)
+}
 
 const handleCurrentChange = (val) => {
-  yiZhuPage.value.currentPage = val;
-  chaXunYiZhuClick(yiZhuPage.value.total);
-};
+  yiZhuPage.value.currentPage = val
+  chaXunYiZhuClick(yiZhuPage.value.total)
+}
 /* 添加子医嘱的背景颜色 */
 const differChildrenRows = ({ row }) => {
   if (row.isChildren) {
-    return 'children-row';
+    return 'children-row'
   }
-};
+}
 
 /**
  * 下面这里是添加医嘱了
@@ -288,142 +273,161 @@ const addYiZhuClick = () => {
     query: {
       path: '/inpatient/zhuYuanYiSheng/yiZhuLuRu',
     },
-  });
-};
+  })
+}
 
 const dianJiYiZhuChaoZuo = ({ actOrderNo, orderName }, flag, name) => {
-  chaoZuoBiaoZhi.value = flag;
-  yiZhuHao.value = actOrderNo;
+  chaoZuoBiaoZhi.value = flag
+  yiZhuHao.value = actOrderNo
   if (flag === 1) {
-    zhiXingChaoZuo();
+    zhiXingChaoZuo()
   } else {
-    yiZhuChaoZuoDialog = true;
+    yiZhuChaoZuoDialog = true
     if (flag === 2) {
-      yiZhuChaoZuoBiaoTi = '撤销医嘱';
+      yiZhuChaoZuoBiaoTi = '撤销医嘱'
     } else if (flag === 3) {
-      yiZhuChaoZuoBiaoTi = '停止医嘱';
+      yiZhuChaoZuoBiaoTi = '停止医嘱'
     }
   }
-};
+}
 
 const zhiXingChaoZuo = () => {
   if (chaoZuoBiaoZhi.value === 90) {
     let data = {
       actOrderNoList: [],
       endTime: tingZhiRiQi.value,
-    };
+    }
     xuanZhongDeShuJu.value.forEach((item) => {
-      data.actOrderNoList.push(item.actOrderNo);
-    });
+      data.actOrderNoList.push(item.actOrderNo)
+    })
     piLiangXiuGaiTingZhiShiJian(data).then((res) => {
-      handleCurrentChange(yiZhuPage.value.currentPage);
-      yiZhuChaoZuoDialog = false;
-    });
+      handleCurrentChange(yiZhuPage.value.currentPage)
+      yiZhuChaoZuoDialog = false
+    })
   } else {
-    let data = '';
+    // 这里 是因为停止医嘱和撤销医嘱中 时间和撤销原因用的是同一个
+    // 方法 所以需要使用到不同的提交内容
+    let data = ''
     if (chaoZuoBiaoZhi.value === 2) {
-      data = content.value;
+      data = content.value
     } else if (chaoZuoBiaoZhi.value === 3) {
-      data = tingZhiRiQi.value;
+      data = tingZhiRiQi.value
     }
     yiZhuChaoZuo(yiZhuHao.value, chaoZuoBiaoZhi.value, data).then((res) => {
-      handleCurrentChange(yiZhuPage.value.currentPage);
-      yiZhuChaoZuoDialog = false;
-      content.value = '';
-    });
+      handleCurrentChange(yiZhuPage.value.currentPage)
+      yiZhuChaoZuoDialog = false
+      content.value = ''
+    })
   }
-};
+}
 
-let yiZhuChaoZuoDialog = $ref(false);
-const content = ref('');
-const tingZhiRiQi = ref('');
-const chaoZuoBiaoZhi = ref(0);
-const yiZhuHao = ref(0);
-let yiZhuChaoZuoBiaoTi = $ref('');
+let yiZhuChaoZuoDialog = $ref(false)
+const content = ref('')
+const tingZhiRiQi = ref('')
+/**
+ * 医嘱操作状态 1-设为紧急 2-撤销 3-停止  90-批量停止
+ */
+const chaoZuoBiaoZhi = ref(0)
+const yiZhuHao = ref(0)
+let yiZhuChaoZuoBiaoTi = $ref('')
 
-const xuanZhongDeShuJu = ref([]);
+const xuanZhongDeShuJu = ref([])
 
 const huoQuXuanZhongDeShuJu = (val) => {
-  xuanZhongDeShuJu.value = val;
-};
+  xuanZhongDeShuJu.value = val
+}
 
 // 用户切换全选和全不选 时 el-table中的全选不会选中子节点
 const toggleSelection = (row, selected) => {
   if (row) {
     row.forEach((item) => {
-      tableRef.value.toggleRowSelection(item, selected);
-    });
+      tableRef.value.toggleRowSelection(item, selected)
+    })
   }
-};
+}
 
 /**
  * 切换全选和不全选
  * @type {boolean}
  */
-let quanXuanFlag = false; // 默认 为全不选
+let quanXuanFlag = false // 默认 为全不选
 const quanXuanYiZhu = (selection) => {
-  quanXuanFlag = !quanXuanFlag;
+  quanXuanFlag = !quanXuanFlag
   selection.forEach((item) => {
     if (stringNotBlank(item.children)) {
-      toggleSelection(item.children, quanXuanFlag);
+      toggleSelection(item.children, quanXuanFlag)
     }
-  });
+  })
   if (!quanXuanFlag) {
-    tableRef.value.clearSelection();
+    tableRef.value.clearSelection()
   }
-};
+}
 
 /**
  * 点击复制医嘱
  */
 const dianJiFuZhuXuanZhongYiZhu = () => {
-  fuZhiYiZhu.value = xuanZhongDeShuJu.value;
-};
+  fuZhiYiZhu.value = xuanZhongDeShuJu.value
+}
 
 onActivated(() => {
   getServerDateApi().then((res) => {
-    dateRange.value[0] = getFormatDatetime(res, 'YYYY-MM-DD');
-    dateRange.value[1] = getFormatDatetime(res, 'YYYY-MM-DD');
-    chaXunYiZhuClick(0);
-  });
-});
+    dateRange.value[0] = getFormatDatetime(res, 'YYYY-MM-DD')
+    dateRange.value[1] = getFormatDatetime(res, 'YYYY-MM-DD')
+    chaXunYiZhuClick(0)
+  })
+})
 
 watch(
   () => huanZheXinXi.value,
   () => {
     getServerDateApi().then((res) => {
       if (dateRange.value === null) {
-        dateRange.value = [];
-        dateRange.value.push(getFormatDatetime(res, 'YYYY-MM-DD'));
-        dateRange.value.push(getFormatDatetime(res, 'YYYY-MM-DD'));
+        dateRange.value = []
+        dateRange.value.push(getFormatDatetime(res, 'YYYY-MM-DD'))
+        dateRange.value.push(getFormatDatetime(res, 'YYYY-MM-DD'))
       } else {
-        dateRange.value[0] = getFormatDatetime(res, 'YYYY-MM-DD');
-        dateRange.value[1] = getFormatDatetime(res, 'YYYY-MM-DD');
+        dateRange.value[0] = getFormatDatetime(res, 'YYYY-MM-DD')
+        dateRange.value[1] = getFormatDatetime(res, 'YYYY-MM-DD')
       }
-      chaXunYiZhuClick(0);
-    });
+      chaXunYiZhuClick(0)
+    })
   }
-);
+)
 
 function getYiZhuFlag(val) {
   if (stringIsBlank(val)) {
-    return 'warning';
+    return 'warning'
   }
   switch (val) {
     case '1':
-      return 'info';
+      return 'info'
     case '2':
-      return 'success';
+      return 'success'
     case '3':
-      return '';
+      return ''
     case '4':
-      return '';
+      return ''
     case '5':
-      return 'danger';
+      return 'danger'
     default:
-      return 'warning';
+      return 'warning'
   }
 }
+
+/**
+ * 点击批量停止
+ */
+const dianJiPiLiangTingZhi = () => {
+  chaoZuoBiaoZhi = 90
+  yiZhuChaoZuoDialog = true
+  yiZhuChaoZuoBiaoTi = '批量停止'
+}
+
+const dianJiDuiHuaKuangZhongDeGuanBi = () => {
+  yiZhuChaoZuoDialog = false
+  content = ''
+}
 </script>
 
 <style scoped>

+ 0 - 3
webstorm.config.js

@@ -1,3 +0,0 @@
-'use strict'
-const webpackConfig = require('@vue/cli-service/webpack.config.js')
-module.exports = webpackConfig