feat:项目任务大纲列表渲染接口

This commit is contained in:
dongwug
2022-11-08 11:58:50 +08:00
parent 9ea1cf24e3
commit 7b52d58288
2 changed files with 204 additions and 166 deletions

View File

@@ -42,7 +42,7 @@ import qs from 'qs';
// 接口-请求 // 接口-请求
//基础票数上传接口 //基础票数上传接口
// export const baseVoteupload = (obj) => http.post('/vote/baseVoteupload', obj) export const baseVoteupload = (obj) => http.post('/vote/baseVoteupload', obj)
//创建题干信息接口 //创建题干信息接口
export const createOptionMessage = (obj) => http.post('/vote/createOptionMessage', obj) export const createOptionMessage = (obj) => http.post('/vote/createOptionMessage', obj)
@@ -53,6 +53,12 @@ export const createVote = (obj) => http.post('/vote/createVote', obj)
//删除投票信息 //删除投票信息
export const deleteVoteMessage = (obj) => http.post('/vote/deleteVoteMessage', { params: obj }) export const deleteVoteMessage = (obj) => http.post('/vote/deleteVoteMessage', { params: obj })
//删除题干信息接口
export const deleteVoteStem = (obj) => http.post('/vote/deleteVoteStem', { params: obj })
//删除题选项息接口
export const deleteVoteStemOption = (obj) => http.post('/vote/deleteVoteStemOption', { params: obj })
//修改投票信息接口 //修改投票信息接口
export const editVote = (obj) => http.post('/vote/editVote', obj) export const editVote = (obj) => http.post('/vote/editVote', obj)

View File

@@ -259,11 +259,11 @@
<a-collapse-panel <a-collapse-panel
v-for="(value, index) in taskSyllabus" v-for="(value, index) in taskSyllabus"
:key="index" :key="index"
:header="value.text" :header="value.name"
> >
<div <div
class="course" class="course"
v-for="(item, key) in value.children" v-for="(item, key) in value.taskList"
:key="key" :key="key"
> >
<!-- :style="{width:item.course==='在线'?'28px': <!-- :style="{width:item.course==='在线'?'28px':
@@ -281,29 +281,29 @@
> >
<img <img
:src=" :src="
item.course === '在线' item.type == '1'
? require('../../assets/images/leveladd/zai.png') ? require('../../assets/images/leveladd/zai.png')
: item.course === '面授' : item.type == '2'
? require('../../assets/images/leveladd/mian.png') ? require('../../assets/images/leveladd/mian.png')
: item.course === '案例' : item.type == '3'
? require('../../assets/images/leveladd/an.png') ? require('../../assets/images/leveladd/an.png')
: item.course === '作业' : item.type == '4'
? require('../../assets/images/leveladd/zuo.png') ? require('../../assets/images/leveladd/zuo.png')
: item.course === '考试' : item.type == '5'
? require('../../assets/images/leveladd/kao.png') ? require('../../assets/images/leveladd/kao.png')
: item.course === '直播' : item.type == '6'
? require('../../assets/images/leveladd/zhi.png') ? require('../../assets/images/leveladd/zhi.png')
: item.course === '外链' : item.type == '7'
? require('../../assets/images/leveladd/wai.png') ? require('../../assets/images/leveladd/wai.png')
: item.course === '讨论' : item.type == '8'
? require('../../assets/images/leveladd/tao.png') ? require('../../assets/images/leveladd/tao.png')
: item.course === '活动' : item.type == '9'
? require('../../assets/images/leveladd/huo.png') ? require('../../assets/images/leveladd/huo.png')
: item.course === '测评' : item.type == '10'
? require('../../assets/images/leveladd/ce.png') ? require('../../assets/images/leveladd/ce.png')
: item.course === '调研' : item.type == '11'
? require('../../assets/images/leveladd/diao.png') ? require('../../assets/images/leveladd/diao.png')
: item.course === '投票' : item.type == '12'
? require('../../assets/images/leveladd/tou.png') ? require('../../assets/images/leveladd/tou.png')
: null : null
" "
@@ -311,26 +311,27 @@
</div> </div>
</div> </div>
<div> <div>
<div class="iconame">{{ item.course }}</div> <div class="iconame">{{ item.name }}</div>
<div class="icontext">{{ item.name }}</div> <div class="icontext">{{ item.name }}</div>
</div> </div>
</div> </div>
<div class="type"> <div class="type">
<div <div
:class=" :class="
item.classify == '必修' ? 'typename1' : 'typename' item.flag == true ? 'typename1' : 'typename'
" "
> >
{{ item.classify }} <!-- {{ item.classify }} -->
<span v-if="item.flag">必修</span> <span v-else>选修</span>
</div> </div>
</div> </div>
<div class="time"> <div class="time">
<div class="timetext">开始时间</div> <div class="timetext">开始时间</div>
<div class="timetext">{{ item.beginTime }}</div> <div class="timetext">{{ item.createTime }}</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progresstext"> <div class="progresstext">
{{ item.complete }}/{{ item.total }} {{ item.finishStuCnt }}/{{ item.totalStuCnt }}
</div> </div>
<div style="display: flex"> <div style="display: flex">
<a-progress <a-progress
@@ -340,7 +341,7 @@
trailColor="rgba(253, 209, 98, 0.2)" trailColor="rgba(253, 209, 98, 0.2)"
/> />
<span class="progresstext" style="margin-left: 10px" <span class="progresstext" style="margin-left: 10px"
>{{ item.percent }}%</span >{{ (item.finishStuCnt/item.totalStuCnt)*100 }}%</span
> >
</div> </div>
</div> </div>
@@ -349,7 +350,7 @@
class="operation" class="operation"
style="cursor: pointer" style="cursor: pointer"
:style="{ :style="{
display: item.course === '面授' ? 'flex' : 'none', display: item.type == '2' ? 'flex' : 'none',
}" }"
@click="showFS" @click="showFS"
> >
@@ -358,10 +359,10 @@
<div <div
class="operation" class="operation"
style="cursor: pointer" style="cursor: pointer"
@click="showAA(item.course)" @click="showAA(item.type)"
:style="{ :style="{
display: display:
item.course === '直播' || item.course === '活动' item.type == '6' || item.type == '9'
? 'flex' ? 'flex'
: 'none', : 'none',
}" }"
@@ -373,19 +374,19 @@
style="cursor: pointer" style="cursor: pointer"
:style="{ :style="{
display: display:
item.course === '直播' || item.type == '6' ||
item.course === '活动' || item.type == '9' ||
item.course === '面授' item.type == '2'
? 'flex' ? 'flex'
: 'none', : 'none',
}" }"
@click=" @click="
item.course === '面授' item.type == '2'
? showCopyModal(item.course) ? showCopyModal(item.type)
: item.course === '直播' : item.type == '6'
? showzhibModal(item.course) ? showzhibModal(item.type)
: item.course === '活动' : item.type == '9'
? showhuodModal(item.course) ? showhuodModal(item.type)
: null : null
" "
> >
@@ -395,20 +396,20 @@
class="operation" class="operation"
style="cursor: pointer; margin-right: 35px" style="cursor: pointer; margin-right: 35px"
@click=" @click="
item.course === '在线' || item.type == '1' ||
item.course === '案例' || item.type == '3' ||
item.course === '外链' || item.type == '7' ||
item.course === '讨论' || item.type == '8' ||
item.course === '直播' || item.type == '6' ||
item.course === '调研' || item.type == '11' ||
item.course === '投票' || item.type == '12' ||
item.course === '活动' item.type == '9'
? showTime(item.course, item.name) ? showTime(item.course, item.name)
: item.course === '考试' || item.course === '测评' : item.type == '5' || item.type == '10'
? showTest(item.course, item.name) ? showTest(item.course, item.name)
: item.course === '面授' : item.type == '面授'
? showFace(item.course) ? showFace(item.course)
: item.course === '作业' : item.type == '作业'
? showWork(item.course) ? showWork(item.course)
: null : null
" "
@@ -1647,7 +1648,7 @@
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs,onMounted } from "vue";
import { useRoute } from "vue-router"; import { useRoute } from "vue-router";
// import { CaretRightOutlined } from "@ant-design/icons-vue"; // import { CaretRightOutlined } from "@ant-design/icons-vue";
import TimeManage from "../../components/drawers/TimeManage"; import TimeManage from "../../components/drawers/TimeManage";
@@ -1667,6 +1668,7 @@ import ProjectScore from "../../components/drawers/ProjectScore";
import TaskImpStu from "../../components/drawers/TaskFaceIn"; import TaskImpStu from "../../components/drawers/TaskFaceIn";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import * as apitl from "../../api/index";
export default { export default {
name: "taskPage", name: "taskPage",
components: { components: {
@@ -2144,125 +2146,127 @@ export default {
//任务大纲列表 //任务大纲列表
taskSyllabus: [ taskSyllabus: [
{ // {
text: "阶段1腾飞班阶段1", // text: "阶段1腾飞班阶段1",
children: [ // children: [
{ // {
course: "在线", // course: "在线",
name: "时间管理", // name: "时间管理",
classify: "选修", // classify: "选修",
beginTime: "2022-09-10 14:03", // beginTime: "2022-09-10 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 20, //完成人数 // complete: 20, //完成人数
percent: 40, // percent: 40,
}, // },
{ // {
course: "直播", // course: "直播",
name: "管理直播间", // name: "管理直播间",
classify: "必修", // classify: "必修",
beginTime: "2022-09-12 14:03", // beginTime: "2022-09-12 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 10, //完成人数 // complete: 10, //完成人数
percent: 20, // percent: 20,
}, // },
{ // {
course: "面授", // course: "面授",
name: "管理面授课", // name: "管理面授课",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 80, //总人数 // total: 80, //总人数
complete: 0, //完成人数 // complete: 0, //完成人数
percent: 0, // percent: 0,
}, // },
{ // {
course: "活动", // course: "活动",
name: "管理活动", // name: "管理活动",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 40, //完成人数 // complete: 40, //完成人数
percent: 80, // percent: 80,
}, // },
{ // {
course: "作业", // course: "作业",
name: "管理者作业", // name: "管理者作业",
classify: "选修", // classify: "选修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 30, //完成人数 // complete: 30, //完成人数
percent: 60, // percent: 60,
}, // },
{ // {
course: "考试", // course: "考试",
name: "管理者考试", // name: "管理者考试",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 50, //完成人数 // complete: 50, //完成人数
percent: 100, // percent: 100,
}, // },
{ // {
course: "案例", // course: "案例",
name: "管理直播间", // name: "管理直播间",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 10, //完成人数 // complete: 10, //完成人数
percent: 20, // percent: 20,
}, // },
{ // {
course: "外链", // course: "外链",
name: "管理直播间", // name: "管理直播间",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 10, //完成人数 // complete: 10, //完成人数
percent: 20, // percent: 20,
}, // },
], // ],
}, // },
{ // {
text: "阶段2腾飞班阶段2", // text: "阶段2腾飞班阶段2",
children: [ // children: [
{ // {
course: "讨论", // course: "讨论",
name: "时间管理", // name: "时间管理",
classify: "选修", // classify: "选修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 20, //完成人数 // complete: 20, //完成人数
percent: 40, // percent: 40,
}, // },
{ // {
course: "测评", // course: "测评",
name: "管理直播间", // name: "管理直播间",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 10, //完成人数 // complete: 10, //完成人数
percent: 20, // percent: 20,
}, // },
{ // {
course: "调研", // course: "调研",
name: "管理直播间", // name: "管理直播间",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 10, //完成人数 // complete: 10, //完成人数
percent: 20, // percent: 20,
}, // },
{ // {
course: "投票", // course: "投票",
name: "管理直播间", // name: "管理直播间",
classify: "必修", // classify: "必修",
beginTime: "2022-09-16 14:03", // beginTime: "2022-09-16 14:03",
total: 50, //总人数 // total: 50, //总人数
complete: 10, //完成人数 // complete: 10, //完成人数
percent: 20, // percent: 20,
}, // },
], // ],
}, // },
], ],
taskSyllabusActive: 0, taskSyllabusActive: 0,
//在线管理等页面传递参数 //在线管理等页面传递参数
showTimeText: "", showTimeText: "",
@@ -2284,6 +2288,32 @@ export default {
// 输入接入 -- start -- // 输入接入 -- start --
//任务大纲渲染
const getTaskList = () => {
let objtl = {
projectId: 27,
}
apitl
.getProjectDetail(objtl)
.then((res) => {
if (res.status == 200) {
console.log('res', res)
console.log('阶段列表',res.data.data.stageList);
let leng = res.data.data.stageList.length;
if (leng > 0) {
//获取任务列表 阶段
let taskarr = res.data.data.stageList
state.taskSyllabus = taskarr
console.log( res.data.data.stageList[0].taskList[0].type,'ggg');
}
}
})
.catch((err) => {
console.log('获取任务列表失败', err)
})
};
//学员学员管理渲染 //学员学员管理渲染
const getTableDate = () => { const getTableDate = () => {
let datas = state.tabledata; let datas = state.tabledata;
@@ -2743,7 +2773,9 @@ export default {
// end -----排行榜----------------排行榜----------------------排行榜-----------排行榜---------- // end -----排行榜----------------排行榜----------------------排行榜-----------排行榜----------
onMounted(()=>{
getTaskList()
})
return { return {
...toRefs(state), ...toRefs(state),
@@ -2789,7 +2821,7 @@ export default {
tabsChange, tabsChange,
getTaskList,
rankTimeChange, rankTimeChange,
getbillboard, getbillboard,