|
@@ -56,7 +56,7 @@
|
|
:key="pageNo"
|
|
:key="pageNo"
|
|
:type="curPageNo === pageNo ? 'primary' : 'default'"
|
|
:type="curPageNo === pageNo ? 'primary' : 'default'"
|
|
@click="swithPage(pageNo)"
|
|
@click="swithPage(pageNo)"
|
|
- >{{ !pageNo ? "正面" : "反面" }}</el-button
|
|
|
|
|
|
+ >{{ PAGE_TYPE[page.pageType] }}</el-button
|
|
>
|
|
>
|
|
</div>
|
|
</div>
|
|
<div class="control-right">
|
|
<div class="control-right">
|
|
@@ -80,14 +80,17 @@
|
|
:class="[
|
|
:class="[
|
|
'page-box',
|
|
'page-box',
|
|
`page-box-${curPage.pageSize}`,
|
|
`page-box-${curPage.pageSize}`,
|
|
- `page-box-${curPageNo % 2}`,
|
|
|
|
|
|
+ `page-box-${pageTypeType(curPage.pageType)}`,
|
|
]"
|
|
]"
|
|
>
|
|
>
|
|
<!-- inner edit area -->
|
|
<!-- inner edit area -->
|
|
<div
|
|
<div
|
|
:class="[
|
|
:class="[
|
|
'page-main-inner',
|
|
'page-main-inner',
|
|
- { 'page-main-noside': !curPage.showSide },
|
|
|
|
|
|
+ {
|
|
|
|
+ 'page-main-noside':
|
|
|
|
+ !curPage.showSide || curPage.pageType === 'cover',
|
|
|
|
+ },
|
|
]"
|
|
]"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
@@ -115,17 +118,17 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<page-number
|
|
<page-number
|
|
- v-if="curPage.showPageNo"
|
|
|
|
|
|
+ v-if="curPage.showPageNo && curPage.pageType !== 'cover'"
|
|
type="text"
|
|
type="text"
|
|
- :total="pages.length * curPage.columns.length"
|
|
|
|
- :current="curPageNo * curPage.columns.length + columnNo + 1"
|
|
|
|
|
|
+ :total="getTotalPage()"
|
|
|
|
+ :current="getPageNumber(curPageNo, columnNo)"
|
|
></page-number>
|
|
></page-number>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- side edit -->
|
|
<!-- side edit -->
|
|
<paper-side-edit
|
|
<paper-side-edit
|
|
- v-if="curPage.showSide"
|
|
|
|
|
|
+ v-if="curPage.showSide && curPage.pageType !== 'cover'"
|
|
class="page-column-side"
|
|
class="page-column-side"
|
|
:data="curPage.sides"
|
|
:data="curPage.sides"
|
|
></paper-side-edit>
|
|
></paper-side-edit>
|
|
@@ -176,8 +179,8 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { mapState, mapMutations, mapActions } from "vuex";
|
|
import { mapState, mapMutations, mapActions } from "vuex";
|
|
-import { getElementModel, ELEMENT_LIST } from "../elementModel";
|
|
|
|
-import { getModel as getPageModel } from "../elements/page/model";
|
|
|
|
|
|
+import { getElementModel, ELEMENT_LIST, PAGE_CONFIG } from "../elementModel";
|
|
|
|
+import { getModel as getPageModel, PAGE_TYPE } from "../elements/page/model";
|
|
|
|
|
|
import PagePropEdit from "./PagePropEdit";
|
|
import PagePropEdit from "./PagePropEdit";
|
|
import ElementPropEdit from "./ElementPropEdit";
|
|
import ElementPropEdit from "./ElementPropEdit";
|
|
@@ -211,12 +214,14 @@ export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
ELEMENT_LIST,
|
|
ELEMENT_LIST,
|
|
|
|
+ PAGE_TYPE,
|
|
isSubmit: false,
|
|
isSubmit: false,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
...mapState("paper-export", [
|
|
...mapState("paper-export", [
|
|
"topics",
|
|
"topics",
|
|
|
|
+ "pageConfig",
|
|
"pages",
|
|
"pages",
|
|
"curElement",
|
|
"curElement",
|
|
"curPage",
|
|
"curPage",
|
|
@@ -232,33 +237,61 @@ export default {
|
|
methods: {
|
|
methods: {
|
|
...mapMutations("paper-export", [
|
|
...mapMutations("paper-export", [
|
|
"addPage",
|
|
"addPage",
|
|
- "setCurPage",
|
|
|
|
"setCurElement",
|
|
"setCurElement",
|
|
"setOpenElementEditDialog",
|
|
"setOpenElementEditDialog",
|
|
"setCurDragElement",
|
|
"setCurDragElement",
|
|
"setPages",
|
|
"setPages",
|
|
- "setTopics",
|
|
|
|
|
|
+ "setPageConfig",
|
|
"initState",
|
|
"initState",
|
|
]),
|
|
]),
|
|
...mapActions("paper-export", [
|
|
...mapActions("paper-export", [
|
|
"addElement",
|
|
"addElement",
|
|
"modifyElement",
|
|
"modifyElement",
|
|
"rebuildPages",
|
|
"rebuildPages",
|
|
- "initTopicsFromPages",
|
|
|
|
|
|
+ "changePage",
|
|
]),
|
|
]),
|
|
|
|
+ pageTypeType(pageType) {
|
|
|
|
+ const types = {
|
|
|
|
+ cover: 0,
|
|
|
|
+ front: 0,
|
|
|
|
+ back: 1,
|
|
|
|
+ };
|
|
|
|
+ return types[pageType];
|
|
|
|
+ },
|
|
|
|
+ getPageNumber(curPageNo, columnNo) {
|
|
|
|
+ let pageNo = this.pageConfig.showCover ? curPageNo - 1 : curPageNo;
|
|
|
|
+ return pageNo * this.curPage.columns.length + columnNo + 1;
|
|
|
|
+ },
|
|
|
|
+ getTotalPage() {
|
|
|
|
+ let pageCount = this.pageConfig.showCover
|
|
|
|
+ ? this.pages.length - 1
|
|
|
|
+ : this.pages.length;
|
|
|
|
+ return pageCount * this.pageConfig.columnNumber;
|
|
|
|
+ },
|
|
initCard() {
|
|
initCard() {
|
|
- const { pages } = this.content;
|
|
|
|
|
|
+ let { pages, pageConfig } = this.content;
|
|
|
|
+ if (!pageConfig) {
|
|
|
|
+ pageConfig = { ...PAGE_CONFIG };
|
|
|
|
+ }
|
|
|
|
+ this.setPageConfig(pageConfig);
|
|
|
|
+
|
|
if (pages && pages.length) {
|
|
if (pages && pages.length) {
|
|
this.setPages(pages);
|
|
this.setPages(pages);
|
|
- this.initTopicsFromPages();
|
|
|
|
- this.setCurPage(0);
|
|
|
|
|
|
+ this.changePage(0);
|
|
} else {
|
|
} else {
|
|
- this.initPageData();
|
|
|
|
|
|
+ this.initPageData(pageConfig);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- initPageData(pageInfo = {}) {
|
|
|
|
- this.setPages([getPageModel(pageInfo), getPageModel(pageInfo)]);
|
|
|
|
- this.setCurPage(0);
|
|
|
|
|
|
+ initPageData() {
|
|
|
|
+ let pages = [
|
|
|
|
+ getPageModel({ ...this.pageConfig, pageType: "front" }),
|
|
|
|
+ getPageModel({ ...this.pageConfig, pageType: "back" }),
|
|
|
|
+ ];
|
|
|
|
+ if (this.pageConfig.showCover) {
|
|
|
|
+ pages.unshift(getPageModel({ ...this.pageConfig, pageType: "cover" }));
|
|
|
|
+ }
|
|
|
|
+ this.setPages(pages);
|
|
|
|
+ this.changePage(0);
|
|
},
|
|
},
|
|
addNewTopic(type) {
|
|
addNewTopic(type) {
|
|
let element = getElementModel(type);
|
|
let element = getElementModel(type);
|
|
@@ -275,8 +308,8 @@ export default {
|
|
// 切换正反页
|
|
// 切换正反页
|
|
swithPage(pindex) {
|
|
swithPage(pindex) {
|
|
if (this.curPageNo === pindex) return;
|
|
if (this.curPageNo === pindex) return;
|
|
- this.setCurPage(pindex);
|
|
|
|
this.setCurElement({});
|
|
this.setCurElement({});
|
|
|
|
+ this.changePage(pindex);
|
|
},
|
|
},
|
|
getTemplateJson() {
|
|
getTemplateJson() {
|
|
return new Promise((resolve) => {
|
|
return new Promise((resolve) => {
|