Merge remote-tracking branch 'origin/develop' into manage-release

# Conflicts:
#	src/App.vue
This commit is contained in:
yuping
2023-03-04 15:19:20 +08:00
20 changed files with 218 additions and 92 deletions

View File

@@ -27,7 +27,7 @@ import { GET_USER_INFO } from "@/api/ThirdApi";
import { getCookie } from "@/api/utils";
import { USER_INFO } from "@/api/api";
console.log("版本1.3.5------------");
console.log("版本1.3.6------------");
const store = useStore();
const router = useRouter();

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-01-13 11:42:48
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-03-01 19:07:28
* @LastEditTime: 2023-03-03 13:47:22
* @FilePath: /stu_h5/src/api/api.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -31,7 +31,7 @@ export const ACTIVITY = '/activity'
export const EXAMINATION_QUERY = examinationId => `/examination/queryExaminationDetailById?examinationId=${examinationId} post`
export const TASK_OFFCOURSE_NOTASK_SIGN = '/stu/task/offcourse/notask/sign post'
export const TASK_OFFCOURSE_SIGN = '/stu/task/offcourse/sign post'
export const LINK_DETAILS = linkId => `/link/getOne?linkId=${linkId}`
export const LINK_DETAILS = `/link/getOne`
export const STUDY_RECORD = '/stu/task/thirdTask/submit post'
export const TASK_WORK_SUBMIT_LIST = '/workSubmit/queryWorkSubmitDetailById'
export const WORK_HISTROY = '/workSubmit/queryWorkDetailListByStuId'
@@ -42,13 +42,13 @@ export const ROUTER_DETAILS = '/admin/router/detail'
export const TASK_LIST = '/stu/tasks'
export const ONLINE_PROCESS = '/onlineClasses/queryOnlineClassesStudyDetail post'
export const PROJECT_PROCESS = '/stu/project/process'
export const EVALUATION_DETAIL = evaluationId => `/evaluation/queryEvaluationDetailById?evaluationId=${evaluationId} post`
export const EVALUATION_DETAIL = `/evaluation/queryEvaluationDetailById`
export const DISCUSS_LIKE = '/discussSubmit/clickDiscussLikeCountOr post'
export const DISCUSS_LIST = '/discussSubmit/taskList'
export const DISCUSS_DETAIL = '/discussSubmit/detail'
export const DISCUSS_SUBMIT_REVIEW_LIST = '/discussSubmit/queryDiscussSubmitAndReview'
export const VOTE_DETAIL2 = `/vote/queryVoteById`
export const VOTE_DETAIL3 = voteId => `/vote/queryVoteById?voteId=${voteId}`
export const VOTE_DETAIL3 = `/vote/queryVoteById`
// 投票详情接口
export const VOTE_DETAIL_SUBMIT = `voteSubmit/vote/commit post`
@@ -83,3 +83,5 @@ export const UPDATE_CURRENT_TASK = `/admin/student/updateCurrentTask post`
// 测评任务去学习
export const EvaluationToLearn = '/evaluation/evaluationToLearn post'
export const FILE_UPLOAD_IMG = import.meta.env.VITE_BASE_API + 'file/img'
// 查询单个测评的状态
export const QueryEvaluationTaskStatusOne = `/evaluation/queryEvaluationTaskStatusOne`

View File

@@ -14,8 +14,8 @@
:key="i"
class="cha"
:style="{
top: `${imgAttr.positions[i]?.top - (current === i ? 1 : 0)}px`,
left: `${imgAttr.positions[i]?.left - (current === i ? 11 : 0)}px`,
top: `${imgAttr?.positions[i]?.top - (current === i ? 1 : 0)}px`,
left: `${imgAttr?.positions[i]?.left - (current === i ? 11 : 0)}px`,
}"
>
<div
@@ -152,16 +152,41 @@ const imageAttrs = {
},
};
const imgAttr = computed(
() =>
imageAttrs[Object.keys(imageAttrs).find((e) => props.img.includes(e))] || {}
);
const imgAttrindex = computed(() =>
Object.keys(imageAttrs).find((e) => props.img.includes(e)) === "路径图背景"
? 1
: Object.keys(imageAttrs).find((e) => props.img.includes(e)) === "路径图2"
? 2
: 3
const imgAttr = computed(() => {
if (props.img) {
return (
imageAttrs[Object.keys(imageAttrs).find((e) => props.img.includes(e))] ||
{}
);
}
});
const imgAttrindex = computed(
() => {
// console.log("props.img.includes1", props.img);
// console.log("props.img", props.img.includes("路径图背景"));
if (
props.img &&
Object.keys(imageAttrs).find((e) => props.img.includes(e)) ===
"路径图背景"
) {
return 1;
} else if (
props.img &&
Object.keys(imageAttrs).find((e) => props.img.includes(e)) === "路径图2"
) {
return 2;
} else if (
props.img &&
Object.keys(imageAttrs).find((e) => props.img.includes(e)) === "路径图3"
) {
return 3;
}
}
// Object.keys(imageAttrs).find((e) => props.img.includes(e)) === "路径图背景"
// ? 1
// : Object.keys(imageAttrs).find((e) => props.img.includes(e)) === "路径图2"
// ? 2
// : 3
);
console.log("imgAttrindex", imgAttrindex);

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-01-17 19:47:07
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-02-28 15:31:03
* @LastEditTime: 2023-03-03 10:30:46
* @FilePath: /stu_h5/src/store/index.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -81,8 +81,8 @@ export default createStore({
},
},
actions: {
getProjectInfo(content, { projectId }) {
request(PROJECT_PROCESS, { projectId }).then(res => {
getProjectInfo(content, { projectId, type }) {
request(PROJECT_PROCESS, { projectId, type }).then(res => {
content.commit('SET_PROJECT_INFO', res.data)
content.commit('INIT_PROJECT_INFO')
})

View File

@@ -168,7 +168,7 @@ const state = reactive({
const { isAllowSign, closeBtn } = toRefs(state);
const { data } = useRequest(ACTIVITY, { activityId }, (e) => {
const { data } = useRequest(ACTIVITY, { activityId, type }, (e) => {
if (e.code === 6) {
router.push({
path: "/notpath",

View File

@@ -182,12 +182,12 @@ import dayjs from "dayjs";
import store from "@/store";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router/dist/vue-router";
const router = useRouter();
const {
query: { courseId, chapterOrStageId, infoId, id, btype },
query: { courseId, chapterOrStageId, infoId, id, btype, type },
} = useRoute();
const userInfo = computed(() => store.state.userInfo);
const { data } = useRequest(VOTE_DETAIL3(courseId), {}, (e) => {
const { data } = useRequest(VOTE_DETAIL3, { voteId: courseId, type }, (e) => {
if (e.code === 6) {
router.push({
path: "/notpath",

View File

@@ -157,7 +157,7 @@ const {
query: { id, type },
} = useRoute();
request(DISCUSS_LIST, {
type: type == 1 ? 2 : 1,
type: type,
id,
})
.then((e) => {

View File

@@ -71,7 +71,12 @@ import ReturnHead from "@/components/ReturnHead.vue";
import { computed, reactive, toRefs, onUnmounted, ref, watch } from "vue";
import img from "@/assets/image/uploadimg.png";
import { request, useRequest } from "@/api/request";
import { EVALUATION_DETAIL, STUDY_RECORD, EvaluationToLearn } from "@/api/api";
import {
EVALUATION_DETAIL,
STUDY_RECORD,
EvaluationToLearn,
QueryEvaluationTaskStatusOne,
} from "@/api/api";
import { useRoute } from "vue-router/dist/vue-router";
import { useRouter } from "vue-router";
import { useUserInfo } from "@/api/utils";
@@ -86,10 +91,12 @@ const {
chapterOrStageId,
infoId,
btype,
quizTaskId,
type,
},
} = useRoute();
const router = useRouter();
const { data } = useRequest(EVALUATION_DETAIL(evaluationId), {}, (e) => {
const { data } = useRequest(EVALUATION_DETAIL, { evaluationId, type }, (e) => {
if (e.code === 6) {
router.push({
path: "/notpath",
@@ -128,26 +135,77 @@ onUnmounted(() => {
});
const goOuterChain = () => {
console.log("点击去查看");
request(EvaluationToLearn, {
businessType: btype == 1 ? "project" : "learningpath",
chapterId: chapterOrStageId,
courseId: evaluationId,
quizKid: data.value.evaluationTypeId,
routerOrProjectId: infoId,
studentId: userInfo.value.id,
studentName: userInfo.value.realName,
})
.then((res) => {
console.log(res);
// if (res.code == 200) {
// let jumpUrl = res.data.quizUrl;
// // 此处写跳转url
// window.open(jumpUrl, "_top");
// }
if (quizTaskId == null) {
request(EvaluationToLearn, {
businessType: btype == 1 ? "project" : "learningpath",
chapterId: chapterOrStageId,
courseId: evaluationId,
quizKid: data.value.evaluationTypeId,
routerOrProjectId: infoId,
studentId: userInfo.value.id,
studentName: userInfo.value.realName,
})
.catch((err) => {
console.log(err);
});
.then((res) => {
console.log(res);
if (res.code == 200) {
let jumpUrl = res.data.quizUrl;
// 此处写跳转url
window.open(jumpUrl, "_top");
}
})
.catch((err) => {
console.log(err);
});
} else {
request(QueryEvaluationTaskStatusOne, {
quizTaskId: quizTaskId,
})
.then((res) => {
console.log(res);
if (res.code == 200) {
if (res.data.complete_status == 2) {
ElMessage.error("您已完成测评");
return;
} else {
// 重新查询跳转
// 调用接口 跳转页面
console.log("我是查询测评跳转链接所传递得参数", {
businessType: btype === 2 ? "learningpath" : "project",
chapterId: chapterOrStageId,
courseId: evaluationId,
quizKid: data.value.evaluationTypeId,
routerOrProjectId: infoId,
studentId: userInfo.value.id,
studentName: userInfo.value.realName,
});
request(EvaluationToLearn, {
businessType: "learningpath",
chapterId: chapterOrStageId,
courseId: evaluationId,
quizKid: data.value.evaluationTypeId,
routerOrProjectId: infoId,
studentId: userInfo.value.id,
studentName: userInfo.value.realName,
})
.then((res) => {
console.log(res);
if (res.code == 200) {
let jumpUrl = res.data.quizUrl;
// 此处写跳转url
window.open(jumpUrl, "_top");
}
})
.catch((err) => {
console.log(err);
});
}
}
})
.catch((err) => {
console.log(err);
});
}
// window.open(
// evaType == 0
// ? window.location.protocol +

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-02-06 18:26:23
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-03-02 02:38:59
* @LastEditTime: 2023-03-03 09:37:16
* @FilePath: /stu_h5/src/views/examination/ExternalExam.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -45,14 +45,14 @@ import { EXTERNALEXAM } from "@/api/api";
import { reactive } from "vue";
import { useRoute, useRouter } from "vue-router/dist/vue-router";
const {
query: { courseId },
query: { courseId, type },
} = useRoute();
const router = useRouter();
const state = reactive({
datainfo: {},
});
//获取基本信息
request(EXTERNALEXAM, { externalId: courseId })
request(EXTERNALEXAM, { externalId: courseId, type })
.then((res) => {
console.log("获取考试", res);
if (res.code === 6) {

View File

@@ -314,7 +314,7 @@
name="third"
:disabed="dayjs().isBefore(dayjs(data.planDto?.beginTime))"
>
<div class="work" v-if="data.examinationDto?.examinationTestName">
<div class="work" v-if="data.examinationDto">
<div class="question">
{{ data.examinationDto?.examinationName }}
</div>
@@ -418,7 +418,14 @@ const handleClick = (tab, event) => {
console.log("附件", tab, event);
};
const download = (url) => {
window.open(url);
console.log(
"url2",
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url
);
window.open(
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url,
"_top"
);
};
const downloads = (url) => {
ElMessage.warning("未到开始时间,请耐心等待!");
@@ -537,9 +544,9 @@ function toSurvery() {
path: "/investigatpage",
query: {
id: taskId,
courseId: data.value.planDto.evaluateId,
courseId: data.value.planDto.assessmentId,
pName: "面授课",
infoId: data.value.planDto.offcoursePlanId,
infoId: data.value.planDto.id,
chapterOrStageId: 0,
sName: data.value.planDto.name,
type,
@@ -559,9 +566,9 @@ function toWork() {
router.push({
path: "/homeworkpage",
query: {
courseId: data.value.workDto.workId,
courseId: data.value.planDto.homeWorkId,
id: taskId,
infoId: data.value.offcourseDto.offcourseId,
infoId: data.value.planDto.id,
chapterOrStageId: 0,
type,
pName: "面授课",
@@ -579,14 +586,24 @@ function toExamItem(obj) {
return;
}
}
console.log("obj", obj.examinationTestId);
window.open(
window.location.protocol +
import.meta.env.VITE_BOE_EXAM_DETAIL_URL +
"/mobile/pages/exam/exam?id=" +
obj.examinationTestId,
"_top"
); //测评
console.log("obj", obj);
if (obj.examType === 2) {
router.push({
path: "/externalexam",
query: {
courseId: obj.id,
type,
},
});
} else {
window.open(
window.location.protocol +
import.meta.env.VITE_BOE_EXAM_DETAIL_URL +
obj.id,
"_top"
);
}
// router.push({ path: import.meta.env.VITE_BOE_EXAM_DETAIL_URL+ obj.examinationTestId });
}

View File

@@ -181,12 +181,13 @@ const handleClick = (tab, event) => {
};
const download = (url) => {
console.log(
"下载url",
import.meta.env.VITE_FILE_PATH,
process.env.VITE_FILE_PATH,
url
"url2",
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url
);
window.open(
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url,
"_top"
);
window.open(import.meta.env.VITE_FILE_PATH + url);
};
const downloads = (url) => {
ElMessage.warning("未在有效时间范围内,请耐心等待!");

View File

@@ -184,7 +184,14 @@ const handleClick = (tab, event) => {
console.log("附件", tab, event);
};
const download = (url) => {
window.open(import.meta.env.VITE_FILE_PATH + url);
console.log(
"url2",
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url
);
window.open(
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url,
"_top"
);
};
const downloads = (url) => {
ElMessage.warning("未在有效时间范围内,请耐心等待!");

View File

@@ -193,7 +193,14 @@ const handleClick = (tab, event) => {
console.log("附件", tab, event);
};
const download = (url) => {
window.open(import.meta.env.VITE_FILE_PATH + url);
console.log(
"url2",
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url
);
window.open(
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url,
"_top"
);
};
let timer = null;

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-01-13 11:42:48
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-02-18 15:27:53
* @LastEditTime: 2023-03-04 10:42:36
* @FilePath: /stu_h5/src/views/filestorag/fileStorag.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -108,7 +108,14 @@ const fileList = computed(() =>
);
//下载
function downloadFile(url) {
window.open(url);
console.log(
"url222",
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url
);
window.open(
import.meta.env.VITE_BOE_API_URL + import.meta.env.VITE_FILE_PATH + url,
"_top"
);
}
</script>
<style lang="scss" scoped>

View File

@@ -117,7 +117,7 @@ const {
// console.log("type", type);
const { data } =
taskId && taskId !== "undefined"
? useRequest(TASK_WORK_DETAIL, { workId, taskId }, (e) => {
? useRequest(TASK_WORK_DETAIL, { workId, taskId, type }, (e) => {
if (e.code === 6) {
console.log("作业判断", e);
router.push({
@@ -125,7 +125,7 @@ const { data } =
});
}
})
: useRequest(TASK_WORK_DETAIL, { workId }, (e) => {
: useRequest(TASK_WORK_DETAIL, { workId, type }, (e) => {
if (e.code === 6) {
console.log("作业判断", e);
router.push({

View File

@@ -233,8 +233,6 @@ const {
id: taskId,
infoId,
type,
pName,
sName,
chapterOrStageId,
projectStatus,
projectEndTime,

View File

@@ -16,10 +16,10 @@
</div>
<div class="notice" style="margin-top: 0">
<div class="noticebox">
<div class="avator">
<!-- <div class="avator">
<img class="avaimg" :src="teacherInfo.avatar" />
<div class="avaname">{{ data.userInfoBo?.userName }}</div>
</div>
</div> -->
<div class="mani">
<div class="joininfo">{{ data?.liveName }}</div>
<div class="contenttitle">
@@ -222,7 +222,7 @@ const returnclick = () => {
router.back();
};
const { data } = useRequest(TASK_BROADCAST_DETAIL, { liveId }, (e) => {
const { data } = useRequest(TASK_BROADCAST_DETAIL, { liveId, type }, (e) => {
console.log("直播判断", e);
if (e.code === 6) {
router.push({

View File

@@ -77,7 +77,7 @@ const {
const router = useRouter();
console.log("外链信息", linkId);
const { data } = useRequest(LINK_DETAILS(linkId), {}, (e) => {
const { data } = useRequest(LINK_DETAILS, { linkId, type }, (e) => {
if (e.code === 6) {
router.push({
path: "/notpath",

View File

@@ -370,7 +370,7 @@ function toFinish(d) {
return;
}
// 此处判断外部考试跳转
if (d.startTime == null || d.endTime == null) {
if (d.examType == 2) {
// 点击即更新状态 进行中
request(SubmitExternalExam, {
chapterId: data.value.currentStageId,
@@ -389,6 +389,7 @@ function toFinish(d) {
path: "/externalexam",
query: {
courseId: d.courseId,
type: ROUTER,
},
});
return;
@@ -435,6 +436,7 @@ function toFinish(d) {
path: "/projectdetails",
query: {
projectId: d.courseId,
type: ROUTER,
},
});
return;
@@ -461,6 +463,7 @@ function toFinish(d) {
targetId: d.targetId,
evaType: d.evaType,
btype: 2,
quizTaskId: d.quizTaskId,
},
})
: "";

View File

@@ -160,7 +160,7 @@
</div>
<div
class="goclass"
@click="toFinish(el)"
@click="toFinish(el, item.stageName, item.id)"
:style="{
background:
el.statusName !== '已结束' &&
@@ -221,12 +221,12 @@ import { PROJECT, TASK_TYPES } from "@/api/CONST";
import dayjs from "dayjs";
import { useStore } from "vuex";
const {
query: { courseId, projectId },
query: { courseId, projectId, type },
} = useRoute();
const router = useRouter();
const { commit, dispatch, state } = useStore();
const data = computed(() => state.projectInfo);
useRequest(PROJECT_PROCESS, { projectId: projectId }, (e) => {
useRequest(PROJECT_PROCESS, { projectId: projectId, type }, (e) => {
if (e.code === 6) {
console.log("eee", e);
router.push({
@@ -242,7 +242,7 @@ watch(data, () => {
}
});
onMounted(() => {
dispatch("getProjectInfo", { projectId });
dispatch("getProjectInfo", { projectId, type });
});
watch(
() => data.value.stageProcessList,
@@ -457,13 +457,13 @@ function toFinish(d, sName, chapterOrStageId) {
return;
}
// 此处判断外部考试跳转
if (d.startTime == null || d.endTime == null) {
// 点击即更新状态 进行中
if (d.examType == 2) {
// 点击即更新状态 进行中 chapterOrStageId
request(SubmitExternalExam, {
chapterId: data.value.currentStageId,
chapterId: chapterOrStageId,
externalId: d.courseId,
externalName: d.name,
targetId: routerId,
targetId: data.value.projectId,
studentNo: userInfo.value.userNo,
})
.then((res) => {
@@ -476,6 +476,7 @@ function toFinish(d, sName, chapterOrStageId) {
path: "/externalexam",
query: {
courseId: d.courseId,
type: PROJECT,
},
});
return;
@@ -539,7 +540,7 @@ function toFinish(d, sName, chapterOrStageId) {
courseId: d.courseId,
pName: data.value.name,
sName,
chapterOrStageId: data.value.currentStageId,
chapterOrStageId: chapterOrStageId,
studentId: userInfo.value.id,
status: d.status,
targetId: d.targetId,
@@ -565,7 +566,7 @@ function toFinish(d, sName, chapterOrStageId) {
// courseId: d.courseId,
// pName: data.value.name,
// sName,
// chapterOrStageId: data.value.currentStageId,
// chapterOrStageId: chapterOrStageId,
// studentId: userInfo.value.id,
// status: d.status,
// targetId: d.targetId,