element tree 树形控件

组件: Element(地址:http://element.eleme.io/#/zh-CN/component/tree):Tree树形控件

<el-tree ref="expandMenuList" class="expand-tree"
         :data="setTree"
         highlight-current
         :props="defaultProps"
         :expand-on-click-node="false"
         :render-content="renderContent"
         @node-click="handleNodeClick">
</el-tree>
renderContent:内容渲染     props:数据配置     node-click:节点被点击时的回调

1)请求方式:Vue-resource
export const list = flag=> {

return http.post(`/Search/list`, flag).then(res => res.data)

}
2)通过后台接口获取数据

getDataList(){

this.loading = true; //element loading加载

list({



}).then(res => {

this.loading = false;

if (res.status) {

this.setTree= res.data

}

else {

this.$alert(res.message, "错误", {

confirmButtonText: "确定"

});

}

});

}

// 3)返回数据:parentId等于0的是父级,id等于parentId的是子级


[

{

"id":13,

"parentId":0,

"order":1,

"name":"truck",

},

{

"id":16,

"pluginId":null,

"parentId":0,

"order":1,

"name":"sca",

},

{

"id":17,

"pluginId":6,

"parentId":16,

"order":1,

"name":"abcf",

}

]

//4)转换为json树形结构  (方法放在methods里面)

methods: {

getListData() {

let dataArray = [];

this.datas.forEach(function (data) {

if(data.enabled==true){

let parentId = data.parentId;

if (parentId == 0) {

let objTemp = {

id: data.id,

name: data.name,

order: data.order,

parentId: parentId,

}

dataArray.push(objTemp);

}

}

})

this.data2treeDG(this.datas, dataArray)

},

data2treeDG(datas, dataArray) {

for (let j = 0; j < dataArray.length; j++) {

let dataArrayIndex = dataArray[j];

let childrenArray = [];

let Id = dataArrayIndex.id;

for (let i = 0; i < datas.length; i++) {

let data = datas[i];

if(data.enabled==true){

let parentId = data.parentId;

if (parentId == Id) {//判断是否为儿子节点

let objTemp = {

id: data.id,

name: data.name,

order: data.order,

parentId: parentId,

}

childrenArray.push(objTemp);

}

}

}

dataArrayIndex.children = childrenArray;

if (childrenArray.length > 0) {//有儿子节点则递归

this.data2treeDG(datas, childrenArray)

}

}

this.setTree = dataArray;

return dataArray;

},

}

//5)格式化后的树形结构数据(setTree):

[

{



"id":44,

"name":"扫描w2",

"order":1,

"parentId":0,

"children":[

{



"id":125,

"name":"plplupluppluplplupl",

"order":2,

"parentId":44,

"children":[

"id":44,

"name":"plplupluppluplplupl",

"order":2,

"parentId":44

]

},

{

"id":124,

"name":"pluginplugin",

"order":2,

"parentId":44,

"children":[



]

}

]

}

]

 //6)渲染


methods: {

showOrEdit(data) {

debugger;

if (this.isEdit) {

return <input type="text" style="width:80px" value={data.Name} on-blur={ev => this.edit_sure(ev, data)}/>

}

else{

return <span>{data.Name}</span>

}

},

renderContent(h, {node, data, store}) {

if(data.enabled==true&&data.parentId==0){

return (

<span>

<span>

{ this.showOrEdit(data) }

</span>

<span style="margin-left: 15px;">

<i class="el-icon-plus" on-click={ () => this.NodeAdd(node, data) }></i>

</span>

</span>)

}

else if(data.enabled==true&&data.parentId!=0){

return (

<span>

<span>

{ this.showOrEdit(data) }

</span>

</span>)

}

else {

return (

<span>

<span style="color: red;">

{ this.showOrEdit(data) }

</span>

</span>)

}

}

}

}

  

 
 
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值