|
@@ -2,22 +2,21 @@
|
|
<div
|
|
<div
|
|
v-if="markStore.currentTask"
|
|
v-if="markStore.currentTask"
|
|
class="mark-board-track is-key-board"
|
|
class="mark-board-track is-key-board"
|
|
- :class="[markStore.isScoreBoardCollapsed ? 'hide' : 'show']"
|
|
|
|
|
|
+ :class="[
|
|
|
|
+ markStore.isTrackMode && markStore.isScoreBoardCollapsed
|
|
|
|
+ ? 'hide'
|
|
|
|
+ : 'show',
|
|
|
|
+ ]"
|
|
>
|
|
>
|
|
<div class="board-mode">
|
|
<div class="board-mode">
|
|
- <a-dropdown>
|
|
|
|
- <template #overlay>
|
|
|
|
- <a-menu>
|
|
|
|
- <a-menu-item key="1" @click="markStore.toggleKeyMouse">
|
|
|
|
- 鼠标给分
|
|
|
|
- </a-menu-item>
|
|
|
|
- </a-menu>
|
|
|
|
- </template>
|
|
|
|
- <a-button>
|
|
|
|
- 键盘给分
|
|
|
|
- <DownOutlined style="display: inline-flex" />
|
|
|
|
- </a-button>
|
|
|
|
- </a-dropdown>
|
|
|
|
|
|
+ <a-select
|
|
|
|
+ v-model:value="normalMode"
|
|
|
|
+ style="width: 120px"
|
|
|
|
+ @change="normalModeChange"
|
|
|
|
+ >
|
|
|
|
+ <a-select-option value="keyboard">键盘给分</a-select-option>
|
|
|
|
+ <a-select-option value="mouse">鼠标给分</a-select-option>
|
|
|
|
+ </a-select>
|
|
</div>
|
|
</div>
|
|
<div class="board-header">
|
|
<div class="board-header">
|
|
<div class="board-header-left">
|
|
<div class="board-header-left">
|
|
@@ -27,8 +26,8 @@
|
|
</div>
|
|
</div>
|
|
<div class="board-header-score">
|
|
<div class="board-header-score">
|
|
<transition-group name="score-number-animation" tag="span">
|
|
<transition-group name="score-number-animation" tag="span">
|
|
- <span :key="store.currentTask.markResult?.markerScore || 0">{{
|
|
|
|
- store.currentTask.markResult?.markerScore
|
|
|
|
|
|
+ <span :key="markStore.currentTask.markResult?.markerScore || 0">{{
|
|
|
|
+ markStore.currentTask.markResult?.markerScore
|
|
}}</span>
|
|
}}</span>
|
|
</transition-group>
|
|
</transition-group>
|
|
</div>
|
|
</div>
|
|
@@ -54,14 +53,14 @@
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div
|
|
<div
|
|
- v-if="store.currentTaskEnsured.questionList"
|
|
|
|
|
|
+ v-if="markStore.currentTaskEnsured.questionList"
|
|
class="board-questions"
|
|
class="board-questions"
|
|
:style="{
|
|
:style="{
|
|
flexGrow: 2,
|
|
flexGrow: 2,
|
|
}"
|
|
}"
|
|
>
|
|
>
|
|
<template
|
|
<template
|
|
- v-for="(question, index) in store.currentTaskEnsured.questionList"
|
|
|
|
|
|
+ v-for="(question, index) in markStore.currentTaskEnsured.questionList"
|
|
:key="index"
|
|
:key="index"
|
|
>
|
|
>
|
|
<div class="board-question-full-box">
|
|
<div class="board-question-full-box">
|
|
@@ -103,7 +102,7 @@
|
|
{{
|
|
{{
|
|
isCurrentQuestion(question)
|
|
isCurrentQuestion(question)
|
|
? scoreStr
|
|
? scoreStr
|
|
- : store.currentTask?.markResult?.scoreList[index]
|
|
|
|
|
|
+ : markStore.currentTask?.markResult?.scoreList[index]
|
|
}}
|
|
}}
|
|
</span>
|
|
</span>
|
|
</transition-group>
|
|
</transition-group>
|
|
@@ -122,7 +121,6 @@ import { ref, onMounted, onUnmounted, watch } from "vue";
|
|
import { useMarkStore } from "@/store";
|
|
import { useMarkStore } from "@/store";
|
|
import useAutoChooseFirstQuestion from "../composables/useAutoChooseFirstQuestion";
|
|
import useAutoChooseFirstQuestion from "../composables/useAutoChooseFirstQuestion";
|
|
import { message } from "ant-design-vue";
|
|
import { message } from "ant-design-vue";
|
|
-import { DownOutlined } from "@ant-design/icons-vue";
|
|
|
|
|
|
|
|
const emit = defineEmits([
|
|
const emit = defineEmits([
|
|
"submit",
|
|
"submit",
|
|
@@ -161,6 +159,13 @@ watch(
|
|
},
|
|
},
|
|
{ immediate: true }
|
|
{ immediate: true }
|
|
);
|
|
);
|
|
|
|
+// 切换给分模式
|
|
|
|
+const normalMode = ref(
|
|
|
|
+ markStore.setting.uiSetting["normal.mode"] || "keyboard"
|
|
|
|
+);
|
|
|
|
+function normalModeChange(value: string) {
|
|
|
|
+ markStore.setting.uiSetting["normal.mode"] = value;
|
|
|
|
+}
|
|
|
|
|
|
const questionScoreSteps = $computed(() => {
|
|
const questionScoreSteps = $computed(() => {
|
|
const question = markStore.currentQuestion;
|
|
const question = markStore.currentQuestion;
|