소스 검색

填表题修改

dusenyao 1 년 전
부모
커밋
9e9dc2f029

+ 54 - 35
package-lock.json

@@ -226,9 +226,9 @@
       }
     },
     "@babel/eslint-parser": {
-      "version": "7.23.9",
-      "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.23.9.tgz",
-      "integrity": "sha512-xPndlO7qxiJbn0ATvfXQBjCS7qApc9xmKHArgI/FTEFxXas5dnjC/VqM37lfZun9dclRYcn+YQAr6uDFy0bB2g==",
+      "version": "7.23.10",
+      "resolved": "https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.23.10.tgz",
+      "integrity": "sha512-3wSYDPZVnhseRnxRJH6ZVTNknBz76AEnyC+AYYhasjP3Yy23qz0ERR7Fcd2SHmYuSFJ2kY9gaaDd3vyqU09eSw==",
       "dev": true,
       "requires": {
         "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
@@ -4074,9 +4074,9 @@
       }
     },
     "core-js": {
-      "version": "3.35.1",
-      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.35.1.tgz",
-      "integrity": "sha512-IgdsbxNyMskrTFxa9lWHyMwAJU5gXOPP+1yO+K59d50VLVAIDAbs7gIv705KzALModfK3ZrSZTPNpC0PQgIZuw=="
+      "version": "3.36.0",
+      "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.36.0.tgz",
+      "integrity": "sha512-mt7+TUBbTFg5+GngsAxeKBTl5/VS0guFeJacYge9OmHb+m058UwwIm41SE9T4Den7ClatV57B6TYTuJ0CX1MAw=="
     },
     "core-js-compat": {
       "version": "3.33.0",
@@ -5058,9 +5058,9 @@
       }
     },
     "eslint-plugin-vue": {
-      "version": "9.20.1",
-      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.20.1.tgz",
-      "integrity": "sha512-GyCs8K3lkEvoyC1VV97GJhP1SvqsKCiWGHnbn0gVUYiUhaH2+nB+Dv1uekv1THFMPbBfYxukrzQdltw950k+LQ==",
+      "version": "9.21.1",
+      "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.21.1.tgz",
+      "integrity": "sha512-XVtI7z39yOVBFJyi8Ljbn7kY9yHzznKXL02qQYn+ta63Iy4A9JFBw6o4OSB9hyD2++tVT+su9kQqetUyCCwhjw==",
       "dev": true,
       "requires": {
         "@eslint-community/eslint-utils": "^4.4.0",
@@ -5068,7 +5068,7 @@
         "nth-check": "^2.1.1",
         "postcss-selector-parser": "^6.0.13",
         "semver": "^7.5.4",
-        "vue-eslint-parser": "^9.4.0",
+        "vue-eslint-parser": "^9.4.2",
         "xml-name-validator": "^4.0.0"
       },
       "dependencies": {
@@ -5082,9 +5082,9 @@
           }
         },
         "semver": {
-          "version": "7.5.4",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz",
-          "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+          "version": "7.6.0",
+          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
+          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
           "dev": true,
           "requires": {
             "lru-cache": "^6.0.0"
@@ -6176,9 +6176,9 @@
       "dev": true
     },
     "immutable": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz",
-      "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
+      "version": "4.3.5",
+      "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.5.tgz",
+      "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==",
       "dev": true
     },
     "import-fresh": {
@@ -8988,9 +8988,9 @@
       "dev": true
     },
     "prettier": {
-      "version": "3.2.4",
-      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.4.tgz",
-      "integrity": "sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==",
+      "version": "3.2.5",
+      "resolved": "https://registry.npmmirror.com/prettier/-/prettier-3.2.5.tgz",
+      "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
       "dev": true
     },
     "prettier-linter-helpers": {
@@ -9469,9 +9469,9 @@
       "dev": true
     },
     "sass": {
-      "version": "1.70.0",
-      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.70.0.tgz",
-      "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==",
+      "version": "1.71.0",
+      "resolved": "https://registry.npmmirror.com/sass/-/sass-1.71.0.tgz",
+      "integrity": "sha512-HKKIKf49Vkxlrav3F/w6qRuPcmImGVbIXJ2I3Kg0VMA+3Bav+8yE9G5XmP5lMj6nl4OlqbPftGAscNaNu28b8w==",
       "dev": true,
       "requires": {
         "chokidar": ">=3.0.0 <4.0.0",
@@ -10263,9 +10263,9 @@
       "dev": true
     },
     "stylelint-config-recess-order": {
-      "version": "4.4.0",
-      "resolved": "https://registry.npmmirror.com/stylelint-config-recess-order/-/stylelint-config-recess-order-4.4.0.tgz",
-      "integrity": "sha512-Q99kvZyIM/aoPEV4dRDkzD3fZLzH0LXi+pawCf1r700uUeF/PHQ5PZXjwFUuGrWhOzd1N+cuVm+OUGsY2fRN5A==",
+      "version": "4.6.0",
+      "resolved": "https://registry.npmmirror.com/stylelint-config-recess-order/-/stylelint-config-recess-order-4.6.0.tgz",
+      "integrity": "sha512-V76fhv3YtcNXh/hyAuAdSzi5FmcrG54Mp2AThJ3D/PTMTSYzUPd7GIhP6z9mTqnRhmkk6YTfcu/JWB8h+Yrcaw==",
       "dev": true,
       "requires": {
         "stylelint-order": "6.x"
@@ -10367,13 +10367,32 @@
       "dev": true
     },
     "stylelint-order": {
-      "version": "6.0.3",
-      "resolved": "https://registry.npmmirror.com/stylelint-order/-/stylelint-order-6.0.3.tgz",
-      "integrity": "sha512-1j1lOb4EU/6w49qZeT2SQVJXm0Ht+Qnq9GMfUa3pMwoyojIWfuA+JUDmoR97Bht1RLn4ei0xtLGy87M7d29B1w==",
+      "version": "6.0.4",
+      "resolved": "https://registry.npmmirror.com/stylelint-order/-/stylelint-order-6.0.4.tgz",
+      "integrity": "sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==",
       "dev": true,
       "requires": {
-        "postcss": "^8.4.21",
+        "postcss": "^8.4.32",
         "postcss-sorting": "^8.0.2"
+      },
+      "dependencies": {
+        "nanoid": {
+          "version": "3.3.7",
+          "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
+          "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+          "dev": true
+        },
+        "postcss": {
+          "version": "8.4.35",
+          "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.35.tgz",
+          "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+          "dev": true,
+          "requires": {
+            "nanoid": "^3.3.7",
+            "picocolors": "^1.0.0",
+            "source-map-js": "^1.0.2"
+          }
+        }
       }
     },
     "stylelint-scss": {
@@ -11487,9 +11506,9 @@
       }
     },
     "vue-eslint-parser": {
-      "version": "9.4.0",
-      "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.0.tgz",
-      "integrity": "sha512-7KsNBb6gHFA75BtneJsoK/dbZ281whUIwFYdQxA68QrCrGMXYzUMbPDHGcOQ0OocIVKrWSKWXZ4mL7tonCXoUw==",
+      "version": "9.4.2",
+      "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.4.2.tgz",
+      "integrity": "sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==",
       "dev": true,
       "requires": {
         "debug": "^4.3.4",
@@ -11517,9 +11536,9 @@
           }
         },
         "semver": {
-          "version": "7.5.4",
-          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz",
-          "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+          "version": "7.6.0",
+          "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.0.tgz",
+          "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
           "dev": true,
           "requires": {
             "lru-cache": "^6.0.0"

+ 6 - 6
package.json

@@ -11,7 +11,7 @@
   "dependencies": {
     "@tinymce/tinymce-vue": "^3.2.8",
     "axios": "^1.6.7",
-    "core-js": "^3.35.1",
+    "core-js": "^3.36.0",
     "dompurify": "^3.0.8",
     "element-ui": "^2.15.14",
     "hanzi-writer": "^3.6.1",
@@ -28,7 +28,7 @@
   },
   "devDependencies": {
     "@babel/core": "^7.23.9",
-    "@babel/eslint-parser": "^7.23.9",
+    "@babel/eslint-parser": "^7.23.10",
     "@rushstack/eslint-patch": "^1.7.2",
     "@types/md5": "^2.3.5",
     "@vue/cli-plugin-babel": "~5.0.8",
@@ -40,14 +40,14 @@
     "compression-webpack-plugin": "^6.1.2",
     "eslint": "^8.56.0",
     "eslint-plugin-prettier": "^5.1.3",
-    "eslint-plugin-vue": "^9.20.1",
+    "eslint-plugin-vue": "^9.21.1",
     "patch-package": "^8.0.0",
     "postcss-html": "^1.6.0",
-    "prettier": "^3.2.4",
-    "sass": "^1.70.0",
+    "prettier": "^3.2.5",
+    "sass": "^1.71.0",
     "sass-loader": "^13.3.3",
     "stylelint": "^15.11.0",
-    "stylelint-config-recess-order": "^4.4.0",
+    "stylelint-config-recess-order": "^4.6.0",
     "stylelint-config-recommended-scss": "^14.0.0",
     "stylelint-config-recommended-vue": "^1.5.0",
     "stylelint-config-standard-scss": "^12.0.0",

+ 1 - 1
src/components/common/RichText.vue

@@ -166,7 +166,7 @@ export default {
         },
         // 指定在 WebKit 中粘贴时要保留的样式
         paste_webkit_styles:
-          'display gap flex-wrap color min-height font font-size font-family font-weight width height margin padding line-height text-align border border-radius',
+          'display gap flex-wrap color min-height font font-size font-family font-weight width height margin-bottom margin padding line-height text-align border border-radius white-space',
       },
     };
   },

+ 0 - 3
src/main.js

@@ -24,8 +24,5 @@ Vue.config.productionTip = false;
 new Vue({
   router,
   store,
-  beforeCreate() {
-    Vue.prototype.$bus = this; // 安装全局事件总线
-  },
   render: (h) => h(App),
 }).$mount('#app');

+ 6 - 5
src/views/exercise_questions/answer/index.vue

@@ -94,7 +94,7 @@
           <div v-if="currentQuestion.type === 'read'" class="read-score">
             <div v-for="(item, i) in remark.child_question_remark_list" :key="i">
               <span>小题 {{ i + 1 }} 分数:</span>
-              <span v-if="isEnable(item.is_objective)">得分 {{ item.score }}</span>
+              <span v-if="isEnable(item?.is_objective)">得分 {{ item.score }}</span>
               <el-input-number v-else v-model="item.score" :min="0" :max="item.score_question" :step="1" />
             </div>
           </div>
@@ -535,9 +535,11 @@ export default {
       }).then(({ question, user_answer: { is_fill_answer, content, is_objective, answer_status }, remark }) => {
         if (question.type === 'read') {
           let question_list = JSON.parse(question.content)?.question_list ?? [];
-          let child_question_remark_list = question_list.map(({ id }) => {
-            return remark.child_question_remark_list.find((item) => item.question_id === id);
-          });
+          let child_question_remark_list = question_list
+            .map(({ id }) => {
+              return remark.child_question_remark_list.find((item) => item.question_id === id);
+            })
+            .filter((item) => item);
           remark.child_question_remark_list = child_question_remark_list;
         }
         // 批注
@@ -552,7 +554,6 @@ export default {
               ? ''
               : this.previewComponents[this.questionList[this.curQuestionIndex].type];
         }
-
         this.is_objective = this.isEnable(is_objective);
         this.user_answer.answer_status = answer_status;
 

+ 1 - 4
src/views/exercise_questions/create/components/exercises/TableFillQuestion.vue

@@ -458,6 +458,7 @@ $table-border: 1px solid #e0e0e0;
 
           :deep &__inner {
             height: 54px;
+            padding-top: 14px;
             font-size: 16px;
             color: $font-color;
             text-align: left;
@@ -465,10 +466,6 @@ $table-border: 1px solid #e0e0e0;
             border-bottom-width: 0;
             border-radius: 0;
 
-            &::placeholder {
-              line-height: 42px;
-            }
-
             &:focus {
               border-color: #c0c4cc;
             }

+ 2 - 5
src/views/exercise_questions/preview/TableFillPreview.vue

@@ -40,7 +40,7 @@
             <span v-if="j === 0 && isEnable(data.property.is_enable_number_column)" class="serial-number">
               {{ i + 1 }}
             </span>
-            <div class="item-content">
+            <div class="item-content" :style="{ paddingBottom: li.type === 'input' ? '0' : '8px' }">
               <span v-if="li.type === 'text'">{{ li.text }}</span>
               <template v-else-if="li.type === 'input'">
                 <el-input
@@ -245,16 +245,13 @@ $table-border: 1px solid #e0e0e0;
 
             :deep .el-textarea__inner {
               padding: 0;
+              padding-top: 14px;
               font-size: 16px;
               color: $font-color;
               text-align: left;
               background-color: #fff;
               border-width: 0;
               border-radius: 0;
-
-              &::placeholder {
-                line-height: 42px;
-              }
             }
           }
         }