/**
 @Name:checkOrg 树组件
 @Author:wyh
 @License:MIT
    
 */
layui.define('jquery', function(exports){
	"use strict";
  
	var $ = layui.$
	,hint = layui.hint();
  
	var enterSkin = '', CheckOrg = function(options){
		this.options = options;
	};
  
	//初始化
	CheckOrg.prototype.init = function(options){
		var that = this;
		var isAll = "";
		var isChild = "";
		if(that.options.isAll){
			isAll = "y";
		}
		if(that.options.iscity){
			isAll = "c";
		}
		if(that.options.isChild){
			isChild = "y";
		}
		$.post(Common.ctxPath + "/core/user/xtorg.json?isChild="+isChild+"&orgId="+that.options.orgId+"&isAll="+isAll, {}, function(data) {
			var zNodes = data;
			console.log(zNodes)
			var zTreeObj = null;
			var index = layer.open({
				type : 0,
				area : [ '500px', '400px' ],
				offset : 't',
				anim : 5,
				title : '选择组织机构',
				content : "<ul id='_treeDemo' class='ztree'></ul>",
				btn: ['确定','重置'],
				success: function(layero, index){
					zTreeObj = that.setting(zNodes);
					that.spread(zTreeObj);
				},
				yes : function(index, layero) {
					if(that.options.ascertain){
						 that.ascertain(zTreeObj);
					}
					layer.close(index);
				},
				btn2: function(index, layero){
					if(that.options.inputId){
						that.options.inputId.val('');
					}
					if(that.options.inputName){
						that.options.inputName.val('');
					}
					zTreeObj.cancelSelectedNode();
				}
			
			});
		});
	};
  
  
	//多选级联
	CheckOrg.prototype.setting = function(zNodes){
		var that = this, options = that.options;
		var zTreeObj = null;
		var setting = {};
		if(that.options.multipleChoice){
			setting = {
			        view: {
			            dblClickExpand: false,
			            showLine: false
			        },
			        data: {
			            simpleData: {
			                enable: true
			            }
			        },
			        check: {
			            enable: true,
			            chkboxType: {"Y": "", "N": ""}
			        },
			        callback: {
			        	onClick: function (e, treeId, treeNode, clickFlag) { 
			        		that.click(zTreeObj,treeNode);
					 	} 
			        }

			    };
			if(that.options.isRecursive){
				setting = {
				        view: {
				            dblClickExpand: false,
				            showLine: false
				        },
				        data: {
				            simpleData: {
				                enable: true
				            }
				        },
				        check: {
				            enable: true,
				            chkboxType: {"Y": "ps", "N": ""}
				        },
				        callback: {
				        	onClick: function (e, treeId, treeNode, clickFlag) { 
				        		that.click(zTreeObj,treeNode);
						 	} 
				        }

				    };
			}
		}else{
			setting = {
			        view: {
			            dblClickExpand: false,
			            showLine: false
			        },
			        data: {
			            simpleData: {
			                enable: true
			            }
			        },
			        check: {
			            enable: true,
			            chkStyle: "radio",
						radioType: "all"
			        },
			        callback: {
			        	onClick: function (e, treeId, treeNode, clickFlag) { 
			        		that.click(zTreeObj,treeNode);
					 	} 
			        }

			    };
		}
		zTreeObj = $.fn.zTree.init($("#_treeDemo"), setting, zNodes.data);
		return zTreeObj;
	};
	//点击节点回调
	CheckOrg.prototype.click = function(zTreeObj,treeNode){
		var that = this, options = that.options;
		var nodes = zTreeObj.getCheckedNodes();console.log(that,nodes)
		zTreeObj.checkNode(treeNode, !treeNode.checked, true); 
		var nodes = zTreeObj.getCheckedNodes();
		if(that.options.click){
			that.options.click(nodes);
		}
	};
	//确定回调
	CheckOrg.prototype.ascertain = function(zTreeObj){
		var that = this, options = that.options;
		var nodes = zTreeObj.getCheckedNodes();
		var ids = "";
		var names = "";console.log(that,nodes)
		if(that.options.multipleChoice){
			for(var i = 0;i<nodes.length;i++){
				ids = ids + nodes[i].id+";";
				names = names + nodes[i].name+";";
			}
		}else{
			if (nodes.length == 1) {
				var org = nodes[0];
				ids = org.id;
				names = org.name;
			}
		}
		if(that.options.inputId){
			that.options.inputId.val(ids);
		}
		if(that.options.inputName){
			that.options.inputName.val(names);
		}
		if(that.options.ascertain){
			that.options.ascertain(nodes);
		}
	};
  	//伸展节点spk-plm-core
	CheckOrg.prototype.spread = function(zTreeObj){
	    var that = this, options = that.options;
	    if(that.options.inputId){
			if(that.options.inputId.val()){
				if(that.options.multipleChoice){
					var arr = that.options.inputId.val().split(",");
					console.log(arr);
					for(var i = 0;i<arr.length;i++){
						if(""==arr[i]){
							continue;
						}
						var node = zTreeObj.getNodeByParam("id",arr[i]);
						zTreeObj.selectNode(node,true);  
						zTreeObj.checkNode(node,true);  
						zTreeObj.expandNode(node, true, false); 
					}
				}else{
					var node = zTreeObj.getNodeByParam("id",that.options.inputId.val());
					zTreeObj.selectNode(node,true);  
					zTreeObj.checkNode(node,true);  
					zTreeObj.expandNode(node, true, false); 
				}
			}
		}
	}
  
  	//暴露接口
	exports('XtcheckOrg', function(options){
		var XtcheckOrg = new CheckOrg(options = options || {});
		XtcheckOrg.init(options);
	});
});