2 Commits d96ac96d1d ... c34a043b8a

Autor SHA1 Mensagem Data
  dusenyao c34a043b8a Merge branch 'master' of http://60.205.254.193:3000/GCLS/GCLS_Page_Exercise 4 meses atrás
  dusenyao 60aa8c93db 填表题智能识别改进 4 meses atrás
1 arquivos alterados com 13 adições e 7 exclusões
  1. 13 7
      src/views/exercise_questions/data/tableFill.js

+ 13 - 7
src/views/exercise_questions/data/tableFill.js

@@ -22,33 +22,39 @@ export function getOption(type = 'option', text = '') {
  */
 export function analysisRecognitionTableFillData(arr) {
   if (arr.length === 0) return {};
+  // 判断 arr[0] 中是否有 -
+  let isEnableTable = arr[0].includes('-');
   // 表头
   let headerNum = arr[0].split('-').length;
-  if (headerNum > 1 && (headerNum < 2 || headerNum > 5)) {
+  if (isEnableTable && (headerNum < 2 || headerNum > 5)) {
     Message.error('填表题行数在2-5之间');
     return {};
   }
   let is_enable_table_header = switchOption[0].value;
   let column_number = 2;
   let option_header_list = [];
-  if (headerNum > 1) {
-    is_enable_table_header = switchOption[1].value;
+  if (isEnableTable && headerNum > 1) {
+    is_enable_table_header = switchOption[0].value;
     column_number = headerNum;
     option_header_list = arr[0]
       .split('-')
       .map((item) => ({ mark: getRandomNumber(), text: item, width: 100 / headerNum }));
     arr.shift();
   } else {
-    is_enable_table_header = switchOption[0].value;
-    option_header_list = [];
+    is_enable_table_header = switchOption[1].value;
   }
 
   // 通过正则表达式匹配出表格内容
   let matches = arr.map((str) => {
     return str.match(/[((](.*?)[))]/g).map((item) => item.replace(/[((](.*?)[))]/g, '$1'));
   });
+  let colNum = isEnableTable ? headerNum : matches[0].length;
+  // 如果不启用表头,取第一行的列数
+  if (!isEnableTable) {
+    column_number = colNum;
+  }
   let isMate = matches.every((item) => {
-    if (item.length !== headerNum) {
+    if (item.length !== colNum) {
       Message.error('填表题表格列数不匹配');
       return false;
     }
@@ -60,7 +66,7 @@ export function analysisRecognitionTableFillData(arr) {
     Message.error('填表题行数在1-30之间');
     return {};
   }
-  const option_list = matches.map((item) => item.map(getOption));
+  const option_list = matches.map((item) => item.map((text) => getOption('option', text)));
 
   return {
     'data.property.is_enable_table_header': is_enable_table_header,