You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

183 lines
6.5 KiB

var test_link = "<?php echo site_url('TestAssign/apply');?>"; //测试流程链接
jsPlumb.ready(function () {
fc = new FlowChart({ drawID: "draw" });
var assign_status = eval(<?php echo $assign_status;?>);
$(function () {
borderLayout(document.querySelectorAll('.border-layout')[0]);
$("#accordion").accordion({ collapsible: true });
$('#propGrid').jqPropertyGrid(fc.exportToObj(), { meta: fc.metaType });
$("#grah,#task").children().draggable({ helper: "clone", scope: "def" });
$(" div.center > div.content").bind("scroll",function() {
jsPlumb.repaintEverything();
});
$("#draw").droppable({
scope: "def",
drop: function (event, ui) {
_node = fc.appendNode({
nodeType: ui.draggable[0].id,
blockTop: parseInt(ui.offset.top),
blockLeft: parseInt(ui.offset.left ),
divElemt:ui.draggable[0]
});
$("#" + _node.nodeId).draggable({ containment: "parent" }).bind('dragstop', function (event, ui) {
fc.flowList[_node.nodeId].blockTop = $("#" + _node.nodeId).offset().top + "px"; //节点坐标
fc.flowList[_node.nodeId].blockLeft = $("#" + _node.nodeId).offset().left + "px"; //节点坐标
});
$('#propGrid').jqPropertyGrid(_node.exportToObj(), { meta: _node.metaType });
}
}).live("click",function(){
fc.selectedNode ="global";
$('#propGrid').jqPropertyGrid(fc.exportToObj(), { meta: fc.metaType });
}
);
jsPlumb.bind("click", function (conn, originalEvent) {
if (confirm("确定删除吗? ")) {
for (_id in fc.flowList[conn.sourceId].targetId) {
if (fc.flowList[conn.sourceId].targetId[_id] == conn.targetId) {
fc.flowList[conn.sourceId].targetId.splice(_id, 1);
}
}
for (_id in fc.flowList[conn.targetId].sourceId) {
if (fc.flowList[conn.targetId].sourceId[_id] == conn.sourceId) {
fc.flowList[conn.targetId].sourceId.splice(_id, 1);
}
}
jsPlumb.detach(conn);
}
});
jsPlumb.bind("connection", function (conn, originalEvent) {
if (conn.connection.sourceId == conn.connection.targetId) {
jsPlumb.detach(conn);
alert("不能连接自己!");
}
else {
console.log(conn);
fc.flowList[conn.connection.sourceId].targetId.push(conn.connection.targetId)
fc.flowList[conn.connection.targetId].sourceId.push(conn.connection.sourceId);
}
});
$("#draw").on("dblclick", ".node", function () {
if (confirm("确定要删除吗?")) {
jsPlumb.removeAllEndpoints($(this).attr("id")); //全局对象中删除该节点
fc.flowList[$(this).attr("id")] = undefined; //flowlist 中清空该对象
// $('#propGrid').jqPropertyGrid(flow_node, { meta: metaObj }); //属性表置为默认
$(this).remove();
}
});
$("#draw").on("click",".node", function (event) { //选中节点时,属性表格显示信息
_node = fc.getNode($(this).attr("id"));
fc.selectedNode = _node.nodeId;
$('#propGrid').jqPropertyGrid(_node.exportToObj(), { meta: _node.metaType });
event.stopPropagation();
});
$('input[id^="pg"], input[id^="gl"],textarea').live("keyup", 'blur',function () { //选中节点时,属性表格显示信息
//保存节点属性信息
node_info = $('#propGrid').jqPropertyGrid('get'); //节点信息
if(fc.selectedNode!="global"){
$("#" + fc.selectedNode).empty().append("<p>" + node_info.nodeName + "</p>");
fc.flowList[node_info.nodeId]!='undefined'?fc.flowList[node_info.nodeId].modifyProperty(node_info):"";
}else{
fc.selectedNode="global";
fc.modifyProperty(node_info);
}
});
$("input[id^='pg'][id$='assigner']").live("click", function () {
_option_tmp = "";
for (var i in assign_status) {
_option_tmp += '<option value=' + assign_status[i]['CODE_NAME'] + '>' + assign_status[i]['CODE_NAME'] + '-' + assign_status[i]['CONTENT'] + '</option>';
}
$('#assign_status').append(_option_tmp);
str_assign = $("input[id$='assigner']").val() || '';
if (str_assign != "") {
$("#assign_select_area").find("tr:gt(0)").remove();
arr_a = str_assign.split('|');
for (var dat in arr_a) {
if (arr_a[dat] == '') {
continue;
}
arr_b = arr_a[dat].split(':');
btn_html = "<button onclick='delNextAction(this)'>删除</button>";
next_html = "<tr><td align='center' colspan=10 >" + arr_b[0] + "</td><td>" + arr_b[1] + "</td><td align='center'>" + btn_html + "</td></tr>"
$("#assign_select_area").find("tr :first").after(next_html);
}
}
layer.open({
type: 1,
title: '签核者选择',
area: ['700px', '500px'],
cancel: function () {
str_assign = "";
$("#assign_select_area").find("tr:gt(0)").each(function () {
_tdArr = $(this).children();
_assign_status = _tdArr.eq(0).text();
_next_user = _tdArr.eq(1).text();
str_assign += _assign_status + ":" + _next_user + "|";
});
fc.flowList[fc.selectedNode].assigner = str_assign;
$("#assign_select_area").find("tr:gt(0)").remove();
$("input[id$='assigner']").val(fc.flowList[fc.selectedNode].assigner);
$("#next_user").val("");
},
content: $("#assign_select_area")
});
});
$("#btnTest").live("click", function () {
fc.test();
});
$("#btnSave").live("click", function () {
fc.save();
});
});
$(window).resize(function() {
$(".border-layout").css({
width:document.documentElement.clientWidth,
height:document.documentElement.clientHeight
});
}).find(".border-layout").css({
width:document.documentElement.clientWidth,
height:document.documentElement.clientHeight
});
});
function addNextAction(obj) {
// $(this).parent().parent().append("<tr><td>hello</td></tr>");
as_txt = $("#assign_status").find("option:selected").text(); //
as_val = $("#assign_status").val();
next_user = $("#next_user").val();
btn_html = "<button onclick='delNextAction(this)'>删除</button>";
next_html = "<tr><td align='center' colspan=10 >" + as_txt + "</td><td>" + next_user + "</td><td align='center'>" + btn_html + "</td></tr>"
$(obj).parent().parent().after(next_html);
}
function delNextAction(obj) {
$(obj).parent().parent().remove();
}
/**
* 隐藏当前行
*
* @param {any} row
*/
function hidde_pgRow(row) {
if ($(row).html() == '-') {
$(row).parent().parent().siblings().hide();
$(row).html('+');
} else {
$(row).parent().parent().siblings().show();
$(row).html('-');
}
}