欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > el-table实现固定列相同合并切重排序号

el-table实现固定列相同合并切重排序号

2024/10/28 12:28:01 来源:https://blog.csdn.net/qq_43474235/article/details/143274602  浏览:    关键词:el-table实现固定列相同合并切重排序号
效果图:
 如何实现:
<template><div><el-table:data="tableData"border:span-method="objectSpanMethod"style="width: 100%; margin-top: 20px"><el-table-column type="index" :index="getIndex" label="序号" width="80" /><el-table-column prop="resourceTypeName" label="需求类型" width="180" /><el-table-column prop="resourceName" label="属地需求" /><el-table-column prop="resourceNum" label="需求数量" /><el-table-column prop="dispatchNum" label="AI辅助建议" /></el-table></div>
</template>
<script setup>
import {onBeforeUnmount,onMounted,getCurrentInstance,ref,watch,nextTick,
} from "vue";const currentIndex = ref(1);
const tableData = ref([{resourceType: "1",resourceTypeName: "专家",resourceCode: "resource_gw_hfssjdccz",resourceName: "XXXX内容2",resourceNum: "1",dispatchNum: "0",},{resourceType: "1",resourceTypeName: "专家",resourceCode: "resource_gw_swzdsjdccz",resourceName: "XXXX内容1",resourceNum: "1",dispatchNum: "0",},{resourceType: "1",resourceTypeName: "专家",resourceCode: "resource_gw_tfjxcrbdccz",resourceName: "XXXX内容3",resourceNum: "2",dispatchNum: "8",},{resourceType: "3",resourceTypeName: "物资",resourceCode: "supp_material_type_1_1_1_1",resourceName: "XXXX内容4",resourceNum: "1",dispatchNum: "297191",},{resourceType: "3",resourceTypeName: "物资",resourceCode: "supp_material_type_1_1_1_1",resourceName: "XXXX内容9",resourceNum: "1",dispatchNum: "297191",},
]);const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {if (columnIndex === 1) {// 如果当前值和上一行的值相同,则将当前单元格隐藏if (row.resourceType === tableData.value[rowIndex - 1]?.resourceType) {return { rowspan: 0, colspan: 0 };} else {// 否则计算当前单元格应该跨越多少行let rowspan = 1;for (let i = rowIndex + 1; i < tableData.value.length; i++) {if (tableData.value[i].resourceType === row.resourceType) {rowspan++;} else {break;}}return { rowspan, colspan: 1 };}}
};const getIndex = (index) => {const resourceType = tableData.value[index].resourceType;let counter = 0;for (let i = 0; i < index; i++) {if (tableData.value[i].resourceType === resourceType) {counter++;}}return currentIndex.value + counter;
};
</script>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com