vuvivian's blog

越努力,越幸运.

  1. 1. 数据结构
  2. 2. 需求

数据结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
btnGroupList: ['分组一', '分组二', '分组三'], // 分组列表
customBtnGroup: [{
'func_type': 'action', // action表示跳转视图按钮,object表示执行函数
'func_name': 'xxx', // 函数名
'button_string': '按钮一', // 按钮名称
'is_group': 1, // 1表示分组,0表示不分组
'group_name': '分组一', // 分组名
'is_batch': 1, // 1表示批量按钮,0表示不是批量
},{
'func_type': 'action', // action表示跳转视图按钮,object表示执行函数
'func_name': 'xxx', // 函数名
'button_string': '按钮二', // 按钮名称
'is_group': 1, // 1表示分组,0表示不分组
'group_name': '分组一', // 分组名
'is_batch': 1, // 1表示批量按钮,0表示不是批量
},{
'func_type': 'object', // action表示跳转视图按钮,object表示执行函数
'func_name': 'xxx', // 函数名
'button_string': '按钮三', // 按钮名称
'is_group': 1, // 1表示分组,0表示不分组
'group_name': '分组三', // 分组名
'is_batch': 1, // 1表示批量按钮,0表示不是批量
}]

需求

* 将customBtnGroup中同一group_name的放在一个parent下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
generateTree (data, group_name) {
var itemArr=[];
for(var i=0; i<data.length; i++){
var node = data[i]
//data.splice(i, 1)
if(node.group_name == group_name ){
var newNode={
title:node.name,
children:getJsonTree(data,node.id)
};
itemArr.push(newNode);
}
}
return itemArr
},
* <Menu>
        <template v-for="(group) in btnGroupList">
          <Submenu :key="group" :name="group">
            <template slot="title">
                <Icon type="ios-analytics" />
              {{group}}
            </template>
            <template v-for="item in buttonData" >
              <MenuItem :name="item.button_string" :key="item.button_string" draggable>{{item.button_string}}</MenuItem>
            </template>
          </Submenu>
        </template>
      </Menu>



* buttonData () {
let buttonData = [];
this.btnGroupList.map(item => {
let groupItem = {
‘group’: item,
‘children’: []
};
this.customBtnGroup.map(btn => {
console.log(btn.group_name, item);
if (btn.group_name === item) {
groupItem.children.push(btn);
buttonData.push(groupItem);
} else {
// buttonData.push(btn);
}
});
});
console.log(‘buttonData’, buttonData);
return this.customBtnGroup;
}

本文最后更新于 天前,文中所描述的信息可能已发生改变