From 1043219cb007721626edcbcb77c2c6fd7c392ac1 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期二, 05 三月 2024 16:01:44 +0800 Subject: [PATCH] feat:表格滚动 --- src/views/daoAnOffice/right/danger/dataTable.vue | 127 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 124 insertions(+), 3 deletions(-) diff --git a/src/views/daoAnOffice/right/danger/dataTable.vue b/src/views/daoAnOffice/right/danger/dataTable.vue index f532285..41c51d6 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" :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,9 @@ </template> <script setup> -import { ref } from 'vue'; +import { ref, onUnmounted, inject, nextTick, watch, watchEffect } from 'vue'; + +const tableState = inject('tableState'); const tableType = ref([ { id: 1, type: '鏈湀', isActive: true }, @@ -54,6 +61,42 @@ ]); const tableData = [ + { + street: '濂庡厜濉旇閬�', + num1: 12, + num2: 5, + num3: 2 + }, + { + street: '濂庡厜濉旇閬�', + num1: 12, + num2: 5, + num3: 2 + }, + { + street: '濂庡厜濉旇閬�', + num1: 12, + num2: 5, + num3: 2 + }, + { + street: '濂庡厜濉旇閬�', + num1: 12, + num2: 5, + num3: 2 + }, + { + street: '濂庡厜濉旇閬�', + num1: 12, + num2: 5, + num3: 2 + }, + { + street: '濂庡厜濉旇閬�', + num1: 12, + num2: 5, + num3: 2 + }, { street: '濂庡厜濉旇閬�', num1: 12, @@ -110,6 +153,57 @@ }); selectItem.isActive = true; } + +let scrollTableOne = ref(""); + +const tableNode = ref(null); +const scrollHeight = ref(null); +const scrollTop = ref(null); + +let scrollTimer = 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; + + scrollTimer = setInterval(() => { + scrollTableOne.value.setScrollTop(scrollTop.value++); + + + if (scrollTop.value >= scrollHeight.value - tableNode.value.offsetHeight) { + scrollTop.value = 0; + scrollTableOne.value.setScrollTop(0); + } + }, 50); +}; + + +const clearScroll = (() => { + clearInterval(scrollTimer); +}); + +watch(tableState, (newVal) => { + if (newVal) { + nextTick(() => { + setTimeout(() => { + scrollTable(); + }, 500); + }); + } else { + clearScroll(); + } +}) + +onUnmounted(() => { + clearScroll(); +}); + + </script> <style lang="scss" scoped> @@ -143,6 +237,8 @@ font-size: 16px; color: #447ED6; margin-left: 20px; + font-family: 'PingFang SC'; + } .select-item { @@ -150,6 +246,8 @@ height: 100%; border-bottom: 2px solid RGBA(98, 137, 230, 0); color: rgba(94, 134, 194, 1); + font-family: 'PingFang SC'; + } .item-active { @@ -163,6 +261,8 @@ width: 100%; height: 100%; background: transparent; + font-family: 'PingFang SC'; + } ::v-deep .el-table__inner-wrapper::before { @@ -180,4 +280,25 @@ .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