4531 lines
136 KiB
JavaScript
Executable File
4531 lines
136 KiB
JavaScript
Executable File
/**
|
||
* @author wangyh 与插入链接,属性,关系相关的js内容
|
||
*/
|
||
var selectedShapes = [];
|
||
var linkType; // 链接类型:custom:自定义链接;file:文件链接
|
||
$(document).ready(function() {
|
||
showPainting();
|
||
setDivHeight();
|
||
// awsui.parse();
|
||
$("#linkto_file").buttonedit({
|
||
onClick : showLinkTree
|
||
});
|
||
|
||
setTimeout(function() {
|
||
Designer.hotkey.init();// 解决快捷健绑定不成功
|
||
// DesignerCopyPaste.checkHasUsedShape();
|
||
// if (window.opener && window.opener.document.getElementById("teamId").value != "") {
|
||
// //如果从“流程团队”中打开设计器,则不进行复制粘贴同步监听
|
||
// } else {
|
||
// DesignerCopyPaste.changeTitleListen();// 复制粘贴形状内容同步的监听
|
||
// }
|
||
DesignerCopyPaste.changeTitleListen();
|
||
if (selectedElementId && selectedElementId != "") {
|
||
Utils.selectShape(selectedElementId);
|
||
}// 复制粘贴形状内容同步的监听
|
||
}, 1000);
|
||
|
||
//初始化visio导入的fileUpload
|
||
initVisioImportFileUpload();
|
||
//初始化更多特性按钮
|
||
initMoreAttrRight();
|
||
//初始化节点附件上传事件
|
||
addShapeFile();
|
||
//by bzp
|
||
addPolicyFile();
|
||
});
|
||
|
||
function initMoreAttrRight() {
|
||
if($('#moreAttrRight').val() == "false") {
|
||
$("#showMoreAttrUL").remove();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 判断是否正在保存
|
||
*/
|
||
function isSavingFile() {
|
||
if ($("#saving_tip").text() == "已保存成功" || $("#saving_tip").text() == "保存成功" || $("#saving_tip").text() == "您的文件已经成功保存" || $("#saving_tip").text() == "")
|
||
return true;
|
||
else
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* 兼容1024*768画布显示
|
||
*
|
||
* @param {}
|
||
*
|
||
*/
|
||
|
||
function showPainting() {
|
||
var width = screen.width;
|
||
if (width == 1024) {
|
||
$("#toolbar_wfversion_info").addClass("showPainting");
|
||
if (parent.getWidthToolbar() > 750) {
|
||
$(".toolbar").removeClass("heightCssToolbar")
|
||
.addClass("toolbarExtend");
|
||
$("#bar_back").removeClass("cssToolbar");
|
||
|
||
} else {
|
||
$(".toolbar").addClass("heightCssToolbar")
|
||
.removeClass("toolbarExtend");
|
||
$("#bar_back").addClass("cssToolbar");
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 重写单击图形时的触发的事件
|
||
*
|
||
* @param {}
|
||
*
|
||
* @returns {}
|
||
*/
|
||
Designer.op.shapeSelectable = function(a) {
|
||
var b = $("#designer_canvas");
|
||
b.bind("mousedown.select", function(d) {
|
||
Designer.op.changeState("seelcting_shapes");
|
||
var e = a.id;
|
||
var c = [];
|
||
if (d.ctrlKey) {
|
||
var c = Utils.getSelectedIds();
|
||
if (Utils.isSelected(e)) {
|
||
Utils.removeFromArray(c, e);
|
||
} else {
|
||
c.push(e);
|
||
}
|
||
|
||
if ($("#dock_content_attribute").is(":visible")) {
|
||
$("#tagContent1 :focus").blur();
|
||
}
|
||
|
||
Utils.unselect();
|
||
if (c.length > 0) {
|
||
Utils.selectShape(c);
|
||
}
|
||
} else {
|
||
if (Utils.selectIds.indexOf(e) < 0) {
|
||
|
||
if ($("#dock_content_attribute").is(":visible")) {
|
||
$("#tagContent1 :focus").blur();
|
||
}
|
||
|
||
Utils.unselect();
|
||
Utils.selectShape(e);
|
||
}
|
||
}
|
||
$(document).bind("mouseup.select", function() {
|
||
Designer.op.resetState();
|
||
b.unbind("mousedown.select");
|
||
$(document).unbind("mouseup.select");
|
||
});
|
||
// selectedShapes
|
||
DesignerCopyPaste.selectedShapeId = Utils.getSelected()[0].id;
|
||
if ($("div.dock_view_attribute").is(":visible")) {
|
||
showShapeRelationTab(null);
|
||
attributeShowTabContent(null);
|
||
shapeCopyAndPasteCount(null);
|
||
showRelevanceShapesContent();
|
||
}
|
||
var tmpArray = getTmpArray(isLaneAttrConfig);
|
||
if (Utils.getSelected()[0].category == "basic") {
|
||
$("#showMoreAttrUL").hide();
|
||
} else if ($.inArray(Utils.getSelected()[0].name, tmpArray) != -1) {// 泳池泳道隐藏
|
||
$('#showMoreAttrUL').hide();
|
||
} else {
|
||
if ($("#tabLiContainnerAttribute").hasClass("selectTag")) {
|
||
$("#dock_content_attribute #showMoreAttrUL").show();
|
||
} else {
|
||
$("#dock_content_attribute #showMoreAttrUL").hide();
|
||
}
|
||
}
|
||
});
|
||
};
|
||
//根据isLaneAttrConfig来判断数组的数据
|
||
function getTmpArray(isLaneAttrConfig) {
|
||
var tmpArray1 = ['verticalPool', 'verticalLane', 'horizontalPool', 'horizontalLane'];
|
||
var tmpArray2 = ['verticalPool', 'horizontalPool'];
|
||
if (isLaneAttrConfig) {
|
||
return tmpArray2;
|
||
} else {
|
||
return tmpArray1;
|
||
}
|
||
}
|
||
// 重写
|
||
Designer.linkClickable = function(a, c) {/*
|
||
* var b = $("#link_spot"); if
|
||
* (b.length == 0) { b = $("<a
|
||
* id='link_spot' target='_blank'
|
||
* onclick='openLink(this);'></a>")
|
||
* .appendTo("#designer_canvas"); }
|
||
* if
|
||
* (a.trim().toLowerCase().indexOf("http") ==
|
||
* -1) { a = "http://" + a; }
|
||
* b.show().css({ left : c.x - 50,
|
||
* top : c.y - 50, "z-index" :
|
||
* Model.orderList.length + 1 });
|
||
*/
|
||
};
|
||
var myshapeLink = "";
|
||
var linkIndex = 0;
|
||
var selectShape = Utils.getSelected()[0];
|
||
/**
|
||
* 功能:去除字符串中所有空格 传参:需要处理的字符串 返回值:去除空格后的字符串
|
||
*/
|
||
function trimSpaces(Str) {
|
||
var ResultStr = "";
|
||
Temp = Str.split(/\s/);
|
||
for (i = 0; i < Temp.length; i++) {
|
||
ResultStr += Temp[i];
|
||
}
|
||
return ResultStr;
|
||
}
|
||
|
||
/**
|
||
* 重写插入链接事件
|
||
*
|
||
* @returns {}
|
||
*/
|
||
UI.showInsertLink = function() {
|
||
var ua = navigator.userAgent.toLowerCase();
|
||
if (ua.match(/chrome\/([\d.]+)/)) {
|
||
$("#link_custom_target1").css({"width" : "264px"});
|
||
$("#link_custom_target1").siblings("span.awsui-select-span").css({"width" : "252px"});
|
||
$("#link_custom_target2").css({"width" : "262px"});
|
||
$("#link_custom_target2").siblings("span.awsui-select-span").css({"width" : "250px"});
|
||
}
|
||
|
||
$("#link_dialog").dialog({
|
||
title: "插入链接",
|
||
buttons:[
|
||
{text:'确定',cls:"blue",handler:function(){UI.setLink();}},
|
||
{text:'关闭',handler:function(){$('#link_dialog').dialog('close');}}
|
||
]
|
||
});
|
||
$(".awsui-simple-tab").find("a[tit=file]").trigger('click');
|
||
$("#linksHistory").empty();
|
||
$("#linksFileHistory").empty();
|
||
var addr = Utils.getSelected()[0].linksArray;
|
||
var shape = Utils.getSelected()[0];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
addr = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
if (!addr) {
|
||
addr = [];
|
||
}
|
||
var links_file = [];
|
||
var links_custom = [];
|
||
for (var i = 0; i < addr.length; i++) {
|
||
var link = addr[i];
|
||
if (link.type == "file") {
|
||
links_file.push(link);
|
||
} else {
|
||
links_custom.push(link);
|
||
}
|
||
}
|
||
|
||
if (links_custom.length == 0) {
|
||
$("#linksHistoryDiv").hide();
|
||
} else {
|
||
$("#linksHistoryDiv").show();
|
||
}
|
||
if (links_file.length == 0) {
|
||
$("#linksFileHistoryDiv").hide();
|
||
} else {
|
||
$("#linksFileHistoryDiv").show();
|
||
}
|
||
|
||
$("#linkto_addr").val("");
|
||
$("#linkto_addr_name").val("");
|
||
$("#linkto_file").val("");
|
||
$("#linkto_file_name").val("");
|
||
writeLinksHistory("linksHistory", links_custom);
|
||
writeLinksHistory("linksFileHistory", links_file);
|
||
|
||
$("#linkto_addr").unbind().bind("keydown", function(e) {
|
||
if (e.keyCode == 13) {
|
||
UI.setLink();
|
||
}
|
||
});
|
||
setDivHeight();
|
||
};
|
||
|
||
//风险控制
|
||
UI.showRiskDlg = function(){
|
||
var shape = Utils.getSelected()[0];
|
||
var number;
|
||
if (shape.dataAttributes != undefined) {
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
if (shape.dataAttributes[i].privateAttributeContent != null) {
|
||
var privateAttributeContent = shape.dataAttributes[i].privateAttributeContent;
|
||
if (typeof(privateAttributeContent) == "string") {
|
||
privateAttributeContent = eval("(" + privateAttributeContent + ")");
|
||
}
|
||
number = privateAttributeContent.number;
|
||
}
|
||
}
|
||
}
|
||
if (number == undefined || number == "") {
|
||
$.simpleAlert("请先维护该节点编号");
|
||
return;
|
||
}
|
||
var riskDlg = FrmDialog.open({
|
||
width:800,
|
||
height:700,
|
||
url:"./w?sid=" + $("#sid").val() + "&cmd=com.actionsoft.apps.coe.pal.risk_pal_designer_risk",
|
||
data:{"plId":ruuid, "taskId": shape.id, "taskNum": number}
|
||
});
|
||
}
|
||
|
||
//流程节点的风险控制不为空,重新渲染shape
|
||
function renderShapeRisks(risk, control) {
|
||
var shape = Utils.getSelected()[0];
|
||
if (shape.dataAttributes != undefined) {
|
||
var riskFlag = false;
|
||
var controlFlag = false;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
if (shape.dataAttributes[i].risk != undefined) {
|
||
shape.dataAttributes[i].risk = risk;
|
||
riskFlag = true;
|
||
}
|
||
if (shape.dataAttributes[i].control != undefined) {
|
||
shape.dataAttributes[i].control = control;
|
||
controlFlag = true;
|
||
}
|
||
}
|
||
if (!riskFlag) {
|
||
var index = shape.dataAttributes.length -1;
|
||
shape.dataAttributes[index].risk = risk;
|
||
}
|
||
if (!controlFlag) {
|
||
var index = shape.dataAttributes.length -1;
|
||
shape.dataAttributes[index].control = control;
|
||
}
|
||
}
|
||
Designer.painter.renderShape(shape);
|
||
}
|
||
|
||
//visio导入-打开dialog
|
||
UI.showImportDlg = function() {
|
||
if (processOnIsInstall == "false") {
|
||
$.simpleAlert("[ProcessOn]应用未安装");
|
||
return;
|
||
}
|
||
if (processOnIsActive == "false") {
|
||
$.simpleAlert("[ProcessOn]应用未启动");
|
||
return;
|
||
}
|
||
$("#visio_import_input").empty();
|
||
$("#visio_import_input").val("");
|
||
$("#visio_import_dlg").dialog({
|
||
width: 400,
|
||
height: 200,
|
||
buttons:[
|
||
{text:'导入',cls:"blue",handler:function(){
|
||
importVisio();
|
||
}},
|
||
{text:'取消',handler:function(){$("#visio_import_dlg").dialog("close");}}
|
||
]
|
||
});
|
||
}
|
||
//初始化visio导入的fileupload组件
|
||
function initVisioImportFileUpload() {
|
||
$("#visio_import_upfile").upfile({
|
||
sid:$("#sid").val(),
|
||
appId:"com.actionsoft.apps.coe.pal",
|
||
groupValue:"_import",
|
||
fileValue:"Normal",
|
||
filesToFilter : [[]],
|
||
repositoryName:"tmp",
|
||
numLimit:1,
|
||
add: function(e, data) {
|
||
var filename = data['files'][0].name;
|
||
var suffix = filename.substring(filename.lastIndexOf("."));
|
||
if (suffix != ".vsd" && suffix != ".vdx" && suffix != ".vsdx") {
|
||
$.simpleAlert("请上传后缀为vsd、vdx或者vsdx格式的visio文件", "warning");
|
||
return false;
|
||
}
|
||
},
|
||
done:function(e, data){
|
||
var filename = data['result']['files']['name'];
|
||
filename = decodeURI(filename);
|
||
$("#visio_import_input").val(filename);
|
||
$.mask();
|
||
}
|
||
});
|
||
}
|
||
|
||
//visio导入-执行导入
|
||
function importVisio() {
|
||
if ($("#visio_import_input").val() == null || $("#visio_import_input").val() == "") {
|
||
$.simpleAlert("请先上传文件", "warning");
|
||
return;
|
||
}
|
||
$.simpleAlert("正在处理", "loading");
|
||
$.ajax({
|
||
type: "POST",
|
||
url: "./jd",
|
||
data : {
|
||
sid: sid,
|
||
cmd: "com.actionsoft.apps.coe.pal.processon_designer_import_visio",
|
||
wsId: $("#wsId").val(),
|
||
plId: ruuid,
|
||
fileName: $("#visio_import_input").val()
|
||
},
|
||
success: function(msg){
|
||
if (msg.result == "ok") {
|
||
$.simpleAlert("close");
|
||
$.simpleAlert("导入成功", "ok");
|
||
setTimeout(function(){
|
||
parent.refresh();
|
||
$("#visio_import_dlg").dialog("close");
|
||
window.location.reload();
|
||
}, 1000);
|
||
|
||
} else {
|
||
$.simpleAlert("close");
|
||
$.simpleAlert("导入失败," + msg.msg, "error");
|
||
}
|
||
}
|
||
})
|
||
}
|
||
|
||
function writeLinksHistory(table_id, data) {
|
||
var html = "";
|
||
// 列出所有的链接
|
||
for (var k = 0; k < data.length; k++) {
|
||
var ele = data[k];
|
||
var strTarget = "0";
|
||
var name_qtip = ele.name;
|
||
var url_qtip = ele.value;
|
||
var typeBlank = "新窗口";
|
||
if (ele.target == "_seft") {
|
||
typeBlank = "当前窗口";
|
||
} else if (ele.target == "newTab") {
|
||
typeBlank = "新页签";
|
||
}
|
||
var con = '<tr class="links_history_tr"><td>'
|
||
+ '<div style="text-align:left;width:110px;;text-overflow:ellipsis;overflow: hidden;white-space: nowrap;" class="awsui-qtip" awsui-qtip="'
|
||
+ name_qtip
|
||
+ '">'
|
||
+ ele.name
|
||
+ '</div>'
|
||
+ '</td><td><span style="float:left;margin-left:0px;text-align:left;"><a target="'
|
||
+ ele.target
|
||
+ '" onclick="openLinkUrlRewrite(\''
|
||
+ ele.type
|
||
+ '\',\''
|
||
+ ele.url
|
||
+ '\',\''
|
||
+ strTarget
|
||
+ '\',\''
|
||
+ ele.uuid
|
||
+ '\',this,\''
|
||
+ ele.name
|
||
+ '\')">'
|
||
+ '<div style="width:110px;;text-overflow:ellipsis;overflow: hidden;white-space: nowrap;" class="awsui-qtip" awsui-qtip="'
|
||
+ url_qtip
|
||
+ '">'
|
||
+ ele.value
|
||
+ '</div>'
|
||
+ '</a></span></td>'
|
||
+ '<td><div >'
|
||
+ typeBlank
|
||
+ '</div></td>'
|
||
+ '<td><span style="float:center;" vl="'
|
||
+ ele.url
|
||
+ '" onclick="removeLinkHistoryByLink(this)">删除</span></td></tr>';
|
||
html += con;
|
||
}
|
||
$("#" + table_id).html(html);
|
||
setDivHeight();
|
||
}
|
||
|
||
/**
|
||
* 设置连接
|
||
*
|
||
* @param {}
|
||
* type
|
||
* @param {}
|
||
* url
|
||
* @param {}
|
||
* target
|
||
* @param {}
|
||
* uuid
|
||
*/
|
||
function editLinkTargetType(obj) {
|
||
var target = $(obj).parent().siblings().find("a").attr("target");
|
||
$(obj).hide().siblings().show().find("select option[value='" + target
|
||
+ "']").attr("selected", "true");
|
||
}
|
||
|
||
// 打开链接,如果是自定义链接,直接打开;如果是文件链接,
|
||
function openLinkUrl(type, url, target, uuid, obj) {
|
||
if (target == "0") {
|
||
target = $(obj).attr("target");
|
||
}
|
||
if (type == "custom") {
|
||
$("#link-dialog-normal_contextmenu").hide();
|
||
window.open(url, target);
|
||
} else {
|
||
$.ajax({
|
||
async : false,
|
||
url : encodeURI("./w?sid=" + sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_using_plid_query&uuid=" + uuid),
|
||
success : function(data) {
|
||
if (data != "") {
|
||
url = "./w?sid="
|
||
+ sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer&uuid="
|
||
+ data + "&openType=0&perms=" + perms + "&filePerms=" + filePerms;
|
||
$("#link-dialog-normal_contextmenu").hide();
|
||
window.open(url, target);
|
||
} else {
|
||
$.simpleAlert("链接文件已被删除", "info");
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
|
||
function openLinkUrlRewrite(type, url, target, uuid, obj, fileName, inspected) {
|
||
var sid=$("#sid").val();
|
||
if (target == "0") {
|
||
target = $(obj).attr("target");
|
||
}
|
||
if (type == "custom") {
|
||
$("#link-dialog-normal_contextmenu").hide();
|
||
if (target == "newTab" && parent.openTabCustom != undefined) {
|
||
parent.openTabCustom(uuid, url, fileName);
|
||
} else if (target == "_seft") {
|
||
if (parent.changeTabTitle) {
|
||
parent.changeTabTitle(chartId, fileName, uuid, "custom");
|
||
}
|
||
window.location.href = url;
|
||
} else {
|
||
window.open(url+sid, target);
|
||
}
|
||
} else {
|
||
if (inspected) { //已经进行过权限判断,不需要再判断
|
||
openFileLink(uuid, target, fileName);
|
||
} else {
|
||
var openerAppId = parent.window.$("#appId").val();
|
||
var params = {
|
||
sid : $("#sid").val(),
|
||
cmd: "com.actionsoft.apps.coe.pal_pl_repository_designer_viewer_link_perm",
|
||
uuids: uuid,
|
||
filePerms: filePerms
|
||
}
|
||
if (window.opener) {
|
||
params.modelType = "used";
|
||
} else if (openerAppId != undefined && openerAppId != "com.actionsoft.apps.coe.pal" && openerAppId != "") {
|
||
params.modelType = "published";
|
||
}
|
||
|
||
awsui.ajax.request({
|
||
url : "./jd",
|
||
method : "POST",
|
||
data : params,
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
var data = msg.data.uuids;
|
||
if (data.length > 0) {
|
||
openFileLink(data[0].uuid, target, fileName);
|
||
} else {
|
||
$.simpleAlert("链接文件已被删除", "info");
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
}
|
||
}
|
||
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
function openFileLink(uuid, target, linkModelName) {
|
||
var cmd = "com.actionsoft.apps.coe.pal_pl_repository_designer";
|
||
//如果从流程团队中只读打开,则只读打开链接文件
|
||
if (role == "viewer") {
|
||
cmd = "com.actionsoft.apps.coe.pal_pl_repository_designer_viewer";
|
||
}
|
||
var url = "./w?sid="
|
||
+ sid
|
||
+ "&cmd=" + cmd + "&uuid="
|
||
+ uuid + "&openType=0"
|
||
+ "&perms=" + encodeURIComponent(perms)
|
||
+ "&openAppType=" + openAppType;
|
||
|
||
$("#link-dialog-normal_contextmenu").hide();
|
||
if (target == "newTab" && parent.openDesginerFromAttr != undefined) {
|
||
parent.openDesginerFromAttr(uuid, 0, linkModelName, '', '', false, '');
|
||
} else if (target == "_seft") {
|
||
$("#openNewModelForm").attr("action", url).attr("target", "_self");
|
||
$("#openNewModelForm").submit();
|
||
parent.changeTabTitle(chartId, linkModelName, uuid);
|
||
} else {
|
||
$("#openNewModelForm").attr("action", url);
|
||
$("#openNewModelForm").submit();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 链接确定的鼠标单击事件
|
||
*/
|
||
UI.setLink = function() {
|
||
var addrName;
|
||
var addrLink;
|
||
var newLink;// 121
|
||
// var linkto_addr_name =document.getElementById("linkto_addr_name").value;
|
||
var linkType = $("#link_dialog div.awsui-simple-tab").find("a.active").attr("tit");
|
||
if (linkType == "custom") {
|
||
addrName = trimSpaces($("#linkto_addr_name")[0].value);
|
||
addrLink = trimSpaces($("#linkto_addr").val());
|
||
if (addrName == "") {
|
||
$.simpleAlert("[链接名称]不允许为空", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
if (addrLink == "") {
|
||
$.simpleAlert("[链接地址]不允许为空", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
if (addrName.length > 30) {
|
||
$.simpleAlert("[链接名称]不允许超过30个字符", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
// 判断url是否合法
|
||
/***********************************************************************
|
||
* var strRegex = "^((https|http|ftp|rtsp|mms)?://)" +
|
||
* "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //
|
||
* ftp的user@ + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL-
|
||
* 199.194.52.184 + "|" // 允许IP和DOMAIN(域名) + "([0-9a-z_!~*'()-]+\.)*" //
|
||
* 域名- www. + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 +
|
||
* "[a-z]{2,6})" // first level domain- .com or .museum +
|
||
* "(:[0-9]{1,4})?" // 端口- :80 + "((/?)|" // a slash isn't required if
|
||
* there is no file name + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
|
||
**********************************************************************/
|
||
var tomatch = /(http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3})|([A-Za-z0-9\.-]{3,}\.[A-Za-z0-9]{3,})/;
|
||
// var re = new RegExp(strRegex);
|
||
newLink = $("#linkto_addr").val();
|
||
if (addrLink.substring(0, 16) == "./w?sid=@sid&cmd"
|
||
|| addrLink.substring(0, 17) == "./jd?sid=@sid&cmd"
|
||
|| addrLink.substring(0, 17) == "./xd?sid=@sid&cmd"
|
||
|| addrLink.substring(0, 17) == "./df?sid=@sid&cmd"
|
||
|| addrLink.substring(0, 17) == "./uf?sid=@sid&cmd") {
|
||
if (newLink.indexOf("sid") > 0) {
|
||
newLink = newLink.replace("@sid", sid);
|
||
}
|
||
} else if (!tomatch.test(addrLink)) {
|
||
$.simpleAlert("链接地址不合法", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
} else if (newLink.indexOf("http") == -1
|
||
&& newLink.indexOf("sid") == -1) {
|
||
newLink = "http://" + newLink;
|
||
}
|
||
} else {
|
||
addrName = trimSpaces($("#linkto_file_name").val());
|
||
addrLink = trimSpaces($("#linkto_file").val());
|
||
if (addrName == "") {
|
||
$.simpleAlert("[链接名称]不允许为空", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
if (addrName.length > 30) {
|
||
$.simpleAlert("[链接名称]不允许超过30个字符", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
if (addrLink == "") {
|
||
$.simpleAlert("[链接文件]不允许为空", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
newLink = $("#linkto_file").val();
|
||
}
|
||
var shape = Utils.getSelected()[0];
|
||
if (linkType != "custom") {
|
||
//选择文件链接时,将节点名称改为所链接的文件名称
|
||
//shape.text = trimSpaces($("#linkto_file_name").val());
|
||
}
|
||
myshapeLink = shape;
|
||
var linkArr = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
linkArr = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
if (!isArray(linkArr)) {
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
linkArr = [];
|
||
break;
|
||
}
|
||
}
|
||
// shape.linksArray = new Array();
|
||
}
|
||
var uuid = new Date().getTime() + "";
|
||
var url = linkType == "custom"
|
||
? $("#linkto_addr").val()
|
||
: $("#linkto_file").attr("url");
|
||
|
||
if (!checkLink(url)) {
|
||
if (linkType == "custom") {
|
||
$("#linksHistoryDiv").show();
|
||
shape.link = $("#linkto_addr").val();
|
||
url = newLink;
|
||
} else {
|
||
$("#linksFileHistoryDiv").show();
|
||
shape.link = $("#linkto_file").val();
|
||
uuid = $("#linkto_file").attr("uuid");
|
||
url = $("#linkto_file").attr("url");
|
||
}
|
||
var divObj = $("div[tit='" + linkType + "']");
|
||
var openType = divObj.find("select option:selected").val();
|
||
linksHistoryShowAndAdd(shape, addrName, newLink, openType, uuid, url);
|
||
} else {
|
||
$.simpleAlert("链接已存在 ", "info", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
}
|
||
Designer.painter.renderShape(shape);
|
||
};
|
||
|
||
/**
|
||
* 在插入链接的弹窗中动态增加行信息
|
||
*/
|
||
|
||
function linksHistoryShowAndAdd(shape, name, value, target, uuid, url) {
|
||
var linkType = $("#link_dialog div.awsui-simple-tab").find("a.active").attr("tit");
|
||
var json = setCondVal(name, value, target, linkType, uuid, url);
|
||
if (!json) {
|
||
json = JSON.stringify({})
|
||
}
|
||
json = JSON.stringify(json);
|
||
json = eval("(" + json + ")");
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
attr.linksArray.push(json);
|
||
break;
|
||
}
|
||
}
|
||
Model.update(shape);
|
||
var name_qtip = name;
|
||
var url_qtip = value;
|
||
var typeBlank = "新窗口";
|
||
if (target == "_seft") {
|
||
typeBlank = "当前窗口";
|
||
} else if (target == "newTab") {
|
||
typeBlank = "新页签";
|
||
}
|
||
var strTarget = "0";
|
||
var con = '<tr class="links_history_tr">'
|
||
+ ' <td>'
|
||
+ ' <div style="text-align:left;;width:110px;text-overflow:ellipsis;overflow: hidden;white-space: nowrap;" class="awsui-qtip" awsui-qtip="' + name_qtip + '">'
|
||
+ name
|
||
+ ' </div>'
|
||
+ ' </td>'
|
||
+ ' <td>'
|
||
+ ' <span style="float:left;margin-left:0px;text-align:left;">'
|
||
+ ' <a target="' + target + '" onclick="openLinkUrlRewrite(\'' + linkType + '\',\'' + url + '\',\'' + strTarget + '\',\'' + uuid + '\',this,\'' + name + '\')">'
|
||
+ ' <div style="width:110px;;text-overflow:ellipsis;overflow: hidden;white-space: nowrap;" class="awsui-qtip" awsui-qtip="' + url_qtip + '">'
|
||
+ value
|
||
+ ' </div>'
|
||
+ ' </a>'
|
||
+ ' </span>'
|
||
+ ' </td>'
|
||
+ ' <td>'
|
||
+ ' <div>' + typeBlank + '</div>'
|
||
+ ' </td>'
|
||
+ ' <td>'
|
||
+ ' <span style="float:center;" vl="' + url + '" onclick="removeLinkHistoryByLink(this)">删除</span>'
|
||
+ ' </td>'
|
||
+ '</tr>';
|
||
|
||
if (linkType == "custom") {
|
||
$("#linksHistory").append(con);
|
||
} else {
|
||
$("#linksFileHistory").append(con);
|
||
}
|
||
var hieghtH = $("#linksHistory").height();
|
||
var hieghtHF = $("#linksFileHistory").height();
|
||
if (hieghtH < 200 || hieghtHF < 200) {
|
||
$("#linksHistory").css({
|
||
"overflow-y" : "hidden",
|
||
"overflow-x" : "hidden"
|
||
});
|
||
$("#linksFileHistory").css({
|
||
"overflow-y" : "hidden",
|
||
"overflow-x" : "hidden"
|
||
});
|
||
}
|
||
if (myshapeLink.category == "process_bpmn2") {
|
||
$.simpleAlert("添加成功", "ok", 2000);
|
||
} else {
|
||
$.simpleAlert("添加成功", "ok", 2000);
|
||
}
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
$("#linkto_addr_name").val("");
|
||
$("#linkto_addr").val("");
|
||
$("#linkto_file_name").val("");
|
||
$("#linkto_file").val("");
|
||
setDivHeight();
|
||
}
|
||
|
||
function setCondVal(name, value, target, linkType, uuid, url) {
|
||
var json = {
|
||
name : name,
|
||
value : value,
|
||
target : target,
|
||
type : linkType,
|
||
uuid : uuid,
|
||
url : url
|
||
};
|
||
return json
|
||
}
|
||
|
||
/**
|
||
* 设置链接打开的方式
|
||
*/
|
||
|
||
function setLinkTargetType(obj) {
|
||
var url = $(obj).attr("vl");
|
||
var value = $(obj).find("option:selected").val();
|
||
var shape = Utils.getSelected()[0];
|
||
var linksArray = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
linksArray = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
var arr = [];
|
||
for (var a = 0; a < linksArray.length; a++) {
|
||
var el = linksArray[a];
|
||
if (el.url == url)
|
||
el.target = value;
|
||
arr.push(el);
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
attr.linksArray = arr;
|
||
break;
|
||
}
|
||
}
|
||
|
||
$(obj).parent().parent().prev().find("a").attr("target", value);
|
||
var els = $(obj).parent().find("a");
|
||
Model.update(shape);
|
||
// $(obj).hide();
|
||
$(obj).parent().hide().siblings().show().text($(obj)
|
||
.find("option:selected").text());
|
||
}
|
||
// 判断给定的对象是不是数组
|
||
|
||
function isArray(o) {
|
||
return Object.prototype.toString.call(o) === '[object Array]';
|
||
}
|
||
|
||
/**
|
||
* 链接的单击事件
|
||
*
|
||
* @param {}
|
||
* obj
|
||
* @returns {}
|
||
*/
|
||
|
||
function openLink(obj) {
|
||
var shape = Utils.getSelected()[0];
|
||
myshapeLink = shape;
|
||
if (shape != undefined) {
|
||
var x = shape.props['x'];
|
||
var y = shape.props['y'];
|
||
var menu = $("#link-dialog-normal_contextmenu");
|
||
menu.empty();
|
||
var linksArr = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
linksArr = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
if (linksArr.length == 1) {
|
||
openLinkUrlRewrite(linksArr[0].type, linksArr[0].url,
|
||
linksArr[0].target, linksArr[0].uuid, '', linksArr[0].name);
|
||
} else {
|
||
var tempA = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
tempA = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < tempA.length; index++) {
|
||
linkIndex++;
|
||
var array_element = tempA[index];
|
||
var content = '<li id="linkLi_' + linkIndex
|
||
+ '" ac="cut"><a target="' + array_element.target
|
||
+ '" onclick="openLinkUrlRewrite(\''
|
||
+ array_element.type + '\',\'' + array_element.url
|
||
+ '\',\'' + array_element.target + '\',\''
|
||
+ array_element.uuid + '\',\''
|
||
'\',\''
|
||
+ array_element.name
|
||
+ '\')">'
|
||
+ array_element.name
|
||
+ '</a><div class="extend" style="cursor:pointer;color:#4183C4;" ><div onclick="deleteTheLinkNode(\''
|
||
+ array_element.url + '\',\'' + linkIndex
|
||
+ '\')">删除</div></div></li>';
|
||
menu.append(content);
|
||
}
|
||
}
|
||
var currentFocus = Utils.getShapeByPosition(x, y, false);
|
||
// menu.children().hide();
|
||
var clipLen = Designer.clipboard.elements.length;
|
||
if (currentFocus == null) {
|
||
// 画布
|
||
if (clipLen > 0) {
|
||
menu.children("li[ac=paste]").show();
|
||
menu.children(".devi_clip").show();
|
||
}
|
||
} else {
|
||
var shape = currentFocus.shape;
|
||
menu.children("li[ac=cut]").show();
|
||
}
|
||
menu.css({
|
||
display : "block",
|
||
"z-index" : Model.orderList.length + 3,
|
||
left : x,
|
||
top : y
|
||
});
|
||
$(document)
|
||
.on(
|
||
"mousedown.link",
|
||
":not(#link-dialog-normal_contextmenu li):not(#link-dialog-normal_contextmenu ul):not(#link-dialog-normal_contextmenu a):not(#link-dialog-normal_contextmenu div)",
|
||
function(e) {
|
||
if (this.id == "link-dialog-normal_contextmenu") {
|
||
// e.stoppropagation();
|
||
return false;
|
||
}
|
||
menu.hide();
|
||
});
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 插入链接时的重复行检查
|
||
*
|
||
* @param {}
|
||
* str
|
||
* @returns {}
|
||
*/
|
||
|
||
function checkLink(str) {
|
||
var shape = Utils.getSelected()[0];
|
||
var linkArr = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
linkArr = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
var flag = false;
|
||
for (var index = 0; index < linkArr.length; index++) {
|
||
var ele = linkArr[index];
|
||
if (ele.url == str) {
|
||
flag = true;
|
||
break;
|
||
}
|
||
}
|
||
return flag;
|
||
}
|
||
// 隐藏链接重复提示
|
||
|
||
function removerWarning() {
|
||
$("#warningContent").text("");
|
||
}
|
||
// 删除所选 链接
|
||
|
||
function deleteTheLinkNode(str, index) {
|
||
window.top.$.mask();
|
||
var options = {
|
||
title : "提示",
|
||
content : "确定删除所选链接吗?",
|
||
model : false,
|
||
onConfirm : function() {
|
||
var arr = myshapeLink.linksArray;
|
||
for (var i = 0; i < myshapeLink.dataAttributes.length; i++) {
|
||
var attr = myshapeLink.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
arr = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
arr.remove(arr.getIndexByValue(str));
|
||
for (var i = 0; i < myshapeLink.dataAttributes.length; i++) {
|
||
var attr = myshapeLink.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
attr.linksArray = arr;
|
||
break;
|
||
}
|
||
}
|
||
if (arr.length == 0) {
|
||
myshapeLink.link = "";
|
||
}
|
||
Designer.painter.renderShape(myshapeLink);
|
||
Model.update(myshapeLink);
|
||
$("#linkLi_" + index).remove();
|
||
$.simpleAlert("删除成功", "ok", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
window.top.$.mask("close");
|
||
},
|
||
onCancel : function() {
|
||
window.top.$.mask("close");
|
||
},
|
||
onClose : function() {
|
||
window.top.$.mask("close");
|
||
}
|
||
};
|
||
window.top.$.confirm(options);
|
||
}
|
||
|
||
function removeLinkHistoryByLink(obj) {
|
||
var linkType = $("#link_dialog div.awsui-simple-tab").find("a.active").attr("tit");
|
||
window.top.$.mask();
|
||
myshapeLink = Utils.getSelected()[0]
|
||
var options = {
|
||
title : "提示",
|
||
content : "确定删除所选链接吗?",
|
||
model : false,
|
||
onConfirm : function() {
|
||
var arr = myshapeLink.linksArray;
|
||
for (var i = 0; i < myshapeLink.dataAttributes.length; i++) {
|
||
var attr = myshapeLink.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
arr = attr.linksArray;
|
||
break;
|
||
}
|
||
}
|
||
arr.remove(arr.getIndexByValue($(obj).attr("vl")));
|
||
for (var i = 0; i < myshapeLink.dataAttributes.length; i++) {
|
||
var attr = myshapeLink.dataAttributes[i];
|
||
if (attr.linksArray) {
|
||
attr.linksArray = arr;
|
||
break;
|
||
}
|
||
}
|
||
if (arr.length == 0) {
|
||
myshapeLink.link = "";
|
||
}
|
||
Model.update(myshapeLink);
|
||
Designer.painter.renderShape(myshapeLink);
|
||
$(obj).parent().parent().remove();
|
||
if (linkType == "custom") {
|
||
if ($.trim($("#linksHistoryDiv").text()).length == 0)
|
||
$("#linksHistoryDiv").hide();
|
||
} else {
|
||
if ($.trim($("#linksFileHistoryDiv").text()).length == 0)
|
||
$("#linksFileHistoryDiv").hide();
|
||
}
|
||
if (myshapeLink.category == "process_bpmn2") {
|
||
$.simpleAlert("删除成功", "ok", 2000);
|
||
} else {
|
||
$.simpleAlert("删除成功", "ok", 2000);
|
||
}
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
window.top.$.mask("close");
|
||
},
|
||
onCancel : function() {
|
||
window.top.$.mask("close");
|
||
},
|
||
onClose : function() {
|
||
window.top.$.mask("close");
|
||
}
|
||
};
|
||
window.top.$.confirm(options);
|
||
|
||
}
|
||
// 显示链接历史的删除
|
||
|
||
function showRemoveTrLinkHistory(obj) {
|
||
$(obj).children("td").children("span::contains('删除')").show();
|
||
$(obj).children("td").children("span").children("select").show();
|
||
}
|
||
// 隐藏链接历史的删除按钮
|
||
|
||
function hideRemoveTrLinkHistory(obj) {
|
||
$(obj).children("td").children("span::contains('删除')").hide();
|
||
}
|
||
|
||
function showLinkTree() {
|
||
var dlg=FrmDialog.open({
|
||
width:320,
|
||
height:380,
|
||
url:"./w?sid=" + $("#sid").val()
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_link_tree&wsid="
|
||
+ $("#wsId").val() + "&palId=" + ruuid,
|
||
id:"link_tree_iframe",
|
||
buttons:[
|
||
{
|
||
text:'确定',
|
||
cls:"blue",
|
||
handler:function(){
|
||
var selectNode = window.frames[dlg.name()].getSelectTreeNode();
|
||
if (selectNode) {
|
||
getLinkFileValue(selectNode);
|
||
dlg.close();
|
||
}
|
||
}
|
||
},
|
||
{
|
||
text:'取消',
|
||
handler:function(){
|
||
dlg.close();
|
||
}
|
||
}
|
||
]
|
||
});
|
||
|
||
}
|
||
|
||
// 点击链接树后,为文件链接赋值
|
||
function getLinkFileValue(treeNode) {
|
||
if ($("#linkto_file_name").val() == "") {
|
||
$("#linkto_file_name").val(treeNode.name);
|
||
}
|
||
$("#linkto_file").val(treeNode.name);
|
||
$("#linkto_file").attr("uuid", treeNode.id);
|
||
var url = "./w?sid=" + sid + "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer&uuid="
|
||
+ treeNode.id + "&openType=0&perms=" + encodeURIComponent(perms) + "&filePerms=" + encodeURIComponent(filePerms);
|
||
$("#linkto_file").attr("url", url);
|
||
}
|
||
|
||
// 数属性tab页面效果js
|
||
|
||
function selectAttrTabTag2(showContent, selfObj) {
|
||
// 操作标签
|
||
var tag = $("#tabUlContainer li");
|
||
var taglength = tag.length;
|
||
for (var i = 0; i < taglength; i++) {
|
||
tag[i].className = "";
|
||
}
|
||
selfObj.parentNode.className = "selectTag";
|
||
// 操作内容
|
||
for (i = 0; j = document.getElementById("tagContent" + i); i++) {
|
||
j.style.display = "none";
|
||
}
|
||
document.getElementById(showContent).style.display = "block";
|
||
// 操作选中的tab页的内容
|
||
// 拿 到选中的model对象
|
||
var shape = Utils.getSelected()[0];
|
||
if (shape) {
|
||
showShapeRelationTab(null);
|
||
attributeShowTabContent(null);
|
||
shapeCopyAndPasteCount(shape);
|
||
showRelevanceShapesContent();
|
||
}
|
||
if ($("#tagContent0").is(":visible") || $("#tagContent2").is(":visible")
|
||
|| $("#tagContent3").is(":visible")) {
|
||
$("#showMoreAttrUL").hide();
|
||
} else {
|
||
$("#showMoreAttrUL").show();
|
||
$("#upfile").show();
|
||
$("#relevanceShapes").hide();
|
||
}
|
||
if (showContent != "tagContent1") {
|
||
$("#upfile").hide();
|
||
$("#showMoreAttrUL").hide();
|
||
}
|
||
if (showContent == "tagContent3") {
|
||
$("#relevanceShapes").show();
|
||
} else {
|
||
$("#relevanceShapes").hide();
|
||
}
|
||
if(role == "viewer") {
|
||
$("#dock_page_attribute table input").prop("disabled", true);
|
||
$("#tagContent1 table input, #tagContent1 table textarea").prop("disabled", true);
|
||
}
|
||
}
|
||
|
||
// 出现复制图形的统计
|
||
|
||
function shapeCopyAndPasteCount(shape) {
|
||
if (!$("#tagContent2").is(":visible")) {
|
||
return;
|
||
}
|
||
if (shape == null)
|
||
shape = Utils.getSelected()[0];
|
||
$("#tagContentTableTitleContent2").empty();
|
||
var shapeGroupId = "";
|
||
var isCopy = "";
|
||
var shapeId = shape.id;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.shapeGroupId) {
|
||
shapeGroupId = attr.shapeGroupId;
|
||
isCopy = attr.isCopy;
|
||
break;
|
||
}
|
||
}
|
||
var data = "shapeGroupId=" + shapeGroupId + "&shapeId=" + shapeId
|
||
+ "&isCopy=" + isCopy;
|
||
/*$.ajax({
|
||
type : "POST",
|
||
url : "./w?sid=" + CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_count",
|
||
data : data,
|
||
success : function(data) {
|
||
var msg = eval("(" + data + ")");
|
||
if (msg.data.result == "ok") {
|
||
var list = msg.data.list;
|
||
for (var i = 0; i < list.length; i++) {
|
||
var json = list[i];
|
||
if (json.palRepositoryId == chartId) {
|
||
continue;
|
||
}
|
||
var onclick = "";
|
||
var style = "";
|
||
if (editable) {
|
||
onclick = 'parent.openDesginerFromAttr(\''
|
||
+ json.palRepositoryId
|
||
+ '\',0,\''
|
||
+ json.fileName
|
||
+ '\',\'\',\'\',false,\''
|
||
+ json.shapeId
|
||
+ '\')';
|
||
style = "cursor:pointer;color:blue;";
|
||
}
|
||
var content = '<tr class="tagContentTableTr"><td style="' + style + '" onclick="' + onclick + '">'
|
||
+ json.fileName
|
||
+ ' ('
|
||
+ json.ver
|
||
+ ')</td><td >' + json.type + '</td></tr>';
|
||
$("#tagContentTableTitleContent2").append(content);
|
||
}
|
||
}
|
||
}
|
||
});*/
|
||
}
|
||
|
||
function showRelevanceShapesContent() {
|
||
if (!$("#tagContent3").is(":visible")) {
|
||
return;
|
||
}
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_relevance_show",
|
||
data : {
|
||
shapeId : Utils.getSelected()[0].id,
|
||
fileId: ruuid
|
||
},
|
||
success : function(msg) {
|
||
$("#tagContentTableTitleContent3").empty();
|
||
if (msg.data.result == "ok") {
|
||
var shapesObj = msg.data.list;
|
||
var mouseover = "onmouseout=\"hideRemoveTrAttribute(this);\"";
|
||
var mouseout = "onmouseover=\"showRemoveTrAttribute(this);\"";
|
||
if (role == "viewer") {
|
||
mouseover = "";
|
||
mouseout = "";
|
||
}
|
||
for (var i = 0; i < shapesObj.length; i++) {
|
||
var style = "";
|
||
var onclick = "";
|
||
if (editable || filePerms == "-" || filePerms.indexOf(shapesObj[i].fileVersionId) > -1) {
|
||
style = "cursor:pointer;color:blue;";
|
||
if (parent.openDesginerFromAttr) {
|
||
onclick = 'parent.openDesginerFromAttr(\''
|
||
+ shapesObj[i].fileId
|
||
+ '\',0,\''
|
||
+ shapesObj[i].fileName
|
||
+ '\',\'\',\'\',false,\''
|
||
+ shapesObj[i].shapeId
|
||
+ '\')';
|
||
} else if (window.opener.openDesginer) {
|
||
var obj = {
|
||
id: shapesObj[i].fileId,
|
||
processDefId: ''
|
||
}
|
||
onclick = 'window.opener.openDesginer({id:\'' + shapesObj[i].fileId + '\', processDefId:\'\'})';
|
||
}else if (parent.openLinkUrl){
|
||
if (shapesObj[i].url){
|
||
onclick = 'parent.openLinkUrl(\'custom\',\''
|
||
+ shapesObj[i].url
|
||
+ '\',0,\''
|
||
+ shapesObj[i].fileId
|
||
+ '\',\'this\')';
|
||
}else {
|
||
onclick = 'noPermissionMsg()';
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
var content = '<tr ' + mouseout + mouseover + ' objid="'
|
||
+ shapesObj[i].id
|
||
+ '" class="tagContentTableTr"><td style="' + style + '" onclick="' + onclick + '">'
|
||
+ '<div style="line-height:22px;height:22px;overflow:hidden;" class="attribute_td_div_css">'
|
||
+ shapesObj[i].fileName
|
||
+ '(V ' + shapesObj[i].fileVersion + '.0)'
|
||
+ '</div>'
|
||
+ '</td><td><div style="line-height:22px;height:22px;overflow:hidden;" class="attribute_td_div_css">'
|
||
+ shapesObj[i].shapeText
|
||
+ '</div></td></tr>';
|
||
|
||
$("#tagContentTableTitleContent3").append(content);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
|
||
}
|
||
function noPermissionMsg(){
|
||
$.simpleAlert("暂无该模型权限","warning",1500);
|
||
}
|
||
|
||
// 属性的动态切换
|
||
|
||
function attributeShowTabContent(currentShape) {
|
||
|
||
// 属性弹出层显示的内容
|
||
var shape = Utils.getSelected()[0];
|
||
if (!shape) {
|
||
return;
|
||
}
|
||
if (currentShape) {
|
||
shape = currentShape
|
||
}
|
||
if (shape.name === "linker") {
|
||
$(".clearfix").hide();
|
||
} else {
|
||
$(".clearfix").show();
|
||
}
|
||
var attributesJsonArray = "";
|
||
$("#tagContentTable0").empty();
|
||
var currentAttributesJsonArray = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
currentAttributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
if (shape && currentAttributesJsonArray) {
|
||
|
||
selectShape = shape;
|
||
// 参见 这个js中的Designer.events.addEventListener("created", function(a)
|
||
// {}函数,改为图形创建时增加私有属性
|
||
attributesJsonArray = currentAttributesJsonArray;
|
||
if (shape.name === "linker") {
|
||
$("#attribute_name_td_content").html("连线");
|
||
} else {
|
||
$("#attribute_name_td_content").html(shape.title);
|
||
}
|
||
if (shape.text == "") {
|
||
$("span[name=attribute_desc_input]").text(shape.title);
|
||
} else {
|
||
if (shape.text.length > 15) {
|
||
var tempText = shape.text;
|
||
tempText = tempText.substring(0, 15)
|
||
$("span[name=attribute_desc_input]").text(shape.text).attr(
|
||
"awsui-qtip", shape.text);
|
||
} else {
|
||
$("span[name=attribute_desc_input]").text(shape.text);
|
||
}
|
||
}
|
||
// 此处遍历attributesJsonArray输入 内容
|
||
if (attributesJsonArray.length != 0) {
|
||
getPrivateAttributeHtml(attributesJsonArray, "tagContentTable0", shape);
|
||
}
|
||
} else {
|
||
if (shape.name === "linker") {
|
||
$("#attribute_name_td_content").html("连线");
|
||
} else {
|
||
$("#attribute_name_td_content").html(shape.title);
|
||
}
|
||
if (shape.text.length > 15) {
|
||
var tempText = shape.text;
|
||
tempText = tempText.substring(0, 15)
|
||
$("span[name=attribute_desc_input]").text(shape.text).attr(
|
||
"awsui-qtip", shape.text);
|
||
} else {
|
||
$("span[name=attribute_desc_input]").text(shape.text);
|
||
}
|
||
// $("#attribute_name_td_desc").val(shape.shapeDesc);
|
||
}
|
||
$("#dock_content_attribute").show();
|
||
$("#attr_no_more_attribute_id").hide();
|
||
$("#dock_view_header_title").html("数据属性");
|
||
}
|
||
|
||
// var dialogTableList = []
|
||
var tableObj = {}
|
||
var curTableId = ''
|
||
function getPrivateAttributeHtml(attributesJsonArray, tbodyId, shape) {
|
||
debugger;
|
||
// 属性排序
|
||
var defaultMoreAttr = $('#defaultMoreAttrSort').val();
|
||
if (shape.category != undefined) {
|
||
var category = shape.category.replace("_", ".");
|
||
if("bpmn"==category) {
|
||
category = "process.bpmn2";
|
||
}
|
||
if (defaultMoreAttr.length == 0) {
|
||
attributesJsonArray = [];
|
||
}
|
||
if(methodId === category) {
|
||
var arr = defaultMoreAttr.split('|');
|
||
var tempAttrArray = [];
|
||
for(var i = 0; i < arr.length; i++) {
|
||
for(var j = 0; j < attributesJsonArray.length; j++) {
|
||
if(attributesJsonArray[j] == undefined || attributesJsonArray[j] == null) {
|
||
continue;
|
||
}
|
||
if(arr[i] == attributesJsonArray[j].id) {
|
||
tempAttrArray.push(attributesJsonArray[j]);
|
||
}
|
||
}
|
||
}
|
||
attributesJsonArray = tempAttrArray;
|
||
}
|
||
}
|
||
var flag = false;
|
||
var awsOrg = false;
|
||
var awsObjIds = [];
|
||
var objIds = [];
|
||
var selectFlag = false;
|
||
var selectValues = [];
|
||
var booleanFlag = false;
|
||
var booleanValues = [];
|
||
var mouseover = "onmouseout=\"hideRemoveTrAttribute(this);\"";
|
||
var mouseout = "onmouseover=\"showRemoveTrAttribute(this);\"";
|
||
if (role == "viewer") {
|
||
mouseover = "";
|
||
mouseout = "";
|
||
}
|
||
$("#" + tbodyId).empty();
|
||
for (var index = 0; index < attributesJsonArray.length; index++) {
|
||
var obj = attributesJsonArray[index];
|
||
if (obj != null && obj != undefined && obj.value != undefined) {
|
||
var objName = obj.name;
|
||
var objType = obj.type;
|
||
var objReadonly = obj.readonly;
|
||
var objRequired = obj.required;
|
||
if (attrDefineObj[obj.id]) {
|
||
var attr = attrDefineObj[obj.id];
|
||
objName = attr.name;
|
||
objType = attr.type;
|
||
objReadonly = attr.readonly;
|
||
objRequired = attr.readonly;
|
||
}
|
||
var requiredSpan = ''
|
||
if(obj.isRequired !== null && obj.isRequired) {
|
||
requiredSpan = '<span style="color: #f04134;float:right">*</span>'
|
||
}
|
||
|
||
var isdesc=obj.desc==undefined?"":obj.desc;
|
||
var constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td>'
|
||
+ ' <div class="attribute_td_div_css">' + obj.value + '</div>'
|
||
+ ' </td></tr>';
|
||
if ((!objReadonly && objType == "string") || (!objReadonly && objType == "list") || (!objReadonly && objType == "link")) {
|
||
// 目前支持到文本的输入 ,需求定下了再改
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ ' <input placeholder="' + isdesc + '" objid="' + obj.id + '" class="attribute_input_css" name="attribute_name_input_' + obj.id + '" value="' + obj.value + '" onblur="saveInputContent(this,' + JSON.stringify(obj).replace(/\"/g,"'") +');" onclick="showEditButton(this);" data-shapeId="' + shape.id + '"/>'
|
||
+ ' </td></tr>';
|
||
} else if (!objReadonly && objType == "number") {
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ ' <input placeholder="' + isdesc + '" inputType="number" objid="' + obj.id + '" class="attribute_input_css" name="attribute_name_input_' + obj.id + '" value="' + obj.value + '" onblur="saveInputContent(this,' + JSON.stringify(obj).replace(/\"/g,"'") +');" data-shapeId="' + shape.id + '"/>'
|
||
//+ ' <div objid="' + obj.id + '" onclick="removeTrAttribute(this)" id= "ico_attribute_delete_"' + obj.id + ' class="ico_attribute_delete"></div>'
|
||
+ '</td></tr>';
|
||
} else if (!objReadonly && objType == "boolean") {
|
||
booleanFlag = true;
|
||
var booleanValue = { "objId" : obj.id,
|
||
"objValue" : obj.value,
|
||
"objOptions" : obj.ref,
|
||
"objType": objType};
|
||
booleanValues.push(booleanValue);
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ '<select id="attribute_name_input_' + obj.id+ '" style="width:244px;"></select>'
|
||
/*+ ' <input inputType="select" objid="' + obj.id + '" name="attribute_name_input_' + obj.id + '" onblur="saveInputContent(this);" '
|
||
+ ' id="attribute_name_input_' + obj.id + '" class="awsui-combobox" value=""></input>'*/
|
||
|
||
//+ ' <div objid="' + obj.id + '" onclick="removeTrAttribute(this)" id= "ico_attribute_delete_"' + obj.id + ' class="ico_attribute_delete"></div>'
|
||
+ ' </td>'
|
||
+ '</tr>';
|
||
} else if (!objReadonly && objType == "textarea") {
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ '<td>' + objName + requiredSpan + '</td>'
|
||
+ '<td class="tagContentTableTrTd">'
|
||
+ '<textarea placeholder="' + isdesc + '" objid="' + obj.id + '" class="awsui-textarea" style="float:left; width: 95%;" rows="3" name="attribute_name_input_' + obj.id + ' " value="' + obj.value
|
||
+ '" onblur="saveInputContent(this);" onclick="showAttributedEditWindow(this);" data-shapeId="' + shape.id + '">' + obj.value + '</textarea>'
|
||
//+ '<div objid="' + obj.id + '" onclick="removeTrAttribute(this)" id= "ico_attribute_delete_"' + obj.id + ' class="ico_attribute_delete"></div>'
|
||
+ '</td>'
|
||
+ '</tr>';
|
||
} else if (objType == "relation") {
|
||
flag = true;
|
||
// 形状的关联
|
||
objIds.push(obj.id);
|
||
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ ' <input placeholder="' + isdesc+ '" objid="' + obj.id + '" class="attribute_input_css" name="attribute_name_input_' + obj.id + '" value="" scope="' + obj.groupPath + '" onclick="openRelationDig(this,' + JSON.stringify(obj).replace(/\"/g,"'") +');" />'
|
||
+ ' <input placeholder="' + isdesc+ '" ref="" value="' + obj.value + '" style="border:1px solid #ccc;margin-left:-55px;width: 25px;height: 23px;display: none;" objid_shapeId="' + obj.id + '" />'
|
||
+ '</td></tr>';
|
||
|
||
} else if (objType == "select" || objType == "select_m") {
|
||
selectFlag = true;
|
||
var selectValue = { "objId" : obj.id,
|
||
"objValue" : obj.value,
|
||
"objType": objType};
|
||
selectValues.push(selectValue);
|
||
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ '<select id="attribute_name_input_' + obj.id+ '" style="width:244px;"></select>'
|
||
/*+ ' <input inputType="select" objid="' + obj.id + '" name="attribute_name_input_' + obj.id + '" onblur="saveInputContent(this);" '
|
||
+ ' id="attribute_name_input_' + obj.id + '" class="awsui-combobox" value=""></input>'*/
|
||
|
||
//+ ' <div objid="' + obj.id + '" onclick="removeTrAttribute(this)" id= "ico_attribute_delete_"' + obj.id + ' class="ico_attribute_delete"></div>'
|
||
+ ' </td>'
|
||
+ '</tr>';
|
||
} else if (objType == "awsorg") {// 平台组织架构(部门、岗位、人员、角色)
|
||
awsOrg = true;
|
||
awsObjIds.push(obj.id);
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ ' <input placeholder="' + isdesc + '" objid="' + obj.id + '" class="attribute_input_css" name="attribute_name_input_' + obj.id + '" value="" scope="' + obj.groupPath + '" onclick="openOrganizationRelationDig(this,' + JSON.stringify(obj).replace(/\"/g,"'") +');" />'
|
||
+ ' <input placeholder="' + isdesc + '" ref="" value="' + obj.value + '" style="border:1px solid #ccc;margin-left:-55px;width: 25px;height: 23px;display: none;" objid_shapeId="' + obj.id + '" />'
|
||
+ '</td></tr>';
|
||
} else if (objReadonly && objType == "hidden") {
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr" style="display:none;">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ ' <input placeholder="' + isdesc + '" objid="' + obj.id + '" class="attribute_input_css" name="attribute_name_input_' + obj.id + '" value="'+obj.value +'" scope="' + obj.groupPath + '" readonly="'+objReadonly+'" />'
|
||
//+ '<div objid="' + obj.id + '" onclick="removeTrAttribute(this)" id= "ico_attribute_delete_"' + obj.id + ' class="ico_attribute_delete"></div>'
|
||
+ '</td></tr>';
|
||
} else if (!objReadonly && objType == "DateTimePicker") {
|
||
constr = '<tr ' + mouseout + mouseover + ' objid="' + obj.id + '" class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ ' <input type="text" id="dateTimePicker_' + obj.id + '" objid="' + obj.id + '" placeholder="请选择日期" onblur="saveInputContent(this);" value="' + obj.value + '" class="attribute_input_css" data-shapeId="' + shape.id + '"/>'
|
||
+ ' </td></tr>';
|
||
} else if (!objReadonly && objType == "table") {
|
||
let objRef = JSON.parse(obj.ref)
|
||
let objTableInput = obj.value.table !== undefined && obj.value.table.length > 1 ? '请查看' : '请输入'
|
||
tableObj[obj.id] = obj.value.table == undefined ? [ { id: Utils.newId() ,name: objRef.firstColumn, desc: objRef.secondColumn} ] : obj.value.table;
|
||
// dialogTableList = obj.value.table == undefined ? [ { id: Utils.newId() ,name: objRef.firstColumn, desc: objRef.secondColumn} ] : obj.value.table;
|
||
constr = '<tr ' + mouseout + mouseover + ' class="tagContentTableTr">'
|
||
+ ' <td>' + objName + requiredSpan + '</td>'
|
||
+ ' <td class="tagContentTableTrTd">'
|
||
+ '<span class="awsui-input-wrapper" objid="' + obj.id + '" onclick="openTableDialog(this,' + JSON.stringify(obj.value).replace(/\"/g,"'") +')">'
|
||
+ ' <input type="text" id="' + obj.id + '" value="' + objTableInput + '" class="attribute_input_css" data-shapeId="' + shape.id + '"/>'
|
||
+ ' <span class="awsui-input-suffix" >'
|
||
+ ' <i class="awsui-iconfont" ></i>'
|
||
+ ' </span>'
|
||
+ '</span>'
|
||
+ ' </td></tr>';
|
||
}
|
||
$("#" + tbodyId).append(constr);
|
||
$("#dateTimePicker_" + obj.id).datepicker({dateFmt:"yyyy-MM-dd HH:mm:ss"});
|
||
}
|
||
}
|
||
if (flag) {
|
||
getRelevanceShapeNameByShapeId(objIds, shape.id);
|
||
}
|
||
if (selectFlag) {
|
||
getSelectOptions(shape.category, selectValues, shape.id); //处理select类型
|
||
}
|
||
if (booleanFlag) {
|
||
getBooleanSelectOptions(booleanValues, shape.id);
|
||
}
|
||
// awsOrg
|
||
if (awsOrg) {
|
||
getRelevanceAwsOrgNameByShapeId(awsObjIds, shape.id);
|
||
}
|
||
}
|
||
|
||
// 得到关联形状
|
||
function getRelevanceShapes(objId,attributeValue) {
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog('close');
|
||
selectShape = Utils.getSelected()[0];
|
||
var shape = selectShape;
|
||
if (!shape) {
|
||
return;
|
||
}
|
||
var relationShapes = attr_content_iframe_relevance_shapes.getRelationShapeInfos();
|
||
|
||
var shapeGroupId = "";
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.shapeGroupId != undefined && attr.shapeGroupId != "") {
|
||
shapeGroupId = attr.shapeGroupId;
|
||
break;
|
||
}
|
||
}
|
||
shape = getAttributeByAttrId(shape, objId, relationShapes);
|
||
saveRelevanceShapesTODB(relationShapes, shape.id, shape.text, $("title").text(), shapeGroupId, objId, shape,attributeValue);
|
||
}
|
||
|
||
Array.prototype.unique = function(){
|
||
var res = [];
|
||
var json = {};
|
||
for(var i = 0; i < this.length; i++){
|
||
if(!json[this[i]]){
|
||
res.push(this[i]);
|
||
json[this[i]] = 1;
|
||
}
|
||
}
|
||
return res;
|
||
}
|
||
|
||
|
||
// 得到不同属性值关联的形状
|
||
function getAttributeByAttrId(shape, objId, relationShapes) {
|
||
//objId 属性的key值
|
||
var exitAttributesJsonArray = [];
|
||
var attrArr = []; //修改后的属性值
|
||
|
||
for (var i = 0; i < relationShapes.length; i++) {
|
||
var shapeObjT = relationShapes[i];
|
||
attrArr.push(shapeObjT.relationShapeId);
|
||
}
|
||
attrArr = attrArr.unique(); //属性值去重
|
||
if (attrArr.length > 0) {
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
exitAttributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var c = 0; c < exitAttributesJsonArray.length; c++) {
|
||
var el = exitAttributesJsonArray[c];
|
||
if(el == null) continue;
|
||
if (el.id == objId) {
|
||
el.value = attrArr.join(",");
|
||
break;
|
||
}
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = exitAttributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var j = 0, len = attrArr.length; j < len; j++) {
|
||
var attrShapeId = attrArr[j];
|
||
relationShapesObject[attrShapeId] = {"relationShapeId" : attrShapeId};
|
||
}
|
||
$("input[objid_shapeId='" + objId + "']").val(attrArr.join(","));
|
||
} else {
|
||
$("input[objid_shapeId='" + objId + "']").val("");
|
||
}
|
||
|
||
return shape;
|
||
}
|
||
Array.prototype.notDistinct = function() {
|
||
var newArr = [], obj = {};
|
||
for (var i = 0, len = this.length; i < len; i++) {
|
||
if (!obj[this[i]]) {
|
||
newArr.push(this[i]);
|
||
obj[this[i]] = 'new';
|
||
}
|
||
}
|
||
return newArr;
|
||
}
|
||
|
||
// 删除掉关联形状
|
||
function removeTrRelevanceShapes(obj) {
|
||
var options = {
|
||
title : "提示",
|
||
content : "确定删除吗?",
|
||
model : false,
|
||
onConfirm : function() {
|
||
// 确定删除
|
||
var shape = Utils.getSelected()[0];
|
||
var tempArray = [];
|
||
var count = 0;
|
||
if (shape) {
|
||
var relevanceShapes = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.relevanceShapes) {
|
||
relevanceShapes = attr.relevanceShapes;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < relevanceShapes.length; index++) {
|
||
var tempObj = relevanceShapes[index];
|
||
if (tempObj.id == $(obj).attr("objid")) {
|
||
continue;
|
||
}
|
||
tempArray[count++] = tempObj;
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.relevanceShapes) {
|
||
attr.relevanceShapes = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
Model.update(shape);
|
||
}
|
||
$(obj).hide();
|
||
$(obj).parent().parent().remove();
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_relevance_remove",
|
||
data : {
|
||
uuid : $(obj).attr("objid"),
|
||
},
|
||
success : function(msg) {
|
||
}
|
||
});
|
||
}
|
||
};
|
||
window.top.$.confirm(options);
|
||
}
|
||
|
||
// 过虑 掉重复的图形
|
||
function filterRepeatShapes(arr1, shape) {
|
||
var arr2 = [];
|
||
var arr = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.relevanceShapes) {
|
||
arr2 = attr.relevanceShapes;
|
||
break;
|
||
}
|
||
}
|
||
var flag = false;
|
||
for (var a = 0; a < arr1.length; a++) {
|
||
var arrEle1 = arr1[a];
|
||
for (var b = 0; b < arr2.length; b++) {
|
||
var arrEle2 = arr2[b];
|
||
if (arrEle1.id == arrEle2.id) {
|
||
flag = true;
|
||
break;
|
||
}
|
||
}
|
||
if (flag) {
|
||
flag = false;
|
||
continue;
|
||
}
|
||
arr2.push(arrEle1);
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.relevanceShapes) {
|
||
attr.relevanceShapes = arr2;
|
||
break;
|
||
}
|
||
}
|
||
|
||
return shape;
|
||
}
|
||
|
||
function updateModelElementsAttribute(selectedShape, nodes) {
|
||
var shapes = Model.define.elements;
|
||
for (var shapeId in shapes) {
|
||
var obj = nodes;
|
||
var shape = shapes[shapeId];
|
||
if(shape.name != "linker" && shape.id != selectedShape.id && shape.name == selectedShape.name){
|
||
var exitAttributesJsonArray = [];
|
||
var attrIndex = 0;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
exitAttributesJsonArray = attr.attributesJsonArray;
|
||
attrIndex = i;
|
||
break;
|
||
}
|
||
}
|
||
var arrJsontemp = [];
|
||
for (var t = 0; t < exitAttributesJsonArray.length; t++) {
|
||
if(exitAttributesJsonArray[t] == null) {
|
||
continue;
|
||
}
|
||
arrJsontemp.push(exitAttributesJsonArray[t]);
|
||
}
|
||
obj = filterRepeatAttribute(obj, exitAttributesJsonArray, shape.dataAttributes[attrIndex].attributesJsonArray);
|
||
for (var a = 0; a < obj.length; a++) {
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray.push(obj[a]);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
if (arrJsontemp.length != 0) {
|
||
var tempArr = removeShepeAttributeAndReturnDifferent(arrJsontemp, filterNotCheckedAttribute(nodes, arrJsontemp));
|
||
var tempArray = [];
|
||
for (var e = 0; e < tempArr.length; e++) {
|
||
if (tempArr[e] != 0 && tempArr[e] != "0") {
|
||
removeNotCheckedAttribute(shape, tempArr[e]);
|
||
}
|
||
}
|
||
if (tempArray.length != 0) {
|
||
shape.attributesJsonArray = tempArray;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
Model.update(shape);
|
||
//修改属性时,后台查询是否有关联属性,如果删除的属性有关联属性,需要删除关联表中的数据
|
||
var attrIds = ",";
|
||
if (nodes != undefined) {
|
||
for (var i = 0; i < nodes.length; i++) {
|
||
if (nodes[i].type) {
|
||
attrIds += nodes[i].id + ",";
|
||
}
|
||
}
|
||
awsui.ajax.request({
|
||
url : "./jd",
|
||
method : "POST",
|
||
data : {
|
||
sid:sid,
|
||
cmd:"com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_relevance_check",
|
||
fileId: ruuid,
|
||
shapeId: shape.id,
|
||
attrIds: attrIds
|
||
},
|
||
ok : function(r) {
|
||
},
|
||
err:function(r){
|
||
}
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 过虑出当在节点上不选中时的属性
|
||
|
||
function filterNotCheckedAttribute(checkedObj, exitObj) {
|
||
var result1 = [];
|
||
if (checkedObj.length == 0) {
|
||
return [];
|
||
} else {
|
||
var flag = false;
|
||
for (var b = 0; b < checkedObj.length; b++) {
|
||
var checkedArr1 = checkedObj[b];
|
||
for (var a = 0; a < exitObj.length; a++) {
|
||
var exitArr1 = exitObj[a];
|
||
if (exitArr1.id == checkedArr1.id) {
|
||
result1.push(checkedArr1);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return result1;
|
||
}
|
||
}
|
||
|
||
// 移除图形属性中部分已存在的元素并返回不同元素
|
||
|
||
function removeShepeAttributeAndReturnDifferent(exitObj, newObj1) {
|
||
var result1 = [];
|
||
for (var a = 0; a < newObj1.length; a++) {
|
||
var obj1 = newObj1[a];
|
||
for (var i = 0, n = 0; i < exitObj.length; i++) {
|
||
if (exitObj[i].id == obj1.id) {
|
||
result1.push(i);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
for (var i = 0; i < result1.length; i++) {
|
||
exitObj[result1[i]] = 0;
|
||
}
|
||
return exitObj;
|
||
}
|
||
// 删除没有选中的元素
|
||
|
||
function removeNotCheckedAttribute(shape, obj1) {
|
||
var tempArray = [];
|
||
var attributesJsonArray1 = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray1 = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < attributesJsonArray1.length; index++) {
|
||
if(attributesJsonArray1[index] == null) {
|
||
continue;
|
||
}
|
||
var tempObj1 = attributesJsonArray1[index];
|
||
if (tempObj1.id == obj1.id) {
|
||
continue;
|
||
}
|
||
tempArray.push(tempObj1);
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
// shape.attributesJsonArray = tempArray;
|
||
// Model.update(shape);
|
||
$("#tagContentTable0 tr[objid='" + obj1.id + "']").remove();
|
||
}
|
||
// 过滤掉重复的属性生成新的数组
|
||
|
||
function filterRepeatAttribute(arr1, arr2, shape) {
|
||
var result = [];
|
||
var flag = false;
|
||
for (var a = 0; a < arr1.length; a++) {
|
||
var arrEle1 = arr1[a];
|
||
for (var b = 0; b < arr2.length; b++) {
|
||
var arrEle2 = arr2[b];
|
||
if(arrEle2 == null) {
|
||
continue;
|
||
}
|
||
if (arrEle1.id == arrEle2.id) {
|
||
shape[b].name = arrEle1.name;
|
||
flag = true;
|
||
break;
|
||
}
|
||
}
|
||
if (flag) {
|
||
flag = false;
|
||
continue;
|
||
}
|
||
result.push(arrEle1);
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
// 当属性为可编辑时,编辑时自动保存
|
||
|
||
function showEditButton(obj) {
|
||
// $(obj).siblings("span::contains('...')").show();
|
||
}
|
||
|
||
var inputUpdate = false;
|
||
function saveInputContent(obj,value) {
|
||
// 按钮
|
||
// $(obj).siblings("span::contains('...')").hide();
|
||
inputUpdate = true;
|
||
var objValue = $(obj).val();
|
||
if (objValue.indexOf("</script>") > -1) {
|
||
$(obj).val("");
|
||
$.simpleAlert("禁止输入js脚本!", "warning");
|
||
return;
|
||
}
|
||
if(value !== undefined && value.isRequired && objValue == '') {
|
||
$(obj).attr('placeholder',value.name + '不能为空')
|
||
$(obj).addClass("required_input_css");
|
||
return;
|
||
}
|
||
if ($(obj).attr("inputType") == "number") {
|
||
var val = $(obj).val();
|
||
if (/\D/.test(val)) {
|
||
$.simpleAlert("此处只能输入数字", "warning", 2000);
|
||
//$("#simplealert>.msg").css("top", "15px");
|
||
return;
|
||
}
|
||
}
|
||
updateAttributeById($(obj).attr("objid"), objValue, $(obj).attr('data-shapeId'));
|
||
inputUpdate = false;
|
||
}
|
||
|
||
function saveSelectContent(objAttr,objValue, shapeId){
|
||
updateAttributeById(objAttr, objValue, shapeId);
|
||
}
|
||
|
||
// 显示select下拉框
|
||
|
||
function showSelectOption(obj) {
|
||
var str = $(obj).attr("ty");
|
||
if (str == "td") {
|
||
$(obj).children("select").show();
|
||
$(obj).children("span").hide();
|
||
} else {
|
||
updateAttributeById($(obj).attr("objid"), $(obj)
|
||
.find("option:selected").text());
|
||
$(obj).hide();
|
||
$(obj).siblings("span").text($(obj).find("option:selected").text())
|
||
.show();
|
||
}
|
||
}
|
||
|
||
// 属性编辑打开窗口
|
||
|
||
function showAttributedEditWindow(obj) {
|
||
var objId = $(obj).attr("objid");
|
||
var shape = Utils.getSelected()[0];
|
||
var windowTitle = '提示';
|
||
let objValue = {}
|
||
if (shape) {
|
||
var attributesJsonArray = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < attributesJsonArray.length; index++) {
|
||
var tempObj = attributesJsonArray[index];
|
||
if (tempObj.id == objId) {
|
||
objValue = tempObj
|
||
windowTitle = tempObj.name;
|
||
// $("#attribute-edit-title").text(tempObj.name);
|
||
$("#attribute-edit-content").val(tempObj.value);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
$("#attribute-edit-window").dialog({
|
||
title: windowTitle,
|
||
draggable: true,
|
||
buttons : [{
|
||
text : '确定',
|
||
cls : "blue",
|
||
handler : function() {
|
||
var str = $("#attribute-edit-content").val();
|
||
if (str.indexOf("</script>") > -1) {
|
||
$("#attribute-edit-content").val("");
|
||
$.simpleAlert("禁止输入js脚本!", "warning");
|
||
return;
|
||
}
|
||
if(objValue.isRequired && str == '') {
|
||
$("#attribute-edit-content").attr('placeholder',objValue.name + '不能为空')
|
||
$("#attribute-edit-content").addClass("required_input_css");
|
||
return
|
||
}
|
||
updateAttributeById($(obj).attr("objid"), str);
|
||
$(obj).val(str);
|
||
$("#attribute-edit-window").dialog('close');
|
||
}
|
||
}, {
|
||
text : '取消',
|
||
handler : function() {
|
||
$("#attribute-edit-window").dialog('close');
|
||
}
|
||
}]
|
||
});
|
||
$("#attribute-edit-content").focus();
|
||
}
|
||
|
||
// table表格
|
||
function openTableDialog(obj,value) {
|
||
let tableName = '提示'
|
||
let objId = $(obj).attr("objid");
|
||
curTableId = objId
|
||
let dialogTableList = tableObj[objId]
|
||
let shape = Utils.getSelected()[0];
|
||
if (shape) {
|
||
let attributesJsonArray = [];
|
||
for (let i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (let index = 0; index < attributesJsonArray.length; index++) {
|
||
var tempObj = attributesJsonArray[index];
|
||
if (tempObj.id == objId) {
|
||
tableName = tempObj.name;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
$('#attribute-table-content').empty()
|
||
$('#attribute-add-content').empty()
|
||
var thead =
|
||
'<tr id="' + dialogTableList[0].id + '">'
|
||
+ '<td style="width: 100px;" class="dialogTableHead">'
|
||
+ dialogTableList[0].name
|
||
+ '</td>'
|
||
+ '<td style="width: 270px;" class="dialogTableHead">'
|
||
+ dialogTableList[0].desc
|
||
+ '</td>'
|
||
+ '<td style="width: 60px;" class="dialogTableHead">操作</td>'
|
||
+ '</tr>'
|
||
$('#attribute-table-content').append(thead)
|
||
for ( let i = 1; i < dialogTableList.length; i++) {
|
||
let str =
|
||
'<tr id="' + dialogTableList[i].id + '">'
|
||
+ '<td style="width: 100px;">'
|
||
+ '<textarea type="textarea" rows="5" class="dialog_table_input_css" value="' + dialogTableList[i].name + '">' + dialogTableList[i].name + '</textarea>'
|
||
+ '</td>'
|
||
+ '<td style="width: 270px;">'
|
||
+ '<textarea type="textarea" rows="5" class="dialog_table_input_css" value="' + dialogTableList[i].desc + '">' + dialogTableList[i].desc + '</textarea>'
|
||
+ '</td>'
|
||
+ '<td style="width: 60px;text-align: center" class="dialogTableDelete" onclick="removeTableTr(this)">删除</td>'
|
||
+'</tr>'
|
||
$('#attribute-table-content').append(str)
|
||
}
|
||
$('#attribute-add-content').append('<button onclick="addTableTr(this)">新增</button>')
|
||
// tableInputHeight()
|
||
|
||
$("#attribute-table-window").dialog({
|
||
draggable: true,
|
||
title: tableName,
|
||
buttons : [{
|
||
text : '确定',
|
||
cls : "blue",
|
||
handler : function() {
|
||
let inputs = $('#attribute-table-content').find('textarea')
|
||
for (let i = 1; i < dialogTableList.length; i++) {
|
||
dialogTableList[i].name = inputs[2*(i-1)].value
|
||
dialogTableList[i].desc = inputs[2*(i-1) +1].value
|
||
}
|
||
let tableObj = {
|
||
name: tableName,
|
||
table: dialogTableList
|
||
}
|
||
if(dialogTableList.some(item => item.name == '') || dialogTableList.some(item => item.desc == '')) {
|
||
$.simpleAlert("表格内容不能存在空值",'warning')
|
||
} else {
|
||
updateAttributeById($(obj).attr("objid"), tableObj);
|
||
$("#attribute-table-window").dialog('close');
|
||
}
|
||
}
|
||
}, {
|
||
text : '取消',
|
||
handler : function() {
|
||
$("#attribute-table-window").dialog('close');
|
||
}
|
||
}]
|
||
})
|
||
}
|
||
|
||
|
||
function addTableTr(obj) {
|
||
let newTrId = Utils.newId()
|
||
let defaultStr =
|
||
' <tr id="'+ newTrId + '">'
|
||
+ '<td style="width: 100px;"><textarea type="textarea" rows="5" class="dialog_table_input_css" value=""></textarea></td>'
|
||
+ '<td style="width: 270px;"><textarea type="textarea" rows="5" class="dialog_table_input_css" value=""></textarea></td>'
|
||
+ '<td style="width: 60px;text-align: center" class="dialogTableDelete" onclick="removeTableTr(this)">删除</td>'
|
||
+ '</tr>'
|
||
tableObj[curTableId].push({ id: newTrId ,name: '',desc: ''})
|
||
$('#attribute-table-content').append(defaultStr)
|
||
}
|
||
|
||
function removeTableTr(obj) {
|
||
let removeId = obj.parentNode.getAttribute('id')
|
||
tableObj[curTableId].splice(tableObj[curTableId].findIndex(item => item.id == removeId), 1)
|
||
let tr = obj.parentNode
|
||
tr.remove()
|
||
}
|
||
|
||
// 对单个属性的更新操作
|
||
|
||
function updateAttributeById(objId, va, shapeId) {
|
||
var shape = undefined;
|
||
if (shapeId) {
|
||
shape = Model.getShapeById(shapeId);
|
||
} else {
|
||
shape = Utils.getSelected()[0];
|
||
selectShape = shape;
|
||
}
|
||
var tempArray = [];
|
||
var count = 0;
|
||
if (shape) {
|
||
/*
|
||
* for (var i = 0; i < shape.dataAttributes.length; i++) { var attr =
|
||
* shape.dataAttributes[i]; if (attr.attributesContent) {
|
||
* attr.attributesContent = $("#tagContentTable0").html(); break; } }
|
||
*/
|
||
var attributesJsonArray = shape.attributesJsonArray;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) { // 获取当前形状的属性
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < attributesJsonArray.length; index++) {
|
||
var tempObj = attributesJsonArray[index];
|
||
if(tempObj == null) {
|
||
continue;
|
||
}
|
||
if (tempObj.id == objId) {
|
||
tempObj.value = va;
|
||
tempArray[count++] = tempObj;
|
||
continue;
|
||
}
|
||
tempArray[count++] = tempObj;
|
||
}
|
||
if (tempArray.length > 0) {
|
||
shape.attributesJsonArray = tempArray;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
if ("isAutoSave" == 1) {
|
||
CLB.cmdList = [{
|
||
"type" : "message",
|
||
"cmd" : "com.actionsoft.apps.coe.pal_pl_repository_designer_message"
|
||
}];
|
||
}
|
||
Model.update(shape);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 删除行上的属性
|
||
function removeTrAttribute(obj) {
|
||
var options = {
|
||
title : "提示",
|
||
content : "确定删除吗?",
|
||
model : false,
|
||
onConfirm : function() {
|
||
// 确定删除
|
||
var shape = Utils.getSelected()[0];
|
||
var tempArray = [];
|
||
var count = 0;
|
||
if (shape) {
|
||
// shape.attributesContent = $("#tagContentTable0").html();
|
||
var attributesJsonArray = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < attributesJsonArray.length; index++) {
|
||
var tempObj = attributesJsonArray[index];
|
||
if (tempObj.id == $(obj).attr("objid")) {
|
||
continue;
|
||
}
|
||
tempArray[count++] = tempObj;
|
||
}
|
||
// if (tempArray.length >= 0) {
|
||
shape.attributesJsonArray = tempArray;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
Model.update(shape);
|
||
// }
|
||
}
|
||
$(obj).hide();
|
||
$(obj).parent().parent().remove();
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_relevance_remove",
|
||
data : {
|
||
uuid : $(obj).attr("objid"),
|
||
shapeId : Utils.getSelected()[0].id,
|
||
fileId : ruuid
|
||
},
|
||
success : function(msg) {
|
||
}
|
||
});
|
||
}
|
||
};
|
||
window.top.$.confirm(options);
|
||
}
|
||
// 显示删除按钮
|
||
|
||
function showRemoveTrAttribute(obj) {
|
||
$(obj).addClass("attr_bg_color_tr");
|
||
$("input[name=attribute_name_input_" + $(obj).attr("objid") + "]")
|
||
.addClass("attr_bg_color_tr");
|
||
$("input[name=attribute_name_input_" + $(obj).attr("objid") + "]").parent()
|
||
.addClass("attr_bg_color_tr");
|
||
$(obj).children("td").children(".ico_attribute_delete").show();
|
||
if ($(obj).attr("ty") == "sel") {
|
||
$(obj).children("td").children("select").show();
|
||
$(obj).children("td").children("span").hide();
|
||
}
|
||
}
|
||
// 隐藏删除按钮
|
||
|
||
function hideRemoveTrAttribute(obj) {
|
||
$(obj).removeClass("attr_bg_color_tr");
|
||
$("input[name=attribute_name_input_" + $(obj).attr("objid") + "]")
|
||
.removeClass("attr_bg_color_tr");
|
||
$("input[name=attribute_name_input_" + $(obj).attr("objid") + "]").parent()
|
||
.removeClass("attr_bg_color_tr");
|
||
$(obj).children("td").children(".ico_attribute_delete").hide();
|
||
if ($(obj).attr("ty") == "sel") {
|
||
$(obj).children("td").children("select").hide();
|
||
$(obj).children("td").children("span").show();
|
||
}
|
||
}
|
||
// 经常用的是通过遍历,重构数组.
|
||
Array.prototype.remove = function(dx) {
|
||
if (isNaN(dx) || dx > this.length) {
|
||
return false;
|
||
}
|
||
for (var i = 0, n = 0; i < this.length; i++) {
|
||
if (this[i] != this[dx]) {
|
||
this[n++] = this[i];
|
||
}
|
||
}
|
||
this.length -= 1;
|
||
};
|
||
function removeElementFromArr(dx, obj) {
|
||
if (isNaN(dx) || dx > obj.length) {
|
||
return false;
|
||
}
|
||
for (var i = 0, n = 0; i < obj.length; i++) {
|
||
if (obj[i] != obj[dx]) {
|
||
obj[n++] = obj[i];
|
||
}
|
||
}
|
||
obj.length -= 1;
|
||
return obj;
|
||
}
|
||
|
||
// 在数组中获取指定值的元素索引
|
||
Array.prototype.getIndexByValue = function(value) {
|
||
var index = -1;
|
||
for (var i = 0; i < this.length; i++) {
|
||
if (this[i].url == value) {
|
||
index = i;
|
||
break;
|
||
}
|
||
}
|
||
return index;
|
||
};
|
||
Array.prototype.getIndexByValueById = function(value) {
|
||
var index = -1;
|
||
for (var i = 0; i < this.length; i++) {
|
||
if (this[i] == value) {
|
||
index = i;
|
||
break;
|
||
}
|
||
}
|
||
return index;
|
||
};
|
||
// 重写链接创建后的事件
|
||
Designer.events.addEventListener("linkerCreated", function(linker) {
|
||
/**
|
||
* var toId = linker.to.id; //当前选中的图形 var fromShape =
|
||
* Utils.getSelected()[0]; //目标图形 var toShape =
|
||
* Model.getShapeById(toId); var toShapeTemp = []; for (var index =
|
||
* 0; index < linkerRelationship.length; index++) { var shapes =
|
||
* linkerRelationship[index]; var fromShapeId = shapes.fromShapeId;
|
||
* var toShapeIds = shapes.toShapeId; if (fromShape.name ==
|
||
* fromShapeId) { if (toShapeIds != "*") { //判断是针对哪些图形有效 if
|
||
* (toShapeIds.indexOf(",") > 0) { toShapeTemp =
|
||
* toShapeIds.split(","); } else { toShapeTemp.push(toShapeIds); } } } }
|
||
* if (toShapeTemp.length != 0) { for (var index = 0; index <
|
||
* toShapeTemp.length; index++) { var tempShapeId =
|
||
* toShapeTemp[index]; //删除这条线 if (toShape.name != tempShapeId) {
|
||
* $.simpleAlert("不支持所选对象与目标对象的这种关系", "error", 2500); //待续未完
|
||
* deleteLinkerSelected(linker); } } } // if (toShape.name == "xxx") { //
|
||
* linker.to.id = null; //} //获取选中的链接线 var outlinkers =
|
||
* Utils.getOutlinkers(fromShape); var l = linker; //
|
||
* consloe.log(l);
|
||
*/
|
||
// 判断是不是支持这种关系类型
|
||
// isObjectRelationshipModel(linker, true);
|
||
// showShapeRelationTab(null);
|
||
// attributeShowTabContent(null);
|
||
// showRelevanceShapesContent();
|
||
// shapeCopyAndPasteCount(null);
|
||
});
|
||
|
||
/**
|
||
* 图形创建后重写
|
||
*/
|
||
Designer.events.addEventListener("created", function(shape) {
|
||
let shapePosition = shape.props
|
||
let pageSize = Model.define.page
|
||
if (shapePosition.x + shapePosition.w > pageSize.width - pageSize.padding) {
|
||
Designer.setPageStyle({
|
||
width: shapePosition.x + shapePosition.w + pageSize.padding + 30,
|
||
});
|
||
$("#page_size_w").spinner('value',shapePosition.x + shapePosition.w + pageSize.padding + 30);
|
||
}
|
||
if (shapePosition.y + shapePosition.h > pageSize.height - pageSize.padding) {
|
||
Designer.setPageStyle({
|
||
height: shapePosition.y + shapePosition.h + pageSize.padding + 30,
|
||
});
|
||
$("#page_size_h").spinner('value',shapePosition.x + shapePosition.w + pageSize.padding + 30)
|
||
}
|
||
|
||
if (Designer.status == "demo" && !demoCreatedTiped) {
|
||
UI.showStartStep("created", $("#" + shape.id));
|
||
demoCreatedTiped = true;
|
||
}
|
||
/***************************************************************************
|
||
* var selectedShape = Utils.getSelected()[0]; var linkerIds =
|
||
* Model.getShapeLinkers(selectedShape.id);
|
||
* if(linkerIds&&linkerIds.length>0){ var linker =
|
||
* Model.getShapeById(linkerIds[0]); isObjectRelationshipModel(linker,
|
||
* true); }
|
||
**************************************************************************/
|
||
showShapeRelationTab(shape);
|
||
if(shape.category == "control_risk") {
|
||
initPrivateAttribute(shape, "control_risk"); // 创建节点后编号提供默认值
|
||
}
|
||
if(shape.category == "process_flowchart" || shape.category == "process_bpmn2") {// 流程flowchar编号初始化编号
|
||
if (!IsGroupChild(shape)) {// 不在组内部或者新建立的节点为组节点
|
||
// 获取最大编号
|
||
initPrivateAttribute(shape, shape.category);
|
||
}
|
||
if(shape.name == "group") {// 组置于最底层
|
||
// Designer.layerShapes("back");
|
||
if (Model.orderList[0] != undefined) {
|
||
var start = Model.orderList[0].zindex; //取到最小的zindex
|
||
start -= 1;
|
||
shape.props.zindex = start;
|
||
}
|
||
}
|
||
}
|
||
attributeShowTabContent(shape);
|
||
|
||
var tmpArray = getTmpArray(isLaneAttrConfig);
|
||
if ($.inArray(shape.name, tmpArray) != -1) {// 泳池泳道隐藏
|
||
$('#showMoreAttrUL').hide();
|
||
}
|
||
// shapeCopyAndPasteCount(shape);
|
||
});
|
||
|
||
// 设置编号属性默认值
|
||
function initPrivateAttribute(newShape, type) {
|
||
var shapes = Model.define.elements;
|
||
var max = 0;
|
||
for (var shapeId in shapes) {
|
||
var shape = shapes[shapeId];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attrArr = shape.dataAttributes[i];
|
||
if (attrArr.attributesJsonArray && attrArr.attributesJsonArray.length > 0) {
|
||
for (var j = 0; j < attrArr.attributesJsonArray.length; j++) {
|
||
var attr = attrArr.attributesJsonArray[j];
|
||
if (attr != null && attr.id && attr.id == 'number') {
|
||
var number = attr.value;
|
||
if(typeof number == 'string') number = number.replace(/^\s+|\s+$/g,"");
|
||
if(!isNaN(number)) if(number > max) max = number;
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
max = Math.floor(max) + 1;
|
||
for (var i = 0; i < newShape.dataAttributes.length; i++) {
|
||
var attrArr = newShape.dataAttributes[i];
|
||
if (attrArr.attributesJsonArray && attrArr.attributesJsonArray.length > 0) {
|
||
for (var j = 0; j < attrArr.attributesJsonArray.length; j++) {
|
||
var attr = attrArr.attributesJsonArray[j];
|
||
if (attr != null && attr.id && attr.id == 'number') {
|
||
attr.value = max;
|
||
break;
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
//判断新建立的节点是否在shapeName为group的组内部
|
||
function IsGroupChild(newShape) {
|
||
var result = false;
|
||
var newObj = newShape.props;
|
||
var x2 = parseInt(newObj.x);
|
||
var y2 = parseInt(newObj.y);
|
||
var w2 = parseInt(newObj.w);
|
||
var h2 = parseInt(newObj.h);
|
||
if (newShape.name == "group") {
|
||
return false;
|
||
} else { // 是否在组内部
|
||
var shapes = Model.define.elements;
|
||
for (var shapeId in shapes) {
|
||
if (newShape.id == shapeId) continue;
|
||
var shape = shapes[shapeId];
|
||
if (shape.name == "group") {// 存在组节点
|
||
var obj = shape.props;
|
||
var x1 = parseInt(obj.x);
|
||
var y1 = parseInt(obj.y);
|
||
var w1 = parseInt(obj.w);
|
||
var h1 = parseInt(obj.h);
|
||
if (x1<x2 && y1<y2 && y1+h1>y2+h2 && x1+w1>x2+w2 && x1+w1>x2+w2 && y1+h1>y2+h2) { // 新建立节点在组内部
|
||
result = true;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
// 对粘贴的图形进行编号重置
|
||
function initPasteShapesNumber(newJson) {
|
||
// 获取最大编号
|
||
var shapes = Model.define.elements;
|
||
var max = 0;
|
||
for (var shapeId in shapes) {
|
||
var shape = shapes[shapeId];
|
||
if (shape.dataAttributes != undefined) {
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
if (shape.dataAttributes[i].privateAttributeContent != null) {
|
||
var privateAttributeContent = shape.dataAttributes[i].privateAttributeContent;
|
||
if (typeof(privateAttributeContent) == "string") {
|
||
privateAttributeContent = eval("(" + privateAttributeContent + ")");
|
||
}
|
||
var number = privateAttributeContent.number;
|
||
if(number != undefined && number != null && number != "") {
|
||
if(typeof number == 'string') number = number.replace(/^\s+|\s+$/g,"");
|
||
if(!isNaN(number)) {
|
||
if (typeof number != 'number') {
|
||
number = parseInt(number);
|
||
}
|
||
if(number > max) max = number;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
var resultJson = [];
|
||
for (var m = 0; m < newJson.length; m++) {
|
||
var newShape = newJson[m];
|
||
if(newShape.category == "process_flowchart" || newShape.category == "process_bpmn2") {
|
||
// 设置最大编号为max+1
|
||
var json = "{'number':'编号'}";
|
||
max = parseInt(max)+1;
|
||
var json2 = "{'number':'" + max + "'}";
|
||
var shapeName = newShape.name;
|
||
if (shapeName.indexOf("_custom") > -1) {
|
||
shapeName = shapeName.substring(0, shapeName.indexOf("_"));
|
||
}
|
||
if (shapeName == "control" || shapeName == "risk" || shapeName == "item"
|
||
|| shapeName == "regulation" || shapeName == "procedure"
|
||
|| shapeName == "method" || shapeName == "manualOperation"
|
||
|| shapeName == "predefinedProcess"
|
||
|| shapeName == "callActivityCallingProcess"
|
||
|| shapeName == "businessRuleTask" || shapeName == "scriptTask"
|
||
|| shapeName == "sendTask" || shapeName == "userTask"
|
||
|| shapeName == "serviceTask" || shapeName == "manualTask"
|
||
|| shapeName == "receiveTask" || shapeName == "process"
|
||
|| shapeName == "decision" || shapeName == "group") {
|
||
for (var i = 0; i < newShape.dataAttributes.length; i++) {
|
||
var attr = newShape.dataAttributes[i];
|
||
if (attr.privateAttribute) {
|
||
attr.privateAttribute = json;
|
||
}
|
||
if(attr.privateAttributeContent) {
|
||
attr.privateAttributeContent = json2;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
resultJson.push(newShape);
|
||
}
|
||
console.log('对粘贴的图形进行编号重置');
|
||
return newJson;
|
||
}
|
||
|
||
|
||
// 当不符合配置的关系时删除链接线
|
||
|
||
function deleteLinkerSelected(linker) {
|
||
// moveShape移除图片 moveLinker移除链线 shapeMultiSelectable图形选中事件 designer.core.js
|
||
var d = linker;
|
||
if (d.length > 0) {
|
||
Utils.unselect();
|
||
var e = Utils.getAttachedShapes(d);
|
||
d = d.concat(e);
|
||
var c = [];
|
||
for (var b = 0; b < d.length; b++) {
|
||
var a = Utils.getChildrenShapes(d[b]);
|
||
c = c.concat(a)
|
||
}
|
||
d = d.concat(c);
|
||
Model.remove(d)
|
||
}
|
||
}
|
||
// 显示图形关系特性
|
||
|
||
function showShapeRelationTab(currentShape) {
|
||
if (!$("#tagContent0").is(":visible")) {
|
||
return;
|
||
}
|
||
// 拿到所选的图形
|
||
var selectedShape = Utils.getSelected()[0];
|
||
if (!selectedShape)
|
||
return;
|
||
if (currentShape) {
|
||
selectedShape = currentShape
|
||
}
|
||
var linkers = Model.getShapeLinkers(selectedShape.id);
|
||
var outlinkers = Utils.getOutlinkers(Utils.getSelected());
|
||
var l = linkers;
|
||
$("#tagContentTable1").empty();
|
||
if (linkers != undefined) {
|
||
for (var a = 0; a < linkers.length; a++) {
|
||
// 根据连线的id拿到连线图形这个对象,再根据这个对象来找到他所关联的图形
|
||
var element = linkers[a];
|
||
var linkerObjs = Model.getShapeById(element);
|
||
// 来自哪个图形 的id
|
||
var fromId = linkerObjs.from.id;
|
||
var toId = linkerObjs.to.id;
|
||
var fromShape = Model.getShapeById(fromId);
|
||
var toShape = Model.getShapeById(toId);
|
||
if (fromShape != undefined && toShape != undefined) {
|
||
// 此处判断的是从本图形出去的连线
|
||
if (fromShape.id == selectedShape.id) {
|
||
for (var b = 0; b < linkerRelationship.length; b++) {
|
||
var shapes = linkerRelationship[b];
|
||
var fromShapeId = shapes.fromShapeId;
|
||
var toShapeIds = shapes.toShapeId;
|
||
if (fromShape.name == fromShapeId) {
|
||
if (toShapeIds != "*") {
|
||
// 判断是针对哪些图形有效
|
||
if (toShapeIds.indexOf(",") > 0) {
|
||
var toShapeTemp = toShapeIds.split(",");
|
||
for (var c = 0; c < toShapeTemp.length; c++) {
|
||
var josnShapeId = toShapeTemp[c];
|
||
if (josnShapeId == toShape.name) {
|
||
addtagContentTableContent(
|
||
fromShape,
|
||
shapes.outcomingName,
|
||
toShape);
|
||
}
|
||
}
|
||
} else {
|
||
if (toShapeIds == toShape.name) {
|
||
addtagContentTableContent(fromShape,
|
||
shapes.outcomingName, toShape);
|
||
}
|
||
}
|
||
} else {
|
||
// 当没有限制的时候
|
||
addtagContentTableContent(fromShape,
|
||
shapes.outcomingName, toShape);
|
||
}
|
||
}
|
||
}
|
||
} else if (toShape.id == selectedShape.id) {
|
||
// 此处需要完善当不扶持 对像关系类型时下面的代码 不执行
|
||
// 判断进来的链线开始
|
||
for (var b = 0; b < linkerRelationship.length; b++) {
|
||
var shapes = linkerRelationship[b];
|
||
var fromShapeId = shapes.fromShapeId;
|
||
var toShapeIds = shapes.toShapeId;
|
||
// if (toShape.name == fromShapeId) {
|
||
// 判断这两种图形中是否有这种关系
|
||
// if (isObjectRelationshipModel(linkerObjs, false))
|
||
// addtagContentTableContent(fromShape,
|
||
// shapes.incomingName);
|
||
// }
|
||
if (fromShape.name == fromShapeId) {
|
||
if (toShapeIds != "*") {
|
||
// 判断是针对哪些图形有效
|
||
if (toShapeIds.indexOf(",") > 0) {
|
||
var toShapeTemp = toShapeIds.split(",");
|
||
for (var c = 0; c < toShapeTemp.length; c++) {
|
||
var josnShapeId = toShapeTemp[c];
|
||
if (josnShapeId == selectedShape.name) {
|
||
addtagContentTableContent(toShape,
|
||
shapes.incomingName,
|
||
fromShape);
|
||
}
|
||
}
|
||
} else {
|
||
if (toShapeIds == selectedShape.name) {
|
||
addtagContentTableContent(toShape,
|
||
shapes.incomingName, fromShape);
|
||
}
|
||
}
|
||
} else {
|
||
// 当没有限制的时候
|
||
addtagContentTableContent(toShape,
|
||
shapes.incomingName, fromShape);
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
// 判断进来的线结束
|
||
}
|
||
}
|
||
var e = element;
|
||
}
|
||
}
|
||
}
|
||
// 给关系类型增加内容
|
||
|
||
function addtagContentTableContent(shape1, str, obj) {
|
||
if (obj.text == "") {
|
||
obj.text = obj.title;
|
||
}
|
||
var constr = '<tr onmouseout="hideRemoveTrAttribute(this);" onmouseover="showRemoveTrAttribute(this);" class="tagContentTableTr"><td>'
|
||
// + shape1.text
|
||
+ str
|
||
+ '</td><td><div class="attribute_td_div_css">'
|
||
+ obj.text
|
||
+ '</div> </td></tr>';
|
||
$("#tagContentTable1").append(constr);
|
||
}
|
||
// 判断是不是支持对象的关系类型
|
||
|
||
function isObjectRelationshipModel(linker, isAlert) {
|
||
var flag = false;
|
||
var toId = linker.to.id;
|
||
if (toId == null)
|
||
return false;
|
||
// 当前选中的图形
|
||
var fromShape = Utils.getSelected()[0];
|
||
// 目标图形
|
||
var toShape = Model.getShapeById(toId);
|
||
var toShapeTemp = [];
|
||
for (var index = 0; index < linkerRelationship.length; index++) {
|
||
var shapes = linkerRelationship[index];
|
||
var fromShapeId = shapes.fromShapeId;
|
||
var toShapeIds = shapes.toShapeId;
|
||
if (fromShape) {
|
||
if (fromShape.name == fromShapeId) {
|
||
if (toShapeIds != "*") {
|
||
// 判断是针对哪些图形有效
|
||
if (toShapeIds.indexOf(",") > 0) {
|
||
toShapeTemp = toShapeIds.split(",");
|
||
} else {
|
||
toShapeTemp.push(toShapeIds);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (toShapeTemp.length != 0) {
|
||
for (var index = 0; index < toShapeTemp.length; index++) {
|
||
var tempShapeId = toShapeTemp[index];
|
||
// 删除这条线
|
||
if (toShape && toShape.name == tempShapeId) {
|
||
// 画线时的操作
|
||
// 显示关系类型里的操作
|
||
flag = true;
|
||
break;
|
||
// 待续未完
|
||
}
|
||
}
|
||
} else {
|
||
flag = true;
|
||
}
|
||
if (!flag) {
|
||
if (isAlert) {
|
||
// $.simpleAlert("不支持所选对象与目标对象的这种关系", "error", 2000);
|
||
// deleteLinkerSelected(linker);
|
||
}
|
||
}
|
||
return flag;
|
||
}
|
||
|
||
// 设置链接的div的高度,当超过一定高度时才显示滚动条
|
||
function setDivHeight() {/*
|
||
* var linksHistoryDivH =
|
||
* $("#linksHistoryDiv").height(); var
|
||
* linksFileHistoryDivH =
|
||
* $("#linksFileHistoryDiv").height(); if
|
||
* (linksHistoryDivH < 140)
|
||
* $("#linksHistoryDiv").css("overflow-y",
|
||
* "hidden"); else
|
||
* $("#linksHistoryDiv").removeAttr("style").css({
|
||
* "padding-bottom:" : "0px", "text-align:" :
|
||
* "center", "max-height" : "120px", "overflow-y" :
|
||
* "scroll", "overflow-x" : "hidden" }); if
|
||
* (linksFileHistoryDivH <140)
|
||
* $("#linksFileHistoryDiv").css("overflow-y",
|
||
* "hidden"); else
|
||
* $("#linksFileHistoryDiv").removeAttr("style").css({
|
||
* "padding-bottom:" : "0px", "text-align:" :
|
||
* "center", "max-height" : "120px", "overflow-y" :
|
||
* "scroll", "overflow-x" : "hidden" });
|
||
*/
|
||
}
|
||
|
||
function changeArributeByShape() {
|
||
if (Utils.getSelected()[0] == null) {
|
||
$("#dock_content_attribute").hide();
|
||
$("#attr_no_more_attribute_id").show();
|
||
var iframeDocument=$("#file_attribute")[0].contentWindow.document;
|
||
var body = $(iframeDocument).find('body')
|
||
var pickerNum = $(body).find('input[name="dateTimePicker"]').length
|
||
if (pickerNum > 0) {
|
||
var height = $(body).find('#frmMain').height() + 300
|
||
$("#file_attribute").height(height)
|
||
}
|
||
} else {
|
||
// 属性弹出层显示的内容
|
||
var shape = Utils.getSelected()[0];
|
||
if (shape.name === "linker") {
|
||
$(".clearfix").hide();
|
||
} else {
|
||
$(".clearfix").show();
|
||
}
|
||
var attributesJsonArray = "";
|
||
var attributesJsonArrayT = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArrayT = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
// 属性排序
|
||
var defaultMoreAttr = $('#defaultMoreAttrSort').val();
|
||
if (shape.category != undefined) {
|
||
var category = shape.category.replace("_", ".");
|
||
if(methodId === category && defaultMoreAttr.length > 0) {
|
||
var arr = defaultMoreAttr.split('|');
|
||
var tempAttrArray = [];
|
||
for(var i = 0; i < arr.length; i++) {
|
||
for(var j = 0; j < attributesJsonArrayT.length; j++) {
|
||
if(attributesJsonArrayT[j] == undefined || attributesJsonArrayT[j] == null) {
|
||
continue;
|
||
}
|
||
if(arr[i] == attributesJsonArrayT[j].id) {
|
||
tempAttrArray.push(attributesJsonArrayT[j]);
|
||
}
|
||
}
|
||
}
|
||
//过滤无效属性
|
||
for(var j = 0; j < attributesJsonArray.length; j++) {
|
||
var flag = true;
|
||
for(var i = 0; i < arr.length; i++) {
|
||
if (attributesJsonArray[j].id == arr[i]) {
|
||
flag = false;
|
||
}
|
||
}
|
||
if (flag) {
|
||
attributesJsonArray.splice(j,1);
|
||
}
|
||
}
|
||
//取新添加的属性
|
||
if (tempAttrArray.length > 0) {
|
||
var newAttrArray = [];
|
||
newAttrArray = tempAttrArray.concat(attributesJsonArrayT).filter(function(v, i, arr) {
|
||
return arr.indexOf(v) === arr.lastIndexOf(v);
|
||
});
|
||
attributesJsonArrayT = tempAttrArray.concat(newAttrArray);
|
||
}
|
||
}
|
||
}
|
||
|
||
if (shape && attributesJsonArrayT) {
|
||
// 参见 这个js中的Designer.events.addEventListener("created", function(a)
|
||
// {}函数,改为图形创建时增加私有属性
|
||
$("#tagContentTable0").empty();
|
||
attributesJsonArray = attributesJsonArrayT;
|
||
// $("#attribute_name_td_content").html(shape.title);
|
||
// $("input[name=attribute_desc_input]").val(shape.text);
|
||
var shapeTitle = shape.title == undefined ? "" : shape.title;
|
||
if (shape.name === "linker") {
|
||
$("#attribute_name_td_content").html("连线");
|
||
} else {
|
||
$("#attribute_name_td_content").html(shapeTitle);
|
||
}
|
||
if (shape.text == "") {
|
||
$("span[name=attribute_desc_input]").text(shapeTitle);
|
||
} else {
|
||
if (shape.text.length > 15) {
|
||
var tempText = shape.text;
|
||
tempText = tempText.substring(0, 15)
|
||
$("span[name=attribute_desc_input]").text(shape.text).attr(
|
||
"awsui-qtip", shape.text);
|
||
} else {
|
||
$("span[name=attribute_desc_input]").text(shape.text);
|
||
}
|
||
}
|
||
// $("input[name=attribute_desc_input]").val(shape.text);
|
||
// $("#attribute_name_td_desc").val(shape.shapeDesc);
|
||
// 此处遍历attributesJsonArray输入 内容
|
||
if (attributesJsonArray.length != 0) {
|
||
getPrivateAttributeHtml(attributesJsonArray, "tagContentTable0", shape);
|
||
}
|
||
}
|
||
$("#dock_content_attribute").show();
|
||
$("#attr_no_more_attribute_id").hide();
|
||
}
|
||
}
|
||
function initUserAddressForShape(objIds, shapeId, shapeName) {
|
||
$.each(objIds, function(key, value){
|
||
var objId = value;
|
||
var inputId = "attribute_name_input_"+objId;
|
||
var option = {
|
||
callback: function(){
|
||
var inputValue = $("#" + inputId).val();
|
||
updateAttributeById(objId, inputValue);
|
||
// 保存数据库
|
||
saveAddressShapeData(shapeId, objId, 'userAddress', inputValue, shapeName);
|
||
// 绑定单个删除事件
|
||
deleteAddress(inputId);
|
||
},
|
||
clearCallback: function(){
|
||
var inputValue = $("#" + inputId).val();
|
||
updateAttributeById(objId, inputValue);
|
||
// 保存数据库
|
||
saveAddressShapeData(shapeId, objId, 'userAddress', inputValue, shapeName);
|
||
},
|
||
filter : {
|
||
"addressSetting" : {
|
||
"delimiter" : " ",
|
||
"filterClass" : "",
|
||
"isDisplayMap" : false,
|
||
"isDisplayOtherMap" : false,
|
||
"layerFrom" : "",
|
||
"layerTo" : "",
|
||
"leafType" : "user",
|
||
"choiceType": "multiple",
|
||
"range" : "department|role|team",
|
||
"rootDetpId" : ""
|
||
},
|
||
"addressType" : "user",
|
||
"isAdvMode" : true,
|
||
"sourceField" : "UID",
|
||
"targetField" : inputId
|
||
},
|
||
inDialog : true
|
||
};
|
||
$("#" + inputId).address(option);
|
||
// 单个元素删除事件
|
||
deleteAddress(inputId);
|
||
});
|
||
}
|
||
|
||
function getRelationAddress(userObjIds, shapeId) {
|
||
// 查询关联数据
|
||
$.ajax({
|
||
type : 'POST',
|
||
url:"./jd",
|
||
async:false,
|
||
data:{
|
||
sid : CLB.sid,
|
||
cmd : "com.actionsoft.apps.coe.pal_pl_repository_designer_address_shape_query",
|
||
uuid : ruuid,
|
||
objIds : JSON.stringify(userObjIds),
|
||
shapeId : shapeId
|
||
},
|
||
success : function(r) {
|
||
$.each(userObjIds, function(key, value) {
|
||
var objId = value;
|
||
var inputId = "attribute_name_input_"+objId;
|
||
$("#" + inputId).val(r.data.data[objId]).trigger("change");
|
||
deleteAddress(inputId);
|
||
});
|
||
}
|
||
});
|
||
|
||
}
|
||
|
||
function getRelationAddressNames(objIds, shapeId, type) {
|
||
// 查询关联数据
|
||
$.ajax({
|
||
type : 'POST',
|
||
url:"./jd",
|
||
async:false,
|
||
data:{
|
||
sid : CLB.sid,
|
||
cmd : "com.actionsoft.apps.coe.pal_pl_repository_designer_address_names_shape_query",
|
||
uuid : ruuid,
|
||
objIds : JSON.stringify(objIds),
|
||
shapeId : shapeId,
|
||
type : type
|
||
},
|
||
success : function(r) {
|
||
$.each(objIds, function(key, value) {
|
||
var objId = value;
|
||
var inputId = "attribute_name_input_"+objId;
|
||
$("#" + inputId).val(r.data.data[objId]);
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
function initDeptAddressForShape(objIds, shapeId, shapeName) {
|
||
$.each(objIds, function(key, value) {
|
||
var objId = value;
|
||
var inputId = "attribute_name_input_"+objId;
|
||
var inputHiddenId = "attribute_name_input_"+objId+"_hidden";
|
||
var targetField = inputId + "," + inputHiddenId;
|
||
|
||
var options = {
|
||
callback : function() {
|
||
var inputValue = $('#' + inputId).val();
|
||
updateAttributeById(objId, inputValue);
|
||
// 保存数据库
|
||
saveAddressShapeData(shapeId, objId, 'deptAddress', inputValue, shapeName);
|
||
// 单个删除删除
|
||
deleteAddress(inputId);
|
||
},
|
||
clearCallback : function() {
|
||
var inputValue = $('#' + inputId).val();
|
||
updateAttributeById(objId, inputValue);
|
||
// 保存数据库
|
||
saveAddressShapeData(shapeId, objId, 'deptAddress', inputValue, shapeName);
|
||
},
|
||
filter : {
|
||
addressType: "dept",//地址簿类型
|
||
addressSetting: {
|
||
range: "department",//department:部门,role:角色,team:团队
|
||
delimiter: " ",
|
||
choiceType: "multiple",//single:单选; multiple:多选
|
||
leafType: "dept"//叶子节点类型,user:用户;dept:部门
|
||
},
|
||
//字典的数据源字段,通常是orguser表中的字段 ,多个用逗号隔开;回填值选择:
|
||
deptSourceField : "DEPTID",
|
||
deptTargetField : inputId
|
||
},
|
||
valueType : 0, //0:aliasname; 1:uid; 2:username
|
||
separator : " "//逗号 空格……分隔符
|
||
};
|
||
$("#" + inputId).address(options);
|
||
});
|
||
}
|
||
|
||
// 地址簿单个元素删除
|
||
function deleteAddress(inputId) {
|
||
// 单个删除删除
|
||
var id = 'awsui-address-' + inputId;
|
||
$('#' + id+ ' .awsui-item-del').off('mousedown').mousedown(function(){
|
||
var div = $(this).parent();
|
||
var deleteValue = div.attr("value") || div.attr("id");
|
||
// 保存数据库
|
||
var $input = div.parent().find('input:first');
|
||
var inputValue = $input.val();
|
||
var shapeId = $input.attr('shapeId');
|
||
var shapeName = '';
|
||
var inputType = $input.attr('inputtype');
|
||
var objId = $input.attr('objid');
|
||
// 获取节点名称
|
||
var elements = Model.define.elements;
|
||
for (var i in elements) {
|
||
if (i == shapeId) {
|
||
shapeName = elements[i].text;
|
||
break;
|
||
}
|
||
}
|
||
var tempArr = inputValue.split(' ');
|
||
var value = '';
|
||
for (var i = 0; i < tempArr.length; i++) {
|
||
if (tempArr[i] == deleteValue) continue;
|
||
value += tempArr[i];
|
||
if (i < tempArr.length - 1) {
|
||
value += ' ';
|
||
}
|
||
}
|
||
saveAddressShapeData(shapeId, objId, inputType, value, shapeName);
|
||
});
|
||
}
|
||
|
||
// 保存地址簿选中的数据
|
||
function saveAddressShapeData(shapeId, objId, addressType, value, shapeText) {
|
||
$.ajax({
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_address_shape_data_save",
|
||
type : 'POST',
|
||
async : false,
|
||
data : {
|
||
data : JSON.stringify({
|
||
uuid : ruuid,
|
||
shapeId : shapeId,
|
||
attrId : objId,
|
||
addressType : addressType,
|
||
value : value,
|
||
shapeText : shapeText
|
||
})
|
||
},
|
||
success : function(r) {
|
||
var inputId = "attribute_name_input_"+objId;
|
||
$("#" + inputId).val(value).trigger("change");
|
||
deleteAddress(inputId);
|
||
}
|
||
})
|
||
}
|
||
|
||
//获取关联形状文本
|
||
function getRelevanceShapeNameByShapeId(objIds, shapeId) {
|
||
var elements = Model.define.elements;
|
||
var shapeName = '';
|
||
var shapeCategory = '';
|
||
for (var i in elements) {
|
||
if (i == shapeId) {
|
||
shapeName = elements[i].name;
|
||
shapeCategory = elements[i].category;
|
||
break;
|
||
}
|
||
}
|
||
if (shapeName == '') {
|
||
return;
|
||
}
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_relevance_name",
|
||
data : {
|
||
fileId : ruuid,
|
||
shapeId : shapeId,
|
||
shapeName: shapeName,
|
||
shapeCategory: shapeCategory == 'lane' ? methodId : shapeCategory
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
var list = msg.data.relationModelList;
|
||
var shapeRefObj = msg.data.shapeRefObj;
|
||
for (var i = 0; i < objIds.length; i++) {
|
||
var objId = objIds[i];
|
||
var shapeNames = [];
|
||
var shapeRelationValue = [];
|
||
var ref = shapeRefObj[objId];
|
||
var relationType = ref.type
|
||
for (var j = 0; j < list.length; j++) {
|
||
if (list[j].attrId == objId) {
|
||
shapeNames.push(list[j].relationShapeText);
|
||
if (relationType == 'file') {
|
||
shapeRelationValue.push(list[j].relationFileId);
|
||
} else {
|
||
shapeRelationValue.push(list[j].relationShapeId);
|
||
}
|
||
}
|
||
}
|
||
$("input[objid='" + objId + "']").val(shapeNames.join(","));
|
||
$("input[objid_shapeId='" + objId + "']").val(shapeRelationValue.join(","));
|
||
$("input[objid_shapeId='" + objId + "']").attr('ref', JSON.stringify(ref));
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
// 关联aws组织
|
||
function openOrganizationRelationDig(obj,value) {
|
||
var shapeAwsOrgValue = $("input[objid_shapeId='" + $(obj).attr("objid") + "']").val();
|
||
var ref = $("input[objid_shapeId='" + $(obj).attr("objid") + "']").attr("ref");
|
||
var id = sid;
|
||
var wsId = $("#wsId").val();
|
||
selectShape = Utils.getSelected()[0];
|
||
var shape = selectShape;
|
||
var title = "添加AWS PaaS平台组织";
|
||
var conObj = $("#attr_dialog_normal_relevance_aws_div").empty();
|
||
var str = '<iframe width="100%" id="attr_content_iframe_relevance_aws" name="attr_content_iframe_relevance_aws" frameBorder="0" style="width: 100%; height: 318px;"></iframe>';
|
||
conObj.append(str);
|
||
$("#attr_dialog_normal_relevance_aws_div").attr("title", title);
|
||
$('#attr_content_iframe_relevance_aws').attr(
|
||
'src', "./w?sid=" + id
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_aws_org_page"
|
||
+ "&wsId=" + wsId
|
||
+ "&ref=" + encodeURI(ref)
|
||
+ "&fileId=" + ruuid
|
||
+ "&shapeId=" + shape.id
|
||
+ "&attrId=" + $(obj).attr("objid"));
|
||
$("#attr_dialog_normal_relevance_aws_div").dialog({
|
||
buttons : [{
|
||
text : '确定',
|
||
cls : "blue",
|
||
handler : function() {
|
||
//getRelevanceAwsOrgData($(obj).attr("objid"));
|
||
var tmpObjId = $(obj).attr("objid");
|
||
getRelevanceAwsOrgData(tmpObjId,value);
|
||
var tmpShape = Utils.getSelected()[0];
|
||
var tmpTitle = tmpShape.title;
|
||
if (tmpShape.name == "linker") {
|
||
return;
|
||
}
|
||
if (tmpTitle.indexOf("泳道") > -1 || tmpTitle.indexOf("泳池") > -1 || tmpTitle.indexOf("分隔") > -1) {
|
||
return;
|
||
}
|
||
if (isForceShowError && tmpAttrIdValue.indexOf(tmpObjId) > -1) {
|
||
$.simpleAlert("已设置不允许修改,请在应用参数中设置", 'error');
|
||
isForceShowError = false;
|
||
}
|
||
tmpAttrIdValue = [];
|
||
}
|
||
}, {
|
||
text : '关闭',
|
||
handler : function() {
|
||
$("#attr_dialog_normal_relevance_aws_div").dialog('close');
|
||
}
|
||
}]
|
||
});
|
||
}
|
||
|
||
//得到关联的平台组织
|
||
function getRelevanceAwsOrgData(objId,attributeValue) {
|
||
$("#attr_dialog_normal_relevance_aws_div").dialog('close');
|
||
selectShape = Utils.getSelected()[0];
|
||
var shape = selectShape;
|
||
if (!shape) {
|
||
return;
|
||
}
|
||
var obj = attr_content_iframe_relevance_aws.getRelevanceAwsData();
|
||
var checkedOrgList = [];
|
||
for (var i in obj) {
|
||
checkedOrgList.push(obj[i]);
|
||
}
|
||
|
||
|
||
var shapesObj = [];
|
||
var relevanceShapes = [];
|
||
|
||
var shapeGroupId = "";
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.shapeGroupId != undefined && attr.shapeGroupId != "") {
|
||
shapeGroupId = attr.shapeGroupId;
|
||
break;
|
||
}
|
||
}
|
||
shape = getAwsOrgAttributeByAttrId(shape, objId, checkedOrgList);
|
||
// 更新数据库
|
||
saveRelevanceAwsOrgShapesTODB1(checkedOrgList, shape.id, shape.text, $("title").text(), shapeGroupId, objId, shape,attributeValue);
|
||
}
|
||
|
||
//得到不同属性值关联的形状
|
||
function getAwsOrgAttributeByAttrId(shape, objId, checkedOrgList) {
|
||
//objId 属性的key值
|
||
var exitAttributesJsonArray = [];
|
||
var attrArr = []; //修改后的属性值
|
||
|
||
for (var i = 0; i < checkedOrgList.length; i++) {
|
||
var shapeObjT = checkedOrgList[i];
|
||
attrArr.push(shapeObjT.id);
|
||
}
|
||
attrArr = attrArr.unique(); //属性值去重
|
||
if (attrArr.length > 0) {
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
exitAttributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var c = 0; c < exitAttributesJsonArray.length; c++) {
|
||
var el = exitAttributesJsonArray[c];
|
||
if(el == null) continue;
|
||
if (el.id == objId) {
|
||
el.value = attrArr.join(",");
|
||
break;
|
||
}
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = exitAttributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var j = 0, len = attrArr.length; j < len; j++) {
|
||
var attrShapeId = attrArr[j];
|
||
relationShapesObject[attrShapeId] = {"relationAwsOrg" : attrShapeId};
|
||
}
|
||
$("input[objid_shapeId='" + objId + "']").val(attrArr.join(","));
|
||
} else {
|
||
$("input[objid_shapeId='" + objId + "']").val("");
|
||
}
|
||
return shape;
|
||
}
|
||
|
||
//将关联关系保存到数据库(AWS org)
|
||
function saveRelevanceAwsOrgShapesTODB1(shapesObj, shapeId, shapeName, fileName, shapeGroupId, objId, shape,attributeValue) {
|
||
if (attributeValue.isRequired && shapesObj.length == 0) {
|
||
$("input[objid='" + objId + "']").val('');
|
||
$("input[objid='" + objId + "']").attr('placeholder',attributeValue.name + '不能为空')
|
||
$("input[objid='" + objId + "']").addClass("required_input_css");
|
||
return;
|
||
}
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_aws_org_relevance_save",
|
||
data : {
|
||
relationAwsOrg : json2String(shapesObj),
|
||
shapeId : shapeId,
|
||
fileId : ruuid,
|
||
shapeGroupId : shapeGroupId,
|
||
attrId : objId,
|
||
shapeText : shapeName
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
var name = [];
|
||
var name1 = [];
|
||
var name2 = [];
|
||
var name3 = [];
|
||
var name4 = [];
|
||
for (var i = 0; i < shapesObj.length; i++) {
|
||
if (shapesObj[i].type == 'department') {
|
||
name1.push(shapesObj[i].name);
|
||
}
|
||
if (shapesObj[i].type == 'user') {
|
||
name2.push(shapesObj[i].name);
|
||
}
|
||
if (shapesObj[i].type == 'position') {
|
||
name3.push(shapesObj[i].name);
|
||
}
|
||
if (shapesObj[i].type == 'role') {
|
||
name4.push(shapesObj[i].name);
|
||
}
|
||
}
|
||
if (name1.length > 0) {
|
||
name = name.concat(name1);
|
||
}
|
||
if (name2.length > 0) {
|
||
name = name.concat(name2);
|
||
}
|
||
if (name3.length > 0) {
|
||
name = name.concat(name3);
|
||
}
|
||
if (name4.length > 0) {
|
||
name = name.concat(name4);
|
||
}
|
||
$("input[objid='" + objId + "']").val(name.join(","));
|
||
var relationShapeIds = $("input[objid_shapeId='" + objId + "']").val();
|
||
if (relationShapeIds.indexOf(",")) {
|
||
relationShapeIds = relationShapeIds.split(",");
|
||
}
|
||
//修改文件中保存的属性值
|
||
var tempArray = [];
|
||
var count = 0;
|
||
var attributesJsonArray = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < attributesJsonArray.length; index++) {
|
||
var tempObj = attributesJsonArray[index];
|
||
if(tempObj == null) continue;
|
||
if (tempObj.id == objId) {
|
||
tempObj.value = relationShapeIds;
|
||
}
|
||
tempArray[count++] = tempObj;
|
||
}
|
||
|
||
shape.attributesJsonArray = tempArray;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
relationShapeModelObject[shapeId + "_" + objId] = name;
|
||
}
|
||
Model.update(shape);
|
||
}
|
||
});
|
||
}
|
||
|
||
//获取关联形状文本
|
||
function getRelevanceAwsOrgNameByShapeId(objIds, shapeId) {
|
||
var elements = Model.define.elements;
|
||
var shapeName = '';
|
||
var shapeCategory = '';
|
||
for (var i in elements) {
|
||
if (i == shapeId) {
|
||
shapeName = elements[i].name;
|
||
shapeCategory = elements[i].category;
|
||
break;
|
||
}
|
||
}
|
||
if (shapeName == '') {
|
||
return;
|
||
}
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_aws_org_relevance_name_query",
|
||
data : {
|
||
fileId : ruuid,
|
||
shapeId : shapeId,
|
||
shapeName: shapeName,
|
||
shapeCategory: shapeCategory == 'lane' ? methodId : shapeCategory
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == 'ok') {
|
||
var data = msg.data.attrData;
|
||
var shapeRefObj = msg.data.shapeRefObj;
|
||
for (var i = 0; i < objIds.length; i++) {
|
||
var objId = objIds[i];
|
||
var ref = shapeRefObj[objId];
|
||
if (data[objId] != undefined) {
|
||
// 按照部门人员角色排序
|
||
var tempArr = data[objId];
|
||
var name = [];
|
||
var name1 = [];
|
||
var name2 = [];
|
||
var name3 = [];
|
||
var name4 = [];
|
||
for (var j = 0; j < tempArr.length; j++) {
|
||
if (tempArr[j].type == 'department') {
|
||
name1.push(tempArr[j].name);
|
||
}
|
||
if (tempArr[j].type == 'user') {
|
||
name2.push(tempArr[j].name);
|
||
}
|
||
if (tempArr[j].type == 'position') {
|
||
name3.push(tempArr[j].name);
|
||
}
|
||
if (tempArr[j].type == 'role') {
|
||
name4.push(tempArr[j].name);
|
||
}
|
||
}
|
||
if (name1.length > 0) {
|
||
name = name.concat(name1);
|
||
}
|
||
if (name2.length > 0) {
|
||
name = name.concat(name2);
|
||
}
|
||
if (name3.length > 0) {
|
||
name = name.concat(name3);
|
||
}
|
||
if (name4.length > 0) {
|
||
name = name.concat(name4);
|
||
}
|
||
$("input[objid='" + objId + "']").val(name.join(","));
|
||
}
|
||
$("input[objid_shapeId='" + objId + "']").attr('ref', JSON.stringify(ref));
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
|
||
// 形状关联弹窗
|
||
function openRelationDig(obj,value) {
|
||
debugger;
|
||
var shapeRelationValue = $("input[objid_shapeId='" + $(obj).attr("objid") + "']").val();
|
||
var ref = $("input[objid_shapeId='" + $(obj).attr("objid") + "']").attr("ref"); // shape file shapeAndFile
|
||
var relationShapeIds = '';
|
||
var relationFileIds = '';
|
||
if (JSON.parse(ref).type == 'file') {
|
||
relationFileIds = shapeRelationValue;
|
||
} else {
|
||
relationShapeIds = shapeRelationValue;
|
||
}
|
||
var methodId=JSON.parse(ref).method;
|
||
var id = sid;
|
||
var wsId = $("#wsId").val();
|
||
var shape = Utils.getSelected()[0];
|
||
var title = $(obj).closest('tr').find('td:first').text().replace('*','');
|
||
if (title == undefined || title == '') {
|
||
title = "添加关联形状";
|
||
}
|
||
var conObj = $("#attr_dialog_normal_relevance_shapes_div").empty();
|
||
var str = '<iframe width="100%" id="attr_content_iframe_relevance_shapes" name="attr_content_iframe_relevance_shapes" frameBorder="0" style="width: 100%; height: 318px;"></iframe>';
|
||
conObj.append(str);
|
||
|
||
var getteamId=$('#teamId').val()==undefined?"":$('#teamId').val();
|
||
|
||
$("#attr_dialog_normal_relevance_shapes_div").attr("title", title);
|
||
$('#attr_content_iframe_relevance_shapes').attr(
|
||
'src', "./w?sid=" + id
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_shapes_tree"
|
||
+ "&wsId=" + wsId
|
||
+ "&ref=" + ref
|
||
+ "&shapeId=" + shape.id
|
||
+ "&attrId=" + $(obj).attr("objid")
|
||
+ "&relationShapeIds=" + relationShapeIds
|
||
+ "&relationFileIds=" + relationFileIds
|
||
+ "&ruuid=" + ruuid);
|
||
if(methodId=="org.role"){
|
||
//根据角色
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_find_same_role",
|
||
data : {
|
||
uuid:ruuid,
|
||
methodId:methodId
|
||
},
|
||
success : function(msg) {
|
||
if (msg.data.result == "ok" ) {
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog({
|
||
buttons : [
|
||
{
|
||
text : '跳转模型',
|
||
cls : "blue",
|
||
handler : function() {
|
||
var clickNodeId=document.getElementById("attr_content_iframe_relevance_shapes").contentWindow.getClickNodeId();
|
||
if(clickNodeId==''){
|
||
$.simpleAlert("请选择需要打开的流程!", 'warning');
|
||
}else{
|
||
var url="./w?uuid=" +clickNodeId+"&teamId="+getteamId
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer&sid=" + encodeURIComponent($('#sid').val());
|
||
window.open(url);
|
||
}
|
||
|
||
|
||
}
|
||
},
|
||
{
|
||
text : '确定',
|
||
cls : "blue",
|
||
handler : function() {
|
||
var tmpObjId = $(obj).attr("objid");
|
||
getRelevanceShapes(tmpObjId,value);
|
||
var tmpShape = Utils.getSelected()[0];
|
||
var tmpTitle = tmpShape.title;
|
||
if (tmpShape.name == "linker") {
|
||
return;
|
||
}
|
||
if (tmpTitle.indexOf("泳道") > -1 || tmpTitle.indexOf("泳池") > -1 || tmpTitle.indexOf("分隔") > -1) {
|
||
return;
|
||
}
|
||
if (isForceShowError && tmpAttrIdValue.indexOf(tmpObjId) > -1) {
|
||
$.simpleAlert("已设置不允许修改,请在应用参数中设置", 'error');
|
||
isForceShowError = false;
|
||
}
|
||
tmpAttrIdValue = [];
|
||
}
|
||
}, {
|
||
text : '关闭',
|
||
handler : function() {
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog('close');
|
||
}
|
||
}]
|
||
});
|
||
}else{
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog({
|
||
buttons : [
|
||
{
|
||
text : '刷新',
|
||
cls : "yellow",
|
||
|
||
handler : function() {
|
||
// 刷新页面
|
||
document.getElementById("attr_content_iframe_relevance_shapes").contentWindow.location.reload(true);
|
||
}
|
||
},{
|
||
text : '跳转模型',
|
||
cls : "blue",
|
||
handler : function() {
|
||
var clickNodeId=document.getElementById("attr_content_iframe_relevance_shapes").contentWindow.getClickNodeId();
|
||
if(clickNodeId==''){
|
||
$.simpleAlert("请选择需要打开的流程", 'warning');
|
||
}else{
|
||
var url="./w?uuid=" +clickNodeId+"&teamId="+getteamId
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer&sid=" + encodeURIComponent($('#sid').val());
|
||
window.open(url);
|
||
}
|
||
|
||
}
|
||
}
|
||
,{
|
||
text : "新建角色模型",
|
||
cls : "green",
|
||
handler : function() {
|
||
//根据角色
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_find_same_role",
|
||
data : {
|
||
uuid:ruuid,
|
||
methodId:methodId
|
||
},
|
||
async: false,
|
||
success : function(msg) {
|
||
if (msg.data.result == "ok") {
|
||
window.top.$.simpleAlert("请勿重复新建角色模型!!!");
|
||
}else{
|
||
|
||
//跳转角色
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_createDialogModel",
|
||
data : {
|
||
uuid:ruuid,
|
||
methodId:methodId,
|
||
wsId:wsId,
|
||
teamId : $('#teamId').val()
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
//关闭新建按钮
|
||
$(".dlg-button button").eq(2).hide();
|
||
window.open("./w?uuid=" + msg.data.uuid+"&teamId="+getteamId
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer&sid=" + encodeURIComponent($('#sid').val()));
|
||
}
|
||
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
|
||
}
|
||
}, {
|
||
text : '确定',
|
||
cls : "blue",
|
||
handler : function() {
|
||
var tmpObjId = $(obj).attr("objid");
|
||
getRelevanceShapes(tmpObjId,value);
|
||
var tmpShape = Utils.getSelected()[0];
|
||
var tmpTitle = tmpShape.title;
|
||
if (tmpShape.name == "linker") {
|
||
return;
|
||
}
|
||
if (tmpTitle.indexOf("泳道") > -1 || tmpTitle.indexOf("泳池") > -1 || tmpTitle.indexOf("分隔") > -1) {
|
||
return;
|
||
}
|
||
if (isForceShowError && tmpAttrIdValue.indexOf(tmpObjId) > -1) {
|
||
$.simpleAlert("已设置不允许修改,请在应用参数中设置", 'error');
|
||
isForceShowError = false;
|
||
}
|
||
tmpAttrIdValue = [];
|
||
}
|
||
}, {
|
||
text : '关闭',
|
||
handler : function() {
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog('close');
|
||
}
|
||
}]
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}else{
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog({
|
||
buttons : [
|
||
{
|
||
text : '跳转模型',
|
||
cls : "blue",
|
||
handler : function() {
|
||
// 刷新页面
|
||
document.getElementById("attr_content_iframe_relevance_shapes").contentWindow.location.reload(true);
|
||
}
|
||
},
|
||
{
|
||
text : '确定',
|
||
cls : "blue",
|
||
handler : function() {
|
||
var tmpObjId = $(obj).attr("objid");
|
||
getRelevanceShapes(tmpObjId,value);
|
||
var tmpShape = Utils.getSelected()[0];
|
||
var tmpTitle = tmpShape.title;
|
||
if (tmpShape.name == "linker") {
|
||
return;
|
||
}
|
||
if (tmpTitle.indexOf("泳道") > -1 || tmpTitle.indexOf("泳池") > -1 || tmpTitle.indexOf("分隔") > -1) {
|
||
return;
|
||
}
|
||
if (isForceShowError && tmpAttrIdValue.indexOf(tmpObjId) > -1) {
|
||
$.simpleAlert("已设置不允许修改,请在应用参数中设置", 'error');
|
||
isForceShowError = false;
|
||
}
|
||
tmpAttrIdValue = [];
|
||
}
|
||
}, {
|
||
text : '关闭',
|
||
handler : function() {
|
||
$("#attr_dialog_normal_relevance_shapes_div").dialog('close');
|
||
}
|
||
}]
|
||
});
|
||
}
|
||
|
||
}
|
||
|
||
// 将关联关系保存到数据库
|
||
function saveRelevanceShapesTODB(shapesObj, shapeId, shapeName, fileName,
|
||
shapeGroupId, objId, shape,attributeValue) {
|
||
//itsystem(it系统)加新建的角标(SAP OA ERP HR等分类)
|
||
/*if("itsystem" == objId) {
|
||
var itsystemFlag = {
|
||
"w":30,
|
||
"h":30,
|
||
"textw": 20,
|
||
"texth": 17,
|
||
"imgT": 0,
|
||
"category":"custom",
|
||
"icon":"",
|
||
"name":"itsystem_mark_unique", //it系统区分其他属性的角标的标识
|
||
"showName":false,
|
||
"showType":"text", //text icon
|
||
"type":"string",
|
||
"value":"SAP",
|
||
"horizontal":"right",
|
||
"vertical":"mosttop",
|
||
"radius":5,
|
||
"title":""};
|
||
var needMark = false; //是否需要角标
|
||
var markName = "";
|
||
if(shapesObj && shapesObj.length > 0) {
|
||
needMark = true;
|
||
markName = shapesObj[0].relationShapeText;
|
||
if(shapesObj.length > 1) {
|
||
markName += "...";
|
||
}
|
||
}
|
||
var haveCornerMark = false; //之前是否已经存在角标
|
||
if(!shape.dataAttributes){
|
||
shape.dataAttributes = [];
|
||
}
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var dataAttribute = shape.dataAttributes[i];
|
||
if(dataAttribute.name && dataAttribute.name == "itsystem_mark_unique") {//寻找it系统区分其他属性的角标的标识
|
||
itsystemFlag = dataAttribute; //从存在的图形中取角标
|
||
haveCornerMark = true;
|
||
break;
|
||
}
|
||
}
|
||
|
||
/*这样判断之前是否存在角标的方法不准确var attributesJsonArray = shape.attributesJsonArray;
|
||
if(attributesJsonArray) {
|
||
for(var i = 0; i < attributesJsonArray.length; i++) {
|
||
var nodeAttrObj = attributesJsonArray[i];
|
||
if(nodeAttrObj != null && nodeAttrObj.key == "itsystem") {
|
||
if(nodeAttrObj.value) {
|
||
haveCornerMark = true;
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
} * /
|
||
|
||
if(haveCornerMark) {
|
||
//之前有角标
|
||
if(needMark) { //需要角标
|
||
itsystemFlag.value = markName;
|
||
Designer.updateDataAttributeById(shapeId, itsystemFlag);
|
||
} else {//不需要角标
|
||
itsystemFlag.value = "";
|
||
Designer.updateDataAttributeById(shapeId, itsystemFlag);
|
||
}
|
||
} else {
|
||
//之前无角标
|
||
if(needMark) {//需要角标
|
||
itsystemFlag.value = markName;
|
||
Designer.addDataAttributeById(shapeId, itsystemFlag);
|
||
} else {//不需要角标
|
||
//
|
||
}
|
||
}
|
||
}*/
|
||
|
||
//添加关联属性时,更新relationShapeModelObject的值
|
||
if (attributeValue.isRequired && shapesObj.length == 0) {
|
||
$("input[objid='" + objId + "']").val('');
|
||
$("input[objid='" + objId + "']").attr('placeholder',attributeValue.name + '不能为空')
|
||
$("input[objid='" + objId + "']").addClass("required_input_css");
|
||
return;
|
||
}
|
||
var tmp = shapeId + '_' + objId;
|
||
relationShapeModelObject[tmp] = [];
|
||
if (shapesObj.length > 0) {
|
||
for (var i = 0; i < shapesObj.length; i++) {
|
||
var temp = shapesObj[i];
|
||
relationShapeModelObject[tmp].push(temp.relationShapeText);
|
||
}
|
||
}
|
||
//by bzp 校验角色和岗位不能同时选择
|
||
if(shape.category!="org_role"){
|
||
if(objId == 'role' || objId == 'post'){
|
||
if(objId == 'role'){
|
||
//判断岗位
|
||
var tmp = $("input[objid='post']").val();
|
||
if(tmp.length > 0){
|
||
$.simpleAlert("不能同时选择岗位和角色");
|
||
return;
|
||
}
|
||
}
|
||
if(objId == 'post'){
|
||
//判断角色
|
||
var tmp = $("input[objid='role']").val();
|
||
if(tmp.length > 0){
|
||
$.simpleAlert("不能同时选择岗位和角色");
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//by bzp end
|
||
var ref = $("input[objid_shapeId='" + objId + "']").attr("ref");
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_relation_shape_relevance_save",
|
||
data : {
|
||
relationShapes : json2String(shapesObj),
|
||
shapeId : shapeId,
|
||
fileUUID : ruuid,
|
||
shapeGroupId : shapeGroupId,
|
||
attrId : objId,
|
||
ref : ref
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
var list = msg.data.list;
|
||
var shapeNames = [];
|
||
var shapeRelationValue = [];
|
||
var relationType = JSON.parse(ref).type;
|
||
for (var j = 0; j < list.length; j++) {
|
||
if (list[j].attrId == objId) {
|
||
shapeNames.push(list[j].relationShapeText);
|
||
if (relationType == 'file') {
|
||
shapeRelationValue.push(list[j].relationFileId);
|
||
} else {
|
||
shapeRelationValue.push(list[j].relationShapeId);
|
||
}
|
||
}
|
||
}
|
||
$("input[objid='" + objId + "']").val(shapeNames.join(","));
|
||
$("input[objid_shapeId='" + objId + "']").val(shapeRelationValue.join(","));
|
||
|
||
// var relationShapeIds = $("input[objid_shapeId='" + objId + "']").val();
|
||
// var shapeNames = [];
|
||
// if (relationShapeIds.indexOf(",")) {
|
||
// relationShapeIds = relationShapeIds.split(",");
|
||
// for (var k = 0; k < msg.data.list.length; k++) {
|
||
// var list = msg.data.list[k];
|
||
// for (var p = 0; p < relationShapeIds.length; p++) {
|
||
// if (list.relationShapeId == relationShapeIds[p]) {
|
||
// shapeNames.push(list.relationShapeText);
|
||
// }
|
||
// }
|
||
// }
|
||
// $("input[objid='" + objId + "']").val(shapeNames.join(","));
|
||
// }
|
||
//修改文件中保存的属性值
|
||
var tempArray = [];
|
||
var count = 0;
|
||
var attributesJsonArray = [];
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attributesJsonArray = attr.attributesJsonArray;
|
||
break;
|
||
}
|
||
}
|
||
for (var index = 0; index < attributesJsonArray.length; index++) {
|
||
var tempObj = attributesJsonArray[index];
|
||
if(tempObj == null) continue;
|
||
if (tempObj.id == objId) {
|
||
tempObj.value = shapeRelationValue;
|
||
}
|
||
tempArray[count++] = tempObj;
|
||
}
|
||
|
||
shape.attributesJsonArray = tempArray;
|
||
for (var i = 0; i < shape.dataAttributes.length; i++) {
|
||
var attr = shape.dataAttributes[i];
|
||
if (attr.attributesJsonArray) {
|
||
attr.attributesJsonArray = tempArray;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
Model.update(shape);
|
||
}
|
||
});
|
||
}
|
||
|
||
// 获取boolean类型属性的option
|
||
var booleanComboboxs = [];
|
||
function getBooleanSelectOptions(booleanValues, shapeId) {
|
||
for (var i = 0; i < booleanValues.length; i++) {
|
||
var objId = booleanValues[i].objId;
|
||
var objValue = booleanValues[i].objValue;
|
||
var objType = booleanValues[i].objType;
|
||
var objOptions = booleanValues[i].objOptions;
|
||
var multiple = false;
|
||
var closeSelect = true;
|
||
var optionsData = objOptions;
|
||
if (optionsData) {
|
||
optionsData = optionsData.split(",");
|
||
var selectData = [];
|
||
var selectedData = [];
|
||
if(objValue != null && objValue != ''){
|
||
var selectedArr = objValue.split(',');
|
||
}
|
||
var y = 0;
|
||
selectData.push({id: '', text: '请选择'});// 默认一个空值
|
||
if (optionsData.length > 0) {
|
||
for (var j = 0, len = optionsData.length; j < len; j++) {
|
||
var dataObj = {
|
||
id : j,
|
||
text : optionsData[j]
|
||
};
|
||
selectData.push(dataObj);
|
||
if(objValue != null && objValue != ''){
|
||
for(var x = 0; x < selectedArr.length; x++){
|
||
if(selectedArr[x] == optionsData[j]){
|
||
selectedData[y] = j;
|
||
y++;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
$.fn.select2.defaults.set("language", "zh-CN");
|
||
var opt1 = {
|
||
width : 244,
|
||
multiple:multiple,
|
||
closeOnSelect:closeSelect,
|
||
placeholder:'请选择...',
|
||
minimumResultsForSearch: -1
|
||
};
|
||
opt1.data = selectData;
|
||
$("#attribute_name_input_" + objId).parent().css("padding-left", "0px");
|
||
var $obj = $("#attribute_name_input_" + objId).select2(opt1);
|
||
if(selectedData != null && selectedData != ''){
|
||
$("#attribute_name_input_" + objId).val(selectedData[0]).trigger("change");
|
||
}
|
||
$obj.off("select2:close").on("select2:close", function(e){
|
||
// var type = this.id.substring(this.id.lastIndexOf('_')+1);
|
||
var type = this.id.substr('attribute_name_input_'.length);
|
||
var selectValue = [];
|
||
var selected = $('#' + this.id).select2('data');
|
||
for(var j = 0; j < selected.length; j++){
|
||
selectValue[j] = selected[j].text;
|
||
}
|
||
booleanComboboxs[type] = selectValue.join(',');
|
||
saveSelectContent(type,booleanComboboxs[type], shapeId);
|
||
});
|
||
$("#attribute_name_input_" + objId + "_Tip").css({"float" : "left", "border" : "0"});
|
||
}
|
||
}
|
||
}
|
||
|
||
//获取select类型属性的option
|
||
var comboboxs = [];
|
||
function getSelectOptions(category, selectValues, shapeId) {
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_pl_attribute_option",
|
||
data : {
|
||
category : category
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
var data = msg.data.data;
|
||
for (var i = 0; i < selectValues.length; i++) {
|
||
var objId = selectValues[i].objId;
|
||
var objValue = selectValues[i].objValue;
|
||
var objType = selectValues[i].objType;
|
||
var multiple = false;
|
||
var closeSelect = true;
|
||
if (objType == "select_m") {
|
||
multiple = true;
|
||
// closeSelect = false;
|
||
}
|
||
var optionsData = data[objId];
|
||
if (optionsData) {
|
||
optionsData = optionsData.split(",");
|
||
|
||
/*var options = {
|
||
arrow:true,
|
||
width:239,
|
||
height:22,
|
||
autoHeight:false,
|
||
menuMaxHeight:230,
|
||
multiple:multiple,
|
||
placeholder:"请选择...",
|
||
seperator:",",
|
||
editable : false,
|
||
selectVal:objValue,
|
||
objId:objId,
|
||
select: function() {
|
||
$("#attribute_name_input_" + this.objId).val(comboboxs[this.objId].getValue());
|
||
saveInputContent($("#attribute_name_input_" + this.objId));
|
||
}
|
||
};
|
||
options.data = optionsData;
|
||
comboboxs[objId] = $("#attribute_name_input_" + objId).combobox(options);
|
||
$("#attribute_name_input_" + objId + "_Tip").css({"float" : "left", "border" : "0"});*/
|
||
|
||
var selectData = [];
|
||
var selectedData = [];
|
||
if(objValue != null && objValue != ''){
|
||
var selectedArr = objValue.split(',');
|
||
}
|
||
var y = 0;
|
||
if (objType == "select") {// 单选默认为空
|
||
selectData.push({id: '', text: '请选择'});
|
||
}
|
||
if (optionsData.length > 0) {
|
||
for (var j = 0, len = optionsData.length; j < len; j++) {
|
||
var dataObj = {
|
||
id : j,
|
||
text : optionsData[j]
|
||
};
|
||
selectData.push(dataObj);
|
||
if(objValue != null && objValue != ''){
|
||
for(var x = 0; x < selectedArr.length; x++){
|
||
if(selectedArr[x] == optionsData[j]){
|
||
selectedData[y] = j;
|
||
y++;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
$.fn.select2.defaults.set("language", "zh-CN");
|
||
var opt1 = {
|
||
width : 244,
|
||
multiple:multiple,
|
||
closeOnSelect:closeSelect,
|
||
/*templateResult:formatState,
|
||
templateSelection:formatRepoSelection,*/
|
||
placeholder:'请选择...'
|
||
};
|
||
opt1.data = selectData;
|
||
$("#attribute_name_input_" + objId).parent().css("padding-left", "0px");
|
||
var $obj = $("#attribute_name_input_" + objId).select2(opt1);
|
||
if(multiple){//多选
|
||
$("#attribute_name_input_" + objId).val(selectedData).trigger("change");
|
||
} else {//单选
|
||
if(selectedData != null && selectedData != ''){
|
||
$("#attribute_name_input_" + objId).val(selectedData[0]).trigger("change");
|
||
}
|
||
}
|
||
// $obj.off("select2:close").on("select2:close", function(e){//只能在关闭多选框时触发事件,close与unselect事件冲突,待完善
|
||
// // var type = this.id.substring(this.id.lastIndexOf('_')+1);
|
||
// var type = this.id.substr('attribute_name_input_'.length);
|
||
// var selectValue = [];
|
||
// var selected = $('#' + this.id).select2('data');
|
||
// for(var j = 0; j < selected.length; j++){
|
||
// selectValue[j] = selected[j].text;
|
||
// }
|
||
// comboboxs[type] = selectValue.join(',');
|
||
// saveSelectContent(type,comboboxs[type], shapeId);
|
||
// });
|
||
/*
|
||
下拉框方案:
|
||
1.select+unselect:选中与取消选中结合,每次选中值和取消选中值时都会刷新当前属性,导致多选框下拉框关闭,优势是可以在未展开下拉框的情况下监听点击"x"进行某项内容的取消
|
||
2.close+unselect:结合closeOnSelect(false),可以实现在下拉框关闭时才更新属性存储,可以实现在未展开下拉框的情况下监听点击"x"进行某项内容的取消,但是在展开下拉框时进行取消选中,会导致unselect事件被触发导致下拉框关闭
|
||
3.close:结合closeOnSelect(false),可以实现在下拉框关闭时才更新属性存储,选中与取消选中某项时都正常,但是在未展开下拉框的情况下进行某项内容的取消操作无效,因为没有unselect事件监听
|
||
*/
|
||
// 只能使用选中和取消选中事件,并且选中一项后因为内容要刷新会导致下拉框窗口关闭,如果使用下拉框close事件,如果是close+unselect结合,则则不支持在未展开下拉框的情况下取消选中
|
||
$obj.off("select2:select").on("select2:select",function(e){
|
||
var type = this.id.substr('attribute_name_input_'.length);
|
||
var selectValue = [];
|
||
var selected = $('#' + this.id).select2('data');
|
||
for(var j = 0; j < selected.length; j++){
|
||
selectValue[j] = selected[j].text;
|
||
}
|
||
comboboxs[type] = selectValue.join(',');
|
||
saveSelectContent(type,comboboxs[type], shapeId);
|
||
});
|
||
$obj.off("select2:unselect").on("select2:unselect", function (e) {
|
||
var type = this.id.substr('attribute_name_input_'.length);
|
||
var selectValue = [];
|
||
var selected = $('#' + this.id).select2('data');
|
||
for(var j = 0; j < selected.length; j++){
|
||
selectValue[j] = selected[j].text;
|
||
}
|
||
comboboxs[type] = selectValue.join(',');
|
||
saveSelectContent(type,comboboxs[type], shapeId);
|
||
});
|
||
$("#attribute_name_input_" + objId + "_Tip").css({"float" : "left", "border" : "0"});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
function getScreenResolution() {
|
||
if (screen.width == 1024) {
|
||
|
||
}
|
||
}
|
||
/**
|
||
* 图形创建后事件
|
||
*/
|
||
/*
|
||
* Designer.events.addEventListener("created", function(a) { //alert(a.name)
|
||
* if(a.name != "linker"){ attributeShowTabContent(null); //Model.update(a); }
|
||
* if (Designer.status == "demo" && !demoCreatedTiped) {
|
||
* UI.showStartStep("created", $("#" + a.id)); demoCreatedTiped = true } });
|
||
*/
|
||
|
||
// 重新流程手册导出并预览事件
|
||
UI.doOutputProcess = function() {
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_outputreport_output_process_check",
|
||
data : {
|
||
fileId : ruuid
|
||
},
|
||
success : function(r) {
|
||
if (r.result == "ok") {
|
||
var data = r.data.data;
|
||
if (data.length == 0) {
|
||
$.simpleAlert('无相关应用', 'error');
|
||
} else {
|
||
outputReport();
|
||
}
|
||
} else {
|
||
$.simpleAlert('流程不存在', 'error');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
//导出流程手册
|
||
function outputReport() {
|
||
$.simpleAlert('正在创建流程手册', 'loading');
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_outputreport_output_process_create",
|
||
data : {
|
||
wsId : $('#wsId').val(),
|
||
teamId : $('#teamId').val(),
|
||
fileId : ruuid
|
||
},
|
||
success : function(r) {
|
||
if(r.result == "ok") {
|
||
$.simpleAlert('正在打开', 'loading');
|
||
setTimeout(function(){
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_outputreport_output_process_preview",
|
||
data : {
|
||
taskId : r.data.taskId
|
||
},
|
||
success : function(msg) {
|
||
if (msg.result == "ok") {
|
||
$.simpleAlert("close");
|
||
if (msg['data']) {
|
||
var url = msg['data']['url'];
|
||
window.open(url);
|
||
}
|
||
} else {
|
||
$.simpleAlert("close");
|
||
$.simpleAlert(msg['msg'], 'info');
|
||
}
|
||
}
|
||
});
|
||
},2000);
|
||
} else {
|
||
$.simpleAlert('流程手册创建失败', 'error');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
//根据附件创建节点-打开dialog
|
||
UI.showImportShapeDlg = function() {
|
||
// 判断是否保存
|
||
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
|
||
$.simpleAlert('页面中有未保存的内容,请先保存');
|
||
return;
|
||
}
|
||
$("#shape_import_dlg").dialog({
|
||
width: 570,
|
||
height: 380,
|
||
buttons:[
|
||
{text:'确定',cls:"blue",handler:function(){
|
||
importShapeFile();
|
||
}},
|
||
{text:'取消',handler:function(){$("#shape_import_dlg").dialog("close");}}
|
||
],
|
||
onClose:delShapeFiles
|
||
});
|
||
}
|
||
|
||
var updatedShapeFileList = [];// 已上传的附件列表名称
|
||
|
||
// 保存附件
|
||
function importShapeFile() {
|
||
if(updatedShapeFileList.length == 0) {
|
||
$.simpleAlert('没有上传的附件,请点击取消或直接关闭');
|
||
return;
|
||
}
|
||
|
||
$.simpleAlert('正在保存', 'loading');
|
||
if (methodId == "data.form") {
|
||
type = "form";
|
||
} else if (methodId == "control.policy") {
|
||
type = "regulation";
|
||
} else {
|
||
$.simpleAlert('获取所需参数失败,请联系系统管理员', 'error');
|
||
}
|
||
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_shape_upfile_save",
|
||
data : {
|
||
sid: sid,
|
||
appId: "com.actionsoft.apps.coe.pal",
|
||
repositoryName: "tmp",
|
||
groupValue:"shapeFile",
|
||
ruuid:ruuid,
|
||
fileNames:JSON.stringify(updatedShapeFileList),
|
||
type:type
|
||
},
|
||
success : function(r) {
|
||
if(r.result == "ok") {
|
||
delShapeFiles();//清空界面数据
|
||
$.simpleAlert("close");
|
||
$.simpleAlert("保存成功", 'ok');
|
||
// 刷新页面
|
||
location.reload();
|
||
// if (parent.document.getElementById("main") != null) {// 流程资产库中刷新tab
|
||
// $.simpleAlert("保存成功,正在加载...","ok",1000,{callback:function() {
|
||
// parent.openDesginer(ruuid, 0, r.data.name, "", "");
|
||
// parent.closeTabById(ruuid);
|
||
// }});
|
||
//
|
||
// } else {// 流程团队中
|
||
// $.simpleAlert("保存成功,正在加载...","ok",1000,{callback:function() {
|
||
// var obj = {};
|
||
// obj.id = ruuid;
|
||
// obj.processDefId = "";
|
||
// parent.opener.openDesginer(obj);
|
||
// parent.close();
|
||
// }});
|
||
// }
|
||
} else {
|
||
$.simpleAlert("close");
|
||
console.log(r);
|
||
$.simpleAlert('保存失败', 'error');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
function delShapeFiles() {
|
||
$('#shapeFileTbody').empty();
|
||
updatedShapeFileList = [];
|
||
$.simpleAlert("close")
|
||
}
|
||
|
||
// 删除附件
|
||
function delShapeFile(obj) {
|
||
var $tr = $(obj).closest('tr');
|
||
var name = $tr.find('div[name="shapeFileName"]').text();
|
||
var options = {
|
||
title: "提示",
|
||
content: "删除 [" + name + "] ?",
|
||
onConfirm: function() {
|
||
$.simpleAlert('正在删除', 'loading');
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_shape_upfile_del",
|
||
data : {
|
||
sid: sid,
|
||
appId: "com.actionsoft.apps.coe.pal",
|
||
repositoryName: "tmp",
|
||
groupValue:"shapeFile",
|
||
ruuid:ruuid,
|
||
fileName:name
|
||
},
|
||
success : function(r) {
|
||
if(r.result == "ok") {
|
||
// 列表中删除
|
||
$tr.remove();
|
||
// 记录数组删除
|
||
var index = updatedShapeFileList.indexOf(name);
|
||
if (index > -1) {
|
||
updatedShapeFileList.splice(index, 1);
|
||
}
|
||
$.simpleAlert("close");
|
||
$.simpleAlert("删除成功", 'ok');
|
||
} else {
|
||
$.simpleAlert("close");
|
||
$.simpleAlert('删除失败', 'error');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
};
|
||
$.confirm(options);
|
||
}
|
||
|
||
// 新增上传附件
|
||
function addShapeFile() {
|
||
//初始化上传button
|
||
$("#upShapeFile").upfile({
|
||
sid: sid,
|
||
appId: "com.actionsoft.apps.coe.pal",
|
||
groupValue:"shapeFile",
|
||
fileValue:ruuid,
|
||
filesToFilter: [["Images (*.jpg; *.jpeg; *.gif; *.png; *.bmp)","*.jpg; *.jpeg; *.gif; *.png; *.bmp; *.pdf; *.doc; *.docx; *.xls; *.xlsx; *.ppt; *.pptx; *.txt"]],
|
||
repositoryName: "tmp",
|
||
numLimit : 0,
|
||
sizeLimit : 10 * 1024 * 1024,
|
||
complete:function(){
|
||
//事件回调函数
|
||
$.simpleAlert('close');
|
||
$.mask();
|
||
},
|
||
add: function(e, data) { //附件被添加到上传列表时触发,当返回false时,可阻止上传
|
||
if (data.files.length == 0) {
|
||
return false;
|
||
} else if (data.files[0].size > 10 * 1024 * 1024) {
|
||
$.simpleAlert("文件过大");
|
||
return false;
|
||
}
|
||
// 不能添加名称相同的附件
|
||
var fileName = data.files[0].name;
|
||
if (jQuery.inArray(fileName, updatedShapeFileList) == -1) {
|
||
updatedShapeFileList.push(fileName);
|
||
} else {
|
||
$.simpleAlert("不允许添加重名文件");
|
||
return false;
|
||
}
|
||
return true;
|
||
},
|
||
done: function(e, data) { //单个附件上传完毕后触发
|
||
var output = data;
|
||
if (output.textStatus == "warning") {
|
||
$.simpleAlert(output.message, output.type, 2000);
|
||
return false;
|
||
} else if (output.result.data.result == "error") {
|
||
$.simpleAlert(data.files[0].name + "上传错误", "error", 2000);
|
||
return false;
|
||
} else if (output.result.data.result == "ok") {
|
||
// 加载到列表
|
||
var html = '';
|
||
html += '<tr>';
|
||
html += '<td>';
|
||
html += '<div name="shapeFileName" class="text_overflow" widthpercent="60" style="width: 302.4px;">' + data.files[0].name + '</div>';
|
||
html += '</td>';
|
||
html += '<td style="text-align: center;">';
|
||
html += '<img src="../apps/com.actionsoft.apps.coe.pal/img/icon/pal_delete.png" onclick="delShapeFile(this)" awsui-qtip="删除">';
|
||
html += '</td>';
|
||
html += '</tr>';
|
||
$('#shapeFileTbody').append(html);
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
//by bzp 导入制度附件
|
||
UI.showImportPolicyFileDlg = function() {
|
||
// 判断是否保存
|
||
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
|
||
$.simpleAlert('页面中有未保存的内容,请先保存');
|
||
return;
|
||
}
|
||
$("#policyfile_import_dlg").dialog({
|
||
width: 570,
|
||
height: 380,
|
||
buttons:[
|
||
{text:'确定',cls:"blue",handler:function(){
|
||
importPolicyFile();
|
||
}},
|
||
{text:'取消',handler:function(){$("#policyfile_import_dlg").dialog("close");}}
|
||
],
|
||
onClose:delPolicyFiles
|
||
});
|
||
}
|
||
|
||
var updatedPolicyFileList = "";// 已上传的附件列表名称
|
||
|
||
// 保存附件
|
||
function importPolicyFile() {
|
||
if(updatedPolicyFileList.length == 0) {
|
||
$.simpleAlert('没有上传的附件,请点击取消或直接关闭');
|
||
return;
|
||
}
|
||
|
||
$.simpleAlert('正在保存', 'loading');
|
||
type = "regulation";
|
||
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal.policy_file_upfile_save",
|
||
data : {
|
||
sid: sid,
|
||
appId: "com.actionsoft.apps.coe.pal.datamigration",
|
||
repositoryName: "migration",
|
||
groupValue:"policyFile",
|
||
ruuid:ruuid,
|
||
fileNames:updatedPolicyFileList,
|
||
type:type
|
||
},
|
||
success : function(r) {
|
||
if(r.result == "ok") {
|
||
delPolicyFiles();//清空界面数据
|
||
$.simpleAlert("close");
|
||
$.simpleAlert("保存成功", 'ok');
|
||
// 刷新页面
|
||
location.reload();
|
||
} else {
|
||
$.simpleAlert("close");
|
||
console.log(r);
|
||
$.simpleAlert('保存失败', 'error');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
function delPolicyFiles() {
|
||
$('#shapeFileTbody').empty();
|
||
updatedPolicyFileList = "";
|
||
$.simpleAlert("close")
|
||
}
|
||
|
||
// 删除附件
|
||
function delPolicyFile(obj) {
|
||
var $tr = $(obj).closest('tr');
|
||
var name = $tr.find('div[name="shapeFileName"]').text();
|
||
var options = {
|
||
title: "提示",
|
||
content: "删除 [" + name + "] ?",
|
||
onConfirm: function() {
|
||
$.simpleAlert('正在删除', 'loading');
|
||
$.ajax({
|
||
type : "POST",
|
||
url : "./jd?sid="
|
||
+ CLB.sid
|
||
+ "&cmd=com.actionsoft.apps.coe.pal_processlevel_shape_upfile_del",
|
||
data : {
|
||
sid: sid,
|
||
appId: "com.actionsoft.apps.coe.pal.datamigration",
|
||
repositoryName: "migration",
|
||
groupValue:"policyFile",
|
||
ruuid:ruuid,
|
||
fileName:name
|
||
},
|
||
success : function(r) {
|
||
if(r.result == "ok") {
|
||
// 列表中删除
|
||
$tr.remove();
|
||
// 记录数组删除
|
||
updatedPolicyFileList = "";
|
||
|
||
$.simpleAlert("close");
|
||
$.simpleAlert("删除成功", 'ok');
|
||
} else {
|
||
$.simpleAlert("close");
|
||
$.simpleAlert('删除失败', 'error');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
};
|
||
$.confirm(options);
|
||
}
|
||
|
||
// 新增上传附件
|
||
function addPolicyFile() {
|
||
//初始化上传button
|
||
$("#pupShapeFile").upfile({
|
||
sid: sid,
|
||
appId: "com.actionsoft.apps.coe.pal.datamigration",
|
||
groupValue:"policyFile",
|
||
fileValue:ruuid,
|
||
filesToFilter: [["*.doc; *.docx"]],
|
||
repositoryName: "migration",
|
||
numLimit : 1,
|
||
sizeLimit : 10 * 1024 * 1024,
|
||
complete:function(){
|
||
//事件回调函数
|
||
$.simpleAlert('close');
|
||
$.mask();
|
||
},
|
||
add: function(e, data) { //附件被添加到上传列表时触发,当返回false时,可阻止上传
|
||
if (data.files.length == 0) {
|
||
return false;
|
||
} else if (data.files[0].size > 10 * 1024 * 1024) {
|
||
$.simpleAlert("文件过大");
|
||
return false;
|
||
}
|
||
// 不能添加名称相同的附件
|
||
var fileName = data.files[0].name;
|
||
updatedPolicyFileList = fileName;
|
||
return true;
|
||
},
|
||
done: function(e, data) { //单个附件上传完毕后触发
|
||
var output = data;
|
||
if (output.textStatus == "warning") {
|
||
$.simpleAlert(output.message, output.type, 2000);
|
||
return false;
|
||
} else if (output.result.data.result == "error") {
|
||
$.simpleAlert(data.files[0].name + "上传错误", "error", 2000);
|
||
return false;
|
||
} else if (output.result.data.result == "ok") {
|
||
// 加载到列表
|
||
var html = '';
|
||
html += '<tr>';
|
||
html += '<td>';
|
||
html += '<div name="shapeFileName" class="text_overflow" widthpercent="60" style="width: 302.4px;">' + data.files[0].name + '</div>';
|
||
html += '</td>';
|
||
html += '<td style="text-align: center;">';
|
||
html += '<img src="../apps/com.actionsoft.apps.coe.pal/img/icon/pal_delete.png" onclick="delPolicyFile(this)" awsui-qtip="删除">';
|
||
html += '</td>';
|
||
html += '</tr>';
|
||
$('#pshapeFileTbody').append(html);
|
||
}
|
||
}
|
||
});
|
||
} |