var xmlData = '';
var nodeInfo;
var logNode = new Array();
var interval;//定时器
var time = 0;
var model = null;//流程实例
var lineHandle = ';';
var showLog;
$(document).ready(function(){
showPlay();
});
function showPlay(){
logNode={};
var nodeId = new Array();
var nodeName = new Array();
nodeInfo ={};
time = 0;
xmlData = '';
if(interval!=null)
window.clearInterval(interval);
$.ajax({
url : basePath + 'WFP?module=instance&action=getPlayData&id='+id,
type : 'POST',
data : {
},
success : function(json) {
var obj = JSON.parse(json);
if(obj.template != null && obj.template != ''){
model = obj.template;
xmlData = obj.template.xmlData;
nodeInfo = obj.template.nodeToId;
$.each(obj.template.nodeToId, function(index) {
nodeName[index] = obj.template.nodeToId[index].nodeName;
nodeId[index] = obj.template.nodeToId[index].id;
});
$.each(obj.transacitons,function(index){
logNode[index] = obj.transacitons[index];
});
var canHeight = isNaN(obj.template.height)?0:obj.template.height+30;
var canWidth = isNaN(obj.template.width)?0:obj.template.width+20;
if(type==1){
//创建时间轴
createtimeAxis(obj.transacitons);
//设置宽高
$('.mainBody').css('height',canHeight+115);
$('.mainBody').css('width',canWidth+10);
}else if(type==2){
//创建日志列表
createLogTable(obj.transacitons);
//设置宽高
$('.mainBody').css('height',canHeight+10);
$('.mainBody').css('width',canWidth+300);
}
}else{
var url = basePath + 'player/page/sl404.jsp';
$("#bpmnPlay", parent.document).attr('src',url);
$("#bubble").attr('style','display:none');
// xmlData = '';
}
$("#show-button").trigger("click");
}
});
}
//创建日志列表
function createLogTable(transacitons){
$('#tableContent').empty();
var html = '';
$.each(transacitons,function(index){
var background ='url(../js/jQuery-log/images/icon07.gif) no-repeat 83px 0;';
if(transacitons[index].state ==='2'){
background = 'url(../js/jQuery-log/images/icon07_yellow2.jpg) no-repeat 83px 0';
}
html = html + '
'
+ ''+$(this).attr('startTime').substring(0,10)+''+ $(this).attr('startTime').substring(10)+'
'
+ '- '+ $(this).attr('nodeName') +' '
+ '操作人:'+$(this).attr('author')+'
'
+ ''+$(this).attr('memo')+'
'
+ '
';
});
$.getScript(basePath+"player/js/jQuery-log/js/jq22.js", function() {
setTimeout("$('.contactusdiyou .history.scroll-y').show();",500)
});
$('.contactusdiyou .history-date ul').html(html);
}
//创建时间轴
function createtimeAxis(transacitons){
$('.cd-horizontal-timeline .timeline ol').empty();
var liHtml = '';
$('.cd-horizontal-timeline .events-content ol').empty();
var descHtml = '';
$.each(transacitons,function(index){
liHtml +=''+$(this).attr('nodeName')+''
descHtml = descHtml +''
+'操作人:'+$(this).attr('author')+'; 操作时间:'+$(this).attr('startTime')+''
+(($(this).attr('memo')==''||$(this).attr('memo')=='null')?'':'处理信息:'+$(this).attr('memo')+'');
});
$('.cd-horizontal-timeline .timeline ol').html(liHtml);
$('.cd-horizontal-timeline .events-content ol').html(descHtml);
$.getScript(basePath+"player/js/jQuery-sjz/js/main.js");
}
//创建时间轴日志
function createtimeAxisLog(){
var log = '';
$('#event_box .parBd .slideBox').each(function(){
if($(this).css('display')!='none'){
log = $(this).html();
return false;
}
});
$('#log_box .parBd').html(log);
}
(function(BpmnViewer, $) {
var bpmnViewer = new BpmnViewer({
container: '#canvas'
});
var canvas = bpmnViewer.get('canvas'),
overlays = bpmnViewer.get('overlays');
function importXML(xml) {
bpmnViewer.importXML(xml, function(err) {
canvas.zoom('fit-viewport');
var id = getOrder();
addMark(id[0]);
var i = time;
$("#playButton").unbind('click').on('click',function(){
$('#stopButton').attr('style','display:block');
$('#playButton').attr('style','display:none');
var id = getOrder();
var lastId = id[id.length - 1];
canvas.addMarker(lastId, 'currentNode');
setTheme();
runInterval();
interval = self.setInterval(function(){
runInterval();
},3000);
})
function runInterval(){
if(type==1){
//时间轴轮播效果
var selectId = $('.events-content li.selected').index();
if(selectId!=i){
$('.cd-horizontal-timeline .timeline ol li:eq('+i+') a').trigger('click');
}
}else if(type==2){
//日志轮播效果
removeMark();
addMark(id[i]);
var aid = '#log'+i;
$('#tableContent').children().removeClass('active');
$(aid).addClass('active');
$('.history-date li').removeClass('red');
$('.history-date li:eq('+i+')').addClass('red');
$('.contactusdiyou').scrollTop($('.bounceInDown.red').position().top);
}
i++;
if(i>id.length-1){
i = 0;
}
time = i;
}
$("#stopButton").unbind('click').on('click',function(){
$('#stopButton').attr('style','display:none');
$('#playButton').attr('style','display:block');
if(interval){
interval = clearInterval(interval);
}else{
return;
}
});
$("#playButton").trigger("click");
$('#canvas g .djs-visual').unbind('click').on('click',function(){
var taskId = $(this).parent().attr('data-element-id');
var id = getOrder();
for(var i=0;i'
});
overlays.add(id, 'note2', {
position: {
top: -5,
right: 10
},
html: ''
});
overlays.add(id, 'note3', {
position: {
bottom: 10,
left: -5
},
html: ''
});
overlays.add(id, 'note4', {
position: {
bottom: 10,
right: 10
},
html: ''
});
}
function removeMark(){
overlays.clear();
}
//时间轴-展示节点日志
showLog = function(obj){
var id = getOrder();
var i = $(obj).parent().index();
removeMark();
addMark(id[i]);
}
function setTheme(){
//隐藏判断节点的X
$('.djs-visual polygon').each(function(){
$(this).parent().find('path').hide();
});
//节点加上已处理状态
$.each(logNode,function(index){
for(var i = 0;i0){
var inNodeId = $(xmlData).find("outgoing:contains('"+lineId+"')").parent().attr('id');//出线节点id
if(inNodeId.indexOf('StartEvent')<0&&$('#canvas g[data-element-id^="'+inNodeId+'"].handled').length==0){
nodeHandle(inNodeId);
decideNodeHandle();
return false;
}
}
});
}
})(window.BpmnJS, window.jQuery);