diff --git a/src/views/faceteach/FaceTeach.vue b/src/views/faceteach/FaceTeach.vue index 9f9fe15..8b39129 100644 --- a/src/views/faceteach/FaceTeach.vue +++ b/src/views/faceteach/FaceTeach.vue @@ -24,8 +24,8 @@
- {{ dayjs(data.planDto?.beginTime).format('YYYY-MM-DD HH:MM') + " 至 " + - dayjs(data.planDto?.endTime).format('YYYY-MM-DD HH:MM') + {{ dayjs(data.planDto?.beginTime).format('YYYY-MM-DD HH:mm') + " 至 " + + dayjs(data.planDto?.endTime).format('YYYY-MM-DD HH:mm') }}
@@ -34,19 +34,37 @@
{{ data.planDto?.address }}
-
- - {{ data.signFlag ? "已签到" : "签到" }} - - - {{ data.isSurvery ? "已评估" : "评估" }} - +
+
+ + {{ data.signFlag ? "已签到" : "签到" }} + + + {{ data.isSurvery ? "已评估" : "评估" }} + +
+
+
+
+ + {{ data.signFlag ? "已签到" : "签到" }} + + + {{ data.isSurvery ? "已评估" : "评估" }} + +
@@ -78,19 +96,21 @@
- -
{{ el.slice(el.indexOf('-') + 1) }}
+ +
{{ el.slice(el.lastIndexOf('/')+1,el.indexOf('-')) + el.slice(el.lastIndexOf('.')) }}
-
- -
- 下载 +
+
+ +
+ 下载 +
-
-
- -
- 下载 +
+ +
+ 下载 +
@@ -109,6 +129,7 @@
交作业 @@ -135,6 +156,7 @@
去考试 @@ -190,11 +212,12 @@ const returnclick = () => { router.back(); }; const { - query: { courseId, type, id: taskId }, + query: { courseId, type, id: taskId, projectStatus, projectEndTime }, } = useRoute(); const { data } = useRequest(STU_OFFCOURSE_DETAIL, { courseId }); console.log("datadatadatadatadatadatadata", data); +console.log("项目状态字段传递", projectStatus, projectEndTime); const teacherInfo = useUserInfo( computed(() => data.value?.planDto?.teacherId) ); diff --git a/src/views/faceteach/FaceTeachSignUp.vue b/src/views/faceteach/FaceTeachSignUp.vue index e7b9b79..08068c9 100644 --- a/src/views/faceteach/FaceTeachSignUp.vue +++ b/src/views/faceteach/FaceTeachSignUp.vue @@ -39,7 +39,7 @@
{{ data.planDto?.address }}
- {{data.isSignUp?'已报名':'立即报名'}} + {{data.isSignUp?'已报名':'立即报名'}}
@@ -75,12 +75,12 @@
- -
{{ el.slice(el.indexOf('-') + 1) }}
+
{{ el.slice(el.lastIndexOf('/')+1,el.indexOf('-')) + el.slice(el.lastIndexOf('.')) }}
diff --git a/src/views/homework/HomeworkPage.vue b/src/views/homework/HomeworkPage.vue index 6c6e7b1..7a74bc6 100644 --- a/src/views/homework/HomeworkPage.vue +++ b/src/views/homework/HomeworkPage.vue @@ -48,12 +48,27 @@
-
- - - +
+
+
+ + + +
+
+
+
+
+
+ + + +
+
- - -
-
- +
+
+
+
+ +
+
+ +
+
+ +
+
-
-
- +
+
+
+ +
+
+ +
+
+ +
+
- -
@@ -261,7 +293,7 @@ const returnclick = () => { router.back(); }; const { - query: { courseId: workId, type, id: taskId, pName, sName }, + query: { courseId: workId, type, id: taskId, pName, sName, projectStatus, projectEndTime}, } = useRoute(); const { data } = taskId && taskId !== 'undefined' ? useRequest(TASK_WORK_DETAIL, { workId, taskId }) : useRequest(TASK_WORK_DETAIL, { workId }); diff --git a/src/views/liveBroadcast/LiveBroadcast.vue b/src/views/liveBroadcast/LiveBroadcast.vue index 566984c..161f3e0 100644 --- a/src/views/liveBroadcast/LiveBroadcast.vue +++ b/src/views/liveBroadcast/LiveBroadcast.vue @@ -45,26 +45,59 @@
{{ data?.activityAddress }}
-->
-
- 观看 - +
+
+ 观看 + - {{ data.signFlag ? "已签到" : "签到" }} - - + {{ data.signFlag ? "已签到" : "签到" }} + + - {{ data.isSurvery ? "已评估" : - "评估" -}} - + {{ data.isSurvery ? "已评估" : + "评估" + }} + +
+
+ {{ data.isSurvery ? "已评估" : + "评估" + }} + +
+
+
+
+ 观看 + + + {{ data.signFlag ? "已签到" : "签到" }} + + + + {{ data.isSurvery ? "已评估" : + "评估" + }} + +
@@ -151,7 +184,7 @@ import { ElMessage } from "element-plus"; import dayjs from "dayjs"; const { - query: { courseId: liveId, id: taskId, type, pName, sName }, + query: { courseId: liveId, id: taskId, type, pName, sName, projectStatus, projectEndTime }, } = useRoute(); const router = useRouter(); const returnclick = () => { diff --git a/src/views/moreActive/MoreActive.vue b/src/views/moreActive/MoreActive.vue index d54e89d..6ba6f81 100644 --- a/src/views/moreActive/MoreActive.vue +++ b/src/views/moreActive/MoreActive.vue @@ -6,7 +6,7 @@
{{ pName }}
/
{{ sName }}
-
/
+
/
活动详情
@@ -141,23 +155,34 @@ import { request, useRequest } from "@/api/request"; import { useRouter } from "vue-router"; import { useRoute } from "vue-router/dist/vue-router"; import { ElMessage } from "element-plus"; -import { reactive, onUnmounted } from "vue"; +import { reactive, onUnmounted, toRefs} from "vue"; const router = useRouter(); const returnclick = () => { router.back(); }; const { - query: { courseId: activityId, id: taskId, type, pName, sName }, + query: { courseId: activityId, id: taskId, type, pName, sName, projectStatus, projectEndTime }, } = useRoute(); const state = reactive({ isAllowSign: false, }); + +const { isAllowSign } = toRefs(state); + const { data } = useRequest(ACTIVITY, { activityId }); +console.log('data', data) const signClick = (tab, event) => { if (data.value.signFlag) { return; } + + if (!state.isAllowSign) { + // console.log("data.signFlag", data.value.signFlag, isAllowSign); + ElMessage.warning("未在允许签到时间范围内"); + return; + } + data.value.signFlag = true; ElMessage.warning("签到成功"); request(TASK_ACTIVITY_SIGN, { @@ -170,31 +195,35 @@ let timer = null; //判断能否签到 function isSignClick() { timer = setInterval(() => { - let beginTime = new Date(data.activityStartTime).getTime(); - let endTime = !data.afterSignIn - ? new Date(data.activityEndTime).getTime() - : new Date(data.activityStartTime).getTime(); + let beginTime = new Date(data.value.activityStartTime).getTime(); + let endTime = !data.value.afterSignIn + ? new Date(data.value.activityEndTime).getTime() + : new Date(data.value.activityStartTime).getTime(); let nowTime = new Date().getTime(); - if (data.beforeSignIn && data.afterSignIn) { + if (data.value.beforeSignIn && data.value.afterSignIn) { //有开始前有开始后 - beginTime = beginTime - data.beforeSignIn * 60 * 1000; - endTime = endTime + data.afterSignIn * 60 * 1000; + beginTime = beginTime - data.value.beforeSignIn * 60 * 1000; + endTime = endTime + data.value.afterSignIn * 60 * 1000; console.log("1111"); } else if ( - data.beforeSignIn && - !data.afterSignIn + data.value.beforeSignIn && + !data.value.afterSignIn ) { //只有开始前无开始后 - beginTime = beginTime - data.beforeSignIn * 60 * 1000; + beginTime = beginTime - data.value.beforeSignIn * 60 * 1000; console.log("11112222"); } else if ( - !data.beforeSignIn && - data.afterSignIn + !data.value.beforeSignIn && + data.value.afterSignIn ) { //无开始前有开始后 - endTime = endTime + data.afterSignIn * 60 * 1000; + endTime = endTime + data.value.afterSignIn * 60 * 1000; console.log("1111333"); } + + console.log(nowTime, beginTime, endTime, data.value) + console.log(nowTime < endTime , nowTime > beginTime) + console.log(state.isAllowSign) if (nowTime < endTime && nowTime > beginTime) { state.isAllowSign = true; } else { diff --git a/src/views/project/ProjectDetails.vue b/src/views/project/ProjectDetails.vue index 894208b..bc3aea6 100644 --- a/src/views/project/ProjectDetails.vue +++ b/src/views/project/ProjectDetails.vue @@ -274,6 +274,7 @@ import { import { useRoute, useRouter } from "vue-router"; import store from "@/store"; import { ElMessage } from "element-plus"; + const { query: { courseId, projectId }, } = useRoute(); @@ -353,17 +354,14 @@ const types = ref({ 4: "/homeworkpage", 5: import.meta.env.VITE_BOE_EXAM_DETAIL_URL, //考试 6: "/livebroadcast", - 7: ({ courseId }) => - request(LINK_DETAILS(courseId), {}).then(({ data: { linkAddress } }) => - window.open(linkAddress,'_top') - ), //外联 + 7: ({ targetId }) => window.open(targetId, '_top'), 8: "/discusspage", 9: "/moreactive", 10: ({ evaType, targetId }) => window.open( - (evaType == 0 - ? import.meta.env.VITE_BOE_TEST_DETAIL_URL - : import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL) + targetId + evaType == 0 + ? import.meta.env.VITE_BOE_TEST_DETAIL_URL+ targetId + : import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL+targetId+`&quizTaskKid=${projectId}&channelCode=project` ,'_top'), //测评 11: "/surveydetail", 12: "/ballotpage", @@ -374,9 +372,40 @@ const types = ref({ const dialogVisible = ref(false); const dialogVisibleTip = ref('该任务无法学习,请联系管理员进行替换!'); +// 判断当前任务已结束及时间意义上的结束 提示用户 +function judgeTaskIsEnd(type, endTimes, status) { + // type 任务类型 endTime 结束时间 status 任务状态 (状态 0 未完成 1 已完成 2 未开始 3 已结束) + console.log(type, endTimes, status); + let isEnd = false; + let nowTime = new Date().getTime(); + let endTime = new Date().getTime(endTimes); + switch (type) { + case 1: + status == 3 ? isEnd = true : nowTime > endTime ? isEnd = true : isEnd = false; + break; + case 3: + status == 3 ? isEnd = true : nowTime > endTime ? isEnd = true : isEnd = false; + break; + case 5: + status == 3 ? isEnd = true : nowTime > endTime ? isEnd = true : isEnd = false; + break; + case 7: + status == 3 ? isEnd = true : nowTime > endTime ? isEnd = true : isEnd = false; + break; + case 10: + status == 3 ? isEnd = true : nowTime > endTime ? isEnd = true : isEnd = false; + break; + } + return isEnd; +} function toFinish(d, sName, chapterOrStageId) { console.log("dddddd", d, sName, chapterOrStageId); + + if(judgeTaskIsEnd(d.type ,data.value.endTime, data.value.status)){ + ElMessage.error("当前任务已结束") + return + } if (d.type == 2) { let date1 = new Date(d.endTime).getTime(); let date2 = new Date().getTime(); @@ -460,7 +489,7 @@ function toFinish(d, sName, chapterOrStageId) { return; } if (d.type == 3 || d.type == 7) { - d.status || request(STUDY_RECORD, { + d.status!==1 && request(STUDY_RECORD, { studentId: data.value.userInfoBo.userId, targetId: data.value.routerId, logo: 2, @@ -468,6 +497,7 @@ function toFinish(d, sName, chapterOrStageId) { taskId: d.projectTaskId, }); } + if (typeof types.value.path[d.type] === "string") { types.value.path[d.type] && types.value.path[d.type].startsWith("http") && @@ -483,7 +513,9 @@ function toFinish(d, sName, chapterOrStageId) { courseId: d.courseId, pName: data.value.name, sName, - chapterOrStageId + chapterOrStageId, + projectStatus: data.value.status?data.value.status:0, // 项目状态 -- 用于判断当前项目是否已经结束 + projectEndTime: data.value.endTime?data.value.endTime:0 // 项目结束 -- 用于判断当前项目是否已经结束 }, }); } else if (typeof types.value.path[d.type] === "function") { diff --git a/src/views/roadmap/PathDetails.vue b/src/views/roadmap/PathDetails.vue index 6b99c12..01efb7e 100644 --- a/src/views/roadmap/PathDetails.vue +++ b/src/views/roadmap/PathDetails.vue @@ -341,17 +341,14 @@ const types = ref({ 4: "/homeworkpage", 5: import.meta.env.VITE_BOE_EXAM_DETAIL_URL, //考试 6: "/livebroadcast", - 7: ({ courseId }) => - request(LINK_DETAILS(courseId), {}).then(({ data: { linkAddress } }) => - window.open(linkAddress, '_top') - ), //外联 + 7: ({ targetId }) => window.open(targetId, '_top'), //外联 8: "/discusspage", 9: "/moreactive", 10: ({ evaType, targetId }) => window.open( - (evaType == 0 - ? import.meta.env.VITE_BOE_TEST_DETAIL_URL - : import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL) + targetId + evaType == 0 + ? import.meta.env.VITE_BOE_TEST_DETAIL_URL+targetId + : import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL + targetId+`&quizTaskKid=${routerId}&channelCode=learningpath` ,'_top'), //测评 11: "/surveydetail", 12: "/ballotpage", @@ -443,7 +440,7 @@ function toFinish(d) { } } if (d.type === 3 || d.type === 7) { - d.status || request(STUDY_RECORD, { + d.status!==1 && request(STUDY_RECORD, { studentId: userInfo.value.id, targetId: data.value.routerId, logo: 1, diff --git a/src/views/survey/SurveyDetail.vue b/src/views/survey/SurveyDetail.vue index b038ec4..4363f44 100644 --- a/src/views/survey/SurveyDetail.vue +++ b/src/views/survey/SurveyDetail.vue @@ -296,9 +296,15 @@ data.assessmentMultipleChoiceDtoList?.length || data.assessmentSingleChoiceDtoList?.length || data.assessmentScoringQuestionDtoList?.length -"> -
- 提交 +">
+
+ 提交 +
+
+
+
+ 提交 +
@@ -334,7 +340,7 @@ import { ElMessage } from "element-plus"; import { ref } from "vue"; const { - query: { courseId, id: taskId, infoId, type, pName, sName, chapterOrStageId }, + query: { courseId, id: taskId, infoId, type, pName, sName, chapterOrStageId, projectStatus, projectEndTime }, } = useRoute(); const router = useRouter(); const returnclick = () => {