|  |  |  | <template> | 
					
						
							|  |  |  |   <VxeGrid ref="qgpgd" v-bind="gridOptions" @cell-click="cellClick" @current-change="getCurrentData" @checkbox-change="checkboxChange" @checkbox-all="checkboxAll" /> | 
					
						
							|  |  |  | </template> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  | import { VXETable } from 'vxe-table' | 
					
						
							|  |  |  | import paoWanPgdConfig from './pgdTable' | 
					
						
							|  |  |  | import {getDw, getForemanByWorker, getPgd, getPgd2, getYdjhByZtOrForeman, zx} from "@/api/zyjh"; | 
					
						
							|  |  |  | import {EventBus} from "@/event-bus"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default { | 
					
						
							|  |  |  |   name: 'QgePgd', | 
					
						
							|  |  |  |   props: { | 
					
						
							|  |  |  |     worker:{ | 
					
						
							|  |  |  |       type:Function, | 
					
						
							|  |  |  |       default:function (){} | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     workers:{ | 
					
						
							|  |  |  |       type:Array, | 
					
						
							|  |  |  |       default:[] | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     dw:{ | 
					
						
							|  |  |  |       type:Array, | 
					
						
							|  |  |  |       default: [] | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   data() { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |       gridOptions: {}, | 
					
						
							|  |  |  |       list: {}, | 
					
						
							|  |  |  |       currentWorker:null, | 
					
						
							|  |  |  |       zt:null, | 
					
						
							|  |  |  |       setExt:null, | 
					
						
							|  |  |  |       zyq:null, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   sockets:{ | 
					
						
							|  |  |  |     zyjhzx(data){ | 
					
						
							|  |  |  |       if (this.deviceId!==data.msg.deviceId&&data.msg.actionType!=='开始报工'){ | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       //工单号尾号长度
 | 
					
						
							|  |  |  |       const djhWhLengh=4 | 
					
						
							|  |  |  |       const tmpList=this.list.filter(item=>item.djh===data.msg.orderNumber||item.djh.slice(-djhWhLengh)===data.msg.orderNumber) | 
					
						
							|  |  |  |       if (tmpList.length>1){ | 
					
						
							|  |  |  |         this.list=tmpList | 
					
						
							|  |  |  |         this.gridOptions.data=tmpList | 
					
						
							|  |  |  |         this.$message.warning('短号有重复,请使用全工单号重新派工!!!') | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       let errorFlag=true | 
					
						
							|  |  |  |       for (const item of this.list) { | 
					
						
							|  |  |  |         if (item.djh===data.msg.orderNumber||item.djh.slice(-djhWhLengh)===data.msg.orderNumber){ | 
					
						
							|  |  |  |           const tmpArr=[{ | 
					
						
							|  |  |  |             id:item.id, | 
					
						
							|  |  |  |             qgfkry:this.$props.worker().userCode, | 
					
						
							|  |  |  |             zt:item.zt, | 
					
						
							|  |  |  |             dcCh:item.dcCh, | 
					
						
							|  |  |  |             dcPl:item.dcPl, | 
					
						
							|  |  |  |             tzbh:item.tzbh, | 
					
						
							|  |  |  |             sllph:item.sllph | 
					
						
							|  |  |  |           }] | 
					
						
							|  |  |  |           this.baogong(tmpArr,item) | 
					
						
							|  |  |  |           errorFlag=false | 
					
						
							|  |  |  |           break | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       if (errorFlag){ | 
					
						
							|  |  |  |         setTimeout(()=>{ | 
					
						
							|  |  |  |           EventBus.$emit('error', { | 
					
						
							|  |  |  |             msg:'识别失败' | 
					
						
							|  |  |  |           }) | 
					
						
							|  |  |  |         },3000) | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   created() { | 
					
						
							|  |  |  |     const {options,columns,setExt}=paoWanPgdConfig() | 
					
						
							|  |  |  |     this.setExt=setExt | 
					
						
							|  |  |  |     this.gridOptions = options | 
					
						
							|  |  |  |     this.gridOptions.columns = columns | 
					
						
							|  |  |  |     this.zyq=this.$route.query.zyq | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   methods: { | 
					
						
							|  |  |  |     baogong(tmpArr,data){ | 
					
						
							|  |  |  |       let ycldwInfo=null | 
					
						
							|  |  |  |       for (const dw of this.dw) { | 
					
						
							|  |  |  |         for (const info of dw.list) { | 
					
						
							|  |  |  |           if (data.dcCh===info.czbh&&data.dcPl===info.pl&&data.dcFd===info.fd&&data.tzbh===info.tlth){ | 
					
						
							|  |  |  |             ycldwInfo=info | 
					
						
							|  |  |  |             break | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       if (!ycldwInfo){ | 
					
						
							|  |  |  |         ycldwInfo={} | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       zx({ | 
					
						
							|  |  |  |         field:'qgfkrq', | 
					
						
							|  |  |  |         zxZtName:'QGFK', | 
					
						
							|  |  |  |         list:tmpArr, | 
					
						
							|  |  |  |         ycldwInfo:ycldwInfo | 
					
						
							|  |  |  |       }).then(res=>{ | 
					
						
							|  |  |  |         if (res.success){ | 
					
						
							|  |  |  |           window.localStorage.removeItem('zyjh') | 
					
						
							|  |  |  |           this.initData(this.$props.worker().userCode,'61') | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     initData(worker, zt) { | 
					
						
							|  |  |  |       this.currentWorker=worker | 
					
						
							|  |  |  |       this.zt=zt | 
					
						
							|  |  |  |       getForemanByWorker({worker:worker}).then(result=>{ | 
					
						
							|  |  |  |         getDw({type:'llj'}).then(res=>{ | 
					
						
							|  |  |  |           this.gridOptions.ycldw=res.data | 
					
						
							|  |  |  |           getYdjhByZtOrForeman({foreman:result.data.userCode,zt:zt,field:'qgpgry',zyq:this.zyq}).then(res => { | 
					
						
							|  |  |  |             res.data.forEach(item=>{ | 
					
						
							|  |  |  |               item._lx=item.tzbh.substring(5,6) | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |             this.list=res.data | 
					
						
							|  |  |  |             this.gridOptions.data = res.data | 
					
						
							|  |  |  |             this.setExt('workers',this.$props.workers) | 
					
						
							|  |  |  |           }) | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     getCurrentData() { | 
					
						
							|  |  |  |       const data = this.$refs.qgpgd.getCurrentRecord() | 
					
						
							|  |  |  |       window.localStorage.setItem("qgfk", JSON.stringify(data)) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     checkboxAll({checked}) { | 
					
						
							|  |  |  |       const worker = this.$props.worker() | 
					
						
							|  |  |  |       if (!worker) { | 
					
						
							|  |  |  |         this.$message.warning('请选择操作人') | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       if (checked) { | 
					
						
							|  |  |  |         this.fankgui(worker) | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     checkboxChange({checked, row}) { | 
					
						
							|  |  |  |       const worker = this.$props.worker() | 
					
						
							|  |  |  |       if (!worker) { | 
					
						
							|  |  |  |         this.$message.warning('请选择操作人') | 
					
						
							|  |  |  |         return; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       if (checked) { | 
					
						
							|  |  |  |         this.fankgui(worker) | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     fankgui(worker) { | 
					
						
							|  |  |  |       VXETable.modal.confirm('您确定报工吗?').then(async res => { | 
					
						
							|  |  |  |         if (res === 'confirm') { | 
					
						
							|  |  |  |           const list = this.$refs.qgpgd.getCheckboxRecords() | 
					
						
							|  |  |  |           for (const item of list) { | 
					
						
							|  |  |  |             const tmpArr = [] | 
					
						
							|  |  |  |             const data = { | 
					
						
							|  |  |  |               id: item.id, | 
					
						
							|  |  |  |               qgfkry: worker.userCode, | 
					
						
							|  |  |  |               zt: item.zt, | 
					
						
							|  |  |  |               dcCh:item.dcCh, | 
					
						
							|  |  |  |               dcPl:item.dcPl, | 
					
						
							|  |  |  |               tzbh:item.tzbh, | 
					
						
							|  |  |  |               sllph:item.sllph | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             tmpArr.push(data) | 
					
						
							|  |  |  |             let ycldwInfo = null | 
					
						
							|  |  |  |             for (const dw of this.dw) { | 
					
						
							|  |  |  |               for (const info of dw.list) { | 
					
						
							|  |  |  |                 if (item.dcCh === info.czbh && item.dcPl === info.pl && item.dcFd === info.fd && item.tzbh === info.tlth) { | 
					
						
							|  |  |  |                   ycldwInfo = info | 
					
						
							|  |  |  |                   break | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |               } | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             const data1 = { | 
					
						
							|  |  |  |               type: this.type, | 
					
						
							|  |  |  |               field: 'qgfkrq', | 
					
						
							|  |  |  |               zxZtName: 'QGFK', | 
					
						
							|  |  |  |               list: tmpArr, | 
					
						
							|  |  |  |               ycldwInfo: ycldwInfo | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             await zx(data1) | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |           this.initData(this.$props.worker().userCode, '61') | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       }) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     cellClick({row}) { | 
					
						
							|  |  |  |       this.$emit('pgdClick',row) | 
					
						
							|  |  |  |       this.$emit('initPgd', row) | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | </script> |