成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

詳解Vue.jsiview實現(xiàn)樹形權(quán)限表(可擴展表)

問題:

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了秀嶼免費建站歡迎大家使用!

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

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

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

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

過程:

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

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

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

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

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

展示結(jié)果如下:

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

第二步,添加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: '權(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)]);
  }
},

展示效果:

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

第三步: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;},可以是擴展部分內(nèi)容充滿全部,展示效果如下

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

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

總結(jié):

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

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

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

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

3序號未按總序號排列

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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

標題名稱:詳解Vue.jsiview實現(xiàn)樹形權(quán)限表(可擴展表)
地址分享:http://jinyejixie.com/article2/jjpjoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)建站云服務(wù)器、商城網(wǎng)站、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
武定县| 元阳县| 玛曲县| 芮城县| 崇仁县| 邻水| 徐汇区| 仙桃市| 天峻县| 正定县| 德昌县| 荃湾区| 泾源县| 锡林郭勒盟| 荣成市| 德化县| 保康县| 泸溪县| 峨山| 大石桥市| 绍兴县| 双鸭山市| 桦甸市| 敦化市| 泰顺县| 东台市| 卢龙县| 监利县| 肥乡县| 怀化市| 庄河市| 共和县| 舒兰市| 东兰县| 南投县| 枞阳县| 綦江县| 麻栗坡县| 泰顺县| 郯城县| 清涧县|