This commit is contained in:
fooperage
2023-02-12 20:15:46 +08:00
parent dfc8d8fb72
commit 58238b986a
6 changed files with 184 additions and 153 deletions

View File

@@ -65,10 +65,11 @@ export const setConfig = (obj) => http.post("/admin/router/setConfig", obj);
//获取学员列表
export const getStudent = (obj) => http.post("/admin/router/studentList", obj);
//获取路径图详情-包含关卡及任务列表
export const getRouterDetail = (routerId) =>
export const getRouterDetail = (routerId,useTask) =>
http.get("/admin/router/detail", {
params: {
routerId: routerId,
useTask: useTask
},
});
//添加学员

View File

@@ -81,9 +81,8 @@
<script>
import { reactive, toRefs } from "vue";
import { editRoutered } from '@/api/indexLearningPath'
import { message } from "ant-design-vue";
// import { watch } from '@vue/runtime-core'
// import { editRoutered } from '@/api/indexLearningPath'
// import { message } from "ant-design-vue";
export default {
name: "UnlockMode",
props:{
@@ -91,7 +90,7 @@ export default {
type: Boolean,
default: false
},
routerInfo:{
objData:{
type: Object
}
},
@@ -116,19 +115,19 @@ export default {
checked: true,
radioSelect: 1,
formData: {
routerId:'',
organizationName:'',
organizationId:'',
name:'',
picUrl:'',
remark:'',
status:'', // 0 草稿 1 已发布 -1 已停用
attach:'',
attachSwitch:'',
enablePreview:'',
previewSetting:'',
enableStudy:'',
studySetting:'',
// routerId:'',
// organizationName:'',
// organizationId:'',
// name:'',
// picUrl:'',
// remark:'',
// status:'', // 0 草稿 1 已发布 -1 已停用
// attach:'',
// attachSwitch:'',
// enablePreview:'',
// previewSetting:'',
// enableStudy:'',
// studySetting:'',
unlockMode:'',
}
});
@@ -142,35 +141,26 @@ export default {
const saveUnlock =() =>{
editRoutered(state.formData).then(res=>{
if(res.data.code == 200){
message.success(res.data.msg)
ctx.emit("successA")
closeDrawer()
}else{
message.error(res.data.msg)
console.log(ctx,state.formData.unlockMode)
ctx.emit("saveUnlock",state.formData.unlockMode)
// editRoutered(state.formData).then(res=>{
// if(res.data.code == 200){
// message.success(res.data.msg)
// ctx.emit("successA")
// closeDrawer()
// }else{
// message.error(res.data.msg)
// }
// }).catch(e=>{
// console.log(e)
// message.error(e.data.msg)
// })
}
}).catch(e=>{
console.log(e)
message.error(e.data.msg)
})
}
// watch:{
// unlockModeVisible(val){
// if(val){
// for(let key in this.formData){
// this.formData[key] = this.routerInfo[key]
// }
// }
// }
// },
const afterVisibleChange = (bool) => {
if(bool){
for(let key in state.formData){
state.formData[key] = props.routerInfo[key]
state.formData[key] = props.objData[key]
}
if(state.formData.unlockMode === 1){
state.selectClassifyType = 1
@@ -179,6 +169,7 @@ export default {
state.radioSelect = state.formData.unlockMode
}
}
console.log("点开弹窗",state.formData,state.unlockMode)
};
const selectClassify = (e) => {
@@ -186,13 +177,11 @@ export default {
if(e.type === 1){
state.formData.unlockMode = e.type
}
// state.formData.unlockMode = e.type
};
const changeUnlockMode = (e) =>{
state.formData.unlockMode = e.target.value
console.log(e,state.formData)
}
return {

View File

@@ -1544,7 +1544,7 @@ export default {
// console.log("编辑学习路径图id", id);
//获取学习路径详情
api
.getRouterDetail(id)
.getRouterDetail(id,"draft")
.then((res) => {
if (res.data.code === 200) {
console.log("获取学习路径详情成功", res.data.data);

View File

@@ -2196,7 +2196,7 @@ export default {
});
};
const reget = () => {
GetRouterDetail(state.routerId, "N").then((res) => {
GetRouterDetail(state.routerId).then((res) => {
console.log("获取路径图详情", res);
console.log(
!!res.data.data?.chapterList.some(({ taskList }) => taskList.length)

View File

@@ -178,7 +178,7 @@
</div> -->
<!-- </div> -->
<unlock-mode ref="unlockModeModal" v-model:unlockModeVisible="unlockModeVisible"
:routerInfo="routerInfo" @successA="successA" />
:objData="routerInfo" @saveUnlock="saveUnlock" />
</div>
<div class="line"></div>
<router-link to="/leveladd">
@@ -624,8 +624,8 @@
<div class="btnText">切换模式</div>
</div> -->
<!-- </div> -->
<unlock-mode ref="unlockModeModal" v-model:unlockModeVisible="unlockModeVisible"
:routerInfo="routerInfo" @successA="successA" />
<unlock-mode ref="unlockModeModal" :unlockModeVisible="unlockModeVisible"
:objData="routerInfo" @saveUnlock="saveUnlock" />
</div>
<div class="line"></div>
<router-link to="/leveladd">
@@ -867,7 +867,7 @@ import { storage } from "../../api/storage";
import { deleteStudyTask } from "../../api/indexStudy";
import draggable from "vuedraggable";
import { editTask } from "../../api/indexTaskadd";
import { editRoutered } from '@/api/indexLearningPath'
// import { RouterEditTask } from "@/api/indexTask";
import { useRouter } from "vue-router";
import UnlockMode from "../../components/drawers/UnlockMode.vue";
@@ -1039,8 +1039,21 @@ export default {
state.updateChapterID = null;
};
const successA = () => {
const saveUnlock = (num) => {
state.routerInfo.unlockMode = num
editRoutered(state.routerInfo).then(res=>{
if(res.data.code == 200){
message.success(res.data.msg)
getDetail()
state.unlockModeVisible = false
}else{
message.error(res.data.msg)
}
}).catch(e=>{
console.log(e)
message.error(e.data.msg)
})
//
}
//新建关卡
@@ -1293,7 +1306,7 @@ export default {
};
const getDetail = () => {
console.log('调用查询')
GetRouterDetail(state.routerId, "N")
GetRouterDetail(state.routerId, "draft")
.then((res) => {
//给level赋初始值
state.level = res.data.data.chapterList;
@@ -1876,7 +1889,7 @@ export default {
closedeleteAll,
subdeleteAll,
successA
saveUnlock
};
},
};

View File

@@ -13,10 +13,11 @@
<div class="btnText">添加阶段</div>
</div>
<div class="maincon" style="background-color: #fff">
<draggable v-model="level" chosenClass="chosen" ghostClass="ghost" forceFallback="true" group="stage"
animation="500">
<draggable v-model="level" chosenClass="chosen" ghostClass="ghost" forceFallback="true"
group="stage" animation="500">
<template #item="{ element }">
<div class="items" :class="chooseStageId == element.id ? 'active' : ''" @click="changebgc(element.id)">
<div class="items" :class="chooseStageId == element.id ? 'active' : ''"
@click="changebgc(element.id)">
<div class="items1">
<div class="boxs_left">
<a-popover placement="topLeft" trigger="click">
@@ -107,13 +108,20 @@
<!-- 2022-11-30注释 后面放开 -->
<div class="select" style="margin-right:90px;">
<span>学习模式</span>
<div class="inputbox">
<input type="text" placeholder="按学习时间解锁" style="padding-left:12px;" />
<div class="bottonbox" @click="showModeVisible">
<!-- <div class="inputbox"> -->
<!-- <input type="text" placeholder="按学习时间解锁" style="padding-left:12px;" /> -->
<a-select v-model:value="unlockMode" ref="select" size="small" style="width: 150px"
disabled>
<a-select-option :value="1">自由学习模式</a-select-option>
<a-select-option :value="2">闯关模式</a-select-option>
<a-select-option :value="3">闯关模式</a-select-option>
</a-select>
<a-button type="primary" size="large" style="margin-left:10px;border-radius: 10px;" @click="showModeVisible">切换模式</a-button>
<!-- <div class="bottonbox" @click="showModeVisible">
<div class="btnText">切换模式</div>
</div>
<unlock-mode v-model:unlockModeVisible="unlockModeVisible" />
</div>
</div> -->
<unlock-mode ref="unlockModeModal" v-model:unlockModeVisible="unlockModeVisible" :objData="projectInfo" @saveUnlock="saveUnlock"/>
<!-- </div> -->
</div>
<div class="line"></div>
<!-- <img class="img2" src="../../assets/images/projectadd/keep.png" />
@@ -138,9 +146,10 @@
</div>
<!-- 添加在线侧弹窗 -->
<div>
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData" :isLevel="isLevel"
v-model:edit="edit" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:EditOnlineId="EditOnlineId" />
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData"
:isLevel="isLevel" v-model:edit="edit" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId" />
</div>
<!-- 添加在线侧弹窗 -->
<div class="lin"></div>
@@ -154,10 +163,10 @@
</div>
<!-- 添加面授侧弹窗 -->
<div>
<add-faceteach v-model:addfaceteachVisible="addfaceteachvisible" v-model:EditFaceId="EditFaceId"
v-model:edit="edit" :isLevel="isLevel" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" @changeData="updateTableData"
v-model:projectTaskId="projectTaskId" />
<add-faceteach v-model:addfaceteachVisible="addfaceteachvisible"
v-model:EditFaceId="EditFaceId" v-model:edit="edit" :isLevel="isLevel"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
@changeData="updateTableData" v-model:projectTaskId="projectTaskId" />
</div>
<!-- 添加面授侧弹窗 -->
<div class="lin"></div>
@@ -171,9 +180,10 @@
</div>
<!-- 添加案例侧弹窗 -->
<div>
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" :isLevel="isLevel"
v-model:edit="edit" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:EditCaseId="EditCaseId" />
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData"
:isLevel="isLevel" v-model:edit="edit" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId" />
</div>
<!-- 添加案例侧弹窗 -->
<div class="lin"></div>
@@ -204,9 +214,10 @@
</div>
<!-- 添加考试侧弹窗 -->
<div>
<add-test v-model:addtestVisible="addtestvisible" @changeData="updateTableData" :isLevel="isLevel"
v-model:edit="edit" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:EditTestId="EditTestId" v-model:projectTaskId="projectTaskId" />
<add-test v-model:addtestVisible="addtestvisible" @changeData="updateTableData"
:isLevel="isLevel" v-model:edit="edit" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:EditTestId="EditTestId"
v-model:projectTaskId="projectTaskId" />
</div>
<!-- 添加考试侧弹窗 -->
<div class="lin"></div>
@@ -220,8 +231,9 @@
</div>
<!-- 添加直播侧弹窗 -->
<div>
<add-live v-model:addliveVisible="addlivevisible" :isLevel="isLevel" @changeData="updateTableData"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:edit="edit"
<add-live v-model:addliveVisible="addlivevisible" :isLevel="isLevel"
@changeData="updateTableData" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:edit="edit"
v-model:EditLiveId="EditLiveId" v-model:projectTaskId="projectTaskId" />
</div>
<!-- 添加直播侧弹窗 -->
@@ -236,9 +248,10 @@
</div>
<!-- 添加外链侧弹窗 -->
<div>
<add-ref v-model:addrefVisible="addrefvisible" :isLevel="isLevel" @changeData="updateTableData"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:edit="edit"
v-model:EditRefId="EditRefId" v-model:projectTaskId="projectTaskId" />
<add-ref v-model:addrefVisible="addrefvisible" :isLevel="isLevel"
@changeData="updateTableData" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:edit="edit" v-model:EditRefId="EditRefId"
v-model:projectTaskId="projectTaskId" />
</div>
<!-- 添加外链侧弹窗 -->
<div class="lin"></div>
@@ -253,16 +266,10 @@
</div>
<div>
<add-discuss
v-model:adddiscussVisible="adddiscussvisible"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId"
v-model:projectTaskId="projectTaskId"
@changeData="updateTableData"
/>
<add-discuss v-model:adddiscussVisible="adddiscussvisible" v-model:edit="edit"
:isLevel="isLevel" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId" v-model:projectTaskId="projectTaskId"
@changeData="updateTableData" />
</div>
<div class="lin"></div>
@@ -278,8 +285,9 @@
<!-- 添加活动侧弹窗 -->
<div>
<add-active v-model:addactiveVisible="addactivevisible" v-model:projectId="projectId"
v-model:EditActiveId="EditActiveId" v-model:projectTaskId="projectTaskId" v-model:edit="edit"
:isLevel="isLevel" v-model:chooseStageId="chooseStageId" @changeData="updateTableData" />
v-model:EditActiveId="EditActiveId" v-model:projectTaskId="projectTaskId"
v-model:edit="edit" :isLevel="isLevel" v-model:chooseStageId="chooseStageId"
@changeData="updateTableData" />
</div>
<!-- 添加活动侧弹窗 -->
<div class="lin"></div>
@@ -293,9 +301,10 @@
</div>
<!-- 添加测评侧弹窗 -->
<div>
<add-eval v-model:addevalVisible="addevalvisible" @changeData="updateTableData" v-model:edit="edit"
:isLevel="isLevel" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:EditEvalId="EditEvalId" />
<add-eval v-model:addevalVisible="addevalvisible" @changeData="updateTableData"
v-model:edit="edit" :isLevel="isLevel" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditEvalId="EditEvalId" />
</div>
<!-- 添加测评侧弹窗 -->
<div class="lin"></div>
@@ -309,9 +318,10 @@
</div>
<!-- 添加评估侧弹窗 -->
<div>
<add-invist v-model:addinvistVisible="addinvistvisible" @changeData="updateTableData" v-model:edit="edit"
:isLevel="isLevel" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:EditInvistId="EditInvistId" />
<add-invist v-model:addinvistVisible="addinvistvisible" @changeData="updateTableData"
v-model:edit="edit" :isLevel="isLevel" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditInvistId="EditInvistId" />
</div>
<div class="lin"></div>
@@ -326,19 +336,11 @@
<div class="text">投票</div>
<div>
<add-vote
v-model:addvoteVisible="addvotevisible"
@changeData="updateTableData"
@getData="changeVData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditVoteId="EditVoteId"
v-model:voteId="voteId"
v-model:ballotId="ballotId"
/>
<add-vote v-model:addvoteVisible="addvotevisible" @changeData="updateTableData"
@getData="changeVData" v-model:edit="edit" :isLevel="isLevel"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:EditVoteId="EditVoteId"
v-model:voteId="voteId" v-model:ballotId="ballotId" />
</div>
</div>
@@ -432,8 +434,8 @@
操作
</div>
</div>
<draggable v-model="tableData" chosenClass="chosen" ghostClass="ghost" forceFallback="true" group="task"
animation="500" @start="onStart" @end="onEnd">
<draggable v-model="tableData" chosenClass="chosen" ghostClass="ghost"
forceFallback="true" group="task" animation="500" @start="onStart" @end="onEnd">
<template #item="{ element }">
<div style="
height: 50px;
@@ -460,7 +462,8 @@
position: absolute;
left: -25px;
"></div>
<a-checkbox :id="element.id" v-model:checked="element.checked" @change="changeRow">
<a-checkbox :id="element.id" v-model:checked="element.checked"
@change="changeRow">
</a-checkbox>
<div style="margin-top: 2px; margin-left: 8px">
{{ element.lei }}
@@ -479,8 +482,9 @@
<div style="width: 120px; text-align: center">
<div class="opat">
<div class="opacationt clearfix">
<a-switch style="margin-left: -50px; margin-top: 3px" v-model:checked="element.checked1"
size="small" active-color="red" @click="changeCourseType(element)" />
<a-switch style="margin-left: -50px; margin-top: 3px"
v-model:checked="element.checked1" size="small"
active-color="red" @click="changeCourseType(element)" />
<div class="showt clearfix">
<div class="bi" :style="{
'z-index': element.checked1 ? 999 : 998,
@@ -496,7 +500,8 @@
{{
element.cretime
?
element.type==1? Math.ceil(Number(element.cretime)/60) + "分钟" : element.cretime + "分钟"
element.type == 1 ? Math.ceil(Number(element.cretime) / 60) + "分钟" :
element.cretime + "分钟"
: "-"
}}
</div>
@@ -507,7 +512,7 @@
">
<div class="opa">
<div class="opacation">
<span v-if="element.type!==5" style="
<span v-if="element.type !== 5" style="
color: #4ea6ff;
margin-right: 25px;
cursor: pointer;
@@ -520,15 +525,14 @@
">
编辑
</span>
<span
v-else
style="
<span v-else style="
color: #4ea6ff;
margin-right: 55px;
cursor: pointer;
">
</span>
<span style="color: #4ea6ff; cursor: pointer" @click="showDelete(element.id)">
<span style="color: #4ea6ff; cursor: pointer"
@click="showDelete(element.id)">
删除
</span>
</div>
@@ -661,7 +665,8 @@
</a-modal>
</div>
<!-- 确认添加阶段弹窗 -->
<a-modal v-model:visible="confirmModal" :footer="null" :closable="cC" wrapClassName="ConfirmModal" centered="true">
<a-modal v-model:visible="confirmModal" :footer="null" :closable="cC" wrapClassName="ConfirmModal"
centered="true">
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
@@ -685,7 +690,8 @@
</div>
</a-modal>
<!-- 确认取消阶段弹窗 -->
<a-modal v-model:visible="cancelModal" :footer="null" :closable="cC" wrapClassName="ConfirmModal" centered="true">
<a-modal v-model:visible="cancelModal" :footer="null" :closable="cC" wrapClassName="ConfirmModal"
centered="true">
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
@@ -709,7 +715,8 @@
</div>
</a-modal>
<!-- 确认删除任务弹窗 -->
<a-modal v-model:visible="deleteModal" :footer="null" :closable="cC" wrapClassName="ConfirmModal" centered="true">
<a-modal v-model:visible="deleteModal" :footer="null" :closable="cC" wrapClassName="ConfirmModal"
centered="true">
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
@@ -797,7 +804,8 @@
<div class="close_exit" @click="closeDeleteStage"></div>
</div>
<div class="body">
<span style="width:320px;display:flex;justify-content:center;align-items:center;">{{ level.length == 1 ?
<span style="width:320px;display:flex;justify-content:center;align-items:center;">{{
level.length == 1 ?
"当前为最后一个阶段,删除后任务将被移出,为无阶段模式,确认删除阶段吗?" : "您确定要删除此阶段"
}}</span>
</div>
@@ -896,6 +904,8 @@ export default {
//阶段数据
level: [],
stageList: [],
projectInfo: null, // 项目信息
unlockMode: 1, // 学习模式
projectTitle: null,
picUrl: null,
@@ -1161,6 +1171,21 @@ export default {
return columns;
};
const saveUnlock = (num)=>{
console.log('保存操作',num)
state.projectInfo.unlockMode = num
api.editProj(state.projectInfo).then(res=>{
if(res.data.code === 200){
message.success(res.data.msg)
getTask()
}else{
message.error(res.data.msg)
}
}).catch(e=>{
message.error(e.data.msg)
})
}
//获取任务列表
const getTask = async () => {
let obj = {
@@ -1172,6 +1197,8 @@ export default {
if (state.onceChoice) {
let data = res.data.data.stageList;
state.onceChoice = false;
state.projectInfo = res.data.data.projectInfo
state.unlockMode = res.data.data.projectInfo.unlockMode
let arraynew = []
for (let i = 0; i < data.length; i++) {
if (data[i].stageId !== '0') {
@@ -1754,6 +1781,7 @@ export default {
showModal1,
closeCancel,
showDelete,
saveUnlock,
closeDelete,
showChangeModal,
closeChangeModal,