1.提交盘点功能相关页面,修改盘点接口地址
							parent
							
								
									cf4ad83448
								
							
						
					
					
						commit
						22a296c6b9
					
				| @ -0,0 +1,140 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card class="el-card"> | ||||
|       <el-form :model="query" class="query-form" size="mini" :inline="true"> | ||||
|         <el-form-item class="query-form-item" label="条码:"> | ||||
|           <el-input v-model="query.code" placeholder="请扫描或输入条码" clearable="true"></el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button-group style="margin-left: 10px;display:flex;"> | ||||
|             <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> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|       <el-table v-loading="loading" :data="codeArray" style="width: 100%" highlight-current-row | ||||
|                 border> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="条码" prop="code" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="扫码数量" prop="count"></el-table-column> | ||||
|         <el-table-column label="操作"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="deleteCountCode(scope.row.id)" | ||||
|             >减一 | ||||
|             </el-button | ||||
|             > | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|       <pagination | ||||
|         v-show="total>0" | ||||
|         :total="total" | ||||
|         :limit.sync="query.limit" | ||||
|         :page.sync="query.page" | ||||
|         @pagination="getCodeList" | ||||
|       ></pagination> | ||||
| 
 | ||||
|     </el-card> | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {getCountCodesList, deleteCode} from "@/api/inventory/invCountCodes"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "InvCountCodes", | ||||
|   props: { | ||||
|     countQuery: { | ||||
|       type: Object, | ||||
|       required: true, | ||||
|     }, | ||||
|     getCountOrderDetail: { | ||||
|       type: Function, | ||||
|       required: true | ||||
|     } | ||||
|   }, | ||||
| 
 | ||||
|   data() { | ||||
|     return { | ||||
|       query: { | ||||
|         code: null, | ||||
|         productId: null, | ||||
|         orderIdFk: null, | ||||
|         batchNo: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }, | ||||
|       loading: true, | ||||
|       codeArray: [], | ||||
|       total: 0, | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.query = { | ||||
|         code: null, | ||||
|         productId: null, | ||||
|         orderIdFk: null, | ||||
|         batchNo: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }; | ||||
|       this.getCodeList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.query.page = 1; | ||||
|       this.getCodeList(); | ||||
|     }, | ||||
|     getCodeList() { | ||||
|       this.loading = true; | ||||
|       this.query.relId = this.codeQuery.relId; | ||||
|       this.query.orderIdFk = this.codeQuery.orderIdFk; | ||||
|       this.query.batchNo = this.codeQuery.batchNo; | ||||
|       getCountCodesList(this.query).then((res) => { | ||||
|         this.loading = false; | ||||
|         if (res.code === 20000) { | ||||
|           this.codeArray = res.data.list || []; | ||||
|           this.total = res.data.total || 0; | ||||
|         } else { | ||||
|           this.codeArray = []; | ||||
|           this.total = 0; | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|         this.loading = false; | ||||
|         this.codeArray = []; | ||||
|         this.total = 0; | ||||
|       }) | ||||
|     }, | ||||
|     deleteCountCode(row) { | ||||
|       this.$confirm('是否删除此条码?', '提示', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(() => { | ||||
|         let params = { | ||||
|           orderIdFk: row.orderIdFk, | ||||
|           relId: row.relId, | ||||
|           code: row.code | ||||
|         }; | ||||
|         deleteCode(params).then((res) => { | ||||
|           if (res.code === 20000) { | ||||
|             this.$message.success("删除成功!"); | ||||
|             this.getCodeList(); | ||||
|             this.getCountOrderDetail(); | ||||
|           } else { | ||||
|             this.$message.error(res.data.message); | ||||
|           } | ||||
|         }) | ||||
|       }).catch(() => { | ||||
|       }); | ||||
|     }, | ||||
|   }, | ||||
|   created() { | ||||
|     this.getCodeList(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| @ -0,0 +1,401 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card class="el-card"> | ||||
|       <el-form :model="filterQuery" class="query-form" size="mini" :inline="true"> | ||||
|         <el-form-item class="query-form-item" label="盘点单号:"> | ||||
|           <el-input v-model="filterQuery.orderId" placeholder="请输入盘点单号" | ||||
|                     clearable="true"></el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item class="query-form-item" label="领用仓库:"> | ||||
|           <el-select v-model="filterQuery.invCode" placeholder="请选择仓库" clearable="true" | ||||
|                      @change="invChange" | ||||
|           > | ||||
|             <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-form-item class="query-form-item" label="领用货位:"> | ||||
|           <el-select v-model="filterQuery.invSpaceCode" placeholder="请选择货位" clearable="true" | ||||
|           > | ||||
|             <el-option | ||||
|               v-for="item in spaceList" | ||||
|               :key="item.name" | ||||
|               :label="item.name" | ||||
|               :value="item.code"> | ||||
|               <span style="float: left">{{ item.name }}</span> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button-group style="margin-left: 10px;display:flex;"> | ||||
|             <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> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row | ||||
|                 @current-change="handleChange" | ||||
|                 border> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="盘点单号" prop="orderId" width="300"></el-table-column> | ||||
|         <el-table-column label="仓库" prop="invName" width="300"></el-table-column> | ||||
|         <el-table-column label="货位" prop="invSpaceName" width="300"></el-table-column> | ||||
|         <el-table-column label="盘点类型" prop="countType" width="150"> | ||||
|           <template slot-scope="scope"> | ||||
|             <span>{{ countTypeMap[scope.row.countType] }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="盘点人" prop="createUserName" width="200"></el-table-column> | ||||
|         <el-table-column label="盘点时间" prop="createTime"></el-table-column> | ||||
|         <el-table-column label="状态" prop="status" width="120"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-tag>{{ statusMap[scope.row.status] }}</el-tag> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="操作"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="auditCountOrder(scope.row)" | ||||
|             >审核 | ||||
|             </el-button | ||||
|             > | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="deleteDialog(scope.row.id)" | ||||
|             >删除 | ||||
|             </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-card> | ||||
|       <el-table v-loading="detailLoading" :data="detailList" style="width: 100%" highlight-current-row | ||||
|                 border> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="产品名称" prop="productName" width="220"></el-table-column> | ||||
|         <el-table-column label="批次号" prop="batchNo" width="180" | ||||
|                          show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="生产日期" prop="produceDate" width="120"></el-table-column> | ||||
|         <el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column> | ||||
|         <el-table-column label="盘点数量" prop="countNum" width="150"></el-table-column> | ||||
|         <el-table-column label="账面数量" prop="invNum" width="150"></el-table-column> | ||||
|         <el-table-column label="盘盈数量" prop="profitNum" width="150"></el-table-column> | ||||
|         <el-table-column label="盘亏数量" prop="lossNum" width="150"></el-table-column> | ||||
|         <el-table-column label="盈亏状态" prop="status" width="100"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-tag> | ||||
|               {{ countStatusMap[scope.row.status] }} | ||||
|             </el-tag> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="操作"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="showCode(scope.row)" | ||||
|             >详情 | ||||
|             </el-button | ||||
|             > | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|       <pagination | ||||
|         v-show="detailTotal>0" | ||||
|         :total="detailTotal" | ||||
|         :limit.sync="detailQuery.limit" | ||||
|         :page.sync="detailQuery.page" | ||||
|         @pagination="getList" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
| 
 | ||||
| 
 | ||||
|     <el-dialog | ||||
|       title="码详情" | ||||
|       :visible.sync="codesVisible" | ||||
|       width="60%" | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       v-if="codesVisible" | ||||
|       append-to-body | ||||
|     > | ||||
|       <invCountCodes | ||||
|         :codeQuery="codeQuery" | ||||
|       ></invCountCodes> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {getInvListByUser} from "@/api/system/invWarehouse"; | ||||
| import {getInvSpaceList} from "@/api/inventory/invSpace"; | ||||
| import { | ||||
|   getCountOrderList, | ||||
|   deleteCountOrder, | ||||
|   updateCountOrderStatus, getCountOrderDetailList | ||||
| } from "@/api/inventory/invCountOrder"; | ||||
| import invCountCodes from "@/views/inventory/InvCountCodes.vue"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "InvCountOrderAudit", | ||||
|   data() { | ||||
|     return { | ||||
|       filterQuery: { | ||||
|         orderId: null, | ||||
|         invCode: this.$store.getters.locInvCode, | ||||
|         invSpaceCode: null, | ||||
|         status: 1, | ||||
|         page: 1, | ||||
|         limit: 20, | ||||
|       }, | ||||
|       list: [], | ||||
|       total: 0, | ||||
|       invList: [], | ||||
|       spaceList: [], | ||||
|       loading: false, | ||||
|       formVisible: false, | ||||
|       statusMap: { | ||||
|         0: "草稿", | ||||
|         1: "未审核", | ||||
|         2: "已审核" | ||||
|       }, | ||||
|       countOrder: {}, | ||||
|       countType: null, | ||||
|       countTypeMap: { | ||||
|         0: "整库盘点", | ||||
|         1: "货位盘点", | ||||
|         2: "部分盘点" | ||||
|       }, | ||||
|       countStatusMap: { | ||||
|         0: '亏损', | ||||
|         1: '盈利', | ||||
|         2: "平衡" | ||||
|       }, | ||||
|       detailQuery: { | ||||
|         orderIdFk: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }, | ||||
|       detailList: [], | ||||
|       detailTotal: 0, | ||||
|       detailLoading: false, | ||||
|       codeQuery: { | ||||
|         orderIdFk: null, | ||||
|         relId: null, | ||||
|         batchNo: null, | ||||
|         edit: false | ||||
|       }, | ||||
|       codesVisible: false | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.filterQuery = { | ||||
|         orderId: null, | ||||
|         invCode: this.$store.getters.locInvCode, | ||||
|         invSpaceCode: null, | ||||
|         status: 1, | ||||
|         page: 1, | ||||
|         limit: 20, | ||||
|       }; | ||||
|       this.spaceList = []; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       getCountOrderList(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; | ||||
|       }) | ||||
|     }, | ||||
|     invChange() { | ||||
|       this.spaceList = []; | ||||
|       this.filterQuery.fromInvSpaceCode = null; | ||||
|       this.getSpaceList(); | ||||
|     }, | ||||
|     getInvList() { | ||||
|       getInvListByUser() | ||||
|         .then((response) => { | ||||
|           this.invList = response.data || []; | ||||
|           this.getList(); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     getSpaceList() { | ||||
|       let params = {invWarehouseCode: this.filterQuery.invCode}; | ||||
|       getInvSpaceList(params).then((res) => { | ||||
|         this.spaceList = res.data.list || []; | ||||
|         this.getList(); | ||||
|       }) | ||||
|     }, | ||||
|     addCountOrder(type) { | ||||
|       this.formVisible = true; | ||||
|       this.formName = 'add_' + type; | ||||
|       this.countOrder = {}; | ||||
|       this.countType = type; | ||||
|     }, | ||||
|     deleteDialog(rowId) { | ||||
|       this.$confirm('此操作将永久删除该盘点单, 是否继续?', '提示', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(() => { | ||||
|         let params = {id: rowId}; | ||||
|         this.loading = true; | ||||
|         deleteCountOrder(params).then((res) => { | ||||
|           this.loading = false; | ||||
|           if (res.code === 20000) { | ||||
|             this.$message.success("删除成功!"); | ||||
|             this.getList(); | ||||
|           } else { | ||||
|             this.$message.error(res.message); | ||||
|           } | ||||
|         }).catch(() => { | ||||
|           this.loading = false; | ||||
|         }); | ||||
|       }); | ||||
|     }, | ||||
|     auditCountOrder(row) { | ||||
|       let params = { | ||||
|         id: row.id, | ||||
|         status: null | ||||
|       }; | ||||
|       this.$confirm('请选择审核意见', '提示', { | ||||
|         confirmButtonText: '通过', | ||||
|         cancelButtonText: '驳回', | ||||
|         type: 'warning', | ||||
|         center: true, | ||||
|         closeOnPressEscape: false,//按下 ESC 键关闭弹窗 | ||||
|         closeOnClickModal: false,//点击遮罩关闭弹窗 | ||||
|         distinguishCancelAndClose: true,//区分取消与关闭 | ||||
|       }).then(() => { | ||||
|         params.status = 2; //审核通过 | ||||
|         updateCountOrderStatus(params).then((res) => { | ||||
|           if (res.code === 20000) { | ||||
|             this.$message.success("审核通过"); | ||||
|             this.getList(); | ||||
|             this.onRestDetail(); | ||||
|           } else { | ||||
|             this.$message.error(res.message); | ||||
|           } | ||||
|         }).catch(() => { | ||||
|         }); | ||||
|       }).catch((action) => { | ||||
|         if (action === 'cancel') { | ||||
|           //驳回 | ||||
|           params.status = 0; //驳回到上一个状态 | ||||
|           updateCountOrderStatus(params).then((res) => { | ||||
|             if (res.code === 20000) { | ||||
|               this.$message.success("审核通过"); | ||||
|               this.$message.success("已驳回"); | ||||
|               this.getList(); | ||||
|               this.onRestDetail(); | ||||
|             } else { | ||||
|               this.$message.error(res.message); | ||||
|             } | ||||
|           }).catch(() => { | ||||
|           }); | ||||
|         } else { | ||||
|           //关闭弹窗 | ||||
|           return; | ||||
|         } | ||||
|       }); | ||||
|     }, | ||||
|     onRestDetail() { | ||||
|       this.detailQuery = { | ||||
|         orderIdFk: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }; | ||||
|       this.detailList = []; | ||||
|       this.detailTotal = 0; | ||||
|     }, | ||||
|     handleChange(row) { | ||||
|       this.detailQuery.orderIdFk = row.orderId; | ||||
|       this.detailQuery.page = 1; | ||||
|       this.getCountOrderDetailList() | ||||
|     }, | ||||
|     getCountOrderDetailList() { | ||||
|       this.detailLoading = true; | ||||
|       getCountOrderDetailList(this.detailQuery).then((res) => { | ||||
|         this.detailLoading = false; | ||||
|         if (res.code === 20000) { | ||||
|           this.detailList = res.data.list || []; | ||||
|           this.detailTotal = res.data.total || 0; | ||||
|         } else { | ||||
|           this.detailList = []; | ||||
|           this.detailTotal = 0; | ||||
|         } | ||||
|       }).catch(() => { | ||||
|         this.detailLoading = false; | ||||
|         this.detailList = []; | ||||
|         this.detailTotal = 0; | ||||
|       }); | ||||
|     }, | ||||
|     showCode(row) { | ||||
|       this.codeQuery = { | ||||
|         orderIdFk: row.orderIdFk, | ||||
|         relId: row.relId, | ||||
|         batchNo: row.batchNo, | ||||
|         edit: false | ||||
|       }; | ||||
|       this.codesVisible = true; | ||||
|     }, | ||||
|   }, | ||||
|   components: { | ||||
|     invCountCodes | ||||
|   }, | ||||
|   mounted() { | ||||
|     document.body.ondrop = function (event) { | ||||
|       event.preventDefault(); | ||||
|       event.stopPropagation(); | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.getInvList(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style type="text/scss" lang="scss"> | ||||
| </style> | ||||
| 
 | ||||
| @ -0,0 +1,315 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card class="el-card"> | ||||
|       <el-form :model="filterQuery" class="query-form" size="mini" :inline="true"> | ||||
|         <el-form-item class="query-form-item" label="盘点单号:"> | ||||
|           <el-input v-model="filterQuery.orderId" placeholder="请输入盘点单号" | ||||
|                     clearable="true"></el-input> | ||||
|         </el-form-item> | ||||
|         <el-form-item class="query-form-item" label="领用仓库:"> | ||||
|           <el-select v-model="filterQuery.invCode" placeholder="请选择仓库" clearable="true" | ||||
|                      @change="invChange" | ||||
|           > | ||||
|             <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-form-item class="query-form-item" label="领用货位:"> | ||||
|           <el-select v-model="filterQuery.invSpaceCode" placeholder="请选择货位" clearable="true" | ||||
|           > | ||||
|             <el-option | ||||
|               v-for="item in spaceList" | ||||
|               :key="item.name" | ||||
|               :label="item.name" | ||||
|               :value="item.code"> | ||||
|               <span style="float: left">{{ item.name }}</span> | ||||
|             </el-option> | ||||
|           </el-select> | ||||
|         </el-form-item> | ||||
|         <el-form-item> | ||||
|           <el-button-group style="margin-left: 10px;display:flex;"> | ||||
|             <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> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
| 
 | ||||
|       <el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row | ||||
|                 @current-change="handleChange" | ||||
|                 border> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="盘点单号" prop="orderId" width="300"></el-table-column> | ||||
|         <el-table-column label="仓库" prop="invName" width="300"></el-table-column> | ||||
|         <el-table-column label="货位" prop="invSpaceName" width="300"></el-table-column> | ||||
|         <el-table-column label="盘点类型" prop="countType" width="150"> | ||||
|           <template slot-scope="scope"> | ||||
|             <span>{{ countTypeMap[scope.row.countType] }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="盘点人" prop="createUserName" width="200"></el-table-column> | ||||
|         <el-table-column label="盘点时间" prop="createTime"></el-table-column> | ||||
|         <el-table-column label="状态" prop="status" width="120"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-tag>{{ statusMap[scope.row.status] }}</el-tag> | ||||
|           </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-card> | ||||
|       <el-table v-loading="detailLoading" :data="detailList" style="width: 100%" highlight-current-row | ||||
|                 border> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="产品名称" prop="productName" width="220"></el-table-column> | ||||
|         <el-table-column label="批次号" prop="batchNo" width="180" | ||||
|                          show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="生产日期" prop="produceDate" width="120"></el-table-column> | ||||
|         <el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column> | ||||
|         <el-table-column label="盘点数量" prop="countNum" width="150"></el-table-column> | ||||
|         <el-table-column label="账面数量" prop="invNum" width="150"></el-table-column> | ||||
|         <el-table-column label="盘盈数量" prop="profitNum" width="150"></el-table-column> | ||||
|         <el-table-column label="盘亏数量" prop="lossNum" width="150"></el-table-column> | ||||
|         <el-table-column label="盈亏状态" prop="status" width="100"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-tag> | ||||
|               {{ countStatusMap[scope.row.status] }} | ||||
|             </el-tag> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="操作"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="showCode(scope.row)" | ||||
|             >详情 | ||||
|             </el-button | ||||
|             > | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table> | ||||
|       <pagination | ||||
|         v-show="detailTotal>0" | ||||
|         :total="detailTotal" | ||||
|         :limit.sync="detailQuery.limit" | ||||
|         :page.sync="detailQuery.page" | ||||
|         @pagination="getList" | ||||
|       ></pagination> | ||||
|     </el-card> | ||||
| 
 | ||||
| 
 | ||||
|     <el-dialog | ||||
|       title="码详情" | ||||
|       :visible.sync="codesVisible" | ||||
|       width="60%" | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       v-if="codesVisible" | ||||
|       append-to-body | ||||
|     > | ||||
|       <invCountCodes | ||||
|         :codeQuery="codeQuery" | ||||
|       ></invCountCodes> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {getInvListByUser} from "@/api/system/invWarehouse"; | ||||
| import {getInvSpaceList} from "@/api/inventory/invSpace"; | ||||
| import { | ||||
|   getCountOrderList, | ||||
|   getCountOrderDetailList | ||||
| } from "@/api/inventory/invCountOrder"; | ||||
| import invCountCodes from "@/views/inventory/InvCountCodes.vue"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "InvCountOrderCompleted", | ||||
|   data() { | ||||
|     return { | ||||
|       filterQuery: { | ||||
|         orderId: null, | ||||
|         invCode: this.$store.getters.locInvCode, | ||||
|         invSpaceCode: null, | ||||
|         status: 2, | ||||
|         page: 1, | ||||
|         limit: 20, | ||||
|       }, | ||||
|       list: [], | ||||
|       total: 0, | ||||
|       invList: [], | ||||
|       spaceList: [], | ||||
|       loading: false, | ||||
|       formVisible: false, | ||||
|       statusMap: { | ||||
|         0: "草稿", | ||||
|         1: "未审核", | ||||
|         2: "已审核" | ||||
|       }, | ||||
|       countOrder: {}, | ||||
|       countType: null, | ||||
|       countTypeMap: { | ||||
|         0: "整库盘点", | ||||
|         1: "货位盘点", | ||||
|         2: "部分盘点" | ||||
|       }, | ||||
|       countStatusMap: { | ||||
|         0: '亏损', | ||||
|         1: '盈利', | ||||
|         2: "平衡" | ||||
|       }, | ||||
|       detailQuery: { | ||||
|         orderIdFk: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }, | ||||
|       detailList: [], | ||||
|       detailTotal: 0, | ||||
|       detailLoading: false, | ||||
|       codeQuery: { | ||||
|         orderIdFk: null, | ||||
|         relId: null, | ||||
|         batchNo: null, | ||||
|         edit: false | ||||
|       }, | ||||
|       codesVisible: false | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.filterQuery = { | ||||
|         orderId: null, | ||||
|         invCode: this.$store.getters.locInvCode, | ||||
|         invSpaceCode: null, | ||||
|         status: 2, | ||||
|         page: 1, | ||||
|         limit: 20, | ||||
|       }; | ||||
|       this.spaceList = []; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       getCountOrderList(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; | ||||
|       }) | ||||
|     }, | ||||
|     invChange() { | ||||
|       this.spaceList = []; | ||||
|       this.filterQuery.fromInvSpaceCode = null; | ||||
|       this.getSpaceList(); | ||||
|     }, | ||||
|     getInvList() { | ||||
|       getInvListByUser() | ||||
|         .then((response) => { | ||||
|           this.invList = response.data || []; | ||||
|           this.getList(); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     getSpaceList() { | ||||
|       let params = {invWarehouseCode: this.filterQuery.invCode}; | ||||
|       getInvSpaceList(params).then((res) => { | ||||
|         this.spaceList = res.data.list || []; | ||||
|         this.getList(); | ||||
|       }) | ||||
|     }, | ||||
|     addCountOrder(type) { | ||||
|       this.formVisible = true; | ||||
|       this.formName = 'add_' + type; | ||||
|       this.countOrder = {}; | ||||
|       this.countType = type; | ||||
|     }, | ||||
|     onRestDetail() { | ||||
|       this.detailQuery = { | ||||
|         orderIdFk: null, | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }; | ||||
|       this.detailList = []; | ||||
|       this.detailTotal = 0; | ||||
|     }, | ||||
|     handleChange(row) { | ||||
|       this.detailQuery.orderIdFk = row.orderId; | ||||
|       this.detailQuery.page = 1; | ||||
|       this.getCountOrderDetailList() | ||||
|     }, | ||||
|     getCountOrderDetailList() { | ||||
|       this.detailLoading = true; | ||||
|       getCountOrderDetailList(this.detailQuery).then((res) => { | ||||
|         this.detailLoading = false; | ||||
|         if (res.code === 20000) { | ||||
|           this.detailList = res.data.list || []; | ||||
|           this.detailTotal = res.data.total || 0; | ||||
|         } else { | ||||
|           this.detailList = []; | ||||
|           this.detailTotal = 0; | ||||
|         } | ||||
|       }).catch(() => { | ||||
|         this.detailLoading = false; | ||||
|         this.detailList = []; | ||||
|         this.detailTotal = 0; | ||||
|       }); | ||||
|     }, | ||||
|     showCode(row) { | ||||
|       this.codeQuery = { | ||||
|         orderIdFk: row.orderIdFk, | ||||
|         relId: row.relId, | ||||
|         batchNo: row.batchNo, | ||||
|         edit: false | ||||
|       }; | ||||
|       this.codesVisible = true; | ||||
|     }, | ||||
|   }, | ||||
|   components: { | ||||
|     invCountCodes | ||||
|   }, | ||||
|   mounted() { | ||||
|     document.body.ondrop = function (event) { | ||||
|       event.preventDefault(); | ||||
|       event.stopPropagation(); | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.getInvList(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style type="text/scss" lang="scss"> | ||||
| </style> | ||||
| 
 | ||||
					Loading…
					
					
				
		Reference in New Issue