// 传参数调用

function test(){
roleOrOrgSelect(3,function(data){
console.log(data);
});
}

/**
*
* @param type (1:返回选中的角色数据 2:返回选中的机构数据 3:返回选中的人员数据)
* @param callback (用户自定义回调函数)
* @returns
*/

function roleOrOrgSelect(type,callback){
layer.open({
type: 2 //此处以iframe举例
, title: "选择用户"
, area: ['800px', ($(window).height())+'px']
, shade: 0
, offset:'rb',
scrollbar: false,
shade:0.5,
shift: 2,
fixed:false,
resize:false,
scrollbar:true,
move:false
, maxmin: false
, content: 'appDataController.do?roleOrOrgSelect'
, zIndex: layer.zIndex 
, success: function (layero) {
layer.setTop(layero); 
}
, btn: ['确定']
, yes: function(index){
var child = 'layui-layer-iframe'+index;
$child = $("#"+child)[0].contentWindow;
var data = $child.submit();
console.log(data);
var user =[];
var role =[];
var org =[];
$.each(data,function(i,item){
var itype = item.type;
if(itype ==1){
role.push(item);
}else if(itype ==1){
org.push(item);
}else{
user.push(item);
}
})
if(type == 1){
callback(role);
}else if(type == 2){
callback(org);
}else{
callback(user);
}
layer.close(index);
}
});
}

//ztree 构建

<script type="text/javascript">

var setting = {
check: {
enable: true,
},
view:{
showIcon:true,
},
data: {
simpleData: {
enable: true,
}
},
async: {
enable: true,
url:"userController.do?roleTreeList",
dataFilter: filter
},
callback: {
beforeAsync: function(){},
onAsyncSuccess: function(event, treeId, treeNode, msg){

},
onCheck: onCheck,
onAsyncError: function(){},
onClick: function (event, treeId, treeNode){

}
}
};

$(function(){
$.fn.zTree.init($("#tree"), setting);
})

var vm = new Vue({
el : "#selected",
data : {
selectedList : [], //右侧显示勾选项
dataList:[], //最后提交得数据

},
mounted: function () {
this.$nextTick(function () {
})
},
})

// 数据过滤
function filter(treeId, parentNode, childNodes){
if (!childNodes) return null;
for (var i=0, l=childNodes.length; i<l; i++) {
childNodes[i].name = childNodes[i].text;
childNodes[i].type = childNodes[i].type;
if(childNodes[i].type ==3){
childNodes[i].icon = "images/user.png";
}
//childNodes[i].open = (childNodes[i].state === "open");//异步加载,该项无效
if (childNodes[i].children != null) {
childNodes[i].nodes = childNodes[i].children;
filter(null, childNodes[i], childNodes[i].nodes);//递归设置子节点
}
}
return childNodes;
}
//展开角色tree
function getRoleList(){
setting.async.url="userController.do?roleTreeList";
$.fn.zTree.init($("#tree"), setting);
}
//展开机构tree
function getOrgList(){
setting.async.url="userController.do?orgTreeList";
$.fn.zTree.init($("#tree"), setting);
}
//checkbox勾选事件
function onCheck(event, treeId, treeNode){
var treeObj=$.fn.zTree.getZTreeObj("tree");
var selected=treeObj.getCheckedNodes(true);
vm.selectedList=selected;
var dataSelected =[];
$.each(selected,function(i,item){
var row={};
row.name = item.name;
row.id = item.id;
row.type = item.type;
dataSelected.push(row);
});
vm.dataList = dataSelected;
}
//清空
function clearAll(){
vm.selectedList=null;
}
//全选
function checkAll(){
var treeObj=$.fn.zTree.getZTreeObj("tree");
var flag = $("#selectAll").attr("data-flag");
if(flag ==1){
treeObj.checkAllNodes(false);
$("#selectAll").attr("data-flag",2);
}else{
treeObj.checkAllNodes(true);
$("#selectAll").attr("data-flag",1);
}
var selected=treeObj.getCheckedNodes(true);
vm.selectedList=selected;
var dataSelected =[];
$.each(selected,function(i,item){
var row={};
row.name = item.name;
row.id = item.id;
row.type = item.type;
dataSelected.push(row);
});
vm.dataList = dataSelected;
}
//确定
function submit(){
return vm.dataList;
}

</script>

zTree插件 角色、部门、人员分类选择的更多相关文章

  1. 使用Vue-TreeSelect组件实现公司-部门-人员级联下拉列表的处理

    最近在改造原有Bootstrap开发框架,增加一个Vue&Element前端的时候,发现需要处理一个级联更新的过程,就是选择公司,然后更新部门,选择部门,或者人员列表,选择作为主管的一个实现, ...

  2. ztree插件的使用

    在bootstrap中使用ztree插件做树形架构,由于觉得原始的树形不够美观,所以改了其中的css插件 demo演示,以及各种属性的用法网站:  http://www.treejs.cn/v3/de ...

  3. zTree插件之多选下拉菜单代码

    zTree插件之多选下拉菜单代码 css和js <!--ztree树结构--> <link rel="stylesheet" type="text/cs ...

  4. ztree插件(JQuery Tree)

    本次使用的ztree插件,基本上所有的需求都能满足,可谓功能强大. * [http://www.ztree.me/v3/api.php zTree v3.0 API 文档] * [http://www ...

  5. bootstrap jQuery Ztree异步载入数据,check选择&amp;可加入、改动、删除节点

    效果图: 一.下载zTree插件 地址:http://www.ztree.me 二.html代码 <link href="../Scripts/zTree/css/zTreeStyle ...

  6. ztree插件异步加载 使用RESTEasy报错 Only resource methods using @FormParam will work as expected. Resource methods consuming the request body by other means will not work as expected.

    在使用ztree插件实现异步加载时遇到后台RESTEasy接收参数问题,查看后台报错: A servlet request to the URI http://localhost:8080/area/ ...

  7. 1、用datetimepicker插件实现限定时间范围的选择 2、时间插件实现默认当天的时间和只能选择小于今天的日期

    一.用datetimepicker插件实现限定时间范围的选择 1.下面是要实现的效果图,让开始时间只能从  2018-7-1  到 2018-7-7 选择. 2.html的结构 <div cla ...

  8. 使用zTree插件构建树形菜单

    zTree下载:https://github.com/zTree/zTree_v3 目录: 就我看来,zTree较为实用的有以下几点: zTree 是一个依靠 jQuery 实现的多功能 “树插件”. ...

  9. jQuery树形菜单,使用zTree插件,异步载入 &amp; 编辑功能&amp;Check 共存

    一.下载zTree插件 地址:http://www.ztree.me 二.HTML代码 <%@ Page Language="C#" AutoEventWireup=&quo ...

随机推荐

  1. Python绘制2D图像

    封装了一个简单的2d绘图函数 from matplotlib import pyplot as plt def plot_line(*args, **kw): """ : ...

  2. php删除字符串最后一位

    一.前言 从数据库中select()读取一对多的信息时,经常需要将取出的数组用某个特定的字符分割,然后拼接成字符串. 常见的语法格式: foreach ($arr as $key => $val ...

  3. Java - 32 Java 多线程编程

    Java 多线程编程 Java给多线程编程提供了内置的支持.一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径. 多线程是多任务的一种特别 ...

  4. Java捕获异常的问题

    ---恢复内容开始--- 在Java编译过程中,有时候会出现输入未按照规定输入的情况,此时需要警告用户输入错误,这就会是程序运行过程中出现异常.异常就是可预测但是又没办法消除的一种错误.所以在编写过程 ...

  5. JVM总结-Java 虚拟机是怎么识别目标方法(上)

    重载与重写 在 Java 程序里,如果同一个类中出现多个名字相同,并且参数类型相同的方法,那么它无法通过编译.也就是说,在正常情况下,如果我们想要在同一个类中定义名字相同的方法,那么它们的参数类型必须 ...

  6. 【Java】边框总结

    [Java]边框总结 Table of Contents 1 例子代码与结果 2 javax.swing.border 3 BorderFactory 4 LineBorder 5 MatteBord ...

  7. [UGUI]图文混排(六):点击区域

    点击区域可以分成两部分来分析: 0.Rect 搜索api:Rect和Rect.Rect,可以知道: 在GUI和GUILayout中,Rect的原点在左上角,向右为x轴正方向,向下为y轴正方向: 除此之 ...

  8. [Lua]string与中文

    参考链接: https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81/8446880?fr=aladdin#7 http:// ...

  9. SAPCertifiedTechnologyAssociate-SystemAdministration(SAPHANAasaDatabase)

    C_TADM55_75 SAP Certified Technology Associate - System Administration (SAP HANA as a Database) with ...

  10. 操作MySQL

    1修改MySQL表结构数据类型:ALTER TABLE 表名 MODIFY 字段名 VARCHAR(50); 2.删除表:DROP TABLE 表名: 3.now() 日期时间函数 4.sysdate ...