From 310156b7244cd7b0c1b958f4267b5cf4e12bd90a Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期五, 08 三月 2024 17:15:45 +0800
Subject: [PATCH] fix:修改获取实例
---
src/views/daoAnOffice/right/danger/dataTable.vue | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 160 insertions(+), 9 deletions(-)
diff --git a/src/views/daoAnOffice/right/danger/dataTable.vue b/src/views/daoAnOffice/right/danger/dataTable.vue
index 9df40e7..1a9a2df 100644
--- a/src/views/daoAnOffice/right/danger/dataTable.vue
+++ b/src/views/daoAnOffice/right/danger/dataTable.vue
@@ -4,18 +4,22 @@
<div class="top-title">瀹夊叏浜嬫晠鍒楄〃</div>
<div class="table-select flex">
<div class="select-item mr-2 ml-2 cursor-pointer flex items-center"
- :class="{ 'item-active': selectItem.isActive }" v-for="selectItem in tableType" :key="selectItem.id">{{
+ :class="{ 'item-active': selectItem.isActive }" v-for="selectItem in tableType" :key="selectItem.id"
+ @click="changeSelect(selectItem)">{{
selectItem.type }}</div>
</div>
</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 }}
@@ -24,6 +28,7 @@
</el-table-column>
<el-table-column label="涓嬪彂閫氱煡涔�" align="center">
+
<template #default="scope">
<div style="color: #CFB249;">
{{ scope.row.num2 }}
@@ -31,6 +36,7 @@
</template>
</el-table-column>
<el-table-column label="澶勭疆鏁伴噺" align="center">
+
<template #default="scope">
<div style="color: #2BB06D;">
{{ scope.row.num3 }}
@@ -45,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 },
@@ -101,22 +109,135 @@
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,
+ num2: 5,
+ num3: 2
+ },
];
+
+const changeSelect = (selectItem) => {
+ tableType.value.forEach((item) => {
+ item.isActive = false;
+ });
+ selectItem.isActive = true;
+}
+
+let scrollTableOne = ref("");
+
+const tableNode = ref(null);
+const scrollHeight = ref(null);
+const scrollTop = ref(null);
+const isBind = ref(false);
+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;
+ 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 bindWheel = (dom) => {
+ if (isBind.value) return;
+ isBind.value = true;
+ dom.addEventListener("mousewheel", () => {
+ clearScroll();
+ debounce(() => {
+ scrollTable();
+ }, 300)
+ })
+}
+
+
+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>
.container {
height: 360px;
}
+
.table-container {
position: relative;
}
+
.table-content {
width: 100%;
position: absolute;
top: 0;
bottom: 0;
}
+
.table-top {
height: 51px;
background-color: rgba(17, 34, 58, 0.6);
@@ -132,13 +253,17 @@
font-size: 16px;
color: #447ED6;
margin-left: 20px;
+ font-family: 'PingFang SC';
+
}
.select-item {
- padding: 0 14px;
+ padding: 0 16px;
height: 100%;
border-bottom: 2px solid RGBA(98, 137, 230, 0);
color: rgba(94, 134, 194, 1);
+ font-family: 'PingFang SC';
+
}
.item-active {
@@ -147,16 +272,14 @@
}
.data-table {
- font-size: 14px;
+ font-size: 16px;
border: 1px solid #29466A;
width: 100%;
height: 100%;
background: transparent;
+ font-family: 'PingFang SC';
+
}
-
-.table-color1 {}
-
-
::v-deep .el-table__inner-wrapper::before {
background-color: transparent;
@@ -174,4 +297,32 @@
.el-table__fixed-right {
height: 100% !important;
}
+
+.scroll-table {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 85%;
+ overflow: hidden;
+}
+
+::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
+ background-color: unset;
+}
+
+::v-deep .el-scrollbar__bar.is-vertical {
+ display: none !important;
+}
+// .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