|  | @@ -19,10 +19,10 @@ export const audioViewMethodList = [
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 序号类型
 | 
	
		
			
				|  |  |  export const serialNumberTypeList = [
 | 
	
		
			
				|  |  | -  { value: 'letter', label: '字母' },
 | 
	
		
			
				|  |  |    { value: 'number', label: '数字' },
 | 
	
		
			
				|  |  | -  { value: 'capital', label: '大写字母' },
 | 
	
		
			
				|  |  |    { value: 'bracket_number', label: '括号数字' },
 | 
	
		
			
				|  |  | +  { value: 'letter', label: '字母' },
 | 
	
		
			
				|  |  | +  { value: 'capital', label: '大写字母' },
 | 
	
		
			
				|  |  |  ];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
	
		
			
				|  | @@ -31,31 +31,55 @@ export const serialNumberTypeList = [
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  export function checkString(str) {
 | 
	
		
			
				|  |  |    const number = /\d/.test(str); // 判断是否包含数字
 | 
	
		
			
				|  |  | -  const letter = /[a-zA-Z]/.test(str); // 判断是否包含字母
 | 
	
		
			
				|  |  | +  const letter = /[a-z]/.test(str); // 判断是否包含字母
 | 
	
		
			
				|  |  |    const capital = /[A-Z]/.test(str); // 判断是否包含大写字母
 | 
	
		
			
				|  |  |    const bracket_number = /\(\d+\)/.test(str); // 判断是否包含括号数字,例如 (123)
 | 
	
		
			
				|  |  | -  return { number, letter, capital, bracket_number };
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -/**
 | 
	
		
			
				|  |  | - * 改变选项类型
 | 
	
		
			
				|  |  | - * @param {string} serial_number 序号
 | 
	
		
			
				|  |  | - */
 | 
	
		
			
				|  |  | -export function switchSerialNumber(serial_number) {
 | 
	
		
			
				|  |  | -  let sn_type = checkString(serial_number);
 | 
	
		
			
				|  |  | -  let index = serialNumberTypeList.findIndex(({ value }) => value === sn_type);
 | 
	
		
			
				|  |  | -  sn_type = serialNumberTypeList[index + 1]?.value || serialNumberTypeList[0].value;
 | 
	
		
			
				|  |  | +  const obj = { number, letter, capital, bracket_number };
 | 
	
		
			
				|  |  | +  let strType = '';
 | 
	
		
			
				|  |  | +  Object.keys(obj).forEach((key) => {
 | 
	
		
			
				|  |  | +    if (obj[key]) {
 | 
	
		
			
				|  |  | +      strType = key;
 | 
	
		
			
				|  |  | +      return true;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  });
 | 
	
		
			
				|  |  | +  return strType;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // 计算选项方法
 | 
	
		
			
				|  |  |  export const computeOptionMethods = {
 | 
	
		
			
				|  |  | -  [serialNumberTypeList[0].value]: (i) => `${String.fromCharCode(97 + i)}.`,
 | 
	
		
			
				|  |  | -  [serialNumberTypeList[1].value]: (i) => `${i + 1}.`,
 | 
	
		
			
				|  |  | -  [serialNumberTypeList[2].value]: (i) => `${String.fromCharCode(65 + i)}.`,
 | 
	
		
			
				|  |  | -  [serialNumberTypeList[3].value]: (i) => `(${i + 1})`,
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[0].value]: (i) => `${i + 1}`,
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[1].value]: (i) => `(${i + 1})`,
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[2].value]: (i) => `${String.fromCharCode(97 + i)}`, // 小写
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[3].value]: (i) => `${String.fromCharCode(65 + i)}`, // 大写
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export const reversedComputeOptionMethods = {
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[0].value]: (i) => Number(i),
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[1].value]: (i) => Number(i.replace('(', '').replace(')', '')),
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[2].value]: (i) => i.charCodeAt(0) - 97 + 1, // 小写
 | 
	
		
			
				|  |  | +  [serialNumberTypeList[3].value]: (i) => i.charCodeAt(0) - 65 + 1,
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  | + * 改变选项序号
 | 
	
		
			
				|  |  | + * @param {object} property
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function switchSerialNumber(property) {
 | 
	
		
			
				|  |  | +  let relNum = 1;
 | 
	
		
			
				|  |  | +  const reversedComputationMethod = reversedComputeOptionMethods[property.sn_type];
 | 
	
		
			
				|  |  | +  if (reversedComputationMethod) {
 | 
	
		
			
				|  |  | +    relNum = reversedComputationMethod(property.serial_number);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  let index = serialNumberTypeList.findIndex((p) => p.value === property.sn_type);
 | 
	
		
			
				|  |  | +  property.sn_type = serialNumberTypeList[index + 1]?.value || serialNumberTypeList[0].value;
 | 
	
		
			
				|  |  | +  const computationMethod = computeOptionMethods[property.sn_type];
 | 
	
		
			
				|  |  | +  if (computationMethod) {
 | 
	
		
			
				|  |  | +    property.serial_number = computationMethod(relNum - 1);
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  |   * 计算选项序号
 | 
	
		
			
				|  |  |   * @param {Number} i 序号
 | 
	
		
			
				|  |  |   * @param {String} sn_type 选项类型
 |