123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- /* eslint-disable no-unused-vars */
- import { deepCopy, getNumList } from "./plugins/utils";
- import { getModel as getCardHeadModel } from "./elements/card-head/model";
- import { getModel as getTopicHeadModel } from "./elements/topic-head/model";
- // element
- import { getModel as createLines } from "./elements/lines/model";
- import { getModel as createLine } from "./elements/line/model";
- import { getModel as createText } from "./elements/text/model";
- import { getModel as createImage } from "./elements/image/model";
- import { getModel as createGrids } from "./elements/grids/model";
- import {
- getModel as createComposition,
- getFullModel as getCompositionElements
- } from "./elements/composition/model";
- import {
- getModel as createFillQuestion,
- getFullModel as getFillQuesitonElements
- } from "./elements/fill-question/model";
- import {
- getModel as createFillLine,
- getFullModel as getFillLineElements
- } from "./elements/fill-line/model";
- import {
- getModel as createExplain,
- getFullModel as getExplainElements
- } from "./elements/explain/model";
- // page relate ------------------- >
- // 页面
- const PAGE = {
- type: "PAGE",
- columnGap: 20,
- locators: [],
- globals: [],
- columns: []
- };
- // 可编辑栏
- const COLUMN = {
- type: "COLUMN",
- x: "",
- y: "",
- w: "",
- h: "",
- isFull: false, // 是否已经填满元素
- elements: []
- };
- // 定位点
- const LOCATOR = {
- type: "LOCATOR",
- x: "",
- y: "",
- w: "",
- h: ""
- };
- // available infos
- const EDITABLE_ELEMENT = [
- "LINE_HORIZONTAL",
- "LINE_VERTICAL",
- "LINES",
- "TEXT",
- "IMAGE",
- "GRIDS"
- ];
- const EDITABLE_TOPIC = ["FILL_QUESTION", "FILL_LINE", "EXPLAIN", "COMPOSITION"];
- const ELEMENT_INFOS = {
- LINES: {
- name: "多横线",
- getModel: createLines
- },
- LINE_HORIZONTAL: {
- name: "横线",
- getModel: () => createLine("HORIZONTAL")
- },
- LINE_VERTICAL: {
- name: "竖线",
- getModel: () => createLine("VERTICAL")
- },
- TEXT: {
- name: "文本",
- getModel: createText
- },
- IMAGE: {
- name: "图片",
- getModel: createImage
- },
- GRIDS: {
- name: "网格",
- getModel: createGrids
- },
- FILL_QUESTION: {
- name: "选择题",
- getModel: createFillQuestion
- },
- FILL_LINE: {
- name: "填空题",
- getModel: createFillLine
- },
- EXPLAIN: {
- name: "解答题",
- getModel: createExplain
- },
- COMPOSITION: {
- name: "作文题",
- getModel: createComposition
- }
- };
- const ELEMENT_LIST = EDITABLE_ELEMENT.map(type => {
- return {
- ...ELEMENT_INFOS[type],
- type
- };
- });
- const TOPIC_LIST = EDITABLE_TOPIC.map(type => {
- return {
- ...ELEMENT_INFOS[type],
- type
- };
- });
- // 获取元件默认数据结构
- const getElementModel = type => {
- return ELEMENT_INFOS[type].getModel();
- };
- const getElementName = type => {
- return ELEMENT_INFOS[type].name;
- };
- // 创建新页面
- const getNewPage = (pageNo, columnNumber = 2) => {
- let npage = deepCopy(PAGE);
- if (columnNumber === 4) {
- npage.columnGap = 10;
- }
- npage.locators = getNumList(3).map((item, index) => {
- return [
- {
- ...LOCATOR,
- id: `locator-${pageNo}-${index}0`
- },
- {
- ...LOCATOR,
- id: `locator-${pageNo}-${index}1`
- }
- ];
- });
- npage.columns = getNumList(columnNumber).map((item, index) => {
- return deepCopy(COLUMN);
- });
- return npage;
- };
- export {
- getElementModel,
- getElementName,
- getNewPage,
- getCardHeadModel,
- getTopicHeadModel,
- getFillQuesitonElements,
- getFillLineElements,
- getExplainElements,
- getCompositionElements,
- ELEMENT_LIST,
- TOPIC_LIST
- };
|