Просмотр исходного кода

fix(Student): 调整选项文本显示逻辑以适应中英文不同长度

根据文本语言类型动态调整最大显示长度和换行规则,英文允许更长显示并采用不同换行标准,提升可读性
SanHQin 1 неделя назад
Родитель
Сommit
865569d4bb
1 измененных файлов с 11 добавлено и 6 удалено
  1. 11 6
      src/views/Student/components/choiceQuestionDetailDialog.vue

+ 11 - 6
src/views/Student/components/choiceQuestionDetailDialog.vue

@@ -574,15 +574,20 @@ const setEchartsArea1 = () => {
                 // 非JSON字符串,直接返回
                 // 如果文本文字超过8个字,换行
                 if (typeof value === 'string') {
+                  // 判断value是否全是英文
+                  const isAllEnglish = /^[a-zA-Z0-9\s\p{P}]+$/u.test(value)
                   let displayValue = value
-                  if (value.length > 20) {
-                    displayValue = value.substr(0, 20) + '...'
+                  const maxLength = isAllEnglish ? 30 : 20
+                  const lineLength = isAllEnglish ? 16 : 8
+                  
+                  if (value.length > maxLength) {
+                    displayValue = value.substr(0, maxLength) + '...'
                   }
-                  // 8个字换行
+                  // 换行处理
                   let output = ''
-                  for (let i = 0; i < displayValue.length; i += 8) {
-                    output += displayValue.substr(i, 8)
-                    if (i + 8 < displayValue.length) {
+                  for (let i = 0; i < displayValue.length; i += lineLength) {
+                    output += displayValue.substr(i, lineLength)
+                    if (i + lineLength < displayValue.length) {
                       output += '\n'
                     }
                   }