最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Vue.js iview實現(xiàn)樹形權限表(可擴展表)

 更新時間:2018年09月30日 11:14:07   作者:月想容  
這篇文章主要介紹了詳解Vue.js iview實現(xiàn)樹形權限表(可擴展表),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

問題:

需要一個可折疊的權限管理系統(tǒng),用表格展示。

主要用的iView組件庫,有Table(表格),Tree(樹形控件),Collapse(折疊面板)看起來比較符合意思

深入查看Table相關范例,發(fā)現(xiàn)有個 通過給 columns 數(shù)據(jù)設置一項,指定 type: 'expand',即可開啟擴展功能  可以考慮

但也只是展開詳細內容,如需樹形結構,則需要render自定義去渲染,挺麻煩的。再去看看element UI,也沒有什么比較好的選擇。

過程:

第一步,先構建根節(jié)點的數(shù)據(jù)表,后臺返回JSON數(shù)據(jù)解析(www.json.cn)基本如下


前面2個object和第三個結構基本類似,將數(shù)據(jù)注入authlist,匹配listcolumns展示



展示結果如下:

        

第二步,添加Columns的擴展expand功能,在listcolumns里添加

listcolumns: [{
  title: '序號',
  key: '_index',
  className: 'index_css',
  render: (h, params) = >{
    return h('div', [h('span', {
      style: {
        display: 'inline-block',
        width: '100%',
        overflow: 'hidden',
        textOverflow: 'ellipsis',
        whiteSpace: 'nowrap',
        textAlign: 'center'
      }
    },
    params.row._index)]);
  }
},
{
  //添加的expand      
  type: 'expand',
  width: 20,
  render: (h, params) = >{
    return h(expandRow, {
      style: {
        padding: 0
      },
      props: {
        row: params.row
      }
    })
  }
},
{
  title: '權限名稱',
  key: 'Title',
  className: 'Title_css',
  ellipsis: true,
  render: (h, params) = >{
    return h('div', [h('span', {
      style: {

        display: 'inline-block',
        width: '100%',
        overflow: 'hidden',
        textOverflow: 'ellipsis',
        whiteSpace: 'nowrap'
      }
    },
    params.row.Title)]);
  }
},

展示效果:


第三步:authtable_expand.vue子組件,基本和父組件的Table一致

< template > 
<Table stripe: loading = "loading": showHeader = false border: columns = "listcolumns": data = "listauth"style = "overflow-y: hidden;max-height: 522px;" > </Table>
</template > 
<script > 
import expandRow from '../components/authtable_expand.vue';
export
default {
    props: ['row'],
    data() {
      return {
        loading: false,
        listcolumns: [
        //listcolumns暫不展示    
        ],
        listauth: []
      }
    },
    mounted() {},
    methods: {},
    created() {
      //console.log("authotable_expend created: " + JSON.stringify(this.row.children))		
      var object = this.row.children;
      console.log("auth expand data:" + JSON.stringify(object)) this.listauth.splice(0) object.forEach(r = >{
        this.listauth.push(r)
      })
      //console.log("listauth:" + JSON.stringify(this.listauth))	
    }
  }
  < /script>
 <style lang="less">
	td.ivu-table-expanded-cell{	
	padding:0;	
}
</style >  

注意,添加td.ivu-table-expanded-cell{padding:0;},可以是擴展部分內容充滿全部,展示效果如下


在expand.vue里遞歸調用自身,可以逐級擴展

總結:

目前在Vue.js的2個主要的前端組件iView和ElementUI都暫時沒有看到合適的可擴展的樹形表,只有自己編寫相關組件來實現(xiàn)。相信以后應該都會有的,就像之前iView多表頭都沒有,后面也終于添加了。

此外,自定義組合樹形權限表還有部分功能沒有完善,如:

1如果當前節(jié)點沒有子節(jié)點,就不應該出現(xiàn)擴展的按鈕

2擴展按鈕最好按照樹的深度逐漸向后移動

3序號未按總序號排列

預期結果應該類似于:


以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 使用typescript構建Vue應用的實現(xiàn)

    使用typescript構建Vue應用的實現(xiàn)

    這篇文章主要介紹了使用typescript構建Vue應用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 超詳細的vue組件間通信總結

    超詳細的vue組件間通信總結

    作為一個vue初學者不得不了解的就是組件間的數(shù)據(jù)通信(暫且不談vuex),通信方式根據(jù)組件之間的關系有不同之處,這篇文章主要給大家介紹了關于vue組件間通信的相關資料,需要的朋友可以參考下
    2021-07-07
  • vue?router如何實現(xiàn)tab切換

    vue?router如何實現(xiàn)tab切換

    這篇文章主要介紹了vue?router如何實現(xiàn)tab切換,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue?axios中的get請求方式

    vue?axios中的get請求方式

    這篇文章主要介紹了vue?axios中的get請求方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue采用異步渲染的原理分析

    Vue采用異步渲染的原理分析

    對于Vue為何采用異步渲染,簡單來說就是為了提升性能,因為不采用異步更新,在每次更新數(shù)據(jù)都會對當前組件進行重新渲染,為了性能考慮,Vue會在本輪數(shù)據(jù)更新后,再去異步更新視圖,本文主要通過幾個實例給大家介紹一下Vue為何采用異步渲染,需要的朋友可以參考下
    2023-06-06
  • vue項目實現(xiàn)github在線預覽功能

    vue項目實現(xiàn)github在線預覽功能

    這篇文章主要介紹了vue項目實現(xiàn)github在線預覽功能,本文通過提問兩個問題帶領大家一起學習整個過程,需要的朋友可以參考下
    2018-06-06
  • Vue如何通過瀏覽器控制臺查看全局data值

    Vue如何通過瀏覽器控制臺查看全局data值

    在寫vue項目時想到一個問題,項目里面的文件都是一個個的組件,如何在控制臺中修改,查看組件data里的值呢,下面這篇文章主要給大家介紹了關于Vue如何通過瀏覽器控制臺查看全局data值的相關資料,需要的朋友可以參考下
    2023-04-04
  • Vue.js之mixins混合組件詳解

    Vue.js之mixins混合組件詳解

    這篇文章主要介紹了Vue.js之mixins混合組件詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-09-09
  • vue組件中的樣式屬性scoped實例詳解

    vue組件中的樣式屬性scoped實例詳解

    vue組件中的style標簽標有scoped屬性時表明style里的css樣式只適用于當前組件元素 。接下來通過本文給大家分享vue組件中的樣式屬性scoped實例詳解,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • vue封裝圖片滑塊驗證組件的方法

    vue封裝圖片滑塊驗證組件的方法

    這篇文章主要為大家詳細介紹了vue封裝圖片滑塊驗證組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

栾城县| 遂溪县| 肥东县| 东乌珠穆沁旗| 庄河市| 崇州市| 布尔津县| 缙云县| 佛坪县| 鞍山市| 太仓市| 肇州县| 舒城县| 常州市| 荥阳市| 乐山市| 保山市| 子长县| 方城县| 长岛县| 抚顺县| 岳普湖县| 定州市| 阿城市| 肃宁县| 遵化市| 岐山县| 班玛县| 扎囊县| 安阳市| 阿拉善盟| 凉山| 江油市| 丰县| 吴忠市| 瓮安县| 南漳县| 汽车| 耒阳市| 西盟| 中牟县|