From c5c6fa800cedd37cea0e3cc3e68df78b47ee2813 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 28 八月 2023 10:37:59 +0800
Subject: [PATCH] 111
---
screen_standard/src/views/index.vue | 297 +++++++++++++++++++++++++++++++++++------------------------
1 files changed, 176 insertions(+), 121 deletions(-)
diff --git a/screen_standard/src/views/index.vue b/screen_standard/src/views/index.vue
index fdfbaa9..025a41b 100644
--- a/screen_standard/src/views/index.vue
+++ b/screen_standard/src/views/index.vue
@@ -61,7 +61,7 @@
<div class="scroll_item_row_item_x"></div>
<span v-if="child.rate < 100">{{ child.rate.toFixed(0) }}%</span>
<img v-else src="@/assets/img/ic_complete@2x.png" alt="" />
- <span class="scroll_item_row_item_wz">{{ child.procedureName.substring(0, 3) }}</span>
+ <span class="scroll_item_row_item_wz">{{ child.procedureName }}</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" @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" ref="scrollContainer">
+ <div class="content_left_item1_content" 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>
@@ -157,7 +157,7 @@
<span>杩�7澶╀笉鑹搧鍒嗗竷</span>
</div>
<div class="content_right_top_nr">
-
+
<div class="content_right_top_nr_top" id="lineChrat"></div>
<div class="content_right_top_nr_bottom">
<div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0">
@@ -166,7 +166,7 @@
</div>
<div id="pieChart"></div>
</div>
-
+
</div>
</div>
<!-- 璁惧宸℃璁板綍 -->
@@ -203,8 +203,8 @@
<script setup>
import { dateToSub } from '@/utils'
-import { reactive, ref, onMounted, onUnmounted, computed, watch, toRefs } from 'vue'
-import { getPlanData, getTop, getWorkPlansList, getProcedureProcessList, getRecordLogPage, getDeviceCheckPage, getUnqualified7DayData, getUnqualifiedCateData } from '@/utils/api.js'
+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 { useCounterStore } from '@/stores/counter.js'
import * as echarts from 'echarts'
import { useRouter } from 'vue-router'
@@ -222,16 +222,16 @@
typeDistribution: [],
num: 0,
baseNum: 0,
- firstScroll: false,
- secondScroll: false,
- thirdScroll: false,
- fourthScroll: false,
- fifthScroll: false,
+ bottomAuthHeight: 284
})
-let { baseNum } = toRefs(data)
+let { baseNum, bottomAuthHeight } = 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)
@@ -276,17 +276,20 @@
}
})
+start1()
const init = () => {
- console.log(timer.value);
+ setBottomHeight();
// 褰撴棩鍛樺伐浜ч噺TOP10
getTop(companyId.value, departId.value)
.then(res => {
if (res.length > 0) {
data.baseNum = res[0].doneNum
- data.production = res
- data.fifthScroll = true
+ } else {
+ data.baseNum = 0
}
+ data.production = res
+ data.fifthScroll = true
})
// 浠撳簱瀹炴椂浣欓噺缁熻
// getStockList(companyId.value, departId.value)
@@ -302,20 +305,24 @@
getProcedureProcessList(companyId.value, departId.value)
.then(res => {
data.processProgress = res
- data.thirdScroll = true
+ nextTick(() => {
+ start2()
+ })
})
} else {
// 鎴愬搧璁″垝杩涘害
getWorkPlansList(companyId.value, departId.value)
.then(res => {
data.plannedProgress = res
- data.secondScroll = true
+ nextTick(() => {
+ start1()
+ })
})
}
}
})
-
-
+
+
// 鎶ュ伐鏃ュ織
getRecordLogPage(companyId.value, departId.value, {
capacity: 20,
@@ -323,7 +330,9 @@
page: 1
}).then(res => {
data.log = res.records
- data.fourthScroll = true
+ nextTick(() => {
+ start3()
+ })
})
// 璁惧宸℃璁板綍
getDeviceCheckPage(companyId.value, departId.value, {
@@ -332,7 +341,9 @@
page: 1
}).then(res => {
data.patrolInspection = res.records
- data.fifthScroll = true
+ nextTick(() => {
+ start4()
+ })
})
// 杩戜竷澶╀笉鑹暟
getUnqualified7DayData(companyId.value, departId.value, '')
@@ -359,7 +370,6 @@
num: item.unqualifiedNum
}
})
- console.log(data.num);
setTypeChart()
}
})
@@ -368,6 +378,10 @@
.then(res => {
enterprise.setNum(res)
})
+}
+function setBottomHeight(){
+ const pageHeight = window.innerHeight;
+ bottomAuthHeight = pageHeight - 700;
}
/**
@@ -378,18 +392,25 @@
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: `杩戜竷鏃ヤ笉鑹搧鎬绘暟锛�${data.num}`,
+ text: `杩戜竷鏃ヤ笉鑹搧鎬绘暟锛�${num}`,
textStyle: {
color: '#fff',
fontSize: 12
}
+ },
+ grid: {
+ top: 40,
+ bottom: 30,
+ left: 60
},
xAxis: {
type: 'category',
@@ -398,6 +419,15 @@
lineStyle: {
width: 0.5,
color: ['#fff']
+ }
+ },
+ axisLine: {
+ show: true,
+ onZero: true,
+ lineStyle: {
+ width: 0.5,
+ color: '#fff',
+ opacity: .5
}
},
axisLabel: {
@@ -414,6 +444,15 @@
lineStyle: {
width: 0.5,
color: ['#fff']
+ }
+ },
+ axisLine: {
+ show: true,
+ onZero: true,
+ lineStyle: {
+ width: 1,
+ color: '#fff',
+ opacity: .5
}
},
axisLabel: {
@@ -517,6 +556,9 @@
}
}
},
+ // labelLayout: {
+ // hideOverlap: true
+ // },
endLabel: {
show: true,
distance: 5,
@@ -535,8 +577,17 @@
}
option && myChart.setOption(option);
}
-
+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) {
// 鎴愬搧璁″垝杩涘害
@@ -544,13 +595,17 @@
getWorkPlansList(companyId.value, departId.value)
.then(res => {
data.plannedProgress = res
- data.secondScroll = true
+ nextTick(() => {
+ start1()
+ })
})
} else {
getProcedureProcessList(companyId.value, departId.value)
.then(res => {
data.processProgress = res
- data.thirdScroll = true
+ nextTick(() => {
+ start2()
+ })
})
}
item.active = true
@@ -560,39 +615,71 @@
})
}
function handleMouseEnter() {
- data.firstScroll = false
+ clearTimeout(timer.value)
}
function handleMouseEnter1() {
- data.secondScroll = false
+ clearTimeout(timer1.value)
}
function handleMouseEnter2() {
- data.thirdScroll = false
+ clearTimeout(timer2.value)
}
function handleMouseEnter3() {
- data.fourthScroll = false
+ clearTimeout(timer3.value)
}
function handleMouseEnter4() {
- data.fifthScroll = false
+ clearTimeout(timer4.value)
}
function handleMouseLeave() {
- data.firstScroll = true
+ start()
}
function handleMouseLeave1() {
- data.secondScroll = true
+ start1()
}
function handleMouseLeave2() {
- data.thirdScroll = true
+ start2()
}
function handleMouseLeave3() {
- data.fourthScroll = true
+ start3()
}
function handleMouseLeave4() {
- data.fifthScroll = true
+ start4()
}
-
+// 寮�鍚畾鏃跺櫒
+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
// 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
@@ -602,15 +689,13 @@
let maxLength = scrollDom.clientHeight/34
// 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
if (scrollDom.children.length <= maxLength) {
- data.firstScroll = false
+ clearTimeout(timer.value)
return
}
// 缁勪欢杩涜婊氬姩
scrollDom.scrollTop += 2
- // console.log(scrollDom.scrollHeight - scrollDom.clientHeight);
- // console.log(scrollDom.scrollTop);
// 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) {
+ if (Math.floor(scrollDom.scrollTop) >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
// 鑾峰彇缁勪欢绗竴涓妭鐐�
let first = scrollDom.children[0]
// 鍒犻櫎鑺傜偣
@@ -621,8 +706,6 @@
}
}
function ListScroll1() {
- if (!data.secondScroll) return
- // console.log('ListScroll1');
let scrollDom = scrollContainer1.value
// 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
if (!scrollDom) return
@@ -630,14 +713,14 @@
scrollDom = scrollContainer1.value
} else {
// 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
- if (scrollDom.children.length < 7) {
- data.secondScroll = false
+ if (scrollDom.children.length < 6) {
+ clearTimeout(timer1.value)
return
}
// 缁勪欢杩涜婊氬姩
scrollDom.scrollTop += 2
// 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) {
+ if (scrollDom.scrollTop+2 >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
// 鑾峰彇缁勪欢绗竴涓妭鐐�
let first = scrollDom.children[0]
// 鍒犻櫎鑺傜偣
@@ -648,8 +731,6 @@
}
}
function ListScroll2() {
- if (!data.thirdScroll) return
- // console.log('ListScroll2');
let scrollDom = scrollContainer2.value
if (!scrollDom) return
// 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
@@ -658,15 +739,15 @@
} else {
// 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
if (scrollDom.children.length < 10) {
- data.thirdScroll = false
+ clearTimeout(timer2.value)
return
}
// 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 2
+ scrollDom.scrollTop += 1
// console.log('scrollDom.scrollTop', scrollDom.scrollTop);
// console.log('scrollDom.scrollHeight - scrollDom.clientHeight', scrollDom.scrollHeight - scrollDom.clientHeight);
// 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) {
+ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
// 鑾峰彇缁勪欢绗竴涓妭鐐�
let first = scrollDom.children[0]
// 鍒犻櫎鑺傜偣
@@ -677,9 +758,6 @@
}
}
function ListScroll3() {
-
- if (!data.fourthScroll) return
- // console.log('ListScroll3');
let scrollDom = scrollContainer3.value
if (!scrollDom) return
// 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
@@ -691,13 +769,13 @@
// alert(scrollDom.children.length +"---------------"+num)
// 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
if (scrollDom.children.length <= num) {
- data.fourthScroll = false
+ clearTimeout(timer3.value)
return
}
// 缁勪欢杩涜婊氬姩
scrollDom.scrollTop = scrollDom.scrollTop+2
// 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight -2)) {
+ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
// 鑾峰彇缁勪欢绗竴涓妭鐐�
let first = scrollDom.children[0]
// 鍒犻櫎鑺傜偣
@@ -708,26 +786,35 @@
}
}
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)
- // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+ // console.log(scrollDom.offsetHeight);
+ let num = scrollDom.offsetHeight / 35;
+ num = num + (scrollDom.offsetHeight % 35 > 0 ? 1 : 0)
+ // console.log('----------');
+ // console.log('scrollDom.children.length', scrollDom.children.length)
+ // console.log('scrollDom.offsetHeight % 35', scrollDom.offsetHeight % 35)
+ // console.log('num', num)
+ // console.log('----------');
+ // // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
if (scrollDom.children.length <= num) {
- data.fifthScroll = false
+ clearTimeout(timer4.value)
return
}
// 缁勪欢杩涜婊氬姩
- scrollDom.scrollTop += 2
+ scrollDom.scrollTop += 1
+
// 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
- if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight - 2)) {
+ if (scrollDom.scrollTop >= (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+ console.log('scrollDom.scrollTop', scrollDom.scrollTop);
+ console.log('scrollDom.scrollHeight', scrollDom.scrollHeight);
+ console.log('scrollDom.clientHeight', scrollDom.clientHeight );
+ // if (scrollDom.scrollTop >= 35) {
+
// 鑾峰彇缁勪欢绗竴涓妭鐐�
let first = scrollDom.children[0]
// 鍒犻櫎鑺傜偣
@@ -737,27 +824,26 @@
}
}
}
-function scrillAction() {
- ListScroll()
- ListScroll1()
- ListScroll2()
- ListScroll3()
- ListScroll4()
-}
+
+// onUnmounted(() => {
+
+// })
onMounted(() => {
+ if (departId.value) {
+ console.log('onMounted');
+ init()
+ timer5.value = setInterval(init, 60000)
+ timer.value = setInterval(scrillAction, 100)
+ }
window.addEventListener('resize', () => {
setTypeChart()
setDayChart()
})
- if (!departId.value) return;
- init()
- timer5.value = setInterval(init, 60000)
- timer.value = setInterval(scrillAction, 100)
+
})
onUnmounted(() => {
- console.log('鍋滄婊寸瓟');
clearTimeout(timer.value)
clearTimeout(timer5.value)
@@ -768,9 +854,6 @@
$fixed-height: 690px;
.content1 {
- scrollbar-width:none;
- -ms-overflow-style:none;
- ::-webkit-scrollbar{display:none}
flex: 1;
width: 100%;
height: auto;
@@ -1061,12 +1144,7 @@
&:nth-child(5) {
flex: 3;
- }
- &:nth-child(4) {
- flex: 0.7;
- }
- &:nth-child(6) {
- flex: 0.7;
+
}
}
}
@@ -1103,15 +1181,10 @@
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;
@@ -1316,15 +1389,9 @@
font-weight: 500;
color: #01D9FE;
- &:nth-child(5) {
- flex: 0.5;
+ &:nth-child(4) {
+ flex: 2;
}
- &:nth-child(6) {
- flex: 0.5;
- }
- &:nth-child(7) {
- flex: 0.7;
- }
}
}
@@ -1363,16 +1430,9 @@
justify-content: center;
color: #FFFFFF;
- &:nth-child(5) {
- flex: 0.5;
+ &:nth-child(4) {
+ flex: 2;
}
- &:nth-child(6) {
- flex: 0.5;
- }
- &:nth-child(7) {
- flex: 0.7;
- }
-
}
}
}
@@ -1512,11 +1572,8 @@
font-weight: 500;
color: #01D9FE;
- // &:first-child {
- // flex: 2;
- // }
- &:nth-child(3) {
- flex: 0.7;
+ &:first-child {
+ flex: 2;
}
}
}
@@ -1555,12 +1612,10 @@
align-items: center;
justify-content: center;
color: #FFFFFF;
- &:nth-child(3) {
- flex: 0.7;
+
+ &:first-child {
+ flex: 2;
}
- // &:first-child {
- // flex: 2;
- // }
}
}
}
--
Gitblit v1.9.3