From 6c757d5dab619fd759854778978270f0eecaec93 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期二, 05 三月 2024 17:33:57 +0800
Subject: [PATCH] fix:修改文字位置

---
 src/views/daoAnOffice/right/danger/dataTable.vue |  138 +++++++++++++++++++++++++++++++++------------
 1 files changed, 101 insertions(+), 37 deletions(-)

diff --git a/src/views/daoAnOffice/right/danger/dataTable.vue b/src/views/daoAnOffice/right/danger/dataTable.vue
index d9fce59..e9a1bae 100644
--- a/src/views/daoAnOffice/right/danger/dataTable.vue
+++ b/src/views/daoAnOffice/right/danger/dataTable.vue
@@ -11,12 +11,15 @@
     </div>
     <div class="table-container flex-1">
       <div class="table-content">
-        <el-table class="data-table" ref="dataTable" :data="tableData" :highlight-current-row="false" :stripe="true"
+
+        <el-table class="data-table body-table" ref="scrollTableOne" :data="tableData" :highlight-current-row="false"
+          :stripe="true"
           :header-cell-style="{ backgroundColor: 'transparent', color: '#79A5E9', borderColor: '#29466A' }"
           :cell-style="{ color: '#79A5E9', borderColor: '#29466A', paddingTop: '10px', paddingBottom: '10px' }"
           :row-style="{ backgroundColor: 'transparent' }">
           <el-table-column prop="street" label="闀�/琛楅亾" align="center" />
           <el-table-column label="鍙戠幇鏁伴噺" align="center">
+
             <template #default="scope">
               <div style="color: #6289E6;">
                 {{ scope.row.num1 }}
@@ -25,6 +28,7 @@
           </el-table-column>
 
           <el-table-column label="涓嬪彂閫氱煡涔�" align="center">
+
             <template #default="scope">
               <div style="color: #CFB249;">
                 {{ scope.row.num2 }}
@@ -32,6 +36,7 @@
             </template>
           </el-table-column>
           <el-table-column label="澶勭疆鏁伴噺" align="center">
+
             <template #default="scope">
               <div style="color: #2BB06D;">
                 {{ scope.row.num3 }}
@@ -46,7 +51,7 @@
 </template>
 
 <script setup>
-import { ref, onMounted, onUnmounted, nextTick, inject, watch } from 'vue';
+import { ref, onUnmounted, inject, nextTick, watch, watchEffect } from 'vue';
 
 const tableState = inject('tableState');
 
@@ -134,6 +139,12 @@
     num2: 5,
     num3: 2
   },
+  {
+    street: '濂庡厜濉旇閬�',
+    num1: 12,
+    num2: 5,
+    num3: 2
+  },
 ];
 
 const changeSelect = (selectItem) => {
@@ -143,45 +154,72 @@
   selectItem.isActive = true;
 }
 
+let scrollTableOne = ref("");
 
-// 澶勭悊琛ㄦ牸婊氬姩
-let timer = null;
-const dataTable = ref(null);
+const tableNode = ref(null);
+const scrollHeight = ref(null);
+const scrollTop = ref(null);
+const isBind = ref(false);
+let scrollTimer = null;
 
-// const clearScroll = () => {
-//   clearInterval(timer);
-//   timer = null;
-// }
+// 婊氬姩
+const scrollTable = () => {
+  clearScroll();
+  tableNode.value = scrollTableOne.value.$refs.bodyWrapper.getElementsByClassName(
+    "el-scrollbar__wrap"
+  )[0];
+  scrollHeight.value = tableNode.value.scrollHeight;
+  scrollTop.value = tableNode.value.scrollTop;
+  // bindWheel(tableNode.value);
+  scrollTimer = setInterval(() => {
+    scrollTableOne.value.setScrollTop(scrollTop.value++);
+    if (scrollTop.value >= scrollHeight.value - tableNode.value.offsetHeight) {
+      scrollTop.value = 0;
+      scrollTableOne.value.setScrollTop(0);
+    }
+  }, 50);
+};
 
-// const createScroll = () => {
-//   clearScroll();
-//   const table = dataTable.value.layout.table.refs;
+const bindWheel = (dom) => {
+  if(isBind.value) return;
+  isBind.value = true;
+  dom.addEventListener("mousewheel", () => {
+    clearScroll();
+    debounce(() => {
+      scrollTable();
+    }, 300)
+  })
+}
 
-//   const tableWrapper = table.bodyWrapper.firstElementChild.firstElementChild;
-//   console.log(tableWrapper);
-//   timer = setInterval(() => {
-//     tableWrapper.scrollTop += 1;
-//     if (tableWrapper.clientHeight + tableWrapper.scrollTop >= tableWrapper.scrollHeight) {
-//       tableWrapper.scrollTop = 0;
-//     }
-//   }, 100);
-// }
-// watch(tableState, (newValue) => {
-//   console.log(newValue);
-//   if (newValue) {
-//     nextTick(() => {
-//       setTimeout(() => {
-//         createScroll();
-//       }, 2000);
-//     })
-//   } else {
-//     clearScroll();
-//   }
-// })
 
-// onUnmounted(() => {
-//   clearScroll();
-// });
+const clearScroll = (() => {
+  clearInterval(scrollTimer);
+});
+
+// 闃叉姈鍑芥暟
+let timeout;
+function debounce(func, delay) {
+  clearTimeout(timeout);
+  timeout = setTimeout(func, delay);
+}
+
+watch(tableState, (newVal) => {
+  if (newVal) {
+    nextTick(() => {
+      setTimeout(() => {
+        scrollTable();
+      }, 500);
+    });
+  } else {
+    clearScroll();
+  }
+})
+
+onUnmounted(() => {
+  clearScroll();
+});
+
+
 </script>
 
 <style lang="scss" scoped>
@@ -215,6 +253,8 @@
   font-size: 16px;
   color: #447ED6;
   margin-left: 20px;
+  font-family: 'PingFang SC';
+
 }
 
 .select-item {
@@ -222,6 +262,8 @@
   height: 100%;
   border-bottom: 2px solid RGBA(98, 137, 230, 0);
   color: rgba(94, 134, 194, 1);
+  font-family: 'PingFang SC';
+
 }
 
 .item-active {
@@ -235,6 +277,8 @@
   width: 100%;
   height: 100%;
   background: transparent;
+  font-family: 'PingFang SC';
+
 }
 
 ::v-deep .el-table__inner-wrapper::before {
@@ -253,4 +297,24 @@
 .el-table__fixed-right {
   height: 100% !important;
 }
-</style>
\ No newline at end of file
+
+.scroll-table {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 85%;
+  overflow: hidden;
+}
+
+// .head-table {
+//   &:deep(.el-table__body-wrapper) {
+//     display: none;
+//   }
+// }
+
+// .body-table {
+//   :deep(.el-table__header-wrapper) {
+//     display: none;
+//   }
+// }</style>
\ No newline at end of file

--
Gitblit v1.8.0