From cdb5c5ff64b01a2f9632d0993c400a524d54a0a1 Mon Sep 17 00:00:00 2001 From: Ledo Date: Wed, 7 May 2025 16:27:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=BF=BB=E9=A1=B5=E7=AE=A1=E6=8E=A7=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E4=BF=AE=E6=94=B9=E4=B8=8D=E4=BA=88=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/heli/taskdispatch/detailDialog.vue | 122 +++++++++++++++--- 1 file changed, 107 insertions(+), 15 deletions(-) diff --git a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue index ef58614..29ee5e1 100644 --- a/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue +++ b/mes-ui/mes-ui-admin-vue3/src/views/heli/taskdispatch/detailDialog.vue @@ -872,13 +872,72 @@ const open = async (id ,actives,dispatchParamss,ownerId,taskCode) => { }; const showNext = ref(0) const showBefore = ref(0) +const judge =(item1,item2)=>{ + console.log(item1) + console.log(item2) + if(item1 == null && item2 == null){ + return false + }else if(item1 == null && item2 == ''){ + return false + }else if(item1 == '' && item2 == ''){ + return false + }else if(item1 == '' && item2 == null){ + return false + }else if(item1 == item2){ + return false + }else{ + return true; + } + } const nextItem = async (type) => { if(formData.value.dispatchStatus == 1 && !(!formData.value.taskDispatchDetails || formData.value.taskDispatchDetails.length == 0)){ - ElMessageBox.confirm('单据尚未保存,是否保存?',{ - confirmButtonText: '确认', - cancelButtonText: '取消', - type: 'warning', - }) + await subFormRef.value.validate() + var hasChange = false; + if(dispatchListTemp.value != null && dispatchListTemp.value.length > 0){ + const dispatchListMap = new Map(); + dispatchListTemp.value.forEach(item => { + console.log(item) + dispatchListMap.set(item.id, item); + }); + //=0不判断,>0判断 + for(var i = 0 ; i < formData.value.taskDispatchDetails.length ; i ++){ + var item = formData.value.taskDispatchDetails[i]; + //有id代表有新增,无id代表无新增 + if(!item.id){ + hasChange = true; + break; + }else{ + const matchingItem = dispatchListMap.get(item.id); + if (item.dispatchType !== matchingItem.dispatchType) { + hasChange = true; + break; + } else if (item.dispatchType === 1 && item.ownerId !== matchingItem.ownerId) { + hasChange = true; + break; + } else if (item.dispatchType === 2 && item.postId !== matchingItem.postId) { + hasChange = true; + break; + } else if (judge(item.startTime ,matchingItem.startTime) || + judge(item.endTime , matchingItem.endTime )|| + judge(item.workTime ,matchingItem.workTime) || + judge(item.amount , matchingItem.amount )|| + judge(item.summary, matchingItem.summary )|| + judge(item.deviceModel ,matchingItem.deviceModel)) { + hasChange = true; + break; + } + } + + } + }else{ + hasChange = true; + } + if(hasChange){ + ElMessageBox.confirm('单据尚未保存,是否保存?',{ + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning', + }) .then( async() => { await submitForm('SAVE') dispatchParams.value.pageType = type; @@ -902,14 +961,43 @@ const nextItem = async (type) => { } } - queryData(tsk_id.value) - fetchAllProcedurePages(); + await queryData(tsk_id.value) + await fetchAllProcedurePages(); }catch(error){ console.log(error); } }) .catch(() => { }) + }else{ + dispatchParams.value.pageType = type; + try{ + const data = await getTaskDispatchList() + dispatchlist.value = data; + if(dispatchlist.value != null){ + tsk_id.value = dispatchlist.value[0].id; + dispatchParams.value.id = tsk_id.value; + if(dispatchlist.value.length == 2){ + showBefore.value = 0; + showNext.value = 0; + }else{ + if(type == 1){ + showNext.value = 0; + showBefore.value = 1; + }else{ + showNext.value = 1; + showBefore.value = 0; + } + + } + } + await queryData(tsk_id.value) + await fetchAllProcedurePages(); + }catch(error){ + console.log(error); + } + } + }else{ dispatchParams.value.pageType = type; try{ @@ -932,14 +1020,14 @@ const nextItem = async (type) => { } } - queryData(tsk_id.value) - fetchAllProcedurePages(); + await queryData(tsk_id.value) + await fetchAllProcedurePages(); }catch(error){ console.log(error); } } - + // tsk_id.value = id; // if(type == 1){ // for(var i = 0 ; i ([]); - const ownerList2 = ref([]); +const ownerList2 = ref([]); +const dispatchListTemp = ref([]) const queryData = async (id?: number) => { resetForm() // 修改时,设置数据 if (id) { formLoading.value = true try { + dispatchListTemp.value = [] formData.value = await TaskDispatchApi.getTaskDispatch(id) - formData.value.taskDispatchDetails = await TaskDispatchApi.getTaskDispatchDetailListByDispatchId( - id) + formData.value.taskDispatchDetails = await TaskDispatchApi.getTaskDispatchDetailListByDispatchId(id) checkList.value = []; if(formData.value.taskDispatchDetails!=null){ formData.value.taskDispatchDetails.forEach(item=>{ @@ -1109,14 +1198,17 @@ const queryData = async (id?: number) => { checkList.value.push(items.name) } }) + dispatchListTemp.value.push(JSON.parse(JSON.stringify(item))); }) } checkListTemp.value = checkList.value; - personList.value = await TaskDispatchApi.getOwnerList(formData.value.ownerId,1); - + if(formData.value.ownerId){ + personList.value = await TaskDispatchApi.getOwnerList(formData.value.ownerId,1); postList.value = await TaskDispatchApi.getOwnerList(formData.value.ownerId,2); ownerList1.value = await getOwnerListThis (); ownerList2.value = await getOwnerPostListThis (); + } + formData.value.bomCode = 'BOM-' + formData.value.projectSubCode if (formData.value.dispatchStatus == 2 ) { detailDisabled.value = true