<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
	BaseSessionUser su = (BaseSessionUser)session.getAttribute(WDKConstant.SESSION_USER);
	String WDK_ROOT = WDKCore.inst.WDK_ROOT;
%>
<!DOCTYPE html>
<%@page import="org.wdk.WDKConstant"%>
<%@page import="org.wdk.WDKCore"%>
<%@page import="org.wdk.core.base.BaseSessionUser"%>
<html>

<head>
<base href="<%=basePath%>" target="_self">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>流程发起</title>
<jsp:include page='<%=WDKCore.inst.WDK_COMMON %>'></jsp:include>
<script type="text/javascript" src="<%=WDK_ROOT%>/core/js/wdk.js"></script>
<script type="text/javascript">
	var _pdid = $.getURLParam('pdid');

	var isTreeLoadSuccess = false; 
	window.onload = function(){
		$.wait_open();

		var _data = {pdid:_pdid};
		$.cuajax({
		  	url:'wdk?action=wdk.wf&method=pi_new_init&ajaxparam='+new Date().getTime(),
			method:"post", 
			timeout:WDK_Timeout,
			data:_data,   
			success:function(result) {
				var jparam = $.str2json(result);
				if('1'==jparam.code){
					init(jparam);
				}else{
					alert(jparam.desc);
				}
				$.wait_close();
			},
			error:function(result){
				$.wait_close();
				alert('网络错误!result='+result);
			}
		});
	};
	//普通任务节点初始化
	function init(jparam){	
		//1、初始化工作日历
		$.combobox({
			id:'start_calendar'
			,url:'wdk?action=wdk.wf&method=calendar_load&ajaxparam='+new Date().getTime()
			,initvalue:jparam.calendar
			,isinitselect:true
		});

		//2、初始化办理期限
		$('#start_deadline').val(jparam.deadline);

		//3、超限后处理方式
		$("input[name=start_deadprocess]:eq("+jparam.deadprocess+")").attr("checked",'checked'); 

		//4、黄牌预警时间
		$('#start_warnyellow').val(jparam.warnyellow);

		//5、红牌预警时间
		$('#start_warnred').val(jparam.warnred);

		//6、是否周期性预警
		$("input[name=start_isperiod]:eq("+jparam.isperiod+")").attr("checked",'checked'); 
		if('1'==jparam.isperiod){
			$('#start_warnamount').val(jparam.warnamount);
			$('#start_warnperiod').val(jparam.warnperiod);
			$('#item_start_warnamount').css('display','block');
			$('#item_start_warnperiod').css('display','block');
		}else{
			$('#start_warnamount').val('2');
			$('#start_warnperiod').val('1');
			$('#item_start_warnamount').css('display','none');
			$('#item_start_warnperiod').css('display','none');
		}

		//7、开始环节
		$('#start_startnode').val(jparam.nodename);
		$('#start_startnode').attr('disabled','disabled');
		$('#_nodetype').val(jparam.nodetype);
		
		//7-2、开始环节类型
		var _nodetype = jparam.nodetype;
		var _nodetypename = "";
		if('task'==_nodetype){
			_nodetypename = "人工任务";
		}else if('sign'==_nodetype){
			_nodetypename = "会签任务";
		}else if('custom'==_nodetype){
			_nodetypename = '自动任务';
		}else if('subprocess'==_nodetype){
			_nodetypename = '子流程';
		}else if('decision'==_nodetype){
			_nodetypename = '自动判断';
		}else if('frok'==_nodetype){
			_nodetypename = '聚合';
		}

		$('#start_startnodetype').val(_nodetypename);
		$('#start_startnodetype').attr('disabled','disabled');
		
		//8、开始参与者
		if('sign'==_nodetype){
			$('#item_start_tasksort').css('display','block');
		}else{
			$('#item_start_tasksort').css('display','block');
		}
		if('task'==_nodetype||'sign'==_nodetype){
			$('#item_start_startactors_label').css('display','block');
			$('#item_start_startactors').css('display','block');
			
			var _queryParams = {
						pdid:_pdid
						,nodename:jparam.nodename
					};
			$.tree({
				id:'start_startactorlist',
				checkbox:true,
				url:"wdk?action=wdk.wf&method=node_actors",//wf_pd_newinst_startactorlist",
				queryParams:_queryParams,
				onLoadSuccess:function(node,data){
				},		
				onCheck:function(node,checked){
					actorlistUpdate(node,checked);
				}
			});
		}else{
			$('#item_start_startactors_label').css('display','none');
			$('#item_start_startactors').css('display','none');
		}

		return true;
	}

	//是否按序增加办理人
	function start_tasksort_click(str){
		if('0'==str){
			$('#start_startactors').css('display','none');
			$('#_hsplit').css('height','110px');
		}else{
			$('#start_startactors').css('display','block');
			$('#_hsplit').css('height','10px');
		}

	}
	
	//动态修改下一环节办理人
	function actorlistUpdate(node,checked){
		var _isSort = $('#start_startactors').val();
		if('0'==_isSort){
			return;
		}
		var nodes = [];
		if(-1!=node.id.indexOf('dept_')){
			//如果是点击的部门,则将该部门下的所有人员依次添加
			var childs  = $.tree_getChildNodes({id:'start_startactorlist',node:node});
			for(var i=0;i<childs.length;i++){
				var child = childs[i];
				nodes.push(child);
			}
		}else{
			nodes.push(node);
		}
		
		var listobj = document.getElementById("start_startactors");
		if(checked){
			//1、如果是增加
			for(var i=0;i<nodes.length;i++){
				var _n = nodes[i];
				var actorid = _n.id;
				var actorname = _n.text;
				var hasSame = false;
				//1.1、如果有相同的ID则不处理
				var options = listobj.options;
				for(var i=0;i<options.length;i++){
					var opt = options[i];
					if(opt.value == actorid){
						hasSame = true;
						break;
					}
				}
	
				//1.2、如果是不同的ID则添加
				if(!hasSame){
					var option = new Option(actorname,actorid);
					if(listobj){
						listobj.options.add(option);
					}
				}
			}
		}else{
			for(var i=0;i<nodes.length;i++){
				var _n = nodes[i];
				var actorid = _n.id;
				var actorname = _n.text;
				//2、如果是删除
				var options = listobj.options;
				for(var j=0;j<options.length;j++){
					var opt = options[j];
					if(opt.value == actorid){
						listobj.remove(j);  
		                j = j - 1;//注意这一行  
					}
				}
			}
		}
	}
	//周期性预警
	function start_isperiod_click(str){
		if('1'==str){
			$('#item_start_warnamount').css('display','block');
			$('#item_start_warnperiod').css('display','block');
		}else{
			$('#start_warnamount').val('2');
			$('#start_warnperiod').val('1');
			$('#item_start_warnamount').css('display','none');
			$('#item_start_warnperiod').css('display','none');
		}
	}

	/*
	//是否抄送
	function start_cc_onclick(str){
		if('0'==str){
			$('#item_start_ccactors').css('display','none');
		}else{
			$('#item_start_ccactors').css('display','block');
			$.wait_open();
			$.tree({
				id:'start_ccactors',
				checkbox:true,
				url:"wdk?action=wdk.wf&method=wf_actorlist",
				queryParams:{},
				onLoadSuccess:function(node,data){
					$.wait_close();
				}
			});
		}
	}
*/

	/////////////////////////////////////////////////
	//
	//			任务提交及退回
	//
	////////////////////////////////////////////////
	//任务提交
	function inputpop_getValue(){
		$.wait_open();

		var _nodename = $('#start_startnode').val();							//节点名称
		var _nodetype = $('#_nodetype').val();										//节点类型
		var _comment = $('#start_comment').val();									//意见
		var _calendar = $.combobox_getValue({id:'start_calendar'});					//选用的工作日历
		var _deadline = $('#start_deadline').val();									//总期限
		var _deadprocess = $('input[name=start_deadprocess]:checked').val();		//超期处理方式
		var _warnyellow = $('#start_warnyellow').val();								//黄牌警告
		var _warnred = $('#start_warnred').val();									//红牌警告
		var _isperiod = $('input[name=start_isperiod]:checked').val();				//是否周期性预警
		var _warnamount = $('#start_warnamount').val();								//预警次数
		var _warnperiod = $('#start_warnperiod').val();								//预警间隔
		var _showallactors = $('input[name=start_showallactors]:checked').val();	//用户过滤

		//根据是否是顺序会签来确定提交的参与者
		var _tasksort = "0";														//是否按顺序
		if('sign'==_nodetype){
			_tasksort= $('input[name=start_tasksort]:checked').val();
		}

		//a.取出所有树节点,构建所有人员ID
		var tree_allnodes  = $.tree_getAllNode({id:'start_startactorlist'});

		//b.取出需要设置的人员ID
		
		var _idarr = [];
		if('1'==_tasksort){
		//如果是按顺序会签,则从右边顺序列表中读取
			var listobj = document.getElementById("start_startactors");
			var options = listobj.options;
			for(var i=0;i<options.length;i++){
				var opt = options[i];
				_idarr.push(opt.value);
			}
		}else{
			//如果是同时会签,则直接读取树的勾选项
			var _ids = [];
			//如果没有选择参与者,则默认所有候选者均参与
			var _tree_checked = $.tree_getChecked({id:'start_startactorlist'});
			if(null==_tree_checked){
				var _allnodes  = $.tree_getAllNode({id:'start_startactorlist'});
				for(var i=0;i<_allnodes.length;i++){
					var _n = _allnodes[i];
					_ids.push(_n.id);
				}
			}else{
				_ids = $.tree_getChecked({id:'start_startactorlist'}).id.split(',');
			}
			
			for(var i=0;i<_ids.length;i++){
				var _id = _ids[i];
				if(-1==_id.indexOf('dept_')){
					_idarr.push(_ids[i]);
				}
			}
		}

		//c.将人员ID转换为真实的提交参数
		var _actors = [];
		for(var i=0;i<_idarr.length;i++){
			var _id = _idarr[i];
			for(var j=0;j<tree_allnodes.length;j++){
				var _node = tree_allnodes[j];
				if(_node.id==_id){
					_actors.push(_node.id+","+_node.attributes.actortype);
					break;
				}
			}
		}

	

		var _data ={
				pdid:_pdid
				,nodename:_nodename
				,nodetype:_nodetype
				,comment:_comment
				,calendar:_calendar
				,deadline:_deadline
				,deadprocess:_deadprocess
				,warnyellow:_warnyellow
				,warnred:_warnred
				,isperiod:_isperiod
				,warnamount:_warnamount
				,warnperiod:_warnperiod
				,showallactors:_showallactors
				,actorsinsort:_tasksort
				,actors:_actors.join(';')
	//			,iscc:_iscc
	//			,ccactors:_ccactors
		};

		$.cuajax({
		  	url:'wdk?action=wdk.wf&method=pi_new&ajaxparam='+new Date().getTime(),
			method:"post", 
			timeout:WDK_Timeout,
			data:_data,   
			success:function(result) {
				$.wait_close();
				var jparam = $.str2json(result);
				alert(jparam.desc);
			},
			error:function(result){
				$.wait_close();
				alert('网络错误!result='+result);
			}
		});
	}

	</script>
	
</head>
<body  class="easyui-layout" style="padding:0px;margin:0px;background-color:#FFFFFF;">
	<!-- 表格 -->
	<div id="layout_content" data-options="region:'center',border:false,collapsed:false" style="border:1px solid #ddd;" >
		<div id="item_start_comment" class="fitem" style="margin:10px;">
		    <label>办理意见:</label>
		    <textarea id="start_comment" name="start_comment" class="txt" style="width:250px;height:100px;"></textarea>
		</div>
		<div id="item_start_calendar" class="fitem" style="margin:10px;">
		    <label>工作日历:</label>
		    <input id="start_calendar" name="start_calendar" class="txt" style="width:250px">
		</div>
		<div id="item_start_deadline" class="fitem" style="margin:10px;">
		    <label>办理期限:</label>
		    <input id="start_deadline" name="start_deadline" class="txt" style="width:250px">
		</div>
		<div id="item_start_deadprocess" class="fitem" style="margin:10px;">
		    <label>超期处理:</label>
		    <input name="start_deadprocess" type="radio" value="0" checked>继续执行
		    <input name="start_deadprocess" type="radio" value="1" >关闭流程
		</div>
		<div id="item_start_warnyellow" class="fitem" style="margin:10px;">
		    <label>黄牌预警:</label>
		    <input id="start_warnyellow" name="start_warnyellow" class="txt" style="width:250px">
		</div>
		<div id="item_start_warnred" class="fitem" style="margin:10px;">
		    <label>红牌预警:</label>
		    <input id="start_warnred" name="start_warnred" class="txt" style="width:250px">
		</div>
		<div id="item_start_isperiod" class="fitem" style="margin:10px;">
		    <label>周期预警:</label>
		    <input name="start_isperiod" type="radio" value="0" onclick="start_isperiod_click('0')" checked>预警一次
		    <input name="start_isperiod" type="radio" value="1" onclick="start_isperiod_click('1')">周期预警
		</div>
		<div id="item_start_warnamount" class="fitem" style="margin:10px;display:none;">
		    <label>预警次数:</label>
		    <input id="start_warnamount" name="start_warnamount" class="txt" style="width:250px">
		</div>
		<div id="item_start_warnperiod" class="fitem" style="margin:10px;display:none;">
		    <label>预警间隔:</label>
		    <input id="start_warnperiod" name="start_warnperiod" class="txt" style="width:250px">
		</div>
		<div id="item_start_showallactors" class="fitem" style="margin:10px;">
		    <label>用户过滤:</label>
		    <input name="start_showallactors" type="radio" value="0" checked>显示经办
		    <input name="start_showallactors" type="radio" value="1" >显示所有
		</div>
		
		<div id="item_start_startnode" class="fitem" style="margin:10px;">
		    <label>开始环节:</label>
		    <input id="start_startnode" name="start_startnode" class="txt" style="width:250px">
		    <input type="hidden" id="_nodetype" name="_nodetype" class="txt" style="width:250px">
		</div>
		<div id="item_start_startnodetype" class="fitem" style="margin:10px;">
		    <label>环节类型:</label>
		    <input id="start_startnodetype" name="start_startnodetype" class="txt" style="width:250px">
		</div>
		<div id="item_start_tasksort" class="fitem" style="margin:10px;display:none;">
		    <label>办理顺序:</label>
		    <input name="start_tasksort" type="radio" value="0" onclick="start_tasksort_click('0')" checked>同时办理
		    <input name="start_tasksort" type="radio" value="1" onclick="start_tasksort_click('1')">顺序办理
		</div>
		<div id="item_start_startactors_label" class="fitem" style="margin:10px;display:none;">
		    <label>开始办理:</label>
		</div>
		<div id="item_start_startactors" class="fitem" style="margin:10px;display:none;">
		    <div id="start_startactorlist"  style="width:315px;height:100px;overflow:auto;float:left;border:1px solid #add;"></div>
		    <div style="width:105px;height:100px;overflow:auto;float:left;border:0px solid #add;"></div>
		    <select id="start_startactors" name="start_startactors" class="txt" multiple="multiple" style="width:250px;height:100px;display:none;">
		    </select>
		</div>
		<div id="_hsplit" class="fitem" style="margin:10px;height:110px;">
		</div>
		<div id="item_start_cc" class="fitem" style="margin:10px;display:none;">
		    <label>是否抄送:</label>
		    <input name="start_cc" type="radio" value="0" onclick="start_cc_onclick('0')" checked>否
		    <input name="start_cc" type="radio" value="1" onclick="start_cc_onclick('1')">是
		</div>
		<div id="item_start_ccactors" class="fitem" style="margin:10px;display:none;">
		    <div id="start_ccactors" style="width:315px;height:100px;overflow:auto;border:1px solid #add;"></div>
		</div>
	</div>
	
</body>
</html>