index.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { defineComponent, onMounted, reactive, ref } from "vue";
  2. import WorkHome from "../work-home";
  3. import WorkEaluating from "../work-ealuating";
  4. import { getQuery } from "/src/utils/queryString";
  5. import { api_lessonTrainingTrainingStudentDetail } from "../../api";
  6. import { headTopData } from "../../header-top";
  7. const workHomeRef = ref();
  8. const workEaluatRef = ref();
  9. const data = reactive({
  10. /** 作业类型:练习PRACTICE, 评测EVALUATION */
  11. trainingType: "" as "PRACTICE" | "EVALUATION",
  12. worke: {},
  13. });
  14. export const HANDLE_WORK_ADD = () => {
  15. if (data.trainingType === "PRACTICE"){
  16. workHomeRef.value?.handleAdd();
  17. }
  18. if (data.trainingType === "EVALUATION"){
  19. workEaluatRef.value?.handleAdd();
  20. }
  21. };
  22. export default defineComponent({
  23. name: "workIndex",
  24. setup(props) {
  25. const query = getQuery();
  26. const setModelType = () => {
  27. if (!data.trainingType) return;
  28. const type = data.trainingType === "PRACTICE" ? "practise" : "evaluating";
  29. headTopData.handleChangeModeType(type);
  30. };
  31. const getWorkDetail = async () => {
  32. const res = await api_lessonTrainingTrainingStudentDetail(query.workRecord);
  33. if (res?.code === 200) {
  34. data.trainingType = res.data.trainingType;
  35. data.worke = res.data;
  36. setModelType();
  37. }
  38. };
  39. onMounted(() => {
  40. getWorkDetail();
  41. });
  42. return () => (
  43. <>
  44. {/* 课后训练作业 */}
  45. {data.trainingType === "PRACTICE" && <WorkHome ref={workHomeRef} workeData={data.worke} />}
  46. {/* 评测作业 */}
  47. {data.trainingType === "EVALUATION" && (
  48. <WorkEaluating ref={workEaluatRef} workeData={data.worke} />
  49. )}
  50. </>
  51. );
  52. },
  53. });