欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

elementplus el-table(行列互換)轉(zhuǎn)置的兩種方法

 更新時間:2024年06月25日 09:39:00   作者:qq_21138747  
本文主要介紹了elementplus el-table(行列互換)轉(zhuǎn)置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

方案一:

Element Plus v2.4.0, repl v3.4.0

<template>
<div>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="name" label="名字" width="180" />
    <el-table-column prop="weight" label="重量" width="180" />
    <el-table-column prop="maxWeight" label="最大重量" width="180" />
    <el-table-column prop="height" label="高度" width="180" />
    <el-table-column prop="width" label="寬度" width="180" />
    <el-table-column prop="speed" label="速度" width="180" />
  </el-table>
  <!-- 轉(zhuǎn)置代碼 -->
  <div>轉(zhuǎn)置table</div>
  <el-table :data="trans_tableData" style="width:100%">
        <el-table-column
          prop="title"
          label="">
        </el-table-column>
        <el-table-column
          v-for="(item,index) in props"
          :key="index"
          :prop="item.value"
          :label="item.label">
          <template v-slot:header>
            <span v-html="item.label"></span>
          </template>
          <template v-slot="{ row }">
            <span>{{ row[item.value] }}</span>
          </template>
        </el-table-column>
</el-table>
</div>
</template>

<script lang="ts" setup>
let tableData = [
        {
          name: '殲-20',
          weight: '25噸',
          maxWeight: '37噸',
          height: '4.69米',
          width: '21.2米',
          speed: '2馬赫'
        },
        {
          name: '殲-20-1',
          weight: '25噸-1',
          maxWeight: '37噸-1',
          height: '4.69米-1',
          width: '21.2米-1',
          speed: '2馬赫-1'
        }
      ]
const props = tableData.map((t) => {
    return {
        label: t.name,
        value: t.id || t.name
    }
})
console.log("props=",props)
function isExist (newArr, name) {
    for (let i = 0; i < newArr.length; i++) {
        if (newArr[i].title === name) {
            return newArr[i]
        }
    }
    return false
}
  /**
 *  定義映射字段表(最好取全量字段)
 * */
const mapObj = {
        name: '名稱',
        weight: '重量',
        maxWeight: '最大載重',
        height: '高度',
        width: '寬度',
        speed: '速度'
    }
const newArr = []
for (const t in mapObj) {
    for (let i = 0; i < tableData.length; i++) {
        const item = tableData[i]
        const result = isExist(newArr, mapObj[t])
        if (result) {
            result[item.name] = item[t] || ''
        } else {
            const obj = {}
            obj.title = mapObj[t]
            obj[item.name] = item[t] || ''
            newArr.push(obj)
        }
    }
}
console.log("newArr",newArr)
const trans_tableData = newArr
</script>

結(jié)果如下:

在這里插入圖片描述

方案二:

首先在elementui中 label 的值會被編譯成表頭名字,數(shù)組是按列逐個渲染,因此后端傳過來的數(shù)組格式為 一個大數(shù)組里面有多個小數(shù)組,第一個數(shù)組為表頭名稱,其余數(shù)組為每行的數(shù)據(jù)值

Data=[
['產(chǎn)品產(chǎn)量(噸)\時間','2022-04-11','2022-04-12','2022-04-13','2022-04-14'],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,0,0,0]
]

當接收到后端穿的數(shù)組后進行處理,把表頭數(shù)組單拿出來賦值為tableHead ,yieldData 即為數(shù)組行數(shù)據(jù)

 getApi().then(res => {
        if (res.status === 200) {
          this.tableHead = res.data[0]
          this.yieldData = res.data
          this.yieldData.shift()
        }
      })

有了以上數(shù)據(jù),則可以渲染數(shù)組,表頭循環(huán)渲染,index 從0 開始,數(shù)據(jù)按列渲染

<el-table :data="yieldData" style="width: 100%"  height="100%">
      <el-table-column :label="item"  width="227"  v-for="(item, index) in tableHead"  :key="index">
              <template scope="scope">
                {{ scope.row[index] }}
              </template>
        </el-table-column>
</el-table>

到此這篇關(guān)于elementplus el-table(行列互換)轉(zhuǎn)置的兩種方法的文章就介紹到這了,更多相關(guān)element el-table行列互換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • vue中關(guān)于redirect(重定向)初學者的坑

    vue中關(guān)于redirect(重定向)初學者的坑

    這篇文章主要介紹了vue中關(guān)于redirect(重定向)初學者的坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue關(guān)于點擊詳情頁面keep-alive的緩存問題

    vue關(guān)于點擊詳情頁面keep-alive的緩存問題

    這篇文章主要介紹了vue關(guān)于點擊詳情頁面keep-alive的緩存問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue實現(xiàn)各種文件文檔下載及導出示例

    vue實現(xiàn)各種文件文檔下載及導出示例

    這篇文章主要介紹了vue實現(xiàn)各種文件文檔下載及導出示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 詳解vue express啟動數(shù)據(jù)服務

    詳解vue express啟動數(shù)據(jù)服務

    本篇文章主要介紹了vue express啟動數(shù)據(jù)服務,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue項目部署自動清除緩存方式

    vue項目部署自動清除緩存方式

    這篇文章主要介紹了vue項目部署自動清除緩存方式,包括清除文件緩存,清除瀏覽器 localStorage 緩存方式,本文結(jié)合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • 深入理解Vue transition源碼分析

    深入理解Vue transition源碼分析

    本篇文章主要介紹了深入理解Vue transition源碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue項目啟動端口更改的實現(xiàn)

    vue項目啟動端口更改的實現(xiàn)

    在Vue前端項目中,可以通過修改配置文件來指定啟動的端口號,本文就來介紹 一下vue項目啟動端口更改的實現(xiàn),感興趣的可以了解一下
    2023-10-10
  • Element-Plus表格實現(xiàn)Table自定義合并行數(shù)據(jù)

    Element-Plus表格實現(xiàn)Table自定義合并行數(shù)據(jù)

    在開發(fā)項目中,我們時常會用到表格,許多需求可能會要求自定義特定的行或列,下面就跟隨小編一起來學習一下在實際開發(fā)中如何實現(xiàn)這一要求吧
    2024-12-12
  • Vue項目中引入外部腳本的多種方式

    Vue項目中引入外部腳本的多種方式

    在現(xiàn)代的前端開發(fā)中,我們經(jīng)常需要使用一些第三方的外部腳本或庫,尤其是像地圖、圖表、分析工具等,在 Vue 項目中,有多種方式可以引入外部腳本,本文將詳細介紹在 Vue 項目中引入外部腳本的幾種常見方法,需要的朋友可以參考下
    2025-01-01
  • 關(guān)于element?ui?表格中的常見特殊屬性說明

    關(guān)于element?ui?表格中的常見特殊屬性說明

    這篇文章主要介紹了關(guān)于element?ui?表格中的常見特殊屬性說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評論