|
@@ -6,7 +6,13 @@ import {
|
|
|
getNewPage,
|
|
|
getTopicHeadModel,
|
|
|
} from "../elementModel";
|
|
|
-import { objAssign, deepCopy, calcSum, getElementId } from "../plugins/utils";
|
|
|
+import {
|
|
|
+ objAssign,
|
|
|
+ deepCopy,
|
|
|
+ calcSum,
|
|
|
+ getElementId,
|
|
|
+ numberIsOdd,
|
|
|
+} from "../plugins/utils";
|
|
|
|
|
|
const state = {
|
|
|
cardConfig: {},
|
|
@@ -15,6 +21,11 @@ const state = {
|
|
|
curDragElement: {},
|
|
|
curPage: {},
|
|
|
curPageNo: 0,
|
|
|
+ pageDefaultElems: {
|
|
|
+ elements: [],
|
|
|
+ sideLeft: [],
|
|
|
+ sideRight: [],
|
|
|
+ },
|
|
|
pages: [],
|
|
|
topics: [],
|
|
|
topicSeries: [], // 大题顺序号
|
|
@@ -46,6 +57,9 @@ const mutations = {
|
|
|
setPages(state, pages) {
|
|
|
state.pages = pages;
|
|
|
},
|
|
|
+ setPageDefaultElems(state, pageDefaultElems) {
|
|
|
+ state.pageDefaultElems = pageDefaultElems;
|
|
|
+ },
|
|
|
setTopics(state, topics) {
|
|
|
state.topics = topics;
|
|
|
},
|
|
@@ -572,7 +586,6 @@ const actions = {
|
|
|
const pageSize = state.cardConfig.pageSize;
|
|
|
// 更新元件最新的高度信息
|
|
|
// 整理所有元件
|
|
|
- const cardHeadElement = state.topics[0];
|
|
|
state.topics.forEach((element) => {
|
|
|
const elementDom = document.getElementById(`preview-${element.id}`);
|
|
|
|
|
@@ -590,8 +603,6 @@ const actions = {
|
|
|
|
|
|
// 动态计算每列可以分配的元件
|
|
|
const columnHeight = document.getElementById("topic-column").offsetHeight;
|
|
|
- const simpleCardHeadHeight =
|
|
|
- document.getElementById("simple-card-head").offsetHeight;
|
|
|
let pages = [];
|
|
|
let page = {};
|
|
|
let columns = [];
|
|
@@ -601,26 +612,11 @@ const actions = {
|
|
|
const initCurColumnElements = () => {
|
|
|
curColumnElements = [];
|
|
|
curColumnHeight = 0;
|
|
|
- const groupColumnNumber = columnNumber * 2;
|
|
|
- // 奇数页第一栏;
|
|
|
- if (!(columns.length % groupColumnNumber)) {
|
|
|
- // 非第一页奇数页第一栏
|
|
|
- if (columns.length) {
|
|
|
- const cardHeadSimpleElement = Object.assign({}, cardHeadElement, {
|
|
|
- id: getElementId(),
|
|
|
- isSimple: true,
|
|
|
- h: simpleCardHeadHeight,
|
|
|
- });
|
|
|
- curColumnElements.push(cardHeadSimpleElement);
|
|
|
- curColumnHeight += simpleCardHeadHeight;
|
|
|
- } else {
|
|
|
- curColumnElements.push(cardHeadElement);
|
|
|
- curColumnHeight += cardHeadElement.h;
|
|
|
- }
|
|
|
- }
|
|
|
};
|
|
|
|
|
|
const checkElementIsCurColumnFirstType = (element) => {
|
|
|
+ if (element.type === "CARD_HEAD") return;
|
|
|
+
|
|
|
const topicHeadIndex = curColumnElements.findIndex(
|
|
|
(elem) => elem.type === "TOPIC_HEAD" && elem.sign === element.sign
|
|
|
);
|
|
@@ -663,7 +659,7 @@ const actions = {
|
|
|
|
|
|
// 批量添加所有元素。
|
|
|
initCurColumnElements();
|
|
|
- state.topics.slice(1).forEach((element, eindex) => {
|
|
|
+ state.topics.forEach((element, eindex) => {
|
|
|
element.elementSerialNo = eindex;
|
|
|
pushElement(element);
|
|
|
});
|
|
@@ -679,14 +675,22 @@ const actions = {
|
|
|
page.columns[columnNo].elements = column;
|
|
|
|
|
|
if (columnNo + 1 === columnNumber || cindex === columns.length - 1) {
|
|
|
- pages.push(deepCopy(page));
|
|
|
+ pages.push(page);
|
|
|
}
|
|
|
});
|
|
|
// 保证页面总是偶数页
|
|
|
- if (pages.length % 2) {
|
|
|
+ if (numberIsOdd(pages.length)) {
|
|
|
pages.push(getNewPage(pages.length, { pageSize, columnNumber }));
|
|
|
}
|
|
|
|
|
|
+ pages.forEach((page, pindex) => {
|
|
|
+ if (numberIsOdd(pindex + 1)) {
|
|
|
+ page.sides = deepCopy(state.pageDefaultElems.sideLeft);
|
|
|
+ } else {
|
|
|
+ page.sides = deepCopy(state.pageDefaultElems.sideRight);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
commit("setPages", pages);
|
|
|
commit("setCurPage", state.curPageNo);
|
|
|
},
|