Browse Source

完善中药制剂功能,支持处方推导

cc12458 8 tháng trước cách đây
mục cha
commit
ea7f8c7544
2 tập tin đã thay đổi với 300 bổ sung102 xóa
  1. 258 94
      src/components/MedicineAndChina.vue
  2. 42 8
      src/views/diagnosis/Prescribing.vue

+ 258 - 94
src/components/MedicineAndChina.vue

@@ -3,13 +3,24 @@
   <div class="zcy">
     <div class="chinese_medicine">
       <div class="flex flex-row-right">
+        <div class="t-con-radio flex-vertical-center-l" style="flex-wrap: wrap;align-items: center;">
+          <div class="t-radio-group2" :class="{multiple: group.options.length > 1}" v-for="group in pharmacyTypeGroup" :key="group.name">
+            <label v-if="group.options.length > 1">{{group.name}}</label>
+            <el-radio v-for="item in group.options" :key="item.ptype"
+                      v-model="recipe.radio"
+                      :disabled="recipe.disable"
+                      :label="item.ptype"
+                      @click.native.prevent="recipe.disable || changePharmacy(recipe.lastType,item.ptype)"
+            >{{item.name}}</el-radio>
+          </div>
+        </div>
         <div class="clearer flex-center" @click="clearData();$emit('clear')">清空</div>
       </div>
 
       <div class="c-m-table">
-        <div class="table-body">
+        <div class="table-body table-show">
           <el-table :data="tableData3" style="width:100%;" :span-method="arraySpanMethod">
-            <el-table-column prop="id" label width="40" fixed="left">
+            <el-table-column prop="id" label width="20" fixed="left">
               <template slot-scope="scope">
                 <div v-if="!scope.row.name" class="flex-vertical-between">
                   <div style="width:80px;" class="operate2" id="operate2">
@@ -44,7 +55,7 @@
                       >
                         <div
                           class="infinite-list-item flex-vertical-between"
-                          :style="scope.row.search_i===index1?'background:#F3FFFB;':''"
+                          :style="scope.row.search_i===index1?'background:#EDF3FE;':''"
                           @click="chooseDis3(scope,index1,item1)"
                           v-for="(item1,index1) in scope.row.drugList"
                           :key="index1"
@@ -66,7 +77,7 @@
                 <div v-else>{{scope.row.id}}</div>
               </template>
             </el-table-column>
-            <el-table-column prop="name" label="药品名称" width="120" fixed="left">
+            <el-table-column prop="name" label="药品名称" fixed="left">
               <template slot-scope="scope">
                 <div
                   @click="clickName(scope)"
@@ -106,7 +117,7 @@
                       >
                         <div
                           class="infinite-list-item flex-vertical-between"
-                          :style="scope.row.search_i===index1?'background:#F3FFFB;':''"
+                          :style="scope.row.search_i===index1?'background:#EDF3FE;':''"
                           @click="chooseDis3(scope,index1,item1)"
                           v-for="(item1,index1) in scope.row.drugList"
                           :key="index1"
@@ -123,7 +134,7 @@
               </template>
             </el-table-column>
             <el-table-column prop="spec" label="规格" width="100"></el-table-column>
-            <el-table-column prop="originname" label="产地" width="50"></el-table-column>
+            <el-table-column prop="originname" label="产地"></el-table-column>
             <el-table-column prop="usage" label="用法" width="90">
               <template slot-scope="scope" v-if="scope.row.name">
                 <el-select
@@ -231,7 +242,7 @@
             <el-table-column prop="total" label="小计" width="80"></el-table-column>
             <!-- <el-table-column prop="inventory" label="库存" width="50">
             </el-table-column>-->
-            <el-table-column label="操作" fixed="right">
+            <el-table-column label="操作" width="64" fixed="right">
               <template slot-scope="scope">
                 <div class="operate" v-if="scope.row.name">
                   <div v-if="editable">
@@ -429,6 +440,7 @@ import {
   getPatAddress
 } from "@/api/city.js";
 import {
+  changePharmacy,
   getTableDrug,
   getAddressForHospital,
   getPharmacyID,
@@ -438,6 +450,8 @@ import {
 import { debounce } from "@/utils/format.js";
 import { mapState, mapGetters, mapActions, mapMutations } from "vuex";
 import { getDataByKey } from "@/api/system.js";
+
+let medicineBlurTimer;
 export default {
   name: "medandchinese",
   props: {
@@ -492,6 +506,10 @@ export default {
           timeList: []
         }
       ],
+      /**
+       * 相当于 recipe_tabs[recipe_tabs_c]
+       */
+      recipe: {},
       bzdwList: [],
       page: 1,
       // 底部表单
@@ -512,6 +530,9 @@ export default {
         doseType1: "zc",
         doseNum: ""
       },
+      pharmacyList: [], // 药房选择器 数据
+      pharmacyTypes: [],
+      pharmacyTypeGroup: [],
       pharmacyID: "", // 药房id
       isPay: false,
       province: "",
@@ -527,6 +548,7 @@ export default {
     };
   },
   created() {
+    this.loaded();
     // this.getTableDrug(,'1)
     this.getProver();
     // this.getPharmacyMsg(1)
@@ -538,6 +560,19 @@ export default {
     this._getBzdw();
   },
   methods: {
+    async loaded(props) {
+      if (!this.pharmacyTypes.length) await this.customerQuery().catch(() => void 0);
+
+      let defaultProps = this.recipe;
+      try {
+        defaultProps = {...this.pharmacyTypes[0], ...defaultProps};
+        this.recipe.pharmacyID = defaultProps.pharmacyID || this.pharmacyList[0].pid;
+        this.recipe.radio = defaultProps.radio || defaultProps.ptype;
+        this.recipe.lastType = defaultProps.radio || defaultProps.ptype;
+      } catch (e) {}
+      this.$forceUpdate();
+      return this;
+    },
     //   配送点击
     changePeiSong() {
       this.bottom_form.radio = this.bottom_form.radio == "1" ? "0" : "1";
@@ -562,44 +597,32 @@ export default {
     },
     // 频次改变
     numsChange(e, scope) {
-      let item = scope.row;
-      item.nums = e;
-
-      this.$set(this.tableData3, scope.$index, item);
+      this.tableData3[scope.$index].nums = e;
+      this.tableData3 = this.tableData3.map(item => ({...item}));
     },
     usageChange(e, scope) {
-      let item = scope.row;
-      item.usege = e;
-      console.log(e, "event");
-      this.$set(this.tableData3, scope.$index, item);
+      this.tableData3[scope.$index].usage = e;
+      this.tableData3 = this.tableData3.map(item => ({...item}));
     },
     // 渲染次用量
     timesQuanC(e, scope) {
-      let item = scope.row;
-      item.timesQuan = e;
-
-      this.$set(this.tableData3, scope.$index, item);
+      this.tableData3[scope.$index].timesQuan = e;
+      this.tableData3 = this.tableData3.map(item => ({...item}));
     },
     // 数量 单位修改
     doseUnitC(e, scope) {
-      let item = scope.row;
-      item.doseUnit = e;
-
-      this.$set(this.tableData3, scope.$index, item);
+      this.tableData3[scope.$index].doseUnit = e;
+      this.tableData3 = this.tableData3.map(item => ({...item}));
     },
     // 次用量单位 修改
     timesUnitC(e, scope) {
-      let item = scope.row;
-      item.timesUnit = e;
-
-      this.$set(this.tableData3, scope.$index, item);
+      this.tableData3[scope.$index].timesUnit = e;
+      this.tableData3 = this.tableData3.map(item => ({...item}));
     },
     // 渲染服药时间
     timeC(e, scope) {
-      let item = scope.row;
-      item.time = e;
-
-      this.$set(this.tableData3, scope.$index, item);
+      this.tableData3[scope.$index].time = e;
+      this.tableData3 = this.tableData3.map(item => ({...item}));
     },
     // 计算当前处方金额
     countNowRecipeMoney() {
@@ -672,35 +695,23 @@ export default {
       // debounce(this.getTableDrug(e, 1, scope.$index), 1000)
       debounce(this.getTableDrug(scope.row.key, 1, scope.row.id - 1), 10000);
 
-      this.index = scope.row.id - 1;
+      let index = scope.row.id ? scope.row.id - 1 : 0;
+      this.index = index;
+      this.tableData3[index].key = e;
+      this.tableData3[index].search_i = 0;
     },
     // 药品名称 输入框失去焦点
     drugBlur(e, scope) {
-      setTimeout(() => {
-        this.tableData3[scope.row.id - 1].key = "";
-
-        let ids = document.querySelectorAll("#operate2");
-        ids.forEach((item, index) => {
-          item.style["z-index"] = "99";
-        });
-
-        this.tableData3.filter((item, index) => {
-          return (item.id = index + 1);
-        });
-      }, 500);
+      return this.drugBlur1(e, scope)
     },
     drugBlur1(e, scope) {
-      setTimeout(() => {
+      medicineBlurTimer = setTimeout(() => {
         this.tableData3[scope.row.id - 1].key = "";
         this.tableData3[scope.row.id - 1].showSearch = false;
         let ids = document.querySelectorAll("#operate2");
         ids.forEach((item, index) => {
           item.style["z-index"] = "99";
         });
-
-        this.tableData3.filter((item, index) => {
-          return item.id % 2 != 0;
-        });
       }, 500);
     },
     // 监听键盘事件
@@ -778,14 +789,18 @@ export default {
       );
     },
     clickName(scope) {
-      this.tableData3[scope.row.id - 1].showSearch = !this.tableData3[
-        scope.row.id - 1
-      ].showSearch;
+      if (medicineBlurTimer) clearTimeout(medicineBlurTimer);
 
-      this.tableData3[scope.row.id - 1].key = scope.row.name;
-      this.tableData3[scope.row.id - 1].search_i = 0;
+      const index = scope.$index;
+      scope.row.id = index + 1;
+      this.tableData3[index].id = index;
+      this.tableData3[index].key = scope.row.name;
+      this.tableData3[index].showSearch = true;
+      this.tableData3[index].search_i = 0;
 
-      debounce(this.getTableDrug(scope.row.key, 1, scope.row.id - 1), 10000);
+      this.tableData3 = this.tableData3.map(item => ({...item}));
+
+      debounce(this.getTableDrug(scope.row.key, 1, index), 10000);
       setTimeout(() => {
         console.log(document.querySelectorAll("#searchD1" + scope.row.id));
         document.querySelectorAll("#searchD1" + scope.row.id)[1].focus();
@@ -814,35 +829,45 @@ export default {
     // 选中中成药方
     chooseDis3(scope, index, item) {
       if (!item) return;
+      const totalData = this.tableData3;
+      const i = totalData.findIndex(t => t.medid === item.pid);
+      const oneself = i === scope.row.id - 1;
+      if (i !== -1 && !oneself) {
+        this.$message.warning("请勿重复添加药品");
+        clearTimeout(medicineBlurTimer);
+        return;
+      }
+
       let obj = {
+        color: item.kc == 0 ? "red" : "#000",
         id: scope.row.id,
         name: item.ypmc,
         spec: item.gg, // 规格
-        timesQuan: "", // 次用量
-        timesUnit: "", // 次用量单位
-        dose: "", // 剂量 数量
-        doseUnit: "", // 数量单位
+        timesQuan: item.timesQuan || "", // 次用量
+        timesUnit: item.timesUnit || "", // 次用量单位
+        dose: scope.row.color === "red" || oneself ? null : "", // 剂量 数量
+        doseUnit: item.doseUnit || '', // 数量单位
         unit: item.dw, // 单位
         // unit: item.bzdw, // 单位
         // usage: item.usagestr, // 用法
-        usage: "",
+        usage: item.usage || "",
         // price: item.lsjg,
         price: item.price,
         total: 0,
         inventory: item.kc, // 库存
         key: "",
-        showSearch: false,
-        search_i: 0,
-        showSearch: false,
+        search_i: index,
         medid: item.pid, // 药品id
+        showSearch: false,
         originname: item.cdmc // 产地名称
       };
-      Object.assign(obj, this.tableData3[scope.$index]);
-      // // 调用 父级合理用药接口
-      // let father = this.$parent
-      // father.getRationalMed(obj.medid)
-      let data = this.tableData3;
-      this.tableData3[scope.$index] = obj;
+      if (obj.dose == null) {
+        obj.dose = scope.row.dose;
+      }
+
+
+      const m = Object.assign(totalData[scope.$index], obj);
+      this.tableData3[scope.$index] = m;
 
       if (scope.$index == this.tableData3.length - 1) {
         this.tableData3.push({
@@ -927,6 +952,7 @@ export default {
 
         this.countNowRecipeMoney();
       }
+      if (this.tableData3.length === 0) this.$emit('clear');
     },
     // 修改省的数据
     proC(e) {
@@ -977,12 +1003,105 @@ export default {
     },
     async customerQuery() {
       let res = await customerQuery({
-        type: 1
+        type: 2
       });
       if (res.ResultCode == 0) {
-        this.pharmacyID = res.Data[0].pid;
+        let pharmacyTypes = [];
+        let pharmacyTypeGroup = [];
+        res.Data.forEach(item => {
+          item.dosageForms = item.dosageForms.split(",");
+          item.dosageForms.forEach(item1 => {
+            pharmacyTypes.push({
+              type: item1,
+              ptype: item.pid + "@" + item1,
+              name: item.displayName + (item.dosageForms.length > 1 ? ` (${this.getRadioName(item1)})` : '')
+            });
+          });
+          if (item.dosageForms.length > 1) {
+            pharmacyTypeGroup.push({
+              name: item.displayName,
+              options: item.dosageForms.map(item1 => {
+                return {
+                  type: item1,
+                  ptype: item.pid + "@" + item1,
+                  name: this.getRadioName(item1),
+                }
+              })
+            })
+          } else if (item.dosageForms.length === 1) {
+            pharmacyTypeGroup.push({
+              name: item.displayName,
+              options: item.dosageForms.map(item1 => {
+                return {
+                  type: item1,
+                  ptype: item.pid + "@" + item1,
+                  name: item.displayName,
+                }
+              })
+            })
+          }
+        });
+        this.pharmacyList = res.Data;
+        this.pharmacyTypes = pharmacyTypes;
+        this.pharmacyTypeGroup = pharmacyTypeGroup;
       }
     },
+    async changePharmacy(type, val) {
+      if (!type) type = this.recipe.lastType || '';
+      if (!val) val = this.recipe.radio || '';
+      this.recipe.radio = val;
+      const loading = this.$loading({
+        lock: true,
+        text: "处理中,请稍后....",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
+      const drugIds = this.tableData3.filter(item => item.name).map(item => `${ item.medid }&${ item.doce || '' }&${ item.usage || '' }`);
+      val = val.split("@")[1];
+      type = type.split("@")[1];
+      this.recipe.pharmacyID = this.recipe.radio.split("@")[0];
+
+      let params = {
+        type: val,
+        pharmacyid: this.recipe.pharmacyID,
+        drugIds,
+        preType: this.recipe.preType,
+        oldType: type
+      };
+      let res = await changePharmacy(params).catch(err => {});
+      if (res.ResultCode == 0) {
+        for (const item of res.Data) {
+          if (typeof item === 'string') {
+            const item1 = this.tableData3.find(item1 => item1.medid === item);
+            if (item1) item1.color = "red";
+          } else if (item && typeof item === 'object') {
+            const item1 = this.tableData3.find(item1 => item1.medid === item.oldYpid);
+            if (item1) {
+              item1.medid = item.pid; // 药品id
+              item1.name = item.ypmc;
+              item1.spec = item.gg; // 规格
+              item1.unit = item.dw; // 单位
+              item1.price = item.price;
+              item1.inventory = item.kc; // 库存
+              item1.originname = item.cdmc; // 产地名称
+              if (item.timesQuan)  item1.timesQuan = item.timesQuan;
+              if (item.timesUnit)  item1.timesUnit = item.timesUnit;
+              if (item.dose)  item1.dose = item.dose;
+              if (item.doseUnit)  item1.doseUnit = item.doseUnit;
+              if (item.usage)  item1.usage = item.usage;
+
+              item1.total = item1.price * (item.dose || 0);
+            }
+          }
+        }
+        this.tableData3 = this.tableData3.map(item => ({...item}));
+        this.recipe.lastType = this.recipe.radio; // 存储这一次的 药房类型
+        setTimeout(() => {
+          this.countNowRecipeMoney();
+        }, 500);
+      }
+      loading.close();
+    },
     async getAddressForHospital() {
       let res = await getAddressForHospital({});
       if (res.ResultCode == 0) {
@@ -1000,13 +1119,16 @@ export default {
     },
     // 获取表格药品列表
     async getTableDrug(key, page, index, load = true) {
+      if (medicineBlurTimer) clearTimeout(medicineBlurTimer);
       if (!load) return;
+
+      let type = this.recipe.radio.split("@")[1];
       let params = {
         key: key,
         limit: 5,
         page: page,
-        type: 6
-        // pharmacyid: this.pharmacyID
+        type,
+        pharmacyid: this.recipe.pharmacyID
       };
       let res = await getTableDrug(params);
       if (res.ResultCode == 0) {
@@ -1023,9 +1145,10 @@ export default {
             ];
             this.tableData3[index].page += 1;
           }
-        } else {
+        } else if (index >= 0) {
           this.tableData3[index].loadMore = false;
         }
+        this.tableData3 = this.tableData3.map(item => ({...item}));
       }
     },
     // 获取省数据
@@ -1140,6 +1263,47 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+.t-con-radio {
+  flex: 1;
+  padding-bottom: 5px;
+  border-bottom: 1px solid #eaeaea;
+
+  ::v-deep .el-radio__label {
+    font-size: 16px;
+  }
+}
+
+.t-radio-title {
+  width: 82px;
+  font-size: 16px;
+  font-family: PingFang SC;
+  font-weight: 400;
+  color: #333333;
+}
+
+.t-radio-group {
+  flex: 1;
+}
+
+.t-radio-group2 {
+  padding: 4px 8px;
+
+  &.multiple {
+    border: 2px dashed #5386f6;
+
+    > label:first-of-type {
+      margin-right: 8px;
+      color: rgba(0, 0, 0, 0.6);
+
+      &:after {
+        margin-left: 2px;
+        content: ":";
+      }
+    }
+  }
+}
+</style>
+<style lang="scss" scoped>
 @import "../style/common.scss";
 
 .center-table {
@@ -1629,6 +1793,11 @@ export default {
   }
 }
 
+.table-show::v-deep .el-table .cell {
+  text-align: center;
+  padding: 0 0;
+}
+
 .operate {
   width: 100%;
   height: 100%;
@@ -1797,21 +1966,20 @@ export default {
 }
 
 .table-choose3 {
-  z-index: 999999 !important;
-  width: 332px;
+  z-index: 99;
+  // width: 332px;
+  width: 532px;
   height: 221px;
   background: #ffffff;
   border: 2px solid #d8d8d8;
-  // position: absolute;
   position: fixed;
-
-  margin-top: 19px;
-  left: 318px;
+  //top: 44px;
+  //left: 84px;
+  //margin-top: 19px;
   overflow: auto;
-  // z-index: 999 !important;
 
   .table-choose-h {
-    background: #f3fffb;
+    background: rgba($color: #5386f6, $alpha: 0.1);
 
     div {
       height: 36px;
@@ -1821,15 +1989,19 @@ export default {
     div:first-child {
       width: 115px;
     }
+
+    div:nth-child(2),
+    div:nth-child(3) {
+      width: 173px;
+    }
   }
 
   .t-c-b {
     cursor: pointer;
     height: 180px;
-    width: 100%;
 
     .td {
-      background: #f3fffb;
+      background: rgba($color: #5386f6, $alpha: 0.1);
     }
 
     p {
@@ -1838,22 +2010,14 @@ export default {
       width: 73px;
       // flex: 1;
       box-sizing: border-box;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      white-space: nowrap;
     }
 
     p:first-child {
       width: 115px;
     }
-
+    p:nth-child(2),
     p:nth-child(3) {
-      // color: red;
-      overflow: hidden;
-      text-overflow: ellipsis;
-      white-space: nowrap;
-      text-align: left;
-      line-height: 36px;
+      width: 173px;
     }
   }
 }

+ 42 - 8
src/views/diagnosis/Prescribing.vue

@@ -1215,7 +1215,8 @@ export default {
 
       showTestCase: false, // 名医医案
       isTuiDaoSuit: false, //适宜技术处方是否推导过
-      isTuiDataZy: false, // 中药处方是否推导过
+      isTuiDaoZj: false, // 中药制剂是否推导过
+      isTuiDaoZy: false, // 中药处方是否推导过
       raDoseShow: false,
       tjRecipeId: "", // 当前选中推荐 方剂的 id
 
@@ -1321,6 +1322,7 @@ export default {
         },
         {
           id: '1',
+          businesstype: '2',
           name: "中药制剂",
           check: false,
           hide: true,
@@ -1408,7 +1410,7 @@ export default {
   },
   methods: {
     // 处理路由参数
-   async _processRouteQuery() {
+    async _processRouteQuery() {
       const query = this.$route.query || {};
       // 暂存处方数据(不含药品)
       if (sessionStorage.getItem("prescr" + this.getPatiensInfo.pid)) await this._showDataFromStorage(true);
@@ -1423,10 +1425,12 @@ export default {
       else if (query.type === "tuidao") {
         this.isTuiDaoSuit = false;
         this.isTuiDaoZy = false;
+        this.isTuiDaoZj = false;
         await this.inferRecipe();
         const current = this.contentTabs[this.container_i];
         if (!current) return;
         if (current.id === '0') this.isTuiDaoZy = true
+        else if (current.id === '1') this.isTuiDaoZj = true
         else if (current.id === '2') this.isTuiDaoSuit = true
       }
       // 处方编辑 recipeType
@@ -1441,11 +1445,12 @@ export default {
         if (has) await this.getRecipeShowData();
         else if (this.getEditPreNo()) await this.getRecipeDataByid(this.getEditPreNo());
       }
-   },
+    },
 
     // 中医诊断推导点击
     tcmClick(isauto = true) {
      this.isTuiDaoZy = false;
+     this.isTuiDaoZj = false;
      this.isTuiDaoSuit = false;
       let params = this.$refs.TCM.getParams();
 
@@ -1476,10 +1481,12 @@ export default {
 
       setTimeout(() => {
         for (const tab of this.contentTabs) {
-          if (tab.id === '1' || tab.hide) continue;
-          this.inferRecipe(4, tab.businesstype).then(() => {
+          if (tab.hide) continue;
+          const type = tab.id === '1' && tab.id === current.id ? 3 : 4;
+          this.inferRecipe(type, tab.businesstype).then(() => {
             if (tab.id === current.id ) {
               if (current.id === '0') this.isTuiDaoZy = true
+              else if (current.id === '1') this.isTuiDaoZj = true
               else if (current.id === '2') this.isTuiDaoSuit = true
             }
           })
@@ -2727,12 +2734,17 @@ export default {
     },
     clearContainer(id) {
       try { this.contentTabs.find(tab => tab.id === id).color = ''; } catch (e) {}
+      switch (id.toString()) {
+        case '0': this.isTuiDaoZy = false; break;
+        case '1': this.isTuiDaoZj = false; break;
+        case '2': this.isTuiDaoSuit = false; break;
+      }
     },
     // 顶部tab 改变
     async changeContainer(item, type) {
       this.container_i = type;
       item.check = true;
-      if (item.id === '1') return;
+      // if (item.id === '1') return;
       // if (this.contentTabs[type].color == 'red') {
       await this.inferRecipe(3, item.businesstype);
 
@@ -3773,7 +3785,7 @@ export default {
       if (!this.patiensMsg.maindiagnosis.disid) {
         return;
       }
-      if (this.container_i == 1) return;
+      // if (this.container_i == 1) return;
       if (type != 4) {
         // if (!this.patiensMsg.maindiagnosis.disid) {
         //   this.$message.warning('请先提交一条诊断信息');
@@ -3797,7 +3809,7 @@ export default {
       };
       const loading = this.$loading({
         lock: true,
-        text: "正在获取推荐方剂数据",
+        text: `正在获取推荐${ +businesstype === 2 ? '制剂' : '方剂' }数据`,
         spinner: "el-icon-loading",
         background: "rgba(0, 0, 0, 0.7)"
       });
@@ -3850,6 +3862,7 @@ export default {
         if (this.$route.query.type != "tuidao" && type == 1) return;
         if (type === 3) {
           try { if (this.contentTabs[this.container_i].id === '0' && this.isTuiDaoZy) return; } catch (e) {}
+          try { if (this.contentTabs[this.container_i].id === '1' && this.isTuiDaoZj) return; } catch (e) {}
           try { if (this.contentTabs[this.container_i].id === '2' && this.isTuiDaoSuit) return; } catch (e) {}
         }
         if (this.rRecomendR.length == 0) return;
@@ -3913,6 +3926,27 @@ export default {
             if (type == 3) {
               this.isTuiDaoSuit = true;
             }
+          } else if (this.container_i == 1) {
+            if (arr2.length) {
+              const info = arr2[0];
+              let drugs = Array.isArray(info) ? info : info && typeof info === 'object' ? [info] : [];
+              this.setDrugsInfo(drugs.map(item=> {
+                return {
+                  medid: item.drugid,
+                  name: item.drugname,
+                }
+              }));
+              this.setRecipeId('');
+
+              const child = this.$children.find(item => item.name === "中药制剂");
+              child.tableData3 = this.getDrugInfo.map(item => ({...item}));
+              child.changePharmacy();
+
+              console.log(child.tableData3, 'log:切换');
+
+              if (type == 3)  this.isTuiDaoZj = true;
+            }
+
           }
         }, 500);
       }