页面效果
数据格式
{
'name': '高质量发展指数结构解析','bg_color': 'color1',
'children': [
{ 'name': '人口','bg_color': 'color1',
'children': [
{ 'name': '本地劳动力变化本地劳动力变化','bg_color': 'color1'},
{ 'name': '年轻城市分布年轻城市分布','bg_color': 'color1'}
]
},
{ 'name': '产业','bg_color': 'color2',
'children': [
{ 'name': '一.月活跃度','bg_color': 'color2'},
{ 'name': '二月.月活跃度','bg_color': 'color2',
'children': [
{ 'name': '(4)GDP年预期','bg_color': 'color2'},
{ 'name': '制造业集中度','bg_color': 'color2'}
]
},
{'name':'三月.月活跃度','bg_color': 'color2'}
]
},
{ 'name':"环保",'bg_color': 'color3',
'children':[
{ 'name': '事件预警','bg_color': 'color3'},
{ 'name': '环境口碑年度','bg_color': 'color3'}
]
},
{
'name':"稳定",'bg_color': 'color4',
'children':[
{ 'name': '事件预警','bg_color': 'color4'},
{ 'name': '监测详情','bg_color': 'color4'},
{ 'name': '维稳效果指数','bg_color': 'color4'}
]
},
{
'name':"社会名声",'bg_color': 'color5',
'children':[
{ 'name': '医疗','bg_color': 'color5'},
{ 'name': '教育','bg_color': 'color5',
'children':[
{ 'name': '路网','bg_color': 'color5'},
{ 'name': '房产居住获得感','bg_color': 'color5'}
]
},
{ 'name': '公交','bg_color': 'color5'}
]
},
{
'name':"城市配套",'bg_color': 'color6',
'children':[
{ 'name': '交通建设','bg_color': 'color6'},
{ 'name': '文化建设','bg_color': 'color6'},
{ 'name': '生活服务','bg_color': 'color6'}
]
},
]
}
实体类
要封装这样数据,为避免产生多次的数据交互,可以直接在实体类里面建立关系
一张表以pid关联数据
@NotFound(action = NotFoundAction.IGNORE) 要加上,否则找不到对应的数据会报错
/**主键*/
private String id;
/**父*/
private RtsRiskReasonPageEntity parent;
/**子*/
private List<RtsRiskReasonPageEntity> children = new ArrayList<RtsRiskReasonPageEntity>();
@OneToMany(mappedBy="parent", cascade={CascadeType.ALL}, fetch=FetchType.EAGER)
@NotFound(action = NotFoundAction.IGNORE)
public List<RtsRiskReasonPageEntity> getChildren() {
return children;
}
public void setChildren(List<RtsRiskReasonPageEntity> children) {
this.children = children;
}
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="pid")
@NotFound(action = NotFoundAction.IGNORE)
public RtsRiskReasonPageEntity getParent() {
return parent;
}
public void setParent(RtsRiskReasonPageEntity parent) {
this.parent = parent;
}
后台
使用fastjson的 JSONArray.toJSONString()直接处理数据。
@RequestMapping(params = "getTreeData")
@ResponseBody
public String getTreeData(HttpServletRequest request) {
Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> relationshipMap = new HashMap<String, Object>();
List<RtsRiskReasonPageEntity> list = this.systemService.findByProperty(RtsRiskReasonPageEntity.class, "fkId", request.getParameter("fkId"));
return JSONArray.toJSONString(list.get(0));
}