Merge branch '20231126-yw' into dev_ksck
						commit
						5a9cda84a3
					
				| @ -0,0 +1,66 @@ | |||||||
|  | import axios from '@/utils/request' | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 获取单据列表 | ||||||
|  |  * @param query | ||||||
|  |  * @returns {*} | ||||||
|  |  */ | ||||||
|  | export function getThrInvOrders(query) { | ||||||
|  |   return axios({ | ||||||
|  |     url: '/udiwms/thrsys/getThrInvOrders', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 获取单据明细列表 | ||||||
|  |  * @param query | ||||||
|  |  * @returns {*} | ||||||
|  |  */ | ||||||
|  | export function getThrInvOrderDetails(query) { | ||||||
|  |   return axios({ | ||||||
|  |     url: '/udiwms/thrsys/getThrInvOrderDetails', | ||||||
|  |     method: 'get', | ||||||
|  |     params: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 删除明细行 | ||||||
|  |  * @param query | ||||||
|  |  * @returns {*} | ||||||
|  |  */ | ||||||
|  | export function delThrInvOrderDetail(query) { | ||||||
|  |   return axios({ | ||||||
|  |     url: '/udiwms/thrsys/delThrInvOrderDetail', | ||||||
|  |     method: 'post', | ||||||
|  |     data: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /** | ||||||
|  |  * 删除单据 | ||||||
|  |  * @param query | ||||||
|  |  * @returns {*} | ||||||
|  |  */ | ||||||
|  | export function delThrInvOrder(query) { | ||||||
|  |   return axios({ | ||||||
|  |     url: '/udiwms/thrsys/delThrInvOrder', | ||||||
|  |     method: 'post', | ||||||
|  |     data: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | /** | ||||||
|  |  * 生成单据 | ||||||
|  |  * @param query | ||||||
|  |  * @returns {*} | ||||||
|  |  */ | ||||||
|  | export function generateOrder(query) { | ||||||
|  |   return axios({ | ||||||
|  |     url: '/udiwms/thrsys/generateOrder', | ||||||
|  |     method: 'post', | ||||||
|  |     data: query | ||||||
|  |   }) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| @ -0,0 +1,488 @@ | |||||||
|  | <template> | ||||||
|  |   <div> | ||||||
|  |     <el-card> | ||||||
|  |       <el-form :model="filterQuery" size="mini" label-width="100px" v-if="showSearch"> | ||||||
|  |         <el-row> | ||||||
|  |           <el-col :span="8"> | ||||||
|  |             <el-form-item label="单据号:"> | ||||||
|  |               <el-input v-model="filterQuery.billNo" style="width: 90%" placeholder="请输入单据号" clearable></el-input> | ||||||
|  |             </el-form-item> | ||||||
|  |           </el-col> | ||||||
|  |           <el-col :span="8"> | ||||||
|  |             <el-form-item label="外部系统:"> | ||||||
|  |               <el-select v-model="filterQuery.thirdSysFk" style="width: 90%" placeholder="请选择第三方系统" | ||||||
|  |                          clearable="true" @change="thirdSysChange"> | ||||||
|  |                 <el-option | ||||||
|  |                   v-for="item in thirdSys" | ||||||
|  |                   :key="item.thirdId" | ||||||
|  |                   :label="item.thirdName" | ||||||
|  |                   :value="item.thirdId"> | ||||||
|  |                   <span style="float: left;font-size: 13px">{{ item.thirdName }}</span> | ||||||
|  |                 </el-option> | ||||||
|  |               </el-select> | ||||||
|  |             </el-form-item> | ||||||
|  |           </el-col> | ||||||
|  |           <el-col :span="8"> | ||||||
|  |             <el-form-item label="单据类型:"> | ||||||
|  |               <el-select v-model="filterQuery.billType" style="width: 90%" placeholder="请选择第三方系统单据类型" | ||||||
|  |                          clearable="true"> | ||||||
|  |                 <el-option | ||||||
|  |                   v-for="item in originTypes" | ||||||
|  |                   :key="item.name" | ||||||
|  |                   :label="item.name" | ||||||
|  |                   :value="item.action"> | ||||||
|  |                   <span style="float: left;font-size: 13px">{{ item.name }}</span> | ||||||
|  |                   <span style="float: right; color: #8492a6; font-size: 13px;margin-left: 10px">{{ | ||||||
|  |                       item.thirdSysName | ||||||
|  |                     }}</span> | ||||||
|  |                 </el-option> | ||||||
|  |               </el-select> | ||||||
|  |             </el-form-item> | ||||||
|  |           </el-col> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         </el-row> | ||||||
|  |         <el-row> | ||||||
|  |           <el-col :span="8"> | ||||||
|  |             <el-form-item label="单据日期:"> | ||||||
|  |               <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-col> | ||||||
|  |         </el-row> | ||||||
|  |       </el-form> | ||||||
|  | 
 | ||||||
|  |       <div class="top-right-btn"> | ||||||
|  |         <el-button-group style="display:flex;"> | ||||||
|  |           <el-button icon="el-icon-view" type="primary" @click="hideSearch">显示/隐藏搜索栏</el-button> | ||||||
|  |           <el-button type="primary" icon="el-icon-refresh" @click="onReset">重置</el-button> | ||||||
|  |           <el-button type="primary" icon="el-icon-search" @click="getList">查询</el-button> | ||||||
|  |         </el-button-group> | ||||||
|  |       </div> | ||||||
|  | 
 | ||||||
|  |       <el-divider style="margin: 15px"></el-divider> | ||||||
|  |       <el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row | ||||||
|  |                 @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"></el-table-column> | ||||||
|  |         <el-table-column label="出入库类型" prop="mainAction"></el-table-column> | ||||||
|  |         <el-table-column label="第三方单据类型" prop="billType"></el-table-column> | ||||||
|  |         <el-table-column label="外部系统" prop="thirdSysFk"></el-table-column> | ||||||
|  |         <el-table-column label="单据状态" prop="status"></el-table-column> | ||||||
|  |         <el-table-column label="操作" width="160"> | ||||||
|  |           <template slot-scope="scope"> | ||||||
|  |             <el-button type="text" @click.native.stop="deleteDialog(scope.row)" | ||||||
|  |             >删除 | ||||||
|  |             </el-button> | ||||||
|  |             <el-button type="text" @click.native.stop="generateBill(scope.row)" | ||||||
|  |             >生成单据 | ||||||
|  |             </el-button> | ||||||
|  |           </template> | ||||||
|  |         </el-table-column> | ||||||
|  |       </el-table> | ||||||
|  |       <pagination | ||||||
|  |         v-show="total>0" | ||||||
|  |         :total="total" | ||||||
|  |         :page.sync="filterQuery.page" | ||||||
|  |         :limit.sync="filterQuery.limit" | ||||||
|  |         @pagination="getList" | ||||||
|  |       /> | ||||||
|  |     </el-card> | ||||||
|  |     <el-card class="el-card"> | ||||||
|  |       <el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row> | ||||||
|  |         <el-table-column label="序号" type="index" width="120"></el-table-column> | ||||||
|  |         <el-table-column label="物资编码" prop="relId"></el-table-column> | ||||||
|  |         <el-table-column label="第三方项目编码" prop="thrCode"></el-table-column> | ||||||
|  |         <el-table-column label="产品通用名" prop="cpmctymc" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |         <el-table-column label="DI" prop="nameCode" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |         <el-table-column label="规格型号" prop="ggxh" show-overflow-tooltip="true"></el-table-column> | ||||||
|  |         <el-table-column label="批次号" prop="batchNo"></el-table-column> | ||||||
|  |         <el-table-column label="计量单位" prop="measname"></el-table-column> | ||||||
|  |         <el-table-column label="价格" prop="price"></el-table-column> | ||||||
|  |         <el-table-column label="生产日期" prop="productDate"></el-table-column> | ||||||
|  |         <el-table-column label="失效日期" prop="expireDate"></el-table-column> | ||||||
|  | 
 | ||||||
|  |         <el-table-column label="医疗器械注册备案人" prop="ylqxzcrbarmc"></el-table-column> | ||||||
|  |         <el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column> | ||||||
|  | 
 | ||||||
|  |         <el-table-column label="入库数量" prop="inCount"></el-table-column> | ||||||
|  |         <el-table-column label="出库数量" prop="outCount"></el-table-column> | ||||||
|  |         <el-table-column label="实际数量" prop="reCount"></el-table-column> | ||||||
|  |         <el-table-column label="操作" width="60"> | ||||||
|  |           <template slot-scope="scope"> | ||||||
|  |             <el-button type="text" @click.native.stop="deleteDetailDialog(scope.row)" | ||||||
|  |             >删除 | ||||||
|  |             </el-button> | ||||||
|  |           </template> | ||||||
|  |         </el-table-column> | ||||||
|  |       </el-table> | ||||||
|  |     </el-card> | ||||||
|  | 
 | ||||||
|  |     <el-dialog | ||||||
|  |       :close-on-click-modal="false" | ||||||
|  |       :close-on-press-escape="false" | ||||||
|  |       title="生成单据" | ||||||
|  |       :visible.sync="thrInvOrderGenerateVisible" | ||||||
|  |       width="60%" | ||||||
|  |       v-if="thrInvOrderGenerateVisible" | ||||||
|  |       :close="closeAddDialog" | ||||||
|  |       class="dialog-two" | ||||||
|  |       top="5vh" | ||||||
|  |     > | ||||||
|  | 
 | ||||||
|  |       <thrInvOrderGenerate | ||||||
|  |         :generateOrderDate=thisData | ||||||
|  |         :originTypes=originTypes | ||||||
|  |         :closeAddDialog="closeAddDialog"> | ||||||
|  |       </thrInvOrderGenerate> | ||||||
|  |     </el-dialog> | ||||||
|  |   </div> | ||||||
|  | </template> | ||||||
|  | <script> | ||||||
|  | import {delThrInvOrder, getThrInvOrders, getThrInvOrderDetails,delThrInvOrderDetail} from "@/api/thrsys/thrInvOrder"; | ||||||
|  | import {getBussinessType} from "@/api/basic/bussinessType"; | ||||||
|  | import {getOriginBusType} from "@/api/basic/busOriginType"; | ||||||
|  | import {getBasicThirdSys, filterDetailByKey} from "@/api/basic/basicThirdSys"; | ||||||
|  | import {selectIp} from "@/api/param/systemParamConfig"; | ||||||
|  | import thrInvOrderGenerate from "@/views/thirdSys/invOrder/thrInvOrderGenerate"; | ||||||
|  | 
 | ||||||
|  | export default { | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       thisData:null, | ||||||
|  |       showSearch: true, | ||||||
|  |       filterQuery: { | ||||||
|  |         billType: null, | ||||||
|  |         billNo: "", | ||||||
|  |         // originType: null, | ||||||
|  |         thirdSysFk: "", | ||||||
|  |         page: 1, | ||||||
|  |         limit: 10, | ||||||
|  |         // corpName: null, | ||||||
|  |       }, | ||||||
|  |       thrInvOrderGenerateVisible: false, | ||||||
|  |       total: 0, | ||||||
|  |       thirdSys: [], | ||||||
|  |       thirdSysDetail: null, | ||||||
|  |       busTypes: [], | ||||||
|  |       originTypes: [], | ||||||
|  |       list: [], | ||||||
|  |       detailList: [], | ||||||
|  |       uploadFileUrl: null, | ||||||
|  |       fileList: [], | ||||||
|  |       uploadData: { | ||||||
|  |         thirdSys: "thirdId", | ||||||
|  |       }, | ||||||
|  |       loading: false, | ||||||
|  |       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]); | ||||||
|  |             }, | ||||||
|  |           }, | ||||||
|  |         ], | ||||||
|  |       }, | ||||||
|  |     }; | ||||||
|  |   }, | ||||||
|  |   methods: { | ||||||
|  |     onReset() { | ||||||
|  |       this.$router.push({ | ||||||
|  |         path: "", | ||||||
|  |       }); | ||||||
|  |       this.filterQuery = { | ||||||
|  |         billNo: "", | ||||||
|  |         thirdSysFk: "", | ||||||
|  |         // billFlag: null, | ||||||
|  |         billType: null, | ||||||
|  |         startDate: null, | ||||||
|  |         endDate: null, | ||||||
|  |         page: 1, | ||||||
|  |         limit: 10, | ||||||
|  |         // corpName: null, | ||||||
|  |       }; | ||||||
|  |       this.actDateRange = []; | ||||||
|  |       this.getList(); | ||||||
|  |     }, | ||||||
|  |     hideSearch() { | ||||||
|  |       this.showSearch = !this.showSearch; | ||||||
|  |     }, | ||||||
|  |     getList() { | ||||||
|  |       if (this.filterQuery.thirdSysFk == null) { | ||||||
|  |         this.$message.warning("请先选择第三方系统!") | ||||||
|  |         return; | ||||||
|  |       } | ||||||
|  |       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; | ||||||
|  |       getThrInvOrders(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) { | ||||||
|  |       if (row ==null) return; | ||||||
|  |       let query = {orderIdFk: row.billNo}; | ||||||
|  |       getThrInvOrderDetails(query) | ||||||
|  |         .then((response) => { | ||||||
|  |           if (response.code == 20000) { | ||||||
|  |             this.detailList = response.data.list || []; | ||||||
|  |           } else { | ||||||
|  |             this.$message.error(response.message); | ||||||
|  |           } | ||||||
|  |           this.loading = false; | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |           this.loading = false; | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |     }, | ||||||
|  |     generateBill(row){ | ||||||
|  |       this.thisData = row; | ||||||
|  |       this.thrInvOrderGenerateVisible = true; | ||||||
|  |     }, | ||||||
|  |     deleteDialog(row) { | ||||||
|  |       this.$confirm("此操作将永久删除该单据, 是否继续?", "提示", { | ||||||
|  |         confirmButtonText: "确定", | ||||||
|  |         cancelButtonText: "取消", | ||||||
|  |         type: "warning", | ||||||
|  |       }) | ||||||
|  |         .then(() => { | ||||||
|  |           let dQuery = { | ||||||
|  |             billNo: row.billNo, | ||||||
|  |           }; | ||||||
|  |           delThrInvOrder(dQuery) | ||||||
|  |             .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(() => { | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  |     deleteDetailDialog(row){ | ||||||
|  |       this.$confirm("此操作将永久删除该单据明细行, 是否继续?", "提示", { | ||||||
|  |         confirmButtonText: "确定", | ||||||
|  |         cancelButtonText: "取消", | ||||||
|  |         type: "warning", | ||||||
|  |       }) | ||||||
|  |         .then(() => { | ||||||
|  |           let dQuery = { | ||||||
|  |             id: row.id, | ||||||
|  |           }; | ||||||
|  |           delThrInvOrderDetail(dQuery) | ||||||
|  |             .then((response) => { | ||||||
|  |               this.loading = false; | ||||||
|  |               if (response.code == 20000) { | ||||||
|  |                 this.$message.success("删除成功"); | ||||||
|  |                 row.billNo = row.orderIdFk; | ||||||
|  |                 this.handleDetail(row); | ||||||
|  |               } else { | ||||||
|  |                 this.$message.error(response.message); | ||||||
|  |               } | ||||||
|  |             }) | ||||||
|  |             .catch(() => { | ||||||
|  |               this.loading = false; | ||||||
|  |             }); | ||||||
|  | 
 | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  |     getBasicThirdSys() { | ||||||
|  |       let query = { | ||||||
|  |         enabled: true, | ||||||
|  |       }; | ||||||
|  |       getBasicThirdSys(query) | ||||||
|  |         .then((response) => { | ||||||
|  |           this.thirdSys = response.data.list || []; | ||||||
|  |           this.filterQuery.thirdSysFk = this.thirdSys[0].thirdId; | ||||||
|  |           this.uploadData.thirdSys = this.filterQuery.thirdSysFk; | ||||||
|  |           this.selectSysParam(); | ||||||
|  |           this.getThirdSysDetail(); | ||||||
|  |           this.getBusType(); | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |           this.loading = false; | ||||||
|  |           this.list = []; | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  |     handleChange(response, files, fileList) { | ||||||
|  |       console.log(response); | ||||||
|  |       if (response.code != 20000) { | ||||||
|  |         this.$message.error(response.message); | ||||||
|  |       } else { | ||||||
|  |         console.log(files[0] + "\n" + this.fileList[0] + "\n" + fileList[0]); | ||||||
|  |         this.$message.success("文件上传成功,请稍后刷新查看!"); | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     selectSysParam() { | ||||||
|  |       let query = { | ||||||
|  |         key: "thirdIpUrl", | ||||||
|  |         thirdSysFk: this.filterQuery.thirdSysFk | ||||||
|  |       }; | ||||||
|  |       selectIp(query).then((response) => { | ||||||
|  |         if (response.code == 20000) { | ||||||
|  |           this.uploadFileUrl = response.data.thridUrl + "/udiwms/erp/pi/upload"; | ||||||
|  |         } | ||||||
|  |       }); | ||||||
|  |     }, | ||||||
|  |     thirdSysChange() { | ||||||
|  |       this.uploadData.thirdSys = this.filterQuery.thirdSysFk; | ||||||
|  |       this.getThirdSysDetail(); | ||||||
|  |       this.filterQuery.billAction = ""; | ||||||
|  |       this.getBusType(); | ||||||
|  |     }, | ||||||
|  |     getThirdSysDetail() { | ||||||
|  |       let query = { | ||||||
|  |         thirdSysFk: this.filterQuery.thirdSysFk, | ||||||
|  |         key: "orderQueryUrl", | ||||||
|  |       }; | ||||||
|  |       filterDetailByKey(query) | ||||||
|  |         .then((response) => { | ||||||
|  |           this.thirdSysDetail = response.data; | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |           this.loading = false; | ||||||
|  |           this.list = []; | ||||||
|  |         }); | ||||||
|  | 
 | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     getActionName(action) { | ||||||
|  |       for (let i = 0; i < this.busTypes.length; i++) { | ||||||
|  |         if (this.busTypes[i].action === action) { | ||||||
|  |           return this.busTypes[i].name; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     getlocalName(action) { | ||||||
|  |       for (let i = 0; i < this.busTypes.length; i++) { | ||||||
|  |         if (this.busTypes[i].action === action) { | ||||||
|  |           return this.busTypes[i].localName; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     getBusType() { | ||||||
|  |       let query = { | ||||||
|  |         enabled: true, | ||||||
|  |         thirdSys: this.filterQuery.thirdSysFk, | ||||||
|  |       }; | ||||||
|  |       getBussinessType(query) | ||||||
|  |         .then((response) => { | ||||||
|  |           this.busTypes = response.data.list || []; | ||||||
|  |           this.getList(); | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |         }); | ||||||
|  |       getOriginBusType(query) | ||||||
|  |         .then((response) => { | ||||||
|  |           this.originTypes = response.data.list || []; | ||||||
|  |           // this.filterQuery.originType = this.originTypes[0].action; | ||||||
|  |           // this.getList(); | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  |     closeAddDialog(val) { | ||||||
|  |       this.thrInvOrderGenerateVisible = false; | ||||||
|  |       if (val) { | ||||||
|  |         this.getList(); | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  |   components: {thrInvOrderGenerate}, | ||||||
|  |   mounted() { | ||||||
|  |   }, | ||||||
|  |   created() { | ||||||
|  |     this.getBasicThirdSys(); | ||||||
|  |     let end = new Date(); | ||||||
|  |     let start = new Date(); | ||||||
|  |     start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); | ||||||
|  |     this.actDateRange = [start, end]; | ||||||
|  |   }, | ||||||
|  | }; | ||||||
|  | </script> | ||||||
|  | <style scoped> | ||||||
|  | .itemTag { | ||||||
|  |   float: left; | ||||||
|  |   text-align: left; | ||||||
|  |   margin-top: 10px; | ||||||
|  |   width: 25%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .text { | ||||||
|  |   font-size: 13px; | ||||||
|  |   font-family: "Microsoft YaHei"; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .el-row { | ||||||
|  |   display: flex; | ||||||
|  |   flex-wrap: wrap; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .el-col { | ||||||
|  |   border-radius: 4px; | ||||||
|  |   flex-wrap: wrap; | ||||||
|  | } | ||||||
|  | </style> | ||||||
|  | 
 | ||||||
| @ -0,0 +1,278 @@ | |||||||
|  | <template> | ||||||
|  |   <el-form :model="generateOrderDate" label-width="120px"> | ||||||
|  |     <el-row type="flex"> | ||||||
|  |       <el-col :span="11" type="flex"> | ||||||
|  |         <el-form-item label="来源单据号:" prop="code"> | ||||||
|  |           <el-input style="width: 90%" size="small" placeholder="请输入来源单据号" | ||||||
|  |                     disabled | ||||||
|  |                     v-model.trim="generateOrderDate.billNo"></el-input> | ||||||
|  |         </el-form-item> | ||||||
|  |       </el-col> | ||||||
|  |     </el-row> | ||||||
|  |     <el-row> | ||||||
|  |       <el-col :span="11"> | ||||||
|  |         <el-form-item prop="invCode" label="当前仓库:"> | ||||||
|  |           <el-select | ||||||
|  |             v-model="generateOrderDate.invCode" | ||||||
|  |             placeholder="当前仓库" | ||||||
|  |             style="width: 90%" | ||||||
|  |             :disabled="corpOrderIdDisabled" | ||||||
|  |             @change="changeInv" | ||||||
|  |             filterable | ||||||
|  |           > | ||||||
|  |             <el-option | ||||||
|  |               v-for="item in curInvOptions" | ||||||
|  |               :key="item.name" | ||||||
|  |               :label="item.name" | ||||||
|  |               :value="item.code" | ||||||
|  |             > | ||||||
|  |               <span style="float: left">{{ item.name }}</span> | ||||||
|  |               <span style="float: right; color: #8492a6; font-size: 13px">{{ | ||||||
|  |                   item.warehouseName | ||||||
|  |                 }}</span> | ||||||
|  |             </el-option> | ||||||
|  |           </el-select> | ||||||
|  |         </el-form-item> | ||||||
|  |       </el-col> | ||||||
|  | 
 | ||||||
|  |       <el-col :span="11"> | ||||||
|  |         <el-form-item prop="action" label="单据类型:"> | ||||||
|  |           <el-select | ||||||
|  |             v-model="generateOrderDate.action" | ||||||
|  |             placeholder="请选择单据类型" | ||||||
|  |             :disabled="corpOrderIdDisabled" | ||||||
|  |             style="width: 90%" | ||||||
|  |             filterable | ||||||
|  |             @change="actionChange" | ||||||
|  |           > | ||||||
|  |             <el-option | ||||||
|  |               v-for="item in busTypeOptions" | ||||||
|  |               :key="item.name" | ||||||
|  |               :label="item.name" | ||||||
|  |               :value="item.action" | ||||||
|  |             > | ||||||
|  |               <span style="float: left">{{ item.name }}</span> | ||||||
|  |             </el-option> | ||||||
|  |           </el-select> | ||||||
|  |         </el-form-item> | ||||||
|  |       </el-col> | ||||||
|  |     </el-row> | ||||||
|  |     <el-row type="flex"> | ||||||
|  |       <el-form-item | ||||||
|  |       prop="fromCorp" | ||||||
|  |       label="往来信息:"> | ||||||
|  |       <el-select | ||||||
|  |         v-model="generateOrderDate.fromCorp" | ||||||
|  |         filterable | ||||||
|  |         remote | ||||||
|  |         clearable | ||||||
|  |         reserve-keyword | ||||||
|  |         style="width: 90%" | ||||||
|  |         placeholder="请输入往来信息" | ||||||
|  |         :remote-method="findMethod" | ||||||
|  |         :loading="loading" | ||||||
|  |         :disabled="corpOrderIdDisabled" | ||||||
|  |       > | ||||||
|  |         <el-option | ||||||
|  |           v-for="item in fromOptions" | ||||||
|  |           :key="item.erpId" | ||||||
|  |           :label="item.name" | ||||||
|  |           :value="item.erpId" | ||||||
|  |         > | ||||||
|  |           <span style="float: left">{{ item.name }}</span> | ||||||
|  |         </el-option> | ||||||
|  |       </el-select> | ||||||
|  |       </el-form-item> | ||||||
|  |     </el-row> | ||||||
|  | 
 | ||||||
|  |     <div style='text-align: center; margin-bottom: 10px;'> | ||||||
|  |       <el-button type="primary" @click="generateOrder">提交</el-button> | ||||||
|  |       <el-button type="primary" @click="closeAddDialog">取消</el-button> | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  |   </el-form> | ||||||
|  | </template> | ||||||
|  | 
 | ||||||
|  | <script> | ||||||
|  | import {generateOrder} from "@/api/thrsys/thrInvOrder"; | ||||||
|  | import { findByFrom, findInvByUser } from '../../../api/system/invSubWarehouse' | ||||||
|  | import { parseTime } from '../../../utils/coTools' | ||||||
|  | import {findByInvUser, getBusTypeList} from "@/api/basic/busType"; | ||||||
|  | import { getBasicUnitMaintains } from '../../../api/basic/basicUnitMaintain' | ||||||
|  | 
 | ||||||
|  | export default { | ||||||
|  |   name: 'thrInvOrderGenerate', | ||||||
|  |   props: { | ||||||
|  |     generateOrderDate: { | ||||||
|  |       type: Object, | ||||||
|  |       required: true, | ||||||
|  |     }, | ||||||
|  |     closeAddDialog: { | ||||||
|  |       type: Function, | ||||||
|  |       required: true, | ||||||
|  |     }, | ||||||
|  |     originTypes: { | ||||||
|  |       type: Object, | ||||||
|  |       required: true, | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |   data() { | ||||||
|  |     return { | ||||||
|  |       thirdSys: [], | ||||||
|  |       options: [{ | ||||||
|  |         value: 1, | ||||||
|  |         label: '客户信息' | ||||||
|  |       }, { | ||||||
|  |         value: 2, | ||||||
|  |         label: '供应商信息' | ||||||
|  |       }, | ||||||
|  |         { | ||||||
|  |           value: 3, | ||||||
|  |           label: '内部科室' | ||||||
|  |         }, { | ||||||
|  |           value: 4, | ||||||
|  |           label: '特殊往来' | ||||||
|  |         }], | ||||||
|  | 
 | ||||||
|  |       curInvOptions: [], | ||||||
|  |       fromOptions: [], | ||||||
|  |       busTypeOptions: [], | ||||||
|  |       fromInvOptions: [], | ||||||
|  |       curPreInInvOptions: [],    //预验收仓库 | ||||||
|  |       curPreInSpaceOptions: [],  //预验收货位 | ||||||
|  |       curPreSpaceOptions: [],    //寄售货位 | ||||||
|  |       curSpaceOptions: [], //当前货位 | ||||||
|  |       curAction: { | ||||||
|  |         corpType: 0, | ||||||
|  |         genUnit: false, | ||||||
|  |         checkWebNew: null, | ||||||
|  |         mainAction: null, | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |   }, | ||||||
|  |   methods:{ | ||||||
|  |     //提交 | ||||||
|  |     generateOrder(){ | ||||||
|  |       generateOrder(this.generateOrderDate).then((res) => { | ||||||
|  |         if (res.code == 20000) { | ||||||
|  |           this.$message.success("生成成功!"); | ||||||
|  |         } else | ||||||
|  |           this.$message.error(res.message); | ||||||
|  |       }).catch((error) => { | ||||||
|  |         this.$message.error(error.message); | ||||||
|  |       }) | ||||||
|  |     }, | ||||||
|  |     //获取用户仓库列表 | ||||||
|  |     findInvListByUser() { | ||||||
|  |       this.curInvOptions = []; | ||||||
|  |       findInvByUser() | ||||||
|  |         .then((response) => { | ||||||
|  |           this.curInvOptions = response.data || []; | ||||||
|  |           if ( | ||||||
|  |             this.curInvOptions != null && | ||||||
|  |             this.curInvOptions.length > 0 && | ||||||
|  |             this.generateOrderDate.invWarehouseCode == null | ||||||
|  |           ) { | ||||||
|  |             //this.orderFormData.invCode = this.curInvOptions[0].code; | ||||||
|  |             this.getBusTypeByInv(); | ||||||
|  |           } | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  |     //仓库改变 | ||||||
|  |     changeInv(row) { | ||||||
|  |       this.generateOrderDate.action = null; | ||||||
|  |       this.generateOrderDate.checkPreInOrders = null; | ||||||
|  |       this.checkPreInArray = []; | ||||||
|  |       if (this.documentShow) { | ||||||
|  |         this.documentShow = false; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  |       this.curSpaceShow = false; | ||||||
|  |       this.preInSpaceShow = false; | ||||||
|  |       this.preSpaceShow = false; | ||||||
|  |       this.generateOrderDate.curSpaceCode = false; | ||||||
|  |       this.generateOrderDate.checkPreInSpaceCode = false; | ||||||
|  |       this.generateOrderDate.preCurSpaceCode = false; | ||||||
|  |       this.getBusTypeByInv(); | ||||||
|  |     }, | ||||||
|  |     //单据类型改变 | ||||||
|  |     actionChange(item) { | ||||||
|  |       this.generateOrderDate.checkPreInOption = null; | ||||||
|  |       this.generateOrderDate.checkPreInOrders = null; | ||||||
|  |       this.checkPreInArray = []; | ||||||
|  |       this.curAction = this.getActionItem(item); | ||||||
|  |       this.bizShow = false; | ||||||
|  |       //2. 切换往来仓库 | ||||||
|  |       this.generateOrderDate.fromInvCode = null; | ||||||
|  |       this.findMethod(); | ||||||
|  |     }, | ||||||
|  |     //根据仓库,用户获取单据类型 | ||||||
|  |     getBusTypeByInv() { | ||||||
|  |       let query = { | ||||||
|  |         code: this.generateOrderDate.invCode, | ||||||
|  |         editType: 2    //可编辑 | ||||||
|  |       }; | ||||||
|  |       findByInvUser(query) | ||||||
|  |         .then((response) => { | ||||||
|  |           this.busTypeOptions = response.data || []; | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  |     //获取当前单据类型 | ||||||
|  |     getActionItem(action) { | ||||||
|  |       for (let i = 0; i < this.busTypeOptions.length; i++) { | ||||||
|  |         if (this.busTypeOptions[i].action == action) { | ||||||
|  |           return this.busTypeOptions[i]; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|  |     //获取往来单位候选列表 | ||||||
|  |     findMethod(query) { | ||||||
|  |       this.fromOptions = []; | ||||||
|  |       let cQuery = { | ||||||
|  |         key: query, | ||||||
|  |         corpType: 4, | ||||||
|  |         outType: null, | ||||||
|  |         page: 1, | ||||||
|  |         limit: 20, | ||||||
|  |       }; | ||||||
|  |       getBasicUnitMaintains(cQuery) | ||||||
|  |         .then((response) => { | ||||||
|  |           this.loading = false; | ||||||
|  |           this.fromOptions = response.data.list || []; | ||||||
|  |         }) | ||||||
|  |         .catch(() => { | ||||||
|  |           this.loading = false; | ||||||
|  |         }); | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |   }, | ||||||
|  |   created() { | ||||||
|  |     //页面初始化 | ||||||
|  |     this.generateOrderDate.code = ""; | ||||||
|  |     this.generateOrderDate.orderType = this.viewType; | ||||||
|  |       //新增页面 | ||||||
|  |       this.corpOrderIdDisabled = false; | ||||||
|  |       let date = new Date(); | ||||||
|  |       this.generateOrderDate.createTime = parseTime( | ||||||
|  |         date, | ||||||
|  |         "{y}-{m}-{d} {h}:{i}:{s}" | ||||||
|  |       ); | ||||||
|  |       this.generateOrderDate.corpOrderId = | ||||||
|  |         parseTime(date, "{y}{m}{d}{h}{i}{s}") + | ||||||
|  |         Math.ceil(Math.random() * 89 + 10); | ||||||
|  |       this.generateOrderDate.deptCode = this.$store.getters.deptCode; | ||||||
|  |       this.generateOrderDate.invCode = this.$store.getters.locInvCode; | ||||||
|  |       this.findInvListByUser(); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <style scoped> | ||||||
|  | 
 | ||||||
|  | </style> | ||||||
					Loading…
					
					
				
		Reference in New Issue