yili-apps/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/js/coe.team.pal.designer.js
2022-07-12 14:14:46 +08:00

543 lines
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(function() {
recordShapeText();
$("#bar_save").off("click").on("click", function () {
if (isAutoSave == "1") {
var obj = Model.define;
//alert("保存");
var str = JSON.stringify(obj);
var imgPath = $("input[name='imgPath']").val();
$.base64.utf8encode = true;
var data = "jsonParams="+$.base64.btoa(str)+"&imgPath="+$.base64.btoa(imgPath);
$.ajax({
type: "POST",
url: "../coeTeamPalDesignerImageServlet.wf?&uuid="+chartId,
data: data,
success: function (msg, textStatus, jqXHR) {
if(msg=="true"){
alert("保存成功");
}else{
console.log(msg);
alert(msg);
}
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert(errorThrown, 'err');
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown)
}
});
}
else if (isAutoSave == "0") {
//保存开始时间戳
//var saveStartTime = new Date().getTime();
if (isCorrelateBpms) {
// if (type == "bpmn" && !isMarked && ($("#bar_rmark").length > 0 && $("#bar_rmark").is(":visible") || $("#bar_cancel_aws_correlate").length > 0 && $("#bar_cancel_aws_correlate").is(":visible"))) {
var op = "edit|"+processDefVersionId ;
saveDesigner(null, true, op, true);
} else {
if (methodId == "process.bpmn2" && isPalManage) {
BPMNBiz.validateBPMN(false, function(){save()});
} else {
save();
}
function save() {
$.simpleAlert("正在保存", "loading");
var params = {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_pl_repository_process_lock_state_check",
uuid: ruuid
};
$.ajax({
type: "POST",
url: "./jd",
data: params,
success: function (msg, textStatus, jqXHR) {
if (msg.result == 'ok') {
var canSave = msg.data.canSave;
var lockUser = msg.data.lockUser;
if (!canSave) {
$.simpleAlert("该流程文件已被" + lockUser + "锁定", 'info', 2000, {callback:function() {
BPMNBiz.refreshDesigner();//刷新
}});
} else {
initSaveFun();
}
} else {
$.simpleAlert(msg.msg, 'error', 1500, {callback:function() {
BPMNBiz.refreshDesigner();//刷新
}});
}
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert("close");
$.simpleAlert('保存失败', 'error', 1500);
}
});
}
function initSaveFun() {
Dock.showView('');
var obj = Model.define;
var tempMessageArr = {};
// 保存前校验,过滤可能出现的错误数据
for (var messageId in messageArrayForSave) {
var action = messageArrayForSave[messageId].action;
if (action == 'remove' && obj.elements[messageId] != undefined) continue;
if ((action == 'create' || action == 'update') && messageArrayForSave[messageId].name == shapeTextRecord[messageId]) continue;
tempMessageArr[messageId] = messageArrayForSave[messageId];
}
var messageArray = JSON.stringify(tempMessageArr);
$.ajax({
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_define_shape_attr_valid",
uuid: ruuid,
define: awsui.encode(obj),
},
success: function (msg, textStatus, jqXHR) {
/*if(msg.result == "ok") {*/
$.ajax({
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_save",
uuid: ruuid,
define: awsui.encode(obj),
teamId: $("#teamId").val(),
BPMInstanceName: BPMInstanceName,
messages: messageArray
},
success: function (msg, textStatus, jqXHR) {
if(msg.result == "ok") {
$.simpleAlert("close");
messageArrayForSave = {};
$("#saving_tip").css("color", "rgb(26, 164, 125)");
$("#saving_tip").text("保存成功");
recordShapeText();// 记录最新的节点及其文本text
//更多属性的处理,当节点处理完成后再处理更多属性
if (saveAttributesJson.length > 0 || removeAttributeJson.length > 0){
$.ajax({
type : "POST",
url : "./jd",
data : {
sid : encodeURI(CLB.sid),
cmd : "com.actionsoft.apps.coe.pal_pl_repository_more_attribute_save",
wsId : $("#wsId").val(),
uuid : ruuid,
attributesJson : JSON.stringify(saveAttributesJson),
removeAttributeJson : JSON.stringify(removeAttributeJson)
},
success:function(r) {
saveAttributesJson = [];
removeAttributeJson = [];
},
error:function(r) {
}
});
}
$.simpleAlert("保存成功", "ok");
//保存结束时间戳
//var saveEndTime = new Date().getTime();
//console.log("流程保存时间:", (saveEndTime - saveStartTime) + "毫秒");
} else {
$.simpleAlert("close");
$.simpleAlert(msg.data.desc, 'error', 2000);
}
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert("close");
$.simpleAlert('保存失败', 'error', 1500);
}
});
/*} else {
$.simpleAlert("close");
var result = msg.data;
var resultMsg = [];
for (var i = 0; i < result.length; i++) {
var o = result[i];
resultMsg.push('[' + o.shapeName + ']的[' + o.attrName + ']不能为空' );
}
$.simpleAlert(resultMsg.join('<br>'), 'error');
// $.simpleAlert(ro.msg, 'error');
}*/
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert("close");
$.simpleAlert('校验失败', 'error', 1500);
}
})
}
}
}
//取消异步发送
});
if (isAutoSave == "0") {
window.onbeforeunload = function(){
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
return "页面中有未保存的内容,请先保存";
} else {
//关闭页面时,释放编辑权
awsui.ajax.request({
type: "POST",
url: "./jd",
async: false,
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_edit_releaselock",
uuid: ruuid
}
});
}
};
//在弹出“是否离开”的提示框后选择离开则触发onunload事件
window.onunload = function(){
//关闭页面时,释放编辑权
console.log("释放编辑权");
awsui.ajax.request({
type: "POST",
url: "./jd",
async: false,
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_edit_releaselock",
uuid: ruuid
}
});
};
// saveTimer();
intervalRefresh();
}
/**
* 质量校验
*/
$("#QualityInspection").off("click").on("click", function () {
$.simpleAlert("正在校验", "loading");
debugger;
var obj=Model.define;
$.ajax({
type : "POST",
url : "./jd",
data : {
sid : CLB.sid,
cmd:"com.actionsoft.apps.coe.pal_repository_process_define_Quality_check",
wsId : $("#wsId").val(),
uuid : ruuid,
obj : awsui.encode(obj)
},
success:function(r) {
$.simpleAlert("close");
if(r.data.result=="error"){
$.simpleAlert(r.data.sb,"error");
}else{
$.simpleAlert("检测通过!","ok");
}
},
error:function(r) {
}
});
});
// 编号刷点击事件
$('#bar_sort').off("click").on("click",function (){
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存") {
$.simpleAlert('页面未保存,请先保存', 'error', 1500);
} else {
// $.simpleAlert("正在编号", "loading");
// $.ajax({
// type: "POST",
// url: "./jd",
// data: {
// sid: CLB.sid,
// cmd: "com.actionsoft.apps.coe.pal_repository_process_define_save",
// uuid: ruuid,
// },
// success: function (msg, textStatus, jqXHR) {
// $.simpleAlert("close");
// console.log(msg)
// },
// error: function (jqXHR, textStatus, errorThrown) {
// $.simpleAlert("close");
// $.simpleAlert('编号失败', 'error', 1500);
// }
// })
let numObj = {
brushId: 'number_brush',
orderList: [
{ shapeId: 'obj_c9e1cda208700001132717c019b9a350',order: 1},
{ shapeId: 'obj_c9e1cda2b8a000013b42e5f045db1f01',order: 2},
{ shapeId: 'obj_c9e1cda4ac10000164dd6bb015406b40',order: 3},
{ shapeId: 'obj_c9e1cda3109000015741104116a918a8',order: 4},
{ shapeId: 'obj_c9e1cdab200000014a2eade016e8170d',order: 5},
{ shapeId: 'obj_c9e1cdb266f0000159a7c8afa7701a68',order: 6},
]
};
let obj = Model.define;
console.log(obj);
let elements = obj.elements;
let orderList = numObj.orderList;
for (let j = 0; j < orderList.length; j++) {
for(let i in elements) {
if (orderList[j].shapeId == i) {
for(let a = 0; a < elements[i].dataAttributes.length; a ++ ) {
if(elements[i].dataAttributes[a].attributesJsonArray !== undefined) {
for(let b = 0; b < elements[i].dataAttributes[a].attributesJsonArray.length; b ++) {
if(elements[i].dataAttributes[a].attributesJsonArray[b].id == numObj.brushId) {
elements[i].dataAttributes[a].attributesJsonArray[b].value = orderList[j].order
}
}
}
}
}
}
}
// for(let i in elements) {
// for(let a = 0; a < elements[i].dataAttributes.length; a ++ ) {
// if(elements[i].dataAttributes[a].attributesJsonArray !== undefined) {
// for(let b = 0; b < elements[i].dataAttributes[a].attributesJsonArray.length; b ++) {
// if(elements[i].dataAttributes[a].attributesJsonArray[b].id == 'number_brush') {
// elements[i].dataAttributes[a].attributesJsonArray[b].value = 24
// }
// }
// }
// }
// }
$("#saving_tip").css("color", "rgb(255, 0, 0)");
$("#saving_tip").text("文件已修改,未保存");
}
})
// 快捷调整画布大小点击事件
$('#bar_resize').off('click').on('click',function () {
var pos = getCanvasContentEdge()
var minPageWidth = 1050
var elements = Model.define.elements;
var shapeIds = [];
var contentWidth = pos.right - pos.left
var contentHeight = pos.bottom - pos.top
for(var shapeId in elements){
shapeIds.push(shapeId);
}
Utils.selectShape(shapeIds);
var movingShapes = null
if (movingShapes == null) { // 形状移动 designer.extend.core.js方法挪用
var selected = Utils.getSelected();
var familyShapes = Utils.getFamilyShapes(selected);
selected = selected.concat(familyShapes);
var containedShapes = Utils.getContainedShapes(selected);
selected = selected.concat(containedShapes);
var attachedShapes = Utils.getAttachedShapes(selected);
selected = selected.concat(attachedShapes);
var outlinkers = Utils.getOutlinkers(selected);
movingShapes = selected.concat(outlinkers);
}
if(movingShapes.length > 0 && contentWidth <= minPageWidth - 180*2) {
// 下移或上移 距顶部120 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 0,
y : 180 - pos.top
});
Designer.setPageStyle({
width: minPageWidth,
height: contentHeight + 360
});
} else if(movingShapes.length > 0 && contentWidth > minPageWidth - 180*2) {
// 右移或左移 距左部60 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 180 - pos.left,
y : 0
});
// 下移或上移 距顶部120 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 0,
y : 180 - pos.top
});
Designer.setPageStyle({
width: contentWidth + 180*2,
height: contentHeight + 180*2
});
}
Model.updateMulti(movingShapes);
$("#saving_tip").css("color", "rgb(255, 0, 0)");
$("#saving_tip").text("文件已修改,未保存");
movingShapes = null;
Designer.op.hideTip();
Utils.unselect();
})
});
function getCanvasContentEdge() {
var pos = {
top: 0,
bottom: 0,
left: 0,
right: 0
}
var elements = Model.define.elements
var xArr = []
var yArr = []
for (let key in elements) {
if (elements[key].points == undefined) { // 形状
xArr.push({
x: elements[key].props.x,
type: 'shape',
shapeWidth: elements[key].props.w
})
yArr.push({
y: elements[key].props.y,
type: 'shape',
shapeHeight: elements[key].props.h
})
} else {
xArr.push({
x: elements[key].from.x,
type: 'line'
})
xArr.push({
x: elements[key].to.x,
type: 'line'
})
yArr.push({
y: elements[key].from.y,
type: 'line'
})
yArr.push({
y: elements[key].to.y,
type: 'line'
})
for (let i = 0; i < elements[key].points.length; i++) {
xArr.push({
x: elements[key].points[i].x,
type: 'line'
})
yArr.push({
y: elements[key].points[i].y,
type: 'line'
})
}
}
}
pos.left = Math.min.apply(Math,xArr.map(item => { return item.x }))
pos.top = Math.min.apply(Math,yArr.map(item => { return item.y }))
// 特殊处理右和下 若有图形 加上图形的高/宽
for (let i = 0; i < xArr.length; i++) {
if(xArr[i].type == 'shape') {
xArr[i].x += xArr[i].shapeWidth
}
}
for (let i = 0; i < yArr.length; i++) {
if(yArr[i].type == 'shape') {
yArr[i].y += yArr[i].shapeHeight
}
}
pos.right = Math.max.apply(Math,xArr.map(item => { return item.x }))
pos.bottom = Math.max.apply(Math,yArr.map(item => { return item.y }))
return pos
}
/**定时保存**/
function saveTimer() {
// 每隔5分钟时间进行保存
setInterval(function(){
var count = 5;
var msg = "秒之后自动进行保存";
var alertmsg = function(count, msg) {
$.simpleAlert(count + msg, "info", 1000, {callback:function(){
count--;
if(count < 1) {
$("#bar_save").click();
} else {
alertmsg(count, msg);
}
}})
};
alertmsg(count, msg);
// $.simpleAlert("5秒之后自动进行保存", "info", 5000, {callback:function(){$("#bar_save").click();}});
}, 300000);
}
/**定时刷新,查询流程是否被其他人锁定**/
function intervalRefresh() {
//每隔5秒发送请求 检查当前用户是否发生变化
intervalInd = setInterval(function() {
awsui.ajax.request({
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_get_lock_info",
uuid: ruuid
},
cache : false,
alert : false,
ok: function(msg){
if (msg.data.isLocked) {
var m = '当前流程被 ' + msg.data.currentUserName + ' 强行获取编辑权或锁定';
$.simpleAlert(m,"info",4000,{mode:true,callback:function() {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
$("#saving_tip").text('');// 防止reload时出现浏览器自带提示
}
window.location.reload();
}});
}
}
});
}, 10000);
}
var CommonLock = {
lockOrLuckFun: function (optype) {//锁定 解锁流程
if (isAutoSave == "0") {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
$.simpleAlert('页面中有未保存的内容,请先保存');
return;
}
}
$.post("./jd", {
cmd: "com.actionsoft.apps.coe.pal_pl_repository_lock_or_unlock_process",
sid: sid,
uuid: ruuid,
optype: optype
}, function t(msg) {
if (msg.result == 'ok') {
if (optype == 'unlockpro') {
$.simpleAlert("文件已解锁", 'ok', 500, {callback: CommonLock.refreshDesigner});
} else {
$.simpleAlert("文件已锁定", 'ok', 500, {callback: CommonLock.refreshDesigner});
}
} else {
CommonLock.refreshDesigner();
}
}, "json");
},
refreshDesigner: function () {
//刷新当前页面
if (top.location != self.location) {
location.href = location.href;
} else {
window.location.reload();
}
}
};
// 记录所有节点及节点名称,保存时对比
var shapeTextRecord = {};
function recordShapeText() {
shapeTextRecord = {};// 初始化
var obj = Model.define;
var shapes = obj.elements;
for(var shape in shapes) {
shapeTextRecord[shape] = shapes[shape].text;
}
}