flowlog.js 9.46 KB
/// <reference path="../jslib/json2.js" />
/// <reference path="../jslib/global.enums.js" />
/// <reference path="../jslib/global.msg.js" />
/// <reference path="../jslib/json2.js" />
/// <reference path="../jslib/global.js" />
/// <reference path="../jslib/jquery-1.11.1.js" />
/// <reference path="../jslib/global.modelctls.js" />
/// <reference path="../jslib/jquery-easyui-1.4.1/jquery.easyui.min.js" />

var flowSection = '#imageposition';
var flowInstanceId = null;
var Canvas2D=null;
var flowCoordList =[];
var beforeModifiedData;
$(function() {
	if(parent.formMgr){
        beforeModifiedData=parent.formMgr.getData();
	}
	$('body').append('<div id="tloading"  style="font-size:15px;position: absolute;width:100%;height:100%;opacity: 0.7;top: 0px;">'
			+'<div class="weui-toast weui_loading_toast weui-toast--visible"><div class="weui_loading"><i class="weui-loading weui-icon_toast"></i></div><p class="weui-toast_content">数据加载中...</p></div></div>');
	flowInstanceId = $('#flowInstanceId').val();
	Canvas2D=initImag();
	loadFlowObject(function(data){
			loadActiveFlowObject(data);
			});
	initflowdetailData();
	setScrollPosition();
});

function initImag(){
	var Canvas=document.getElementById("myCanvas");
	var Canvas2D=Canvas.getContext("2d");
    Canvas.addEventListener('mousemove', function(e){
        var coord = getEventPosition(e);
        var minX = flowCoordList.minX;
        var minY = flowCoordList.minY;
        var flowObjectList = flowCoordList.flowObjectList;
        if(flowObjectList) {
            for (var i = 0; i < flowObjectList.length; i++) {
                var coordListElement = flowObjectList[i];
                var x = coordListElement.x + (-minX + 23);
                var y = coordListElement.y + (-minY + 23);
                if (x < coord.x && coord.x < (x + coordListElement.width) && y < coord.y && coord.y < (y + coordListElement.height)) {
                    if (coordListElement.assignee) {
                        $("#title").css("display", "");
                        $("#title").text(coordListElement.assignee);
                        $("#title").css("left", x + (coordListElement.width) / 2 + "px");
                        $("#title").css("top", (y - 26) + "px");
                        break;
                    }
                } else {
                    $("#title").css("display", "none");
                }
            }
        }
    }, false);

	var imge=new Image();
	imge.src=CONF_BACK_SERVERURL + "/mvc/flowEngine/image.do?instanceId="+flowInstanceId;
	imge.onload = function(){
	Canvas.setAttribute("width",this.width);
	Canvas.setAttribute("height",this.height);
	Canvas2D.drawImage(imge,0,0);
	};
	return Canvas2D;
}
function loadImage(x,y,width,height,color){
		Canvas2D.strokeStyle=color;
		Canvas2D.strokeRect(x,y,width,height);
}
function showOption(dom){
	if(dom.innerHTML!="")
	layer.alert("<textarea rows=7 cols=63 readOnly>"+dom.innerHTML+"</textarea>",{title:"操作意见",area: ['500px', '300px']});

}

function initflowdetailData() {
	if(parent.moudle == "hy"){
		initHyFlowDetailData();
	}else{
		initSpFlowDetailData();
	}
}

//初始化审批项目的流程日志
function initSpFlowDetailData(){
	$.ajax({
		type: "POST",
		url: CONF_BACK_SERVERURL + global.modelctls.flowEngine.hisacInstance,
		headers:{
    		"token":$.cookie('ftoken')
		},
		data:{instanceId : flowInstanceId},
		dataType:"json",
		success:function(data){
			var data_length=data.length;
			var index = 0;
			for(var i=0;i<data_length;i++){
				var obj_hisActiviti = data[i];
				var sendtime = obj_hisActiviti.sendtime?new Date(obj_hisActiviti.sendtime):"";
				var revicetime= obj_hisActiviti.revicetime?new Date(obj_hisActiviti.revicetime):"";
				if(obj_hisActiviti.operation=="接件"){
					if(obj_hisActiviti.revicetime==null){
					revicetime=sendtime;
					}
					obj_hisActiviti.sender = obj_hisActiviti.revicer;
					}
				var opinion = obj_hisActiviti.opinion==null?"":obj_hisActiviti.opinion;
				if(beforeModifiedData && beforeModifiedData.bz_spyj){
                   var spyjdata = beforeModifiedData.bz_spyj;
                   if(obj_hisActiviti.operation == "退件"){
                       opinion = spyjdata.TJYJ?spyjdata.TJYJ:"";
				   }
				}
				var sendtimeStr = sendtime ? sendtime.format("yyyy-MM-dd hh:mm:ss") : '';
				$("#flowdetaildata").append("<tr title='"+obj_hisActiviti.sendInfo+"'><td>"+obj_hisActiviti.sendInfo+"</td><td title='"+obj_hisActiviti.sender+"'>"+obj_hisActiviti.sender+"</td><td title='"+obj_hisActiviti.operation+"'>"+obj_hisActiviti.operation+"</td><td title='"+obj_hisActiviti.revicer+"'>"+obj_hisActiviti.revicer+"</td><td title='暂无'>暂无</td><td title='"+ sendtimeStr +"'>"+ sendtimeStr +"</td><td title='"+opinion+"'>"+opinion+"</td></tr>");
				$("#tloading").remove();
			}
		}
	});
}
//初始化会议项目的流程日志
function initHyFlowDetailData(){
	$.ajax({
		type: "POST",
		url: CONF_BACK_SERVERURL + global.modelctls.flowEngine.hisacInstanceMp,
		headers:{
    		"token":$.cookie('ftoken')
		},
		data:{instanceId : flowInstanceId,mpid : parent.mpid},
		dataType:"json",
		success:function(data){
			var data_length=data.length;
			var index = 0;
			for(var i=0;i<data_length;i++){
				var obj_hisActiviti = data[i];
				var sendtime = obj_hisActiviti.sendtime?new Date(obj_hisActiviti.sendtime):"";
				var revicetime= obj_hisActiviti.revicetime?new Date(obj_hisActiviti.revicetime):"";
				var description = obj_hisActiviti.description == "read"?"已读":"未读";
				if(obj_hisActiviti.operation=="接件"){
					if(obj_hisActiviti.revicetime==null){
					revicetime=sendtime;
					}
					obj_hisActiviti.sender = obj_hisActiviti.revicer;
					}
				var opinion = obj_hisActiviti.opinion==null?"":obj_hisActiviti.opinion;
				if(beforeModifiedData && beforeModifiedData.bz_spyj){
                   var spyjdata = beforeModifiedData.bz_spyj;
                   if(obj_hisActiviti.operation == "退件"){
                       opinion = spyjdata.TJYJ?spyjdata.TJYJ:"";
				   }
				}
				//$("#flowdetaildata").append("<tr title='"+obj_hisActiviti.sendInfo+"'><td>"+obj_hisActiviti.sendInfo+"</td><td title='"+obj_hisActiviti.sender+"'>"+obj_hisActiviti.sender+"</td><td title='"+obj_hisActiviti.operation+"'>"+obj_hisActiviti.operation+"</td><td title='"+obj_hisActiviti.revicer+"'>"+obj_hisActiviti.revicer+"</td><td title='"+description+"'>"+description+"</td><td title='"+sendtime.format("yyyy-MM-dd hh:mm:ss")+"'>"+sendtime.format("yyyy-MM-dd hh:mm:ss")+"</td><td onclick=showOption(this)>"+opinion+"</td></tr>");
				 var sendtimeStr = sendtime ? sendtime.format("yyyy-MM-dd hh:mm:ss") : '';
				 $("#flowdetaildata").append("<tr><td title='"+obj_hisActiviti.sendInfo+"'>"+obj_hisActiviti.sendInfo+ "</td><td title='"+obj_hisActiviti.sender+"'>"+obj_hisActiviti.sender+"</td><td title='"+obj_hisActiviti.operation+"'>"+obj_hisActiviti.operation+"</td><td title='"+obj_hisActiviti.revicer+"'>"+obj_hisActiviti.revicer+"</td><td title='"+description+"'>"+description+"</td><td title='"+sendtimeStr+"'>"+sendtimeStr+"</td><td onclick=showOption(this)>"+opinion+"</td></tr>");

				$("#tloading").remove();
			}
		}
	});
}

function loadFlowObject(onComplete) {
	$.ajax({
		type: "POST",
		url: CONF_BACK_SERVERURL + global.modelctls.flowEngine.flowImagePosition,
		headers:{
    		"token":$.cookie('ftoken')
		},
		data:{instanceId : flowInstanceId},
		success:function(data){
			if(data.message!=undefined) {
				layer.msg(data.message,{icon:2});
				$("#tloading").remove();
				return;
			}
			if (onComplete) {
				onComplete(data);
			}
		}
	});
}

function loadActiveFlowObject(coordData) {

	$.ajax({
		type: "POST",
		url: CONF_BACK_SERVERURL + global.modelctls.flowEngine.instanceTask,
		headers:{
    		"token":$.cookie('ftoken')
		},
		data:{instanceId : flowInstanceId},
		success:function(data){
			var minX = coordData.minX;
			var minY = coordData.minY;
			var taskList=[];
            var coordList = coordData.flowObjectList;
			for (var i = 0; i < coordList.length; i++) {
				var flowObject = coordList[i];
				for (var j =0; j<data.length ; j++) {
					var task = data[j];
					if(task.flowObjectId==flowObject.id){
                        flowObject.assignee = task.assignee;
						if(data[data.length-1].state!='completed'){
							if (task.state == 'completed') {
								if(task.flowObjectId!=data[data.length-1].flowObjectId){
									loadImage((flowObject.x+(-minX+23)),(flowObject.y+(-minY+22)),flowObject.width+5,flowObject.height+7,"blue");
								}
							} else {
								loadImage((flowObject.x+(-minX+23)),(flowObject.y+(-minY+22)),flowObject.width+5,flowObject.height+7,"red");
							}
						}else{
							if (task.state == 'completed') {
								loadImage((flowObject.x+(-minX+23)),(flowObject.y+(-minY+22)),flowObject.width+5,flowObject.height+7,"blue");
							} else {
								loadImage((flowObject.x+(-minX+23)),(flowObject.y+(-minY+22)),flowObject.width+5,flowObject.height+7,"red");
							}
						}
					}
				}
			}
            flowCoordList = coordData;
		}
	});
}

function getEventPosition(ev){
    var x, y;
    if (ev.layerX || ev.layerX == 0) {
        x = ev.layerX;
        y = ev.layerY;
    } else if (ev.offsetX || ev.offsetX == 0) {
        x = ev.offsetX;
        y = ev.offsetY;
    }
    return {x: x, y: y};
}

function dataSort(returnData) {
    returnData.sort(function(a,b) {
        if(a.fd03 < b.fd03){
            return -1;
        }else if(a.fd03 > b.fd03){
            return 1;
        }else{
            return 0;
        }

    });

}

function setScrollPosition(){
	$('body').height($(document).height());
	$('html').css('overflow-y','hidden');
	
}