From 221d9dfd1634d5fab98a686b0b8a83f6f1e088b5 Mon Sep 17 00:00:00 2001
From: Mr.Zhang <710666463@qq.com>
Date: 星期四, 24 八月 2023 10:56:56 +0800
Subject: [PATCH] 大屏 08.24

---
 screen_standard/src/views/index.vue |  508 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 277 insertions(+), 231 deletions(-)

diff --git a/screen_standard/src/views/index.vue b/screen_standard/src/views/index.vue
index ebfbe10..fdfbaa9 100644
--- a/screen_standard/src/views/index.vue
+++ b/screen_standard/src/views/index.vue
@@ -1,26 +1,7 @@
 <template>
   <div class="content1">
-    <div class="content_left">
-      <!-- 褰撴棩鍛樺伐浜ч噺TOP10 -->
-      <div class="content_left_item1">
-        <div class="content_left_item1_head">
-          <span>褰撴棩鍛樺伐浜ч噺TOP10</span>
-        </div>
-        <div class="content_left_item1_content">
-          <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>
-              <span>{{ item.userName }}</span>
-            </div>
-            <div class="content_left_item1_content_row_line">
-              <el-progress :show-text="false" :percentage="item.doneNum / baseNum * 100">
-              </el-progress>
-            </div>
-            <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div>
-          </div>
-        </div>
-      </div>
-      <!-- 浠撳簱瀹炴椂浣欓噺缁熻 -->
+    <!-- <div class="content_left">
+    
       <div class="content_left_item2">
         <div class="content_left_item2_head">
           <span>浠撳簱瀹炴椂浣欓噺缁熻</span>
@@ -45,7 +26,7 @@
           </div>
         </div>
       </div>
-    </div>
+    </div> -->
     <div class="content_center">
       <!-- 鎴愬搧璁″垝杩涘害/宸ュ簭杩涘害 -->
       <div class="content_center_top">
@@ -73,15 +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>
-                      <!-- <img v-if="i == 0 || i == 1" src="@/assets/img/ic_complete@2x.png" alt="" /> -->
-                      <span v-if="child.rate < 100">{{ child.rate }}%</span>
+                      <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 }}</span>
+                      <span class="scroll_item_row_item_wz">{{ child.procedureName.substring(0, 3) }}</span>
                     </div>
                   </el-tooltip>
                 </div>
@@ -110,38 +90,60 @@
                 <div class="scroll_item_row">{{ item.qualifiedNum }}</div>
                 <div class="scroll_item_row">{{ item.unqualifiedNum }}</div>
                 <div class="scroll_item_row">{{ item.undoneNum }}</div>
-                <div class="scroll_item_row">{{ item.unqualifiedRate }}%</div>
+                <div class="scroll_item_row">{{ (item.unqualifiedRate||0).toFixed(2) }}%</div>
               </div>
             </div>
           </div>
         </div>
       </div>
       <!-- 鎶ュ伐鏃ュ織 -->
-      <div class="content_center_bottom">
-        <div class="content_center_bottom_head">
-          <span>鎶ュ伐鏃ュ織</span>
-        </div>
-        <div class="content_center_bottom_b">
-          <div class="content_center_top_form_head">
-            <div class="content_center_top_form_head_item">鍛樺伐鍚嶇О</div>
-            <div class="content_center_top_form_head_item">鐗╂枡鍚嶇О</div>
-            <div class="content_center_top_form_head_item">鐗╂枡缂栫爜</div>
-            <div class="content_center_top_form_head_item">鎶ュ伐鏃堕棿</div>
-            <div class="content_center_top_form_head_item">鑹搧鏁�</div>
-            <div class="content_center_top_form_head_item">涓嶈壇鍝佹暟</div>
-            <div class="content_center_top_form_head_item">涓嶈壇鐜�</div>
+      <div style="display: flex;">
+        <div class="content_left" style="flex: 1;">
+          <div class="content_left_item1">
+            <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_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>
+                  <span>{{ item.userName }}</span>
+                </div>
+                <div class="content_left_item1_content_row_line">
+                  <el-progress :show-text="false" :percentage="item.doneNum / baseNum * 100">
+                  </el-progress>
+                </div>
+                <div class="content_left_item1_content_row_num">{{ item.doneNum }}</div>
+              </div>
+            </div>
           </div>
-          <div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container">
-            <div ref="scrollContainer3" class="scroll_container">
-              <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.materialCode }}</div>
-                <div class="scroll_item_row">{{ item.createTime }}</div>
-                <div class="scroll_item_row">{{ item.qualifiedNum ? item.qualifiedNum : '-' }}</div>
-                <div class="scroll_item_row">{{ item.unqualifiedNum }}</div>
-                <div class="scroll_item_row">{{ item.unqualifiedRate ? item.unqualifiedRate : '0' }}%</div>
+        </div>
+        <div class="content_center_bottom">
+          <div class="content_center_bottom_head">
+            <span>鎶ュ伐鏃ュ織</span>
+          </div>
+          <div class="content_center_bottom_b">
+            <div class="content_center_top_form_head">
+              <div class="content_center_top_form_head_item">鍛樺伐鍚嶇О</div>
+              <div class="content_center_top_form_head_item">鐗╂枡鍚嶇О</div>
+              <div class="content_center_top_form_head_item">宸ュ簭</div>
+              <div class="content_center_top_form_head_item">鎶ュ伐鏃堕棿</div>
+              <div class="content_center_top_form_head_item">鑹搧鏁�</div>
+              <div class="content_center_top_form_head_item">涓嶈壇鍝佹暟</div>
+              <div class="content_center_top_form_head_item">涓嶈壇鐜�</div>
+            </div>
+            <div @mouseenter="handleMouseEnter3" @mouseleave="handleMouseLeave3" class="main_container">
+              <div ref="scrollContainer3" class="scroll_container">
+                <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">{{ dateToSub(item.createTime) }}</div>
+                  <div class="scroll_item_row">{{ item.qualifiedNum || 0 }}</div>
+                  <div class="scroll_item_row">{{ item.unqualifiedNum || 0 }}</div>
+                  <div class="scroll_item_row">{{ (item.unqualifiedRate || 0).toFixed(2) }}%</div>
+                </div>
               </div>
             </div>
           </div>
@@ -155,16 +157,20 @@
           <span>杩�7澶╀笉鑹搧鍒嗗竷</span>
         </div>
         <div class="content_right_top_nr">
-          <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0">
-            <span>{{ data.num }}</span>
-            <span>涓嶈壇椤瑰垎甯�</span>
-          </div>
+          
           <div class="content_right_top_nr_top" id="lineChrat"></div>
-          <div class="content_right_top_nr_bottom" id="pieChart"></div>
+          <div class="content_right_top_nr_bottom">
+            <div class="content_right_top_nr_bottom_yuan" v-if="data.typeDistribution.length > 0">
+              <span>{{ data.num }}</span>
+              <span>涓嶈壇椤瑰垎甯�</span>
+            </div>
+            <div id="pieChart"></div>
+          </div>
+          
         </div>
       </div>
       <!-- 璁惧宸℃璁板綍 -->
-      <div class="content_right_bottom">
+      <div class="content_right_bottom" ref="bottom1">
         <div class="content_right_bottom_head">
           <span>璁惧宸℃璁板綍</span>
         </div>
@@ -179,9 +185,12 @@
             <div ref="scrollContainer4" class="scroll_container">
               <div v-for="(item, index) in data.patrolInspection" :key="index"
                 :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
-                <div class="scroll_item_row">{{ item.checkdate }}</div>
+                <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>
@@ -193,8 +202,9 @@
 </template>
 
 <script setup>
-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 { 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 { useCounterStore } from '@/stores/counter.js'
 import * as echarts from 'echarts'
 import { useRouter } from 'vue-router'
@@ -211,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: '鎴愬搧璁″垝杩涘害',
@@ -264,43 +276,54 @@
   }
 })
 
-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
+        data.fifthScroll = true
       }
     })
   // 浠撳簱瀹炴椂浣欓噺缁熻
-  getStockList(companyId.value, departId.value)
-    .then(res => {
-      data.marginStatistics = res
-      nextTick(() => {
-        start()
-      })
-    })
-  // 鎴愬搧璁″垝杩涘害
-  getWorkPlansList(companyId.value, departId.value)
-    .then(res => {
-      data.plannedProgress = res
-      nextTick(() => {
-        start1()
-      })
-    })
+  // getStockList(companyId.value, departId.value)
+  //   .then(res => {
+  //     data.marginStatistics = res
+  //     nextTick(() => {
+  //       start()
+  //     })
+  //   })
+  cate.value.forEach((item, index) => {
+    if (item.active) {
+      if (index == 1) {
+        getProcedureProcessList(companyId.value, departId.value)
+          .then(res => {
+            data.processProgress = res
+            data.thirdScroll = true
+          })
+      } else {
+        // 鎴愬搧璁″垝杩涘害
+        getWorkPlansList(companyId.value, departId.value)
+          .then(res => {
+            data.plannedProgress = res
+            data.secondScroll = true
+          })
+      }
+    }
+  })
+ 
+  
   // 鎶ュ伐鏃ュ織
   getRecordLogPage(companyId.value, departId.value, {
-    capacity: 9999,
+    capacity: 20,
     model: {},
     page: 1
   }).then(res => {
     data.log = res.records
-    nextTick(() => {
-      start3()
-    })
+    data.fourthScroll = true
   })
   // 璁惧宸℃璁板綍
   getDeviceCheckPage(companyId.value, departId.value, {
@@ -309,9 +332,7 @@
     page: 1
   }).then(res => {
     data.patrolInspection = res.records
-    nextTick(() => {
-      start4()
-    })
+    data.fifthScroll = true
   })
   // 杩戜竷澶╀笉鑹暟
   getUnqualified7DayData(companyId.value, departId.value, '')
@@ -338,6 +359,7 @@
             num: item.unqualifiedNum
           }
         })
+        console.log(data.num);
         setTypeChart()
       }
     })
@@ -356,16 +378,14 @@
   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
@@ -497,9 +517,6 @@
             }
           }
         },
-        // labelLayout: {
-        //   hideOverlap: true
-        // },
         endLabel: {
           show: true,
           distance: 5,
@@ -519,24 +536,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) {
       // 鎴愬搧璁″垝杩涘害
@@ -544,17 +544,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
@@ -564,85 +560,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 < 8) {
-      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]
       // 鍒犻櫎鑺傜偣
@@ -653,20 +621,23 @@
   }
 }
 function ListScroll1() {
+  if (!data.secondScroll) return
+  // console.log('ListScroll1');
   let scrollDom = scrollContainer1.value
   // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+  if (!scrollDom) return
   if (scrollDom.offsetHeight == 0) {
     scrollDom = scrollContainer1.value
   } 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 - 2)) {
       // 鑾峰彇缁勪欢绗竴涓妭鐐�
       let first = scrollDom.children[0]
       // 鍒犻櫎鑺傜偣
@@ -677,20 +648,25 @@
   }
 }
 function ListScroll2() {
+  if (!data.thirdScroll) return
+  // console.log('ListScroll2');
   let scrollDom = scrollContainer2.value
+  if (!scrollDom) return
   // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
   if (scrollDom.offsetHeight == 0) {
     scrollDom = scrollContainer2.value
   } else {
     // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
-    if (scrollDom.children.length < 7) {
-      clearTimeout(timer2.value)
+    if (scrollDom.children.length < 10) {
+      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]
       // 鍒犻櫎鑺傜偣
@@ -701,20 +677,27 @@
   }
 }
 function ListScroll3() {
+  
+  if (!data.fourthScroll) return
+  // console.log('ListScroll3');
   let scrollDom = scrollContainer3.value
+  if (!scrollDom) return
   // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
   if (scrollDom.offsetHeight == 0) {
     scrollDom = scrollContainer3.value
   } else {
     // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
-    if (scrollDom.children.length < 6) {
-      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]
       // 鍒犻櫎鑺傜偣
@@ -725,20 +708,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 < 7) {
-      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]
       // 鍒犻櫎鑺傜偣
@@ -748,19 +737,41 @@
     }
   }
 }
-
-// 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 {
+  scrollbar-width:none;
+  -ms-overflow-style:none;
+  ::-webkit-scrollbar{display:none}
+  flex: 1;
   width: 100%;
   height: auto;
   display: flex;
@@ -769,9 +780,11 @@
 
   .content_left {
     flex: 1;
+    margin-right: 20px;
     .content_left_item1 {
       width: 100%;
-      height: 398px;
+      height:  calc(100vh - 690px);
+    //  height: 284px;
       margin-bottom: 20px;
       .content_left_item1_head {
         background: url('@/assets/img/home_title_short@2x.png');
@@ -795,8 +808,9 @@
 
       .content_left_item1_content {
         width: 100%;
-        height: 360px;
+        height: calc(100% - 36px);
         padding: 20px;
+        overflow: hidden;
         box-sizing: border-box;
         background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
 
@@ -805,7 +819,8 @@
           display: flex;
           align-items: center;
           justify-content: space-between;
-          margin-bottom: 13px;
+          // margin-bottom: 13px;
+          padding: 7px 0;
 
           &:last-child {
             margin: 0;
@@ -878,8 +893,6 @@
     .content_left_item2 {
       width: 100%;
       flex: 1;
-      display: flex;
-      flex-direction: column;
       .content_left_item2_head {
         background: url('@/assets/img/home_title_short@2x.png');
         background-repeat: no-repeat;
@@ -903,14 +916,13 @@
       .content_left_item2_content {
         width: 100%;
         height: 361px;
-        height: 100%;
         padding: 20px;
         box-sizing: border-box;
         background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
 
         .item2_content_head {
           width: 100%;
-          height: 36px;
+          height: 35px;
           display: flex;
           align-items: center;
           background: rgba(52, 88, 159, 0.5);
@@ -934,7 +946,7 @@
 
         .main_container {
           width: 100%;
-          height: calc(100% - 36px);
+          height: calc(100% - 38px);
 
           .scroll_container {
             width: 100%;
@@ -951,7 +963,7 @@
 
             .scroll_item {
               width: 100%;
-              height: 36px;
+              height: 35px;
               display: flex;
               align-items: center;
 
@@ -980,17 +992,17 @@
   }
 
   .content_center {
-    flex: 2;
-    margin: 0 20px;
+    flex: 3;
+    margin-right: 20px;
     .content_center_top {
       width: 100%;
-      height: 509px;
+      height: 424px;
       margin-bottom: 20px;
       background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
 
       .content_center_top_list {
         width: 100%;
-        height: 38px;
+        height: 35px;
         display: flex;
         align-items: center;
 
@@ -1005,9 +1017,9 @@
         }
         .content_center_top_list_item {
           width: 200px;
-          height: 38px;
+          height: 35px;
           cursor: pointer;
-          line-height: 38px;
+          line-height: 35px;
           padding-left: 34px;
           box-sizing: border-box;
           font-size: 16px;
@@ -1048,7 +1060,13 @@
             color: #01D9FE;
 
             &:nth-child(5) {
-              flex: 2.7;
+              flex: 3;
+            }
+            &:nth-child(4) {
+              flex: 0.7;
+            }
+            &:nth-child(6) {
+              flex: 0.7;
             }
           }
         }
@@ -1056,7 +1074,6 @@
         .main_container {
           width: 100%;
           height: calc(100% - 34px);
-
           .scroll_container {
             width: 100%;
             height: 100%;
@@ -1072,10 +1089,9 @@
 
             .scroll_item {
               width: 100%;
-              height: 58px;
+              height: 50px;
               display: flex;
               align-items: center;
-
               .scroll_item_row {
                 flex: 1;
                 height: 100%;
@@ -1087,17 +1103,24 @@
                 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;
                   width: 29px;
                   height: 29px;
                   border-radius: 50%;
                   margin-right: 19px;
                   display: flex;
+                  flex-direction: column;
                   align-items: center;
                   justify-content: center;
                   border: 2px solid #01D9FE;
@@ -1209,7 +1232,7 @@
 
             .scroll_item {
               width: 100%;
-              height: 36px;
+              height: 35px;
               display: flex;
               align-items: center;
 
@@ -1244,8 +1267,9 @@
 
     .content_center_bottom {
       width: 100%;
-      height: 286px;
-
+     // height: 284px;
+      height:  calc(100vh - 690px);
+      flex: 2;
       .content_center_bottom_head {
         width: 100%;
         height: 38px;
@@ -1292,9 +1316,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;
+                }
           }
         }
 
@@ -1317,7 +1347,7 @@
 
             .scroll_item {
               width: 100%;
-              height: 37px;
+              height: 35px;
               display: flex;
               align-items: center;
 
@@ -1333,9 +1363,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;
+                }
+
               }
             }
           }
@@ -1346,10 +1383,9 @@
 
   .content_right {
     flex: 1;
-
     .content_right_top {
       width: 100%;
-      height: 511px;
+      height: 425px;
       margin-bottom: 20px;
 
       .content_right_top_head {
@@ -1376,15 +1412,18 @@
         height: calc(100% - 38px);
         background: linear-gradient(180deg, rgba(52, 88, 159, 0) 0%, rgba(0, 86, 255, 0.4) 100%);
         position: relative;
-
+        #pieChart {
+          width: 100%;
+          height: 100%;
+        }
         .content_right_top_nr_bottom_yuan {
           position: absolute;
           top: 50%;
           left: 50%;
-          transform: translate(-50%, 53%);
+          transform: translate(-50%, -50%);
           z-index: 999;
-          width: 114px;
-          height: 114px;
+          width: 100px;
+          height: 100px;
           border-radius: 50%;
           border: 2px dashed #01D9FE;
           display: flex;
@@ -1419,14 +1458,16 @@
         .content_right_top_nr_bottom {
           width: 100%;
           height: 50%;
+          position: relative;
         }
       }
     }
 
     .content_right_bottom {
       width: 100%;
-      height: 284px;
+     // height: 284px;
 
+      height:  calc(100vh - 690px);
       .content_right_bottom_head {
         width: 100%;
         height: 38px;
@@ -1455,7 +1496,7 @@
 
         .item2_content_head {
           width: 100%;
-          height: 36px;
+          height: 35px;
           display: flex;
           align-items: center;
           background: rgba(52, 88, 159, 0.5);
@@ -1471,15 +1512,18 @@
             font-weight: 500;
             color: #01D9FE;
 
-            &:first-child {
-              flex: 2;
+            // &:first-child {
+            //   flex: 2;
+            // }
+            &:nth-child(3) {
+              flex: 0.7;
             }
           }
         }
 
         .main_container {
           width: 100%;
-          height: calc(100% - 36px);
+          height: calc(100% - 35px);
 
           .scroll_container {
             width: 100%;
@@ -1496,7 +1540,7 @@
 
             .scroll_item {
               width: 100%;
-              height: 36px;
+              height: 35px;
               display: flex;
               align-items: center;
 
@@ -1511,10 +1555,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