From fe0ef3441cd689e3679696d990b0ca1b5d7193ac Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期四, 24 八月 2023 14:10:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- screen_standard/src/views/index.vue | 308 +++++++++++++++++++++++++++------------------------ 1 files changed, 162 insertions(+), 146 deletions(-) diff --git a/screen_standard/src/views/index.vue b/screen_standard/src/views/index.vue index 7b7a115..c9970c2 100644 --- a/screen_standard/src/views/index.vue +++ b/screen_standard/src/views/index.vue @@ -54,14 +54,14 @@ <div class="scroll_item_row">{{ item.materialName }}</div> <div class="scroll_item_row">{{ item.materialCode }}</div> <div class="scroll_item_row">{{ item.num }}</div> - <div class="scroll_item_row"> + <div class="scroll_item_row" style="text-align: left;"> <el-tooltip v-for="(child, i) in item.procedureList" :key="i" effect="dark" :content="'宸叉姤宸ヨ壇鍝佹暟' + child.doneNum + '锛涘伐搴忚鍒掓暟' + child.planNum" placement="top"> <div class="scroll_item_row_item" @click="jump(child.procedureId, child.procedureName)"> <div class="scroll_item_row_item_x"></div> - <span v-if="child.rate < 100">{{ child.rate.toFixed(0) }}%</span> + <span v-if="child.rate < 100">{{ Math.floor(child.rate) }}%</span> <img v-else src="@/assets/img/ic_complete@2x.png" alt="" /> - <span class="scroll_item_row_item_wz">{{ child.procedureName }}</span> + <span class="scroll_item_row_item_wz">{{ child.procedureName.substring(0, 3) }}</span> </div> </el-tooltip> </div> @@ -103,7 +103,7 @@ <div class="content_left_item1_head"> <span>褰撴棩鍛樺伐浜ч噺TOP10</span> </div> - <div class="content_left_item1_content" ref="scrollContainer"> + <div class="content_left_item1_content" @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" ref="scrollContainer"> <div class="content_left_item1_content_row" v-for="(item, index) in data.production" :key="index"> <div class="content_left_item1_content_row_name"> <div :class="index > 2 ? 'num bg1' : 'num bg2'">{{ index + 1 }}</div> @@ -137,8 +137,8 @@ <div v-for="(item, index) in data.log" :key="index" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> <div class="scroll_item_row">{{ item.userName }}</div> + <div class="scroll_item_row">{{ item.materialName }}</div> <div class="scroll_item_row">{{ item.procedureName }}</div> - <div class="scroll_item_row">{{ item.materialCode }}</div> <div class="scroll_item_row">{{ dateToSub(item.createTime) }}</div> <div class="scroll_item_row">{{ item.qualifiedNum || 0 }}</div> <div class="scroll_item_row">{{ item.unqualifiedNum || 0 }}</div> @@ -170,7 +170,7 @@ </div> </div> <!-- 璁惧宸℃璁板綍 --> - <div class="content_right_bottom"> + <div class="content_right_bottom" ref="bottom1"> <div class="content_right_bottom_head"> <span>璁惧宸℃璁板綍</span> </div> @@ -187,7 +187,10 @@ :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'"> <div class="scroll_item_row">{{ dateToSub(item.checkdate) }}</div> <div class="scroll_item_row">{{ item.deviceName }}</div> - <div class="scroll_item_row">{{ item.status == 0 ? '鍚堟牸' : '涓嶅悎鏍�' }}</div> + <div class="scroll_item_row"> + <span v-if="item.status == 0">姝e父</span> + <span v-else style="color: #F84F26">寮傚父</span> + </div> <div class="scroll_item_row">{{ item.userName }}</div> </div> </div> @@ -200,8 +203,8 @@ <script setup> import { dateToSub } from '@/utils' -import { reactive, ref, onMounted, nextTick, onUnmounted, computed, watch, toRefs } from 'vue' -import { getPlanData, getTop, getStockList, getWorkPlansList, getProcedureProcessList, getRecordLogPage, getDeviceCheckPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js' +import { reactive, ref, onMounted, onUnmounted, computed, watch, toRefs } from 'vue' +import { getPlanData, getTop, getWorkPlansList, getProcedureProcessList, getRecordLogPage, getDeviceCheckPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js' import { useCounterStore } from '@/stores/counter.js' import * as echarts from 'echarts' import { useRouter } from 'vue-router' @@ -218,22 +221,24 @@ dayDistribution: [], typeDistribution: [], num: 0, - baseNum: 0 + baseNum: 0, + firstScroll: false, + secondScroll: false, + thirdScroll: false, + fourthScroll: false, + fifthScroll: false, }) let { baseNum } = toRefs(data) let timer = ref(null) -let timer1 = ref(null) -let timer2 = ref(null) -let timer3 = ref(null) -let timer4 = ref(null) let timer5 = ref(null) let scrollContainer = ref(null) let scrollContainer1 = ref(null) let scrollContainer2 = ref(null) let scrollContainer3 = ref(null) let scrollContainer4 = ref(null) +let bottom1 = ref(null) let cate = ref([ { name: '鎴愬搧璁″垝杩涘害', @@ -271,16 +276,16 @@ } }) -start1() const init = () => { + console.log(timer.value); // 褰撴棩鍛樺伐浜ч噺TOP10 getTop(companyId.value, departId.value) .then(res => { if (res.length > 0) { data.baseNum = res[0].doneNum data.production = res - start() + data.fifthScroll = true } }) // 浠撳簱瀹炴椂浣欓噺缁熻 @@ -297,18 +302,14 @@ getProcedureProcessList(companyId.value, departId.value) .then(res => { data.processProgress = res - nextTick(() => { - start2() - }) + data.thirdScroll = true }) } else { // 鎴愬搧璁″垝杩涘害 getWorkPlansList(companyId.value, departId.value) .then(res => { data.plannedProgress = res - nextTick(() => { - start1() - }) + data.secondScroll = true }) } } @@ -322,9 +323,7 @@ page: 1 }).then(res => { data.log = res.records - nextTick(() => { - start3() - }) + data.fourthScroll = true }) // 璁惧宸℃璁板綍 getDeviceCheckPage(companyId.value, departId.value, { @@ -333,9 +332,7 @@ page: 1 }).then(res => { data.patrolInspection = res.records - nextTick(() => { - start4() - }) + data.fifthScroll = true }) // 杩戜竷澶╀笉鑹暟 getUnqualified7DayData(companyId.value, departId.value, '') @@ -362,6 +359,7 @@ num: item.unqualifiedNum } }) + console.log(data.num); setTypeChart() } }) @@ -380,20 +378,22 @@ let myChart = echarts.init(dayChartDom); let dateList = [] let numList = [] - let num = 0 data.dayDistribution.forEach(item => { dateList.push(item.date) numList.push(item.num) - num += item.num }) let option; option = { title: { - text: `杩戜竷鏃ヤ笉鑹搧鎬绘暟锛�${num}`, + text: ` 杩戜竷鏃ヤ笉鑹搧鎬绘暟锛�${data.num}`, textStyle: { color: '#fff', fontSize: 12 } + }, + grid: { + top: 40, + bottom: 30 }, xAxis: { type: 'category', @@ -521,9 +521,6 @@ } } }, - // labelLayout: { - // hideOverlap: true - // }, endLabel: { show: true, distance: 5, @@ -543,24 +540,7 @@ option && myChart.setOption(option); } -// onBeforeUnmount(()=>{ -// clearTimeout(timer.value) -// clearTimeout(timer1.value) -// clearTimeout(timer2.value) -// clearTimeout(timer3.value) -// clearTimeout(timer4.value) -// }) -onUnmounted(() => { - clearTimeout(timer.value) - clearTimeout(timer1.value) - clearTimeout(timer2.value) - clearTimeout(timer3.value) - clearTimeout(timer4.value) - clearTimeout(timer5.value) -}) const clickCate = (index) => { - clearTimeout(timer1.value) - clearTimeout(timer2.value) cate.value.forEach((item, i) => { if (i === index) { // 鎴愬搧璁″垝杩涘害 @@ -568,17 +548,13 @@ getWorkPlansList(companyId.value, departId.value) .then(res => { data.plannedProgress = res - nextTick(() => { - start1() - }) + data.secondScroll = true }) } else { getProcedureProcessList(companyId.value, departId.value) .then(res => { data.processProgress = res - nextTick(() => { - start2() - }) + data.thirdScroll = true }) } item.active = true @@ -588,86 +564,57 @@ }) } function handleMouseEnter() { - clearTimeout(timer.value) + data.firstScroll = false } function handleMouseEnter1() { - clearTimeout(timer1.value) + data.secondScroll = false } function handleMouseEnter2() { - clearTimeout(timer2.value) + data.thirdScroll = false } function handleMouseEnter3() { - clearTimeout(timer3.value) + data.fourthScroll = false } function handleMouseEnter4() { - clearTimeout(timer4.value) + data.fifthScroll = false } function handleMouseLeave() { - start() + data.firstScroll = true } function handleMouseLeave1() { - start1() + data.secondScroll = true } function handleMouseLeave2() { - start2() + data.thirdScroll = true } function handleMouseLeave3() { - start3() + data.fourthScroll = true } function handleMouseLeave4() { - start4() + data.fifthScroll = true } -// 寮�鍚畾鏃跺櫒 -function start() { - clearTimeout(timer.value) - // 瀹氭椂鍣ㄨЕ鍙戝懆鏈� - let speed = ref(100) - timer.value = setInterval(ListScroll, speed.value) -} -// 寮�鍚畾鏃跺櫒 -function start1() { - clearTimeout(timer1.value) - // 瀹氭椂鍣ㄨЕ鍙戝懆鏈� - let speed1 = ref(100) - timer1.value = setInterval(ListScroll1, speed1.value) -} -// 寮�鍚畾鏃跺櫒 -function start2() { - clearTimeout(timer2.value) - // 瀹氭椂鍣ㄨЕ鍙戝懆鏈� - let speed2 = ref(100) - timer2.value = setInterval(ListScroll2, speed2.value) -} -// 寮�鍚畾鏃跺櫒 -function start3() { - clearTimeout(timer3.value) - // 瀹氭椂鍣ㄨЕ鍙戝懆鏈� - let speed3 = ref(100) - timer3.value = setInterval(ListScroll3, speed3.value) -} -// 寮�鍚畾鏃跺櫒 -function start4() { - clearTimeout(timer4.value) - // 瀹氭椂鍣ㄨЕ鍙戝懆鏈� - let speed4 = ref(100) - timer4.value = setInterval(ListScroll4, speed4.value) -} + function ListScroll() { + if (!data.firstScroll) return + // console.log('ListScroll'); let scrollDom = scrollContainer.value if (!scrollDom) return // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚 if (scrollDom.offsetHeight == 0) { scrollDom = scrollContainer.value } else { + let maxLength = scrollDom.clientHeight/34 // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔� - if (scrollDom.children.length < 6) { - clearTimeout(timer.value) + if (scrollDom.children.length <= maxLength) { + data.firstScroll = false return } // 缁勪欢杩涜婊氬姩 - scrollDom.scrollTop += 1 + scrollDom.scrollTop += 2 + // console.log(scrollDom.scrollHeight - scrollDom.clientHeight); + // console.log(scrollDom.scrollTop); // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮� - if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { + if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { // 鑾峰彇缁勪欢绗竴涓妭鐐� let first = scrollDom.children[0] // 鍒犻櫎鑺傜偣 @@ -678,6 +625,8 @@ } } function ListScroll1() { + if (!data.secondScroll) return + // console.log('ListScroll1'); let scrollDom = scrollContainer1.value // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚 if (!scrollDom) return @@ -686,13 +635,16 @@ } else { // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔� if (scrollDom.children.length < 7) { - clearTimeout(timer1.value) + data.secondScroll = false return } // 缁勪欢杩涜婊氬姩 - scrollDom.scrollTop += 1 + scrollDom.scrollTop += 2 + // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮� - if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { + if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight-0.5)) { + console.log(scrollDom.scrollTop); + console.log(scrollDom.scrollHeight, scrollDom.clientHeight); // 鑾峰彇缁勪欢绗竴涓妭鐐� let first = scrollDom.children[0] // 鍒犻櫎鑺傜偣 @@ -703,6 +655,8 @@ } } function ListScroll2() { + if (!data.thirdScroll) return + // console.log('ListScroll2'); let scrollDom = scrollContainer2.value if (!scrollDom) return // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚 @@ -711,15 +665,15 @@ } else { // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔� if (scrollDom.children.length < 10) { - clearTimeout(timer2.value) + data.thirdScroll = false return } // 缁勪欢杩涜婊氬姩 - scrollDom.scrollTop += 1 + scrollDom.scrollTop += 2 // console.log('scrollDom.scrollTop', scrollDom.scrollTop); // console.log('scrollDom.scrollHeight - scrollDom.clientHeight', scrollDom.scrollHeight - scrollDom.clientHeight); // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮� - if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { + if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { // 鑾峰彇缁勪欢绗竴涓妭鐐� let first = scrollDom.children[0] // 鍒犻櫎鑺傜偣 @@ -730,6 +684,9 @@ } } function ListScroll3() { + + if (!data.fourthScroll) return + // console.log('ListScroll3'); let scrollDom = scrollContainer3.value if (!scrollDom) return // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚 @@ -737,14 +694,17 @@ scrollDom = scrollContainer3.value } else { // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔� - if (scrollDom.children.length <= 5) { - clearTimeout(timer3.value) + let num = scrollContainer3.value.offsetHeight / 35; + // alert(scrollDom.children.length +"---------------"+num) + // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔� + if (scrollDom.children.length <= num) { + data.fourthScroll = false return } // 缁勪欢杩涜婊氬姩 - scrollDom.scrollTop += 1 + scrollDom.scrollTop = scrollDom.scrollTop+2 // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮� - if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { + if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight -2)) { // 鑾峰彇缁勪欢绗竴涓妭鐐� let first = scrollDom.children[0] // 鍒犻櫎鑺傜偣 @@ -755,21 +715,26 @@ } } function ListScroll4() { + if (!data.fifthScroll) return + // console.log('ListScroll4'); let scrollDom = scrollContainer4.value if (!scrollDom) return // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚 if (scrollDom.offsetHeight == 0) { scrollDom = scrollContainer4.value } else { + // console.log(bottom1.value.height); + let num = scrollContainer4.value.offsetHeight / 35; + // alert(scrollDom.children.length +"---------------"+num) // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔� - if (scrollDom.children.length < 5) { - clearTimeout(timer4.value) + if (scrollDom.children.length <= num) { + data.fifthScroll = false return } // 缁勪欢杩涜婊氬姩 - scrollDom.scrollTop += 1 + scrollDom.scrollTop += 2 // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮� - if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) { + if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) { // 鑾峰彇缁勪欢绗竴涓妭鐐� let first = scrollDom.children[0] // 鍒犻櫎鑺傜偣 @@ -779,19 +744,38 @@ } } } - -// onUnmounted(() => { - -// }) +function scrillAction() { + ListScroll() + ListScroll1() + ListScroll2() + ListScroll3() + ListScroll4() +} onMounted(() => { + window.addEventListener('resize', () => { + setTypeChart() + setDayChart() + }) if (!departId.value) return; - timer5.value = setInterval(init(), 60000) + init() + timer5.value = setInterval(init, 60000) + timer.value = setInterval(scrillAction, 100) +}) + +onUnmounted(() => { + console.log('鍋滄婊寸瓟'); + clearTimeout(timer.value) + clearTimeout(timer5.value) + }) </script> <style lang="scss" scoped> + +$fixed-height: 690px; .content1 { + flex: 1; width: 100%; height: auto; @@ -804,7 +788,8 @@ margin-right: 20px; .content_left_item1 { width: 100%; - height: 284px; + height: calc(100vh - 690px); + // height: 284px; margin-bottom: 20px; .content_left_item1_head { background: url('@/assets/img/home_title_short@2x.png'); @@ -828,7 +813,7 @@ .content_left_item1_content { width: 100%; - height: 246px; + height: calc(100% - 36px); padding: 20px; overflow: hidden; box-sizing: border-box; @@ -839,7 +824,8 @@ display: flex; align-items: center; justify-content: space-between; - margin-bottom: 13px; + // margin-bottom: 13px; + padding: 7px 0; &:last-child { margin: 0; @@ -965,7 +951,7 @@ .main_container { width: 100%; - height: calc(100% - 35px); + height: calc(100% - 38px); .scroll_container { width: 100%; @@ -1079,8 +1065,13 @@ color: #01D9FE; &:nth-child(5) { - flex: 2.7; - + flex: 3; + } + &:nth-child(4) { + flex: 0.7; + } + &:nth-child(6) { + flex: 0.7; } } } @@ -1117,10 +1108,15 @@ justify-content: center; color: #FFFFFF; font-size: 13px; - + &:nth-child(4) { + flex: 0.7; + } &:nth-child(5) { flex: 3; - + justify-content: start; + } + &:nth-child(6) { + flex: 0.7; } .scroll_item_row_item { margin-top: -11px; @@ -1276,7 +1272,8 @@ .content_center_bottom { width: 100%; - height: 284px; + // height: 284px; + height: calc(100vh - 690px); flex: 2; .content_center_bottom_head { width: 100%; @@ -1324,9 +1321,15 @@ font-weight: 500; color: #01D9FE; - &:nth-child(4) { - flex: 2; + &:nth-child(5) { + flex: 0.5; } + &:nth-child(6) { + flex: 0.5; + } + &:nth-child(7) { + flex: 0.7; + } } } @@ -1365,9 +1368,16 @@ justify-content: center; color: #FFFFFF; - &:nth-child(4) { - flex: 2; + &:nth-child(5) { + flex: 0.5; } + &:nth-child(6) { + flex: 0.5; + } + &:nth-child(7) { + flex: 0.7; + } + } } } @@ -1417,8 +1427,8 @@ left: 50%; transform: translate(-50%, -50%); z-index: 999; - width: 114px; - height: 114px; + width: 100px; + height: 100px; border-radius: 50%; border: 2px dashed #01D9FE; display: flex; @@ -1460,8 +1470,9 @@ .content_right_bottom { width: 100%; - height: 284px; + // height: 284px; + height: calc(100vh - 690px); .content_right_bottom_head { width: 100%; height: 38px; @@ -1506,8 +1517,11 @@ font-weight: 500; color: #01D9FE; - &:first-child { - flex: 2; + // &:first-child { + // flex: 2; + // } + &:nth-child(3) { + flex: 0.7; } } } @@ -1546,10 +1560,12 @@ align-items: center; justify-content: center; color: #FFFFFF; - - &:first-child { - flex: 2; + &:nth-child(3) { + flex: 0.7; } + // &:first-child { + // flex: 2; + // } } } } -- Gitblit v1.9.3