Explorar o código

分数大小的显示自定义

Michael Wang %!s(int64=4) %!d(string=hai) anos
pai
achega
af09019382

+ 5 - 2
src/features/mark/Mark.vue

@@ -57,7 +57,7 @@ import { ModeEnum } from "@/types";
 import type { Setting, Task, RichTextQuestion } from "@/types";
 import MarkBoardKeyBoard from "./MarkBoardKeyBoard.vue";
 import MarkBoardMouse from "./MarkBoardMouse.vue";
-import { isEmpty, isNumber } from "lodash";
+import { debounce, isEmpty, isNumber } from "lodash";
 import { message } from "ant-design-vue";
 import AnswerModal from "./AnswerModal.vue";
 import PaperModal from "./PaperModal.vue";
@@ -182,10 +182,13 @@ onMounted(async () => {
   await updateTask();
 });
 
+const __debounceUpdate = debounce(() => {
+  updateUISetting(store.setting.mode, store.setting.uiSetting);
+}, 3000);
 watch(
   () => [store.setting.uiSetting, store.setting.mode],
   () => {
-    updateUISetting(store.setting.mode, store.setting.uiSetting);
+    __debounceUpdate();
   },
   { deep: true }
 );

+ 5 - 1
src/features/mark/MarkDrawTrack.vue

@@ -46,7 +46,11 @@ const computeTopAndLeft = (track: Track | SpecialTag) => {
   return {
     top: (topInsideSlice / sliceImage.value.naturalHeight) * 100 + "%",
     left: (leftInsideSlice / sliceImage.value.naturalWidth) * 100 + "%",
-    "font-size": store.setting.uiSetting["answer.paper.scale"] * 2.2 + "em",
+    "font-size":
+      (store.setting.uiSetting["score.fontSize.scale"] || 1) *
+        store.setting.uiSetting["answer.paper.scale"] *
+        2.2 +
+      "em",
   };
 };
 

+ 11 - 0
src/features/mark/MarkHeader.vue

@@ -190,6 +190,17 @@
             <td>问题卷</td>
             <td><a-button @click="openProblemModal">选择问题类型</a-button></td>
           </tr>
+          <tr v-if="isScanImage()">
+            <td>分数/标记大小</td>
+            <td>
+              <a-slider
+                v-model:value="store.setting.uiSetting['score.fontSize.scale']"
+                :min="1"
+                :step="0.1"
+                :max="3"
+              />
+            </td>
+          </tr>
         </table>
       </template>
       <div class="tw-flex">

+ 1 - 0
src/features/mark/store.ts

@@ -21,6 +21,7 @@ const obj = {
       "answer.modal": false,
       "minimap.modal": false,
       "specialTag.modal": false,
+      "score.fontSize.scale": 1,
     },
     statusValue: "FORMAL",
     problemTypes: [],

+ 1 - 0
src/types/index.ts

@@ -157,6 +157,7 @@ export interface UISetting {
   "answer.modal": boolean;
   "minimap.modal": boolean;
   "specialTag.modal": boolean;
+  "score.fontSize.scale": number; // 0.1 gap
 }
 
 export interface MarkResult {