From 1175097e7c6a7fcb9aed0a46aad691450f898d97 Mon Sep 17 00:00:00 2001 From: guoyuji <guoyujie@ng.com> Date: 星期四, 14 三月 2024 16:53:58 +0800 Subject: [PATCH] 提交报工相关文件 --- north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue | 142 +++++++++++++++++++++++++++++++++++++--------- 1 files changed, 113 insertions(+), 29 deletions(-) diff --git a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue index b223e8f..fe454f3 100644 --- a/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue +++ b/north-glass-erp/northglass-erp/src/views/pp/reportingWorks/AddReportingWork.vue @@ -18,6 +18,7 @@ const user=userInfo() //瀹氫箟琛ㄥご鏁版嵁 const titleUploadData = ref({ + reportingWorkId: null, //娴佺▼鍗″彿 processId: 'NG24030804A02/1', //閿�鍞崟鍙� @@ -79,19 +80,29 @@ }) - +let inputDisabled = ref(false) onMounted(() =>{ if(route.query.processId !== undefined && route.query.processId!=='' && route.query.processId!=null ){ titleUploadData.value.processId = route.query.processId } + // route.query.reportingWorkId = 'BG2403140039' //鍒ゆ柇鏄惁浼犲叆鎶ュ伐缂栧彿 - if(route.query.reportingWorkId!== undefined && route.query.reportingWorkId!=='' && route.query.reportingWorkId!=null){ + if(route.query.reportingWorkId !== '' && route.query.reportingWorkId!=null){ request.post(`reportingWork/selectUpdateReportingWork/${route.query.reportingWorkId}`).then(res=>{ if(res.code === '200'){ titleUploadData.value = res.data.reportingWork - console.log(res.data) + titleSelectJson.value = res.data.basic xGrid.value.reloadData(res.data.reportingWorkDetails) + let button = { + code: 'update', + name: '淇敼', + status: 'primary', + } + gridOptions.toolbarConfig.buttons.push(button) + + } + inputDisabled.value = true }) } }) @@ -278,7 +289,12 @@ }) -let brokenRow = ref() +let brokenRow = ref({ + glass_child:'', + order_number:'', + technology_number:'' + +}) const gridEvents = { async toolbarButtonClick({code}) { const $grid = xGrid.value @@ -290,7 +306,7 @@ ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣) return } - saveReportingWork(0) + saveReportingWork(0,'save') break } case 'saveReportingWorkReview': { @@ -299,7 +315,16 @@ ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣) return } - saveReportingWork(1) + saveReportingWork(1,'save') + break + } + case 'update': { + const errMap = await $grid.validate(true) + if (errMap) { + ElMessage.error(`鏍¢獙涓嶉�氳繃锛乣) + return + } + saveReportingWork(0,'update') break } } @@ -500,16 +525,30 @@ }) let reportingWorkNum = isNaN(brokenRow.value.completedQuantity*1)?0:brokenRow.value.completedQuantity*1 - if((breakageQuantityCount+reportingWorkNum>brokenRow.value.quantity*1) ){ + if((breakageQuantityCount>brokenRow.value.quantity*1) ){ ElMessage.warning(`鎹熻�楁暟:'${breakageQuantityCount}' - 瀹屽伐鏁�:'${reportingWorkNum}'涔嬪拰${breakageQuantityCount+reportingWorkNum} 涓嶈兘澶т簬${brokenRow.value.quantity*1}`) return false } - + brokenRow.value.completedQuantity = brokenRow.value.quantity-breakageQuantityCount breakageQuantityCount = breakageQuantityCount === 0 ? null : breakageQuantityCount brokenRow.value.breakageQuantity = breakageQuantityCount brokenRow.value.damageDetails=brokenGrid.value.getTableData().fullData + // xGrid.value.getTableData().fullData.forEach( + // + // ) + const equalByOrderNum = xGrid.value.getTableData().fullData.filter((row) =>{ + return row.order_number === brokenRow.value.order_number + }) + const maxQuantity = Math.max(...equalByOrderNum.map(item =>item.breakageQuantity || 0)) + console.log(maxQuantity) + equalByOrderNum.forEach((row) =>{ + row.completedQuantity= brokenRow.value.quantity*1-maxQuantity + }) + + + getQuantity() + done() } @@ -524,7 +563,7 @@ } }) -const saveReportingWork = (type) => { +const saveReportingWork = (state,saveType) => { if(xGrid.value.getTableData().fullData.length===0){ ElMessage.warning(`璇烽�夋嫨娴佺▼鍗℃暟鎹甡) @@ -556,10 +595,19 @@ const requestData = { title:titleUploadData.value, detail:xGrid.value.getTableData().fullData, - type:type//瀹℃牳鐘舵�� + type:state//瀹℃牳鐘舵�� } gridOptions.toolbarConfig.buttons[0].disabled=true gridOptions.toolbarConfig.buttons[1].disabled=true + if(saveType==='save'){ + saveReportingWorkRequest(requestData) + }else{ + updateReportingWorkRequest(requestData) + } + +} + +const saveReportingWorkRequest = (requestData) =>{ request.post(`/reportingWork/saveReportingWork`,requestData).then(res =>{ if (res.code == 200){ ElMessage.success("鎶ュ伐鎴愬姛") @@ -567,18 +615,33 @@ }else{ const errorObj = JSON.parse(res.msg) const msg = "搴忓彿锛�"+errorObj.orderNumber+'\n' - +'灏忕墖椤哄簭锛�'+errorObj.technologyNumber+'\n' - +"瀹為檯鍙姤宸ユ暟閲忥細"+errorObj.processNum+'<'+ - "鎶ュ伐鏁伴噺锛�"+errorObj.sumNum+'\n' - +"璇峰埛鏂扮晫闈㈤噸鏂版姤宸�" + +'灏忕墖椤哄簭锛�'+errorObj.technologyNumber+'\n' + +"瀹為檯鍙姤宸ユ暟閲忥細"+errorObj.processNum+'<'+ + "鎶ュ伐鏁伴噺锛�"+errorObj.sumNum+'\n' + +"璇峰埛鏂扮晫闈㈤噸鏂版姤宸�" ElMessage.error(msg) } }).catch(err =>{ ElMessage.error(err.message) }).finally(()=>{ + gridOptions.toolbarConfig.buttons[0].disabled=false gridOptions.toolbarConfig.buttons[1].disabled=false + }) +} + +//鏇存柊鎶ュ伐鏁版嵁 +const updateReportingWorkRequest = (requestData) =>{ + request.post(`/reportingWork/updateReportingWork`,requestData).then(res =>{ + if (res.code == 200){ + ElMessage.success("鎶ュ伐淇敼鎴愬姛") + router.push({path:'/main/reportingWorks/AddReportingWork', + query:{ + processId:titleUploadData.value.processId, + random:Math.random()} + }) + } }) } @@ -659,17 +722,17 @@ const getWork = () => { let processId = titleUploadData.value.processId - if (processId.indexOf("/") < 0) { - - ElMessage.warning("璇疯緭鍏ユ纭牸寮忔祦绋嬪崱") - return - } - let indexOfChar = processId.indexOf("/") - let leftString = processId.slice(0, indexOfChar) - if (leftString.length != 13) { - ElMessage.warning("璇疯緭鍏ユ纭綅鏁扮殑娴佺▼鍗�") - return - } + // if (processId.indexOf("/") < 0) { + // + // ElMessage.warning("璇疯緭鍏ユ纭牸寮忔祦绋嬪崱") + // return + // } + // let indexOfChar = processId.indexOf("/") + // let leftString = processId.slice(0, indexOfChar) + // if (leftString.length != 13) { + // ElMessage.warning("璇疯緭鍏ユ纭綅鏁扮殑娴佺▼鍗�") + // return + // } //宸ュ簭 let process = titleUploadData.value.thisProcess if (process == "" || process == null) { @@ -784,7 +847,26 @@ item.completedQuantity=row.completedQuantity } }) + getQuantity() } +} +const getQuantity = () => { + const arr = xGrid.value.getTableData().fullData + const returnArr = arr.filter((obj, index, self) => + self.findIndex((t) => t.order_number === obj.order_number) === index + ) + + + let sumBreak = 0 + let sumQuantity = 0 + returnArr.forEach((item)=>{ + sumQuantity+=Number(item.completedQuantity*1) + }) + arr.forEach((item)=>{ + sumBreak+=Number(item.breakageQuantity) || 0 + }) + titleUploadData.value.thisCompletedQuantity = sumQuantity + titleUploadData.value.thisWornQuantity = sumBreak } </script> @@ -792,9 +874,10 @@ <template> <div style="height: 100%;width: 100%"> <div id="head" style="height: 5%;width: 100%;margin-bottom: 5px"> - <el-input v-model="titleUploadData.processId" placeholder="娴佺▼鍗″彿" style="width: 200px" @keyup.enter.native="getWork"/> + <el-input :disabled="inputDisabled" v-if="titleUploadData.reportingWorkId" v-model="titleUploadData.reportingWorkId" placeholder="鎶ュ伐缂栧彿" style="width: 200px" /> + <el-input :disabled="inputDisabled" v-model="titleUploadData.processId" placeholder="娴佺▼鍗″彿" style="width: 200px" @keyup.enter.native="getWork"/> - <el-select v-model="titleUploadData.thisProcess" clearable placeholder="璇烽�夋嫨宸ュ簭" style="width: 120px" + <el-select :disabled="inputDisabled" v-model="titleUploadData.thisProcess" clearable placeholder="璇烽�夋嫨宸ュ簭" style="width: 120px" @change="getWork"> <el-option v-for="item in titleSelectJson['processType']" @@ -972,7 +1055,8 @@ v-model="brokenVisible" :close-on-click-modal="false" :close-on-press-escape="false" - :title="$t('reportingWorks.damageList')" + :title="$t('reportingWorks.damageList')+':' + +brokenRow.glass_child+'.'+brokenRow.order_number+'.'+brokenRow.technology_number" style="width: 80%;height:75% "> <vxe-grid -- Gitblit v1.8.0