|
@@ -9,7 +9,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts">
|
|
|
-import { defineComponent, onMounted, watch } from "vue";
|
|
|
+import { defineComponent, onMounted, onUnmounted, watch } from "vue";
|
|
|
import {
|
|
|
clearMarkTask,
|
|
|
getGroup,
|
|
@@ -61,12 +61,15 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
// 5秒更新一次tasks
|
|
|
- // addInterval(() => {
|
|
|
- // // console.log("get task", store.tasks);
|
|
|
- // if (store.tasks.length < 3) {
|
|
|
- // updateTask();
|
|
|
- // }
|
|
|
- // }, 5 * 1000);
|
|
|
+ addInterval(() => {
|
|
|
+ // console.log("get task", store.tasks);
|
|
|
+ if (store.tasks.length < 3) {
|
|
|
+ updateTask();
|
|
|
+ }
|
|
|
+ }, 5 * 1000);
|
|
|
+ addInterval(() => {
|
|
|
+ updateStatus();
|
|
|
+ }, 30 * 1000);
|
|
|
|
|
|
onMounted(async () => {
|
|
|
await updateMarkTask();
|
|
@@ -84,11 +87,35 @@ export default defineComponent({
|
|
|
{ deep: true }
|
|
|
);
|
|
|
|
|
|
- const saveTaskToServer = () => {
|
|
|
+ const saveTaskToServer = async () => {
|
|
|
console.log("save task to server");
|
|
|
- saveTask();
|
|
|
+ const res = (await saveTask()) as any;
|
|
|
+ updateStatus();
|
|
|
+ if (res.data.success && store.currentTask) {
|
|
|
+ let { libraryId, studentId } = store.currentTask;
|
|
|
+ const i = store.markResults.findIndex(
|
|
|
+ (s) => s.libraryId === libraryId && s.studentId === studentId
|
|
|
+ );
|
|
|
+ store.markResults.splice(i, 1);
|
|
|
+ store.currentTask = undefined;
|
|
|
+ store.tasks.shift();
|
|
|
+ } else {
|
|
|
+ console.log(res.data.message);
|
|
|
+ }
|
|
|
};
|
|
|
- return { store, saveTaskToServer };
|
|
|
+
|
|
|
+ function scoreKeyInput(event: KeyboardEvent) {
|
|
|
+ console.log(event);
|
|
|
+ }
|
|
|
+
|
|
|
+ onMounted(() => {
|
|
|
+ document.addEventListener("keypress", scoreKeyInput);
|
|
|
+ });
|
|
|
+ onUnmounted(() => {
|
|
|
+ document.removeEventListener("keypress", scoreKeyInput);
|
|
|
+ });
|
|
|
+
|
|
|
+ return { store, saveTaskToServer, scoreKeyInput };
|
|
|
},
|
|
|
});
|
|
|
</script>
|