亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

動態(tài)實現(xiàn)element ui的el-table某列數(shù)據(jù)不同樣式的示例

 更新時間:2021年01月22日 09:06:47   作者:水冗水孚  
這篇文章主要介紹了動態(tài)實現(xiàn)element ui的el-table某列數(shù)據(jù)不同樣式的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

問題描述

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

實現(xiàn)方式一

效果圖如下

代碼如下

<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"> 
    <!-- 思路通過模板插槽,獲取對應的數(shù)據(jù),不同的數(shù)據(jù)展示不同的顏色,當然只能讓顯示一個(通過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: "吳郡富春縣(浙江省杭州市富陽區(qū))",
    },
    {
     name: "關羽",
     nation: "蜀國",
     bornPlace: "河東郡解縣(山西省運城市鹽湖區(qū)解州鎮(zhèn))",
    },
   ],
  };
 },
};
</script>

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

實現(xiàn)方式二

效果圖如下

代碼如下

<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"> 
    <!-- 思路通過模板插槽,獲取對應的數(shù)據(jù),通過vue動態(tài)style的方法,動態(tài)顯示不同的顏色,這種方式更加靈活 -->
    <template scope="scope">
     <!-- 意思是:給這個div綁定動態(tài)樣式,顏色color的屬性值為getColorByNation()這個方法的返回值,所以只需要通過傳過去的scope 對方法的返回值做動態(tài)設置即可 -->
     <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: "吳郡富春縣(浙江省杭州市富陽區(qū))",
    },
    {
     name: "關羽",
     nation: "蜀國",
     bornPlace: "河東郡解縣(山西省運城市鹽湖區(qū)解州鎮(zhèn))",
    },
   ],
  };
 },
 methods: {
  // 動態(tài)設置顏色
  getColorByNation(scope){
   console.log(scope); // 打印一下傳過來的scope是對應表格不同行的整行的數(shù)據(jù),如下有圖片: 
   if(scope.row.nation == "魏國"){
    return "red"
   }else if(scope.row.nation == "蜀國"){
    return "black"
   }else if(scope.row.nation == "吳國"){
    return "blue"
   }
  },
  // 動態(tài)設置字體大小
  getSizeByNation(scope){
   if(scope.row.nation == "魏國"){
    return "14px"
   }else if(scope.row.nation == "蜀國"){
    return "18px"
   }else if(scope.row.nation == "吳國"){
    return "24px"
   }
  }
 },
};
</script> 

打印傳過去的scope

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

到此這篇關于動態(tài)實現(xiàn)element ui的el-table某列數(shù)據(jù)不同樣式的示例的文章就介紹到這了,更多相關動態(tài)實現(xiàn)element ui的el-table某列數(shù)據(jù)不同樣式的示例內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論