2019-05-31 14:36:29 +08:00
|
|
|
|
|
2017-08-21 08:51:13 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
2019-05-31 14:36:29 +08:00
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<title>树组件 - layui</title>
|
|
|
|
|
<meta name="renderer" content="webkit">
|
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
|
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
|
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
|
<meta name="format-detection" content="telephone=no">
|
2017-08-21 08:51:13 +08:00
|
|
|
|
|
2019-05-31 14:36:29 +08:00
|
|
|
|
<link rel="stylesheet" href="../src/css/layui.css" media="all">
|
|
|
|
|
|
|
|
|
|
<style>
|
2019-06-06 12:19:43 +08:00
|
|
|
|
body{padding: 100px;}
|
2019-05-31 14:36:29 +08:00
|
|
|
|
#test1,#test2{margin-bottom: 100px; width: 400px;}
|
|
|
|
|
</style>
|
2017-08-21 08:51:13 +08:00
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
2019-06-06 12:19:43 +08:00
|
|
|
|
<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>
|
|
|
|
|
|
2019-05-31 14:36:29 +08:00
|
|
|
|
<div id="test1"></div>
|
|
|
|
|
<div id="test2"></div>
|
2017-08-21 08:51:13 +08:00
|
|
|
|
|
2019-05-31 15:32:30 +08:00
|
|
|
|
<script src="../src/layui.js"></script>
|
2017-08-21 08:51:13 +08:00
|
|
|
|
<script>
|
2019-06-06 12:19:43 +08:00
|
|
|
|
layui.use(['tree', 'layer', 'util'], function(){
|
|
|
|
|
var $ = layui.$
|
|
|
|
|
,tree = layui.tree
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,layer = layui.layer
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,util = layui.util
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,index = 100;
|
|
|
|
|
|
|
|
|
|
//数据源
|
|
|
|
|
var data1 = [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '一级1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 1
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级1-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 3
|
|
|
|
|
,href: 'https://www.layui.com/doc/'
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-1-3'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 23
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '四级1-1-3-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 24
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '五级1-1-3-1-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 30
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '五级1-1-3-1-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 31
|
|
|
|
|
}]
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-1-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 7
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,checked: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '四级1-1-1-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 15
|
2019-09-10 08:37:47 +08:00
|
|
|
|
//,checked: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,href: 'https://www.layui.com/doc/base/infrastructure.html'
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-1-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 8
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '四级1-1-2-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 32
|
|
|
|
|
}]
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级1-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 4
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,spread: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-2-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 9
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,checked: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,disabled: true
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-2-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 10
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级1-3'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 20
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-3-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 21
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级1-3-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 22
|
|
|
|
|
}]
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '一级2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 2
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,spread: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级2-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 5
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,spread: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级2-1-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 11
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级2-1-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 12
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级2-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 6
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,checked: true
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级2-2-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 13
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级2-2-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 14
|
|
|
|
|
,disabled: true
|
|
|
|
|
}]
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '一级3'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 16
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级3-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 17
|
|
|
|
|
,fixed: true
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级3-1-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 18
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级3-1-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 19
|
|
|
|
|
}]
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '二级3-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 27
|
|
|
|
|
,children: [{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级3-2-1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 28
|
|
|
|
|
},{
|
2019-06-06 12:19:43 +08:00
|
|
|
|
title: '三级3-2-2'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,id: 29
|
|
|
|
|
}]
|
|
|
|
|
}]
|
|
|
|
|
}];
|
2019-09-10 08:37:47 +08:00
|
|
|
|
|
|
|
|
|
//数据源
|
|
|
|
|
var data2 = [{
|
|
|
|
|
title: '控制台'
|
|
|
|
|
,id: '1000'
|
|
|
|
|
,spread: true
|
|
|
|
|
,checked: true
|
|
|
|
|
,children: [{
|
|
|
|
|
title: '概览'
|
|
|
|
|
,id: '1001'
|
|
|
|
|
,spread: true
|
|
|
|
|
,checked: true
|
|
|
|
|
},{
|
|
|
|
|
title: '域名'
|
|
|
|
|
,id: '1002'
|
|
|
|
|
,spread: true
|
|
|
|
|
,checked: true
|
|
|
|
|
}]
|
|
|
|
|
}]
|
2017-08-21 08:51:13 +08:00
|
|
|
|
|
2019-06-06 12:19:43 +08:00
|
|
|
|
tree.render({
|
2019-05-31 14:36:29 +08:00
|
|
|
|
elem: '#test1'
|
|
|
|
|
,data: data1
|
2019-06-06 12:19:43 +08:00
|
|
|
|
,id: 'demoId1'
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,click: function(obj){
|
2019-06-02 23:14:47 +08:00
|
|
|
|
layer.msg(JSON.stringify(obj.data));
|
2019-06-03 07:57:12 +08:00
|
|
|
|
console.log(obj);
|
2017-08-21 08:51:13 +08:00
|
|
|
|
}
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,oncheck: function(obj){
|
2019-09-10 08:37:47 +08:00
|
|
|
|
//console.log(obj);
|
2019-05-31 14:36:29 +08:00
|
|
|
|
}
|
|
|
|
|
,operate: function(obj){
|
|
|
|
|
var type = obj.type;
|
|
|
|
|
if(type == 'add'){
|
|
|
|
|
//ajax操作,返回key值
|
|
|
|
|
return index++;
|
2019-06-03 07:57:12 +08:00
|
|
|
|
}else if(type == 'update'){
|
2019-05-31 14:36:29 +08:00
|
|
|
|
console.log(obj.elem.find('.layui-tree-txt').html());
|
|
|
|
|
}else if(type == 'del'){
|
|
|
|
|
console.log(obj);
|
|
|
|
|
};
|
2017-08-21 08:51:13 +08:00
|
|
|
|
}
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,showCheckbox: true //是否显示复选框
|
|
|
|
|
,accordion: 0 //是否开启手风琴模式
|
2019-06-03 07:57:12 +08:00
|
|
|
|
|
|
|
|
|
,onlyIconControl: true //是否仅允许节点左侧图标控制展开收缩
|
2019-05-31 14:36:29 +08:00
|
|
|
|
,isJump: 0 //点击文案跳转地址
|
2019-06-03 07:57:12 +08:00
|
|
|
|
,edit: true //操作节点图标
|
2017-08-21 08:51:13 +08:00
|
|
|
|
});
|
|
|
|
|
|
2019-06-06 12:19:43 +08:00
|
|
|
|
//按钮事件
|
|
|
|
|
util.event('lay-demo', {
|
|
|
|
|
getChecked: function(othis){
|
|
|
|
|
var checkedData = tree.getChecked('demoId1');
|
|
|
|
|
layer.alert(JSON.stringify(checkedData), {shade:0});
|
|
|
|
|
console.log(checkedData);
|
|
|
|
|
}
|
|
|
|
|
,setChecked: function(){
|
2019-09-10 08:37:47 +08:00
|
|
|
|
tree.setChecked('demoId1', [1000, 1001, 1002]);
|
2019-06-06 12:19:43 +08:00
|
|
|
|
}
|
|
|
|
|
,reload: function(){
|
|
|
|
|
tree.reload('demoId1', {
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
});
|
2019-05-31 14:36:29 +08:00
|
|
|
|
|
|
|
|
|
tree.render({
|
|
|
|
|
elem: '#test2'
|
|
|
|
|
,data: data1
|
|
|
|
|
//,expandClick: false
|
|
|
|
|
,showLine: false //关闭连接线
|
|
|
|
|
,click: function(obj, state){
|
2019-06-03 07:57:12 +08:00
|
|
|
|
console.log(obj);
|
2019-05-31 14:36:29 +08:00
|
|
|
|
}
|
|
|
|
|
,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);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2017-08-21 08:51:13 +08:00
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
</body>
|
2019-05-31 14:36:29 +08:00
|
|
|
|
</html>
|