|
@@ -48,7 +48,7 @@
|
|
|
<div>
|
|
|
<span class="header-small-text">编号</span>
|
|
|
<span class="highlight-text">{{
|
|
|
- store.currentTask?.secretNumber
|
|
|
+ store.currentTask?.secretNumber ?? "-"
|
|
|
}}</span>
|
|
|
</div>
|
|
|
<div
|
|
@@ -63,9 +63,7 @@
|
|
|
<div v-show="store.status.totalCount" class="tw-flex tw-gap-2">
|
|
|
<span>
|
|
|
<span class="header-small-text">已评</span
|
|
|
- ><span class="highlight-text">{{
|
|
|
- store.status.personCount ?? "-"
|
|
|
- }}</span>
|
|
|
+ ><span class="highlight-text">{{ personCountAnimated }}</span>
|
|
|
</span>
|
|
|
<span v-if="store.setting.topCount">
|
|
|
<span class="header-small-text">分配</span
|
|
@@ -73,9 +71,7 @@
|
|
|
</span>
|
|
|
<span>
|
|
|
<span class="header-small-text">未评</span
|
|
|
- ><span class="highlight-text">{{
|
|
|
- store.status.totalCount - store.status.markedCount ?? "-"
|
|
|
- }}</span>
|
|
|
+ ><span class="highlight-text">{{ todoMarkCountAnimated }}</span>
|
|
|
</span>
|
|
|
<span>
|
|
|
<span class="header-small-text">进度</span
|
|
@@ -281,7 +277,7 @@
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { doLogout, updateUISetting } from "@/api/markPage";
|
|
|
-import { computed, ref, watchEffect } from "vue";
|
|
|
+import { computed, ref, watch, watchEffect } from "vue";
|
|
|
import { store, isScanImage } from "./store";
|
|
|
import {
|
|
|
SnippetsOutlined,
|
|
@@ -296,6 +292,7 @@ import MarkSwitchGroupDialog from "./MarkSwitchGroupDialog.vue";
|
|
|
import MarkProblemDialog from "./MarkProblemDialog.vue";
|
|
|
import { isNumber } from "lodash";
|
|
|
import { Modal } from "ant-design-vue";
|
|
|
+import gsap from "gsap";
|
|
|
|
|
|
defineEmits(["should-reload-history"]);
|
|
|
|
|
@@ -385,6 +382,33 @@ watchEffect(() => {
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
+const personCountAnimated = computed(() => {
|
|
|
+ if (store.status.personCountTweenedNumber === undefined) return "-";
|
|
|
+ return Number(store.status.personCountTweenedNumber).toFixed(0);
|
|
|
+});
|
|
|
+const todoMarkCountAnimated = computed(() => {
|
|
|
+ if (store.status.totalCount === undefined) return "-";
|
|
|
+ return Number(store.status.todoMarkCountTweenedNumber).toFixed(0);
|
|
|
+});
|
|
|
+watch(
|
|
|
+ () => [
|
|
|
+ store.status.personCount,
|
|
|
+ store.status.totalCount,
|
|
|
+ store.status.markedCount,
|
|
|
+ ],
|
|
|
+ ([personCount, totalCount, markedCount]) => {
|
|
|
+ if (store.status.personCountTweenedNumber === undefined) {
|
|
|
+ store.status.personCountTweenedNumber = 0;
|
|
|
+ store.status.todoMarkCountTweenedNumber = 0;
|
|
|
+ }
|
|
|
+ gsap.to(store.status, {
|
|
|
+ duration: 1.5,
|
|
|
+ personCountTweenedNumber: personCount,
|
|
|
+ todoMarkCountTweenedNumber: totalCount - markedCount,
|
|
|
+ });
|
|
|
+ }
|
|
|
+);
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|