parent
							
								
									b6863f4b78
								
							
						
					
					
						commit
						239e313a28
					
				| @ -0,0 +1,375 @@ | |||||||
|  | <template> | ||||||
|  |     <div> | ||||||
|  |         <el-card class="el-card" style="margin-top: -15px"> | ||||||
|  |             <el-form :inline="true" :model="filterQuery" style="display: flex;" size="mini"> | ||||||
|  |                 <el-row> | ||||||
|  |                     <el-form-item class="query-form-item"> | ||||||
|  |                         <el-input | ||||||
|  |                             v-model="filterQuery.billNo" | ||||||
|  |                             placeholder="单据号" | ||||||
|  |                             clearable | ||||||
|  |                         ></el-input> | ||||||
|  |                     </el-form-item> | ||||||
|  |                     <el-form-item class="query-form-item"> | ||||||
|  |                         <span style="color: #000; margin-left: 10px; margin-right: 6px">单据日期:</span> | ||||||
|  |                         <el-date-picker | ||||||
|  |                             :picker-options="pickerOptions" | ||||||
|  |                             v-model="actDateRange" | ||||||
|  |                             type="daterange" | ||||||
|  |                             format="yyyy 年 MM 月 dd 日" | ||||||
|  |                             value-format="yyyy-MM-dd" | ||||||
|  |                             range-separator="至" | ||||||
|  |                             start-placeholder="开始日期" | ||||||
|  |                             end-placeholder="结束日期" | ||||||
|  |                         > | ||||||
|  |                         </el-date-picker> | ||||||
|  |                     </el-form-item> | ||||||
|  |                     <el-form-item> | ||||||
|  |                         <el-button-group style="display:flex;"> | ||||||
|  |                             <el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button> | ||||||
|  |                             <el-button type="primary" icon="search" @click="onSubmitFind">查询</el-button> | ||||||
|  |                             <el-button type="primary" icon="search" @click="combine" | ||||||
|  |                             >确定 | ||||||
|  |                             </el-button | ||||||
|  |                             > | ||||||
|  |                         </el-button-group> | ||||||
|  | 
 | ||||||
|  |                     </el-form-item> | ||||||
|  |                 </el-row> | ||||||
|  | 
 | ||||||
|  |             </el-form> | ||||||
|  |             <el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row="true" | ||||||
|  |                       @current-change="handleDetail"> | ||||||
|  |                 <el-table-column label="序号" type="index" width="60"></el-table-column> | ||||||
|  |                 <el-table-column label="单据号" prop="billNo"></el-table-column> | ||||||
|  |                 <el-table-column label="申购日期" prop="billDate"> | ||||||
|  |                     <template slot-scope="scope"> | ||||||
|  |                         <span>{{ parseTime(scope.row.billDate, '{y}-{m}-{d}') }}</span> | ||||||
|  |                     </template> | ||||||
|  |                 </el-table-column> | ||||||
|  |                 <el-table-column label="创建人" prop="createByName"></el-table-column> | ||||||
|  |                 <el-table-column label="审核人" prop="auditByName"></el-table-column> | ||||||
|  |                 <el-table-column label="申购仓库" prop="invName"></el-table-column> | ||||||
|  |                 <el-table-column label="申购分库" prop="subInvName"></el-table-column> | ||||||
|  |                 <el-table-column label="申购说明" prop="remark"></el-table-column> | ||||||
|  |             </el-table> | ||||||
|  |             <el-pagination | ||||||
|  |                 :page-size="filterQuery.limit" | ||||||
|  |                 @current-change="handleCurrentChange" | ||||||
|  |                 layout="prev, pager, next" | ||||||
|  |                 :total="total" | ||||||
|  |                 :current-page="filterQuery.page" | ||||||
|  |             ></el-pagination> | ||||||
|  |         </el-card> | ||||||
|  |         <el-card class="el-card"> | ||||||
|  |             <el-table v-loading="loading" :data="detailList" style="width: 100%"> | ||||||
|  |                 <el-table-column label="序号" type="index" width="120"></el-table-column> | ||||||
|  |                 <el-table-column label="产品通用名" prop="productName" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |                 <el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |                 <el-table-column label="申购数量" prop="count"></el-table-column> | ||||||
|  |                 <el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |                 <el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |                 <el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |                 <el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |             </el-table> | ||||||
|  |         </el-card> | ||||||
|  |     </div> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script> | ||||||
|  | import pureApplyDetail from "./pureApplyDetailDialog"; | ||||||
|  | import {delApply, auditOrder, listApplyDetail, auditListApply} from "@/api/purchase/purApply"; | ||||||
|  | import {getStockOrderDetailInstrumentById} from "@/api/inout/stockOrder"; | ||||||
|  | 
 | ||||||
|  | export default { | ||||||
|  |     name: "selectApplyListDialog", | ||||||
|  |     props: { | ||||||
|  |         data: { | ||||||
|  |             type: Object, | ||||||
|  |             required: true, | ||||||
|  |         }, | ||||||
|  |         closeDialog: { | ||||||
|  |             type: Function, | ||||||
|  |             required: true, | ||||||
|  |         }, | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     data() { | ||||||
|  |         return { | ||||||
|  |             filterQuery: { | ||||||
|  | 
 | ||||||
|  |                 billAction: null, | ||||||
|  |                 billNo: "", | ||||||
|  |                 originType: null, | ||||||
|  |                 page: 1, | ||||||
|  |                 limit: 10, | ||||||
|  |             }, | ||||||
|  |             formName: null, | ||||||
|  |             statusMap: { | ||||||
|  |                 1: "草稿", | ||||||
|  |                 2: "未审核", | ||||||
|  |                 3: "已审核", | ||||||
|  |                 4: "已拒绝" | ||||||
|  |             }, | ||||||
|  |             ids: [], | ||||||
|  |             idQuery: {}, | ||||||
|  |             editType: 2, | ||||||
|  |             total: 0, | ||||||
|  |             thirdSys: [], | ||||||
|  |             thirdSysDetail: null, | ||||||
|  |             busTypes: [], | ||||||
|  |             originTypes: [], | ||||||
|  |             list: [], | ||||||
|  |             detailList: [], | ||||||
|  |             loading: false, | ||||||
|  |             currentRow: null, | ||||||
|  |             actDateRange: [], | ||||||
|  |             newSpDistributionVisible: false, | ||||||
|  |             pickerOptions: { | ||||||
|  |                 shortcuts: [ | ||||||
|  |                     { | ||||||
|  |                         text: "最近一周", | ||||||
|  |                         onClick(picker) { | ||||||
|  |                             const end = new Date(); | ||||||
|  |                             const start = new Date(); | ||||||
|  |                             start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); | ||||||
|  |                             picker.$emit("pick", [start, end]); | ||||||
|  |                         }, | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         text: "最近一个月", | ||||||
|  |                         onClick(picker) { | ||||||
|  |                             const end = new Date(); | ||||||
|  |                             const start = new Date(); | ||||||
|  |                             start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); | ||||||
|  |                             picker.$emit("pick", [start, end]); | ||||||
|  |                         }, | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         text: "最近三个月", | ||||||
|  |                         onClick(picker) { | ||||||
|  |                             const end = new Date(); | ||||||
|  |                             const start = new Date(); | ||||||
|  |                             start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); | ||||||
|  |                             picker.$emit("pick", [start, end]); | ||||||
|  |                         }, | ||||||
|  |                     }, | ||||||
|  |                 ], | ||||||
|  |             }, | ||||||
|  |         }; | ||||||
|  |     }, | ||||||
|  |     methods: { | ||||||
|  |         onReset() { | ||||||
|  |             this.$router.push({ | ||||||
|  |                 path: "", | ||||||
|  |             }); | ||||||
|  |             this.filterQuery = { | ||||||
|  |                 billNo: "", | ||||||
|  |                 thirdSysFk: "", | ||||||
|  |                 billFlag: null, | ||||||
|  |                 billAction: null, | ||||||
|  |                 startDate: null, | ||||||
|  |                 endDate: null, | ||||||
|  |                 page: 1, | ||||||
|  |                 limit: 10, | ||||||
|  |                 corpName: null, | ||||||
|  |                 type: 1, | ||||||
|  |                 editStatus: 1, | ||||||
|  |             }; | ||||||
|  |             this.actDateRange = []; | ||||||
|  |             this.getList(); | ||||||
|  |         }, | ||||||
|  | 
 | ||||||
|  |         onSubmitFind() { | ||||||
|  |             this.filterQuery.page = 1; | ||||||
|  |             this.getList(); | ||||||
|  |         }, | ||||||
|  | 
 | ||||||
|  |         getList() { | ||||||
|  |             if (this.actDateRange != null) { | ||||||
|  |                 this.filterQuery.startDate = this.actDateRange[0]; | ||||||
|  |                 this.filterQuery.endDate = this.actDateRange[1]; | ||||||
|  |             } else { | ||||||
|  |                 this.filterQuery.startDate = null; | ||||||
|  |                 this.filterQuery.endDate = null; | ||||||
|  |             } | ||||||
|  |             this.loading = true; | ||||||
|  |             this.filterQuery.status = 3; | ||||||
|  |             auditListApply(this.filterQuery) | ||||||
|  |                 .then((response) => { | ||||||
|  |                     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; | ||||||
|  |                 }); | ||||||
|  |         }, | ||||||
|  |         handleDetail(row) { | ||||||
|  |             this.currentRow = row; | ||||||
|  |             let query = {orderIdFk: row.id}; | ||||||
|  |             this.loading = true; | ||||||
|  |             listApplyDetail(query) //查找该单号下的所有条码 | ||||||
|  |                 .then((response) => { | ||||||
|  |                     this.detailList = response.data.list || []; | ||||||
|  |                     this.loading = false; | ||||||
|  |                 }) | ||||||
|  |                 .catch(() => { | ||||||
|  |                     this.loading = false; | ||||||
|  |                     this.detailList = []; | ||||||
|  |                     this.total = 0; | ||||||
|  |                 }); | ||||||
|  |         }, | ||||||
|  |         submitOrder(row) { | ||||||
|  |             this.loading = true; | ||||||
|  |             let tQuery = { | ||||||
|  |                 editStatus: 2, | ||||||
|  |                 purApplyEntity: row, | ||||||
|  |             } | ||||||
|  |             auditOrder(tQuery) | ||||||
|  |                 .then(response => { | ||||||
|  |                     this.loading = false; | ||||||
|  |                     if (response.code === 20000) { | ||||||
|  |                         this.$message.success("提交成功!"); | ||||||
|  |                         this.getList(); | ||||||
|  |                     } else { | ||||||
|  |                         this.$message.error(response.message); | ||||||
|  |                     } | ||||||
|  |                 }) | ||||||
|  |                 .catch(() => { | ||||||
|  |                     this.loading = false; | ||||||
|  |                 }) | ||||||
|  |         }, | ||||||
|  |         deleteDialog(row) { | ||||||
|  |             this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { | ||||||
|  |                 confirmButtonText: "确定", | ||||||
|  |                 cancelButtonText: "取消", | ||||||
|  |                 type: "warning", | ||||||
|  |             }) | ||||||
|  |                 .then(() => { | ||||||
|  |                     delApply(row.id) | ||||||
|  |                         .then((response) => { | ||||||
|  |                             this.loading = false; | ||||||
|  |                             if (response.code == 20000) { | ||||||
|  |                                 this.$message.success("删除成功"); | ||||||
|  |                                 this.getList(); | ||||||
|  |                             } else { | ||||||
|  |                                 this.$message.error(response.message); | ||||||
|  |                             } | ||||||
|  |                         }) | ||||||
|  |                         .catch(() => { | ||||||
|  |                             this.loading = false; | ||||||
|  |                         }); | ||||||
|  | 
 | ||||||
|  |                 }) | ||||||
|  |                 .catch(() => { | ||||||
|  |                 }); | ||||||
|  |         }, | ||||||
|  |         handleCurrentChange(val) { | ||||||
|  |             this.filterQuery.page = val; | ||||||
|  |             this.getList(); | ||||||
|  |         }, | ||||||
|  | 
 | ||||||
|  |         combine() { | ||||||
|  |             if (this.$isBlank(this.currentRow.id)) { | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  |             if (this.ids.length > 0) { | ||||||
|  |                 for (var i = 0; i < this.ids.length; i++) { | ||||||
|  |                     for (let j = 0; j < this.detailList.length; j++) { | ||||||
|  |                         if (this.ids[i] == this.detailList[j].productId) { | ||||||
|  |                             this.$message.error("该申购单已有产品被选入!"); | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             let productDatas = []; | ||||||
|  |             for (let j = 0; j < this.detailList.length; j++) { | ||||||
|  |                 let data = { | ||||||
|  |                     relId: this.detailList[j].productId, | ||||||
|  |                     supId: this.detailList[j].supId, | ||||||
|  |                     zczbhhzbapzbh: this.detailList[j].zczbhhzbapzbh, | ||||||
|  |                     count:this.detailList[j].count, | ||||||
|  |                 } | ||||||
|  |                 productDatas.push(data); | ||||||
|  |             } | ||||||
|  |             this.loading = true; | ||||||
|  |             let tQuery = { | ||||||
|  |                 datas: productDatas, | ||||||
|  |                 stockOrderLists: this.data.stockOrderLists, | ||||||
|  |                 purType: 1, | ||||||
|  |             }; | ||||||
|  |             getStockOrderDetailInstrumentById(tQuery).then((response) => { | ||||||
|  |                 this.loading = false; | ||||||
|  |                 if (response.code === 20000) { | ||||||
|  |                     this.closeDialog(response.data); | ||||||
|  |                 } else { | ||||||
|  |                     if (response.code == 601) { | ||||||
|  |                         this.$alert(response.message, "提示", { | ||||||
|  |                             confirmButtonText: "确定", | ||||||
|  |                         }); | ||||||
|  |                     } else | ||||||
|  |                         this.$message.error(response.message); | ||||||
|  |                 } | ||||||
|  |             }).catch(() => { | ||||||
|  |                 this.loading = false; | ||||||
|  |             }); | ||||||
|  | 
 | ||||||
|  |         }, | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     }, | ||||||
|  |     created() { | ||||||
|  |         let end = new Date(); | ||||||
|  |         let start = new Date(); | ||||||
|  |         start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); | ||||||
|  |         this.actDateRange = [start, end]; | ||||||
|  |         this.getList(); | ||||||
|  | 
 | ||||||
|  |         this.ids = []; | ||||||
|  |         if (this.data.stockOrderLists.length > 0) { | ||||||
|  |             for (var i = 0; i < this.data.stockOrderLists.length; i++) { | ||||||
|  |                 this.ids.push(this.data.stockOrderLists[i].productId); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     }, | ||||||
|  |     components: { | ||||||
|  |         pureApplyDetail | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     filters: { | ||||||
|  |         statusFilterType(status) { | ||||||
|  |             const statusMap = { | ||||||
|  |                 2: "warning", | ||||||
|  |                 3: "success", | ||||||
|  |                 4: "danger", | ||||||
|  |             }; | ||||||
|  |             return statusMap[status]; | ||||||
|  |         } | ||||||
|  |         , | ||||||
|  |     } | ||||||
|  |     , | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | }; | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style scoped> | ||||||
|  | 
 | ||||||
|  | div /deep/ .el-table .warning-row { | ||||||
|  |     background: #bebebe; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | div /deep/ .el-table .success-row { | ||||||
|  |     background: #ffffff; | ||||||
|  | } | ||||||
|  | </style> | ||||||
					Loading…
					
					
				
		Reference in New Issue