From 4f759039c251fea61591a9bf7836d2c8b8993c0a Mon Sep 17 00:00:00 2001
From: Gary Gu <garygu@Garydebijibendiannao.local>
Date: Thu, 29 May 2025 15:48:54 +0800
Subject: [PATCH] fix: 修复el-scrollbar滑动问题
---
src/views/ProjectView.vue | 131 +++++++++++++++++++++++++++++++------------
1 files changed, 94 insertions(+), 37 deletions(-)
diff --git a/src/views/ProjectView.vue b/src/views/ProjectView.vue
index 586d7b3..4b0c819 100644
--- a/src/views/ProjectView.vue
+++ b/src/views/ProjectView.vue
@@ -38,9 +38,9 @@
alt=""
class="h-[30px] w-[40px]"
>
- <div class="text-white text-[14px]">一期总建筑面积</div>
+ <div class="text-white text-[16px]">一期总建筑面积</div>
<div class="flex items-center justify-center">
- <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">103.18</div>
+ <div class="text-[24px] text-[#FFD500] font-bold mr-[8px]">{{projectInfo.GrossFloorArea ? projectInfo.GrossFloorArea : '103.18'}}</div>
<div class="text-[14px] text-white">万㎡</div>
</div>
</div>
@@ -60,7 +60,7 @@
alt=""
class="h-[30px] w-[40px]"
>
- <div class="text-white text-[14px]">目标完成日期</div>
+ <div class="text-white text-[16px]">目标完成日期</div>
<div class="flex items-center justify-center">
<div class="text-[24px] text-[#00FFFF] font-bold">{{projectInfo.endDate? projectInfo.endDate : '2028-12-01'}}</div>
</div>
@@ -109,7 +109,7 @@
<div class="flex justify-between mb-[10px]">
<div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
<div class="text-white text-[14px] flex flex-col items-center justify-center">
- <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.buildingUnit}}</div>
+ <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.buildingUnit}}</div>
<div class="text-[12px] text-[#ddd]">建设单位</div>
</div>
<img
@@ -120,7 +120,7 @@
</div>
<div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
<div class="text-white text-[14px] flex flex-col items-center justify-center">
- <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.constructionUnit}}</div>
+ <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.constructionUnit}}</div>
<div class="text-[12px] text-[#ddd]">施工单位</div>
</div>
<img
@@ -134,7 +134,7 @@
<div class="flex justify-between">
<div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mr-[8px] mb-[10px] lineB">
<div class="text-white text-[14px] flex flex-col items-center justify-center">
- <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.supervisionUnit}}</div>
+ <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.supervisionUnit}}</div>
<div class="text-[12px] text-[#ddd]">监理单位</div>
</div>
<img
@@ -145,7 +145,7 @@
</div>
<div class="w-[48%] h-[50px] px-[12px] flex items-center justify-between mb-[10px] lineB">
<div class="text-white text-[14px] flex flex-col items-center justify-center">
- <div class="text-[16px] text-[#00FFFF]">{{projectParticipatingNumber.designUnit}}</div>
+ <div class="text-[18px] text-[#00FFFF]">{{projectParticipatingNumber.designUnit}}</div>
<div class="text-[12px] text-[#ddd]">设计单位</div>
</div>
<img
@@ -171,36 +171,24 @@
</div>
<!-- 表格 -->
- <div
- class="chartTable w-full h-[300px] px-[8px] py-[10px] overflow-y-auto"
- :style="{
- backgroundImage: `url(${tableImage})`,
- backgroundRepeat: 'no-repeat',
- backgroundPosition: 'center center',
- backgroundSize: '100% 100%'
- }"
+ <el-table
+ ref="filterTable"
+ :data="tableData"
+ class="chartTable w-full h-[300px] overflow-y-auto"
>
- <table class="w-full text-white text-[14px] overflow-y-auto">
- <thead>
- <tr class="table-header">
- <th class="py-[8px] text-left pl-[12px]">类型</th>
- <th class="py-[8px] text-left">阶段</th>
- <th class="py-[8px] text-left">名称</th>
- </tr>
- </thead>
- <tbody>
- <tr
- v-for="item in tableData"
- :key="item.id"
- class="border-b border-[rgba(255,255,255,0.1)]"
- >
- <td class="py-[8px] pl-[12px]">{{ item.UnitTypeText }}</td>
- <td class="py-[8px]">{{ item.stage ? item.stage : '--' }}</td>
- <td class="py-[8px]">{{ item.UnitName }}</td>
- </tr>
- </tbody>
- </table>
- </div>
+ <el-table-column prop="UnitTypeText" label="类型" width="180" />
+ <el-table-column prop="Bind" label="阶段" width="180"
+ :filters="bindFilters"
+ :filter-method="filterBind"
+ filter-placement="bottom-end">
+ <template slot-scope="scope">
+ <div class="long_title">
+ <span>{{ scope.row.Bind&&scope.row.Bind !== '' ?scope.row.Bind: '--'}}</span>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="UnitName" label="名称" />
+ </el-table>
</div>
</div>
</div>
@@ -221,6 +209,7 @@
bgImage: new URL('@/assets/images/titles/title_second.png', import.meta.url).href,
tableImage: new URL('@/assets/images/backgrounds/table_bg.png', import.meta.url).href,
projectInfo: {
+ GrossFloorArea: '',
ProjectName: '',
Description: '',
Thumbnail: '',
@@ -233,6 +222,7 @@
designUnit: 0
},
tableData: [],
+ bindFilters: [{ text: '家', value: '家' }], // 示例阶段列表
};
},
mounted() {
@@ -257,6 +247,7 @@
this.projectInfo.ProjectName = result.ProjectName
this.projectInfo.Description = result.Description
this.projectInfo.Thumbnail = result.Thumbnail
+ this.projectInfo.GrossFloorArea = result.GrossFloorArea
}
}
@@ -274,6 +265,15 @@
console.log(result);
if(result.length > 0) {
this.tableData = result
+ const newArray = []
+ result.forEach(item => {
+ if(item.Bind && item.Bind !== 'null') {
+ newArray.push({ text: item.Bind, value: item.Bind })
+ }
+ })
+ this.bindFilters = this.arrayFilter(newArray, 'value')
+ console.log(newArray, this.bindFilters);
+
} else {
this.tableData = []
}
@@ -281,6 +281,12 @@
}
});
},
+ // 数组去重
+ arrayFilter (arr, key) {
+ const res = new Map()
+ return arr.filter(arr => !res.has(arr[key]) && res.set(arr[key], 1))
+ },
+
getParticipatingNumber() {
const data = {
"organizeId": this.projectId
@@ -308,7 +314,16 @@
},
searchList() {
this.getParticipatingList(this.searchText)
- }
+ },
+ filterBind(value, row) {
+ return row.Bind === value;
+ },
+ resetDateFilter() {
+ this.$refs.filterTable.clearFilter('date');
+ },
+ clearFilter() {
+ this.$refs.filterTable.clearFilter();
+ },
}
}
</script>
@@ -384,6 +399,48 @@
height: calc(40% - 170px);
.chartTable{
height: calc(100% - 10px);
+
}
+ ::v-deep .el-table{
+ background-image: url("~@/assets/images/backgrounds/table_bg.png");
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-size: 100% 100%;
+ background-color: #0E2B46;
+ padding: 8px 10px;
+ .el-table__header tr,
+ .el-table__header th {
+ background: linear-gradient(180deg, #3068A5 0%, #1E4066 100%);
+ box-shadow: inset 0px 1px 0px 0px rgba(255,255,255,0.2);
+ padding: 0;
+ height: 32px;
+ .cell{
+ text-align: center;
+ }
+ }
+ tbody{
+ overflow: hidden;
+ tr {
+ .el-table__cell{
+ padding: 10px 0;
+ }
+ td {
+ .cell {
+ color: #fff;
+ font-size: 12px;
+ text-align: center;
+ background-color: transparent !important;
+ }
+ }
+ td.el-table__cell{
+ padding: 10px 0;
+ border-bottom: 1px solid #3685F4;
+ }
+ }
+ tr.el-table__row{
+ background-color: transparent !important;
+ }
+ }
+ }
}
</style>
--
Gitblit v1.9.3