预验收功能
							parent
							
								
									c794bbdad4
								
							
						
					
					
						commit
						1d6fcd8a40
					
				| @ -0,0 +1,24 @@ | ||||
| import axios from '@/utils/request' | ||||
| 
 | ||||
| 
 | ||||
| export function filterTrace(query) { | ||||
|   return axios({ | ||||
|     url: "/spms/inv/products/trace", | ||||
|     method: "get", | ||||
|     params: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function filterOrderTrace(query) { | ||||
|   return axios({ | ||||
|     url: "/spms/inv/products/order/trace", | ||||
|     method: "get", | ||||
|     params: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,29 @@ | ||||
| import axios from '@/utils/request' | ||||
| import request from "@/utils/request"; | ||||
| 
 | ||||
| 
 | ||||
| export function filterPrein(query) { | ||||
|   return axios({ | ||||
|     url: "/udiwms/inv/prein/filter", | ||||
|     method: "get", | ||||
|     params: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function filterDetail(query) { | ||||
|   return axios({ | ||||
|     url: "/udiwms/inv/prein/detail", | ||||
|     method: "get", | ||||
|     params: query | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| export function deleterPrein(data) { | ||||
|   return request({ | ||||
|     url: "/udiwms/inv/prein/delete", | ||||
|     method: "post", | ||||
|     data: data | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,404 @@ | ||||
| <template> | ||||
|   <div> | ||||
|     <el-card class="el-card"> | ||||
|       <div> | ||||
|         <el-form :model="unionQuery" size="mini" label-width="125px" v-show="showSearch"> | ||||
|           <el-row> | ||||
|             <el-col :span="18"> | ||||
|               <el-form-item class="query-form-item" label="UDI码:"> | ||||
|                 <el-input v-model="unionQuery.udiCode" | ||||
|                           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="销售单元产品标识"> | ||||
|                 <el-input | ||||
|                   v-model="unionQuery.nameCode" clearable="true" | ||||
|                   size="mini" | ||||
|                   placeholder="请输入完整DI" | ||||
|                   @keyup.enter.native="keyup_submit($event)" | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="6"> | ||||
|               <el-form-item class="query-form-item" label="医疗器械注册人:"> | ||||
|                 <el-select | ||||
|                   v-model="unionQuery.ylqxzcrbarmc" | ||||
|                   filterable | ||||
|                   remote | ||||
|                   style="width: 100%" | ||||
|                   clearable="true" | ||||
|                   reserve-keyword | ||||
|                   placeholder="医疗器械注册人" | ||||
|                   :remote-method="findMethod" | ||||
|                   :loading="loading" | ||||
|                 > | ||||
|                   <el-option | ||||
|                     v-for="item in fromOptions" | ||||
|                     :key="item.ylqxzcrbarmc" | ||||
|                     :label="item.ylqxzcrbarmc" | ||||
|                     :value="item.ylqxzcrbarmc" | ||||
|                   > | ||||
|                     <span style="float: left">{{ item.ylqxzcrbarmc }}</span> | ||||
|                   </el-option> | ||||
|                 </el-select> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="6"> | ||||
|               <el-form-item class="query-form-item" label="器械通用名称:"> | ||||
|                 <el-input | ||||
|                   :disabled="unionQuery.ylqxzcrbarmc==null || unionQuery.ylqxzcrbarmc==''" | ||||
|                   v-model="unionQuery.cpmctymc" clearable="true" | ||||
|                   size="mini" | ||||
|                   placeholder="器械通用名称" | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|           <el-row> | ||||
|             <el-col :span="6"> | ||||
|               <el-form-item label="规格型号:" class="query-form-item"> | ||||
|                 <el-input | ||||
|                   v-model="unionQuery.ggxh" clearable="true" | ||||
|                   :disabled="(unionQuery.cpmctymc=='' && unionQuery.nameCode=='' && unionQuery.ylqxzcrbarmc==null)" | ||||
|                   placeholder="规格型号" | ||||
|                   size="mini" | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="6"> | ||||
|               <el-form-item label="注册证/备案号:" class="query-form-item"> | ||||
|                 <el-input | ||||
|                   v-model="unionQuery.zczbhhzbapzbh" clearable="true" | ||||
|                   :disabled="(unionQuery.cpmctymc=='' && unionQuery.nameCode=='' && unionQuery.ylqxzcrbarmc==null)" | ||||
|                   placeholder="注册证/备案号" | ||||
|                   size="mini" | ||||
|                 ></el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </el-form> | ||||
|         <div class="top-right-btn" style="display:flex;"> | ||||
|           <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="searchList" size="mini" | ||||
|             >查询 | ||||
|             </el-button | ||||
|             > | ||||
| 
 | ||||
|           </el-button-group> | ||||
| 
 | ||||
|           <el-upload | ||||
| 
 | ||||
|             :action="uploadFileUrl" | ||||
|             multiple | ||||
|             :limit="1" | ||||
|             :data="uploadData" | ||||
|             :show-file-list="false" | ||||
|             :on-success="handleChange" | ||||
|             :on-exceed="handleExceed" | ||||
|             :before-upload="handleBefore" | ||||
|             icon="el-icon-search" | ||||
|             :file-list="fileList" | ||||
|           > | ||||
|             <el-button type="primary" icon="el-icon-bottom-right" style="margin-left: 15px">导入器械信息</el-button> | ||||
|           </el-upload> | ||||
|         </div> | ||||
|         <el-table | ||||
|           :data="udidlList" | ||||
|           style="width: 100%" | ||||
|           @row-click="intentDetail" | ||||
|           v-loading="loading" | ||||
|           border | ||||
|           highlight-current-row="true" | ||||
|           :row-class-name="tableRowClassName" | ||||
|           @current-change="handleErpChange" | ||||
|         > | ||||
| 
 | ||||
|           <el-table-column label="序号" type="index"></el-table-column> | ||||
|           <el-table-column | ||||
|             label="产品标识" | ||||
|             prop="nameCode" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="产品名称" | ||||
|             prop="cpmctymc" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="规格型号" | ||||
|             prop="ggxh" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="医疗器械注册人" | ||||
|             prop="ylqxzcrbarmc" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="注册证编号" | ||||
|             prop="zczbhhzbapzbh" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
| 
 | ||||
|           <el-table-column label="操作"> | ||||
|             <template slot-scope="scope"> | ||||
|               <el-button | ||||
|                 type="text" | ||||
|                 size="small" | ||||
|                 @click="diDetail(scope.row)" | ||||
|               >详情 | ||||
|               </el-button | ||||
|               > | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </el-table> | ||||
|         <el-pagination | ||||
|           :page-size="unionQuery.limit" | ||||
|           @current-change="handleCurrentChange" | ||||
|           layout="prev, pager, next" | ||||
|           :total="total" | ||||
|           :current-page="unionQuery.page" | ||||
|         ></el-pagination> | ||||
|       </div> | ||||
|     </el-card> | ||||
|     <el-dialog | ||||
|       title="器械信息详情" | ||||
|       :close-on-click-modal="false" | ||||
|       :close-on-press-escape="false" | ||||
|       :visible.sync="selectDialog" | ||||
|       width="65%" | ||||
|       append-to-body | ||||
|       v-if="selectDialog" | ||||
|     > | ||||
|       <selectDiDetail :editQuery="diDetails" | ||||
|       ></selectDiDetail> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import {getUdiInfos, filterCompany} from "@/api/basic/udiInfo"; | ||||
| import axios from "axios"; | ||||
| import selectDiDetail from "../product/SelectDIDetailDialog"; | ||||
| 
 | ||||
| export default { | ||||
|   name: "UdiInfoDb", | ||||
| 
 | ||||
|   data() { | ||||
|     return { | ||||
|       unionQuery: { | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         udiCode: null, | ||||
|         nameCode: "", | ||||
|         cpmctymc: "", | ||||
|         ylqxzcrbarmc: null, | ||||
|         ggxh: "", | ||||
|         zczbhhzbapzbh: "", | ||||
|         isCheck: 1 | ||||
|       }, | ||||
|       combineLoading: false, | ||||
|       combineQuery: { | ||||
|         thirdId: "", | ||||
|         relId: "", | ||||
|         erpName: "", | ||||
|         keys: [], | ||||
|       }, | ||||
|       checked: true, | ||||
|       udidlList: [], | ||||
|       erpList: [], | ||||
|       pageTotal: 1, | ||||
|       total: 1, | ||||
|       currentRow: null, | ||||
|       fromOptions: [], | ||||
|       loading: false, | ||||
|       erpLloading: false, | ||||
|       multipleUdiSelection: [], | ||||
|       data: {}, | ||||
|       uploadFileUrl: null, | ||||
|       uploadData: { | ||||
|         thirdSys: "thirdId", | ||||
|       }, | ||||
|       selectDialog: false, | ||||
|       diDetails: null, | ||||
|       showSearch: true, | ||||
|     }; | ||||
|   }, | ||||
|   methods: { | ||||
| 
 | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
| 
 | ||||
|     onReset() { | ||||
|       this.unionQuery = { | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         udiCode: null, | ||||
|         nameCode: "", | ||||
|         cpmctymc: "", | ||||
|         ylqxzcrbarmc: null, | ||||
|         ggxh: "", | ||||
|         zczbhhzbapzbh: "", | ||||
|         isCheck: 1 | ||||
|       }; | ||||
|     }, | ||||
|     searchList() { | ||||
|       this.unionQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     getList() { | ||||
|       if ( | ||||
|         this.unionQuery.udiCode == "" && | ||||
|         this.unionQuery.nameCode == "" && | ||||
|         this.unionQuery.cpmctymc == "" && | ||||
|         this.unionQuery.ylqxzcrbarmc == "" && | ||||
|         this.unionQuery.ggxh == "" && | ||||
|         this.unionQuery.zczbhhzbapzbh == "" | ||||
|       ) { | ||||
|         this.$message.warning("请输入查询条件"); | ||||
|         return; | ||||
|       } | ||||
|       this.loading = true; | ||||
|       // this.unionQuery.page = 1; | ||||
|       getUdiInfos(this.unionQuery) | ||||
|         .then((response) => { | ||||
|           this.loading = false; | ||||
|           if (response.code == 20000) { | ||||
|             this.udidlList = response.data.list || []; | ||||
|             this.total = response.data.total || 0; | ||||
|           } else { | ||||
|             this.$message.error(response.message); | ||||
|           } | ||||
| 
 | ||||
| 
 | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.udidlList = []; | ||||
|           this.total = 0; | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     keyup_submit(event) { | ||||
|       this.unionQuery.page = 1; | ||||
|       this.getList(); | ||||
|       event.target.select(); | ||||
|     }, | ||||
| 
 | ||||
|     checkSelectable(row) { | ||||
|       return !row.check; | ||||
|     }, | ||||
|     handleCurrentChange(val) { | ||||
|       this.unionQuery.page = val; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     tableRowClassName({row, rowIndex}) { | ||||
|       if (row.check) return "warning-row"; | ||||
|       return ""; | ||||
|     }, | ||||
|     handleErpChange(val) { | ||||
|       this.currentRow = val; | ||||
|     }, | ||||
|     intentBack() { | ||||
|       this.closeDialog(); | ||||
|     }, | ||||
| 
 | ||||
|     handleSelectionUdiChange(val) { | ||||
|       this.multipleUdiSelection = val; | ||||
|     }, | ||||
|     findMethod(query) { | ||||
|       let cQuery = { | ||||
|         ylqxzcrbarmc: query, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }; | ||||
|       filterCompany(cQuery) | ||||
|         .then((response) => { | ||||
|           this.loading = false; | ||||
|           this.fromOptions = response.data || []; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.options = []; | ||||
|         }); | ||||
|     }, | ||||
|     handleExceed() { | ||||
|       this.$message.error("上传数量超出!"); | ||||
|     }, | ||||
|     handleBefore() { | ||||
|       this.loading = true; | ||||
|     }, | ||||
|     handleChange(response, files, fileList) { | ||||
|       if (response.code != 20000) { | ||||
|         this.loading = false; | ||||
|         this.$message.error(response.message); | ||||
|       } else { | ||||
|         this.loading = false; | ||||
|         this.$message.success(response.data); | ||||
|       } | ||||
|     }, | ||||
|     diDetail(row) { | ||||
|       this.diDetails = row; | ||||
|       this.selectDialog = true; | ||||
|     }, | ||||
| 
 | ||||
| 
 | ||||
|     init() { | ||||
|       axios.get("./config.json").then(res => { | ||||
|         let response = res.data.UDI_SYNC_SERVER_IP + ""; | ||||
|         this.uploadFileUrl = response + "udisync/udiInfo/upload"; | ||||
|       }); | ||||
|     }, | ||||
| 
 | ||||
|   }, | ||||
|   created() { | ||||
|     this.init(); | ||||
|   }, | ||||
|   components: { | ||||
|     selectDiDetail, | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style scoped> | ||||
| .checkitemTag { | ||||
|   float: left; | ||||
|   text-align: left; | ||||
|   margin-top: 5px; | ||||
|   width: 100%; | ||||
| } | ||||
| 
 | ||||
| div /deep/ .el-table .warning-row { | ||||
|   background: #bebebe; | ||||
| } | ||||
| 
 | ||||
| div /deep/ .el-table .success-row { | ||||
|   background: #ffffff; | ||||
| } | ||||
| 
 | ||||
| .el-card { | ||||
|   margin-right: 20px; | ||||
|   /*transition: all .5s;*/ | ||||
| } | ||||
| 
 | ||||
| .query-form-item { | ||||
|   display: block !important; | ||||
|   margin-right: 10px; | ||||
|   margin-bottom: 5px; | ||||
| } | ||||
| 
 | ||||
| </style> | ||||
| @ -0,0 +1,488 @@ | ||||
| <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="8"> | ||||
|             <el-form-item class="query-form-item" label="预验收单号:"> | ||||
|               <el-input v-model="filterQuery.billNo" placeholder="单号" | ||||
|                         clearable="true"></el-input> | ||||
|             </el-form-item> | ||||
|           </el-col> | ||||
| 
 | ||||
|           <el-col :span="8"> | ||||
|             <el-form-item label="供应商:"> | ||||
|               <el-select | ||||
|                 v-model="filterQuery.fromCorp" | ||||
|                 style="width: 90%" | ||||
|                 filterable | ||||
|                 remote | ||||
|                 clearable="true" | ||||
|                 reserve-keyword | ||||
|                 placeholder="请选择供应商" | ||||
|                 :remote-method="findMethod" | ||||
|                 :loading="loading" | ||||
|               > | ||||
|                 <el-option | ||||
|                   v-for="item in fromOptions" | ||||
|                   :key="item.name" | ||||
|                   :label="item.name" | ||||
|                   :value="item.erpId" | ||||
|                 > | ||||
|                   <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 | ||||
|                 @current-change="handleSelectionChange"> | ||||
|         <el-table-column type="selection" width="55"></el-table-column> | ||||
|         <el-table-column label="序号" type="index"></el-table-column> | ||||
|         <el-table-column label="单据号" prop="billNo" show-overflow-tooltip></el-table-column> | ||||
|         <el-table-column label="来源" prop="fromType"> | ||||
|           <template slot-scope="scope"> | ||||
|             <span>{{ fromTypeMap[scope.row.fromType] }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="往来单位" prop="fromCorpName" width="220"> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="当前部门" prop="deptName" width="120"> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="当前仓库" prop="invName" width="120"> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="创建时间" prop="createTime" show-overflow-tooltip> | ||||
|           <template slot-scope="scope"> | ||||
|             <i class="el-icon-time"></i> | ||||
|             <span>{{ scope.row.createTime }}</span> | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|         <el-table-column label="操作" width="150"> | ||||
|           <template slot-scope="scope"> | ||||
|             <el-button | ||||
|               type="text" | ||||
|               size="small" | ||||
|               @click.native.stop="deleteDialog(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-tabs type="border-card" style="margin: 15px"> | ||||
|       <!--单据扫码明细--> | ||||
|       <el-tab-pane> | ||||
|         <span slot="label">预验收库存详情</span> | ||||
|         <el-form :model="codeQuery" class="query-form" size="mini" label-width="100px"> | ||||
| 
 | ||||
|           <el-row> | ||||
|             <el-col :span="11"> | ||||
|               <el-form-item class="query-form-item" label="UDI码:"> | ||||
|                 <el-input | ||||
|                   v-model="codeQuery.code" | ||||
|                   placeholder="请输入UDI码" | ||||
|                   clearable | ||||
|                 > | ||||
|                 </el-input> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|             <el-col :span="11"> | ||||
|               <el-form-item> | ||||
|                 <el-button-group> | ||||
|                   <el-button | ||||
|                     type="primary" | ||||
|                     icon="el-icon-refresh" | ||||
|                     @click="onCodeReset" | ||||
|                   >重置 | ||||
|                   </el-button> | ||||
|                   <el-button type="primary" @click="onCodeSubmit" | ||||
|                              icon="el-icon-search" | ||||
|                   >查询 | ||||
|                   </el-button | ||||
|                   > | ||||
|                 </el-button-group> | ||||
|               </el-form-item> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
| 
 | ||||
| 
 | ||||
|         </el-form> | ||||
| 
 | ||||
|         <el-table v-loading="codeDetailLoading" :data="codeDetailList" style="width: 100%" border | ||||
|                   row-key="id" | ||||
|         > | ||||
|           <el-table-column label="序号" type="index"></el-table-column> | ||||
|           <el-table-column | ||||
|             label="UDI码" | ||||
|             prop="code" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="产品名称" | ||||
|             prop="productName" | ||||
|             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="batchNo" | ||||
|             show-overflow-tooltip | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="序列号" | ||||
|             prop="serialNo" | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="扫码数量" | ||||
|             prop="reCount" | ||||
|           ></el-table-column> | ||||
|           <el-table-column | ||||
|             label="实际数量" | ||||
|             prop="reCount" | ||||
|           ></el-table-column> | ||||
|         </el-table> | ||||
|         <pagination | ||||
|           v-show="codeTotal>0" | ||||
|           :total="codeTotal" | ||||
|           :page.sync="codeQuery.page" | ||||
|           :limit.sync="codeQuery.limit" | ||||
|           @pagination="getCodeDetailList" | ||||
|         /> | ||||
|       </el-tab-pane> | ||||
|     </el-tabs> | ||||
| 
 | ||||
|   </div> | ||||
| </template> | ||||
| 
 | ||||
| <script> | ||||
| import { | ||||
|   deleterPrein, | ||||
|   filterPrein, filterDetail | ||||
| } from "@/api/inventory/invPreInSearch"; | ||||
| import {getLocalJoinByUser} from "@/api/basic/busType"; | ||||
| import {isBlank} from "@/utils/strUtil"; | ||||
| import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain"; | ||||
| 
 | ||||
| 
 | ||||
| const formJson = { | ||||
|   site_id: "", | ||||
|   site_name: "", | ||||
|   describe: "", | ||||
|   ads: [], | ||||
| }; | ||||
| 
 | ||||
| export default { | ||||
|   name: "InvPreInSerach", | ||||
|   data() { | ||||
|     return { | ||||
|       showSearch: true, | ||||
|       filterQuery: { | ||||
|         id: "", | ||||
|         billNo: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         startTime: null, | ||||
|         endTime: null, | ||||
|       }, | ||||
|       invList: [], | ||||
|       list: [], | ||||
|       total: 0, | ||||
|       loading: false, | ||||
|       index: null, | ||||
|       enableDept: false, | ||||
|       fromTypeMap: { | ||||
|         "1": "UDIMS平台", | ||||
|         "2": "网页新增", | ||||
|         "3": "pda即时校验", | ||||
|         "4": "pda未校验", | ||||
|         "5": "pc端扫码精灵", | ||||
|         "6": "缺量补录单据", | ||||
|         "7": "UDI供应商平台", | ||||
|         "8": "平衡补录单据", | ||||
|         "10": "手动补单", | ||||
|         "11": "仓库盘点" | ||||
|       }, | ||||
|       deleteData: { | ||||
|         orderId: null, | ||||
|       }, | ||||
|       dialogTableVisible: false, | ||||
|       formLoading: false, | ||||
|       dialogVisible: false, | ||||
|       formData: formJson, | ||||
|       deleteLoading: false, | ||||
|       busTypes: [], | ||||
|       currentRow: {}, | ||||
|       actDateRange: [], | ||||
|       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]); | ||||
|             }, | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
|       codeQuery: { | ||||
|         orderId: null, | ||||
|         page: 1, | ||||
|         limit: 10 | ||||
|       }, | ||||
|       codeTotal: 0, | ||||
|       codeDetailLoading: false, | ||||
|       codeDetailList: [], | ||||
|       fromOptions: [], | ||||
|     }; | ||||
|   }, | ||||
|   components: {}, | ||||
|   methods: { | ||||
|     onReset() { | ||||
|       this.$router.push({ | ||||
|         path: "", | ||||
|       }); | ||||
|       this.filterQuery = { | ||||
|         id: "", | ||||
|         billNo: null, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|         startTime: null, | ||||
|         endTime: null, | ||||
|       }; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     onSubmit() { | ||||
|       this.loading = true; | ||||
|       if (this.actDateRange !== null) { | ||||
|         this.filterQuery.startTime = this.actDateRange[0]; | ||||
|         this.filterQuery.endTime = this.actDateRange[1]; | ||||
|       } else { | ||||
|         this.filterQuery.startTime = null; | ||||
|         this.filterQuery.endTime = null; | ||||
|       } | ||||
|       this.filterQuery.page = 1; | ||||
|       this.getList(); | ||||
|     }, | ||||
|     hideSearch() { | ||||
|       this.showSearch = !this.showSearch; | ||||
|     }, | ||||
|     getBusType() { | ||||
|       let query = { | ||||
|         code: this.filterQuery.invCode, | ||||
|         enabled: true, | ||||
|       }; | ||||
|       getLocalJoinByUser(query) | ||||
|         .then((response) => { | ||||
|           this.busTypes = response.data.list || []; | ||||
|           this.filterQuery.action = this.busTypes[0].action; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     handleSelectionChange(val) { | ||||
|       this.currentRow = val; | ||||
|       this.getOrderDetails(); | ||||
|     }, | ||||
| 
 | ||||
|     getOrderDetails() { | ||||
|       this.codeQuery.page = 1; | ||||
|       this.getCodeDetailList(); | ||||
|     }, | ||||
|     clearDetailList() { | ||||
|       this.codeDetailList = []; | ||||
|       this.codeTotal = 0; | ||||
|     }, | ||||
|     //获取订单列表 | ||||
|     getList() { | ||||
|       this.loading = true; | ||||
|       this.currentRow = {billNo: ""}; | ||||
|       this.clearDetailList(); | ||||
|       filterPrein(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); | ||||
|           } | ||||
|         }) | ||||
|         .catch((error) => { | ||||
|           this.$message.error(error.message) | ||||
|           this.loading = false; | ||||
|           this.list = []; | ||||
|           this.total = 0; | ||||
|         }); | ||||
|     }, | ||||
|     deleteOrders(data) { | ||||
|       this.loading = true; | ||||
|       let delQuery = { | ||||
|         billNo: data, | ||||
|       } | ||||
|       deleterPrein(delQuery) | ||||
|         .then((response) => { | ||||
| 
 | ||||
|           if (response.code == 20000) { | ||||
|             this.getList(); | ||||
|             this.$message({ | ||||
|               type: "success", | ||||
|               message: "删除成功!", | ||||
|             }); | ||||
|           } else if (response.code == 520) { | ||||
|             this.$message.error("新增扫码单据列表已不存在该扫码单据!"); | ||||
|             this.getList(); | ||||
|           } | ||||
| 
 | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     deleteDialog(row) { | ||||
|       this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", { | ||||
|         confirmButtonText: "确定", | ||||
|         cancelButtonText: "取消", | ||||
|         type: "warning", | ||||
|       }) | ||||
|         .then(() => { | ||||
|           this.deleteOrders(row.billNo); | ||||
|         }) | ||||
|         .catch(() => { | ||||
|         }); | ||||
|     }, | ||||
|     onCodeReset() { | ||||
|       this.codeQuery = { | ||||
|         orderIdFk: null, | ||||
|         page: 1, | ||||
|         limit: 10 | ||||
|       }; | ||||
|       this.getCodeDetailList(); | ||||
|     }, | ||||
|     onCodeSubmit() { | ||||
|       this.codeQuery.page = 1; | ||||
|       this.getCodeDetailList(); | ||||
|     }, | ||||
|     getCodeDetailList() { | ||||
|       if (isBlank(this.currentRow.billNo)) { | ||||
|         this.$message.error("请先选择需要查询的单据!") | ||||
|         return; | ||||
|       } | ||||
| 
 | ||||
|       this.codeQuery.orderId = this.currentRow.billNo; | ||||
|       this.codeDetailLoading = true; | ||||
|       filterDetail(this.codeQuery).then((res) => { | ||||
|         this.codeDetailLoading = false; | ||||
|         if (res.code === 20000) { | ||||
|           this.codeDetailList = res.data.list || []; | ||||
|           this.codeTotal = res.data.total || 0; | ||||
|         } else { | ||||
|           this.$message.error(res.message); | ||||
|           this.codeDetailList = []; | ||||
|           this.codeTotal = 0; | ||||
|         } | ||||
|       }).catch((error) => { | ||||
|         this.codeDetailLoading = true; | ||||
|         this.$message.error(error.message); | ||||
|         this.codeDetailList = []; | ||||
|         this.codeTotal = 0; | ||||
|       }) | ||||
|     }, | ||||
| 
 | ||||
|     findMethod(query) { | ||||
|       this.fromOptions = []; | ||||
|       let cQuery = { | ||||
|         key: query, | ||||
|         corpType: 2, | ||||
|         page: 1, | ||||
|         limit: 10, | ||||
|       }; | ||||
|       getBasicUnitMaintains(cQuery) | ||||
|         .then((response) => { | ||||
|           this.loading = false; | ||||
|           this.fromOptions = response.data.list || []; | ||||
|         }) | ||||
|         .catch(() => { | ||||
|           this.loading = false; | ||||
|           this.fromOptions = []; | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|   }, | ||||
|   filters: { | ||||
|     statusFilterType(status) { | ||||
|       const statusMap = { | ||||
|         false: "success", | ||||
|         true: "warning", | ||||
|       }; | ||||
|       return statusMap[status]; | ||||
|     }, | ||||
|   }, | ||||
|   mounted() { | ||||
|     document.body.ondrop = function (event) { | ||||
|       event.preventDefault(); | ||||
|       event.stopPropagation(); | ||||
|     }; | ||||
|   }, | ||||
|   created() { | ||||
|     this.getList(); | ||||
|   }, | ||||
| }; | ||||
| </script> | ||||
| 
 | ||||
| <style type="text/scss" lang="scss"> | ||||
| </style> | ||||
					Loading…
					
					
				
		Reference in New Issue