| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import {
- serialNumberTypeList,
- displayList,
- serialNumberPositionList,
- pinyinPositionList,
- serialNumberStyleList,
- } from '@/views/book/courseware/data/common';
- import { getRandomNumber } from '@/utils';
- /**
- * 获取连线题属性
- * @param {number} column_num 列数 2 ~ 3
- */
- export function getMatchingProperty(column_num = 2) {
- if (column_num !== 2 && column_num !== 3) {
- throw new Error('column_num must be 2 or 3');
- }
- return {
- serial_number: 1,
- sn_type: serialNumberTypeList[0].value,
- sn_position: serialNumberPositionList[3].value,
- sn_display_mode: displayList[1].value,
- sn_style: serialNumberStyleList[0].value,
- sn_background_color: '#ea3232', // 序号背景色
- serial_number_type_list: serialNumberTypeList.slice(0, column_num).map((item) => item.value),
- row_num: 2, // 行数
- column_num, // 列数 2 ~ 3
- view_pinyin: 'false', // 显示拼音
- pinyin_position: pinyinPositionList[0].value,
- is_first_sentence_first_hz_pinyin_first_char_upper_case: displayList[0].value, // 句首大写
- };
- }
- export function getOptionItem() {
- return {
- content: '',
- mark: getRandomNumber(),
- multilingual: [], // 多语言
- paragraph_list: [], // 段落列表
- // 段落列表参数
- paragraph_list_parameter: {
- text: '',
- pinyin_proofread_word_list: [],
- },
- };
- }
- /**
- * 获取连线题选项
- * @param {number} column_num 列数 2 ~ 3
- */
- export function getOption(column_num = 2) {
- if (column_num !== 2 && column_num !== 3) {
- throw new Error('column_num must be 2 or 3');
- }
- let option = [];
- for (let i = 0; i < column_num; i++) {
- option.push(getOptionItem());
- }
- return option;
- }
- export const svgNS = 'http://www.w3.org/2000/svg'; // SVG命名空间
- export function getMatchingData() {
- let option_list = [getOption(), getOption()];
- let answer_list = option_list.map((item) =>
- item.map(({ mark }, i) => {
- return i === 0 ? { mark } : { mark: '' };
- }),
- );
- return {
- type: 'matching',
- title: '连线',
- option_list,
- answer: {
- answer_list,
- },
- min_height: 120,
- min_width: 290,
- property: getMatchingProperty(),
- mind_map: {
- node_list: [{ name: '两行两列连线组件' }],
- },
- answer_list: [], // 答案列表
- analysis_list: [], // 解析列表
- };
- }
|