一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - vue.js - 動態實現element ui的el-table某列數據不同樣式的示例

動態實現element ui的el-table某列數據不同樣式的示例

2022-01-06 15:09水冗水孚 vue.js

這篇文章主要介紹了動態實現element ui的el-table某列數據不同樣式的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

問題描述

在餓了么ui的框架中,輸入數據el-form,輸出數據el-table。有時候產品想讓枯燥的表格來點動態的樣式,比如不同的內容展示不同的樣式,對于這個需求,其實方式有很多種,本文列舉兩種,以供參考。

實現方式一

效果圖如下

動態實現element ui的el-table某列數據不同樣式的示例

代碼如下

<template>
<div id="app">
<!-- 需求:三國人物表格,要求不同的國別展示不同的顏色(魏國紅色、蜀國黑色、吳國藍色) -->
<el-table :data="tableData" style="width: 100%">
 <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
 <el-table-column prop="nation" label="國別" width="180"> 
  <!-- 思路通過模板插槽,獲取對應的數據,不同的數據展示不同的顏色,當然只能讓顯示一個(通過v-if控制) -->
  <template scope="scope">
   <div v-if="scope.row.nation == '魏國'" style="color:red;font-weight:bold;">{{scope.row.nation}}</div>
   <div v-if="scope.row.nation == '蜀國'" style="color:black;font-weight:bold;">{{scope.row.nation}}</div>
   <div v-if="scope.row.nation == '吳國'" style="color:blue;font-weight:bold;">{{scope.row.nation}}</div>
  </template>
 </el-table-column>
 <el-table-column prop="bornPlace" label="出生地方"> </el-table-column>
</el-table>
</div>
</template>

<script>
export default {
name: "app",
data() {
return {
 tableData: [
  {
   name: "劉備",
   nation: "蜀國",
   bornPlace: "涿郡涿縣(河北省涿州市)",
  },
  {
   name: "曹操",
   nation: "魏國",
   bornPlace: "沛國譙縣(安徽省亳州市)",
  },
  {
   name: "孫權",
   nation: "吳國",
   bornPlace: "吳郡富春縣(浙江省杭州市富陽區)",
  },
  {
   name: "關羽",
   nation: "蜀國",
   bornPlace: "河東郡解縣(山西省運城市鹽湖區解州鎮)",
  },
 ],
};
},
};
</script>

方式一總結
這個第一種方式,雖然能實現效果,但是代碼都寫在el-table里面了,看起來比較臃腫,如果只要求動態展示兩三種樣式的話,還可以寫,但是如果有七八種甚至更多樣式動態展示,這種寫法就會十分臃腫,且后期不太好維護。我個人推薦第二種方式,就是使用vue自帶的 :style 動態綁定樣式來實現,不僅可以簡潔代碼,而且可以實現更加豐富的效果。如下:

實現方式二

效果圖如下

動態實現element ui的el-table某列數據不同樣式的示例

代碼如下

<template>
<div id="app">
<!-- 需求:三國人物表格,要求不同的國別展示不同的顏色(魏國紅色、蜀國黑色、吳國藍色) -->
<el-table :data="tableData" style="width: 100%">
 <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
 <el-table-column prop="nation" label="國別" width="180"> 
  <!-- 思路通過模板插槽,獲取對應的數據,通過vue動態style的方法,動態顯示不同的顏色,這種方式更加靈活 -->
  <template scope="scope">
   <!-- 意思是:給這個div綁定動態樣式,顏色color的屬性值為getColorByNation()這個方法的返回值,所以只需要通過傳過去的scope 對方法的返回值做動態設置即可 -->
   <div :style="{color:getColorByNation(scope),fontSize:getSizeByNation(scope),fontWeight:'bold'}">{{scope.row.nation}}</div>
  </template>
 </el-table-column>
 <el-table-column prop="bornPlace" label="出生地方"> </el-table-column>
</el-table>
</div>
</template>

<script>
export default {
name: "app",
data() {
return {
 tableData: [
  {
   name: "劉備",
   nation: "蜀國",
   bornPlace: "涿郡涿縣(河北省涿州市)",
  },
  {
   name: "曹操",
   nation: "魏國",
   bornPlace: "沛國譙縣(安徽省亳州市)",
  },
  {
   name: "孫權",
   nation: "吳國",
   bornPlace: "吳郡富春縣(浙江省杭州市富陽區)",
  },
  {
   name: "關羽",
   nation: "蜀國",
   bornPlace: "河東郡解縣(山西省運城市鹽湖區解州鎮)",
  },
 ],
};
},
methods: {
// 動態設置顏色
getColorByNation(scope){
 console.log(scope); // 打印一下傳過來的scope是對應表格不同行的整行的數據,如下有圖片: 
 if(scope.row.nation == "魏國"){
  return "red"
 }else if(scope.row.nation == "蜀國"){
  return "black"
 }else if(scope.row.nation == "吳國"){
  return "blue"
 }
},
// 動態設置字體大小
getSizeByNation(scope){
 if(scope.row.nation == "魏國"){
  return "14px"
 }else if(scope.row.nation == "蜀國"){
  return "18px"
 }else if(scope.row.nation == "吳國"){
  return "24px"
 }
}
},
};
</script> 

打印傳過去的scope

動態實現element ui的el-table某列數據不同樣式的示例

方式二總結
這種通過vue綁定樣式來控制,比第一種方式,靈活很多。畢竟第一種方式是寫在el-table里面,第二種方式是寫在methods方法里面。具體用那種,看場景需求。

到此這篇關于動態實現element ui的el-table某列數據不同樣式的示例的文章就介紹到這了,更多相關動態實現element ui的el-table某列數據不同樣式的示例內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://segmentfault.com/a/1190000039056139

延伸 · 閱讀

精彩推薦
  • vue.js梳理一下vue中的生命周期

    梳理一下vue中的生命周期

    看過很多人講vue的生命周期,但總是被繞的云里霧里,尤其是自學的同學,可能js的基礎也不是太牢固,聽起來更是吃力,那我就已個人之淺見,以大白話...

    CRMEB技術團隊7992021-12-22
  • vue.jsVue2.x 項目性能優化之代碼優化的實現

    Vue2.x 項目性能優化之代碼優化的實現

    這篇文章主要介紹了Vue2.x 項目性能優化之代碼優化的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    優小U9632022-02-21
  • vue.jsVue中引入svg圖標的兩種方式

    Vue中引入svg圖標的兩種方式

    這篇文章主要給大家介紹了關于Vue中引入svg圖標的兩種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的...

    十里不故夢10222021-12-31
  • vue.js用vite搭建vue3應用的實現方法

    用vite搭建vue3應用的實現方法

    這篇文章主要介紹了用vite搭建vue3應用的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下...

    Asiter7912022-01-22
  • vue.jsVue項目中實現帶參跳轉功能

    Vue項目中實現帶參跳轉功能

    最近做了一個手機端系統,其中遇到了父頁面需要攜帶參數跳轉至子頁面的問題,現已解決,下面分享一下實現過程,感興趣的朋友一起看看吧...

    YiluRen丶4302022-03-03
  • vue.js詳解vue 表單綁定與組件

    詳解vue 表單綁定與組件

    這篇文章主要介紹了vue 表單綁定與組件的相關資料,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Latteitcjz6432022-02-12
  • vue.jsVue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個是vue的基本組件,有需要的同學可以研究下...

    yukiwu6752022-01-25
  • vue.jsVue2.x-使用防抖以及節流的示例

    Vue2.x-使用防抖以及節流的示例

    這篇文章主要介紹了Vue2.x-使用防抖以及節流的示例,幫助大家更好的理解和學習使用vue框架,感興趣的朋友可以了解下...

    Kyara6372022-01-25
主站蜘蛛池模板: 欧美日韩成人在线视频 | 日本欧美不卡一区二区三区在线 | 亚洲大尺码 | 青青草99热久久 | 日韩视频一 | 非洲黑人gay巨大 | 99re8在这里只有精品23 | 日韩欧美国产一区 | 日本一道一区二区免费看 | 97久久久亚洲综合久久88 | 四虎精品成人a在线观看 | beeg日本高清xxxx18 | 999国产| 国产精品视频久久久久 | 2018生活片性色生活片 | 无码精品AV久久久奶水 | 久久精品视频uu | 娇妻被老外疯狂调教 | 欧美黑大吊 | 国产在线观看福利 | 思思玖玖玖在线精品视频 | 欧美1 | 四虎导航 | 欧美成人第一页 | 丰满的闺蜜2中文字幕 | 国产精品色片 | 免费在线视频一区 | 91频视| 极品美女a∨片在线看 | 亚洲精品欧洲久久婷婷99 | 喜马拉雅听书免费版 | 奶茶视频有容乃大 | 亚洲天天做夜夜做天天欢 | 幻女free性zozo交体内谢 | 天使萌痴汉在线中文字幕 | 国产一级在线观看 | 日本大尺度动漫在线观看缘之空 | 涩涩国产精品福利在线观看 | 国产情侣露脸自拍 | 欧美性bbbbbxxxxxxx | 国产拍拍|