You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

196 lines
5.3 KiB

<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
}
//工单号尾号长度
5 months ago
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>