去掉打开模型重置层级的操作;支持形状角标点击(即使层次低);定时保存3min一次

This commit is contained in:
446052889@qq.com 2024-01-26 12:34:29 +08:00
parent e248066129
commit 963b468bfa
6 changed files with 19536 additions and 29038 deletions

View File

@ -162,6 +162,13 @@
.dots .active {
background-color: #ff5000;
}
#autoSave_countdown {
display: none; /* 默认隐藏倒计时 */
float: left;
margin-left: 20px;
line-height: 28px;
color: #777;
}
</style>
<link rel="stylesheet" href="../commons/css/awsui.css">
<link rel="stylesheet" href="../apps/com.actionsoft.apps.coe.pal/lib/designer/extend/css/subprocess/iconfont.css">
@ -884,6 +891,8 @@
-->
</ul>
<div id="saving_tip"></div>
<!-- 倒计时显示 -->
<div id="autoSave_countdown"></div>
</div>
<div class="toolbar" >
<#saveUI>

View File

@ -1,25 +1,25 @@
$(function() {
$(function () {
recordShapeText();
$("#bar_save").off("click").on("click", function () {
if (isAutoSave == "1") {
var obj = Model.define;
//alert("保存");
var str = JSON.stringify(obj);
var imgPath = $("input[name='imgPath']").val();
$.base64.utf8encode = true;
var data = "jsonParams="+$.base64.btoa(str)+"&imgPath="+$.base64.btoa(imgPath);
$.ajax({
type: "POST",
url: "../coeTeamPalDesignerImageServlet.wf?&uuid="+chartId,
data: data,
if (isAutoSave == "1") {
var obj = Model.define;
//alert("保存");
var str = JSON.stringify(obj);
var imgPath = $("input[name='imgPath']").val();
$.base64.utf8encode = true;
var data = "jsonParams=" + $.base64.btoa(str) + "&imgPath=" + $.base64.btoa(imgPath);
$.ajax({
type: "POST",
url: "../coeTeamPalDesignerImageServlet.wf?&uuid=" + chartId,
data: data,
success: function (msg, textStatus, jqXHR) {
debugger;
if(msg=="true"){
alert("保存成功");
}else{
console.log(msg);
alert(msg);
}
if (msg == "true") {
alert("保存成功");
} else {
console.log(msg);
alert(msg);
}
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert(errorThrown, 'err');
@ -27,61 +27,66 @@ $(function() {
console.log(textStatus);
console.log(errorThrown)
}
});
}
else if (isAutoSave == "0") {
//保存开始时间戳
//var saveStartTime = new Date().getTime();
if (isCorrelateBpms) {
// if (type == "bpmn" && !isMarked && ($("#bar_rmark").length > 0 && $("#bar_rmark").is(":visible") || $("#bar_cancel_aws_correlate").length > 0 && $("#bar_cancel_aws_correlate").is(":visible"))) {
var op = "edit|"+processDefVersionId ;
saveDesigner(null, true, op, true);
} else {
if (methodId == "process.bpmn2" && isPalManage) {
BPMNBiz.validateBPMN(false, function(){save()});
} else {
save();
}
function save() {
$.simpleAlert("正在保存", "loading");
var params = {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_pl_repository_process_lock_state_check",
uuid: ruuid
};
$.ajax({
type: "POST",
url: "./jd",
data: params,
success: function (msg, textStatus, jqXHR) {
if (msg.result == 'ok') {
});
} else if (isAutoSave == "0") {
//保存开始时间戳
//var saveStartTime = new Date().getTime();
if (isCorrelateBpms) {
// if (type == "bpmn" && !isMarked && ($("#bar_rmark").length > 0 && $("#bar_rmark").is(":visible") || $("#bar_cancel_aws_correlate").length > 0 && $("#bar_cancel_aws_correlate").is(":visible"))) {
var op = "edit|" + processDefVersionId;
saveDesigner(null, true, op, true);
} else {
if (methodId == "process.bpmn2" && isPalManage) {
BPMNBiz.validateBPMN(false, function () {
save()
});
} else {
save();
}
function save() {
$.simpleAlert("正在保存", "loading");
var params = {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_pl_repository_process_lock_state_check",
uuid: ruuid
};
$.ajax({
type: "POST",
url: "./jd",
data: params,
success: function (msg, textStatus, jqXHR) {
if (msg.result == 'ok') {
var canSave = msg.data.canSave;
var lockUser = msg.data.lockUser;
if (!canSave) {
$.simpleAlert("该流程文件已被" + lockUser + "锁定", 'info', 2000, {callback:function() {
$.simpleAlert("该流程文件已被" + lockUser + "锁定", 'info', 2000, {
callback: function () {
BPMNBiz.refreshDesigner();//刷新
}});
}
});
} else {
initSaveFun();
}
} else {
$.simpleAlert(msg.msg, 'error', 1500, {callback:function() {
$.simpleAlert(msg.msg, 'error', 1500, {
callback: function () {
BPMNBiz.refreshDesigner();//刷新
}});
}
});
}
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert("close");
$.simpleAlert('保存失败', 'error', 1500);
}
});
}
function initSaveFun() {
},
error: function (jqXHR, textStatus, errorThrown) {
$.simpleAlert("close");
$.simpleAlert('保存失败', 'error', 1500);
}
});
}
function initSaveFun() {
Dock.showView('');
var obj = Model.define;
if (!obj.nodeLinkerRecord){
if (!obj.nodeLinkerRecord) {
obj.nodeLinkerRecord = definition.nodeLinkerRecord
}
var tempMessageArr = {};
@ -93,7 +98,7 @@ $(function() {
tempMessageArr[messageId] = messageArrayForSave[messageId];
}
var messageArray = JSON.stringify(tempMessageArr);
$.ajax({
$.ajax({
type: "POST",
url: "./jd",
data: {
@ -104,8 +109,6 @@ $(function() {
},
success: function (msg, textStatus, jqXHR) {
/*if(msg.result == "ok") {*/
$.ajax({
type: "POST",
url: "./jd",
@ -119,35 +122,36 @@ $(function() {
messages: messageArray
},
success: function (msg, textStatus, jqXHR) {
if(msg.result == "ok") {
if (msg.result == "ok") {
$.simpleAlert("close");
messageArrayForSave = {};
$("#saving_tip").css("color", "rgb(26, 164, 125)");
$("#saving_tip").text("保存成功");
recordShapeText();// 记录最新的节点及其文本text
//更多属性的处理,当节点处理完成后再处理更多属性
if (saveAttributesJson.length > 0 || removeAttributeJson.length > 0){
if (saveAttributesJson.length > 0 || removeAttributeJson.length > 0) {
$.ajax({
type : "POST",
url : "./jd",
data : {
sid : encodeURI(CLB.sid),
cmd : "com.actionsoft.apps.coe.pal_pl_repository_more_attribute_save",
wsId : $("#wsId").val(),
uuid : ruuid,
attributesJson : JSON.stringify(saveAttributesJson),
removeAttributeJson : JSON.stringify(removeAttributeJson)
type: "POST",
url: "./jd",
data: {
sid: encodeURI(CLB.sid),
cmd: "com.actionsoft.apps.coe.pal_pl_repository_more_attribute_save",
wsId: $("#wsId").val(),
uuid: ruuid,
attributesJson: JSON.stringify(saveAttributesJson),
removeAttributeJson: JSON.stringify(removeAttributeJson)
},
success:function(r) {
success: function (r) {
saveAttributesJson = [];
removeAttributeJson = [];
},
error:function(r) {
error: function (r) {
}
});
}
definition.nodeLinkerRecord = msg.data.define.nodeLinkerRecord;
$.simpleAlert("保存成功", "ok");
manualSave_resetTimes();// 触发定时保存重置
//保存结束时间戳
//var saveEndTime = new Date().getTime();
//console.log("流程保存时间:", (saveEndTime - saveStartTime) + "毫秒");
@ -161,10 +165,6 @@ $(function() {
$.simpleAlert('保存失败', 'error', 1500);
}
});
/*} else {
$.simpleAlert("close");
var result = msg.data;
@ -183,132 +183,116 @@ $(function() {
}
})
}
}
}
}
}
//取消异步发送
});
});
if (isAutoSave == "0") {
window.onbeforeunload = function(){
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
return "页面中有未保存的内容,请先保存";
} else {
//关闭页面时,释放编辑权
awsui.ajax.request({
type: "POST",
url: "./jd",
async: false,
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_edit_releaselock",
uuid: ruuid
}
});
}
};
//在弹出“是否离开”的提示框后选择离开则触发onunload事件
window.onunload = function(){
//关闭页面时,释放编辑权
console.log("释放编辑权");
awsui.ajax.request({
type: "POST",
url: "./jd",
async: false,
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_edit_releaselock",
uuid: ruuid
}
});
};
// saveTimer();
window.onbeforeunload = function () {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
return "页面中有未保存的内容,请先保存";
} else {
//关闭页面时,释放编辑权
awsui.ajax.request({
type: "POST",
url: "./jd",
async: false,
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_edit_releaselock",
uuid: ruuid
}
});
}
};
//在弹出“是否离开”的提示框后选择离开则触发onunload事件
window.onunload = function () {
//关闭页面时,释放编辑权
console.log("释放编辑权");
awsui.ajax.request({
type: "POST",
url: "./jd",
async: false,
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_edit_releaselock",
uuid: ruuid
}
});
};
// saveTimer();
intervalRefresh();
}
}
/**
* 质量校验
*/
$("#QualityInspection").off("click").on("click", function () {
$.simpleAlert("正在校验", "loading");
var obj=Model.define;
$.simpleAlert("正在校验", "loading");
var obj = Model.define;
$.ajax({
type : "POST",
url : "./jd",
data : {
sid : CLB.sid,
cmd:"com.actionsoft.apps.coe.pal_repository_process_define_Quality_check",
wsId : $("#wsId").val(),
uuid : ruuid,
obj : awsui.encode(obj)
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_Quality_check",
wsId: $("#wsId").val(),
uuid: ruuid,
obj: awsui.encode(obj)
},
success:function(r) {
$.simpleAlert("close");
if(r.data.result=="error"){
$.simpleAlert(r.data.sb,"error");
}else{
$.simpleAlert("检测通过!","ok");
}
success: function (r) {
$.simpleAlert("close");
if (r.data.result == "error") {
$.simpleAlert(r.data.sb, "error");
} else {
$.simpleAlert("检测通过!", "ok");
}
},
error:function(r) {
error: function (r) {
}
});
});
/**
* 快捷发布
*/
$("#QuickPublishing").off("click").on("click", function () {
$.ajax({
type : "POST",
url : "./jd",
data : {
sid : CLB.sid,
cmd:"com.awspaas.user.apps.publish.createProcess",
processDefId:"obj_fb1c7a54b98b412187388c8bab407362",
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.awspaas.user.apps.publish.createProcess",
processDefId: "obj_fb1c7a54b98b412187388c8bab407362",
},
success:function(r) {
success: function (r) {
window.open(r.url);
},
error:function(r) {
error: function (r) {
}
});
/*var url="https://bpm.yili.com:8088/portal/r/w?sid="+$("#sid").val()+"&wsId="+$("#wsId").val()+"&teamId=&clazzName=com.actionsoft.apps.coe.pal.publisher.client.web.ProcessPublishWeb&cmd=com.actionsoft.apps.coe.pal_app_page#/";
window.open(url,'fullscreen');*/
});
/**
* 流程清单列表按钮
*/
$("#processManifest").off("click").on("click", function () {
getProcessManifestInfo();
});
/**
* 导引回放按钮
*/
$("#modelingGuide").off("click").on("click", function () {
initGuide();
});
/**
* 获取流程列表信息并跳转到dw数据试图
*/
function getProcessManifestInfo() {
let url="./w?sid="+$("#sid").val()+"&cmd=CLIENT_DW_PORTAL&processGroupId=obj_4e95a7af7bf1414f9e878d013192675e&appId"
let url = "./w?sid=" + $("#sid").val() + "&cmd=CLIENT_DW_PORTAL&processGroupId=obj_4e95a7af7bf1414f9e878d013192675e&appId"
+ "=com.actionsoft.apps.coe.pal.publisher&dwViewId=obj_3ebec26134e345a2894e4bf0d0c628f0&hideSearcher=true&condition="
+ encodeURIComponent("[{cp:'=',fd:'MODELID',cv:'"+ ruuid +"'}]");
//+"&condition=\"+encodeURIComponent(\"[{cp:'=',fd:'MODELID',cv:'"+ruuid+"'}]\"";
+ encodeURIComponent("[{cp:'=',fd:'MODELID',cv:'" + ruuid + "'}]");
//+"&condition=\"+encodeURIComponent(\"[{cp:'=',fd:'MODELID',cv:'"+ruuid+"'}]\"";
$.ajax({
type: "POST",
url: "./jd",
@ -316,24 +300,22 @@ $(function() {
sid: sid,
cmd: "com.actionsoft.apps.coe.pal.publisher_process_manifest",
publishFileId: ruuid,
fileName:fileName
fileName: fileName
},
success: function (msg) {
if(msg.result == "ok") {
window.open(url,"fullscreen");
if (msg.result == "ok") {
window.open(url, "fullscreen");
} else {
$.simpleAlert(msg.msg,"error");
$.simpleAlert(msg.msg, "error");
}
},
});
}
// 编号刷点击事件
$('#bar_sort').off("click").on("click",function (){
$('#bar_sort').off("click").on("click", function () {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
$.simpleAlert('页面未保存,请先保存', 'error', 1500);
} else {
$.simpleAlert("正在编号", "loading");
$.ajax({
@ -354,10 +336,10 @@ $(function() {
for (var i in elements) {
if (shapeNo[i] != undefined) {
var flag = false;
for(var a = 0; a < elements[i].dataAttributes.length; a ++ ) {
if(elements[i].dataAttributes[a].attributesJsonArray !== undefined) {
for(var b = 0; b < elements[i].dataAttributes[a].attributesJsonArray.length; b ++) {
if(elements[i].dataAttributes[a].attributesJsonArray[b].id == attrId) {
for (var a = 0; a < elements[i].dataAttributes.length; a++) {
if (elements[i].dataAttributes[a].attributesJsonArray !== undefined) {
for (var b = 0; b < elements[i].dataAttributes[a].attributesJsonArray.length; b++) {
if (elements[i].dataAttributes[a].attributesJsonArray[b].id == attrId) {
elements[i].dataAttributes[a].attributesJsonArray[b].value = shapeNo[i];
flag = true;
break;
@ -382,16 +364,15 @@ $(function() {
})
}
})
// 快捷调整画布大小点击事件
$('#bar_resize').off('click').on('click',function () {
$('#bar_resize').off('click').on('click', function () {
var pos = getCanvasContentEdge()
var minPageWidth = 1050
var elements = Model.define.elements;
var shapeIds = [];
var contentWidth = pos.right - pos.left
var contentHeight = pos.bottom - pos.top
for(var shapeId in elements){
for (var shapeId in elements) {
shapeIds.push(shapeId);
}
Utils.selectShape(shapeIds);
@ -407,36 +388,36 @@ $(function() {
var outlinkers = Utils.getOutlinkers(selected);
movingShapes = selected.concat(outlinkers);
}
if(movingShapes.length > 0 && contentWidth <= minPageWidth - 180*2) {
if (movingShapes.length > 0 && contentWidth <= minPageWidth - 180 * 2) {
// 右移或左移 距左部150 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 210 - pos.left,
y : 0
x: 210 - pos.left,
y: 0
});
// 下移或上移 距顶部120 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 0,
y : 180 - pos.top
x: 0,
y: 180 - pos.top
});
Designer.setPageStyle({
width: Math.trunc(minPageWidth),
height: Math.trunc(contentHeight + 360)
});
}
if(movingShapes.length > 0 && contentWidth > minPageWidth - 180*2) {
if (movingShapes.length > 0 && contentWidth > minPageWidth - 180 * 2) {
// 右移或左移 距左部150 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 210 - pos.left,
y : 0
x: 210 - pos.left,
y: 0
});
// 下移或上移 距顶部120 默认padding 60
Designer.op.moveShape(movingShapes, {
x : 0,
y : 180 - pos.top
x: 0,
y: 180 - pos.top
});
Designer.setPageStyle({
width: Math.trunc(contentWidth + 210*2 ),
height: Math.trunc(contentHeight + 180*2)
width: Math.trunc(contentWidth + 210 * 2),
height: Math.trunc(contentHeight + 180 * 2)
});
}
Model.updateMulti(movingShapes);
@ -446,8 +427,75 @@ $(function() {
Designer.op.hideTip();
Utils.unselect();
})
// 自动保存
var autoSave_countdownStart = 30 * 1000; // 30秒
var autoSave_interval = 3 * 60 * 1000 - autoSave_countdownStart; // 3分钟
// var autoSave_countdownStart = 10 * 1000; // 30秒
// var autoSave_interval = 0.5 * 60 * 1000 - autoSave_countdownStart; // 3分钟
var autoSave_timer;
var autoSave_countdownTimer;
// 保存文档的函数
function autoSave_saveDocument() {
console.log('自动保存成功' + getCurrTime());
$("#bar_save").click(); // 实际的保存操作
$("#autoSave_countdown").hide(); // 保存后隐藏倒计时
}
function manualSave_resetTimes() {
$("#autoSave_countdown").hide(); // 保存后隐藏倒计时
autoSave_resetTimers();// 重置定时器
}
// 重置定时器的函数
function autoSave_resetTimers() {
clearTimeout(autoSave_timer);
clearTimeout(autoSave_countdownTimer);
$("#autoSave_countdown").hide(); // 隐藏倒计时提示
console.log(autoSave_interval + '后开始倒计时' + getCurrTime());
autoSave_timer = setTimeout(autoSave_autoSave, autoSave_interval);
}
// 自动保存的函数
function autoSave_autoSave() {
autoSave_resetTimers();// 保存后重置定时器
autoSave_countdown(); // 开始倒计时
}
// 倒计时的函数
function autoSave_countdown() {
if ($("#saving_tip").text() == "已保存成功" || $("#saving_tip").text() == "保存成功" || $("#saving_tip").text() == "您的文件已经成功保存" || $("#saving_tip").text() == "") {
// 保存成功,重新执行
console.log('已经是保存成功状态,不执行保存,重置保存定时器' + getCurrTime())
autoSave_resetTimers();
return;
}
console.log('清空settime进入倒计时' + getCurrTime());
clearTimeout(autoSave_timer);
var countdownSeconds = autoSave_countdownStart / 1000;
$("#autoSave_countdown").css('display', 'inline-block');
$("#autoSave_countdown").text(countdownSeconds + " 秒后自动保存");
autoSave_countdownTimer = setInterval(function () {
countdownSeconds--;
$("#autoSave_countdown").text(countdownSeconds + " 秒后自动保存");
if (countdownSeconds <= 0) {
console.log('倒计时结束,清空倒计时' + getCurrTime());
clearInterval(autoSave_countdownTimer);
autoSave_saveDocument();
}
}, 1000);
}
// 初始化定时器
console.log('开始执行定时器' + getCurrTime());
autoSave_resetTimers();
});
function getCurrTime() {
var date = new Date();
return date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
}
function getCanvasContentEdge() {
var pos = {
top: 0,
@ -499,39 +547,49 @@ function getCanvasContentEdge() {
}
}
}
pos.left = Math.min.apply(Math,xArr.map(item => { return item.x }))
pos.top = Math.min.apply(Math,yArr.map(item => { return item.y }))
pos.left = Math.min.apply(Math, xArr.map(item => {
return item.x
}))
pos.top = Math.min.apply(Math, yArr.map(item => {
return item.y
}))
// 特殊处理右和下 若有图形 加上图形的高/宽
for (let i = 0; i < xArr.length; i++) {
if(xArr[i].type == 'shape') {
if (xArr[i].type == 'shape') {
xArr[i].x += xArr[i].shapeWidth
}
}
for (let i = 0; i < yArr.length; i++) {
if(yArr[i].type == 'shape') {
if (yArr[i].type == 'shape') {
yArr[i].y += yArr[i].shapeHeight
}
}
pos.right = Math.max.apply(Math,xArr.map(item => { return item.x }))
pos.bottom = Math.max.apply(Math,yArr.map(item => { return item.y }))
pos.right = Math.max.apply(Math, xArr.map(item => {
return item.x
}))
pos.bottom = Math.max.apply(Math, yArr.map(item => {
return item.y
}))
return pos
}
/**定时保存**/
function saveTimer() {
// 每隔5分钟时间进行保存
setInterval(function(){
setInterval(function () {
var count = 5;
var msg = "秒之后自动进行保存";
var alertmsg = function(count, msg) {
$.simpleAlert(count + msg, "info", 1000, {callback:function(){
count--;
if(count < 1) {
$("#bar_save").click();
} else {
alertmsg(count, msg);
var alertmsg = function (count, msg) {
$.simpleAlert(count + msg, "info", 1000, {
callback: function () {
count--;
if (count < 1) {
$("#bar_save").click();
} else {
alertmsg(count, msg);
}
}
}})
})
};
alertmsg(count, msg);
// $.simpleAlert("5秒之后自动进行保存", "info", 5000, {callback:function(){$("#bar_save").click();}});
@ -541,29 +599,31 @@ function saveTimer() {
/**定时刷新,查询流程是否被其他人锁定**/
function intervalRefresh() {
//每隔5秒发送请求 检查当前用户是否发生变化
intervalInd = setInterval(function() {
intervalInd = setInterval(function () {
awsui.ajax.request({
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_get_lock_info",
uuid: ruuid
},
cache : false,
alert : false,
ok: function(msg){
type: "POST",
url: "./jd",
data: {
sid: CLB.sid,
cmd: "com.actionsoft.apps.coe.pal_repository_process_define_get_lock_info",
uuid: ruuid
},
cache: false,
alert: false,
ok: function (msg) {
if (msg.data.isLocked) {
var m = '当前流程被 ' + msg.data.currentUserName + ' 强行获取编辑权或锁定';
$.simpleAlert(m,"info",4000,{mode:true,callback:function() {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
$("#saving_tip").text('');// 防止reload时出现浏览器自带提示
$.simpleAlert(m, "info", 4000, {
mode: true, callback: function () {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
$("#saving_tip").text('');// 防止reload时出现浏览器自带提示
}
window.location.reload();
}
window.location.reload();
}});
}
});
}
});
}
});
}, 10000);
}
@ -571,9 +631,9 @@ var CommonLock = {
lockOrLuckFun: function (optype) {//锁定 解锁流程
if (isAutoSave == "0") {
if ($("#saving_tip").text() != "已保存成功" && $("#saving_tip").text() != "保存成功" && $("#saving_tip").text() != "您的文件已经成功保存" && $("#saving_tip").text() != "") {
$.simpleAlert('页面中有未保存的内容,请先保存');
return;
}
$.simpleAlert('页面中有未保存的内容,请先保存');
return;
}
}
$.post("./jd", {
cmd: "com.actionsoft.apps.coe.pal_pl_repository_lock_or_unlock_process",
@ -601,14 +661,14 @@ var CommonLock = {
}
}
};
// 记录所有节点及节点名称,保存时对比
var shapeTextRecord = {};
function recordShapeText() {
shapeTextRecord = {};// 初始化
var obj = Model.define;
var shapes = obj.elements;
for(var shape in shapes) {
for (var shape in shapes) {
shapeTextRecord[shape] = shapes[shape].text;
}
}

View File

@ -1,20 +1,23 @@
@CHARSET "UTF-8";
html,body{
padding:0px; margin:0px;
html, body {
padding: 0px;
margin: 0px;
overflow: hidden;
-moz-user-select:none;
-webkit-user-select:none;
-ms-user-select:none;
-khtml-user-select:none;
user-select:none;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
user-select: none;
}
::-webkit-scrollbar {
width: 9px;
height: 9px;
background: white;
border-left: 1px solid #e8e8e8;
}
::-webkit-scrollbar-thumb {
border-width: 1px;
border-style: solid;
@ -22,39 +25,46 @@ html,body{
border-radius: 6px;
background: #c9c9c9;
}
::-webkit-scrollbar-thumb:hover {
background: #b5b5b5;
}
.clear{
clear:both;
.clear {
clear: both;
}
#designer{
width:100%;
#designer {
width: 100%;
position: relative;
}
#shape_panel{
width:162px;
#shape_panel {
width: 162px;
overflow: hidden;
overflow-y: auto;
position: absolute;
background: #fafafa;
border-right: 1px solid #A2A2A2;
}
#shape_panel_more_shape{
width:162px;
height:40px;
text-align:center;
#shape_panel_more_shape {
width: 162px;
height: 40px;
text-align: center;
overflow: hidden;
overflow-y: auto;
position: absolute;
background: #fafafa;
border-right: 1px solid #A2A2A2;
}
.panel_container{
.panel_container {
border-bottom: 1px solid #CBCCCC;
margin-top: 1px;
}
.panel_title{
.panel_title {
position: relative;
margin: 0px;
background-color: #F3F3F3;
@ -67,23 +77,26 @@ html,body{
padding: 0 2px 0 19px;
border-bottom: #cccccc solid 1px;
cursor: default;
-webkit-box-shadow: 0px 1px 1px rgba(0,0,0,.1);
-moz-box-shadow: 0px 1px 1px rgba(0,0,0,.1);
-ms-box-shadow: 0px 1px 1px rgba(0,0,0,.1);
box-shadow: 0px 1px 1px rgba(0,0,0,.1);
-webkit-box-shadow: 0px 1px 1px rgba(0, 0, 0, .1);
-moz-box-shadow: 0px 1px 1px rgba(0, 0, 0, .1);
-ms-box-shadow: 0px 1px 1px rgba(0, 0, 0, .1);
box-shadow: 0px 1px 1px rgba(0, 0, 0, .1);
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.33);
}
.panel_title .ico_accordion{
.panel_title .ico_accordion {
position: absolute;
left: 5px;
top: 11px;
}
.panel_container .content{
.panel_container .content {
margin: 0px auto;
width: 138px;
padding: 5px 0px;
}
.panel_collapsed .panel_title{
.panel_collapsed .panel_title {
-webkit-box-shadow: none;
-moz-box-shadow: none;
-ms-box-shadow: none;
@ -91,80 +104,98 @@ html,body{
text-shadow: none;
border-bottom: 0px;
}
.panel_collapsed .content{
.panel_collapsed .content {
display: none;
}
.panel_collapsed .ico_accordion{
.panel_collapsed .ico_accordion {
background-position: -51px -46px;
}
.panel_box{
display:inline-block;
border:2px solid transparent;
position:relative;
.panel_box {
display: inline-block;
border: 2px solid transparent;
position: relative;
}
.panel_box.selected{
.panel_box.selected {
border-color: #6EB1EB;
}
#shape_thumb{
#shape_thumb {
position: absolute;
left: 5px; top: 0px;
left: 5px;
top: 0px;
padding: 5px;
display: none;
}
#shape_thumb div{
#shape_thumb div {
padding: 0px 0px 10px;
text-align: center;
}
.group_icon{
position:absolute;
display:block;
bottom:0px;
right:0px;
.group_icon {
position: absolute;
display: block;
bottom: 0px;
right: 0px;
background: url(../images/diagraming/sprite.png) no-repeat;
height: 10px;
width: 10px;
background-position: -43px -64px;
opacity: 0.8;
}
.group_icon:hover{
.group_icon:hover {
opacity: 1;
}
.change_shape_icon{
.change_shape_icon {
right: -10px;
bottom: -10px;
}
.group_dashboard{
.group_dashboard {
padding: 4px;
width: 136px;
cursor: default;
}
.panel_item{
margin:0px auto;
.panel_item {
margin: 0px auto;
}
#creating_shape_container{
#creating_shape_container {
overflow: hidden;
position: absolute;
display: none;
}
#creating_shape_canvas{
#creating_shape_canvas {
position: absolute;
}
#designer_viewport{
#designer_viewport {
position: relative;
margin-left: 163px;
}
#demo_signup{
#demo_signup {
background: #b2b2b2;
padding: 10px 20px 10px 140px;
border-bottom: 1px solid #a0a0a0;
height: 39px;
position: relative;
}
#demo_signup span{
#demo_signup span {
line-height: 19px;
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.11);
}
#demo_signup a{
#demo_signup a {
position: absolute;
left: 20px;
line-height: 38px;
@ -172,115 +203,156 @@ html,body{
width: 80px;
font-size: 16px;
}
#designer_layout{
#designer_layout {
overflow: scroll;
position: relative;
background: url(../images/diagraming/canvas_bg.jpg) repeat;
z-index: 0;
}
#designer_canvas{
#designer_canvas {
position: relative;
background:#F2F2F2;
background: #F2F2F2;
overflow: visible;
}
.designer_canvas{
.designer_canvas {
box-shadow: 3px 3px 6px #888;
}
#shape_img_container{
#shape_img_container {
height: 0px;
overflow: hidden;
}
.shape_box{
position:absolute;
.shape_box {
position: absolute;
}
.link_point_canvas{
position:absolute;
.linker_box, .lane_box {
pointer-events: none !important;
}
.shape_box_creating{
position:absolute;
.link_point_canvas {
position: absolute;
}
.shape_box_creating {
position: absolute;
}
/**锚点、控制点样式*/
.shape_anchor{
.shape_anchor {
position: absolute;
border-style: solid;
border-width: 1px;
background: white;
}
/**形状锁定提醒样式*/
.shape_locker{
.shape_locker {
position: absolute;
}
.shape_controller{
.shape_controller {
position: absolute;
border-style: solid;
border-width: 1px;
background: white;
}
.shape_controller.n.w{
.shape_controller.n.w {
cursor: nw-resize;
}
.shape_controller.n.e{
.shape_controller.n.e {
cursor: ne-resize;
}
.shape_controller.s.e{
.shape_controller.s.e {
cursor: se-resize;
}
.shape_controller.s.w{
.shape_controller.s.w {
cursor: sw-resize;
}
.shape_controller.n, .shape_controller.s{
.shape_controller.n, .shape_controller.s {
cursor: n-resize;
}
.shape_controller.e, .shape_controller.w{
.shape_controller.e, .shape_controller.w {
cursor: e-resize;
}
.shape_rotater{
.shape_rotater {
position: absolute;
}
.shape_rotater.rotate_enable{
.shape_rotater.rotate_enable {
cursor: url(../images/diagraming/rotate.gif) 16 16, auto;
}
/**图形选择后的控件容器*/
#shape_controls{
position: absolute; left: 0px; top: 0px;
#shape_controls {
position: absolute;
left: 0px;
top: 0px;
}
#shape_controls #controls_bounding{
position: absolute; left: -10px; top: -10px;
#shape_controls #controls_bounding {
position: absolute;
left: -10px;
top: -10px;
}
/**图形的矩形轮廓容器*/
.shape_contour{
position: absolute; left: 0px; top: 0px; width: 0px; height: 0px;
.shape_contour {
position: absolute;
left: 0px;
top: 0px;
width: 0px;
height: 0px;
}
/**图形选择框*/
#selecting_box{
position: absolute; border: 1px solid #6EB1EB;
#selecting_box {
position: absolute;
border: 1px solid #6EB1EB;
background: rgba(22, 145, 232, 0.1);
}
/**创建文本的位置选择框*/
#texting_box{
position: absolute; border: 2px solid #6EB1EB;
#texting_box {
position: absolute;
border: 2px solid #6EB1EB;
}
/* 文本编辑 */
#shape_edit_menu{
#shape_edit_menu {
padding: 15px 20px;
position: absolute;
}
#shape_edit_menu textarea{
#shape_edit_menu textarea {
display: block;
width: 280px;
margin-bottom: 5px;
overflow: hidden;
}
#shape_text_edit{
#shape_text_edit {
position: absolute;
overflow: hidden;
background: rgba(255,255,255,.01);
background: rgba(255, 255, 255, .01);
border: 2px solid #f7ddaa;
border-radius: 2px;
padding: 0px;
cursor: text;
}
#shape_text_ruler{
#shape_text_ruler {
padding: 0px;
border: none;
background: transparent;
@ -288,8 +360,9 @@ html,body{
height: 0px;
overflow: hidden;
}
/** 连接线文本编辑 */
#linker_text_edit{
#linker_text_edit {
position: absolute;
overflow: hidden;
background: white;
@ -297,163 +370,192 @@ html,body{
border-radius: 2px;
padding: 0px;
}
.text_canvas{
.text_canvas {
position: absolute;
padding: 0px;
border: none;
background: transparent;
cursor: inherit;
overflow: hidden;
-moz-user-select:none;
-webkit-user-select:none;
-ms-user-select:none;
-khtml-user-select:none;
user-select:none;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
-khtml-user-select: none;
user-select: none;
}
.text_canvas.linker_text{
.text_canvas.linker_text {
background: white;
white-space:nowrap
white-space: nowrap
}
.attr_canvas{
.attr_canvas {
position: absolute;
}
#link_spot{
#link_spot {
position: absolute;
width: 100px;
height: 100px;
display: block;
}
/** 设计器操作气泡提示 */
#designer_op_tip{
#designer_op_tip {
position: absolute;
border: 1px solid #D1D1D1;
background: #f2f2f2;
padding: 5px 10px;
border-radius: 3px;
display:none;
display: none;
color: #444;
text-align: center;
white-space:nowrap;
white-space: nowrap;
}
/**对齐线*/
#designer_op_snapline_h{
#designer_op_snapline_h {
background: #6EB1EB;
position: absolute;
height: 1px;
width: 100%;
}
#designer_op_snapline_v{
#designer_op_snapline_v {
background: #6EB1EB;
position: absolute;
width: 1px;
}
#designer_op_snapline_attach{
#designer_op_snapline_attach {
position: absolute;
border: 2px solid #6EB1EB;
}
/**菜单*/
.menu{
.menu {
position: absolute;
background: #FFF;
border-radius: 4px;
border: 1px solid rgb(180,180,180);
border: 1px solid rgb(180, 180, 180);
-webkit-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.3);
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.3);
}
.menu.list{
.menu.list {
padding: 4px 0px;
}
.menu li{
padding: 0px 20px; line-height: 26px; cursor: default;
.menu li {
padding: 0px 20px;
line-height: 26px;
cursor: default;
position: relative;
}
.menu_ico li{
.menu_ico li {
padding: 0px 30px;
}
.menu li:hover{
.menu li:hover {
background-color: #eee;
/* background-color: #2eb5e5; */
/* background-image: -moz-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #34c0e9), color-stop(100%, #29aae1)); */
/* background-image: -webkit-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: -o-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: -ms-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#34c0e9', endColorstr='#29aae1',GradientType=0 ); */
/* color: #fff; */
/* text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); */
/* background-color: #2eb5e5; */
/* background-image: -moz-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #34c0e9), color-stop(100%, #29aae1)); */
/* background-image: -webkit-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: -o-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: -ms-linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* background-image: linear-gradient(top, #34c0e9 0%, #29aae1 100%); */
/* filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#34c0e9', endColorstr='#29aae1',GradientType=0 ); */
/* color: #fff; */
/* text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); */
}
.menu li.disabled{
/* color: #999; */
.menu li.disabled {
/* color: #999; */
color: #ccc;
}
.menu li.disabled:hover{
/* color: #999; */
.menu li.disabled:hover {
/* color: #999; */
color: #ccc;
background-color: transparent;
background-image: none;
filter: none;
text-shadow:none;
text-shadow: none;
}
.menu li .ico_selected{
.menu li .ico_selected {
position: absolute;
top: 3px;
left: 5px;
}
.menu .devider{
.menu .devider {
height: 0px;
border-top: #ccc solid 1px;
margin: 4px 0;
}
.menu .menu_text{
.menu .menu_text {
color: #888;
}
.menu .menu_text:hover{
.menu .menu_text:hover {
background: transparent;
}
/**图形画板*/
.shape_dashboard{
.shape_dashboard {
padding: 4px;
width: 136px;
cursor: default;
}
.dashboard_box{
display:inline-block;
padding:1px;
.dashboard_box {
display: inline-block;
padding: 1px;
border: 1px solid transparent;
position: relative;
}
.dashboard_box:hover{
.dashboard_box:hover {
border-color: #D1D1D1;
background: #f2f2f2;
}
/**操作帮助*/
#designer_op_help{
#designer_op_help {
position: absolute;
top: 0px;
left: 0px;
font-size: 24px;
font-weight: bold;
color: #A7A7A7;
color: rgba(0,0,0,.3);
color: rgba(0, 0, 0, .3);
padding: 5px;
}
/**鹰眼视图*/
.navigation_bounding{
.navigation_bounding {
padding: 10px 0px;
overflow: hidden;
}
.navigation_view_container{
.navigation_view_container {
margin: 0px auto;
position: relative;
width: 120px;
}
#navigation_canvas{
#navigation_canvas {
background: white;
border: 1px solid #888;
}
#navigation_eye{
#navigation_eye {
position: absolute;
border: 2px solid #6EB1EB;
top: 0px;
@ -461,7 +563,8 @@ html,body{
width: 100px;
height: 80px;
}
.linker_cursor{
.linker_cursor {
background: #db5e5e;
width: 8px;
height: 8px;
@ -469,13 +572,15 @@ html,body{
position: absolute;
z-index: 1000;
}
.linker_control_line{
.linker_control_line {
position: absolute;
width: 1px;
opacity: 0.5;
background: #833;
}
.linker_control_point{
.linker_control_point {
position: absolute;
width: 6px;
height: 6px;
@ -488,19 +593,24 @@ html,body{
border-radius: 4px;
cursor: default;
}
.linker_control_point:hover, .linker_control_point.moving{
.linker_control_point:hover, .linker_control_point.moving {
background: #db5e5e;
}
.navigation_view_bar{
.navigation_view_bar {
padding: 10px;
}
.navigation_view_bar .toolbar_button, .navigation_view_bar .spinner{
.navigation_view_bar .toolbar_button, .navigation_view_bar .spinner {
display: inline-block;
}
.navigation_view_bar .spinner{
.navigation_view_bar .spinner {
width: 55px;
}
.navigation_view_bar .toolbar_button{
.navigation_view_bar .toolbar_button {
float: right;
margin-left: 5px;
}
@ -509,30 +619,36 @@ html,body{
#shape_panel.readonly {
display: none;
}
#designer_viewport.readonly{
#designer_viewport.readonly {
margin-left: 0px;
}
#fullscreen_tip{
#fullscreen_tip {
position: absolute;
bottom: -70px;
right: 0px;
display: none;
white-space:nowrap;
white-space: nowrap;
}
#fullscreen_tip .dlg_close{
#fullscreen_tip .dlg_close {
position: absolute;
top: 1px;
right: 2px;
}
.full_suggest{
.full_suggest {
margin-top: 5px;
line-height: 20px;
height: 20px;
}
.full_suggest span{
.full_suggest span {
display: inline-block;
float: left;
}
.full_suggest .ico{
.full_suggest .ico {
margin-right: 5px;
}