12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import { serialNumberTypeList, displayList, serialNumberPositionList } 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[0].value,
- serial_number_type_list: serialNumberTypeList.slice(0, column_num).map((item) => item.value),
- row_num: 2, // 行数
- column_num, // 列数 2 ~ 3
- };
- }
- export function getOptionItem() {
- return {
- content: '',
- mark: getRandomNumber(),
- };
- }
- /**
- * 获取连线题选项
- * @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: '两行两列连线组件' }],
- },
- };
- }
|