大家好,又见面了,我是你们的朋友全栈君。
1. PrimeNG官网:https://www.primefaces.org/primeng/#/treetable
2. 引入TreeTableModule到自己的module.ts中
3. 页面中写上PrimeNG规定的p-treeTable格式,value对应后台返回的treeNode格式,field中对应的是data:item中返回的值 的名称
<
p
-treeTable
[
value
]=
“_organizationalManagementList“
selectionMode
=
“single”
[(
selection
)]=
“selectedFile”
onNodeSelect
)=
“_OrganizationalSelectHandler($event)”
(
onNodeExpand
)=
“_expandOrganizational($event)”
>
p
-header
>Singe Selection
</
p
-header
>
p-column
field=
“descn”
header=
“部门名称” [
style]=
“{‘width’:’200px’}”
></
p-column
>
p-column
field=
“id”
header=
“”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“部门编号”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“部门简称”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“部门性质”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“负责人”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“电话号”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“分机号”
></
p-column
>
p-column
field=
“jobGroupId”
header=
“备注”
></
p-column
>
p
-treeTable
>
4. 首次请求后台得到第一次树形节点数据
unitService.
getAllOrganizational()
subscribe(
profile:
any[])
=> {
log(
profile);
this
.
_organizationalManagementList
=
profile
.
map
(
item
=>
{
item[
“descn”],
item,
“fa-folder-open”,
“fa-folder”,
false
5. 第二次展开,会触发 onNodeExpand方法,执行中根据$event中的id值进行第二次请求
event){
log(
event);
event.
node) {
unitService.
getAllOrganizationalById(
event.
node[
“data”].
id).
subscribe(
res:
any[])
=> {
childrenList=
res[
“privileges”];
event.node.children
=
childrenList
.
map
(
item
=>
{
item[
“text”],
item,
“fa-folder-open”,
“fa-folder”,
false
err:
HttpErrorResponse)
=> {
err.
error
instanceof
Error) {
`客户端错误or网络连接失败,
${
err.
error.
message
}
`);
else {
errMsg =
`服务器返回数据失败,错误代码:
${
status
,错误信息:
${
err.
error
}
`;
log(
errMsg);
errMsg);
6. 再展开之前还需要判断是否已经是最后一层,如果是的话是文件形式的图标,如果不是的话是文件夹形式,后续会再更新
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141863.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...