首先是用stream()流进行排序
depts.stream()
.filter(dept -> dept.getDeptId().intValue() != dept.getParentId())
.sorted(Comparator.comparingInt(SysDept::getSort))代码片
用TreeNode对象的权重排序`::
List<TreeNode> collect = depts.stream()
.filter(dept -> dept.getDeptId().intValue() != dept.getParentId())
.sorted(Comparator.comparingInt(SysDept::getSort)).map(dept -> {
TreeNode treeNode = new TreeNode();
treeNode.setId(dept.getDeptId());
treeNode.setParentId(dept.getParentId());
treeNode.setName(dept.getName());
//这是排序的权重
treeNode.setWeight(dept.getSort());
return treeNode;
}).collect(Collectors.toList());
public Object getTree() {
// 查询数据
List<LxhpArea> areaList = areaService.list();
// 构建的整个树数据
List<TreeNode<String>> treeNodeList = areaList.stream().map(area -> {
// 扩展字段赋值,下面要取这里的值
Map<String, Object> extraMap = new HashMap<>();
extraMap.put("domain", area.getDomain());
extraMap.put("isOpen", area.getIsOpen());
extraMap.put("bigArea", area.getBigArea());
// 单个树数据构建
TreeNode<String> treeNode = new TreeNode<String>()
.setId(String.valueOf(area.getId())) // 主键
.setParentId(String.valueOf(area.getReid())) // 父节点ID
.setName(area.getName()) // 省份名称
.setWeight(area.getSortOrder()) //权重,排序
.setExtra(extraMap); // 扩展字段
return treeNode;
}).collect(Collectors.toList());
// 配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名(修改默认名称)
treeNodeConfig.setWeightKey("sortOrder");
treeNodeConfig.setChildrenKey("childrenNode");
// 最大递归深度
treeNodeConfig.setDeep(1);
//转换器
List<Tree<String>> treeNodes = TreeUtil.build(treeNodeList, "1", treeNodeConfig,
(treeNode, tree) -> {
// 给树节点赋值(还能set 父 或子节点树)
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(treeNode.getWeight());
tree.setName(treeNode.getName());
// 扩展属性值赋值
// treeNode.getExtra().getOrDefault("domain", null) 是获取上面Map放进去的值,没有就是 null
tree.putExtra("domain", treeNode.getExtra().getOrDefault("domain", null));
tree.putExtra("isOpen", treeNode.getExtra().getOrDefault("isOpen", null));
tree.putExtra("bigArea", treeNode.getExtra().getOrDefault("bigArea", null));
});
return JSONUtil.parse(treeNodes);
}
**
TreeNodeConfig 属性和方法
**
private static final long serialVersionUID = 1L;
public static TreeNodeConfig DEFAULT_CONFIG = new TreeNodeConfig();
private String idKey = "id";
private String parentIdKey = "parentId";
private String weightKey = "weight";
private String nameKey = "name";
private String childrenKey = "children";
private Integer deep;
链接:
link
.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去
博客设置
页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的
代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
-
项目
-
项目
- 项目
-
项目
- 项目1
- 项目2
- 项目3
-
计划任务 -
完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用
:---------:
居中
使用
:----------
居左
使用
----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII |
HTML |
---|---|---|
Single backticks |
|
‘Isn’t this fun?’ |
Quotes |
|
“Isn’t this fun?” |
Dashes |
|
– is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
-
Text-to-
HTML
conversion tool - John
- Luke
Authors
如何创建一个注脚
一个具有注脚的文本。
1
注释也是必不可少的
Markdown将文本转换为
HTML
。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式
KaTeX
:
Gamma公式展示
Γ
(
n
)
=
(
n
−
1
)
!
∀
n
∈
N
\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N
Γ
(
n
)
=
(
n
−
1
)
!
∀
n
∈
N
是通过欧拉积分
Γ
(
z
)
=
∫
0
∞
t
z
−
1
e
−
t
d
t
.
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
Γ
(
z
)
=
∫
0
∞
t
z
−
1
e
−
t
d
t
.
你可以找到更多关于的信息
LaTeX
数学表达式
here
.
新的甘特图功能,丰富你的文章
-
关于
甘特图
语法,参考
这儿
,
UML 图表
可以使用UML图表进行渲染。
Mermaid
. 例如下面产生的一个序列图:
这将产生一个流程图。:
-
关于
Mermaid
语法,参考
这儿
,
FLowchart流程图
我们依旧会支持flowchart的流程图:
-
关于
Flowchart流程图
语法,参考
这儿
.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到
文章导出
,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
-
注脚的解释
↩︎