element-plus表格合并

要實現這樣的表格,?怎么做呢?

甚至是這種三級的呢?

官網的案例也是通過這個方法進行配置的,也就是說表格長什么樣,關鍵在怎么處理的方法上。

?這是官網的方法,可參考拓展:

const arraySpanMethod = ({row,column,rowIndex,columnIndex,
}: SpanMethodProps) => {if (rowIndex % 2 === 0) {if (columnIndex === 0) {return [1, 2]} else if (columnIndex === 1) {return [0, 0]}}
}const objectSpanMethod = ({row,column,rowIndex,columnIndex,
}: SpanMethodProps) => {if (columnIndex === 0) {if (rowIndex % 2 === 0) {return {rowspan: 2,colspan: 1,}} else {return {rowspan: 0,colspan: 0,}}}
}

不過它這里的方法并不符合我的要求,假如還有四級的呢?

?話不多說,給我的代碼,相關注釋有說明:

<template><div class="container"><Commonhead :title="title"></Commonhead><div class="table"><el-table:span-method="objectSpanMethod"ref="multipleTableRef"border:data="list"><el-table-column label="類型" prop="str1" min-width="180" /><el-table-column label="考核內容" prop="str2" min-width="180" /><el-table-column label="結果" prop="str3" min-width="180" /><el-table-column label="備注" prop="str4" min-width="180" /></el-table></div></div>
</template><script setup>
import Commonhead from "../src/components/Commonhead.vue";
const title = ref("項目管理 > 巡檢記錄 > 巡檢記錄詳情");
onMounted(() => {dealList();
});const multipleTableRef = ref();
const list = ref([// 忽略表格合并,每一行的數據,str1-6,代表幾級數據,也可以簡易理解為第幾列的數據(從上往下順序){str1: "遵章守法",str2: "(1)工作時間打牌、下棋、串崗或無故脫崗",str3: "是",str4: "備注內容備注內容備注內容",},{str1: "遵章守法",str2: "(2)上班時睡覺、在禁煙區內吸煙、吃東西、看書報、聽收音機及做與工作無關的事情",str3: "不是",str4: "無",},{str1: "崗位職責",str2: "(1)未認真履行崗位職責,保潔工作達不到質量標準,未造成影響和損失",str3: "不是",str4: "無",},
]);// 當前行 row、當前列 column、當前行號 rowIndex、當前列號 columnIndex
// 表格合并的方法
const objectSpanMethod = ({ row, column, rowIndex, columnIndex }) => {// 返回一個包含兩個元素的數組,第一個元素代表 rowspan,第二個元素代表 colspanif (columnIndex === 0) {return {rowspan: row.rowspan,colspan: row.colspan,};} else if (columnIndex === 1) {return {rowspan: row.rowspan2,colspan: row.colspan2,};} else if (columnIndex === 2) {return {rowspan: row.rowspan3,colspan: row.colspan3,};} else {return {rowspan: 1,colspan: 1,};}
};// 處理列表
const dealList = () => {if (list.value.length === 0) return;list.value.forEach((item, index) => {item.colspan = 1;item.rowspan = 1;item.colspan2 = 1;item.rowspan2 = 1;item.colspan3 = 1;item.rowspan3 = 1;});list.value.reverse()for (let i = 0; i < list.value.length; i++) {// 列合并處理if (i + 1 < list.value.length &&list.value[i].str1 == list.value[i + 1].str1) {list.value[i + 1].rowspan = list.value[i].rowspan + 1;list.value[i].rowspan = 0;}if (i + 1 < list.value.length &&list.value[i].str2 == list.value[i + 1].str2) {list.value[i + 1].rowspan2 = list.value[i].rowspan2 + 1;list.value[i].rowspan2 = 0;}if (i + 1 < list.value.length &&list.value[i].str3 == list.value[i + 1].str3) {list.value[i + 1].rowspan3 = list.value[i].rowspan3 + 1;list.value[i].rowspan3 = 0;}// 行合并處理if (list.value[i].str2 == "") {list.value[i].colspan = 2;list.value[i].colspan2 = 0;list.value[i].colspan3 = 0;}if (list.value[i].str3 == "") {list.value[i].colspan = 1;list.value[i].colspan2 = 2;list.value[i].colspan3 = 0;}if (list.value[i].str3 != "") {list.value[i].colspan = 1;list.value[i].colspan2 = 1;list.value[i].colspan3 = 1;}}list.value.reverse();
};// 整理數據列表的數據,將相同的數據段合并
const dataSort = (a, b) => {if (a["str1"] == b["str1"]) {if (a["str2"] == b["str2"]) {if (a["str3"] < b["str3"]) {return -1;}} else {if (a["str2"] < b["str2"]) {return -1;} else {return 1;}}} else {if (a["str1"] < b["str1"]) {return -1;} else {return 1;}}
};
</script><style scoped>
.container {padding: 20px;
}
.table {width: 1000px;margin: 0 auto;
}
</style>

將每一條數據進行遍歷,相關的字段把它合并在一起。可以簡單理解為本來都沒有合并,每一條從上往下為每一行,要是有相同的字段,就把單元格合并。(例如:倆個1,只取一個1)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712601.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712601.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712601.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一款云滲透工具 - Sea Moon

SeaMoon - 月海 什么是月海 &#x1f315; 月出于云卻隱于海 月海(Sea Moon) 是一款 FaaS/BaaS 實現的 Serverless 網絡工具集&#xff0c;期望利用云原生的優勢&#xff0c;實現更簡單、更便宜的網絡功能。 月海之名取自于蘇軾的《西江月頃在黃州》&#xff0c;寓意月海取自…

【JVM】JVM相關機制

1. JVM內存區域劃分 1.1 內存區域劃分簡介 內存區域劃分&#xff1a;實際上JVM也是一個進程&#xff0c;進程運行時需要向操作系統申請一些系統資源&#xff08;內存就是典型的資源&#xff09;&#xff0c;這些內存空間就支撐著后續Java程序的運行&#xff0c;而這些內存又會…

Python環境搭建:一站式指南

在當前AIGC技術蓬勃發展的背景下&#xff0c;Python作為人工智能領域最受青睞的編程語言之一&#xff0c;成為我們必須掌握的技能。因此&#xff0c;搭建一個適合自己的Python環境成為了每個Python開發者的首要任務。本文將為您提供一站式的Python環境搭建指南&#xff0c;幫助…

PythonOpenCV隨機粘貼圖像

import cv2 import numpy as np import random # 讀取兩個圖像 image1 cv2.imread(image1.jpg) image2 cv2.imread(image2.jpg) # 將image1轉換為灰度圖像 gray_image1 cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY) # 創建掩碼&#xff0c;黑色部分為0&#xff0c;非黑色部…

Python自動發郵件

我經常需要用手機看服務器的運行情況&#xff0c;所以就寫一個腳本&#xff0c;通過郵件把服務器運行情況發送給我&#xff0c;直接手機可以查看煉丹狀態。事實證明還是很有用的&#xff0c;所以撰寫一篇博文將腳本分享給大家。這里用到smtplib和email兩個python包。 import s…

力扣精選算法100道——顏色分類(雙指針和三指針倆種方法解決此題)

目錄 &#x1f6a9;了解題意 &#x1f6a9;算法分析 第一種方法&#xff1a;雙指針 &#x1f6a9;代碼實現一 第二種方法&#xff1a;三指針 &#x1f6a9;代碼實現二 &#x1f6a9;了解題意 本題將整數0&#xff0c;1&#xff0c;2代表紅白籃&#xff0c;nums中的整數并…

仿牛客網項目---私信列表和發送列表功能的實現

這篇文章我們來講一下我的這個項目的另外一個功能&#xff1a;私信列表和發送列表功能。 先來設計DAO層。 Mapper public interface MessageMapper {// 查詢當前用戶的會話列表,針對每個會話只返回一條最新的私信.List<Message> selectConversations(int userId, int of…

【激光SLAM】基于已知位姿的構圖算法 (Grid-based)

文章目錄 地圖分類概念 覆蓋柵格建圖算法柵格地圖的特征數學描述假設 算法流程激光雷達的逆觀測模型 計數(Count Model)建圖算法概念數學描述觀測模型地圖估計 地圖分類 概念 地圖即為環境的空間模型。環境地圖是機器人進行定位和規劃的前提。定位可以用特征地圖&#xff08;…

可穿戴設備相關Python包【待更】

提供7個python 包。 1 2 3 4 5 6 7 pyActigraphyGitHub - ghammad/pyActigraphy: Python-based open source package for actigraphy data analysisActiGraph ActiGraph GitHub

基礎內容哦!!!吳恩達deeplearning.ai:利用計算圖求導(反向傳播)

以下內容有任何不理解可以翻看我之前的博客哦&#xff1a;吳恩達deeplearning.ai專欄 文章目錄 一個小型神經網絡的例子利用計算圖逐步計算價值函數J利用計算圖求出價值函數的導數 計算圖是深度學習中的一個關鍵概念&#xff0c;它也是Tensorflow等編程框架自動計算神經網絡導…

Linux之sed命令詳解及實踐

1、定義 sed全稱是&#xff1a;stream editor 流編輯器 對文件的操作無非就是”增刪改查“&#xff0c;**sed命令就是實現對文件的”增刪改查“。** **man sed//man 的解釋** 用于過濾和轉換文本的流編輯器 2、功能 Sed 主要用來自動編輯一個或多個文件、簡化對文件的反復…

實現定時器的兩種方法:使用windows api定時器 和使用c++11/14 定時器

前言&#xff1a; 當我有一個開發需求&#xff0c;符合下面的條件 1.需要某個任務在程序中每隔一段時間就要執行一次&#xff0c;可能把這個任務封裝成了一個函數。 2.這種需要定時執行的任務&#xff0c;有2個&#xff0c;3個....越來越多。 這個時候我們就可以考慮使用定時…

iOS高級理論:常用的架構模式

一、常用的架構模式簡介 在 iOS 開發中&#xff0c;常用的架構模式有以下幾種&#xff1a; MVC&#xff08;Model-View-Controller&#xff09;模式&#xff1a;是 iOS 開發中最常見的架構模式。在 MVC 模式中&#xff0c;Model 負責數據處理和業務邏輯&#xff0c;View 負責界…

Tcl文件訪問

1. 基本文件輸入輸出命令 open 文件名 方式 set f [open $filename "r"] f 是文件的通道ID,可以使用open命令打開文件并獲取通道ID r 只讀方式打開,文件必須已經存在 r+ 讀寫方式打開,文件必須已經存在 w 只寫方式打開文件,如果文件存在則清空文件內容,否則創建…

第三百七十六回

文章目錄 1 .概念介紹2. 實現方法3. 示例代碼 我們在上一章回中介紹了在頁面之間共傳遞數據相關的內容&#xff0c;本章回中將介紹如何攔截路由.閑話休提&#xff0c;讓我們一起Talk Flutter吧。 1 .概念介紹 本章回中介紹的路由攔截是指在路由運行過程中&#xff0c;對路由做…

會了會了會了

public class text9 {/*在實際開發中&#xff0c;如果我們需要在多種情況中選擇其中一個,就可以用switch語句。當我m們撥打電話&#xff0c;會有一些按鍵選擇。假設我們撥打了一個機票預訂電話&#xff0c;電話中提示&#xff1a;1機票查詢2機票預訂3機票改簽4退出服務其他按鍵…

論文閱讀_代碼生成模型_CodeLlama

英文名稱: Code Llama: Open Foundation Models for Code 中文名稱: Code Llama&#xff1a;開放基礎代碼模型 鏈接: https://arxiv.org/abs/2308.12950 代碼: https://github.com/facebookresearch/codellama 作者: Baptiste Rozire, Jonas Gehring, Fabian Gloeckle, Sten So…

【前端素材】推薦優質在線花卉商城電商網頁Flowery平臺模板(附源碼)

一、需求分析 1、系統定義 在線花卉商城是一個通過互聯網提供花卉銷售服務的電子商務平臺&#xff0c;用戶可以在該平臺上瀏覽、選擇和購買各種花卉產品。 2、功能需求 在線花卉商城是一個通過互聯網提供花卉銷售服務的電子商務平臺&#xff0c;用戶可以在該平臺上瀏覽、選…

vscode在windows環境不能使用終端安裝依賴

會報這樣的錯誤提示 解決思路&#xff1a; 1、vscode用管理員打開 (非必須) 2、設置策略 打開 windows powerShell . 輸入命令 set-ExecutionPolicy RemoteSigned 然后 Y . 查看是否設置成功 get-executionpolicy 3、下載總是超時&#xff0c;設置鏡像源 查看鏡像源 npm …

【知識分享】vue制作一個頁面計算器

1.制作思路 制作一個簡單的頁面計算器可以分為以下幾個步驟&#xff1a; &#xff08;1&#xff09;創建 Vue 組件&#xff0c;包括顯示屏和按鈕組件。 &#xff08;2&#xff09;設置數據屬性&#xff0c;用于存儲計算器的當前狀態&#xff08;如顯示屏上的數字&#xff09…