layui/examples/tree.html
2023-07-12 15:31:42 +08:00

254 lines
5.6 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>树组件 - layui</title>
<link rel="stylesheet" href="../src/css/layui.css" media="all">
<style>
body{padding: 100px;}
#test1,#test2{margin-bottom: 100px; width: 400px;}
</style>
</head>
<body>
<div class="layui-btn-container">
<button type="button" class="layui-btn" lay-demo="getChecked">获取选中数据</button>
<button type="button" class="layui-btn" lay-demo="setChecked">设置节点勾选</button>
<button type="button" class="layui-btn" lay-demo="reload">重载实例</button>
</div>
<div class="layui-form">
<div class="layui-form-item">
<label class="layui-form-label">表单内</label>
<div class="layui-input-block">
</div>
</div>
<div id="test1"></div>
<div id="test2"></div>
<script src="../src/layui.js"></script>
<script>
layui.use(['tree', 'layer', 'util'], function(){
var $ = layui.$
,tree = layui.tree
,layer = layui.layer
,util = layui.util
,index = 100;
//数据源
var data1 = [{
title: 'A-1'
,id: 1
,children: [{
title: 'B-1-1'
,id: 3
,href: 'https://www.layui.com/doc/'
,children: [{
title: 'C-1-1-3'
,id: 23
,children: [{
title: 'D-1-1-3-1'
,id: 24
,children: [{
title: 'E-1-1-3-1-1'
,id: 30
},{
title: 'E-1-1-3-1-2'
,id: 31
}]
}]
},{
title: 'C-1-1-1'
,id: 7
,checked: true
,children: [{
title: 'D-1-1-1-1'
,id: 15
//,checked: true
,href: 'https://www.layui.com/doc/base/infrastructure.html'
}]
},{
title: 'C-1-1-2'
,id: 8
,children: [{
title: 'D-1-1-2-1'
,id: 32
}]
}]
},{
title: 'B-1-2'
,id: 4
,spread: true
,children: [{
title: 'C-1-2-1'
,id: 9
,checked: true
,disabled: true
},{
title: 'C-1-2-2'
,id: 10
}]
},{
title: 'B-1-3'
,id: 20
,children: [{
title: 'C-1-3-1'
,id: 21
},{
title: 'C-1-3-2'
,id: 22
}]
}]
},{
title: 'A-2'
,id: 2
,spread: true
,children: [{
title: 'B-2-1'
,id: 5
,spread: true
,children: [{
title: 'C-2-1-1'
,id: 11
},{
title: 'C-2-1-2'
,id: 12
}]
},{
title: 'B-2-2'
,id: 6
,checked: true
,children: [{
title: 'C-2-2-1'
,id: 13
},{
title: 'C-2-2-2'
,id: 14
,disabled: true
}]
}]
},{
title: 'A-3'
,id: 16
,children: [{
title: 'B-3-1'
,id: 17
,fixed: true
,children: [{
title: 'C-3-1-1'
,id: 18
},{
title: 'C-3-1-2'
,id: 19
}]
},{
title: 'B-3-2'
,id: 27
,children: [{
title: 'C-3-2-1'
,id: 28
},{
title: 'C-3-2-2'
,id: 29
}]
}]
}];
//数据源
var data2 = [{
title: '控制台'
,id: '1000'
,spread: true
,checked: true
,children: [{
title: '概览'
,id: '1001'
,spread: true
,checked: true
},{
title: '域名'
,id: '1002'
,spread: true
,checked: true
}]
}]
tree.render({
elem: '#test1'
,data: data1
,id: 'demoId1'
,click: function(obj){
layer.msg(JSON.stringify(obj.data));
console.log(obj);
}
,oncheck: function(obj){
//console.log(obj);
}
,operate: function(obj){
var type = obj.type;
if(type == 'add'){
//ajax操作返回key值
return index++;
}else if(type == 'update'){
console.log(obj.elem.find('.layui-tree-txt').html());
}else if(type == 'del'){
console.log(obj);
};
}
,showCheckbox: true //是否显示复选框
,accordion: 0 //是否开启手风琴模式
,onlyIconControl: true //是否仅允许节点左侧图标控制展开收缩
,isJump: 0 //点击文案跳转地址
,edit: true //操作节点图标
});
//按钮事件
util.event('lay-demo', {
getChecked: function(othis){
var checkedData = tree.getChecked('demoId1');
layer.alert(JSON.stringify(checkedData), {shade:0});
console.log(checkedData);
}
,setChecked: function(){
tree.setChecked('demoId1', [11,12]);
}
,reload: function(){
tree.reload('demoId1', {
});
}
});
tree.render({
elem: '#test2'
,data: data1
//,expandClick: false
,showLine: false //关闭连接线
,click: function(obj, state){
console.log(obj);
}
,oncheck: function(obj, checked, child){
if(checked){
console.log(obj[0]);
}
}
,onsearch: function(data, num){
console.log(num);
}
,dragstart: function(obj, parent){
console.log(obj, parent);
}
,dragend: function(state, obj, target){
console.log(state, obj, target);
}
});
});
</script>
</body>
</html>