123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- // 选项类型
- export const optionTypeList = [
- { value: 'letter', label: '字母' },
- { value: 'number', label: '数字' },
- { value: 'capital', label: '大写字母' },
- { value: 'bracket_number', label: '括号数字' },
- ];
- // 计算选项方法
- export const computeOptionMethods = {
- [optionTypeList[0].value]: (i) => `${String.fromCharCode(97 + i)}.`,
- [optionTypeList[1].value]: (i) => `${i + 1}.`,
- [optionTypeList[2].value]: (i) => `${String.fromCharCode(65 + i)}.`,
- [optionTypeList[3].value]: (i) => `(${i + 1})`,
- };
- /**
- * 改变选项类型
- * @param {object} data 数据
- */
- export function changeOptionType(data) {
- let index = optionTypeList.findIndex(({ value }) => value === data.option_number_show_mode);
- data.option_number_show_mode = optionTypeList[index + 1]?.value || optionTypeList[0].value;
- }
- /**
- * 计算选项题号
- * @param {Number} i 序号
- * @param {String} option_number_show_mode 选项类型
- * @returns String 题号
- */
- export function computedQuestionNumber(i, option_number_show_mode) {
- const computationMethod = computeOptionMethods[option_number_show_mode];
- if (computationMethod) {
- return computationMethod(i);
- }
- return '';
- }
- // 题干类型
- export const stemTypeList = [
- { value: 'text', label: '纯文本' },
- { value: 'rich', label: '富文本' },
- ];
- // 分值类型
- export const scoreTypeList = [
- { value: 'aggregate', label: '总分' },
- { value: 'subdivision', label: '细分' },
- ];
- // 选择类型
- export const selectTypeList = [
- { value: 'single', label: '单选' },
- { value: 'multiple', label: '多选' },
- ];
- // 开关选项
- export const switchOption = [
- { value: 'true', label: '开启' },
- { value: 'false', label: '关闭' },
- ];
- // 字体大小列表
- export const fontSizeList = [
- '8pt',
- '10pt',
- '11pt',
- '12pt',
- '14pt',
- '16pt',
- '18pt',
- '20pt',
- '22pt',
- '24pt',
- '26pt',
- '28pt',
- '30pt',
- '32pt',
- '34pt',
- '36pt',
- ];
- /**
- * 是否开启
- * @param {String} value 值
- * @returns Boolean
- */
- export function isEnable(value) {
- return value === switchOption[0].value;
- }
- // 题号类型
- export const questionNumberTypeList = [
- { value: 'recalculate', label: '重新计算' },
- { value: 'follow', label: '跟随上题' },
- ];
- export const svgNS = 'http://www.w3.org/2000/svg'; // SVG命名空间
- export const tone_data = [
- ['ā', 'á', 'ǎ', 'à', 'a'],
- ['ō', 'ó', 'ǒ', 'ò', 'o'],
- ['ē', 'é', 'ě', 'è', 'e'],
- ['ī', 'í', 'ǐ', 'ì', 'i'],
- ['ū', 'ú', 'ǔ', 'ù', 'u'],
- ['ǖ', 'ǘ', 'ǚ', 'ǜ', 'ü'],
- ['ǖ', 'ǘ', 'ǚ', 'ǜ', 'ü'],
- ['Ā', 'Á', 'Â', 'À', 'A'],
- ['Ō', 'Ó', 'Ô', 'Ò', 'O'],
- ['Ē', 'É', 'Ê', 'È', 'E'],
- ['Ī', 'Í', 'Î', 'Ì', 'I'],
- ['Ū', 'Ú', 'Û', 'Ù', 'U'],
- ];
- /**
- * 添加声调
- * @param {Number} number
- * @param {String} con
- * @returns String
- */
- export function addTone(number, con) {
- const zmList = ['a', 'o', 'e', 'i', 'u', 'v', 'ü', 'A', 'O', 'E', 'I', 'U'];
- let cons = con;
- if (number) {
- for (let i = 0; i < zmList.length; i++) {
- let zm = zmList[i];
- if (con.includes(zm)) {
- let zm2 = tone_data[i][number - 1];
- if (con.includes('iu')) {
- zm2 = tone_data[4][number - 1];
- cons = con.replace('u', zm2);
- } else if (con.includes('ui')) {
- zm2 = tone_data[3][number - 1];
- cons = con.replace('i', zm2);
- } else if (/yv|jv|qv|xv/.test(con)) {
- zm2 = tone_data[4][number - 1];
- cons = con.replace('v', zm2);
- } else if (/yü|jü|qü|xü/.test(con)) {
- zm2 = tone_data[4][number - 1];
- cons = con.replace('ü', zm2);
- } else {
- cons = con.replace(zm, zm2);
- }
- break;
- }
- }
- }
- return cons;
- }
- /**
- * 输入框输入小于0的返回0 且为整数
- * @param {number|string} number
- */
- export function handleInputNumber(number) {
- const number_int = Number(number);
- return number_int > 0 ? Math.floor(number_int) : 1;
- }
|