1.
# 声明一个无限极分类的方法 然后在接口调用
def xtree(data):
if not data:
return data
tree = {}
list = []
for i in data:
i['label'] = i['name']
tree[i['id']] = i
for j in data:
j['label'] = j['name']
pid = j['pid']
if pid == 0:
list.append(j)
else:
if 'children' not in tree[pid]:
tree[pid]['children'] = []
tree[pid]['children'].append(j)
return list
# 扩展 可以根据需求进行无限极分类
def get_deap_role(data):
# 判断data是否存在
if data:
list = []
tree = {}
for i in data:
# 以id作为键 字典作为值
tree[i['id']] = i
for j in data:
pid = j['pid']
if pid == 0:
# 判断是否是父id 如果是 直接加入列表
list.append(j)
else:
# 判断children是否在pid下 如果不在则构建空列表 如果在直接添加
if 'children' not in tree[pid]:
tree[pid]['children'] = []
sql = "select id as rid,username as name from users where deap_id=%d" % (int(j['id']))
res = db1.find_all(sql)
userlist = []
if res:
userlist.append(res)
j['children'] = userlist
# j['type'] = 2
tree[pid]['children'].append(j)
return list
import time
# 接口
@bp_comany.route('/deap_xtree/')
async def deap_xtree():
sql = "select * from deap"
res = db1.find_all(sql)
list = xtree(res)
return jsonify({'code': 200, 'list': list})