|
@@ -1,38 +1,58 @@
|
|
<template>
|
|
<template>
|
|
<div
|
|
<div
|
|
- class="flex gap-4 justify-between items-center bg-blue-100"
|
|
|
|
|
|
+ class="flex gap-4 justify-between items-center header-bg"
|
|
style="z-index: 10000; position: relative; font-size: 16px; height: 40px"
|
|
style="z-index: 10000; position: relative; font-size: 16px; height: 40px"
|
|
>
|
|
>
|
|
<div>
|
|
<div>
|
|
- <a href="/mark/subject-select">{{ store.setting.subject?.name }}</a>
|
|
|
|
|
|
+ <a
|
|
|
|
+ style="color: white; text-decoration: underline"
|
|
|
|
+ href="/mark/subject-select"
|
|
|
|
+ >{{ store.setting.subject?.name }}</a
|
|
|
|
+ >
|
|
</div>
|
|
</div>
|
|
<div v-if="store.setting.statusValue === 'TRIAL'">试评</div>
|
|
<div v-if="store.setting.statusValue === 'TRIAL'">试评</div>
|
|
<div class="flex gap-1">
|
|
<div class="flex gap-1">
|
|
- <div>编号:{{ store.currentTask?.studentCode }}</div>
|
|
|
|
|
|
+ <div>
|
|
|
|
+ 编号<span class="highlight-text">{{
|
|
|
|
+ store.currentTask?.studentCode
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
<div
|
|
<div
|
|
v-if="store.currentTask && store.currentTask.objectiveScore !== null"
|
|
v-if="store.currentTask && store.currentTask.objectiveScore !== null"
|
|
>
|
|
>
|
|
- 客观分{{ store.currentTask.objectiveScore }}
|
|
|
|
|
|
+ 客观分<span class="highlight-text">{{
|
|
|
|
+ store.currentTask.objectiveScore
|
|
|
|
+ }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<ul class="flex gap-2 mb-0">
|
|
<ul class="flex gap-2 mb-0">
|
|
- <li>已评{{ store.status.markedCount }}</li>
|
|
|
|
- <li v-if="store.setting.topCount">分配{{ store.setting.topCount }}</li>
|
|
|
|
- <li>未评{{ store.status.totalCount - store.status.markedCount }}</li>
|
|
|
|
|
|
+ <li>
|
|
|
|
+ 已评<span class="highlight-text">{{ store.status.markedCount }}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li v-if="store.setting.topCount">
|
|
|
|
+ 分配<span class="highlight-text">{{ store.setting.topCount }}</span>
|
|
|
|
+ </li>
|
|
|
|
+ <li>
|
|
|
|
+ 未评<span class="highlight-text">{{
|
|
|
|
+ store.status.totalCount - store.status.markedCount
|
|
|
|
+ }}</span>
|
|
|
|
+ </li>
|
|
<li
|
|
<li
|
|
:title="`问题卷${store.status.problemCount}\n待仲裁${store.status.arbitrateCount}`"
|
|
:title="`问题卷${store.status.problemCount}\n待仲裁${store.status.arbitrateCount}`"
|
|
style="line-height: 20px"
|
|
style="line-height: 20px"
|
|
>
|
|
>
|
|
<QuestionCircleOutlined :style="{ 'font-size': '20px' }" />
|
|
<QuestionCircleOutlined :style="{ 'font-size': '20px' }" />
|
|
</li>
|
|
</li>
|
|
- <li>进度{{ progress }}%</li>
|
|
|
|
|
|
+ <li>
|
|
|
|
+ 进度<span class="highlight-text">{{ progress }}%</span>
|
|
|
|
+ </li>
|
|
</ul>
|
|
</ul>
|
|
<ul class="flex gap-2 mb-0">
|
|
<ul class="flex gap-2 mb-0">
|
|
<li @click="upScale" title="放大" style="line-height: 20px">
|
|
<li @click="upScale" title="放大" style="line-height: 20px">
|
|
<PlusCircleOutlined
|
|
<PlusCircleOutlined
|
|
:style="{
|
|
:style="{
|
|
'font-size': '20px',
|
|
'font-size': '20px',
|
|
- color: greaterThanOneScale ? 'green' : 'black',
|
|
|
|
|
|
+ color: greaterThanOneScale ? 'red' : 'white',
|
|
}"
|
|
}"
|
|
/>
|
|
/>
|
|
</li>
|
|
</li>
|
|
@@ -40,7 +60,7 @@
|
|
<MinusCircleOutlined
|
|
<MinusCircleOutlined
|
|
:style="{
|
|
:style="{
|
|
'font-size': '20px',
|
|
'font-size': '20px',
|
|
- color: lessThanOneScale ? 'green' : 'black',
|
|
|
|
|
|
+ color: lessThanOneScale ? 'red' : 'white',
|
|
}"
|
|
}"
|
|
/>
|
|
/>
|
|
</li>
|
|
</li>
|
|
@@ -48,6 +68,9 @@
|
|
<FullscreenOutlined :style="{ 'font-size': '20px' }" />
|
|
<FullscreenOutlined :style="{ 'font-size': '20px' }" />
|
|
</li>
|
|
</li>
|
|
</ul>
|
|
</ul>
|
|
|
|
+ <div @click="toggleSettingMode" style="line-height: 20px">
|
|
|
|
+ {{ modeName }} {{ store.setting.forceMode ? "" : "(切换)" }}
|
|
|
|
+ </div>
|
|
<div @click="toggleHistory" style="line-height: 20px" title="回看">
|
|
<div @click="toggleHistory" style="line-height: 20px" title="回看">
|
|
<HistoryOutlined :style="{ 'font-size': '20px' }" />
|
|
<HistoryOutlined :style="{ 'font-size': '20px' }" />
|
|
</div>
|
|
</div>
|
|
@@ -95,6 +118,7 @@ import {
|
|
ClockCircleOutlined,
|
|
ClockCircleOutlined,
|
|
QuestionCircleOutlined,
|
|
QuestionCircleOutlined,
|
|
} from "@ant-design/icons-vue";
|
|
} from "@ant-design/icons-vue";
|
|
|
|
+import { ModeEnum } from "@/types";
|
|
|
|
|
|
export default defineComponent({
|
|
export default defineComponent({
|
|
name: "MarkHeader",
|
|
name: "MarkHeader",
|
|
@@ -109,6 +133,16 @@ export default defineComponent({
|
|
QuestionCircleOutlined,
|
|
QuestionCircleOutlined,
|
|
},
|
|
},
|
|
setup() {
|
|
setup() {
|
|
|
|
+ const modeName = computed(() =>
|
|
|
|
+ store.setting.mode === ModeEnum.TRACK ? "轨迹模式" : "普通模式"
|
|
|
|
+ );
|
|
|
|
+ function toggleSettingMode() {
|
|
|
|
+ if (store.setting.mode === ModeEnum.TRACK) {
|
|
|
|
+ store.setting.mode = ModeEnum.COMMON;
|
|
|
|
+ } else {
|
|
|
|
+ store.setting.mode = ModeEnum.TRACK;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
const progress = computed(() => {
|
|
const progress = computed(() => {
|
|
const { totalCount, markedCount } = store.status;
|
|
const { totalCount, markedCount } = store.status;
|
|
if (totalCount <= 0) return 0;
|
|
if (totalCount <= 0) return 0;
|
|
@@ -171,6 +205,8 @@ export default defineComponent({
|
|
|
|
|
|
return {
|
|
return {
|
|
store,
|
|
store,
|
|
|
|
+ modeName,
|
|
|
|
+ toggleSettingMode,
|
|
progress,
|
|
progress,
|
|
group,
|
|
group,
|
|
upScale,
|
|
upScale,
|
|
@@ -184,3 +220,13 @@ export default defineComponent({
|
|
},
|
|
},
|
|
});
|
|
});
|
|
</script>
|
|
</script>
|
|
|
|
+
|
|
|
|
+<style scoped>
|
|
|
|
+.header-bg {
|
|
|
|
+ background-color: #5d6d7d;
|
|
|
|
+ color: white;
|
|
|
|
+}
|
|
|
|
+.highlight-text {
|
|
|
|
+ color: #ffe400;
|
|
|
|
+}
|
|
|
|
+</style>
|