Browse Source

Merge tag 'execution-10' into develop

cc12458 1 year ago
parent
commit
aed02409ba

+ 2 - 0
.gitignore

@@ -22,3 +22,5 @@ pnpm-debug.log*
 *.njsproj
 *.sln
 *.sw?
+
+cloudclinich5-**.zip

+ 12 - 0
src/api/diagnosis.js

@@ -29,6 +29,18 @@ export function addDiagnosisData(data) {
     })
 };
 
+export function addDiagnosisData2(data) {
+    return request({
+        url: '/outpatient/diagnosisMgr/Add',
+        method: 'post',
+        data,
+    }).then(res => {
+        if (res.ResultCode !== 0) throw Error(res.ResultInfo || `错误`);
+        if (!res.Data.mainDiagnosis) return {mainDiagnosis: res.Data};
+        return res.Data;
+    });
+}
+
 // 修改诊断页面数据
 export function editDiagnosisData(data) {
     return request({

+ 31 - 37
src/components/ChineseMedicine.vue

@@ -80,7 +80,7 @@
                       v-model="recipe_tabs[recipe_tabs_c].radio"
                       :disabled="recipe_tabs[recipe_tabs_c].disable"
                       :label="item.ptype"
-                      @click.native.prevent="changePharmacy(recipe_tabs[recipe_tabs_c].lastType,item.ptype)"
+                      @click.native.prevent="recipe_tabs[recipe_tabs_c].disable || changePharmacy(recipe_tabs[recipe_tabs_c].lastType,item.ptype)"
             >{{item.name}}</el-radio>
           </div>
         </div>
@@ -635,7 +635,7 @@
                       <el-option
                         :label="item.value"
                         :value="item.key"
-                        v-for="(item,index) in scope.row.usageList"
+                        v-for="(item,index) in usageList"
                         :key="scope.row.id+'h'+index"
                       ></el-option>
                     </el-select>
@@ -993,7 +993,7 @@ import { debounce } from "@/utils/format.js";
 import { mapState, mapGetters, mapActions, mapMutations } from "vuex";
 import popup from "@/components/Propup.vue";
 import accompanied from "./ui/accompanied.vue";
-import {CC_Dosage2Basis} from '@/utils/medicine';
+import {CC_Basis2Dosage, CC_Dosage2Basis} from '@/utils/medicine';
 
 let medicineBlurTimer;
 export default {
@@ -1086,7 +1086,7 @@ export default {
             timeList: [], // 服药时间后台数据
             caozuo: "",
             zhutuo: "",
-            radio: 1,
+            radio: 1, // TODO 配送 :0 配送 注意:isPs isKD
             isDaiJian: 2,
             provinceList: [],
             cityList: [],
@@ -1340,17 +1340,12 @@ export default {
     },
     doseBlur(scope) {
       let parent = this.$parent;
+      const rationalMed10 = parent.rationalMed10.find(item => item.reqID === scope.row.medid ) || {}
       if (!+scope.row.dose) scope.row.dose = '';
       if (typeof scope.row.dose === 'string') scope.row.dose = scope.row.dose.trim();
       if (scope.row.dose === "") {
         this.$message.error("请输入剂量");
-
-        parent.rationalMed10.forEach(item => {
-          if (item.reqID == scope.row.medid) {
-            item.showDose = false;
-          }
-        });
-
+        rationalMed10.showDose = false;
         parent.countDose();
         this.maxDose = null;
         this.minDose = null;
@@ -1364,6 +1359,7 @@ export default {
       if (unit != "g" && unit != "克" && !Number.isInteger(dose)) {
         this.$message.error("剂量输入有误");
 
+        rationalMed10.showDose = false;
         parent.countDose();
         this.maxDose = null;
         this.minDose = null;
@@ -1379,26 +1375,14 @@ export default {
           "red";
         return;
       }
-      if (
-        Number(scope.row.dose) > Number(this.maxDose) ||
-        Number(scope.row.dose) < Number(this.minDose)
-      ) {
-        parent.rationalMed10.forEach(item => {
-          if (item.reqID == scope.row.medid) {
-            item.showDose = true;
-          }
-        });
-      }
 
-      if (
-        Number(scope.row.dose) <= Number(this.maxDose) &&
-        Number(scope.row.dose) >= Number(this.minDose)
-      ) {
-        parent.rationalMed10.forEach(item => {
-          if (item.reqID == scope.row.medid) {
-            item.showDose = false;
-          }
-        });
+      if (this.maxDose && this.minDose) {
+        try {
+          const dose = CC_Dosage2Basis(scope.row);
+          rationalMed10.showDose = dose && (dose < this.minDose || dose > this.maxDose);
+        } catch (e) {}
+      } else {
+        rationalMed10.showDose = false;
       }
 
       parent.countDose();
@@ -1832,7 +1816,7 @@ export default {
         name: item.ypmc,
         spec: item.gg, // 规格
         // dose: "", // 剂量
-        dose: scope.row.color === "red" || oneself ? scope.row.dose : "",
+        dose: scope.row.color === "red" || oneself ? null : "",
         unit: item.dw, // 单位
         usage:
           oneself ? scope.row.usage : scope.row.color === "red"
@@ -1852,6 +1836,12 @@ export default {
       };
       obj.ggnum = +item.ggnum || 1;
       obj.xbzxs = +item.xbzxs || '34'.includes(item.zylx) ? obj.ggnum : 1;
+      
+      if (obj.dose == null) {
+        obj.oldDose = CC_Dosage2Basis(scope.row)
+        obj.dose = CC_Basis2Dosage(obj)
+      }
+
       Object.assign(totalData[scope.row.id - 1], obj);
 
       // 调用 父级合理用药接口
@@ -2300,8 +2290,8 @@ export default {
         matIds: ids
       });
       if (res.code == 0 && res.message) {
-        this.maxDose = res.data.matmaxdosage;
-        this.minDose = res.data.matmindosage;
+        this.maxDose = +res.data.matmaxdosage;
+        this.minDose = +res.data.matmindosage;
         this.doseId = id;
       }
     },
@@ -2329,8 +2319,8 @@ export default {
         matIds: ids
       });
       if (res.code == 0 && res.message) {
-        this.maxDose = res.data.matmaxdosage;
-        this.minDose = res.data.matmindosage;
+        this.maxDose = +res.data.matmaxdosage;
+        this.minDose = +res.data.matmindosage;
         this.doseId = id;
       }
     },
@@ -2444,7 +2434,7 @@ export default {
 
     // 切换中药类型时 切换 药房 获取 药品里面有没有这条数据
     async changePharmacy(type, val) {
-      // TODO 此处 if 不会调用 触发在 [this.$emit("updateDp", res.Data)](src/components/ChineseMedicine.vue:2831)
+      // else 触发在 this.$emit("updateDp", res.Data)
       if (this.recipe_tabs[this.recipe_tabs_c].radio == val) {
         this.$parent.openAddress();
         return;
@@ -2526,7 +2516,7 @@ export default {
                     originname: item.cdmc, // 产地名称
                     showSearch: false,
                     usageList: [],
-                    oldDose: item1.oldDose
+                    oldDose: item.placeholderdose || item1.oldDose
                   };
                   /* 修正 */ item1.usage = item1.useage = getUsage(item1.usage);
                   item1.ggnum = +item.ggnum || 1;
@@ -2550,6 +2540,10 @@ export default {
           }
         );
         this._splitDataToView();
+        this.$parent.rationalMed = [];
+        this.recipe_tabs[this.recipe_tabs_c].totalTableD.forEach(item => {
+          this.$parent.getRationalMed(item.medid)
+        });
 
         // this.recipe_tabs[this.recipe_tabs_c].lastType = this.recipe_tabs[this.recipe_tabs_c]
         //     .radio // 存储这一次的 药房类型

+ 6 - 2
src/components/Propup.vue

@@ -17,14 +17,14 @@
         <slot name="body"></slot>
         <div class="btns flex-center" v-if="showBtns">
           <div class="confim flex-center" @click="confim()" v-if="confimText">{{confimText}}</div>
-          <div class="cancle flex-center" @click="cancle()" :style="cancleStyle">{{cancleText}}</div>
+          <div class="cancle flex-center" @click="cancle()" v-if="!hideCancleButton" :style="cancleStyle">{{cancleText}}</div>
         </div>
       </div>
       <div v-else>
         <slot name="body"></slot>
         <div class="btns flex-center" v-if="showBtns">
           <div class="confim flex-center" @click="confim()" v-if="confimText">{{confimText}}</div>
-          <div class="cancle flex-center" @click="cancle()" :style="cancleStyle">{{cancleText}}</div>
+          <div class="cancle flex-center" @click="cancle()" v-if="!hideCancleButton" :style="cancleStyle">{{cancleText}}</div>
         </div>
       </div>
     </el-dialog>
@@ -65,6 +65,10 @@ export default {
       type: Boolean,
       default: true
     },
+    hideCancleButton: {
+      type: Boolean,
+      default: false
+    },
     distanceTop: {
       type: String,
       default: "15vh"

+ 28 - 16
src/components/TCMDiagnosis.vue

@@ -9,7 +9,7 @@
       <div class="value">
         <el-popover placement="bottom" width="180" trigger="focus" :close-delay="100">
           <el-input
-            :class="{invalid: name && !zy_dise_id}"
+            :class="{invalid: name && (!zy_dise_id || invalid_dis)}"
             :size="size"
             slot="reference"
             :placeholder="key1?key1:'中医病名'"
@@ -43,7 +43,7 @@
       <div class="value">
         <el-popover placement="bottom" width="180" trigger="focus" :close-delay="100">
           <el-input
-            :size="size"
+            :size="size" :class="{invalid: syndrome && invalid_symptom}"
             slot="reference"
             :placeholder="key2?key2:'中医证型'"
             v-model="key2"
@@ -87,7 +87,7 @@ import {
   getXDiseaseName,
   getCCardType
 } from "@/api/knowledge.js";
-import { addDiagnosisData } from "@/api/diagnosis.js";
+import {addDiagnosisData2} from '@/api/diagnosis.js';
 import { addRecipeFrom } from "@/api/dataAnalysis.js";
 import { mapGetters } from "vuex";
 export default {
@@ -113,6 +113,9 @@ export default {
   },
   data() {
     return {
+      invalid_dis: false,
+      invalid_symptom: false,
+
       name: "", // 病名
       zy_dise_id: "", // 病名id
 
@@ -153,6 +156,7 @@ export default {
     key1: {
       handler: function() {
         if (this.key1 == "") {
+          this.invalid_dis = false;
           this.zy_dise_id = "";
           this.name = "";
         }
@@ -161,6 +165,7 @@ export default {
     key2: {
       handler: function() {
         if (this.key2 == "") {
+          this.invalid_symptom = false;
           this.syndrome = "";
           this.zhengxingid = "";
         }
@@ -263,6 +268,7 @@ export default {
     },
     // 病名选中
     handleBm(item) {
+      this.invalid_dis = false
       this.zy_dise_id = item.disid;
       this.name = item.disname;
       this.key1 = item.disname;
@@ -292,6 +298,7 @@ export default {
     },
     // 证型选中\
     handleZx(item) {
+      this.invalid_dis = false
       this.syndrome = item.symname;
       this.key2 = item.symname;
       this.zhengxingid = item.symid;
@@ -371,20 +378,25 @@ export default {
           zhengxing: ""
         }
       };
-      let res = await addDiagnosisData(params).catch(() => ({ResultCode: -1}));
-      if (+res.ResultCode === 0) {
-        if (!this.name) {
-          res.ResultCode = -1;
-          res.ResultInfo = `请选择${this.title}病名`;
-        } else if (!this.zy_dise_id) {
-          res.ResultCode = -1;
-          res.ResultInfo = `当前疾病编码与医保不匹配,请更换中医病名等诊断信息!`;
-        } else {
-          this.addRecipeFrom().catch();
-        }
+      try {
+        if (!this.name) throw {message: `请选择${this.title}病名`};
+        if (!this.zy_dise_id) throw {message: `当前疾病编码与医保不匹配,请更换中医病名等诊断信息!`};
+        let {mainDiagnosis} = await addDiagnosisData2(params);
+
+        this.invalid_dis = !mainDiagnosis.disid;
+        this.invalid_symptom = !mainDiagnosis.symptomid;
+        const tips = [
+          this.invalid_dis ? `${this.title}病名` : '',
+          this.invalid_symptom ? `证型` : '',
+        ].filter(Boolean).join(',');
+        if (tips) throw {message: `当前${tips}与医保不匹配,请更换${tips}等诊断信息!`};
+
+        this.addRecipeFrom().catch();
+        return true
+      } catch (e) {
+        this.$message.error(e.message);
       }
-      if (+res.ResultCode !== 0 && res.ResultInfo) this.$message.error(res.ResultInfo)
-      return +res.ResultCode === 0;
+      return false;
     }
   }
 };

+ 4 - 4
src/utils/medicine.js

@@ -7,8 +7,8 @@
  */
 export function CC_Dosage2Basis({dose = 0, xbzxs = 1}) {
     console.log('log-->CC_Dosage2Basis', `dose: ${dose}, xbzxs: ${xbzxs}`);
-    if (!xbzxs || xbzxs === 1) return dose;
-    return dose * xbzxs;
+    if (!xbzxs || xbzxs === 1) return +dose;
+    return +dose * xbzxs;
 }
 
 /**
@@ -21,6 +21,6 @@ export function CC_Dosage2Basis({dose = 0, xbzxs = 1}) {
  */
 export function CC_Basis2Dosage({oldDose = 0, xbzxs = 1}, keep = false) {
     console.log('log-->CC_Basis2Dosage', `basis: ${oldDose}, xbzxs: ${xbzxs}`);
-    if (!xbzxs || xbzxs === 1) return oldDose;
-    return oldDose / xbzxs;
+    if (!xbzxs || xbzxs === 1) return +oldDose;
+    return +oldDose / xbzxs;
 }

+ 14 - 4
src/utils/minix/prescribing.js

@@ -153,6 +153,7 @@ export default {
             this.openAddress()
 
         },
+        setUpdateDp(){/* 将模态框的值同步到处方数据 bottom_form */},
         openAddress() {
             clearTimeout(hack_openAddress_true);
             if (!this.isShowPs) this.isPs = 1;
@@ -171,19 +172,28 @@ export default {
                     });
                     let child = children[0];
 
-                    this.isDaiJian = child.recipe_tabs[child.recipe_tabs_c].bottom_form.isDaiJian
-                    this.isPs = child.recipe_tabs[child.recipe_tabs_c].bottom_form.radio
+                    const isDaiJian = child.recipe_tabs[child.recipe_tabs_c].bottom_form.isDaiJian
+                    const isPs = child.recipe_tabs[child.recipe_tabs_c].bottom_form.radio
+                    if (isPs != null) this.isPs = isPs;
+                    if (isDaiJian != null) this.isDaiJian = isDaiJian;
+                    this.setUpdateDp = (/* 模态框选择的值 */ model) => {
+                        child.recipe_tabs[child.recipe_tabs_c].bottom_form.isDaiJian = model.isDaiJian
+                        child.recipe_tabs[child.recipe_tabs_c].bottom_form.radio = model.iskD
+                    }
                 }, 200)
             } else {
                 this.showAddress = false;
             }
         },
+
         // 提交地址信息
-        submitAddress() {
+        submitAddress(cancel) {
+            this.showAddress = false;
+            if (cancel) return;
             const model = this.$refs.medAdress.form;
             this.psChange(model.iskD)
             this.djChange(model.isDaiJian)
-            this.showAddress = false;
+            this.setUpdateDp(model)
         },
         // 获取合理安全用药提醒配置
         async getRationalSafeUse() {

+ 2 - 2
src/views/business/DrugMapList.vue

@@ -27,7 +27,7 @@
         <el-button
           type="primary"
           size="mini"
-          @click="$router.push({path:'/index/drugmap?pid='+$route.query.id})"
+          @click="$router.push({path:'/index/drugmap?pid='+$route.query.id+'&isMapping='+isMap})"
         >新增</el-button>
         <el-button type="warning" size="mini" @click="$router.back()">返回</el-button>
       </div>
@@ -83,7 +83,7 @@
                   <div
                     class="flex-center"
                     @click="$router.push({path:'/index/drugmap?id='+scope.row
-                                    .matDrugId+'&pid='+$route.query.id})"
+                                    .matDrugId+'&pid='+$route.query.id+'&isMapping='+isMap})"
                   >编辑</div>
                   <!-- <div class="flex-center bg-yellow">删除
                   </div>-->

+ 34 - 29
src/views/business/DrugMaping.vue

@@ -45,33 +45,38 @@
             <span>第三方药品:</span>
             <!-- <div class="flex-center">选择药品</div> -->
             <div>
-              <!-- reserve-keyword -->
-              <!-- <el-select size="small" v-model="hisVal" multiple filterable remote placeholder="请输入关键词"
-                                :remote-method="remoteMethod2" :loading="loading2" @change="hisChange" reserve-keyword>
-                                <el-option v-for="item in hisOptions" :key="item.drugId" :label="item.name"
-                                    :value="item.drugId">
-                                </el-option>
-              </el-select>-->
-              <el-autocomplete
+               <el-select size="small" v-model="hisVal" multiple filterable remote placeholder="请输入关键词"
+                          :remote-method="remoteMethod2" :loading="loading2" @change="hisChange"
+                          reserve-keyword collapse-tags
+               >
+                <el-option v-for="item in hisOptions" :key="item.drugId" :label="item.name"
+                    :value="item.drugId">
+                </el-option>
+              </el-select>
+              <!--<el-autocomplete
                 size="mini"
                 class="inline-input"
                 v-model="hisVal"
                 :fetch-suggestions="remoteMethod2"
                 placeholder="请输入关键词"
                 value-key="showName"
-                :trigger-on-focus="false"
+                :trigger-on-focus="true"
                 @select="handleHisSelect"
-              ></el-autocomplete>
+              ></el-autocomplete>-->
             </div>
           </div>
           <span class="clear" @click="clearHis">全部清除</span>
         </div>
 
         <div class="footer">
-          <div class="flex-vertical-between item" v-for="(item,index) in hisChoose" :key="index">
+          <div class="flex-vertical-between item row-old" v-for="(item,index) in hisChoose" :key="item.drugId">
             <div>{{item.name}}/{{item.gg}}/{{item.dw}}</div>
             <div class="clear" @click="deleteHis(index)">+</div>
           </div>
+          <div class="flex-vertical-between item row-new" v-for="(item,index) in hisChooseNew" :key="item.drugId">
+            <div>{{item.name}}/{{item.gg}}/{{item.dw}}</div>
+            <div class="clear" @click="deleteHisNew(index)">+</div>
+          </div>
         </div>
       </div>
     </div>
@@ -106,6 +111,7 @@ export default {
       loading2: false,
       hisVal: [],
       hisOptions: [],
+      hisChooseNew: [],
       hisChoose: []
     };
   },
@@ -125,21 +131,12 @@ export default {
     },
     // his 药品选择
     hisChange(e) {
-      console.log(e);
-
-      this.hisChoose = [];
-      e.forEach(item => {
-        this.hisOptions.forEach(item1 => {
-          if (item1.drugId == item) {
-            this.hisChoose.push(item1);
-          }
-        });
-      });
+      this.hisChooseNew = e.map(id => this.hisOptions.find(item => item.drugId === id)).filter(Boolean);
     },
     // 第三方药品选中
     handleHisSelect(e) {
       // console.log(e, '第三方药品选中')
-      this.hisChoose.push(e);
+      this.hisChooseNew.push(e);
       this.hisVal = "";
     },
     // 平台药品搜索
@@ -173,6 +170,7 @@ export default {
     // 清空his 药品
     clearHis() {
       this.hisVal = [];
+      this.hisChooseNew = [];
       this.hisChoose = [];
       this.hisOptions = [];
       this.searchHisDrug("");
@@ -180,6 +178,10 @@ export default {
     // HIs 药品删除
     deleteHis(index) {
       this.hisChoose.splice(index, 1);
+      // this.hisVal.splice(index, 1);
+    },
+    deleteHisNew(index) {
+      this.hisChooseNew.splice(index, 1);
       this.hisVal.splice(index, 1);
     },
 
@@ -194,7 +196,8 @@ export default {
         });
         return;
       }
-      if (this.hisChoose.length == 0) {
+      const hisChoose = [...this.hisChoose, ...this.hisChooseNew];
+      if (hisChoose.length == 0) {
         this.$message({
           type: "warning",
           message: "请至少选择一种HIS药品",
@@ -203,18 +206,15 @@ export default {
         return;
       }
 
-      this.addOrUpdateDrug(type);
+      this.addOrUpdateDrug(type, hisChoose.map(item => item.drugId));
     },
 
     /// 新增或修改药品映射
-    async addOrUpdateDrug(type) {
-      let jgDrugId = [];
-      this.hisChoose.forEach(item => {
-        jgDrugId.push(item.drugId);
-      });
+    async addOrUpdateDrug(type, jgDrugId) {
       let params = [
         {
           // orgId: this.getuserinfo.organizationid,
+          isMapping: +this.$route.query.isMapping,
           orgId: this.$route.query.pid,
           matDrugId: this.myChoose[0].drugId,
           jgDrugId,
@@ -433,6 +433,11 @@ export default {
   min-height: 24px;
   // height: 0px;
 }
+
+.row {
+  &-old {}
+  &-new {}
+}
 </style>
 
 <style lang="scss" scoped>

+ 17 - 10
src/views/diagnosis/Prescribing.vue

@@ -1107,8 +1107,8 @@
     <!-- 选择代煎 地址栏 -->
     <Popup
       :showDialog="showAddress"
-      @cancle="submitAddress"
-      @confim="submitAddress"
+      @cancle="submitAddress(true)"
+      @confim="submitAddress()"
       title="请和患者确认以下信息"
       width="700px"
       distanceTop="5vh"
@@ -1116,8 +1116,6 @@
       <div slot="body">
         <medAdressNew
           ref="medAdress"
-          @psChange="psChange"
-          @djChange="djChange"
           :isDaijian="Number(isDaiJian)"
           :isPs="Number(isPs)"
           :isShowDj="isShowDj"
@@ -1787,7 +1785,9 @@ export default {
         medAdressData = this.$refs.medAdress.form;
       }
 
+      console.group("debug:20250558")
       data1.recipe_tabs.forEach((item, index) => {
+        console.log("填写值", item.bottom_form.radio)
         let obj = {
           seqn: index + 1,
           province:
@@ -1839,6 +1839,7 @@ export default {
           // preId: this.$route.query.recipeID ? this.$route.query.recipeID : ""
           preId: item.preId ? item.pageId : ""
         };
+        console.log("保存值", obj.isdelivery)
         item.totalTableD.forEach(item1 => {
           if (item1.name && item1.color != "red") {
             let obj1 = {
@@ -1882,7 +1883,7 @@ export default {
           zhongPrescriptionVo.push(obj);
         }
       });
-
+      console.groupEnd()
       return zhongPrescriptionVo;
     },
     // 处理中成药处方提交数据
@@ -2174,8 +2175,11 @@ export default {
             // if (isAutoCheck == 1) {
 
             // }
-
-            obj.bottom_form.radio = Number(item.isdelivery);
+            console.group("debug:20250558")
+            console.log('配送原始', item.isdelivery);
+            obj.bottom_form.radio = item.isdelivery == null ? null : Number(item.isdelivery);
+            console.log('配送赋值', obj.bottom_form.radio);
+            console.groupEnd()
             obj.bottom_form.savename = item.consigneeName;
             obj.bottom_form.phone = item.consigneePhone;
             obj.bottom_form.address = item.address;
@@ -2327,7 +2331,7 @@ export default {
         data1.bottom_form.zhutuo = data.command;
         data1.preId = data.preId ? data.preId : "";
         if (!!this.getEditPreNo()) {
-          data1.bottom_form.radio = Number(data.isdelivery);
+          data1.bottom_form.radio = data.isdelivery == null ? null : Number(data.isdelivery);
           data1.bottom_form.savename = data.consigneeName;
           data1.bottom_form.phone = data.consigneePhone;
           data1.bottom_form.address = data.address;
@@ -3673,7 +3677,7 @@ export default {
 
         if (item.matmaxdosage && item.matmindosage) {
           try {
-            const dose = +item.__medicine__.dose;
+            const dose = CC_Dosage2Basis(item.__medicine__);
             if (dose && (dose < item.matmindosage || dose > item.matmaxdosage)) item.showDose = true;
           } catch (e) {}
           this.rationalMed10.push(item);
@@ -3777,7 +3781,7 @@ export default {
 
           if (item.matmaxdosage && item.matmindosage) {
             try {
-              const dose = +item.__medicine__.dose;
+              const dose = CC_Dosage2Basis(item.__medicine__);
               if (dose < item.matmindosage || dose > item.matmaxdosage) item.showDose = true;
             } catch (e) {}
             this.rationalMed10.push(item);
@@ -4082,6 +4086,7 @@ export default {
               }
 
               if (item instanceof Object && item.oldYpid == item1.matid) {
+                item.oldDose = item.placeholderdose || item1.oldDose;
                 item.ggnum = +item.ggnum || 1;
                 item.xbzxs = +item.xbzxs || '34'.includes(item.zylx) ? item.ggnum : 1;
                 if (item.kc > 0) hasDrugs.push(item);
@@ -4122,6 +4127,7 @@ export default {
                 color: item.color ? item.color : "#000"
               };
               /* 修正 */ obj1.usage = obj1.useage = getUsage(obj1.usage);
+              obj1.oldDose = +item.oldDose || '';
               obj1.ggnum = +item.ggnum || 1;
               obj1.xbzxs = +item.xbzxs || '34'.includes(item.zylx) ? obj1.ggnum : 1;
 
@@ -4209,6 +4215,7 @@ export default {
                 showSearch: false
               };
               /* 修正 */ obj1.usage = obj1.useage = getUsage(obj1.usage);
+              obj1.oldDose = +item.oldDose || '';
               obj1.ggnum = +item.ggnum || 1;
               obj1.xbzxs = +item.xbzxs || '34'.includes(item.zylx) ? obj1.ggnum : 1;