欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Vue.js iview實(shí)現(xiàn)樹形權(quán)限表(可擴(kuò)展表)

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

問題:

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

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

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

但也只是展開詳細(xì)內(nèi)容,如需樹形結(jié)構(gòu),則需要render自定義去渲染,挺麻煩的。再去看看element UI,也沒有什么比較好的選擇。

過程:

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


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



展示結(jié)果如下:

        

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

listcolumns: [{
  title: '序號(hào)',
  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: '權(quán)限名稱',
  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;},可以是擴(kuò)展部分內(nèi)容充滿全部,展示效果如下


在expand.vue里遞歸調(diào)用自身,可以逐級(jí)擴(kuò)展

總結(jié):

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

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

1如果當(dāng)前節(jié)點(diǎn)沒有子節(jié)點(diǎn),就不應(yīng)該出現(xiàn)擴(kuò)展的按鈕

2擴(kuò)展按鈕最好按照樹的深度逐漸向后移動(dòng)

3序號(hào)未按總序號(hào)排列

預(yù)期結(jié)果應(yīng)該類似于:


以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例

    vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例

    這篇文章主要介紹了vue實(shí)現(xiàn)百度搜索下拉提示功能實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 完美解決axios跨域請(qǐng)求出錯(cuò)的問題

    完美解決axios跨域請(qǐng)求出錯(cuò)的問題

    下面小編就為大家分享一篇完美解決axios跨域請(qǐng)求出錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • vue-openlayers實(shí)現(xiàn)地圖坐標(biāo)彈框效果

    vue-openlayers實(shí)現(xiàn)地圖坐標(biāo)彈框效果

    這篇文章主要為大家詳細(xì)介紹了vue-openlayers實(shí)現(xiàn)地圖坐標(biāo)彈框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Vue.js父與子組件之間傳參示例

    Vue.js父與子組件之間傳參示例

    本篇文章主要介紹了Vue.js父與子組件之間傳參示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-02-02
  • vue圖片上傳組件使用詳解

    vue圖片上傳組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了vue圖片上傳組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Vue3源碼解析watch函數(shù)實(shí)例

    Vue3源碼解析watch函數(shù)實(shí)例

    這篇文章主要為大家介紹了Vue3源碼解析watch函數(shù)實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • vue 插值 v-once,v-text, v-html詳解

    vue 插值 v-once,v-text, v-html詳解

    這篇文章主要介紹了vue 插值 v-once,v-text, v-html詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vuejs使用addEventListener的事件如何觸發(fā)執(zhí)行函數(shù)的this

    Vuejs使用addEventListener的事件如何觸發(fā)執(zhí)行函數(shù)的this

    這篇文章主要介紹了Vuejs使用addEventListener的事件觸發(fā)執(zhí)行函數(shù)的this方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue extend使用示例深入分析

    Vue extend使用示例深入分析

    這篇文章主要介紹了Vue.extend使用示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • vue如何把組件方法暴露到window對(duì)象中

    vue如何把組件方法暴露到window對(duì)象中

    這篇文章主要介紹了vue如何把組件方法暴露到window對(duì)象中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評(píng)論