Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-admin-consultation
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-admin-consultation
提交
1718b6f3
提交
1718b6f3
编写于
3月 04, 2019
作者:
zhentian.jia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加树型结构的细节问题
上级
620569ad
变更
2
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
654 行增加
和
297 行删除
+654
-297
add-manager.vue
src/views/education/add-manager.vue
+481
-282
role.vue
src/views/system/role.vue
+173
-15
未找到文件。
src/views/education/add-manager.vue
浏览文件 @
1718b6f3
此差异已折叠。
点击以展开。
src/views/system/role.vue
浏览文件 @
1718b6f3
<
template
>
<div
class=
"create-item"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
角色管理
<div>
<el-tree
:data=
"data2"
show-checkbox
default-expand-all
node-key=
"id"
ref=
"tree"
highlight-current
:props=
"defaultProps"
@
check=
"onChecked"
></el-tree>
<span></span>
<div
class=
"buttons"
>
<el-button
@
click=
"getCheckedNodes"
>
通过 node 获取
</el-button>
<el-button
@
click=
"getCheckedKeys"
>
通过 key 获取
</el-button>
<el-button
@
click=
"setCheckedNodes"
>
通过 node 设置
</el-button>
<el-button
@
click=
"setCheckedKeys"
>
通过 key 设置
</el-button>
<el-button
@
click=
"resetChecked"
>
清空
</el-button>
</div>
</div>
</
template
>
<
script
>
import
BreadCrumb
from
'../../components/breadcrumb.vue'
import
{
ELTree1
}
from
"element-ui/lib/checkbox"
;
// import Vue from 'vue'
// require("element-ui/lib/checkbox"
export
default
{
components
:
{
BreadCrumb
// components: {
// base1
// },
mounted
()
{
// const base1 = Vue.extend(ELTree)
// Vue.component('base1', base1)
},
data
()
{
return
{
data2
:
[
{
id
:
11
,
label
:
"一级 1"
,
children
:
[
{
id
:
1
,
label
:
"一级 1"
,
children
:
[
{
id
:
4
,
label
:
"二级 1-1"
,
children
:
[
{
id
:
9
,
label
:
"三级 1-1-1"
},
{
id
:
10
,
label
:
"三级 1-1-2"
}
]
}
]
},
{
id
:
2
,
label
:
"一级 2"
,
children
:
[
{
id
:
5
,
label
:
"二级 2-1"
},
{
id
:
6
,
label
:
"二级 2-2"
}
]
},
{
id
:
3
,
label
:
"一级 3"
,
children
:
[
{
id
:
7
,
label
:
"二级 3-1"
},
{
id
:
8
,
label
:
"二级 3-2"
}
]
}
]
}
],
defaultProps
:
{
children
:
"children"
,
label
:
"label"
}
};
},
methods
:
{
getCheckedNodes
()
{
console
.
log
(
this
.
$refs
.
tree
.
getCheckedNodes
());
},
data
()
{
return
{
curmbFirst
:
'系统管理'
,
curmbSecond
:
'角色管理'
getCheckedKeys
()
{
console
.
log
(
this
.
$refs
.
tree
.
getCheckedKeys
());
},
setCheckedNodes
()
{
this
.
$refs
.
tree
.
setCheckedNodes
([
{
id
:
5
,
label
:
"二级 2-1"
},
{
id
:
9
,
label
:
"三级 1-1-1"
}
}
}
</
script
>
<
style
>
]);
},
setCheckedKeys
()
{
this
.
$refs
.
tree
.
setCheckedKeys
([
3
]);
},
resetChecked
()
{
this
.
$refs
.
tree
.
setCheckedKeys
([]);
},
</
style
>
onChecked
()
{
let
cData
=
[],
oldData
=
(
this
.
data2
.
length
&&
this
.
data2
.
slice
())
||
[],
checkedKeys
=
this
.
$refs
.
tree
.
getCheckedKeys
(),
halfCheckedKeys
=
this
.
$refs
.
tree
.
getHalfCheckedKeys
(),
savedCheckedKeys
=
this
.
handlerCheckedData
(
oldData
,
checkedKeys
).
map
(
key
=>
{
return
{
type
:
2
,
key
:
key
};
}
),
savedHalfCheckedKeys
=
halfCheckedKeys
.
map
(
key
=>
{
return
{
type
:
1
,
key
:
key
};
}),
allSelectedKeys
=
savedCheckedKeys
.
concat
(
savedHalfCheckedKeys
);
console
.
log
(
allSelectedKeys
);
},
// 递归删除列表中所有子节点
delSubKeysByNode
(
node
,
checkedKeys
)
{
let
idIndex
;
if
(
node
.
children
&&
node
.
children
.
length
)
{
if
(
node
.
children
&&
node
.
children
.
length
)
{
node
.
children
.
forEach
(
elm
=>
{
idIndex
=
checkedKeys
.
findIndex
(
id
=>
{
return
id
===
elm
.
id
;
});
if
(
idIndex
>
-
1
)
{
checkedKeys
.
splice
(
idIndex
,
1
);
}
if
(
elm
.
children
&&
elm
.
children
.
length
)
{
this
.
delSubKeysByNode
(
elm
,
checkedKeys
);
}
});
}
}
},
// 去除子节点
handlerCheckedData
(
oldData
,
checkedKeys
)
{
oldData
.
forEach
(
element
=>
{
for
(
let
i
=
0
;
i
<
checkedKeys
.
length
;
i
++
)
{
// 如果此节点被选中,则删除所有子节点
if
(
element
.
id
===
checkedKeys
[
i
])
{
this
.
delSubKeysByNode
(
element
,
checkedKeys
);
}
else
{
if
(
element
.
children
&&
element
.
children
.
length
)
{
this
.
handlerCheckedData
(
element
.
children
,
checkedKeys
);
}
}
}
});
return
checkedKeys
;
}
}
};
</
script
>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录