-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
-
-
@@ -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 = () => {