keyboardAndMouse.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { ModeEnum } from "@/types";
  2. import { isNumber } from "lodash";
  3. import { watch } from "vue";
  4. import { findCurrentTaskMarkResult, store } from "../store";
  5. export function keyMouse() {
  6. function toggleKeyMouse() {
  7. if (store.setting.uiSetting["normal.mode"] === "keyboard") {
  8. store.setting.uiSetting["normal.mode"] = "mouse";
  9. } else {
  10. store.setting.uiSetting["normal.mode"] = "keyboard";
  11. }
  12. }
  13. // 普通模式更新分数时
  14. watch(
  15. () => store.currentQuestion,
  16. () => {
  17. if (store.setting.mode === ModeEnum.COMMON) {
  18. // TODO: findCurrentTaskMarkResult => store.currentMarkResult
  19. const markResult = findCurrentTaskMarkResult();
  20. if (markResult && store.currentTask) {
  21. const scoreList = store.currentTask.questionList.map((q) => q.score);
  22. if (scoreList.every((s) => isNumber(s))) {
  23. markResult.scoreList = scoreList as number[];
  24. }
  25. markResult.markerScore =
  26. (scoreList.filter((s) => isNumber(s)) as number[]).reduce(
  27. (acc, v) => (acc += Math.round(v * 100)),
  28. 0
  29. ) / 100;
  30. }
  31. }
  32. },
  33. {
  34. deep: true,
  35. }
  36. );
  37. return { toggleKeyMouse };
  38. }