apps/com.actionsoft.apps.coe.pal.publisher/web/com.actionsoft.apps.coe.pal.publisher/js/publish.manage.home.js
2025-02-07 14:41:29 +08:00

865 lines
23 KiB
JavaScript

var plParentid = 0;
var processLevel = 0;
var isLeaf = true;
var parentNodeId;
var orderIndexs = new Array();
var repositoryTree;
var copeFileNode = "";
var drpParentId;
var drpSourceParentId;
var isOpenMainIfranme = false;
var repositoryTree;
$(document).ready(function() {
initTree();
repositoryTree.expandNode($("a[tbindex=process]"), true);
});
// 新建层次 打开对话框v2
function createProcessLevelv2(wd, wsid, parentid, plLevel, div_class) {
var title = "新建文件";
var url = "./w?sid=" + encodeURIComponent($('#sid').val())
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_create_v2&wsid=" + wsid + "&id="
+ parentid;
if (parentid == 0) {
window.top.$.simpleAlert(请先选择根下相应节点, "info", 2000);
} else {
if (parentid.length == 36) {
var buttons = [
{
text : '确定',
cls : "blue",
handler : function() {
var processType = FrmDialog.win().processType;
if (processType == "default") {
saveProcessLevel(window);
var node = repositoryTree.getSelectedNode();
setPlParentIDAndProcessLevel(node);
refresh();
} else {
$.ajax({
url : './jd?cmd=com.actionsoft.apps.coe.pal_processlevel_create_save&sid=' + encodeURIComponent($('#sid').val())
+ '&wsid=' + wsid
+ '&plLevel=' + (parseInt(plLevel) + 1)
+ '&plParentId=' + parentid
+ '&category=' + FrmDialog.win().selectCategoryValue
+ '&container=' + FrmDialog.win().selectContainer
+ '&t=' + Math.random(),
success : function(msg) {
if (typeof(msg) == "string") {
msg = eval('(' + msg + ')').msg;
} else {
msg = msg.msg;
}
var browserId = (Math.random() + new Date().getTime()).toString(16).replace(".", "");
var url = "./w?sid="
+ encodeURIComponent($('#sid').val())
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer&uuid="
+ msg
+ "&openType=0&perms=w,d,v&filePerms=-&browserId=" + browserId;
$("#disignerIframe").attr("src", url).attr("uuid", msg);
FrmDialog.close();
setTimeout(
function() {
var node = repositoryTree.getSelectedNode();
setPlParentIDAndProcessLevel(node);
refresh();
}, 500);
}
})
}
}
}, {
text : '关闭',
handler : function() {
FrmDialog.close();
}
} ]
var dlg=FrmDialog.open({
title:title,
height:465,
url:url,
buttons: buttons
});
} else {
window.top.$.simpleAlert("该节点上不可以新建流程");
}
}
}
/**
* 功能:去除字符串中所有空格 传参:需要处理的字符串 返回值:去除空格后的字符串
*/
function trimSpaces(Str) {
var ResultStr = "";
Temp = Str.split(/\s/);
for (i = 0; i < Temp.length; i++) {
ResultStr += Temp[i];
}
return ResultStr;
}
// 流程规划
function saveProcessLevel(wd) {
var returnProcessJson = eval("("
+ window.top.getAwsDialogWindow().returnProcessJson() + ")");
// alert(returnProcessJson);
var defaultMessageJson = window.top.getAwsDialogWindow().defaultMessageJson;
// alert(defaultMessageJson.plParentId);
var id = returnProcessJson.id;
var wsId = returnProcessJson.wsId;
var plNo = trimSpaces(returnProcessJson.plNo);
var plName = returnProcessJson.plName;
var plLevel = returnProcessJson.plLevel;
plLevel = parseInt(plLevel) + 1;
var plParentId = returnProcessJson.plParentId;
var plDesc = returnProcessJson.plDesc;
var plOrderIndex = returnProcessJson.plOrderIndex;
var plIsBottomLevel = returnProcessJson.plIsBottomLevel;
var plRDId = returnProcessJson.plRDId;
var plRP = returnProcessJson.plRP;
/*
* if (plRP == "") { window.top.$.simpleAlert("[责任人]不允许为空"); return; }
*/
var plM = returnProcessJson.plM;
var plExecType = returnProcessJson.plExecType;
var systemName = returnProcessJson.systemName;
var plAwsPid = returnProcessJson.plAwsPid;
var oldPlAwsPid = returnProcessJson.oldPlAwsPid;
var plDiagramUrl = returnProcessJson.plDiagramUrl;
var plColor = returnProcessJson.plColor;
var plSecurityR = returnProcessJson.plSecurityR;
var plSecurityW = returnProcessJson.plSecurityW;
var oldplSecurityW = returnProcessJson.oldplSecurityW;
var oldplSecurityR = returnProcessJson.oldplSecurityR;
var methodId = returnProcessJson.methodId;
var plDutyDept = returnProcessJson.plDutyDept;
var plDutyPerson = returnProcessJson.plDutyPerson;
if (plName == "") {
window.top.$.simpleAlert("[" + 名称 + "]" + 不允许为空);
return false;
}
if (plName.length > 120) {
window.top.$.simpleAlert("[" + 名称 + "]" + "不允许超过120个字符");
return false;
}
if (plDesc.length > 1900) {
window.top.$.simpleAlert("[描述]不允许超过2000个字符");
return false;
}
if (plNo.length >= 36) {
window.top.$.simpleAlert(编号长度不允许超过36个字符);
return false;
}
if (!/^[0-9]*$/.test(plNo)) {
$.simpleAlert("编号只允许为数字类型", "info", 2000);
}
if (methodId == "") {
window.top.$.simpleAlert("对不起,没有找到相应的建模方法");
return false;
}
if (plIsBottomLevel == -1) {
window.top.$.simpleAlert("[" + 层次 + "]" + 不允许为空);
return false;
}
if (plM == -1) {
window.top.$.simpleAlert("[" + 里程碑 + "]" + 不允许为空);
return false;
}
if (plExecType == -1) {
window.top.$.simpleAlert("[" + 执行方式 + "]" + 不允许为空);
return false;
}
var params = {
id : id,
wsid : wsId,
plLevel : plLevel,
plParentId : plParentId,
plOrderIndex : plOrderIndex,
plIsBottomLevel : plIsBottomLevel,
plExecType : plExecType,
plNo : plNo,
plName : plName.trim(),
plDesc : plDesc,
plRd : plRDId,
plRp : plRP,
plM : plM,
plSystemName : systemName,
plAwsPid : plAwsPid,
oldPlAwsPid : oldPlAwsPid,
plDiagramUrl : plDiagramUrl,
plColor : plColor,
plSecurityW : plSecurityW,
oldplSecurityW : oldplSecurityW,
plSecurityR : plSecurityR,
oldplSecurityR : oldplSecurityR,
methodId : methodId,
plDutyDept : plDutyDept,
plDutyPerson : plDutyPerson
};
jQuery.ajax({
type : "POST",
url : "./jd?sid=" + encodeURIComponent(jQuery('#sid').val())
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_save",
data : params,
success : function(msg) {
if (typeof(msg) == "string") {
msg = eval('(' + msg + ')');
}
msg = msg.msg;
if (msg.indexOf("-1") == -1) {
parent.$("#iflowlist").get(0).contentWindow.refresh();
window.top.$.simpleAlert("新建成功", "ok", 2000);
window.top.closeAwsDialog();
} else {
window.top.$.simpleAlert("保存流程层级失败请稍后重试");
}
}
});
return true;
}
// ------------------------
function zTreeBeforeAsync(treeId, treeNode) {
}
function getParam() {
var wsId = jQuery("#wsId").val();
var sessionId = jQuery("#sid").val();
var param = {
sid : sessionId,
cmd : "com.actionsoft.apps.coe.pal_processlevel_treejson",
wsid : wsId
};
return param;
}
function setOrderIndexByOutGoing(outgoing, uuid, orderIndex) {
}
function setOrderIndexByArray(array, uuid, orderIndex) {
}
function initTree() {
$("#repositoryTree").empty();
var wsId = $("#wsId").val();
if (wsId) {
var setting = getSetings();
repositoryTree = awsui.tree.init($("#repositoryTree"), setting);
$("#repositoryTree").css("height", "auto");
} else {
window.top.$.simpleAlert("请选择流程资产", "info", 2000);
}
if (repositoryTree.getSelectedNode() == undefined) {
repositoryTree.selectNode(repositoryTree.config.data[0].id, true);
}
}
function getSetings() {
var setting = {
sort : true,
dblClickToExpand : true,
event : {
beforeDrag : beforeDrag,
beforeDrop : beforeDrop,
onDrop : onDrop,
onClick : clickNode,
beforeExpand : loadData,
afterLoad : afterLoad
},
edit : {
enable : true,
showRemoveBtn : false,
showRenameBtn : false,
drag : {
prev : true,
next : true,
inner : true
}
},
async : {
enable : true,
type : "post",
url : "./w",
autoParam : [ "id=pid" ],
otherParam : getParam()
},
data : {
keep : {
parent : true
}
}
};
setting.contextMenu = {
items : [
{
text : "复制",
tit : "copy",
method : function(obj) {
var node = repositoryTree.getSelectedNode();
setPlParentIDAndProcessLevel(node);
copeFileNode = node;
$(setting.contextMenu.target).menu("close");
}
},
{
text : "粘贴",
tit : "paste",
method : function(obj) {
if (copeFileNode == null) {
window.top.$.simpleAlert("请先复制文件", "info", 2000);
$(setting.contextMenu.target).menu("close");
return;
}
var node = repositoryTree.getSelectedNode();
if (node.plCategory != copeFileNode.plCategory) {
window.top.$.simpleAlert("对不起,不能跨文件类型粘贴", "info",
2000);
$(setting.contextMenu.target).menu("close");
return;
}
setPlParentIDAndProcessLevel(node);
$.ajax({
url : './w?cmd=com.actionsoft.apps.coe.pal_processlevel_copy&sid='
+ encodeURIComponent($('#sid').val())
+ '&sourceUUID=' + copeFileNode.id
+ '&targetUUID=' + node.id,
async : false,
success : function(msg) {
if (typeof(msg) == "string") {
msg = eval('(' + msg + ')').data;
}
refresh();
if (msg.success == "true") {
window.top.$.simpleAlert(msg.message, "ok", 2000);
} else {
window.top.$.simpleAlert(msg.message, "error");
}
}
})
$(setting.contextMenu.target).menu("close");
}
},{
text : "新增",
tit : "create",
method : function(obj) {
var node = repositoryTree.getSelectedNode();
createProcessLevelv2(window,$("#wsId").val(),node.id,node.plLevel, '');
$(setting.contextMenu.target).menu("close");
}
},{
text : "删除",
tit : "remove",
method : function(obj) {
$(setting.contextMenu.target).menu("close");
var node = repositoryTree.getSelectedNode();
deleteProcessLevel(window, node.name, node.id, node.pid);
}
}
],
target : "#contextMenu"
};
setting.dataModel = {
data : data
};
return setting;
}
function loadData(treeNode) {
// 如果是父节点并且存在子节点执行加载
if (treeNode && treeNode.id.length == 36) {
var dataModel = {
url : "./w?sid=" + jQuery("#sid").val()
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_treejson&pid=" + treeNode.id
+ "&wsid=" + jQuery("#wsId").val(),
method : "POST",
dataType : "json"
}
repositoryTree.refreshNode({
id : treeNode.id,
dataModel : dataModel
});
}
}
function afterLoad() {
$("a[tabindex=process]").trigger("click.nodeClick");
}
// 拖拽前事件
function beforeDrag(treeNode) {
return true;
}
// 移动节点前现将所有的 orderindex计入一个集合
function putOrdexIndexs(treeNode) {
var nodes = repositoryTree.getChildrenByPid(treeNode.pid);
for (var i = 0; i < nodes.length; i++) {
orderIndexs[i] = nodes[i].plOrdexIndex;
}
}
var dragType = "";
function beforeDrop(target, source) {
if (target.plCategory != source.plCategory) {
window.top.$.simpleAlert("不允许跨文件类型移动", "info", 2000);
return false;
}
if (repositoryTree.moveObj.find("span:first").hasClass("inner")) {
dragType = "inner"; //插入target内部
} else {
dragType = "insert"; //插入target后面
}
return true;
}
function onDrop(target, source, position) {
if(dragType == 'inner' && target.id == source.pid) {
$.simpleAlert('不允许移动到<b>'+ source.name +'</b>自身的父节点内部', 'error');
return;
}
// 添加特殊情况处理sunlh
var flag = true;
if(dragType == 'insert') {
// 若目标文件为展开状态,增加是放入目标文件的后面或者放入目标文件的内部第一个的判断
var targetId = target.id;
if($('#tree_ul_' + targetId).length > 0) { //存在加载好的子节点
if(!$('#tree_ul_' + targetId).is(':hidden')) { // 子节点已展开
flag = false;
$('#moveDialog').dialog({
title : '移动选项',
buttons: [
{text:'确定',cls:"blue",handler:function(){
if($('#moveInnerFirst').prop('checked')) {
var firstChildId = $('#tree_ul_' + targetId).find('li:first').attr('li_index');
var targetNode = repositoryTree.getNodeById(firstChildId);
moveTreeNode(targetNode, source, 'above');
}
if($('#moveInsertBelow').prop('checked')) {
moveTreeNode(target, source, position);
}
$('#moveDialog').dialog('close');
}},
{text:'取消',handler:function(){$('#moveDialog').dialog('close');return;}}
],
onClose: function() {
$('#moveInnerFirst').check('option','checked', true);
}
});
}
}
}
if(flag) {
moveTreeNode(target, source, position);
}
}
// 拖动树节点
function moveTreeNode(target, source, position) {
var sourceParentNode = repositoryTree.getNodeById(source.pid);
var targetParentNode = repositoryTree.getNodeById(target.pid);
if (targetParentNode == undefined) {
targetParentNode = repositoryTree.getNodeById(target.id);
}
var msg = "";
if(dragType == 'inner') {// 放入里面,默认最后的位置
msg = "确认将<b>" + source.name + "</b>放入<b>" + target.name + "</b>里面?";
}
if(dragType == 'insert') {// 放入文件之间
if(position == 'below') {// 放入target下面
msg = "确认将<b>" + source.name + "</b>放入<b>" + target.name + "</b>的后面(同级)?";
}
if(position == 'above') {// 放入target上面
msg = "确认将<b>" + source.name + "</b>放入<b>" + target.name + "</b>的前面(同级)?";
}
}
var options = {
title : "提示",
content:msg,
onConfirm: function(){
// 拖拽成功后
awsui.ajax.request({
url : "./jd",
method : "POST",
data : {
sid: $("#sid").val(),
cmd: "com.actionsoft.apps.coe.pal_update_index_or_pid",
sourceId: source.id,
targetId: target.id,
type: dragType,
position: position
},
ok : function(r) {
//initTree();
doLoad(sourceParentNode);
doLoad(targetParentNode);
dragType = "";
},
err:function(r){
}
});
},
onCancel : function(){
return true;
}
};
$.confirm(options);
}
/*var dragType = "";
function beforeDrop(target, source) {
if (target.plCategory != source.plCategory) {
window.top.$.simpleAlert("不允许跨文件类型移动", "info", 2000);
return false;
}
if (repositoryTree.moveObj.find("span:first").hasClass("inner")) {
dragType = "inner"; //插入target内部
} else {
dragType = "insert"; //插入target后面
}
return true;
}
function onDrop(target, source, position) {
var sourceParentNode = repositoryTree.getNodeById(source.pid);
var targetParentNode = repositoryTree.getNodeById(target.pid);
if (targetParentNode == undefined) {
targetParentNode = repositoryTree.getNodeById(target.id);
}
var options = {
title : "提示",
content:"确定移动此文件吗?",
onConfirm: function(){
// 拖拽成功后
awsui.ajax.request({
url : "./jd",
method : "POST",
data : {
sid: $("#sid").val(),
cmd: "com.actionsoft.apps.coe.pal_update_index_or_pid",
sourceId: source.id,
targetId: target.id,
type: dragType,
position: position
},
ok : function(r) {
//initTree();
doLoad(sourceParentNode);
doLoad(targetParentNode);
},
err:function(r){
}
});
},
onCancel : function(){
return true;
}
};
$.confirm(options);
}*/
// 同级移动返回更新后的orderIndex
function getNewOrderIndexStr(parentNode) {
var str = "";
var nodes = repositoryTree.getChildrenByPid(parentNode.id);
;
for (var i = 0; i < nodes.length; i++) {
nodes[i].plOrdexIndex = orderIndexs[i];
}
for (var i = 0; i < nodes.length; i++) {
if (i == 0) {
str += nodes[i].id + "|" + nodes[i].plOrdexIndex;
} else {
str += "," + nodes[i].id + "|" + nodes[i].plOrdexIndex;
}
}
// console.log(str);
return str;
}
// 跨级移动更新pid
function getNewPid(treeNodes, afterId) {
var pids = "";
for (var i = 0; i < treeNodes.length; i++) {
if (i == 0) {
pids += treeNodes[i].id;
} else {
pids += "|" + treeNodes[i].id;
}
}
pids += "," + afterId;
return pids;
}
// 异步设置orderindex
function updateOrderIndex(str, target, source) {
var param = {
orderIndexs : str
}
jQuery.ajax({
type : "POST",
url : "./w?sid=" + encodeURIComponent(jQuery('#sid').val())
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_setploaderindex",
data : param,
success : function(msg) {
if (msg == "-1") {
window.top.$.simpleAlert("拖动失败请稍候重试", "info", 2000);
} else {
window.setTimeout(function() {
refreshNode(source.pid);
}, 300);
window.setTimeout(function() {
refreshNode(target.id);
}, 300);
}
}
});
}
function updatePid(str, target, source) {
var param = {
pids : str
}
jQuery.ajax({
type : "POST",
url : "./w?sid=" + encodeURIComponent(jQuery('#sid').val())
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_setplid",
data : param,
success : function(msg) {
if (msg == "-1") {
window.top.$.simpleAlert("拖动失败请稍候重试", "info", 2000);
} else {
window.setTimeout(function() {
refreshNode(source.pid);
}, 300);
window.setTimeout(function() {
refreshNode(target.id);
}, 300);
}
}
});
}
function clickNode(treeNode) {
if (treeNode.id.length == 36) {
openDesginer(treeNode.id, 0, treeNode.name, "", treeNode.versionId, false, "0");
}
}
function openDesginer(uuid, openType, plName, appId, processVersionId,
isOpenDialog, collaboration) {
if(collaboration == undefined || collaboration == null) {
collaboration = "0";
}
var browserId = (Math.random() + new Date().getTime()).toString(16).replace(".", "");
var params = {
sid : encodeURIComponent(jQuery('#sid').val()),
cmd : "com.actionsoft.apps.coe.pal_pl_repository_designer",
uuid : uuid,
openType : openType,
processDefId : processVersionId,
collaboration : collaboration,
teamId : "",
perms: "w,d,v",
filePerms: "-",
browserId: browserId
}, url, options;
if (typeof (isOpenDialog) == "boolean" && isOpenDialog) {// 打开与bpmn关联的多个版本
params = {
sid : encodeURIComponent(jQuery('#sid').val()),
cmd : "com.actionsoft.apps.coe.pal_pl_repository_version",
uuid : uuid,
appId : appId,
processVersionId : processVersionId
};
url = "./w?" + connectParams(params);
options = {
buttons : [ // 按钮组
{
text : '关闭',
handler : function() {
window.top.closeAwsDialog();
}
} ]
}
window.top.openAwsDialog(url, plName, 770, 415, options);
return;
}
url = "./w?" + connectParams(params);
$("#disignerIframe").attr("src", url).attr("uuid", uuid);
}
function openDesginerFromAttr(uuid, openType, plName, appId, processVersionId,
isOpenDialog, shapeId) {
var params = {
sid : encodeURIComponent(jQuery('#sid').val()),
cmd : "com.actionsoft.apps.coe.pal_pl_repository_designer_open_shape_page",
uuid : uuid,
openType : openType,
processDefId : processVersionId,
shapeId : shapeId,
teamId : ""
};
var url = "./w?" + connectParams(params);
$("#disignerIframe").attr("src", url).attr("uuid", uuid);
}
function connectParams(params) {
var connParms = "";
if (typeof (params) == "object") {
for ( var i in params) {
connParms += i + "=" + params[i] + "&";
}
}
return connParms.substring(0, connParms.length - 1);
}
function closeTabById(index) {
awsTabs.closeTab(index, null);
}
// 异步节点加载成功后回调
function onAsyncSuccess(event, treeId, treeNode, msg) {
var zTree = jQuery.fn.zTree.getZTreeObj("processLevelTree");
setTimeout(function() {
if (treeNode) {
if (treeNode.level < 1) { // 展开到指定层级
if (treeNode.children && treeNode.children.length > 0) {
expandNodes(zTree, treeNode.children);
}
}
}
}, 500); // 加载下级节点
}
function getNodeIndex(nodes, treeNode) {
var index = 0;
if (nodes && treeNode) {
for (var i = 0; nodes.length; i++) {
if (treeNode.id == nodes[i].id) {
index = i + 1;
break;
}
}
}
return index;
}
function setPlParentIDAndProcessLevel(treeNode) {
if (!treeNode.isParent) {
treeNode.isParent = true;
}
plParentid = treeNode.id;
processLevel = treeNode.plLevel;
isLeaf = treeNode.isParent;
}
// 展开所有节点
function expandNodes(zTree, nodes) {
if (!nodes)
return;
for (var i = 0, l = nodes.length; i < l; i++) {
zTree.expandNode(nodes[i], true, false, false);
if (nodes[i].isParent) {
expandNodes(nodes[i].children);
}
}
}
// 自动展开两级节点
function expandNodesFirst(zTree, nodes) {
if (!nodes)
return;
for (var i = 0, l = 1; i < l; i++) {
zTree.expandNode(nodes[i], true, false, false);
if (nodes[i].isParent && nodes[i].zAsync) {
expandNodesFirst(nodes[i].children);
}
}
}
// 自动展开n级节点
function expandNodesN(zTree, nodes, n) {
if (!nodes)
return;
for (var i = 0, l = n; i < l; i++) {
zTree.expandNode(nodes[i], true, false, false);
if (nodes[i].isParent) {
expandNodesN(zTree, nodes[i].children, n);
}
}
}
// 刷新指定节点
function refreshNode(id) {
if (!id) {
id = plParentid;
}
var node = repositoryTree.getNodeById(id);
if (node == null) {
} else {
loadData(node);
if (repositoryTree.existsChildren(id)) {
node.open = true;
} else {
delete node.open;
}
doLoad(node, "reload");
}
}
// 刷新树
function refresh(id) {
refreshNode(id);
}
function doLoad(treeNode, type) {
var dataModel = {
url : "./jd?sid=" + $("#sid").val()
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_treejson&pid=" + treeNode.id
+ "&wsid=" + $("#wsId").val(),
method : "POST",
dataType : "json"
}
repositoryTree.refreshNode({
id : treeNode.id,
dataModel : dataModel
});
}
function deleteProcessLevel(wd, name, id, pid) {
var options = {
title : "提示",
content : "确定删除流程" + "[" + name + "]" + "吗?",
model : false,
onConfirm : function() {
$.simpleAlert("正在处理", "loading");
var wsId = jQuery("#wsId").val();
var params = {
wsid : wsId,
pid : id
};
jQuery.ajax({
type : "POST",
url : "./w?sid=" + encodeURIComponent(jQuery('#sid').val())
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_tree_remove",
data : params,
success : function(msg) {
$.simpleAlert("close");
msg = eval('(' + msg + ')').msg;
if (msg == "1") {
$.simpleAlert("删除成功", "ok", 2000);
refreshNode(pid);
if ($("#disignerIframe").attr("uuid") == id) {
$("#disignerIframe").attr("uuid", "").attr("src", "");
}
} else {
$.simpleAlert("删除失败请稍后重试", "info", 2000);
}
}
});
}
};
window.top.$.confirm(options);
}