apps/com.actionsoft.apps.coe.pal/web/com.actionsoft.apps.coe.pal/lib/designer/extend/js/designer.extend.link.js
2022-07-18 16:45:39 +08:00

4457 lines
134 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

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

/**
* @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 = new Array();
}
var links_file = new Array();
var links_custom = new Array();
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) {
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, 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_!~*'().&amp;=+$%-]+: )?[0-9a-z_!~*'().&amp;=+$%-]+@)?" //
* 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_!~*'().;?:@&amp;=+$,%#-]+)+/?)$";
**********************************************************************/
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 = new Array();
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
+ '&nbsp;('
+ 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) {
// 属性排序
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 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="' + obj.desc + '" 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="' + obj.desc + '" 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="' + obj.desc + '" 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="' + obj.desc + '" 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="' + obj.desc + '" 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="' + obj.desc + '" 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="' + obj.desc + '" 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="' + obj.desc + '" 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" >&#xe7ff;</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 = new Array();
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 = new Array();
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 = new Array();
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 = new Array();
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 = new Array();
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 = new Array();
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;
}
}
}
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) {
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);
$("#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 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 : "green",
handler : function() {
//跳转角色
$.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
},
success : function(msg) {
if (msg.result == "ok") {
window.open("./w?uuid=" + msg.data.uuid+"&teamId"
+ "&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() {
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;
}
if (shapesObj.length > 0) {
for (var i = 0; i < shapesObj.length; i++) {
var temp = shapesObj[i];
var shapeIdAttrId = temp.shapeId + "_" + temp.attrId;
relationShapeModelObject[shapeIdAttrId] = temp.relationShapeText;
}
}
//by bzp 校验角色和岗位不能同时选择
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 = new Array();
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结合closeOnSelectfalse可以实现在下拉框关闭时才更新属性存储可以实现在未展开下拉框的情况下监听点击"x"进行某项内容的取消但是在展开下拉框时进行取消选中会导致unselect事件被触发导致下拉框关闭
3.close结合closeOnSelectfalse可以实现在下拉框关闭时才更新属性存储选中与取消选中某项时都正常但是在未展开下拉框的情况下进行某项内容的取消操作无效因为没有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);
}
}
});
}