快捷调整间距(暂停)

This commit is contained in:
mrs_12345@163.com 2022-07-06 20:35:13 +08:00
parent c41fb2a31b
commit 60e400e8cc
3 changed files with 215 additions and 48 deletions

View File

@ -912,12 +912,12 @@
<li ac="selectall">全选
<div class="extend">Ctrl+A</div>
</li>
<li ac="selectVertical">调整垂直间距
<div class="extend"></div>
</li>
<li ac="selectHorizontal">调整水平间距
<div class="extend"></div>
</li>
<!-- <li ac="selectVertical">调整垂直间距-->
<!-- <div class="extend"></div>-->
<!-- </li>-->
<!-- <li ac="selectHorizontal">调整水平间距-->
<!-- <div class="extend"></div>-->
<!-- </li>-->
<li class="devider devi_selectall"></li>
<li ac="drawline">
<div class="ico linkertype_normal"></div>创建连线

View File

@ -6,6 +6,8 @@ Designer.contextMenu.show = function(x, y) {
var currentFocus = Utils.getShapeByPosition(x, y, false);
menu.children().hide();
menu.children("li[ac=selectall]").show();
menu.children("li[ac=selectVertical]").show();
menu.children("li[ac=selectHorizontal]").show();
menu.children(".devi_selectall").show();
menu.children("li[ac=drawline]").show();
menu.children("li[ac=processAttribute]").show();
@ -163,6 +165,10 @@ Designer.contextMenu.execAction = function(item) {
showPropertiesDialog(true);
} else if (action == "customdefine") {
openCustomDefineDialog();
} else if(action == 'selectVertical') {
Designer.selectVertical(this.menuPos);
} else if (action == 'selectHorizontal') {
Designer.selectHorizontal(this.menuPos);
}
};

View File

@ -1,7 +1,7 @@
/**
* 设计器对外提供的方法
*/
/**
@ -17,55 +17,216 @@ Designer.addFunction("open", function(definition){
$(".shape_box").remove();
Model.define.elements = {};
Model.persistence.elements = {};
Model.define.page = definition.page;
Model.define.page = definition.page;
//*******此处添加AWS流程设计器特有的属性*******//
Model.define.processProperties=definition.processProperties;//此处添加aws全局属性
Model.define.processDocument=definition.processDocument;//此处添加aws全局属性
Model.define.uuid=definition.uuid;//此处添加流程uuid
//Model.define.title=definition.title;//此处添加流程title
//向页面processDefId processDefTitle 赋值
//process.processDefId=definition.uuid;
process.title=definition.title;
Model.define.processProperties=definition.processProperties;//此处添加aws全局属性
Model.define.processDocument=definition.processDocument;//此处添加aws全局属性
Model.define.uuid=definition.uuid;//此处添加流程uuid
//Model.define.title=definition.title;//此处添加流程title
//向页面processDefId processDefTitle 赋值
//process.processDefId=definition.uuid;
process.title=definition.title;
//*******添加结束*******//
Model.persistence.page = Utils.copy(definition.page);
Designer.initialize.initCanvas();
var shapes = definition.elements;
//先构造形状,再构造连接线,因为连接线的绘制过程有可能依赖所连接的图形
var shapeCount = 0;
for(var shapeId in shapes){
var shape = shapes[shapeId];
if(shape.name != "linker"){
Schema.initShapeFunctions(shape);
Designer.painter.renderShape(shape);
Model.add(shape, false);
}
shapeCount++;
}
for(var shapeId in shapes){
var shape = shapes[shapeId];
if(shape.name == "linker"){
Designer.painter.renderLinker(shape);
Model.add(shape, false);
}
}
if(shapeCount == 0){
Model.build();
}
Navigator.draw();
Model.persistence.page = Utils.copy(definition.page);
Designer.initialize.initCanvas();
var shapes = definition.elements;
//先构造形状,再构造连接线,因为连接线的绘制过程有可能依赖所连接的图形
var shapeCount = 0;
for(var shapeId in shapes){
var shape = shapes[shapeId];
if(shape.name != "linker"){
Schema.initShapeFunctions(shape);
Designer.painter.renderShape(shape);
Model.add(shape, false);
}
shapeCount++;
}
for(var shapeId in shapes){
var shape = shapes[shapeId];
if(shape.name == "linker"){
Designer.painter.renderLinker(shape);
Model.add(shape, false);
}
}
if(shapeCount == 0){
Model.build();
}
Navigator.draw();
});
/**
* 设计器方法全选
*/
Designer.addFunction("selectAll", function(){
var shapes = Model.define.elements;
var shapeIds = [];
for(var shapeId in shapes){
shapeIds.push(shapeId);
}
Utils.selectShape(shapeIds);
var shapes = Model.define.elements;
var shapeIds = [];
for(var shapeId in shapes){
shapeIds.push(shapeId);
}
Utils.selectShape(shapeIds);
});
/**
* 设计器方法调节垂直间距
*/
Designer.addFunction("selectVertical", function(menuPos){
var selectedIds = [];
var lineArr = []
var shapeArr = []
var menuY = menuPos.y
var shapes = Model.define.elements;
console.log(shapes)
var subline1 = $('#designer_subline1')
var subline2 = $('#designer_subline2')
subline1.css({
display : "block",
"z-index" : Model.orderList.length + 4,
width: Model.define.page.width,
height: 0,
borderStyle:'dotted',
borderWidth: '1px',
left: 0,
top : menuY
});
subline2.css({
display : "block",
"z-index" : Model.orderList.length + 5,
width: Model.define.page.width,
height: 0,
borderStyle:'dotted',
borderWidth: '1px',
left: 0,
top : menuY,
cursor: 'move'
});
var container = $("#canvas_container");
var canvas = $("#designer_canvas");
subline2.bind('mousedown.drag',function (b) {
container.bind('mousemove.drag',function (e) {
var newPos = Utils.getRelativePos(e.pageX, e.pageY, canvas);
if (newPos.y >= menuY) {
subline1.css({
backgroundColor: 'rgba(114,253,107,0.5)',
height: newPos.y - menuY
})
subline2.css({
backgroundColor: 'translate',
height: 0
})
} else {
subline1.css({
backgroundColor: 'translate',
height: 0
})
subline2.css({
backgroundColor: 'rgba(246,163,163,0.5)',
height: menuY - newPos.y
})
}
subline2.css({
top : newPos.y,
});
$(document).unbind("mouseup.drop").bind("mouseup.drop",
function() {
subline1.css({
backgroundColor: 'translate',
height: 0
})
subline2.css({
backgroundColor: 'translate',
height: 0
})
subline1.hide()
subline2.hide()
$(document).unbind("mouseup.drop")
})
})
$(document).bind('mouseup.drag',function () {
container.unbind("mousemove.drag");
// subline2.unbind("mousedown.drag");
$(document).unbind("mouseup.drag");
})
})
for(var shapeId in shapes){
if (shapes[shapeId].points == undefined) {
shapeArr.push(shapes[shapeId])
} else {
lineArr.push(shapes[shapeId])
}
}
for (var i = 0; i < shapeArr.length; i++) {
if (shapeArr[i].props.y + shapeArr[i].props.h >= menuY) {
selectedIds.push(shapeArr[i].id)
}
}
for (var i = 0; i < lineArr.length; i++) {
if (lineArr[i].from.y >= menuY || lineArr[i].to.y >= menuY) {
selectedIds.push(lineArr[i].id)
}
}
// Utils.selectShape(selectedIds);
// for (var i = 0; i < selectedIds.length; i++) {
// N(selectedIds[i])
// $(".shape_contour[forshape=" + selectedIds[i].id + "]").css({
// left: selectedIds[i].props.x.toScale(),
// top: selectedIds[i].props.y.toScale()
// })
// }
// var K = Utils.getSelectedLinkerIds();
// if (selectedIds.length == 1 && K.length == 1) {
// return
// }
// if (K.length > 0) {
// var I = Utils.getSelectedIds();
// Designer.painter.drawControls(I)
// } else {
// var E = $("#shape_controls");
// E.css({
// left: parseFloat(E.css("left")),
// top: parseFloat(E.css("top")) + 100
// })
// }
// var F = $("#shape_controls").position();
// if (F && Utils.getSelected().length > 0) {
// Designer.op.showTip("X: " + Math.round(F.left.restoreScale()) + "&nbsp;&nbsp;Y: " + Math.round(F.top.restoreScale()));
// }
// function N(a) {
// a.props.x += 0;
// a.props.y += 100;
// var b = $("#" + a.id);
// b.css({
// left: parseFloat(b.css("left")),
// top: parseFloat(b.css("top")) + 100
// })
// }
});
/**
* 设计器方法调节水平间距
*/
Designer.addFunction("selectHorizontal", function(menuPos){
var menuX = menuPos.x
let subline = $('#designer_subline')
console.log(subline)
subline.css({
display : "block",
"z-index" : Model.orderList.length + 4,
width: 0,
height: Model.define.page.height,
borderStyle:'dotted',
borderWidth: '1px',
left: menuX,
top :0,
});
});
/**