feat: 提交
							parent
							
								
									fff23823d7
								
							
						
					
					
						commit
						1bacd26f51
					
				| @ -0,0 +1,361 @@ | ||||
| <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="DI/物资编码:"> | ||||
|               <el-input v-model="filterQuery.nameCode" style="width: 90%" placeholder="请输入DI/物资编码"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="物资名称:"> | ||||
|               <el-input v-model="filterQuery.cpmctymc" style="width: 90%" placeholder="请输入物资名称"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="规格型号:"> | ||||
|               <el-input v-model="filterQuery.ggxh" style="width: 90%" placeholder="请输入规格型号"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="批次号:"> | ||||
|               <el-input v-model="filterQuery.batchNo" style="width: 90%" placeholder="请输入批次号"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="生产企业:" class="query-form-item"> | ||||
|               <el-input v-model="filterQuery.manufactory" style="width: 100%" placeholder="请输入生产企业/注册备案人" | ||||
|                         clearable="true" | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item label="物资分类:" class="query-form-item"> | ||||
|               <el-input v-model="filterQuery.category" style="width: 100%" placeholder="请输入物资分类名称" | ||||
|                         clearable="true" | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
| 
 | ||||
|           <el-col :span="6" v-if="productRemarkSet.remarkEnable1"> | ||||
|             <el-form-item :label="productRemarkSet.remarkTitle1+':'" class="query-form-item"> | ||||
|               <el-input v-model="filterQuery.basicPrductRemak1" style="width: 100%" | ||||
|                         :placeholder="productRemarkSet.remarkTitle1" | ||||
|                         clearable="true" | ||||
|               ></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6" v-if="productRemarkSet.remarkEnable2"> | ||||
|             <el-form-item :label="productRemarkSet.remarkTitle2 +':'" class="query-form-item"> | ||||
|               <el-input v-model="filterQuery.basicPrductRemak2" style="width: 100%" | ||||
|                         :placeholder="productRemarkSet.remarkTitle2" | ||||
|                         clearable="true" | ||||
|               ></el-input> | ||||
|             </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="onSubmit">查询</el-button> | ||||
|           <el-button type="primary" icon="el-icon-plus" @click="confirmSelect">确定</el-button> | ||||
|         </el-button-group> | ||||
|       </div> | ||||
| 
 | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
| 
 | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row="false" border | ||||
|                 @current-change="handleChange" @selection-change="handleSelectionChange" | ||||
|                 ref="multipleTable" | ||||
|       > | ||||
|         <el-table-column label width="45" v-if="type==3 "> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column type="selection" width="55" v-if="type!=3"></el-table-column> | ||||
|         <el-table-column label="序号" type="index" width="55"></el-table-column> | ||||
|         <el-table-column label="DI/物资编码" prop="nameCode" width="120" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="物资名称" prop="cpmctymc" width="160" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="规格型号" prop="ggxh" width="160"></el-table-column> | ||||
|         <el-table-column label="计量单位" prop="measname" width="90"></el-table-column> | ||||
|         <el-table-column label="批次号" prop="batchNo" width="90"></el-table-column> | ||||
|         <el-table-column label="价格" prop="price"></el-table-column> | ||||
|         <el-table-column label="生产日期" prop="productionDate" width="90"></el-table-column> | ||||
|         <el-table-column label="失效日期" prop="expireDate" width="90"></el-table-column> | ||||
|         <el-table-column label="入库数量" prop="inCount" width="90"></el-table-column> | ||||
|         <el-table-column label="出库数量" prop="outCount" width="90"></el-table-column> | ||||
|         <el-table-column label="结余数量" prop="reCount" width="90"></el-table-column> | ||||
|         <el-table-column label="生产企业" prop="ylqxzcrbarmc" width="180"></el-table-column> | ||||
|         <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="180"></el-table-column> | ||||
|         <el-table-column label="供应商" prop="supName" width="180"></el-table-column> | ||||
|       </el-table> | ||||
|     </el-card> | ||||
| 
 | ||||
|     <pagination | ||||
|       v-show="total>0" | ||||
|       :total="total" | ||||
|       :limit.sync="filterQuery.limit" | ||||
|       :page.sync="filterQuery.page" | ||||
|       @pagination="handleCurrentChange" | ||||
|     ></pagination> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { | ||||
|   getInvProduct, getInvProductStock, getProduct | ||||
| } from '@/api/inventory/invPorduct' | ||||
| import { addDetail } from '@/api/inout/receiveOrder' | ||||
| import { addBizProduct } from '@/api/inout/orderDetailCode' | ||||
| import { getInvPreInProduct, getInvPreInProductStock } from '@/api/inventory/invPreInSearch' | ||||
| import { getInvPreProduct, getInvPreProductStock } from '@/api/inventory/invPreProduct' | ||||
| import { finProductSet } from '@/api/param/systemParamConfig' | ||||
| import { detailByDeptCodePage } from '@/api/dev/deviceInfoApi' | ||||
| 
 | ||||
| export default { | ||||
|   name: 'DialogDeviceInvProduct', | ||||
|   props: { | ||||
|     deptCode: { | ||||
|       type: Object, | ||||
|       required: true | ||||
|     } | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         deptCode: this.deptCode, | ||||
|       }, | ||||
|       detailQuery: { | ||||
|         code: null, | ||||
|         productIdFk: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }, | ||||
|       list: [], | ||||
|       lists: [], | ||||
|       total: 0, | ||||
|       loading: true, | ||||
|       index: null, | ||||
|       dialogTableVisible: false, | ||||
|       formLoading: false, | ||||
|       dialogVisible: false, | ||||
|       deleteLoading: false, | ||||
|       busTypes: [], | ||||
|       idQuery: null, | ||||
|       showSup: false, | ||||
|       fromOptions: [], | ||||
|       productRemarkSet: {}, | ||||
|       tQuery: {}, | ||||
|       currentRow: null, | ||||
|       radioCheck: null | ||||
| 
 | ||||
|     } | ||||
|   }, | ||||
|   components: {}, | ||||
|   methods: { | ||||
|     deviceAdd() { | ||||
|       this.chooseFunc(this.lists) | ||||
|     }, | ||||
|     confirmSelect() { | ||||
|       if (this.lists == null) { | ||||
|         this.$message.error('未选择产品') | ||||
|         return | ||||
|       } | ||||
|       if (this.listType == null) { | ||||
|         this.puApplayAdd() | ||||
|       } else if (this.listType == 1) { | ||||
|         this.invRationAdd() | ||||
|       } else if (this.listType == 2) { | ||||
|         this.deviceAdd() | ||||
|       } | ||||
|     }, | ||||
|     handleSelectionChange(val) { | ||||
| 
 | ||||
|       if (this.listType != 2) { | ||||
|         this.lists = [] | ||||
|         for (var i = 0; i < val.length; i++) { | ||||
|           this.tQuery = {} | ||||
|           this.tQuery.productId = val[i].id | ||||
|           this.tQuery.supId = val[i].customerId | ||||
|           this.tQuery.productName = val[i].cpmctymc | ||||
|           this.tQuery.count = 1 | ||||
|           this.tQuery.orderIdFk = this.pId | ||||
|           this.tQuery.zczbhhzbapzbh = val[i].zczbhhzbapzbh | ||||
|           this.tQuery.manufactory = val[i].ylqxzcrbarmc | ||||
|           this.tQuery.serialNo = val[i].serialNo | ||||
|           this.tQuery.udi = val[i].udi | ||||
|           this.lists.push(this.tQuery) | ||||
|         } | ||||
|       } else { | ||||
|         for (var i = 0; i < val.length; i++) { | ||||
|           this.tQuery = val[i] | ||||
|           this.tQuery.manufactory = val[i].ylqxzcrbarmc | ||||
|           this.lists.push(this.tQuery) | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       console.log(this.lists) | ||||
|     }, | ||||
|     onReset() { | ||||
| 
 | ||||
|       this.$router.push({ | ||||
|         path: '' | ||||
|       }) | ||||
|       this.filterQuery = { | ||||
|         cpmctymc: null, | ||||
|         invCode: null, | ||||
|         nameCode: null, | ||||
|         relIdFk: null, | ||||
|         batchNo: null, | ||||
|         customerId: null, | ||||
|         unitFk: null, | ||||
|         supId: null, | ||||
|         attributeType: 1, | ||||
|         page: 1, | ||||
|         limit: 10 | ||||
|       } | ||||
|       this.getList() | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.loading = true | ||||
|       this.filterQuery.page = 1 | ||||
|       this.getList() | ||||
|     }, | ||||
|     handleSizeChange(val) { | ||||
|       this.filterQuery.limit = val | ||||
|       this.getList() | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.filterQuery.page = val.page | ||||
|       this.getList() | ||||
|     }, | ||||
|     closeDetailDialog(val) { | ||||
|       this.codeDetailVisible = false | ||||
|     }, | ||||
| 
 | ||||
|     getList() { | ||||
|       this.loading = true | ||||
|       detailByDeptCodePage(this.filterQuery) | ||||
|           .then((response) => { | ||||
|             this.showSup = response.data.showSup | ||||
|             this.loading = false | ||||
|             this.list = response.data.list || [] | ||||
|             this.total = response.data.total || 0 | ||||
|           }) | ||||
|           .catch(() => { | ||||
|             this.loading = false | ||||
|             this.list = [] | ||||
|             this.total = 0 | ||||
|           }) | ||||
|     }, | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch | ||||
|     }, | ||||
|     combine() { | ||||
| 
 | ||||
|       if (this.type == 3) { | ||||
|         let nameCode = this.currentRow.nameCode ?? '' | ||||
|         let productionDate = this.currentRow.productionDate ?? '' | ||||
|         let expireDate = this.currentRow.expireDate ?? '' | ||||
|         let batchNo = this.currentRow.batchNo ?? '' | ||||
|         let udiCode = '#' + nameCode | ||||
|           + '#' + productionDate | ||||
|           + '#' + expireDate + | ||||
|           '#' + batchNo + '#' + '#' + '#' | ||||
|         this.closeDialog(udiCode) | ||||
|       } else { | ||||
|         let selection = this.$refs.multipleTable.selection | ||||
|         if (selection.length < 1) { | ||||
|           this.$message.error('未选择产品') | ||||
|           return | ||||
|         } | ||||
|         var idster = [] | ||||
|         if (this.codeArray != null || this.codeArray != undefined) { | ||||
|           if (this.codeArray.length > 0) { | ||||
|             for (var i = 0; i < this.codeArray.length; i++) { | ||||
|               idster.push(this.codeArray[i].relIdFk) | ||||
|             } | ||||
|           } | ||||
|           if (idster.length > 0) { | ||||
|             for (var i = 0; i < idster.length; i++) { | ||||
|               for (var j = 0; j < selection.length; j++) { | ||||
|                 if (idster[i] == selection[j].relIdFk) { | ||||
|                   this.$message.error('该产品已录入!') | ||||
|                   return | ||||
|                 } | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|         } | ||||
| 
 | ||||
|         var ids = [] | ||||
|         selection.forEach((obj, index) => { | ||||
|           let data = { | ||||
|             relId: obj.relIdFk, | ||||
|             batchNo: obj.batchNo, | ||||
|             productDate: obj.productionDate, | ||||
|             expireDate: obj.expireDate, | ||||
|             supId: obj.supId, | ||||
|             price: obj.price, | ||||
|             nameCode: obj.nameCode | ||||
|           } | ||||
|           ids.push(data) | ||||
|         }) | ||||
| 
 | ||||
|         this.chooseFunc(this.lists) | ||||
| 
 | ||||
|       } | ||||
|     }, | ||||
| 
 | ||||
|     findBasicProductSet() { | ||||
|       finProductSet().then((response) => { | ||||
|         if (response.code == 20000) { | ||||
|           this.productRemarkSet = response.data | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
| 
 | ||||
|     handleChange(val) { | ||||
|       this.currentRow = val | ||||
|       this.radioCheck = val.id | ||||
|     } | ||||
|   }, | ||||
|   filters: { | ||||
|     statusFilterType(status) { | ||||
|       const statusMap = { | ||||
|         false: 'success', | ||||
|         true: 'danger' | ||||
|       } | ||||
|       return statusMap[status] | ||||
|     } | ||||
| 
 | ||||
|   } | ||||
|   , | ||||
|   mounted() { | ||||
|     document.body.ondrop = function(event) { | ||||
|       event.preventDefault() | ||||
|       event.stopPropagation() | ||||
|     } | ||||
|   } | ||||
|   , | ||||
|   created() { | ||||
|     this.findBasicProductSet() | ||||
|     // 加载表格数据 | ||||
|     this.getList() | ||||
|   } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| </script> | ||||
| 
 | ||||
| <style type="text/scss" lang="scss"> | ||||
| </style> | ||||
					Loading…
					
					
				
		Reference in New Issue