vue横向树结构_vue树状结构(tree)

}.item{cursor:pointer;

}.bold{font-weight:bold;

}ul{padding-left:1em;line-height:1.5em;list-style-type:dot;

}

:class="{bold: isFolder}"@click="toggle"@dblclick="makeFolder">{{ item.name }}[{{ isOpen? '-':'+'}}]

class="item1"v-for="(child, index) in item.children":key="index":item="child"@make-folder="$emit('make-folder', $event)"@add-item="$emit('add-item', $event)"

>

+

(You can double click on an item to turn it into a folder.)

>

vartreeData=[

{ name:'hello'},

{ name:'wat'},

{

name:'child folder',

children: [

{

name:'child folder',

children: [

{ name:'hello'},

{ name:'wat'}

]

},

{ name:'hello'},

{ name:'wat'},

{

name:'child folder',

children: [

{ name:'hello'},

{ name:'wat'}

]

}

]

}

]//define the tree-item component

Vue.component('tree-item', {

template:'#item-template',

props: {

item: Object

},

data:function() {return{

isOpen:false}

},

computed: {

isFolder:function() {return this.item.children&&

this.item.children.length

}

},

methods: {

toggle:function() {if(this.isFolder) {this.isOpen= !this.isOpen

}

},

makeFolder:function() {if(!this.isFolder) {this.$emit('make-folder',this.item)this.isOpen= true}

}

}

})//boot up the demo

vardemo= newVue({

el:'#demo',

data: {

treeData: treeData

},

methods: {

makeFolder:function(item) {

Vue.set(item,'children', [])this.addItem(item)

},

addItem:function(item) {

item.children.push({

name:'new stuff'})

}

}

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值