|
@@ -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 选项类型
|