10/14 基础数据优化1.0
							parent
							
								
									a915b64c34
								
							
						
					
					
						commit
						96e7d44285
					
				| @ -0,0 +1,52 @@ | ||||
| import axios from "@/utils/request"; | ||||
| 
 | ||||
| export function addDrug(query) { | ||||
|   return axios({ | ||||
|     url: "/udi/udirel/addDrug", | ||||
|     method: "post", | ||||
|     data: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function updatetDrug(query) { | ||||
|   return axios({ | ||||
|     url: "/udi/udirel/updatetDrug", | ||||
|     method: "post", | ||||
|     data: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function updateLevelDrug(query) { | ||||
|   return axios({ | ||||
|     url: "/udi/udirel/updateLevelDrug", | ||||
|     method: "post", | ||||
|     data: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| export function delDrugLevel(query) { | ||||
|   return axios({ | ||||
|     url: "udi/udirel/drug/delLevel", | ||||
|     method: "post", | ||||
|     data: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function calculateDistCount(query) { | ||||
|   return axios({ | ||||
|     url: "udi/udirel/calculateDistCount", | ||||
|     method: "post", | ||||
|     data: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function calculateUseCount(query) { | ||||
|   return axios({ | ||||
|     url: "udi/udirel/calculateUseCount", | ||||
|     method: "post", | ||||
|     data: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,640 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card class="el-card"> | ||||
|       <el-form :model="erpQuery" label-width="120px" v-if="showSearch"> | ||||
|         <el-row> | ||||
|           <el-col :span="6"> | ||||
|               <el-form-item label="医保编码:"> | ||||
|                 <el-input v-model="erpQuery.ybbm" style="width: 90%" clearable="true" placeholder="请输入医保编码" | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="物资编码:"> | ||||
|               <el-input v-model="erpQuery.code" style="width: 90%" placeholder="请输入药品编码" clearable="true" | ||||
|                         @keyup.enter.native="keyupErp_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="药品名称:"> | ||||
|               <el-input v-model="erpQuery.name" style="width: 90%" placeholder="请输入药品名称" clearable="true" | ||||
|                         @keyup.enter.native="keyup_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="规格/单位:"> | ||||
|               <el-input v-model="erpQuery.spec" style="width: 90%" placeholder="包装/制剂 规格/单位" clearable="true" | ||||
|                         @keyup.enter.native="keyupErp_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|         <el-row> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="批准文号:"> | ||||
|               <el-input v-model="erpQuery.registerNo" style="width: 90%" clearable="true" placeholder="请输入批准文号" | ||||
|                         @keyup.enter.native="keyup_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="生产企业:"> | ||||
|               <el-input v-model="erpQuery.manufactory" style="width: 90%" clearable="true" placeholder="请输入生产企业" | ||||
|                         @keyup.enter.native="keyup_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="配送企业:"> | ||||
|               <el-input v-model="erpQuery.supName" style="width: 90%" clearable="true" placeholder="请输入配送企业" | ||||
|                         @keyup.enter.native="keyup_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="外部系统:"> | ||||
|               <el-select v-model="thirdSysFk" style="width: 90%" placeholder="请设置主系统" disabled="isImport"> | ||||
|                 <el-option | ||||
|                   v-for="item in thirdSys" | ||||
|                   :key="item.value" | ||||
|                   :label="item.thirdName" | ||||
|                   :value="item.thirdId"> | ||||
|                   <span style="float: left">{{ item.thirdName }}</span> | ||||
|                   <span | ||||
|                     style="float: right; color: #8492a6; font-size: 13px">{{ item.thirdId }}</span> | ||||
|                 </el-option> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </el-form> | ||||
| 
 | ||||
| 
 | ||||
|       <div class="top-right-btn"> | ||||
|         <el-button-group style="display:flex;"> | ||||
|           <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button> | ||||
|           <el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button> | ||||
|           <el-button type="primary" icon="el-icon-search" @click="searchErpList">查询</el-button> | ||||
|           <el-button type="primary" icon="el-icon-bottom-left" @click="combine" :loading="combineLoading">选入</el-button> | ||||
|           <el-button type="primary" icon="el-icon-bottom-left" @click="combineAll" v-if="isImport  &&  !supEnable">结果全部选入</el-button> | ||||
|         </el-button-group> | ||||
|       </div> | ||||
| 
 | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
| 
 | ||||
|       <el-table :data="erpList" style="width: 100%" highlight-current-row="true" border ref="multipleTable" @row-click="handleRowClick" | ||||
|                 v-loading="erpLloading" @current-change="handleErpChange" @selection-change="handleSelectionChange"> | ||||
|         <el-table-column v-if="isImport" type="selection" width="55" :selectable="checkSelectable"></el-table-column> | ||||
|         <el-table-column label width="45" v-if="!isImport"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-radio :label="scope.row.id" v-model="chenck" ><span></span></el-radio> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <!--<el-table-column v-if="!isImport" type="selection" width="55"></el-table-column>--> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="医保编码" prop="ybbm"></el-table-column> | ||||
|         <el-table-column label="物资编码" prop="code"></el-table-column> | ||||
|         <el-table-column label="物资名称" prop="name"></el-table-column> | ||||
|         <el-table-column label="计量单位" prop="measname"></el-table-column> | ||||
|         <el-table-column label="包装规格" prop="spec"></el-table-column> | ||||
|         <el-table-column label="制剂规格" prop="prepnSpec"></el-table-column> | ||||
|         <el-table-column label="制剂单位" prop="prepnUnit"></el-table-column> | ||||
|         <el-table-column label="批准文号" prop="registerNo"></el-table-column> | ||||
|         <el-table-column label="生产企业" prop="manufactory"></el-table-column> | ||||
|         <el-table-column label="配送企业" prop="supName"></el-table-column> | ||||
|         <el-table-column label="操作" width="60"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button type="text" @click.native.stop="detailDialog(scope.row)">详情</el-button> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
| 
 | ||||
|       </el-table> | ||||
|       <pagination | ||||
|         v-show="pageTotal>0" | ||||
|         :total="pageTotal" | ||||
|         :page.sync="erpQuery.page" | ||||
|         :limit.sync="erpQuery.limit" | ||||
|         @pagination="handleErpPageChange" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
| 
 | ||||
|     <el-card class="el-card" v-if="!isImport"> | ||||
|       <el-form label-width="120px"> | ||||
|         <el-row> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="物资名称:"> | ||||
|               <el-input style="width: 90%" size="small" splaceholder="请输入内容" :disabled="true" | ||||
|                         v-model="data.cpmctymc"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="产品标识:"> | ||||
|               <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" | ||||
|                         v-model="data.nameCode"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
| 
 | ||||
|         <el-row> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="包装规格:"> | ||||
|               <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" | ||||
|                         v-model="data.bzgg"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="批准文号:"> | ||||
|               <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" | ||||
|                         v-model="data.zczbhhzbapzbh"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
| 
 | ||||
|         <el-row> | ||||
|           <!--<el-col :span="12" class="el-col">--> | ||||
|           <!--  <el-form-item label="注册人英文名称:">--> | ||||
|           <!--    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容"--> | ||||
|           <!--              v-model="data.ylqxzcrbarywmc"></el-input>--> | ||||
|           <!--  </el-form-item>--> | ||||
|           <!--</el-col>--> | ||||
|           <!--<el-col :span="12" class="el-col">--> | ||||
|           <!--  <el-form-item label="器械类别:">--> | ||||
|           <!--    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容"--> | ||||
|           <!--              v-model="data.qxlb"></el-input>--> | ||||
|           <!--  </el-form-item>--> | ||||
|           <!--</el-col>--> | ||||
|         </el-row> | ||||
| 
 | ||||
|         <el-row> | ||||
|           <!--<el-col :span="12" class="el-col">--> | ||||
|           <!--  <el-form-item label="产品类别:">--> | ||||
|           <!--    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容"--> | ||||
|           <!--              v-model="data.cplb"></el-input>--> | ||||
|           <!--  </el-form-item>--> | ||||
|           <!--</el-col>--> | ||||
|           <!--<el-col :span="12" class="el-col">--> | ||||
|           <!--  <el-form-item label="分类编码:">--> | ||||
|           <!--    <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容"--> | ||||
|           <!--              v-model="data.flbm"></el-input>--> | ||||
|           <!--  </el-form-item>--> | ||||
|           <!--</el-col>--> | ||||
|         </el-row> | ||||
| 
 | ||||
|         <el-row> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="商品条码:"> | ||||
|               <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" | ||||
|                         v-model="data.sptm"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="医保编码:"> | ||||
|               <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" | ||||
|                         v-model="data.ybbm"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
| 
 | ||||
|         <el-row> | ||||
|           <el-col :span="12" class="el-col"> | ||||
|             <el-form-item label="统一社会信用号:"> | ||||
|               <el-input style="width: 90%" :disabled="true" size="small" splaceholder="请输入内容" | ||||
|                         v-model="data.tyshxydm"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
| 
 | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|     </el-card> | ||||
| 
 | ||||
|     <el-dialog | ||||
|       title="药品信息详情" | ||||
|       :visible.sync="thrProductsDetailVisible" | ||||
|       width="60%" | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       append-to-body | ||||
|       v-if="thrProductsDetailVisible" | ||||
|     > | ||||
|       <thrProductsDetail | ||||
|         :data="thisData" | ||||
|       ></thrProductsDetail> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|   </div> | ||||
| 
 | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {modifyRel, addErp, addAllErp, combineUdi} from "@/api/basic/udiRelevance"; | ||||
| import {getInvbasdoc} from "@/api/basic/getErps"; | ||||
| import {getBasicThirdSys} from "@/api/basic/basicThirdSys"; | ||||
| import thrProductsDetail from "../../../thirdSys/drug/thrDrugDetail"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "closeDialog", | ||||
|   props: { | ||||
|     uuid: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
| 
 | ||||
|     data: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
| 
 | ||||
|     relId: { | ||||
|       type: Number, | ||||
|       required: true, | ||||
|     }, | ||||
| 
 | ||||
|     isImport: { | ||||
|       type: Boolean, | ||||
|       required: true, | ||||
|     }, | ||||
| 
 | ||||
|     closeDialog: { | ||||
|       type: Function, | ||||
|       required: true, | ||||
|     }, | ||||
|     defaultSys: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
|     supEnable: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
|     intentThirdId: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
|     mainIds: { | ||||
|       type: Array, | ||||
|       required: true, | ||||
|     } | ||||
| 
 | ||||
|   }, | ||||
| 
 | ||||
|   data() { | ||||
|     return { | ||||
|       showSearch: true, | ||||
|       erpQuery: { | ||||
|         code: null, | ||||
|         name: null, | ||||
|         spec: null, | ||||
|         registerNo: null, | ||||
|         manufactory: null, | ||||
|         thirdSys: null, | ||||
|         supName: null, | ||||
|         measname: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         productType:2 | ||||
|       }, | ||||
|       thisData: null, | ||||
|       thrProductsDetailVisible: false, | ||||
|       combineLoading: false, | ||||
|       combineQuery: { | ||||
|         thirdId: "", | ||||
|         relId: "", | ||||
|         erpName: "", | ||||
|         keys: [], | ||||
|         thirdIds: [], | ||||
|         thirdSys: null, | ||||
|         query: null, | ||||
|         isRlInv: null, | ||||
|         manufactory: null, | ||||
|         measname: null, | ||||
|         ybbm: null, | ||||
|         sptm: null, | ||||
|       }, | ||||
| 
 | ||||
|       udidlList: [], | ||||
|       erpList: [], | ||||
|       pageTotal: 1, | ||||
|       total: 1, | ||||
|       currentRow: null, | ||||
|       loading: false, | ||||
|       erpLloading: false, | ||||
|       multipleUdiSelection: [], | ||||
|       thirdSys: [], | ||||
|       thirdSysFk: null, | ||||
|       chenck: '', | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.erpQuery = { | ||||
|         code: null, | ||||
|         name: null, | ||||
|         spec: null, | ||||
|         registerNo: null, | ||||
|         manufactory: null, | ||||
|         thirdSys: null, | ||||
|         supName: null, | ||||
|         measname: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         productType:2 | ||||
|       }; | ||||
|       this.getErpList(); | ||||
|     }, | ||||
|     tableRowClassName({row}) { | ||||
|       if (row.checked) return "warning-row"; | ||||
|       return ""; | ||||
|     }, | ||||
| 
 | ||||
|     detailDialog(row) { | ||||
|       this.thisData = row; | ||||
|       this.thrProductsDetailVisible = true; | ||||
|     }, | ||||
| 
 | ||||
|     // checkSelectable(row) { | ||||
|     //   return !row.checked; | ||||
|     // }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.unionQuery.page = val; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     handleErpChange(val,currentRow, oldCurrentRow) { | ||||
|       if (!this.isImport){ | ||||
|         this.chenck = val.id | ||||
|         this.currentRow = val; | ||||
|       } | ||||
|     }, | ||||
|     handleRowClick(row){ | ||||
|       row.isSelected = !row.isSelected; | ||||
|       let isTrue = this.checkSelectable(row) | ||||
|       if (isTrue){ | ||||
|         this.$refs.multipleTable.toggleRowSelection(row); | ||||
|       } | ||||
|     }, | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     handleErpPageChange(val) { | ||||
|       this.erpQuery.page = val.page; | ||||
|       this.getErpList(); | ||||
|     }, | ||||
| 
 | ||||
|     searchErpList() { | ||||
|       this.erpQuery.page = 1; | ||||
|       this.getErpList(); | ||||
|     }, | ||||
| 
 | ||||
|     keyup_submit(event) { | ||||
| 
 | ||||
|       this.erpQuery.page = 1; | ||||
|       this.getErpList(); | ||||
|       event.target.select(); | ||||
|     }, | ||||
|     getErpList() { | ||||
|       this.erplLoading = true; | ||||
|       this.erpQuery.thirdSys = this.thirdSysFk; | ||||
|       getInvbasdoc(this.erpQuery) | ||||
|         .then((response) => { | ||||
|           this.erplLoading = false; | ||||
|           if (response.code == 20000) { | ||||
|             this.erpList = response.data.list || []; | ||||
|             this.pageTotal = response.data.total || 0; | ||||
|           } else { | ||||
|             this.$message.error(response.message); | ||||
|             this.erpList = []; | ||||
|             this.pageTotal = 0; | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.erplLoading = false; | ||||
|           this.erpList = []; | ||||
|           this.pageTotal = 0; | ||||
|         }); | ||||
|     }, | ||||
|     intentBack() { | ||||
|       this.closeDialog(); | ||||
|     }, | ||||
| 
 | ||||
|     combineAll() { | ||||
| 
 | ||||
|       this.$confirm("此操作将在后台自动下载所有查询结果, 是否继续?", "提示", { | ||||
|         confirmButtonText: "确定", | ||||
|         cancelButtonText: "取消", | ||||
|         type: "warning", | ||||
|       }) | ||||
|         .then(() => { | ||||
|           this.combineQuery.thirdSys = this.thirdSysFk; | ||||
|           this.combineQuery.query = this.erpQuery; | ||||
|           addAllErp(this.combineQuery) | ||||
|             .then((response) => { | ||||
|               if (response.code == 20000) { | ||||
|                 this.$message.success(response.data); | ||||
|                 this.closeDialog() | ||||
|               } else { | ||||
|                 this.$message.error(response.message); | ||||
|                 this.closeDialog() | ||||
|               } | ||||
|             }) | ||||
|             .catch(() => { | ||||
|               this.closeDialog() | ||||
|             }); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
| 
 | ||||
| 
 | ||||
|     }, | ||||
| 
 | ||||
|     combine() { | ||||
|       this.combineQuery.query = null; | ||||
|       this.combineQuery.relId = this.relId; | ||||
|       this.combineQuery.thirdSys = this.thirdSysFk; | ||||
|       this.combineQuery.supEnable = this.supEnable; | ||||
|       if (this.isImport) { | ||||
|         this.combineQuery.thirdId = null; | ||||
|         let selectData = this.multipleUdiSelection; | ||||
|         let selected = ''; | ||||
|         selectData.forEach((row) => { | ||||
| 
 | ||||
|           if (row.checked) { | ||||
|             selected = selected + row.code + ","; | ||||
|           } | ||||
|           this.combineQuery.thirdIds.push(row.code); | ||||
|           this.combineQuery.manufactory = row.manufactory; | ||||
|           this.combineQuery.measname = row.measname; | ||||
| 
 | ||||
|         }); | ||||
|         if (this.currentRow != null) { | ||||
|           this.combineQuery.manufactory = this.currentRow.manufactory; | ||||
|           this.combineQuery.measname = this.currentRow.measname; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         if (selectData.length == 0) { | ||||
|           this.$message.warning("未选择产品"); | ||||
|           return; | ||||
|         } | ||||
|         if (selected != '') { | ||||
|           this.$confirm("物资编码:" + selected + "已被添加,是否继续添加", "提示", { | ||||
|             confirmButtonText: "确定", | ||||
|             cancelButtonText: "取消", | ||||
|             type: "warning", | ||||
|           }) | ||||
|             .then(() => { | ||||
|               this.combineLoading = true; | ||||
|               combineUdi(this.combineQuery) | ||||
|                 .then((response) => { | ||||
|                   this.combineLoading = false; | ||||
|                   if (response.code == 20000) { | ||||
|                     this.closeDialog() | ||||
|                     this.$message.success(response.data); | ||||
|                   } else { | ||||
|                     this.$message.error(response.message); | ||||
|                   } | ||||
|                 }) | ||||
|                 .catch(() => { | ||||
|                   this.combineLoading = false; | ||||
|                   this.combineQuery.thirdIds = []; | ||||
|                   this.$emit("closeUdi", false); | ||||
| 
 | ||||
|                 }); | ||||
|             }) | ||||
|             .catch(() => { | ||||
|               this.combineQuery.thirdIds = []; | ||||
|             }); | ||||
|         } else { | ||||
|           combineUdi(this.combineQuery) | ||||
|             .then((response) => { | ||||
|               this.combineLoading = false; | ||||
|               if (response.code == 20000) { | ||||
|                 this.closeDialog() | ||||
|                 this.$message.success(response.data); | ||||
|               } else { | ||||
|                 this.closeDialog() | ||||
|                 this.$message.warning(response.message); | ||||
|               } | ||||
|             }) | ||||
|             .catch(() => { | ||||
|               this.combineLoading = false; | ||||
|               this.closeDialog() | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
|       } else { | ||||
|         this.combineQuery.thirdId = this.currentRow.code; | ||||
|         this.combineQuery.erpName = this.currentRow.name; | ||||
|         this.combineQuery.manufactory = this.currentRow.manufactory; | ||||
|         this.combineQuery.measname = this.currentRow.measname; | ||||
|         this.combineQuery.ybbm = this.currentRow.ybbm; | ||||
|         this.combineQuery.sptm = this.currentRow.sptm; | ||||
|         this.erpQuery.manufactory = this.currentRow.manufactory; | ||||
|         this.erpQuery.measname = this.currentRow.measname; | ||||
|         this.combineQuery.price = this.currentRow.price; | ||||
| 
 | ||||
| 
 | ||||
|         if (this.currentRow.checked) { | ||||
| 
 | ||||
|           this.$confirm("物资编码:" + this.currentRow.code + "已被选入,是否继续选入", "提示", { | ||||
|             confirmButtonText: "确定", | ||||
|             cancelButtonText: "取消", | ||||
|             type: "warning", | ||||
|           }) | ||||
|             .then(() => { | ||||
|               this.combineLoading = true; | ||||
|               modifyRel(this.combineQuery) | ||||
|                 .then((response) => { | ||||
|                   this.combineLoading = false; | ||||
|                   if (response.code == 20000) { | ||||
|                     this.$emit("closeUdi", true); | ||||
|                   } else { | ||||
|                     this.$emit("closeUdi", false); | ||||
|                     this.$message.error(response.message); | ||||
|                   } | ||||
|                 }) | ||||
|                 .catch(() => { | ||||
|                   this.combineLoading = false; | ||||
|                   this.$emit("closeUdi", false); | ||||
|                 }); | ||||
|             }) | ||||
|         } else { | ||||
|           this.combineLoading = true; | ||||
|           modifyRel(this.combineQuery) | ||||
|             .then((response) => { | ||||
|               this.combineLoading = false; | ||||
|               if (response.code == 20000) { | ||||
|                 this.$message.success("更新成功") | ||||
|                 this.$emit("closeUdi", false); | ||||
|               } else { | ||||
|                 this.$emit("closeUdi", false); | ||||
|                 this.$message.error(response.message); | ||||
|               } | ||||
|             }) | ||||
|             .catch(() => { | ||||
|               this.combineLoading = false; | ||||
|               this.$emit("closeUdi", false); | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
|       } | ||||
|     }, | ||||
| 
 | ||||
|     handleSelectionChange(val) { | ||||
|       this.multipleUdiSelection = val; | ||||
|     }, | ||||
|     getBasicThirdSys() { | ||||
|       let query = { | ||||
|         enabled: true, | ||||
|         mainSys: false, | ||||
|         filter: true, | ||||
|       }; | ||||
|       if (this.isImport) { | ||||
|         query.mainSys = true; | ||||
|       } | ||||
|       getBasicThirdSys(query) | ||||
|         .then((response) => { | ||||
|           this.thirdSys = response.data.list || []; | ||||
|           this.thirdSysFk = this.thirdSys[0].thirdId; | ||||
|           if (this.defaultSys != null) { | ||||
|             this.thirdSysFk = this.defaultSys; | ||||
|           } | ||||
|           this.searchErpList(); | ||||
| 
 | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.list = []; | ||||
|         }); | ||||
|     }, | ||||
|     checkSelectable(row) { | ||||
|       if (this.mainIds == null) { | ||||
|         return true | ||||
|       } else { | ||||
|         if (this.mainIds.length > 0) { | ||||
|           return this.mainIds.indexOf(row.code) === -1 | ||||
|         } else { | ||||
|           return true | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   components: { | ||||
|     thrProductsDetail | ||||
|   }, | ||||
| 
 | ||||
|   created() { | ||||
|     this.getBasicThirdSys(); | ||||
|     this.erpQuery.code = this.intentThirdId; | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| div /deep/ .el-table .warning-row { | ||||
|   background: #bebebe; | ||||
| } | ||||
| 
 | ||||
| div /deep/ .el-table .success-row { | ||||
|   background: #ffffff; | ||||
| } | ||||
| </style> | ||||
											
												
													File diff suppressed because it is too large
													Load Diff
												
											
										
									
								| @ -0,0 +1,362 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card> | ||||
|       <el-form :model="filterQuery" size="mini" label-width="100px" v-if="showSearch"> | ||||
|         <el-row> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="药品编码:"> | ||||
|               <el-input v-model="filterQuery.code" style="width: 90%" placeholder="请输入产品编码/商品条码/医保编码" clearable | ||||
|                         @keyup.enter.native="keyupErp_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="药品名称:"> | ||||
|               <el-input v-model="filterQuery.name" clearable style="width: 90%" placeholder="请输入产品名称"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="包装规格:"> | ||||
|               <el-input v-model="filterQuery.spec" clearable style="width: 90%" placeholder="请输入规格型号"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|         <el-row> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="批准文号:"> | ||||
|               <el-input v-model="filterQuery.registerNo" clearable style="width: 90%" | ||||
|                         placeholder="请输入注册/备案凭证"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="生产企业:"> | ||||
|               <el-input v-model="filterQuery.manufactory" clearable style="width: 90%" placeholder="请输入生产企业"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="外部系统:"> | ||||
|               <el-select v-model="filterQuery.thirdSys" placeholder="请选择第三方系统" @change="thirdSysChange" | ||||
|                          style="width: 90%" | ||||
|               > | ||||
|                 <el-option | ||||
|                   v-for="item in thirdSys" | ||||
|                   :key="item.value" | ||||
|                   :label="item.thirdName" | ||||
|                   :value="item.thirdId"> | ||||
|                   <span style="float: left">{{ item.thirdName }}</span> | ||||
|                   <span style="float: right; color: #8492a6; font-size: 13px">{{ item.thirdId }}</span> | ||||
|                 </el-option> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div class="top-right-btn"> | ||||
|         <el-button-group style="display:flex;"> | ||||
|           <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button> | ||||
|           <el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button> | ||||
|           <el-button type="primary" icon="el-icon-search" @click="search">查询</el-button> | ||||
|           <el-button type="primary" icon="el-icon-plus" @click="addProductVisible=true" | ||||
|                      :disabled="!configParms.basicThirdProducts">新增 | ||||
|           </el-button> | ||||
|         </el-button-group> | ||||
|       </div> | ||||
| 
 | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row> | ||||
|         <el-table-column label="序号" type="index" width="80"></el-table-column> | ||||
|         <el-table-column label="药品编码" prop="code"></el-table-column> | ||||
|         <el-table-column label="药品名称" prop="name" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="包装规格" prop="spec" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="计量单位" prop="measname" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="批准文号" prop="registerNo" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="操作" width="180px"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button type="text" @click.native.stop="detailDialog(scope.row)">编辑</el-button> | ||||
|             <el-button type="text" @click.native.stop="deleteDialog(scope.row)" v-if="thirdSysDetail.fromType!=0" | ||||
|                        :disabled="!configParms.basicThirdProducts">删除 | ||||
|             </el-button> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
| 
 | ||||
| 
 | ||||
|       <pagination | ||||
|         v-show="total>0" | ||||
|         :total="total" | ||||
|         :limit.sync="filterQuery.limit" | ||||
|         :page.sync="filterQuery.page" | ||||
|         @pagination="getList" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
| 
 | ||||
|     <el-dialog | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       title="药品信息编辑" | ||||
|       :visible.sync="thrProductsDetailVisible" | ||||
|       width="60%" | ||||
|       class="dialog-two" | ||||
|       top="5vh" | ||||
|       v-if="thrProductsDetailVisible" | ||||
|     > | ||||
|       <thrProductsEdit | ||||
|         :newProductData="thisData" | ||||
|         :closeAddDialog="closeAddDialog" | ||||
|       ></thrProductsEdit> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|     <el-dialog | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       title="新增配送药品" | ||||
|       :visible.sync="addProductVisible" | ||||
|       width="60%" | ||||
|       v-if="addProductVisible" | ||||
|       @close="closeAddDialog" | ||||
|       class="dialog-two" | ||||
|       top="5vh" | ||||
|     > | ||||
| 
 | ||||
|       <ThrProductsAdd | ||||
|         :newType="newType" | ||||
|         :closeAddDialog="closeAddDialog"></ThrProductsAdd> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
| <script> | ||||
| import { | ||||
|   delThrProducts, saveNewProduct | ||||
| } from "@/api/thrsys/thrProducts"; | ||||
| import {getInvbasdoc} from "@/api/thrsys/getErps"; | ||||
| import {getBasicThirdSys, filterDetailByKey} from "@/api/thrsys/basicThirdSys"; | ||||
| import {selectIp} from "@/api/system/systemParamConfig"; | ||||
| import thrProductsEdit from "./thrDrugEdit"; | ||||
| import ThrProductsAdd from "./thrDrugAdd"; | ||||
| import {findConfig} from "@/api/sync/spsSyncStatus"; | ||||
| 
 | ||||
| export default { | ||||
|   data() { | ||||
|     return { | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         code: null, | ||||
|         name: "", | ||||
|         spec: null, | ||||
|         registerNo: null, | ||||
|         manufactory: null, | ||||
|         thirdSys: "thirdId", | ||||
|         page: 1, | ||||
|         limit: 20, | ||||
|         productType:2 | ||||
|       }, | ||||
|       mainThirdSys: '', | ||||
|       total: 0, | ||||
|       thirdSys: [], | ||||
|       thirdSysDetail: null, | ||||
|       list: [], | ||||
|       uploadFileUrl: null, | ||||
|       fileList: [], | ||||
|       uploadData: { | ||||
|         thirdSys: "thirdId", | ||||
|       }, | ||||
|       newType: 1, | ||||
|       thrProductsDetailVisible: false, | ||||
|       thisData: null, | ||||
|       loading: false, | ||||
|       addProductVisible: false, | ||||
|       newProductData: { | ||||
|         name: '', | ||||
|         code: null, | ||||
|         registerNo: null, | ||||
|         manufactory: null, | ||||
|         spec: null, | ||||
|         measname: null, | ||||
|         ylqxzcrbarmc: null, | ||||
|         ylqxzcrbarywmc: null, | ||||
|         cplb: null, | ||||
|         flbm: null, | ||||
|         sptm: null, | ||||
|         ybbm: null, | ||||
|         tyshxydm: null, | ||||
|         qxlb: null, | ||||
|         cplx: null, | ||||
|         cpms: null | ||||
|       }, | ||||
|       configParms: {}, | ||||
|     }; | ||||
|   }, | ||||
| 
 | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.filterQuery = { | ||||
|         code: null, | ||||
|         spec: null, | ||||
|         registerNo: null, | ||||
|         manufactory: null, | ||||
|         name: "", | ||||
|         thirdSys: this.mainThirdSys, | ||||
|         page: 1, | ||||
|         limit: 20, | ||||
|         productType:2 | ||||
|       }; | ||||
|       this.getList(); | ||||
| 
 | ||||
|     }, | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     search() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     getList() { | ||||
|       if (this.filterQuery.thirdSys == null) { | ||||
|         this.$message.warning("请先选择第三方系统!") | ||||
|         return; | ||||
|       } | ||||
|       this.loading = true; | ||||
|       getInvbasdoc(this.filterQuery) | ||||
|         .then((response) => { | ||||
|           // this.loading = false; | ||||
|           if (response.code == 20000) { | ||||
|             this.list = response.data.list || []; | ||||
|             this.total = response.data.total || 0; | ||||
|           } else { | ||||
|             this.$message.error(response.message); | ||||
|           } | ||||
|           this.loading = false; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.list = []; | ||||
|           this.total = 0; | ||||
|         }); | ||||
|     }, | ||||
|     deleteDialog(row) { | ||||
|       this.$confirm("此操作将永久删除该产品信息, 是否继续?", "提示", { | ||||
|         confirmButtonText: "确定", | ||||
|         cancelButtonText: "取消", | ||||
|         type: "warning", | ||||
|       }) | ||||
|         .then(() => { | ||||
|           let dQuery = { | ||||
|             id: row.id, | ||||
|           }; | ||||
|           delThrProducts(dQuery) | ||||
|             .then((response) => { | ||||
|               this.loading = false; | ||||
|               if (response.code == 20000) { | ||||
|                 this.$message.success("删除成功"); | ||||
|                 this.getList(); | ||||
|               } else { | ||||
|                 this.$message.success(response.message); | ||||
|               } | ||||
|             }) | ||||
|             .catch(() => { | ||||
|               this.loading = false; | ||||
|             }); | ||||
| 
 | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     detailDialog(row) { | ||||
|       this.thisData = row; | ||||
|       this.thrProductsDetailVisible = true; | ||||
|     }, | ||||
|     getBasicThirdSys() { | ||||
|       let query = { | ||||
|         enabled: true, | ||||
|       }; | ||||
|       getBasicThirdSys(query) | ||||
|         .then((response) => { | ||||
|           this.thirdSys = response.data.list || []; | ||||
|           for (var i = 0; i < this.thirdSys.length; i++) { | ||||
|             if (this.thirdSys[i].mainSys) { | ||||
|               this.filterQuery.thirdSys = this.thirdSys[i].thirdId; | ||||
|               this.mainThirdSys = this.thirdSys[i].thirdId; | ||||
|             } | ||||
|           } | ||||
|           this.uploadData.thirdSys = this.filterQuery.thirdSys; | ||||
|           this.getThirdSysDetail(); | ||||
|           this.selectSysParam(); | ||||
|           this.getList(); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.list = []; | ||||
|         }); | ||||
|     }, | ||||
|     getThirdSysDetail() { | ||||
|       let query = { | ||||
|         thirdSysFk: this.filterQuery.thirdSys, | ||||
|         key: "piQueryUrl", | ||||
|       }; | ||||
|       filterDetailByKey(query) | ||||
|         .then((response) => { | ||||
|           this.thirdSysDetail = response.data; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.list = []; | ||||
|         }); | ||||
| 
 | ||||
|     }, | ||||
|     thirdSysChange() { | ||||
|       this.uploadData.thirdSys = this.filterQuery.thirdSys; | ||||
|       this.getThirdSysDetail(); | ||||
|     }, | ||||
|     saveNewProduct() { | ||||
|       this.addProductVisible = false; | ||||
|       saveNewProduct(this.newProductData).then((res) => { | ||||
|         if (res.code == 20000) { | ||||
|           this.$message.success("添加成功"); | ||||
|           //清空弹窗数据 | ||||
|           Object.keys(this.newProductData).forEach(key => this.newProductData[key] = null); | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|         this.$message.error(error.message); | ||||
|       }) | ||||
|     }, | ||||
|     closeAddDialog(val) { | ||||
|       this.thrProductsDetailVisible = false; | ||||
|       this.addProductVisible = false; | ||||
|       if (val) { | ||||
|         this.getList(); | ||||
|       } | ||||
|       Object.keys(this.newProductData).forEach(key => this.newProductData[key] = null); | ||||
|     }, | ||||
|     getSyncConfig() { | ||||
|       findConfig() | ||||
|         .then((response) => { | ||||
|           if (response.code == 20000) { | ||||
|             this.configParms = response.data; | ||||
|           } | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|   }, | ||||
|   components: { | ||||
|     thrProductsEdit, ThrProductsAdd | ||||
|   }, | ||||
|   mounted() { | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList(); | ||||
|     this.getBasicThirdSys(); | ||||
|     this.getSyncConfig(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| <style scoped> | ||||
| .el-form-item--mini.el-form-item { | ||||
|   margin-bottom: 9px; | ||||
| } | ||||
| </style> | ||||
| @ -0,0 +1,256 @@ | ||||
| <template> | ||||
|   <el-form :model="newProductData" label-width="120px"> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" type="flex"> | ||||
|         <el-form-item label="第三方系统" prop="thirdSysFk"> | ||||
|           <el-select | ||||
|             style="width: 90%" | ||||
|             v-model="newProductData.thirdSysFk" placeholder="请选择第三方系统" | ||||
|           > | ||||
|             <el-option | ||||
|               v-for="item in thirdSys" | ||||
|               :key="item.value" | ||||
|               :label="item.thirdName" | ||||
|               :value="item.thirdId" | ||||
|             > | ||||
|               <span style="float: left">{{ item.thirdName }}</span> | ||||
|               <span style="float: right; color: #8492a6; font-size: 13px">{{ | ||||
|                   item.thirdId | ||||
|                 }}</span> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" type="flex"> | ||||
|         <el-form-item label="药品编码:" prop="code"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入药品编码" v-model.trim="newProductData.code" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" type="flex"> | ||||
|         <el-form-item label="药品名称:" prop="name"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入药品名称" v-model.trim="newProductData.name" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="包装规格:" prop="spec"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入包装规格" v-model.trim="newProductData.spec" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="计量单位:" prop="measname"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入计量单位" v-model.trim="newProductData.measname" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="生产企业:" prop="manufactory"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入生产企业" | ||||
|                     v-model.trim="newProductData.manufactory" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="批准文号:" prop="registerNo"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入批准文号" | ||||
|                     v-model.trim="newProductData.registerNo" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="分类编码:" prop="flbm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入分类编码" v-model.trim="newProductData.flbm" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="药品条码:" prop="sptm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入药品条码" v-model.trim="newProductData.sptm" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="医保编码:" prop="ybbm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入医保编码" v-model.trim="newProductData.ybbm" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="统一社会信用号:" prop="tyshxydm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入统一社会信用号" | ||||
|                     v-model.trim="newProductData.tyshxydm" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <!--<el-row type="flex">--> | ||||
| 
 | ||||
|     <!--  <el-col :span="11" class="el-col">--> | ||||
|     <!--    <el-form-item label="器械类别:" prop="qxlb">--> | ||||
|     <!--      <el-input style="width: 90%" size="small" placeholder="请输入器械类别" v-model.trim="newProductData.qxlb"--> | ||||
|     <!--      ></el-input>--> | ||||
|     <!--    </el-form-item>--> | ||||
|     <!--  </el-col>--> | ||||
|     <!--</el-row>--> | ||||
| 
 | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="23" class="el-col"> | ||||
|         <el-form-item label="药品描述:" prop="cpms"> | ||||
|           <el-input style="width: 92%" type="textarea" size="mini" rows="3" placeholder="请输入产品描述" | ||||
|                     v-model.trim="newProductData.cpms" | ||||
|           ></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <div style="text-align: center; margin-bottom: 10px;"> | ||||
|       <el-button type="primary" @click="saveNewProduct" :loading="saveLoading">提交</el-button> | ||||
|       <el-button type="primary" @click="closeAddDialog">取消</el-button> | ||||
|     </div> | ||||
|   </el-form> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { saveNewProduct } from '@/api/thrsys/thrProducts' | ||||
| 
 | ||||
| import { getBasicThirdSys } from '@/api/thrsys/basicThirdSys' | ||||
| import { addProduct } from '@/api/thrsys/thrProductsAdd' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'ThrProductsAdd', | ||||
|   props: { | ||||
|     newType: { | ||||
|       type: Object, | ||||
|       required: true | ||||
|     }, | ||||
|     closeAddDialog: { | ||||
|       type: Function, | ||||
|       required: true | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       newProductData: { | ||||
|         name: '', | ||||
|         code: null, | ||||
|         registerNo: null, | ||||
|         manufactory: null, | ||||
|         spec: null, | ||||
|         measname: null, | ||||
|         ylqxzcrbarmc: null, | ||||
|         ylqxzcrbarywmc: null, | ||||
|         cplb: null, | ||||
|         flbm: null, | ||||
|         sptm: null, | ||||
|         ybbm: null, | ||||
|         tyshxydm: null, | ||||
|         qxlb: null, | ||||
|         cplx: null, | ||||
|         cpms: null, | ||||
|         thirdSysFk: null, | ||||
|         cpdls: null | ||||
|       }, | ||||
|       thirdSys: [], | ||||
|       saveLoading: false, | ||||
|     } | ||||
| 
 | ||||
|   }, | ||||
|   methods: { | ||||
|     saveNewProduct() { | ||||
|       this.addProductVisible = false | ||||
|       if (this.$isBlank(this.newProductData.thirdSysFk)) { | ||||
|         this.$message.warning('第三方系统不能为空!') | ||||
|         return | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.code)) { | ||||
|         this.$message.warning('产品编码为空!') | ||||
|         return | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.name)) { | ||||
|         this.$message.warning('产品名称不能为空!') | ||||
|         return | ||||
|       } | ||||
| 
 | ||||
|       if (this.$isBlank(this.newProductData.spec)) { | ||||
|         this.$message.warning('规格型号不能为空') | ||||
|         return | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.measname)) { | ||||
|         this.$message.warning('计量单位不能为空!') | ||||
|         return | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.manufactory)) { | ||||
|         this.$message.warning('生产企业不能为空!') | ||||
|         return | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.registerNo)) { | ||||
|         this.$message.warning('注册证号不能为空!') | ||||
|         return | ||||
|       } | ||||
|       this.saveLoading = true | ||||
|       this.newProductData.productType = 2 | ||||
|       if (this.newType == 1) { | ||||
|         saveNewProduct(this.newProductData).then((res) => { | ||||
|           this.saveLoading = false | ||||
|           if (res.code == 20000) { | ||||
|             this.$message.success('添加成功') | ||||
|             //清空弹窗数据 | ||||
|             this.$emit('closeAddDialog', true) | ||||
|             this.closeAddDialog(true) | ||||
|           } else { | ||||
|             this.$message.error(res.message) | ||||
|           } | ||||
|         }).catch((error) => { | ||||
|           this.saveLoading = false | ||||
|           // this.$message.error(error.message); | ||||
|         }) | ||||
|       } else if (this.newType == 2) { | ||||
|         addProduct(this.newProductData).then((res) => { | ||||
|           this.saveLoading = false | ||||
|           if (res.code == 20000) { | ||||
|             this.$message.success('添加成功') | ||||
|             //清空弹窗数据 | ||||
|             this.closeAddDialog(true) | ||||
|           } else { | ||||
|             this.$message.error(res.message) | ||||
|           } | ||||
|         }).catch((error) => { | ||||
|           this.saveLoading = false | ||||
|           // this.$message.error(error.message); | ||||
|         }) | ||||
|       } | ||||
| 
 | ||||
|     }, | ||||
|     getBasicThirdSys() { | ||||
|       let query = { | ||||
|         enabled: true | ||||
|       } | ||||
|       getBasicThirdSys(query) | ||||
|         .then((response) => { | ||||
|           this.thirdSys = response.data.list || [] | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false | ||||
|           this.list = [] | ||||
|         }) | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.getBasicThirdSys() | ||||
|   } | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| </style> | ||||
| @ -0,0 +1,113 @@ | ||||
| <template> | ||||
|   <el-form  label-width="120px"> | ||||
|             <div v-if="!isImport" style="margin-bottom: 20px"> | ||||
|                 <el-row type="flex"> | ||||
|                     <el-col :span="11" class="el-col"> | ||||
|                       <el-form-item label="第三方系统" prop="thirdSysFk"> | ||||
|                             <el-input style="width: 90%" size="small" :disabled="true" v-model="data.thirdSysName"></el-input> | ||||
|                       </el-form-item> | ||||
|                     </el-col> | ||||
|                 </el-row> | ||||
|               <el-row type="flex"> | ||||
|                 <el-col :span="11" type="flex"> | ||||
|                   <el-form-item label="药品编码:" prop="code"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.code"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="11" type="flex"> | ||||
|                   <el-form-item label="药品名称:" prop="name"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.name"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row  type="flex"> | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="生产企业:" prop="manufactory"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.manufactory"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="批准文号:" prop="registerNo"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.registerNo"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row  type="flex"> | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="包装规格:" prop="spec"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.spec"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
| 
 | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="计量单位:" prop="measname"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.measname"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <!--<el-row type="flex">--> | ||||
|               <!--  <el-col :span="11" class="el-col">--> | ||||
|               <!--    <el-form-item label="医疗器械注册人:" prop="ylqxzcrbarmc">--> | ||||
|               <!--      <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.ylqxzcrbarmc"></el-input>--> | ||||
|               <!--    </el-form-item>--> | ||||
|               <!--  </el-col>--> | ||||
|               <!--  <el-col :span="11" class="el-col">--> | ||||
|               <!--    <el-form-item label="注册人英文名称:" prop="ylqxzcrbarywmc">--> | ||||
|               <!--      <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.ylqxzcrbarywmc"></el-input>--> | ||||
|               <!--    </el-form-item>--> | ||||
|               <!--  </el-col>--> | ||||
|               <!--</el-row>--> | ||||
|               <el-row  type="flex"> | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="统一社会信用号:" prop="tyshxydm"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.tyshxydm"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|                 <!--<el-col :span="11" class="el-col">--> | ||||
|                 <!--  <el-form-item label="产品类别:" prop="cplb">--> | ||||
|                 <!--    <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.cplb"></el-input>--> | ||||
|                 <!--  </el-form-item>--> | ||||
|                 <!--</el-col>--> | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="商品条码:" prop="sptm"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.sptm"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row  type="flex"> | ||||
| 
 | ||||
|                 <el-col :span="11" class="el-col"> | ||||
|                   <el-form-item label="医保编码:" prop="ybbm"> | ||||
|                     <el-input style="width: 90%" size="small" :disabled="true" v-model.trim="data.ybbm"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|               <el-row type="flex"> | ||||
| 
 | ||||
|               </el-row> | ||||
|               <el-row  type="flex"> | ||||
|                 <el-col :span="23" class="el-col"> | ||||
|                   <el-form-item label="产品描述:" prop="cpms"> | ||||
|                     <el-input style="width: 92%" type="textarea" size="mini" rows="3" :disabled="true" v-model.trim="data.cpms"></el-input> | ||||
|                   </el-form-item> | ||||
|                 </el-col> | ||||
|               </el-row> | ||||
|             </div> | ||||
|   </el-form> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
|     export default { | ||||
|         name: "thrDrugDetail", | ||||
|         props: { | ||||
|             data: { | ||||
|                 type: Object, | ||||
|                 required: true, | ||||
|             }, | ||||
|         }, | ||||
|     } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| 
 | ||||
| </style> | ||||
| @ -0,0 +1,224 @@ | ||||
| <template> | ||||
|   <el-form :model="newProductData" label-width="120px"> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" type="flex"> | ||||
|         <el-form-item label="第三方系统" prop="thirdSysFk"> | ||||
|           <el-select | ||||
|             style="width: 90%" | ||||
|             disabled | ||||
|             v-model="newProductData.thirdSysFk" placeholder="请选择第三方系统" | ||||
|           > | ||||
|             <el-option | ||||
|               v-for="item in thirdSys" | ||||
|               :key="item.value" | ||||
|               :label="item.thirdName" | ||||
|               :value="item.thirdId"> | ||||
|               <span style="float: left">{{ item.thirdName }}</span> | ||||
|               <span style="float: right; color: #8492a6; font-size: 13px">{{ | ||||
|                   item.thirdId | ||||
|                 }}</span> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" type="flex"> | ||||
|         <el-form-item label="产品编码:" prop="code"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入药品编码" | ||||
|                     disabled | ||||
|                     v-model.trim="newProductData.code"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" type="flex"> | ||||
|         <el-form-item label="产品名称:" prop="name"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入药品名称" v-model.trim="newProductData.name"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="包装规格:" prop="spec"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入包装规格" v-model.trim="newProductData.spec"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="计量单位:" prop="measname"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入计量单位" | ||||
|                     v-model.trim="newProductData.measname"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="生产企业:" prop="manufactory"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入生产企业" | ||||
|                     v-model.trim="newProductData.manufactory"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="注册证号:" prop="registerNo"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入注册证号" | ||||
|                     v-model.trim="newProductData.registerNo"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <!--<el-row type="flex">--> | ||||
|     <!--  <el-col :span="11" class="el-col">--> | ||||
|     <!--    <el-form-item label="医疗器械注册人:" prop="ylqxzcrbarmc">--> | ||||
|     <!--      <el-input style="width: 90%" size="small" placeholder="请输入医疗器械注册人"--> | ||||
|     <!--                v-model.trim="newProductData.ylqxzcrbarmc"></el-input>--> | ||||
|     <!--    </el-form-item>--> | ||||
|     <!--  </el-col>--> | ||||
|     <!--  <el-col :span="11" class="el-col">--> | ||||
|     <!--    <el-form-item label="注册人英文名称:" prop="ylqxzcrbarywmc">--> | ||||
|     <!--      <el-input style="width: 90%" size="small" placeholder="请输入注册人英文名称"--> | ||||
|     <!--                v-model.trim="newProductData.ylqxzcrbarywmc"></el-input>--> | ||||
|     <!--    </el-form-item>--> | ||||
|     <!--  </el-col>--> | ||||
|     <!--</el-row>--> | ||||
|     <el-row type="flex"> | ||||
|       <!--<el-col :span="11" class="el-col">--> | ||||
|       <!--  <el-form-item label="产品类别:" prop="cplb">--> | ||||
|       <!--    <el-input style="width: 90%" size="small" placeholder="请输入产品类别" v-model.trim="newProductData.cplb"></el-input>--> | ||||
|       <!--  </el-form-item>--> | ||||
|       <!--</el-col>--> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="医保编码:" prop="ybbm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入医保编码" v-model.trim="newProductData.ybbm"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="分类编码:" prop="flbm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入分类编码" v-model.trim="newProductData.flbm"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
| 
 | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="统一社会信用号:" prop="tyshxydm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入统一社会信用号" | ||||
|                     v-model.trim="newProductData.tyshxydm"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-col :span="11" class="el-col"> | ||||
|         <el-form-item label="药品条码:" prop="sptm"> | ||||
|           <el-input style="width: 90%" size="small" placeholder="请输入药品条码" v-model.trim="newProductData.sptm"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
| 
 | ||||
|     </el-row> | ||||
|     <!--<el-row type="flex">--> | ||||
| 
 | ||||
|       <!--<el-col :span="11" class="el-col">--> | ||||
|       <!--  <el-form-item label="器械类别:" prop="qxlb">--> | ||||
|       <!--    <el-input style="width: 90%" size="small" placeholder="请输入器械类别" v-model.trim="newProductData.qxlb"></el-input>--> | ||||
|       <!--  </el-form-item>--> | ||||
|       <!--</el-col>--> | ||||
|     <!--</el-row>--> | ||||
| 
 | ||||
|     <el-row type="flex"> | ||||
|       <el-col :span="23" class="el-col"> | ||||
|         <el-form-item label="产品描述:" prop="cpms"> | ||||
|           <el-input style="width: 92%" type="textarea" size="mini" rows="3" placeholder="请输入产品描述" | ||||
|                     v-model.trim="newProductData.cpms"></el-input> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|     <div style='text-align: center; margin-bottom: 10px;'> | ||||
|       <el-button type="primary" @click="saveNewProduct">提交</el-button> | ||||
|       <el-button  @click="closeAddDialog">取消</el-button> | ||||
|     </div> | ||||
|   </el-form> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {updateProduct} from "@/api/thrsys/thrProducts"; | ||||
| 
 | ||||
| 
 | ||||
| import {getBasicThirdSys} from "@/api/thrsys/basicThirdSys"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "thrDrugEdit", | ||||
|   props: { | ||||
|     newProductData: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
|     closeAddDialog: { | ||||
|       type: Function, | ||||
|       required: true, | ||||
|     }, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       thirdSys: [], | ||||
|     } | ||||
| 
 | ||||
|   }, | ||||
|   methods: { | ||||
|     saveNewProduct() { | ||||
|       this.addProductVisible = false; | ||||
|       if (this.$isBlank(this.newProductData.thirdSysFk)) { | ||||
|         this.$message.warning("第三方系统不能为空!"); | ||||
|         return; | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.code)) { | ||||
|         this.$message.warning("药品编码为空!"); | ||||
|         return; | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.name)) { | ||||
|         this.$message.warning("药品名称不能为空!"); | ||||
|         return; | ||||
|       } | ||||
| 
 | ||||
|       if (this.$isBlank(this.newProductData.spec)) { | ||||
|         this.$message.warning("包装规格不能为空"); | ||||
|         return; | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.measname)) { | ||||
|         this.$message.warning("计量单位不能为空!"); | ||||
|         return; | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.manufactory)) { | ||||
|         this.$message.warning("生产企业不能为空!"); | ||||
|         return; | ||||
|       } | ||||
|       if (this.$isBlank(this.newProductData.registerNo)) { | ||||
|         this.$message.warning("批准文号不能为空!"); | ||||
|         return; | ||||
|       } | ||||
|       updateProduct(this.newProductData).then((res) => { | ||||
|         if (res.code == 20000) { | ||||
|           this.$message.success("修改成功"); | ||||
|           this.closeAddDialog(true); | ||||
|         } else { | ||||
|           this.$message.error(res.message); | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|       }) | ||||
| 
 | ||||
|     }, | ||||
|     getBasicThirdSys() { | ||||
|       let query = { | ||||
|         enabled: true, | ||||
|       }; | ||||
|       getBasicThirdSys(query) | ||||
|         .then((response) => { | ||||
|           this.thirdSys = response.data.list || []; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.list = []; | ||||
|         }); | ||||
|     }, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getBasicThirdSys(); | ||||
|   }, | ||||
| } | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| </style> | ||||
					Loading…
					
					
				
		Reference in New Issue