Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-stu into develop

This commit is contained in:
zhangyc
2022-12-26 23:39:44 +08:00
12 changed files with 306 additions and 307 deletions

2
.env
View File

@@ -9,7 +9,7 @@ VITE_BOE_CASS_DETAIL_URL=https://u-pre.boe.com/pc/case/detail?id=
VITE_BOE_TEST_DETAIL_URL=https://u-pre.boe.com/web/quizsummary?detailId= VITE_BOE_TEST_DETAIL_URL=https://u-pre.boe.com/web/quizsummary?detailId=
VITE_BOE_TEST_OUT_DETAIL_URL=https://u-pre.boe.com/api/b1/tale/do-quiz?quizKid= VITE_BOE_TEST_OUT_DETAIL_URL=https://u-pre.boe.com/api/b1/tale/do-quiz?quizKid=
VITE_BOE_EXAM_DETAIL_URL=https://u-pre.boe.com/pc/exam/test?id= VITE_BOE_EXAM_DETAIL_URL=https://u-pre.boe.com/pc/exam/test?id=
VITE_BOE_PATH_DETAIL_URL=http://u-pre.boe.com/pc/forward?to=/fe-student VITE_BOE_PATH_DETAIL_URL=https://u-pre.boe.com/pc/forward?to=/fe-student
VITE_BOE_API_URL=https://u-pre.boe.com VITE_BOE_API_URL=https://u-pre.boe.com

View File

@@ -7,6 +7,6 @@ VITE_BOE_CASS_DETAIL_URL=https://u.boe.com/pc-release/case/detail?id=
VITE_BOE_TEST_DETAIL_URL=https://u.boe.com/web/quizsummary?detailId= VITE_BOE_TEST_DETAIL_URL=https://u.boe.com/web/quizsummary?detailId=
VITE_BOE_TEST_OUT_DETAIL_URL=https://u.boe.com/api/b1/tale/do-quiz?quizKid= VITE_BOE_TEST_OUT_DETAIL_URL=https://u.boe.com/api/b1/tale/do-quiz?quizKid=
VITE_BOE_EXAM_DETAIL_URL=https://u.boe.com/pc-release/exam/test?id= VITE_BOE_EXAM_DETAIL_URL=https://u.boe.com/pc-release/exam/test?id=
VITE_BOE_PATH_DETAIL_URL=http://u.boe.com/pc/forward?to=/fe-student-release VITE_BOE_PATH_DETAIL_URL=https://u.boe.com/pc-release/forward?to=/fe-student-release
VITE_BOE_API_URL=https://u.boe.com VITE_BOE_API_URL=https://u.boe.com

View File

@@ -7,11 +7,11 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--> -->
<template> <template>
<!-- <!--
--> -->
<div id="container"> <div id="container">
<!-- <div id="nav"> <!-- <div id="nav">
<router-link <router-link
v-for="item in routes" v-for="item in routes"
:key="item.path" :key="item.path"
@@ -24,84 +24,85 @@
{{ item.name }} {{ item.name }}
</router-link> </router-link>
</div> --> </div> -->
<main style="z-index: 2"> <main style="z-index: 2">
<router-view/> <router-view />
</main> </main>
</div> </div>
</template> </template>
<script setup> <script setup>
import {boeRequest} from "@/api/request"; import { boeRequest } from "@/api/request";
import {GET_USER_INFO} from "@/api/ThirdApi"; import { GET_USER_INFO } from "@/api/ThirdApi";
import {useStore} from "vuex"; import { useStore } from "vuex";
import {onMounted} from "vue"; import { onMounted } from "vue";
import router from "@/router"; import router from "@/router";
console.log("版本1.0.6------------"); console.log("版本1.0.7------------");
const store = useStore(); const store = useStore();
onMounted(() => { onMounted(() => {
getUserInfo(); getUserInfo();
}); });
function getUserInfo() { function getUserInfo() {
boeRequest(GET_USER_INFO).then((res) => { boeRequest(GET_USER_INFO).then((res) => {
res.result.avatar = import.meta.env.VITE_BOE_API_URL + '/upload' + (res.result.avatar ? res.result.avatar : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png') res.result.avatar = import.meta.env.VITE_BOE_API_URL + '/upload' + (res.result.avatar ? res.result.avatar : '/800e23f7-b58c-4192-820d-0c6a2b7544cc.png')
store.commit("SET_USER", res.result); store.commit("SET_USER", res.result);
}); });
} }
</script> </script>
<style lang="scss"> <style lang="scss">
#app { #app {
// font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial, // font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial,
// sans-serif; // sans-serif;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
Microsoft YaHei, Arial, sans-serif; Microsoft YaHei, Arial, sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #2c3e50; color: #2c3e50;
height: 100%; height: 100%;
} }
#container { #container {
display: flex; display: flex;
width: 100%; width: 100%;
min-height: 100%; min-height: 100%;
background-color: rgba(242, 245, 247, 1); background-color: rgba(242, 245, 247, 1);
// background-color: #ccc;
#nav {
width: 220px;
height: 100%;
display: flex;
flex-direction: column;
gap: 20px;
padding: 30px 0;
box-sizing: border-box;
background: #f1f1f1;
box-shadow: 0 5px 15px 8px rgba(1, 22, 54, 0.795);
.link { // background-color: #ccc;
text-decoration: none; #nav {
color: rgb(0, 0, 0); width: 220px;
padding: 10px; height: 100%;
transition: all 0.4s; display: flex;
text-align: center; flex-direction: column;
gap: 20px;
padding: 30px 0;
box-sizing: border-box;
background: #f1f1f1;
box-shadow: 0 5px 15px 8px rgba(1, 22, 54, 0.795);
&:hover { .link {
background: rgba(4, 37, 223, 0.274); text-decoration: none;
color: #f1f1f1; color: rgb(0, 0, 0);
} padding: 10px;
transition: all 0.4s;
text-align: center;
&.active { &:hover {
color: #f1f1f1; background: rgba(4, 37, 223, 0.274);
background: rgba(17, 120, 255, 0.74); color: #f1f1f1;
} }
}
}
main { &.active {
flex: 1; color: #f1f1f1;
width: 100%; background: rgba(17, 120, 255, 0.74);
// padding: 30px; }
box-sizing: border-box; }
} }
main {
flex: 1;
width: 100%;
// padding: 30px;
box-sizing: border-box;
}
} }
</style> </style>

View File

@@ -94,7 +94,7 @@ export async function request(_url, params) {
}).then(resp => resp.data).then(response => { }).then(resp => resp.data).then(response => {
if (response.code !== 200 && response.code !== 0) { if (response.code !== 200 && response.code !== 0) {
if (response.code === 1000) { if (response.code === 1000) {
import.meta.env.MODE === 'development' ? router.push({ path: '/login' }) : window.open(import.meta.env.VITE_BASE_LOGIN_URL) import.meta.env.MODE === 'development' ? router.push({ path: '/login' }) : window.open(import.meta.env.VITE_BASE_LOGIN_URL,'_top')
} }
// if (import.meta.env.DEV && response.code === 1000) { // if (import.meta.env.DEV && response.code === 1000) {
// router.push({path: '/login'}) // router.push({path: '/login'})

View File

@@ -64,7 +64,7 @@ function toDetail(i) {
`${import.meta.env.VITE_BOE_PATH_DETAIL_URL}/pathdetails&params=${encodeURIComponent( `${import.meta.env.VITE_BOE_PATH_DETAIL_URL}/pathdetails&params=${encodeURIComponent(
`routerId=${props.detail.routerId}&routerName=${props.detail.routerName}` `routerId=${props.detail.routerId}&routerName=${props.detail.routerName}`
)}` )}`
); ,'_top');
} }
function close() { function close() {

View File

@@ -25,8 +25,8 @@
<img style="width: 15px; height: 17px" src="../../assets/image/time.png" /> <img style="width: 15px; height: 17px" src="../../assets/image/time.png" />
<div style="margin-left: 8px"> <div style="margin-left: 8px">
{{ dayjs(data.planDto?.beginTime).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') dayjs(data.planDto?.endTime).format('YYYY-MM-DD HH:MM')
}} }}
</div> </div>
</div> </div>
<div v-if="data.planDto?.address" class="time" style="margin-top: 23px"> <div v-if="data.planDto?.address" class="time" style="margin-top: 23px">
@@ -36,16 +36,16 @@
</div> </div>
<div style="display: flex"> <div style="display: flex">
<botton class="btn" style="margin-right: 20px" :style="{ <botton class="btn" style="margin-right: 20px" :style="{
background: data.signFlag ? '#999' : 'rgb(57, 146, 249)', background: data.signFlag ? '#999' : 'rgb(57, 146, 249)',
}" @click="signClick">{{ data.signFlag ? "已签到" : "签到" }} }" @click="signClick">{{ data.signFlag ? "已签到" : "签到" }}
</botton> </botton>
<botton style="background: #999" class="btn" @click="toSurvery" v-if="data.planDto?.evalFlag == 0"> <botton style="background: #999" class="btn" @click="toSurvery" v-if="data.planDto?.evalFlag == 0">
评估 评估
</botton> </botton>
<botton :style="{ <botton :style="{
background: `${new Date(data.planDto?.beginTime).getTime() > new Date().getTime() ? '#999' : data.isSurvery ? '#999' : 'rgb(57, 146, 249)'}`, background: `${new Date(data.planDto?.beginTime).getTime() > new Date().getTime() ? '#999' : data.isSurvery ? '#999' : 'rgb(57, 146, 249)'}`,
}" class="btn" @click="toSurvery" v-else>{{ data.isSurvery ? "已评估" : "评估" }} }" class="btn" @click="toSurvery" v-else>{{ data.isSurvery ? "已评估" : "评估" }}
</botton> </botton>
</div> </div>
</div> </div>
@@ -79,10 +79,10 @@
:style="{ borderBottom: '1px solid rgba(56, 125, 247, 0.2)' }"> :style="{ borderBottom: '1px solid rgba(56, 125, 247, 0.2)' }">
<div class="enclosureL"> <div class="enclosureL">
<FileTypeImg :v-model="el.slice(el.indexOf('-') + 1)" :style="{ <FileTypeImg :v-model="el.slice(el.indexOf('-') + 1)" :style="{
width: '22px', width: '22px',
height: '26px', height: '26px',
marginLeft: '10px', marginLeft: '10px',
}"></FileTypeImg> }"></FileTypeImg>
<div style="margin-left: 20px">{{ el.slice(el.indexOf('-') + 1) }}</div> <div style="margin-left: 20px">{{ el.slice(el.indexOf('-') + 1) }}</div>
</div> </div>
<div v-if="new Date(data.planDto.beginTime).getTime() > new Date().getTime()" class="download"> <div v-if="new Date(data.planDto.beginTime).getTime() > new Date().getTime()" class="download">
@@ -114,7 +114,7 @@
<div <div
:style="{ background: new Date(data.planDto?.beginTime).getTime() > new Date().getTime() ? '#999' : '' }" :style="{ background: new Date(data.planDto?.beginTime).getTime() > new Date().getTime() ? '#999' : '' }"
class="submit" @click="toWork" > class="submit" @click="toWork">
交作业 交作业
</div> </div>
</div> </div>
@@ -324,8 +324,7 @@ function toSurvery() {
query: { query: {
courseId: data.value.planDto.evaluateId, courseId: data.value.planDto.evaluateId,
pName: "面授课", pName: "面授课",
taskId: data.value.planDto.offcoursePlanId, infoId: data.value.offcourseDto.offcourseId,
taskIds: data.value.planDto.offcoursePlanId,
chapterOrStageId: 0, chapterOrStageId: 0,
sName: data.value.planDto.name, sName: data.value.planDto.name,
type: 3 type: 3
@@ -349,8 +348,7 @@ function toWork() {
query: { query: {
courseId: data.value.workDto.workId, courseId: data.value.workDto.workId,
id: taskId, id: taskId,
taskId: taskId, infoId: data.value.offcourseDto.offcourseId,
taskIds: taskId,
chapterOrStageId: 0, chapterOrStageId: 0,
type, type,
pName: "面授课", pName: "面授课",
@@ -369,7 +367,7 @@ function toExamItem(obj) {
} }
} }
console.log("obj", obj.examinationTestId); console.log("obj", obj.examinationTestId);
window.open(import.meta.env.VITE_BOE_EXAM_DETAIL_URL + obj.examinationTestId); //测评 window.open(import.meta.env.VITE_BOE_EXAM_DETAIL_URL + obj.examinationTestId,'_top'); //测评
// router.push({ path: import.meta.env.VITE_BOE_EXAM_DETAIL_URL+ obj.examinationTestId }); // router.push({ path: import.meta.env.VITE_BOE_EXAM_DETAIL_URL+ obj.examinationTestId });
} }

View File

@@ -47,21 +47,23 @@
</div> </div>
<div class="threeBtn"> <div class="threeBtn">
<botton class="btn" :style="{ <botton class="btn" :style="{
background: `${new Date(data.liveStartTime).getTime() > new Date().getTime() ? '#999' : 'rgb(59, 191, 252)'}`, background: `${new Date(data.liveStartTime).getTime() > new Date().getTime() ? '#999' : 'rgb(59, 191, 252)'}`,
}" @click="showClick">观看 }" @click="showClick">观看
</botton> </botton>
<botton class="btn" :style="{ <botton class="btn" :style="{
background: `${new Date(data.liveStartTime).getTime() > new Date().getTime() ? '#999' : data.signFlag ? '#999' : 'rgb(57, 146, 249)'}`, background: `${new Date(data.liveStartTime).getTime() > new Date().getTime() ? '#999' : data.signFlag ? '#999' : 'rgb(57, 146, 249)'}`,
}" @click="signClick">{{ data.signFlag ? "已签到" : "签到" }} }" @click="signClick">{{ data.signFlag ? "已签到" : "签到" }}
</botton> </botton>
<botton style="background: #999" class="btn" @click="commitClick" v-if="data.isEvaluate == 0 "> <botton style="background: #999" class="btn" @click="commitClick" v-if="data.isEvaluate == 0">
评估 评估
</botton> </botton>
<botton :style="{ <botton :style="{
background: `${new Date(data.liveStartTime).getTime() > new Date().getTime() ? '#999' : data.isSurvery ? '#999' : 'rgb(57, 146, 249)'}`, background: `${new Date(data.liveStartTime).getTime() > new Date().getTime() ? '#999' : data.isSurvery ? '#999' : 'rgb(57, 146, 249)'}`,
}" class="btn" @click="commitClick" v-if="data.isEvaluate && data.isEvaluate == 1">{{ data.isSurvery ? "已评估": "评估"}} }" class="btn" @click="commitClick" v-if="data.isEvaluate && data.isEvaluate == 1">{{ data.isSurvery ? "已评估" :
"评估"
}}
</botton> </botton>
</div> </div>
</div> </div>
@@ -138,7 +140,7 @@
</template> </template>
<script setup> <script setup>
import { computed, reactive, toRefs,onUnmounted } from "vue"; import { computed, reactive, toRefs, onUnmounted } from "vue";
import img from "@/assets/image/uploadimg.png"; import img from "@/assets/image/uploadimg.png";
import { request, useRequest } from "@/api/request"; import { request, useRequest } from "@/api/request";
import { TASK_BROADCAST_DETAIL, TASK_BROADCAST_SIGN } from "@/api/api"; import { TASK_BROADCAST_DETAIL, TASK_BROADCAST_SIGN } from "@/api/api";
@@ -264,8 +266,7 @@ const commitClick = () => {
path: "/surveydetail", path: "/surveydetail",
query: { query: {
courseId: data.value.assessmentId, courseId: data.value.assessmentId,
taskId: data.value.liveId, infoId: data.value.liveId,
taskIds: data.value.liveId,
chapterOrStageId: 0, chapterOrStageId: 0,
pName: "直播", pName: "直播",
sName: data.value.liveName, sName: data.value.liveName,
@@ -283,7 +284,7 @@ function showClick() {
return; return;
} }
} }
window.open(data.value.liveLink); window.open(data.value.liveLink,'_top');
} }
onUnmounted(() => { onUnmounted(() => {
if (timer) { if (timer) {

View File

@@ -4,15 +4,17 @@
<div class="pdname"> <div class="pdname">
{{ data.name }} {{ data.name }}
<el-popover v-if="data.remark" ref="popover" popper-class="jianjie" placement="right" trigger="hover" :width="300" :content="data.remark"> <el-popover v-if="data.remark" ref="popover" popper-class="jianjie" placement="right" trigger="hover" :width="300"
<template #reference><span style="font-size: 16px;font-weight: 600;">简介></span></template> :content="data.remark">
</el-popover> <template #reference><span style="font-size: 16px;font-weight: 600;">简介></span></template>
</el-popover>
</div> </div>
<!-- 详细信息 --> <!-- 详细信息 -->
<div class="detailinfo"> <div class="detailinfo">
<div class="detailL"> <div class="detailL">
<div v-for="(i, k) in data.stageProcessList" :key="k"> <div v-if="data.stageProcessList" v-for="(i, k) in data.stageProcessList" :key="k">
{{ loading.close() }}
<div v-if="i.stageId == '0' && i.taskProcessList.length == 0"></div> <div v-if="i.stageId == '0' && i.taskProcessList.length == 0"></div>
<div v-else class="title"> <div v-else class="title">
<div class="titleL">{{ i.stageName }}</div> <div class="titleL">{{ i.stageName }}</div>
@@ -29,13 +31,13 @@
</div> </div>
<div v-if="i.stageId == '0' && i.taskProcessList.length == 0"></div> <div v-if="i.stageId == '0' && i.taskProcessList.length == 0"></div>
<div v-else class="course" v-for="(value, index) in i.taskProcessList.filter( <div v-else class="course" v-for="(value, index) in i.taskProcessList.filter(
(e) => !whiteTypes(e.type) (e) => !whiteTypes(e.type)
)" :key="index"> )" :key="index">
<div style="width: 70%"> <div style="width: 70%">
<div v-if="value.name.length > 50" class="coursename" :title="value.name"> <div v-if="value.name.length > 50" class="coursename" :title="value.name">
<el-popover ref="popover" placement="right" trigger="hover" :width="300" :content="value.name"> <el-popover ref="popover" placement="right" trigger="hover" :width="300" :content="value.name">
<template #reference></template> <template #reference></template>
</el-popover> </el-popover>
</div> </div>
<div v-else class="coursename" :title="value.name">{{ value.name }}</div> <div v-else class="coursename" :title="value.name">{{ value.name }}</div>
@@ -63,15 +65,15 @@
<div class="progress"> <div class="progress">
<div style="width: 291px"> <div style="width: 291px">
<el-progress :percentage="value.currentRatio" :show-text="false" :stroke-width="8" :color=" <el-progress :percentage="value.currentRatio" :show-text="false" :stroke-width="8" :color="
{ {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt(value.currentRatio / 20)] }[parseInt(value.currentRatio / 20)]
" /> " />
</div> </div>
<div style="font-size: 14px;font-weight: 500;color: #277aff;margin-left: 10px;color:#677d86;"> <div style="font-size: 14px;font-weight: 500;color: #277aff;margin-left: 10px;color:#677d86;">
{{ value.currentRatio }}% {{ value.currentRatio }}%
@@ -81,12 +83,12 @@
</div> </div>
<div class="goclass" @click="toFinish(value, i.stageName, i.stageId)"> <div class="goclass" @click="toFinish(value, i.stageName, i.stageId)">
{{ {{
value.status === 100 value.status === 1
? "已完成" ? "已完成"
: types.path[value.type] : types.path[value.type]
? types.toName[value.type] ? types.toName[value.type]
: "未开放" : "未开放"
}} }}
</div> </div>
<!-- <div :style="{ display: value.status === 1 ? 'block' : 'none' }">--> <!-- <div :style="{ display: value.status === 1 ? 'block' : 'none' }">-->
<!-- <div--> <!-- <div-->
@@ -101,6 +103,9 @@
<!-- </div>--> <!-- </div>-->
</div> </div>
</div> </div>
<!-- <div ref="contentLoadingDom" id="loadings" v-else style="width:100%;height:400px;background:red;">
</div> -->
<!-- <div class="tag1">必修</div> <!-- <div class="tag1">必修</div>
<div class="tag2">选修</div> <div class="tag2">选修</div>
<div class="tag3">测评</div> <div class="tag3">测评</div>
@@ -185,15 +190,15 @@
<div style="width: 291px"> <div style="width: 291px">
<el-progress :percentage="parseInt(data.totalProgress * 100)" :show-text="false" :stroke-width="8" <el-progress :percentage="parseInt(data.totalProgress * 100)" :show-text="false" :stroke-width="8"
:color=" :color="
{ {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt((data.totalProgress * 100) / 20)] }[parseInt((data.totalProgress * 100) / 20)]
" /> " />
</div> </div>
<div style="font-size: 14px; font-weight: 500; margin-left: 10px;color:#677d86;"> <div style="font-size: 14px; font-weight: 500; margin-left: 10px;color:#677d86;">
{{ parseInt(data.totalProgress * 100) }}% {{ parseInt(data.totalProgress * 100) }}%
@@ -208,15 +213,15 @@
<div style="width: 291px"> <div style="width: 291px">
<el-progress :percentage="parseInt(data.compulsoryProgress * 100)" :show-text="false" <el-progress :percentage="parseInt(data.compulsoryProgress * 100)" :show-text="false"
:stroke-width="8" :color=" :stroke-width="8" :color="
{ {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt((data.compulsoryProgress * 100) / 20)] }[parseInt((data.compulsoryProgress * 100) / 20)]
" /> " />
</div> </div>
<div style=" <div style="
font-size: 14px; font-size: 14px;
@@ -248,6 +253,7 @@
</template> </template>
<script setup> <script setup>
import { computed, reactive, ref } from "vue"; import { computed, reactive, ref } from "vue";
import { ElLoading } from 'element-plus'
import word from "@/assets/image/file/word.png"; import word from "@/assets/image/file/word.png";
import ppt from "@/assets/image/file/ppt.png"; import ppt from "@/assets/image/file/ppt.png";
import pdf from "@/assets/image/file/pdf.png"; import pdf from "@/assets/image/file/pdf.png";
@@ -279,6 +285,13 @@ const { data } = useRequest(PROJECT_PROCESS, {
console.log("datadata", data); console.log("datadata", data);
const loading = ref(false);
loading.value = ElLoading.service({
lock: true,
text: 'Loading',
background: 'rgba(0, 0, 0, 0.7)'
})
// const { onlinedata } = useRequest(ONLINE_PROCESS, { // const { onlinedata } = useRequest(ONLINE_PROCESS, {
// addView: false, // addView: false,
// cid:"1042123882713739264" // cid:"1042123882713739264"
@@ -342,7 +355,7 @@ const types = ref({
6: "/livebroadcast", 6: "/livebroadcast",
7: ({ courseId }) => 7: ({ courseId }) =>
request(LINK_DETAILS(courseId), {}).then(({ data: { linkAddress } }) => request(LINK_DETAILS(courseId), {}).then(({ data: { linkAddress } }) =>
window.open(linkAddress) window.open(linkAddress,'_top')
), //外联 ), //外联
8: "/discusspage", 8: "/discusspage",
9: "/moreactive", 9: "/moreactive",
@@ -351,7 +364,7 @@ const types = ref({
(evaType == 0 (evaType == 0
? import.meta.env.VITE_BOE_TEST_DETAIL_URL ? import.meta.env.VITE_BOE_TEST_DETAIL_URL
: import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL) + targetId : import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL) + targetId
), //测评 ,'_top'), //测评
11: "/surveydetail", 11: "/surveydetail",
12: "/ballotpage", 12: "/ballotpage",
13: "/projectdetails", 13: "/projectdetails",
@@ -437,7 +450,7 @@ function toFinish(d, sName, chapterOrStageId) {
return; return;
} }
if (d.type == 3 || d.type == 7) { if (d.type == 3 || d.type == 7) {
d.status || request(STUDY_RECORD, { d.status || request(STUDY_RECORD, {
studentId: data.value.userInfoBo.userId, studentId: data.value.userInfoBo.userId,
targetId: data.value.routerId, targetId: data.value.routerId,
logo: 2, logo: 2,
@@ -448,7 +461,7 @@ function toFinish(d, sName, chapterOrStageId) {
if (typeof types.value.path[d.type] === "string") { if (typeof types.value.path[d.type] === "string") {
types.value.path[d.type] && types.value.path[d.type] &&
types.value.path[d.type].startsWith("http") && types.value.path[d.type].startsWith("http") &&
window.open(types.value.path[d.type] + d.targetId); window.open(types.value.path[d.type] + d.targetId,'_top');
types.value.path[d.type] && types.value.path[d.type] &&
types.value.path[d.type].startsWith("/") && types.value.path[d.type].startsWith("/") &&
router.push({ router.push({
@@ -456,8 +469,7 @@ function toFinish(d, sName, chapterOrStageId) {
query: { query: {
id: d.projectTaskId, id: d.projectTaskId,
type: 2, type: 2,
taskId: data.value.projectId, infoId: data.value.projectId,
taskIds: data.value.projectId,
courseId: d.courseId, courseId: d.courseId,
pName: data.value.name, pName: data.value.name,
sName, sName,
@@ -475,8 +487,9 @@ function whiteTypes(type) {
<!-- Add "scoped" attribute to limit CSS to this component only --> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss"> <style lang="scss">
.example-showcase .el-loading-mask { .example-showcase .el-loading-mask {
z-index: 9; z-index: 9;
} }
.pathdetails { .pathdetails {
.el-dialog__header { .el-dialog__header {
display: none; display: none;

View File

@@ -187,7 +187,7 @@ const goProjectDetails = (value) => {
: window.open( : window.open(
`${import.meta.env.VITE_BOE_PATH_DETAIL_URL}/projectdetails&params=${encodeURIComponent( `${import.meta.env.VITE_BOE_PATH_DETAIL_URL}/projectdetails&params=${encodeURIComponent(
`projectId=${value.projectId}` `projectId=${value.projectId}`
)}` ,'_top')}`
); );
}; };
</script> </script>

View File

@@ -80,7 +80,7 @@
: scope.row.taskStatus === 2 : scope.row.taskStatus === 2
? completed ? completed
: scope.row.taskStatus === 0 : scope.row.taskStatus === 0
? nostarted ? ongoing
: null : null
" style="width: 99px; height: 99px"/> " style="width: 99px; height: 99px"/>
</el-table-column> </el-table-column>

View File

@@ -4,62 +4,50 @@
<!-- 面包屑导航 --> <!-- 面包屑导航 -->
<div class="pdname"> <div class="pdname">
{{ data.name }} {{ data.name }}
<el-popover v-if="data.remark" ref="popover" popper-class="jianjie" placement="right" trigger="hover" :width="300" :content="data.remark"> <el-popover v-if="data.remark" ref="popover" popper-class="jianjie" placement="right" trigger="hover" :width="300"
<template #reference><span style="font-size: 16px;font-weight: 600;">简介></span></template> :content="data.remark">
</el-popover> <template #reference><span style="font-size: 16px;font-weight: 600;">简介></span></template>
</div> </el-popover>
</div>
<!-- 详细信息 --> <!-- 详细信息 -->
<div class="detailinfo"> <div class="detailinfo">
<div class="detailL"> <div class="detailL">
<div> <div>
<div class="title"> <div class="title">
<div class="titleL">{{ data.currentStageName }}</div> <div class="titleL">{{ data.currentStageName }}</div>
<div class="titleR" :style="{ display: 'flex' }"> <div class="titleR" :style="{ display: 'flex' }">
<img <img :src="data.currentChapterCnt ? circle : circle2" />
:src="data.currentChapterCnt?circle:circle2"/> <div class="titleRT" :style="{ color: data.currentChapterCnt ? '' : 'rgba(102, 102, 102, 1)' }">
<div class="titleRT" :style="{color:data.currentChapterCnt?'':'rgba(102, 102, 102, 1)'}"> {{ data.currentChapterCnt ? '进行中' : '未开始' }}
{{ data.currentChapterCnt ? '进行中' : '未开始' }} </div>
</div> </div>
</div> </div>
</div> <div class="course" v-for="(value, index) in data.taskBoList?.filter(
<div (e) => !whiteTypes(e.type)
class="course" )" :key="index">
v-for="(value, index) in data.taskBoList?.filter( <div style="width: 70%">
(e) => !whiteTypes(e.type) <div v-if="value.name.length > 50" class="coursename" :title="value.name">
)" <el-popover ref="popover" placement="right" trigger="hover" :width="300" :content="value.name">
:key="index" <template #reference>{{ value.name }}</template>
> </el-popover>
<div style="width: 70%"> </div>
<div v-if="value.name.length >50" class="coursename" :title="value.name">
<el-popover ref="popover" placement="right" trigger="hover" :width="300" :content="value.name">
<template #reference>{{ value.name }}</template>
</el-popover>
</div>
<div v-else class="coursename" :title="value.name"> <div v-else class="coursename" :title="value.name">
{{ value.name }} {{ value.name }}
</div> </div>
<div class="coursetag"> <div class="coursetag">
<div <div class="tag1" style="margin-right: 11px; margin-top: 16px" v-if="value.flag">
class="tag1" 必修
style="margin-right: 11px; margin-top: 16px" </div>
v-if="value.flag" <div class="tag2" style="margin-right: 11px; margin-top: 16px" v-if="!value.flag">
> 选修
必修 </div>
</div> <div class="tag3" style="margin-right: 11px; margin-top: 16px">
<div {{ types.typeName[value.type] || "" }}
class="tag2" </div>
style="margin-right: 11px; margin-top: 16px"
v-if="!value.flag"
>
选修
</div>
<div class="tag3" style="margin-right: 11px; margin-top: 16px">
{{ types.typeName[value.type] || "" }}
</div>
<!-- <div--> <!-- <div-->
<!-- v-for="(item, key) in value.flag"--> <!-- v-for="(item, key) in value.flag"-->
@@ -75,36 +63,35 @@
<div class="progress"> <div class="progress">
<div style="width: 291px"> <div style="width: 291px">
<el-progress :percentage="value.currentRatio" :show-text="false" :stroke-width="8" :color=" <el-progress :percentage="value.currentRatio" :show-text="false" :stroke-width="8" :color="
{ {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt(value.currentRatio / 20)] }[parseInt(value.currentRatio / 20)]
" /> " />
</div> </div>
<div style="font-size: 14px;font-weight: 500;color: #277aff;margin-left: 10px;" <div style="font-size: 14px;font-weight: 500;color: #277aff;margin-left: 10px;" :style="{
:style="{ color: {
color: { 0: 'rgba(238, 112, 108, 1)',
0: 'rgba(238, 112, 108, 1)', 1: 'rgba(255, 151, 38, 1)',
1: 'rgba(255, 151, 38, 1)', 2: 'rgba(39, 122, 255, 1)',
2: 'rgba(39, 122, 255, 1)', 3: 'rgba(59, 94, 251, 1)',
3: 'rgba(59, 94, 251, 1)', 4: 'rgba(57, 219, 183, 1)',
4: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', }[parseInt(value.currentRatio / 20)],
}[parseInt(value.currentRatio / 20)], }">
}">
{{ value.currentRatio }}% {{ value.currentRatio }}%
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="goclass" :style="{ <div class="goclass" :style="{
background: `${types.path[value.type] ? '#2478ff' : '#999'}`, background: `${types.path[value.type] ? '#2478ff' : '#999'}`,
}" @click="toFinish(value)"> }" @click="toFinish(value)">
{{ value.currentRatio === 100 ? "已完成" : types.path[value.type] ? types.toName[value.type] : "未开放" }} {{ value.status === 1 ? "已完成" : types.path[value.type] ? types.toName[value.type] : "未开放" }}
</div> </div>
<!-- <div :style="{ display: value.status === 1 ? 'block' : 'none' }">--> <!-- <div :style="{ display: value.status === 1 ? 'block' : 'none' }">-->
<!-- <div--> <!-- <div-->
@@ -203,26 +190,26 @@
<div style="width: 291px"> <div style="width: 291px">
<el-progress :percentage="parseInt(data.currentChapterCnt / data.totalChapterCnt * 100)" <el-progress :percentage="parseInt(data.currentChapterCnt / data.totalChapterCnt * 100)"
:show-text="false" :stroke-width="8" :color=" :show-text="false" :stroke-width="8" :color="
{ {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[(parseInt(data.currentChapterCnt / data.totalChapterCnt) * 100) / 20] }[(parseInt(data.currentChapterCnt / data.totalChapterCnt) * 100) / 20]
" /> " />
</div> </div>
<div style="font-size: 14px; font-weight: 500; margin-left: 10px" :style="{ <div style="font-size: 14px; font-weight: 500; margin-left: 10px" :style="{
color: { color: {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt((data.currentChapterCnt / data.totalChapterCnt * 100) / 20)], }[parseInt((data.currentChapterCnt / data.totalChapterCnt * 100) / 20)],
}"> }">
{{ parseInt(data.currentChapterCnt / data.totalChapterCnt * 100) }}% {{ parseInt(data.currentChapterCnt / data.totalChapterCnt * 100) }}%
</div> </div>
</div> </div>
@@ -235,15 +222,15 @@
<div style="width: 291px"> <div style="width: 291px">
<el-progress :percentage="parseInt(data.currentReqCnt / data.totalReqCnt * 100)" :show-text="false" <el-progress :percentage="parseInt(data.currentReqCnt / data.totalReqCnt * 100)" :show-text="false"
:stroke-width="8" :color=" :stroke-width="8" :color="
{ {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt((data.currentReqCnt / data.totalReqCnt * 100) / 20)] }[parseInt((data.currentReqCnt / data.totalReqCnt * 100) / 20)]
" /> " />
</div> </div>
<div style=" <div style="
font-size: 14px; font-size: 14px;
@@ -251,15 +238,15 @@
color: #277aff; color: #277aff;
margin-left: 10px; margin-left: 10px;
" :style="{ " :style="{
color: { color: {
0: 'rgba(238, 112, 108, 1)', 0: 'rgba(238, 112, 108, 1)',
1: 'rgba(255, 151, 38, 1)', 1: 'rgba(255, 151, 38, 1)',
2: 'rgba(39, 122, 255, 1)', 2: 'rgba(39, 122, 255, 1)',
3: 'rgba(59, 94, 251, 1)', 3: 'rgba(59, 94, 251, 1)',
4: 'rgba(57, 219, 183, 1)', 4: 'rgba(57, 219, 183, 1)',
5: 'rgba(57, 219, 183, 1)', 5: 'rgba(57, 219, 183, 1)',
}[parseInt((data.currentReqCnt / data.totalReqCnt * 100) / 20)], }[parseInt((data.currentReqCnt / data.totalReqCnt * 100) / 20)],
}"> }">
{{ parseInt(data.currentReqCnt / data.totalReqCnt * 100) }}% {{ parseInt(data.currentReqCnt / data.totalReqCnt * 100) }}%
</div> </div>
</div> </div>
@@ -356,7 +343,7 @@ const types = ref({
6: "/livebroadcast", 6: "/livebroadcast",
7: ({ courseId }) => 7: ({ courseId }) =>
request(LINK_DETAILS(courseId), {}).then(({ data: { linkAddress } }) => request(LINK_DETAILS(courseId), {}).then(({ data: { linkAddress } }) =>
window.open(linkAddress) window.open(linkAddress, '_top')
), //外联 ), //外联
8: "/discusspage", 8: "/discusspage",
9: "/moreactive", 9: "/moreactive",
@@ -365,7 +352,7 @@ const types = ref({
(evaType == 0 (evaType == 0
? import.meta.env.VITE_BOE_TEST_DETAIL_URL ? import.meta.env.VITE_BOE_TEST_DETAIL_URL
: import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL) + targetId : import.meta.env.VITE_BOE_TEST_OUT_DETAIL_URL) + targetId
), //测评 ,'_top'), //测评
11: "/surveydetail", 11: "/surveydetail",
12: "/ballotpage", 12: "/ballotpage",
13: "/projectdetails", 13: "/projectdetails",
@@ -446,7 +433,7 @@ function toFinish(d) {
} }
} }
if (d.type === 3 || d.type === 7) { if (d.type === 3 || d.type === 7) {
d.status || request(STUDY_RECORD, { d.status || request(STUDY_RECORD, {
studentId: userInfo.value.id, studentId: userInfo.value.id,
targetId: data.value.routerId, targetId: data.value.routerId,
logo: 1, logo: 1,
@@ -457,17 +444,15 @@ function toFinish(d) {
if (typeof types.value.path[d.type] === "string") { if (typeof types.value.path[d.type] === "string") {
types.value.path[d.type] && types.value.path[d.type] &&
types.value.path[d.type].startsWith("http") && types.value.path[d.type].startsWith("http") &&
window.open(types.value.path[d.type] + d.targetId); window.open(types.value.path[d.type] + d.targetId,'_top');
types.value.path[d.type] && types.value.path[d.type] &&
types.value.path[d.type].startsWith("/") && types.value.path[d.type].startsWith("/") &&
router.push({ router.push({
path: types.value.path[d.type], path: types.value.path[d.type],
query: { query: {
id: d.routerTaskId, id: d.routerTaskId,
// id: routerId,
type: 1, type: 1,
taskId: routerId, infoId: routerId,
taskIds: routerId,
courseId: d.courseId, courseId: d.courseId,
pName: data.value.name, pName: data.value.name,
sName: data.value.currentStageName, sName: data.value.currentStageName,
@@ -508,6 +493,7 @@ function whiteTypes(type) {
margin-top: 24px; margin-top: 24px;
display: flex; display: flex;
z-index: 2; z-index: 2;
.detailL { .detailL {
flex: 1; flex: 1;
margin-right: 20px; margin-right: 20px;

View File

@@ -46,8 +46,8 @@
<div class="question" v-for=" <div class="question" v-for="
(value, index) in formateArr([data.assessmentEssayQuestionDtoList, data.assessmentMultipleChoiceDtoList, data.assessmentScoringQuestionDtoList, data.assessmentSingleChoiceDtoList]).sort((a, b) => { (value, index) in formateArr([data.assessmentEssayQuestionDtoList, data.assessmentMultipleChoiceDtoList, data.assessmentScoringQuestionDtoList, data.assessmentSingleChoiceDtoList]).sort((a, b) => {
return a[0].orderNumber - b[0].orderNumber return a[0].orderNumber - b[0].orderNumber
}) " :key="index" :style="{ 'margin-top': index === 0 ? '57px' : '41px' }"> }) " :key="index" :style="{ 'margin-top': index === 0 ? '57px' : '41px' }">
<div v-if="value[0].questionType == '4'"> <div v-if="value[0].questionType == '4'">
<div class="question" v-for="(value, index) in data.assessmentScoringQuestionDtoList" :key="index" <div class="question" v-for="(value, index) in data.assessmentScoringQuestionDtoList" :key="index"
:style="{ 'margin-top': index === 0 ? '57px' : '41px' }"> :style="{ 'margin-top': index === 0 ? '57px' : '41px' }">
@@ -56,9 +56,9 @@
<div class="answerL">完全没用</div> <div class="answerL">完全没用</div>
<div class="answerC"> <div class="answerC">
<div class="answerCitem" v-for="(item, key) in Array.from( <div class="answerCitem" v-for="(item, key) in Array.from(
{ length: value.assessmentMaxScore }, { length: value.assessmentMaxScore },
(k, i) => i (k, i) => i
)" :key="key" :style="{ )" :key="key" :style="{
'margin-left': key === 0 ? '15px' : '10px', 'margin-left': key === 0 ? '15px' : '10px',
background: background:
value.selectAnswer === item value.selectAnswer === item
@@ -86,17 +86,17 @@
<div v-else-if="value[0].questionType == '1'"> <div v-else-if="value[0].questionType == '1'">
<div class="question" style="margin-top: 41px" v-if=" <div class="question" style="margin-top: 41px" v-if="
data.assessmentSingleChoiceDtoList && data.assessmentSingleChoiceDtoList &&
data.assessmentSingleChoiceDtoList.length data.assessmentSingleChoiceDtoList.length
"> ">
<div class="text"> <div class="text">
{{ data.assessmentSingleChoiceDtoList[0]?.singleStemName }} {{ data.assessmentSingleChoiceDtoList[0]?.singleStemName }}
</div> </div>
<div v-for="(value, index) in data.assessmentSingleChoiceDtoList" :key="index" <div v-for="(value, index) in data.assessmentSingleChoiceDtoList" :key="index"
style="display: flex; align-items: center" :style="{ style="display: flex; align-items: center" :style="{
'margin-top': index === 0 ? '29px' : '22px', 'margin-top': index === 0 ? '29px' : '22px',
cursor: 'pointer', cursor: 'pointer',
}" @click=" }" @click="
() => { () => {
if (data.isSubmit) { if (data.isSubmit) {
return; return;
@@ -115,17 +115,17 @@
<div v-else-if="value[0].questionType == '2'"> <div v-else-if="value[0].questionType == '2'">
<div class="question" style="margin-top: 41px" v-if=" <div class="question" style="margin-top: 41px" v-if="
data.assessmentMultipleChoiceDtoList && data.assessmentMultipleChoiceDtoList &&
data.assessmentMultipleChoiceDtoList.length data.assessmentMultipleChoiceDtoList.length
"> ">
<div class="text"> <div class="text">
{{ data.assessmentMultipleChoiceDtoList[0]?.multipleStemName }} {{ data.assessmentMultipleChoiceDtoList[0]?.multipleStemName }}
</div> </div>
<div v-for="(value, index) in data.assessmentMultipleChoiceDtoList" :key="index" <div v-for="(value, index) in data.assessmentMultipleChoiceDtoList" :key="index"
style="display: flex; align-items: center" :style="{ style="display: flex; align-items: center" :style="{
'margin-top': index === 0 ? '29px' : '22px', 'margin-top': index === 0 ? '29px' : '22px',
cursor: 'pointer', cursor: 'pointer',
}" @click=" }" @click="
() => { () => {
if (data.isSubmit) { if (data.isSubmit) {
return; return;
@@ -292,11 +292,11 @@
</div> --> </div> -->
<div style="display: flex; justify-content: center" v-if=" <div style="display: flex; justify-content: center" v-if="
data.assessmentEssayQuestionDtoList?.length || data.assessmentEssayQuestionDtoList?.length ||
data.assessmentMultipleChoiceDtoList?.length || data.assessmentMultipleChoiceDtoList?.length ||
data.assessmentSingleChoiceDtoList?.length || data.assessmentSingleChoiceDtoList?.length ||
data.assessmentScoringQuestionDtoList?.length data.assessmentScoringQuestionDtoList?.length
"> ">
<div class="submit" @click="submit" :style="{ background: data.isSubmit ? '#999' : '#2478ff' }"> <div class="submit" @click="submit" :style="{ background: data.isSubmit ? '#999' : '#2478ff' }">
提交 提交
</div> </div>
@@ -334,7 +334,7 @@ import { ElMessage } from "element-plus";
import { ref } from "vue"; import { ref } from "vue";
const { const {
query: { courseId, id: taskId, taskIds, type, pName, sName, chapterOrStageId }, query: { courseId, id: taskId, infoId, type, pName, sName, chapterOrStageId },
} = useRoute(); } = useRoute();
const router = useRouter(); const router = useRouter();
const returnclick = () => { const returnclick = () => {
@@ -353,8 +353,8 @@ function formateArr(arr1) {
return newarr return newarr
} }
const { data } = useRequest(ASSESSMENT_QUERY(courseId), { id: courseId, type, chapterOrStageId, targetId: taskIds ? taskIds : 0 }); const { data } = useRequest(ASSESSMENT_QUERY(courseId), { id: courseId, type, chapterOrStageId, targetId: infoId ? infoId : 0 });
console.log('我是查询评估的参数', { id: courseId, type, chapterOrStageId, targetId: taskIds ? taskIds : 0 }) console.log('我是查询评估的参数', { id: courseId, type, chapterOrStageId, targetId: infoId ? infoId : 0 })
console.log('我是需要排序得题目', data) console.log('我是需要排序得题目', data)
function goHome() { function goHome() {
@@ -369,10 +369,10 @@ function submit() {
if (1 > 0) { if (1 > 0) {
console.log(data) console.log(data)
console.log('我是提交的数据', { console.log('我是提交的数据', {
targetId: taskId ? taskId : taskIds ? taskIds : 0, // 项目、路径图或开课的Id targetId: infoId ? infoId : 0, // 项目、路径图或开课的Id
chapterOrStageId: chapterOrStageId ? chapterOrStageId : 0, // 关卡或者阶段Id 关卡Id不允许为空 chapterOrStageId: chapterOrStageId ? chapterOrStageId : 0, // 关卡或者阶段Id 关卡Id不允许为空
assessmentId: courseId, assessmentId: courseId,
taskId: taskId ? taskId : taskIds ? taskIds : 0, taskId: taskId ? taskId : 0,
type, type,
result: JSON.stringify(data.value), result: JSON.stringify(data.value),
}) })
@@ -424,10 +424,10 @@ function submit() {
data.value.isSubmit = !data.value.isSubmit; data.value.isSubmit = !data.value.isSubmit;
request(ASSESSMENT_SUBMIT, { request(ASSESSMENT_SUBMIT, {
targetId: taskIds ? taskIds : 0, // 项目、路径图或开课的Id targetId: infoId ? infoId : 0, // 项目、路径图或开课的Id
chapterOrStageId: chapterOrStageId ? chapterOrStageId : 0, // 关卡或者阶段Id 关卡Id不允许为空 chapterOrStageId: chapterOrStageId ? chapterOrStageId : 0, // 关卡或者阶段Id 关卡Id不允许为空
assessmentId: courseId, assessmentId: courseId,
taskId: taskIds ? taskIds : 0, taskId: taskId ? taskId : 0,
type, type,
result: JSON.stringify(data.value), result: JSON.stringify(data.value),
}).then(() => { }).then(() => {