设计器快捷调整间距后画布大小自适应
This commit is contained in:
parent
f5fa52e33d
commit
7798c7245a
@ -174,6 +174,15 @@ Designer.addFunction("selectVertical", function() {
|
|||||||
subline1.hide()
|
subline1.hide()
|
||||||
subline2.hide()
|
subline2.hide()
|
||||||
|
|
||||||
|
var edgePos = getCanvasContentEdge()
|
||||||
|
var pageSize = Model.define.page;
|
||||||
|
if(edgePos.bottom > pageSize.height - pageSize.padding) {
|
||||||
|
Designer.setPageStyle({
|
||||||
|
height: edgePos.bottom + pageSize.padding + 30
|
||||||
|
});
|
||||||
|
$("#page_size_w").spinner('value',edgePos.bottom + pageSize.padding + 30);
|
||||||
|
}
|
||||||
|
|
||||||
$(document).unbind("mouseup.drop")
|
$(document).unbind("mouseup.drop")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -572,6 +581,75 @@ function moveLanes(type,sublinePos,movedDistance) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getCanvasContentEdge() {
|
||||||
|
var pos = {
|
||||||
|
top: 0,
|
||||||
|
bottom: 0,
|
||||||
|
left: 0,
|
||||||
|
right: 0
|
||||||
|
}
|
||||||
|
var elements = Model.define.elements
|
||||||
|
var xArr = []
|
||||||
|
var yArr = []
|
||||||
|
for (let key in elements) {
|
||||||
|
if (elements[key].points == undefined) { // 形状
|
||||||
|
xArr.push({
|
||||||
|
x: elements[key].props.x,
|
||||||
|
type: 'shape',
|
||||||
|
shapeWidth: elements[key].props.w
|
||||||
|
})
|
||||||
|
yArr.push({
|
||||||
|
y: elements[key].props.y,
|
||||||
|
type: 'shape',
|
||||||
|
shapeHeight: elements[key].props.h
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
xArr.push({
|
||||||
|
x: elements[key].from.x,
|
||||||
|
type: 'line'
|
||||||
|
})
|
||||||
|
xArr.push({
|
||||||
|
x: elements[key].to.x,
|
||||||
|
type: 'line'
|
||||||
|
})
|
||||||
|
yArr.push({
|
||||||
|
y: elements[key].from.y,
|
||||||
|
type: 'line'
|
||||||
|
})
|
||||||
|
yArr.push({
|
||||||
|
y: elements[key].to.y,
|
||||||
|
type: 'line'
|
||||||
|
})
|
||||||
|
for (let i = 0; i < elements[key].points.length; i++) {
|
||||||
|
xArr.push({
|
||||||
|
x: elements[key].points[i].x,
|
||||||
|
type: 'line'
|
||||||
|
})
|
||||||
|
yArr.push({
|
||||||
|
y: elements[key].points[i].y,
|
||||||
|
type: 'line'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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') {
|
||||||
|
xArr[i].x += xArr[i].shapeWidth
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (let i = 0; i < yArr.length; i++) {
|
||||||
|
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 }))
|
||||||
|
return pos
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设计器方法:调节水平间距
|
* 设计器方法:调节水平间距
|
||||||
*/
|
*/
|
||||||
@ -679,6 +757,16 @@ Designer.addFunction("selectHorizontal", function() {
|
|||||||
subline1.hide()
|
subline1.hide()
|
||||||
subline2.hide()
|
subline2.hide()
|
||||||
|
|
||||||
|
var edgePos = getCanvasContentEdge()
|
||||||
|
var pageSize = Model.define.page;
|
||||||
|
console.log(edgePos.right)
|
||||||
|
console.log(pageSize.width)
|
||||||
|
if(edgePos.right > pageSize.width - pageSize.padding) {
|
||||||
|
Designer.setPageStyle({
|
||||||
|
width: edgePos.right + pageSize.padding + 30
|
||||||
|
});
|
||||||
|
$("#page_size_w").spinner('value',edgePos.right + pageSize.padding + 30);
|
||||||
|
}
|
||||||
$(document).unbind("mouseup.drop")
|
$(document).unbind("mouseup.drop")
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user