Merge remote-tracking branch 'origin/master'
						commit
						617e12a336
					
				| @ -0,0 +1,213 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-descriptions class="margin-top" title="产品信息" :column="3" :size="size" border> | ||||
|       <el-descriptions-item> | ||||
|         <template slot="label"> | ||||
|           物资名称 | ||||
|         </template> | ||||
|         {{ inputQuery.cpmctymc }} | ||||
|       </el-descriptions-item> | ||||
|       <el-descriptions-item> | ||||
|         <template slot="label"> | ||||
|           DI/物资编码 | ||||
|         </template> | ||||
|         {{ inputQuery.nameCode }} | ||||
|       </el-descriptions-item> | ||||
| 
 | ||||
|       <el-descriptions-item> | ||||
|         <template slot="label"> | ||||
|           批次号 | ||||
|         </template> | ||||
|         {{ inputQuery.batchNo }} | ||||
|       </el-descriptions-item> | ||||
|       <el-descriptions-item> | ||||
|         <template slot="label"> | ||||
|           规格型号 | ||||
|         </template> | ||||
|         {{ inputQuery.ggxh }} | ||||
|       </el-descriptions-item> | ||||
|       <el-descriptions-item> | ||||
|         <template slot="label"> | ||||
|           生产日期 | ||||
|         </template> | ||||
|         {{ inputQuery.productionDate }} | ||||
|       </el-descriptions-item> | ||||
|       <el-descriptions-item> | ||||
|         <template slot="label"> | ||||
|           失效日期 | ||||
|         </template> | ||||
|         {{ inputQuery.expireDate }} | ||||
|       </el-descriptions-item> | ||||
|     </el-descriptions> | ||||
| 
 | ||||
|     <el-form :inline="true" :model="invPreProductDetailQuery" style="margin-top: 10px;" size="mini"> | ||||
|       <el-form-item class="query-form-item" label="UDI码:"> | ||||
|         <el-input v-model="invPreProductDetailQuery.code" | ||||
|                   placeholder="请输入UDI码查询" | ||||
|                   clearable | ||||
|                   style="width: 100%" | ||||
|         ></el-input> | ||||
|       </el-form-item> | ||||
| 
 | ||||
|       <el-form-item> | ||||
|         <el-button-group> | ||||
|           <el-button type="primary" icon="search" @click="onSubmit" | ||||
|           >查询 | ||||
|           </el-button | ||||
|           > | ||||
|         </el-button-group> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|     <el-table v-loading="loading" :data="list" style="width: 100%"> | ||||
|       <el-table-column label="序号" type="index"></el-table-column> | ||||
|       <el-table-column | ||||
|         label="UDI码" | ||||
|         prop="code" | ||||
|         width="350" | ||||
|         show-overflow-tooltip | ||||
|       ></el-table-column> | ||||
|       <el-table-column | ||||
|         label="出入库单号" | ||||
|         prop="orderId" | ||||
|         width="180" | ||||
|         show-overflow-tooltip | ||||
|       ></el-table-column> | ||||
|       <el-table-column | ||||
|         label="单据类型" | ||||
|         prop="actionName" | ||||
|         width="150" | ||||
|       ></el-table-column> | ||||
|       <el-table-column | ||||
|         label="出入库类型" | ||||
|         prop="mainActionStr" | ||||
|         width="120" | ||||
|         show-overflow-tooltip | ||||
|       ></el-table-column> | ||||
|       <el-table-column | ||||
|         label="入库数量" | ||||
|         prop="inCount" | ||||
|         width="120" | ||||
|         show-overflow-tooltip | ||||
|       ></el-table-column> | ||||
|       <el-table-column | ||||
|         label="出库数量" | ||||
|         prop="outCount" | ||||
|         width="120" | ||||
|         show-overflow-tooltip | ||||
|       ></el-table-column> | ||||
|       <el-table-column | ||||
|         label="单据日期" | ||||
|         prop="orderTime" | ||||
|         width="150" | ||||
|         show-overflow-tooltip | ||||
|       ></el-table-column> | ||||
|     </el-table> | ||||
| 
 | ||||
|     <pagination | ||||
|       v-show="total>0" | ||||
|       :total="total" | ||||
|       :limit.sync="invPreProductDetailQuery.limit" | ||||
|       :page.sync="invPreProductDetailQuery.page" | ||||
|       @pagination="getList" | ||||
|     ></pagination> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {getInvPreInProductDetail} from "@/api/inventory/invPreInSearch"; | ||||
| import {isBlank} from "@/utils/strUtil"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "InvPreProductsDetail", | ||||
|   props: { | ||||
|     inputQuery: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
|   }, | ||||
|   data() { | ||||
|     return { | ||||
|       invPreProductDetailQuery: { | ||||
|         code: null, | ||||
|         relId: null, | ||||
|         supId: null, | ||||
|         batchNo: null, | ||||
|         deptCode: null, | ||||
|         invCode: null, | ||||
|         page: 1, | ||||
|         limit: 10 | ||||
|       }, | ||||
|       list: [], | ||||
|       total: 0, | ||||
|       loading: false, | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.invPreProductDetailQuery = { | ||||
|         code: null, | ||||
|         page: 1, | ||||
|         limit: 10 | ||||
|       }; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.invPreProductDetailQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     handleSizeChange(val) { | ||||
|       this.invPreProductDetailQuery.limit = val; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.invPreProductDetailQuery.page = val; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       this.invPreProductDetailQuery.relId = this.inputQuery.relId; | ||||
|       this.invPreProductDetailQuery.supId = this.inputQuery.supId; | ||||
|       this.invPreProductDetailQuery.batchNo = this.inputQuery.batchNo; | ||||
|       this.invPreProductDetailQuery.deptCode = this.inputQuery.deptCode; | ||||
|       this.invPreProductDetailQuery.invCode = this.inputQuery.invCode; | ||||
|       // this.invPreProductDetailQuery.nameCode = this.inputQuery.nameCode; | ||||
|       getInvPreInProductDetail(this.invPreProductDetailQuery).then((res) => { | ||||
|         this.loading = false; | ||||
|         if (res.code === 20000) { | ||||
|           this.list = res.data.list || []; | ||||
|           this.total = res.data.total || 0; | ||||
|         } else { | ||||
|           this.$message.error(res.message); | ||||
|           this.list = []; | ||||
|           this.total = 0; | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|         this.loading = false; | ||||
|         this.$message.error(error.message); | ||||
|         this.list = []; | ||||
|         this.total = 0; | ||||
|       }) | ||||
|     }, | ||||
|   }, | ||||
|   mounted() { | ||||
|     document.body.ondrop = function (event) { | ||||
|       event.preventDefault(); | ||||
|       event.stopPropagation(); | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style type="text/scss" lang="scss"> | ||||
| </style> | ||||
| 
 | ||||
| @ -0,0 +1,365 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card class="el-card"> | ||||
|       <el-form :model="filterQuery" class="query-form" size="mini" label-width="100px" v-show="showSearch"> | ||||
|         <el-row> | ||||
|           <el-col :span="18"> | ||||
|             <el-form-item class="query-form-item" label="扫码查询:"> | ||||
|               <el-input v-model="filterQuery.udiCode" | ||||
|                         style="width: 97%" | ||||
|                         placeholder="请扫描或输入UDI码" | ||||
|                         clearable="true" | ||||
|                         @keyup.enter.native="keyup_submit($event)"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|         <el-row> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="DI/物资编码:"> | ||||
|               <el-input v-model="filterQuery.nameCode" placeholder="DI/物资编码" | ||||
|                         style="width: 90%" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="物资名称:"> | ||||
|               <el-input v-model="filterQuery.cpmctymc" placeholder="物资名称" | ||||
|                         style="width: 90%" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="规格型号:"> | ||||
|               <el-input v-model="filterQuery.ggxh" placeholder="规格型号" | ||||
|                         style="width: 90%" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="批次号:"> | ||||
|               <el-input v-model="filterQuery.batchNo" placeholder="批次号" | ||||
|                         style="width: 90%" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|         <el-row> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="注册/备案号:"> | ||||
|               <el-input v-model="filterQuery.zczbhhzbapzbh" placeholder="注册/备案号" | ||||
|                         style="width: 90%" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="生产企业:"> | ||||
|               <el-input v-model="filterQuery.ylqxzcrbarmc" placeholder="生产企业" | ||||
|                         style="width: 90%" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|           <el-col :span="6"> | ||||
|             <el-form-item class="query-form-item" label="所属仓库:"> | ||||
|               <el-select v-model="filterQuery.invCode" placeholder="请选择所属仓库" clearable="true" | ||||
|                          style="width: 90%" | ||||
|               > | ||||
|                 <el-option | ||||
|                   v-for="item in invList" | ||||
|                   :key="item.name" | ||||
|                   :label="item.name" | ||||
|                   :value="item.code"> | ||||
|                   <span style="float: left">{{ item.name }}</span> | ||||
|                 </el-option> | ||||
|               </el-select> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
|         </el-row> | ||||
|       </el-form> | ||||
|       <div class="top-right-btn"> | ||||
|         <el-button-group> | ||||
|           <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-group> | ||||
|       </div> | ||||
|       <el-divider style="margin: 15px"></el-divider> | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row | ||||
|                 border> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="供应商" prop="supName" v-if="showSup" show-overflow-tooltip | ||||
|                          width="120"></el-table-column> | ||||
|         <el-table-column label="DI/物资编码" prop="nameCode" width="150"></el-table-column> | ||||
|         <el-table-column label="物资名称" prop="cpmctymc" width="180" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip width="180"></el-table-column> | ||||
|         <el-table-column label="批次号" prop="batchNo" width="120"></el-table-column> | ||||
|         <el-table-column label="入库数量" prop="inCount" width="120"></el-table-column> | ||||
|         <el-table-column label="出库数量" prop="outCount" width="120"></el-table-column> | ||||
|         <el-table-column label="结余数量" prop="reCount" width="120"></el-table-column> | ||||
|         <el-table-column label="部门" prop="deptName" v-if="showSup" | ||||
|                          show-overflow-tooltip width="120"></el-table-column> | ||||
|         <el-table-column label="仓库" prop="invName" v-if="showSup" | ||||
|                          show-overflow-tooltip width="120"></el-table-column> | ||||
|         <el-table-column label="计量单位" prop="measname" width="120"></el-table-column> | ||||
|         <el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column> | ||||
|         <el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column> | ||||
| 
 | ||||
| 
 | ||||
|         <el-table-column label="生产企业" prop="ylqxzcrbarmc" show-overflow-tooltip | ||||
|                          width="120"></el-table-column> | ||||
|         <el-table-column label="注册/备案号" prop="zczbhhzbapzbh" width="160" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="操作" width="80" fixed="right"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="detailDialog(scope.row)" | ||||
|             >详情 | ||||
|             </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 | ||||
|       title="库存详情" | ||||
|       :visible.sync="detailDialogVisible" | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       width="85%" | ||||
|       v-if="detailDialogVisible" | ||||
|     > | ||||
|       <invPreProductsDetail | ||||
|         :inputQuery="inputQuery" | ||||
|         v-on:closeDetailDialog="closeDetailDialog" | ||||
|       ></invPreProductsDetail> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {getInvListByUser} from "@/api/system/invWarehouse"; | ||||
| import {getInvPreInProduct, deleteInvPreInProduct} from "@/api/inventory/invPreInSearch"; | ||||
| import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain"; | ||||
| import {isBlank} from "@/utils/strUtil"; | ||||
| import invPreProductsDetail from "@/views/inventory/InvPreProductsDetail.vue"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "InvPreProducts", | ||||
|   data() { | ||||
|     return { | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         nameCode: null, | ||||
|         cpmctymc: null, | ||||
|         ggxh: null, | ||||
|         batchNo: null, | ||||
|         supId: null, | ||||
|         zczbhhzbapzbh: null, | ||||
|         ylqxzcrbarmc: null, | ||||
|         invCode: this.$store.getters.locInvCode, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }, | ||||
|       list: [], | ||||
|       total: 0, | ||||
|       invList: [], | ||||
|       loading: false, | ||||
|       deleteData: { | ||||
|         id: "", | ||||
|         status: 10, | ||||
|       }, | ||||
|       corpLoading: false, | ||||
|       dialogVisible: false, | ||||
|       fromOptions: [], | ||||
|       showSup: false, | ||||
|       detailDialogVisible: false, | ||||
|       inputQuery: { | ||||
|         relId: null, | ||||
|         cpmctymc: null, | ||||
|         nameCode: null, | ||||
|         batchNo: null, | ||||
|         ggxh: null, | ||||
|         productionDate: null, | ||||
|         expireDate: null, | ||||
|         supId: null, | ||||
|         deptCode: null, | ||||
|         invCode: null | ||||
|       } | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.filterQuery = { | ||||
|         nameCode: null, | ||||
|         cpmctymc: null, | ||||
|         ggxh: null, | ||||
|         batchNo: null, | ||||
|         supId: null, | ||||
|         zczbhhzbapzbh: null, | ||||
|         ylqxzcrbarmc: null, | ||||
|         invCode: this.$store.getters.locInvCode, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     handleSizeChange(val) { | ||||
|       this.filterQuery.limit = val; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.filterQuery.page = val; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     keyup_submit(event) { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|       event.target.select(); | ||||
|     }, | ||||
| 
 | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       this.filterQuery.supId = this.$store.getters.customerId; | ||||
|       getInvPreInProduct(this.filterQuery).then((res) => { | ||||
|         this.loading = false; | ||||
|         if (res.code === 20000) { | ||||
|           this.list = res.data.list || []; | ||||
|           this.total = res.data.total || 0; | ||||
|         } else { | ||||
|           this.$message.error(res.message); | ||||
|           this.list = []; | ||||
|           this.total = 0; | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|         this.loading = false; | ||||
|         this.$message.error(error.message); | ||||
|         this.list = []; | ||||
|         this.total = 0; | ||||
|       }) | ||||
|     }, | ||||
|     getInvList() { | ||||
|       let query = { | ||||
|         advanceType: true, | ||||
|       }; | ||||
|       getInvListByUser(query) | ||||
|         .then((response) => { | ||||
|           this.invList = response.data || []; | ||||
|           this.getList(); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     findMethod(key) { | ||||
|       this.corpLoading = true; | ||||
|       this.fromOptions = []; | ||||
|       let params = { | ||||
|         key: key, | ||||
|         corpType: 2, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }; | ||||
|       getBasicUnitMaintains(params).then((res) => { | ||||
|         this.corpLoading = false; | ||||
|         this.fromOptions = res.data.list || []; | ||||
|       }).catch(() => { | ||||
|         this.corpLoading = false; | ||||
|       }) | ||||
|     }, | ||||
|     corpChange(value) { | ||||
|       if (!isBlank(value)) { | ||||
|         this.findMethod(value); | ||||
|       } | ||||
|     }, | ||||
|     detailDialog(row) { | ||||
|       this.detailDialogVisible = true; | ||||
|       this.inputQuery = { | ||||
|         relId: row.relIdFk, | ||||
|         cpmctymc: row.cpmctymc, | ||||
|         nameCode: row.nameCode, | ||||
|         batchNo: row.batchNo, | ||||
|         ggxh: row.ggxh, | ||||
|         productionDate: row.productionDate, | ||||
|         expireDate: row.expireDate, | ||||
|         supId: row.supId, | ||||
|         deptCode: row.deptCode, | ||||
|         invCode: row.invCode | ||||
|       } | ||||
|     }, | ||||
|     closeDetailDialog() { | ||||
|       this.detailDialogVisible = false; | ||||
|     }, | ||||
|     deleteDialog(id) { | ||||
|       this.$confirm("此操作将永久删除此库存信息,是否继续?", "提示", { | ||||
|         confirmButtonText: "确定", | ||||
|         cancelButtonText: "取消", | ||||
|         type: "warning" | ||||
|       }).then(() => { | ||||
|         this.deleteInvPreProduct(id); | ||||
|       }).catch(() => { | ||||
|       }); | ||||
|     }, | ||||
|     deleteInvPreProduct(id) { | ||||
|       let params = {id: id}; | ||||
|       deleteInvPreInProduct(params).then((res) => { | ||||
|         if (res.code === 20000) { | ||||
|           this.$message.success("删除成功!"); | ||||
|           this.getList(); | ||||
|         } else { | ||||
|           this.$message.error(res.message); | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|         this.$message.error(error.message); | ||||
|       }); | ||||
|     } | ||||
|   }, | ||||
|   components: { | ||||
|     invPreProductsDetail | ||||
|   }, | ||||
|   mounted() { | ||||
|     document.body.ondrop = function (event) { | ||||
|       event.preventDefault(); | ||||
|       event.stopPropagation(); | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     let supId = this.$store.getters.customerId; | ||||
|     if (supId == "110") { | ||||
|       this.showSup = true; | ||||
|     } | ||||
|     this.findMethod(); | ||||
|     this.getInvList(); | ||||
|     this.getList(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style type="text/scss" lang="scss"> | ||||
| </style> | ||||
| 
 | ||||
					Loading…
					
					
				
		Reference in New Issue