123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <template>
- <div class="card-free-view">
- <template v-for="(page, pageNo) in pages">
- <div
- :class="[
- 'page-box',
- `page-box-${page.pageSize}`,
- `page-box-${pageNo % 2}`,
- { 'page-box-less': pages.length <= 2 }
- ]"
- :key="pageNo"
- >
- <!-- locator -->
- <div class="page-locator page-locator-top">
- <div
- v-for="elem in page.locators.top"
- :key="elem.id"
- :id="elem.id"
- class="page-locator-item"
- ></div>
- </div>
- <div class="page-locator page-locator-bottom">
- <div
- v-for="elem in page.locators.bottom"
- :key="elem.id"
- :id="elem.id"
- class="page-locator-item"
- ></div>
- </div>
- <!-- inner edit area -->
- <div class="page-main-inner">
- <div
- :class="['page-main', `page-main-${page.columns.length}`]"
- :style="{ margin: `0 -${page.columnGap / 2}px` }"
- >
- <div
- class="page-column"
- v-for="(column, columnNo) in page.columns"
- :key="columnNo"
- :style="{ padding: `0 ${page.columnGap / 2}px` }"
- >
- <div
- class="page-column-main"
- :id="[`column-${pageNo}-${columnNo}`]"
- >
- <div class="page-column-body" v-if="column.elements.length">
- <topic-element-preview
- class="page-column-element"
- v-for="element in column.elements"
- :key="element.id"
- :data="element"
- ></topic-element-preview>
- </div>
- <div class="page-column-body" v-else>
- <div
- class="page-column-forbid-area"
- v-if="cardConfig.showForbidArea"
- >
- <p>该区域严禁作答</p>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- outer edit area -->
- <div class="page-main-outer">
- <page-number
- type="rect"
- :total="pages.length"
- :current="pageNo + 1"
- ></page-number>
- <page-number
- type="text"
- :total="pages.length"
- :current="pageNo + 1"
- ></page-number>
- </div>
- </div>
- </template>
- </div>
- </template>
- <script>
- import TopicElementPreview from "./TopicElementPreview";
- import PageNumber from "../../../components/PageNumber";
- import previewTemp from "../../../previewTemp";
- import { getPageModel } from "../cardFormatTransform";
- export default {
- name: "card-free-view",
- components: { TopicElementPreview, PageNumber },
- props: {
- pages: {
- type: Array,
- default() {
- return [];
- }
- },
- cardConfig: {
- type: Object,
- default() {
- return {};
- }
- }
- },
- methods: {
- getPageModel(cardData) {
- return getPageModel(cardData);
- },
- getPreviewTemp(htmlContent) {
- return previewTemp(htmlContent);
- }
- }
- };
- </script>
|