From 2837bdd57f72e386bbf9a725e7b3a13e5eb9e930 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 21 八月 2023 09:19:57 +0800 Subject: [PATCH] 修复bug --- h5_standard/src/views/workOrder/reportingForWork.vue | 245 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 206 insertions(+), 39 deletions(-) diff --git a/h5_standard/src/views/workOrder/reportingForWork.vue b/h5_standard/src/views/workOrder/reportingForWork.vue index 5fa1d2e..256d10c 100644 --- a/h5_standard/src/views/workOrder/reportingForWork.vue +++ b/h5_standard/src/views/workOrder/reportingForWork.vue @@ -118,7 +118,7 @@ </div> </div> <div class="bg_list_item_num" v-if="from.undesirable > 0"> - <div class="bg_list_item_num_item" @click="show = true"> + <div class="bg_list_item_num_item" @click="openBL"> <span><b>*</b>涓嶈壇椤�</span> <div class="bg_list_item_num_item_sr"> <span class="wulll" :style="{color: from.defectiveName ? '#305ED5' : ''}">{{from.defectiveName ? from.defectiveName : '璁剧疆'}}</span> @@ -130,14 +130,14 @@ </div> <div class="bg_plan" @click="TimeShow = true"> <div class="bg_plan_label"> - <span><b>*</b>鎶ュ伐鏃堕暱</span> + <span>鎶ュ伐鏃堕暱</span> </div> <div class="bg_plan_label_val"> <span :style="{color: from.durationName ? '#333' : ''}">{{from.durationName ? from.durationName : '璇烽�夋嫨'}}</span> <img src="@/assets/icon/ic_ar@2x.png" alt="" /> </div> </div> - <div class="bg_list_item" v-if="infoBox"> + <div class="bg_list_item" v-if="arrType && arrType.length > 0"> <div class="bg_list_item_top"> <div class="bg_list_item_top_left"> <div class="bg_list_item_top_left_x"></div> @@ -149,8 +149,9 @@ <div class="bg_list_item_num_item"> <span>璁′欢鏂瑰紡</span> <div class="bg_list_item_num_item_list"> - <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 0">璁′欢</div> - <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 1">璁℃椂</div> + <div :class="item.active ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'" v-for="(item, index) in arrType" :key="index" @click="clickPerformanceType(index)">{{ item.name }}</div> + <!-- <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 0">璁′欢</div> + <div class="bg_list_item_num_item_list_item active" v-if="infoBox.type == 1">璁℃椂</div> --> </div> </div> </div> @@ -158,7 +159,8 @@ <div class="bg_list_item_num_item"> <span>宸ヨ祫鍗曚环</span> <div class="bg_list_item_num_item_sr"> - <span class="color1">{{(infoBox.salary / 10 / 10).toFixed(2)}}鍏�/{{infoBox.type == 0 ? '浠�' : '鏃�'}}</span> + <span class="color1">{{(arrType[from.index].salary / 10 / 10).toFixed(2)}}鍏�/{{arrType[from.index].type == 0 ? '浠�' : '鏃�'}}</span> + <!-- <span class="color1">{{(infoBox.salary / 10 / 10).toFixed(2)}}鍏�/{{infoBox.type == 0 ? '浠�' : '鏃�'}}</span> --> </div> </div> </div> @@ -184,7 +186,7 @@ <!-- 鎶ュ伐鎸夐挳 --> <div class="bh_zw"></div> <div class="bg_footer"> - <div class="bg_footer_submit1">缁х画鎶ュ伐</div> + <div class="bg_footer_submit1" @click="continueSubmit">缁х画鎶ュ伐</div> <div class="bg_footer_submit" @click="submit">鎻愪氦</div> </div> <!-- 閫夋嫨涓嶈壇椤� --> @@ -239,13 +241,15 @@ <script setup lang="ts"> import { onMounted, ref, reactive, getCurrentInstance, computed } from 'vue' import { useRouter } from 'vue-router' - import { getDeviceByCondition, getFindAll, queryOne, autoWorkReport, getIdPlansExt, categoryExtList } from '@/apis/PlanningAPI' + import { useStore } from 'vuex' + import { getDeviceByCondition, getFindAll, queryOne, queryList, autoWorkReport, getIdPlansExt, categoryExtList } from '@/apis/PlanningAPI' import MaterialY from '@/components/newCom/MaterialY.vue' import user from '@/components/newCom/user.vue' import { Toast } from 'vant' const {$Bus} = getCurrentInstance().appContext.config.globalProperties const router = useRouter() + const store = useStore() let show = ref(false) let show1 = ref(false) let TimeShow = ref(false) @@ -258,16 +262,21 @@ processPlan: null, deviceId: '', deviceName: '', - userId: '', - userName: '', + userId: store.state.userInfo.id, + userName: store.state.userInfo.companyUser.name, qualified: '', // 鑹搧鏁� undesirable: '', // 涓嶈壇鏁� duration: '', - durationName: '', + durationName: '0灏忔椂0鍒嗛挓', time: '', defective: [], - defectiveName: '' + defectiveName: '', + type: '', // 缁╂晥绫诲瀷 + index: 0 }) + + // { name: '璁′欢', active: false, id: 0 }, { name: '璁℃椂', active: false, id: 1 } + let arrType: any = ref([]) let infoBox: any = ref(null) // 宸ヨ祫缁╂晥 @@ -281,6 +290,29 @@ }; let userShow = ref(false) let wuList = ref<Array<any>>([]) + + const openBL = () => { + cateList.value.forEach((item: any) => { + if (!item.active) { + item.num = '' + } + if (item.active && item.num <= 0) { + item.active = false + } + }) + show.value = true + } + + // 鍒囨崲缁╂晥绫诲瀷 + const clickPerformanceType = (i: number) => { + from.index = i + arrType.value.forEach((item: any, index: number) => { + if (i === index) { + from.type = item.id + } + item.active = index === i + }) + } // 浜у嚭鏁伴噺楠岃瘉 const changeNum = (type: number) => { @@ -322,20 +354,100 @@ let arr: any = [] let total: any = 0 let name: any = '' - cateList.value.forEach((item: any, index: number) => { - if (item.active) { - if (item.num <= 0) { + for (let i = 0; i < cateList.value.length; i++) { + if (cateList.value[i].active) { + if (cateList.value[i].num <= 0) { return Toast('涓嶈壇鏁伴噺蹇呴』澶т簬0') } - total = total += item.num - arr.push(item) - name += item.name + item.num + '锛�' + total = total += cateList.value[i].num + arr.push(cateList.value[i]) + name += cateList.value[i].name + cateList.value[i].num + '锛�' } - }) + } + // cateList.value.forEach((item: any, index: number) => { + // if (item.active) { + // if (item.num <= 0) { + // return Toast('涓嶈壇鏁伴噺蹇呴』澶т簬0') + // } + // total = total += item.num + // arr.push(item) + // name += item.name + item.num + '锛�' + // } + // }) if (total !== from.undesirable) return Toast('涓嶈壇鏁板繀椤荤瓑浜庝骇鍑轰笉鑹暟') from.defective = arr from.defectiveName = name show.value = false + } + + const continueSubmit = () => { + if (!from.processPlan) return Toast('璁″垝涓嶈兘涓虹┖') + if (!from.deviceId) return Toast('璁惧涓嶈兘涓虹┖') + if (!from.userId) return Toast('鐢熶骇浜哄憳涓嶈兘涓虹┖') + if (hasBom.value == 1 && bomType.value == 1) { + console.log('涓嶉渶瑕佹姇鏂�') + } else { + if (!wuList.value.length === 0) return Toast('鎶曟枡涓嶈兘涓虹┖') + } + if (!from.qualified && !from.undesirable) { + return Toast('鑹搧鏁颁笌涓嶈壇鏁颁笉鑳藉悓鏃朵负绌�') + } + // if (!from.qualified) return Toast('鑹搧鏁颁笉鑳戒负绌�') + // 鏈変笉鑹暟 + if (from.undesirable > 0) { + if (from.defective.length === 0) return Toast('涓嶈壇椤逛笉鑳戒负绌�') + } + // if (!from.duration) return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖') + let type = '' + arrType.value.forEach((item: any) => { + if (item.active) { + type = item.id + } + }) + autoWorkReport({ + createWorkorderRecordDTO: { + type, + duration: from.duration, + qualifiedNum: from.qualified ? from.qualified : 0, + unQualifiedNum: from.undesirable ? from.undesirable : 0 + }, + plansId: from.processPlan.id, + proGroupId: deviceId.value, + proUserList: [from.userId], + recordList: wuList.value.map((item: any) => { + return { + wstockId: item.id, + num: item.num + } + }), + createUnqualifiedDTOList: from.defective.map((item: any) => { + return { + categoryId: item.id, + unQualifiedNum: item.num + } + }) + }).then(res => { + if (res.code === 200) { + Toast.success({message: '鎶ュ伐鎴愬姛锛�'}) + from.processPlan = null + from.deviceId = '' + from.deviceName = '' + from.userId = '' + from.userName = '' + from.qualified = '' + from.undesirable = '' + from.duration = '' + from.durationName = '0灏忔椂0鍒嗛挓' + from.time = '' + from.defective = [] + from.defectiveName = '' + wuList.value = [] + deviceId.value = '' + plansId.value = '' + ids.value = '' + total.value = '' + } + }) } const submit = () => { @@ -355,9 +467,16 @@ if (from.undesirable > 0) { if (from.defective.length === 0) return Toast('涓嶈壇椤逛笉鑳戒负绌�') } - if (!from.duration) return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖') + // if (!from.duration) return Toast('鎶ュ伐鏃堕暱涓嶈兘涓虹┖') + let type = '' + arrType.value.forEach((item: any) => { + if (item.active) { + type = item.id + } + }) autoWorkReport({ createWorkorderRecordDTO: { + type, duration: from.duration, qualifiedNum: from.qualified ? from.qualified : 0, unQualifiedNum: from.undesirable ? from.undesirable : 0 @@ -389,46 +508,84 @@ // 棰勮宸ヨ祫 const expectedSalary = computed(() => { - if (!infoBox.value) return 0; - // 鎸変欢璁$畻 - if (infoBox.value.type == 0) { + if (arrType.value.length === 0) return 0; + if (arrType.value[from.index].type == 0) { if (!from.qualified) return 0 - if (infoBox.value.unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝� + if (arrType.value[from.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝� let total = Number(from.qualified) + Number(from.undesirable) - return (total * (infoBox.value.salary / 10 / 10)).toFixed(2) || 0 + return (total * (arrType.value[from.index].salary / 10 / 10)).toFixed(2) } else { - return (Number(from.qualified) * (infoBox.value.salary / 10 / 10)).toFixed(2) || 0 + return (Number(from.qualified) * (arrType.value[from.index].salary / 10 / 10)).toFixed(2) } } else { if (!from.duration) return 0; let h = (from.duration / 60 / 60).toFixed(2) - return (Number(h) * (infoBox.value.salary / 10 / 10)).toFixed(2) || 0 + return (Number(h) * (arrType.value[from.index].salary / 10 / 10)).toFixed(2) } + // if (!infoBox.value) return 0; + // 鎸変欢璁$畻 + // if (infoBox.value.type == 0) { + // if (!from.qualified) return 0 + // if (infoBox.value.unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝� + // let total = Number(from.qualified) + Number(from.undesirable) + // return (total * (infoBox.value.salary / 10 / 10)).toFixed(2) + // } else { + // return (Number(from.qualified) * (infoBox.value.salary / 10 / 10)).toFixed(2) + // } + // } else { + // if (!from.duration) return 0; + // let h = (from.duration / 60 / 60).toFixed(2) + // return (Number(h) * (infoBox.value.salary / 10 / 10)).toFixed(2) + // } }) // 杈炬爣鐜� const complianceRate = computed(() => { - if (!infoBox.value) return 0; + if (arrType.value.length === 0) return 0; if (!from.qualified && !from.undesirable) return 0; if (!from.duration) return 0; + if (!arrType.value[from.index].num) return 0; // 鎸変欢璁$畻 // if (infoBox.value.type == 0) { - if (infoBox.value.unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝� - let a = ((Number(from.qualified) + Number(from.undesirable)) / (from.duration / 60 / 60)).toFixed(2) - let b = (infoBox.value.num / (infoBox.value.times / 60 / 60)).toFixed(2) + if (arrType.value[from.index].unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝� + let a = ((Number(from.qualified) + Number(from.undesirable)) / (from.duration / 3600)).toFixed(2) + let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2) console.log(a) console.log(b) - return ((Number(a) / Number(b)) * 100).toFixed(2) || 0 + return ((Number(a) / Number(b)) * 100).toFixed(2) // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / ) // return total * infoBox.value.salary; } else { - let a = (from.qualified / (from.duration / 60 / 60)).toFixed(2) - let b = (infoBox.value.num / (infoBox.value.times / 60 / 60)).toFixed(2) + let a = (from.qualified / (from.duration / 3600)).toFixed(2) + let b = (arrType.value[from.index].num / (arrType.value[from.index].times / 3600)).toFixed(2) console.log(a) console.log(b) - return ((Number(a) / Number(b)) * 100).toFixed(2) || 0 + return ((Number(a) / Number(b)) * 100).toFixed(2) // return Number(from.qualified) * infoBox.value.salary; } + + // if (!infoBox.value) return 0; + // if (!from.qualified && !from.undesirable) return 0; + // if (!from.duration) return 0; + // if (!infoBox.value.num) return 0; + // // 鎸変欢璁$畻 + // // if (infoBox.value.type == 0) { + // if (infoBox.value.unqualified == 1) { // 鏄惁璁″叆涓嶈壇鍝� + // let a = ((Number(from.qualified) + Number(from.undesirable)) / (from.duration / 3600)).toFixed(2) + // let b = (infoBox.value.num / (infoBox.value.times / 3600)).toFixed(2) + // console.log(a) + // console.log(b) + // return ((Number(a) / Number(b)) * 100).toFixed(2) + // // let total = (Number(from.qualified) + Number(from.undesirable)) / ((from.duration * 60 * 60) * infoBox.value.num / ) + // // return total * infoBox.value.salary; + // } else { + // let a = (from.qualified / (from.duration / 3600)).toFixed(2) + // let b = (infoBox.value.num / (infoBox.value.times / 3600)).toFixed(2) + // console.log(a) + // console.log(b) + // return ((Number(a) / Number(b)) * 100).toFixed(2) + // // return Number(from.qualified) * infoBox.value.salary; + // } // } else { // console.log('鎸夋椂闀�') // } @@ -533,8 +690,8 @@ from.deviceId = '' from.deviceName = '' deviceId.value = '' - from.userId = '' - from.userName = '' + // from.userId = '' + // from.userName = '' total.value = res.num - res.workorderDistributNum // 鑾峰彇璁惧 getDeviceByCondition({ procedureId: res.procedureId }) @@ -555,14 +712,24 @@ } }) // 鑾峰彇宸ヨ祫缁╂晥鏁版嵁 - queryOne({ + queryList({ deleted: 0, departId: res.factoryId, materialId: res.materialId, procedureId: res.procedureId }).then(result => { if (result.code === 200) { - infoBox.value = result.data + if (result.data && result.data.length > 0) { + result.data.forEach((item: any, index: number) => { + item.name = item.type == 0 ? '璁′欢' : '璁℃椂' + item.id = item.type + item.active = index == 0 + }) + arrType.value = result.data + } else { + arrType.value = [] + } + // infoBox.value = result.data } }) }) -- Gitblit v1.9.3