vue如何在引入的el-tree前添加圖標(biāo)
vue引入的el-tree前添加圖標(biāo)
根據(jù)有沒(méi)有子節(jié)點(diǎn)來(lái)顯示 前面是文件夾還是文件的圖標(biāo) (因?yàn)橛龅搅司陀涗浟讼聛?lái))
如果有子節(jié)點(diǎn)(children),就在前面加上一個(gè)文件夾的圖標(biāo)(片),如果沒(méi)有子節(jié)點(diǎn),就顯示的是文件的圖標(biāo)(片)
只有部分代碼,在要push的地方添加一個(gè)icon,然后動(dòng)態(tài)綁定這個(gè)icon,注意名字要一樣;
<template> <div> <el-tree ref="addre" :load="loNo" :props="default-props" lazy node-key="id" show-checkbox :check-strictly="true" @check="heiChange" highlight-current :key="this.sho" > <span class="custom-tree-node" slot-scope="{ node, data }"> <span v-if="data.label" :class="folder">{{ `(${data.label})` }}</span> <span v-if="!data.label" :class="data.icon"></span> //注意此處是動(dòng)態(tài)的綁定下面 push進(jìn)去定義好的icon名稱; <span>{{ node.label }}</span> </span> </el-tree> </div> </template>
<script> export default { data() { return { folder:'iconFolder', //顯示文件夾 下面有css樣式 file:'iconFile', //顯示文件 下面有css樣式 }; }, methods:{ //省略的點(diǎn)點(diǎn)不重要, loNo(aa,bb){ var data = [] //.... if (res.folders) { //.... data.push({ //.... icon:this.folder //在這里追加個(gè)icon就行了,然后調(diào)上面data里的名稱 }) //.... }, if (res.files) { //.... data.push({ //.... icon:this.files //在這里追加個(gè)icon就行了,然后調(diào)上面data里的名稱 }) //.... }, } } }; </script>
//樣式 <style scoped> .iconFolder::before{ //樣式名稱與data里的對(duì)應(yīng) /* background-color: aqua; */ content:''; /* float: left; */ display: inline-block; width: 15px; height: 15px; /* border: 1px solid#000; */ background: url(../../assets/img/wenjianjia.png) no-repeat; background-size: 15px; } .iconFile::before{ //樣式名稱與data里的對(duì)應(yīng) /* background-color: aqua; */ content:''; /* float: left; */ display: inline-block; width: 15px; height: 15px; /* border: 1px solid#000; */ background: url(../../assets/img/wenjian.png) no-repeat; background-size: 15px; } </style>
還有一個(gè)方法我在看其他內(nèi)容發(fā)現(xiàn),也是在span標(biāo)簽里套用了倆個(gè)img標(biāo)簽 進(jìn)行判斷他們children的長(zhǎng)度,如果大于0,就顯示這個(gè)圖片,不用再push里添加icon了,因?yàn)橛玫氖莍mg標(biāo)簽,所以圖片直接放在了img上的src里了,就不用在這寫css了。
ElementUI el-tree樹(shù)形控件給節(jié)點(diǎn)添加圖標(biāo)
<template> <div class="tree"> <el-tree :data="data5" node-key="id" default-expand-all > <span class="custom-tree-node" slot-scope="{ node, data }"> <span> <i :class="data.icon"></i>{{ node.label }} </span> </span> </el-tree> </div> </template>
<script> export default { data () { return { data5: [{ id: 1, label: '一級(jí) 1', icon:'el-icon-success', children: [{ id: 4, label: '二級(jí) 1-1', children: [{ id: 9, label: '三級(jí) 1-1-1', icon: 'el-icon-info' }, { id: 10, label: '三級(jí) 1-1-2' }] }] }, { id: 2, label: '一級(jí) 2', children: [{ id: 5, label: '二級(jí) 2-1', }, { id: 6, label: '二級(jí) 2-2' }] }, { id: 3, label: '一級(jí) 3', children: [{ id: 7, label: '二級(jí) 3-1' }, { id: 8, label: '二級(jí) 3-2' }] }] } } } </script> <style scoped> </style>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue實(shí)現(xiàn)todolist單頁(yè)面應(yīng)用
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)todolist單頁(yè)面應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04vue的props實(shí)現(xiàn)子組件隨父組件一起變化
這篇文章主要為大家詳細(xì)介紹了vue的props如何實(shí)現(xiàn)子組件隨父組件一起變化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10基于vue+uniapp直播項(xiàng)目實(shí)現(xiàn)uni-app仿抖音/陌陌直播室功能
uni-liveShow是一個(gè)基于vue+uni-app技術(shù)開(kāi)發(fā)的集小視頻/IM聊天/直播等功能于一體的微直播項(xiàng)目。本文通過(guò)實(shí)例圖文的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-11-11基于Vue2實(shí)現(xiàn)移動(dòng)端圖片上傳、壓縮、拖拽排序、拖拽刪除功能
這篇文章主要介紹了基于Vue2實(shí)現(xiàn)移動(dòng)端圖片上傳、壓縮、拖拽排序、拖拽刪除功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01vue2使用思維導(dǎo)圖jsmind的詳細(xì)代碼
jsMind是一個(gè)基于Js的思維導(dǎo)圖庫(kù),jsMind是一個(gè)純JavaScript類庫(kù),用于創(chuàng)建、展示和操作思維導(dǎo)圖,這篇文章主要給大家介紹了關(guān)于vue2使用思維導(dǎo)圖jsmind的詳細(xì)代碼,需要的朋友可以參考下2024-06-06