From 38a50cb176a78aa5bf5b9f550eb1aab520b402a6 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期四, 07 三月 2024 14:53:43 +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