Element-ui自定義table表頭藻治,修改列標(biāo)題樣式碘勉、添加tooltip, :render-header使用簡(jiǎn)介

關(guān)注我的個(gè)人博客:pinbolei.cn桩卵,獲取更多內(nèi)容

**由于Element-ui官方在2.4.11及以后的版本中添加了自定義表頭的方法验靡,如果你的Element-ui版本是在2.4.11以上,建議參考我的另一篇博客element-ui table列表自定義表頭吸占,修改列標(biāo)題樣式晴叨、添加tooltip

**

render-header

render-header在官方文檔中的介紹是這樣的:

參數(shù) 說(shuō)明 類型 可選值 默認(rèn)值
render-header 列標(biāo)題 Label 區(qū)域渲染使用的 Function Function(h, { column, $index }) --- ---

修改列標(biāo)題樣式

1.在列標(biāo)題后面加一個(gè)圖標(biāo)。

以element-ui官方文檔一個(gè)table表格為例矾屯,我們?cè)诘刂返暮竺婕右粋€(gè)定位標(biāo)志的圖標(biāo)兼蕊,代碼如下:

...
<template>
  <el-table
    :data="tableData2"
    style="width: 100%"
    :row-class-name="tableRowClassName">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址" :render-header="renderHeader"> // 加入render事件
    </el-table-column>
  </el-table>
</template>

<style>
  .el-table .warning-row {
    background: oldlace;
  }

  .el-table .success-row {
    background: #f0f9eb;
  }
</style>

<script>
  export default {
    methods: {
      tableRowClassName({row, rowIndex}) {
        if (rowIndex === 1) {
          return 'warning-row';
        } else if (rowIndex === 3) {
          return 'success-row';
        }
        return '';
      },
      // render 事件
      renderHeader (h,{column}) { // h即為cerateElement的簡(jiǎn)寫,具體可看vue官方文檔
        return h(
          'div',
          [ 
            h('span', column.label),
            h('i', {
              class:'el-icon-location',
              style:'color:#409eff;margin-left:5px;'
            })
          ],
        );
       }
    },
    data() {
      return {
        tableData2: [{
          date: '2016-05-02',
          name: '王小虎',
          address: '上海市普陀區(qū)金沙江路 1518 弄',
        }, {
          date: '2016-05-04',
          name: '王小虎',
          address: '上海市普陀區(qū)金沙江路 1518 弄'
        }, {
          date: '2016-05-01',
          name: '王小虎',
          address: '上海市普陀區(qū)金沙江路 1518 弄',
        }, {
          date: '2016-05-03',
          name: '王小虎',
          address: '上海市普陀區(qū)金沙江路 1518 弄'
        }]
      }
    }
  }
</script>
...

效果如下:


圖1-1

2.在列標(biāo)題后面添加一個(gè)單選框

還是以上面的代碼為例件蚕,只寫關(guān)鍵代碼:

...
// render 事件
renderHeader (h,{column}) { // h即為cerateElement的簡(jiǎn)寫孙技,具體可看vue官方文檔
  return h(
   'div',
   [ 
     h('span', column.label),
     h('el-checkbox',{
       style:'margin-left:5px',
       on:{
         change:this.select // 選中事件 
       }
     })
   ],
 );
},
// 添加選中事件
select (data) {
  console.log(data);
}
...

效果如下:


圖1-2

3.在表頭添加一個(gè)Tooltip

我們經(jīng)常會(huì)遇到一些奇怪的需求,但是即使再奇怪我們也不能認(rèn)輸排作,現(xiàn)在有一個(gè)需求牵啦,要在列表表題后面添加一個(gè)提示,我們開始嘗試著做:

還是以上面的代碼為例妄痪,剛開始我想直接用‘el-tooltip’哈雏,應(yīng)該不是很難,然后就是這樣:

...
renderHeader (h,{column}) {
  return h(
    'div',
    [ 
      h('span', column.label),
      h('el-tooltip',[
        h('i', {
          class:'el-icon-question',
          style:'color:#409eff;margin-left:5px;'
        })
      ],{
        content: '這是一個(gè)提示'
      })
    ]
  );
}
...

運(yùn)行后發(fā)現(xiàn),基本樣式出來(lái)了裳瘪,但是提示沒(méi)有

圖1-3

根據(jù)element-ui 關(guān)于tooltip的文檔土浸,我發(fā)現(xiàn)不管是effect, content還是placement 對(duì)tooltip都不管用,既然硬上不管用彭羹,就曲線救國(guó)黄伊,通過(guò)組件的方法,先造個(gè)輪子再走路

// 寫一個(gè)PromptMessage的組件派殷,并全局注冊(cè)
<template>
  <div class="tooltip">
    <el-tooltip effect="dark" placement="right">
      <div slot="content"> // 插槽还最,可提供多行的提示信息
        <p v-for="item in messages" :key="item">
          {{item}}
        </p>
      </div>
      <i class="el-icon-question" style="color:#409eff;margin-left:5px;font-size:15px;"></i>
    </el-tooltip>
  </div>
</template>

<script>
  export default {
    props:['messages']
  };
</script>

然后在render-header事件中使用組件

...
renderTip (h,{column}) {
  return h(
    'div',{
      style:'display:flex;margin:auto;'
    },
    [
      h('span', column.label),
      h('prompt-message', {
        props: {messages: ["這是住址信息"]}
      })
    ]
  );
}
...

這次我們發(fā)現(xiàn),果然造的輪子還是挺不錯(cuò)的

圖1-4

JSX語(yǔ)法

或許你會(huì)發(fā)現(xiàn)毡惜,這個(gè)原生的createElement 寫起來(lái)并不簡(jiǎn)單拓轻,而且很費(fèi)事,我們也可以采用JSX的方式虱黄,這個(gè)在Vue官方文檔中有提到

圖1-5

查看文檔悦即,可以找到安裝使用的方法

圖1-6

安裝完成后想要再實(shí)現(xiàn)tooltip就簡(jiǎn)單了

...
renderTip (h,{column}) {
  return (
    <el-tooltip class="tooltip" effect="dark" placement="right">
      <ul slot="content">
        <li>這是第一個(gè)提示</li>
        <li>這是第二個(gè)提示<li>
      </ul>
      <i class="el-icon-question"></i>
    </el-tooltip>
  );
}
...

這樣看著很好理解,寫起來(lái)也很方便

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末橱乱,一起剝皮案震驚了整個(gè)濱河市辜梳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌泳叠,老刑警劉巖作瞄,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異危纫,居然都是意外死亡宗挥,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門种蝶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)契耿,“玉大人,你說(shuō)我怎么就攤上這事螃征√鹿穑” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵盯滚,是天一觀的道長(zhǎng)踢械。 經(jīng)常有香客問(wèn)我,道長(zhǎng)魄藕,這世上最難降的妖魔是什么内列? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮背率,結(jié)果婚禮上话瞧,老公的妹妹穿的比我還像新娘嫩与。我一直安慰自己,他們只是感情好移稳,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布蕴纳。 她就那樣靜靜地躺著,像睡著了一般个粱。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翻翩,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天都许,我揣著相機(jī)與錄音,去河邊找鬼嫂冻。 笑死胶征,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桨仿。 我是一名探鬼主播睛低,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼服傍!你這毒婦竟也來(lái)了钱雷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤吹零,失蹤者是張志新(化名)和其女友劉穎罩抗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灿椅,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡套蒂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫蛹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片操刀。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖婴洼,靈堂內(nèi)的尸體忽然破棺而出骨坑,到底是詐尸還是另有隱情,我是刑警寧澤窃蹋,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布卡啰,位于F島的核電站,受9級(jí)特大地震影響警没,放射性物質(zhì)發(fā)生泄漏匈辱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一杀迹、第九天 我趴在偏房一處隱蔽的房頂上張望亡脸。 院中可真熱鬧,春花似錦、人聲如沸浅碾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)垂谢。三九已至厦画,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滥朱,已是汗流浹背根暑。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留徙邻,地道東北人排嫌。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像缰犁,于是被迫代替她去往敵國(guó)和親淳地。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1 Webpack 1.1 概念簡(jiǎn)介 1.1.1 WebPack是什么 1帅容、一個(gè)打包工具 2颇象、一個(gè)模塊加載工具 3...
    Kevin_Junbaozi閱讀 6,659評(píng)論 0 16
  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評(píng)論 1 92
  • (一)殘陽(yáng)獨(dú)立 冬日的陽(yáng)光實(shí)在是暖和,這么曬了一會(huì)兒饮亏,我便有了幾分熏熏然耍贾。眼皮略覺(jué)沉重,索性就閉上眼睡個(gè)好覺(jué)路幸。早上...
    獅子愛(ài)打滾閱讀 183評(píng)論 0 0
  • 一: 1.C++98荐开、C++03、C++11简肴、C++14 2.基于對(duì)象:?jiǎn)渭兊闹皇且粋€(gè)類晃听,不與其他類有聯(lián)系 3.面...
    期門閱讀 299評(píng)論 0 0
  • y, 他們都以為我不喜歡你了, 跟真的一樣砰识, 像平常一樣能扒。 可是那個(gè)人是你呀, 這個(gè)世界上是有一種喜歡辫狼,叫 我喜歡...
    歿荁閱讀 231評(píng)論 0 0