|
|
@@ -1155,18 +1155,21 @@ export class CanvasPhotoEditor {
|
|
|
newPages[PageIndex].layoutMode = direction
|
|
|
if (list.length == 2 && direction != 'double') {//两页改成一页
|
|
|
newPageItem = {
|
|
|
- coordinate: [newPages[PageIndex].coordinate[1]],
|
|
|
- item: [newPages[PageIndex].item[1]],
|
|
|
- layoutMode: direction,
|
|
|
- list: [list[1]],
|
|
|
+ // coordinate: [newPages[PageIndex].coordinate[1]],
|
|
|
+ item: newPages[PageIndex].item[1],
|
|
|
+ // layoutMode: direction,
|
|
|
+ list: list[1],
|
|
|
}
|
|
|
newPages[PageIndex].list = list
|
|
|
newPages[PageIndex].list.length = 1
|
|
|
newPages[PageIndex].item.length = 1
|
|
|
- newPages.splice(PageIndex + 1, 0, newPageItem)
|
|
|
+ newPages = this.resizePageAndReflow(newPages, PageIndex+1, newPageItem)
|
|
|
}
|
|
|
if (direction == 'double' && list.length != 2) {
|
|
|
- newPages = this.autoFill(newPages, PageIndex, direction)
|
|
|
+ let newItem = newPages[PageIndex+1]
|
|
|
+ newPages[PageIndex].list.push(newItem.list[0])
|
|
|
+ newPages[PageIndex].item.push(newItem.item[0])
|
|
|
+ this.removeAndFill(newPages, PageIndex+1, 0)
|
|
|
}
|
|
|
if (!direction) this.selectedPageIndex++
|
|
|
this.pages = newPages
|
|
|
@@ -1222,6 +1225,35 @@ export class CanvasPhotoEditor {
|
|
|
}
|
|
|
return newPages
|
|
|
}
|
|
|
+ // 插入 + 自动向后递补(最后一项溢出,保持页数/每页长度不变)
|
|
|
+ // 把指定页截短,并让后面所有数据自动向后重新排版(每页最大长度 2)
|
|
|
+resizePageAndReflow(pages, pageIndex, itemValue) {
|
|
|
+ // 1. 插入
|
|
|
+ pages[pageIndex].list.splice(0, 0, itemValue.list);
|
|
|
+ pages[pageIndex].item.splice(0, 0, itemValue.item);
|
|
|
+ console.log(pages, 'pages')
|
|
|
+ // 2. 往后递补(只推,不拆分)
|
|
|
+ for (let i = pageIndex; i < pages.length; i++) {
|
|
|
+ let lastList = pages[i].list.pop();
|
|
|
+ let lastItem = pages[i].item.pop();
|
|
|
+ if(!pages[i + 1] && lastList){
|
|
|
+ pages[i + 1] = {
|
|
|
+ layoutMode: this.layoutMode, //页码布局类型
|
|
|
+ list:[lastList],
|
|
|
+ item: [lastItem]
|
|
|
+ }
|
|
|
+ return pages;
|
|
|
+ }
|
|
|
+ console.log(lastList, 'pageslastList')
|
|
|
+ if (lastList) {
|
|
|
+ pages[i + 1].list.unshift(lastList);
|
|
|
+ pages[i + 1].item.unshift(lastItem);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return pages;
|
|
|
+}
|
|
|
// 用法:删除第 index 个 item 里的第 subIndex 项
|
|
|
removeAndFill(newPages, pageIndex, numIndex) {
|
|
|
// 1. 删除
|