feat:合并

This commit is contained in:
lixg
2023-02-13 11:12:40 +08:00
23 changed files with 399 additions and 583 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 getStudent = (obj) => http.post("/admin/router/studentList", obj);
//获取路径图详情-包含关卡及任务列表 //获取路径图详情-包含关卡及任务列表
export const getRouterDetail = (routerId) => export const getRouterDetail = (routerId,useTask) =>
http.get("/admin/router/detail", { http.get("/admin/router/detail", {
params: { params: {
routerId: routerId, routerId: routerId,
useTask: useTask
}, },
}); });
//添加学员 //添加学员

View File

@@ -397,7 +397,7 @@ export default {
} }
await RouterEditTask({ await RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.activityId, courseId: res.data.data.id,
duration: res.data.data.activityDuration, duration: res.data.data.activityDuration,
name: res.data.data.activityName, name: res.data.data.activityName,
routerId: props.routerId, routerId: props.routerId,
@@ -413,7 +413,7 @@ export default {
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
await apiTask await apiTask
.addTask({ .addTask({
courseId: res.data.data.activityId, courseId: res.data.data.id,
duration: res.data.data.activityDuration, duration: res.data.data.activityDuration,
name: res.data.data.activityName, name: res.data.data.activityName,
projectId: props.projectId, projectId: props.projectId,
@@ -430,7 +430,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
await apiTask await apiTask
.addTempTask({ .addTempTask({
courseId: res.data.data.activityId, courseId: res.data.data.id,
duration: res.data.data.activityDuration, duration: res.data.data.activityDuration,
name: res.data.data.activityName, name: res.data.data.activityName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,

View File

@@ -178,8 +178,7 @@ export default {
//更新讨论信息 //更新讨论信息
state.inputV1 = res.data.data.discussName; state.inputV1 = res.data.data.discussName;
state.textV1 = res.data.data.discussExplain; state.textV1 = res.data.data.discussExplain;
state.checkedC1 = state.checkedC1 = res.data.data.discussSettings == "true";
res.data.data.discussSettings == "true" ? true : false;
}) })
.catch(() => { .catch(() => {
}); });
@@ -199,7 +198,7 @@ export default {
} }
await RouterEditTask({ await RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.discussId, courseId: res.data.data.id,
name: res.data.data.discussName, name: res.data.data.discussName,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
@@ -214,7 +213,7 @@ export default {
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
await apiTask await apiTask
.addTask({ .addTask({
courseId: res.data.data.discussId, courseId: res.data.data.id,
name: res.data.data.discussName, name: res.data.data.discussName,
projectId: props.projectId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -230,7 +229,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
console.log(""); console.log("");
addTempTask({ addTempTask({
courseId: res.data.data.discussId, courseId: res.data.data.id,
name: res.data.data.discussName, name: res.data.data.discussName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,

View File

@@ -189,7 +189,7 @@ export default {
} }
await RouterEditTask({ await RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: Number(value.evaluationId), courseId: Number(value.id),
name: value.evaluationName, name: value.evaluationName,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
@@ -206,7 +206,7 @@ export default {
.addTask({ .addTask({
duration: 0, duration: 0,
flag: true, flag: true,
courseId: Number(value.evaluationId), courseId: Number(value.id),
name: value.evaluationName, name: value.evaluationName,
projectId: props.projectId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -223,7 +223,7 @@ export default {
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
await addTempTask({ await addTempTask({
courseId: Number(value.evaluationId), courseId: Number(value.id),
name: value.evaluationName, name: value.evaluationName,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")), projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -331,7 +331,7 @@ export default {
let obj = { let obj = {
evaluationName: state.inputV1, evaluationName: state.inputV1,
evaluationEndTime: state.time ? dayjs(state.time[1]).format("YYYY-MM-DD HH:mm") : "", evaluationEndTime: state.time ? dayjs(state.time[1]).format("YYYY-MM-DD HH:mm") : "",
evaluationId: props.evaluationId, evaluationId: props.id,
evaluationStartTime: state.time ? dayjs(state.time[0]).format("YYYY-MM-DD HH:mm") : "", evaluationStartTime: state.time ? dayjs(state.time[0]).format("YYYY-MM-DD HH:mm") : "",
evaluationTypeId: state.evaluationTypeId, evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName, evaluationTypeName: state.evaluationTypeName,

View File

@@ -617,7 +617,7 @@ export default {
result.completeType.split(",")[0] == "1" ? true : false; result.completeType.split(",")[0] == "1" ? true : false;
state.completeLeave = state.completeLeave =
result.completeType.split(",")[1] == "1" ? true : false; result.completeType.split(",")[1] == "1" ? true : false;
state.chooseCourse = result.offcourseId; state.chooseCourse = result.id;
state.innerPersion = state.innerPersion =
result.projectMember.split(",")[0] == "1" ? true : false; result.projectMember.split(",")[0] == "1" ? true : false;
state.outPersion = state.outPersion =
@@ -627,8 +627,8 @@ export default {
state.assessmentId = result.evaluateId; state.assessmentId = result.evaluateId;
state.needEval = result.evalFlag == 1? true:false; state.needEval = result.evalFlag == 1? true:false;
console.log("==state.needEval ==",state.needEval ); console.log("==state.needEval ==",state.needEval );
if(result.offcourseId){ if(result.id){
detail({offcourseId:result.offcourseId}).then((res)=>{ detail({offcourseId:result.id}).then((res)=>{
state.chooseCourseName =res.data.data.name; state.chooseCourseName =res.data.data.name;
console.log(" state.chooseCourseName", state.chooseCourseName); console.log(" state.chooseCourseName", state.chooseCourseName);

View File

@@ -342,7 +342,7 @@ export default {
// 新增编辑或新增项目任务 // 新增编辑或新增项目任务
const updateTask = (res) => { const updateTask = (res) => {
if (props.faceLevel) { if (props.faceLevel) {
state.EditWorkId = res.data.data.workId; state.EditWorkId = res.data.data.id;
} else { } else {
if (props.isLevel == 1) { if (props.isLevel == 1) {
if (!props.isactive) { if (!props.isactive) {
@@ -351,7 +351,7 @@ export default {
} }
let editObj1 = { let editObj1 = {
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.workId, courseId: res.data.data.id,
name: res.data.data.workName, name: res.data.data.workName,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
@@ -371,7 +371,7 @@ export default {
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
let editObj = { let editObj = {
courseId: res.data.data.workId, courseId: res.data.data.id,
name: res.data.data.workName, name: res.data.data.workName,
projectId: props.projectId > 0 ? props.projectId : 0, projectId: props.projectId > 0 ? props.projectId : 0,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -394,7 +394,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
console.log("projectTemplateId,===", props.projectTemplateId); console.log("projectTemplateId,===", props.projectTemplateId);
addTempTask({ addTempTask({
courseId: res.data.data.workId, courseId: res.data.data.id,
name: res.data.data.workName, name: res.data.data.workName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,

View File

@@ -615,7 +615,7 @@ export default {
} }
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.liveId, courseId: res.data.data.id,
duration: res.data.data.liveDuration, duration: res.data.data.liveDuration,
name: res.data.data.liveName, name: res.data.data.liveName,
routerId: props.routerId, routerId: props.routerId,
@@ -632,7 +632,7 @@ export default {
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
apiTask apiTask
.addTask({ .addTask({
courseId: res.data.data.liveId, courseId: res.data.data.id,
duration: res.data.data.liveDuration, duration: res.data.data.liveDuration,
name: res.data.data.liveName, name: res.data.data.liveName,
projectId: props.projectId, projectId: props.projectId,
@@ -650,7 +650,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
console.log("props.projectTemplateId", props.projectTemplateId); console.log("props.projectTemplateId", props.projectTemplateId);
addTempTask({ addTempTask({
courseId: res.data.data.liveId, courseId: res.data.data.id,
duration: res.data.data.liveDuration, duration: res.data.data.liveDuration,
name: res.data.data.liveName, name: res.data.data.liveName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
@@ -736,7 +736,7 @@ export default {
liveExplain: state.textV1, liveExplain: state.textV1,
liveNotice: state.liveNotice, liveNotice: state.liveNotice,
liveFlag: "", liveFlag: "",
liveId: props.edit ? Number(props.EditLiveId) : 0, id: props.edit ? Number(props.EditLiveId) : 0,
liveLink: state.inputV4, liveLink: state.inputV4,
liveName: state.inputV1, liveName: state.inputV1,
livePlayback: state.switchC1 ? "1" : "0", livePlayback: state.switchC1 ? "1" : "0",

View File

@@ -189,7 +189,7 @@ export default {
} }
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.linkId, courseId: res.data.data.id,
name: res.data.data.linkName, name: res.data.data.linkName,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
@@ -207,7 +207,7 @@ export default {
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
apiTask apiTask
.addTask({ .addTask({
courseId: res.data.data.linkId, courseId: res.data.data.id,
name: res.data.data.linkName, name: res.data.data.linkName,
projectId: props.projectId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -225,7 +225,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
addTempTask({ addTempTask({
courseId: res.data.data.linkId, courseId: res.data.data.id,
name: res.data.data.linkName, name: res.data.data.linkName,
projectTemplateId:props.projectTemplateId, projectTemplateId:props.projectTemplateId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -265,7 +265,7 @@ export default {
let obj = { let obj = {
linkAddress: state.inputV2, linkAddress: state.inputV2,
linkDescription: state.textV1, linkDescription: state.textV1,
linkId: props.edit ? props.EditRefId : 0, id: props.edit ? props.EditRefId : 0,
linkName: state.inputV1, linkName: state.inputV1,
}; };
if (props.edit) { if (props.edit) {

View File

@@ -773,9 +773,9 @@ export default {
}; };
// 系统考试 // 系统考试
const updateTask = (res) => { const updateTask = (res) => {
state.EditTestId = res.data.data.examinationId; state.EditTestId = res.data.data.id;
if (props.faceLevel) { if (props.faceLevel) {
state.EditTestId = res.data.data.examinationId; state.EditTestId = res.data.data.id;
state.paperName = ""; state.paperName = "";
closeDrawer(); closeDrawer();
} else { } else {
@@ -788,7 +788,7 @@ export default {
examType: 1, examType: 1,
chapterId: props.isactive, chapterId: props.isactive,
duration: res.data.data.examinationDuration, duration: res.data.data.examinationDuration,
courseId: res.data.data.examinationId, courseId: res.data.data.id,
name: res.data.data.examinationName, name: res.data.data.examinationName,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
@@ -808,7 +808,7 @@ export default {
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
let editObj = { let editObj = {
examType: 1, examType: 1,
courseId: res.data.data.examinationId, courseId: res.data.data.id,
duration: res.data.data.examinationDuration, duration: res.data.data.examinationDuration,
name: res.data.data.examinationName, name: res.data.data.examinationName,
projectId: props.projectId, projectId: props.projectId,
@@ -830,7 +830,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
addTempTask({ addTempTask({
examType: 1, examType: 1,
courseId: res.data.data.examinationId, courseId: res.data.data.id,
duration: res.data.data.examinationDuration, duration: res.data.data.examinationDuration,
name: res.data.data.examinationName, name: res.data.data.examinationName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
@@ -852,9 +852,9 @@ export default {
}; };
// 外部考试 // 外部考试
const updateTask1 = (res) => { const updateTask1 = (res) => {
state.EditTestId = res.data.data.examinationId; state.EditTestId = res.data.data.id;
if (props.faceLevel) { if (props.faceLevel) {
state.EditTestId = res.data.data.examinationId; state.EditTestId = res.data.data.id;
state.paperName = ""; state.paperName = "";
closeDrawer(); closeDrawer();
} else { } else {
@@ -866,7 +866,7 @@ export default {
let editObj1 = { let editObj1 = {
examType: 2, examType: 2,
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.examinationId, courseId: res.data.data.id,
name: res.data.data.examinationName, name: res.data.data.examinationName,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
@@ -886,7 +886,7 @@ export default {
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
let editObj = { let editObj = {
examType: 2, examType: 2,
courseId: res.data.data.examinationId, courseId: res.data.data.id,
name: res.data.data.examinationName, name: res.data.data.examinationName,
projectId: props.projectId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
@@ -907,7 +907,7 @@ export default {
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
addTempTask({ addTempTask({
examType: 2, examType: 2,
courseId: res.data.data.examinationId, courseId: res.data.data.id,
name: res.data.data.examinationName, name: res.data.data.examinationName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,

View File

@@ -198,7 +198,7 @@ export default {
let num = n1 + n2 + n3 +n4; let num = n1 + n2 + n3 +n4;
let obj = { let obj = {
assessmentId: info.assessmentId, assessmentId: info.id,
name: info.assessmentName, name: info.assessmentName,
num: num, num: num,
creator: info.createUserName ? info.createUserName : "-", creator: info.createUserName ? info.createUserName : "-",
@@ -206,12 +206,11 @@ export default {
}; };
//更新讨论信息 //更新讨论信息
state.assessment = obj; state.assessment = obj;
state.selectedRowKeys = [info.assessmentId]; state.selectedRowKeys = [info.id];
// state.assessmentId = res.data.data.assessmentId; // state.assessmentId = res.data.data.assessmentId;
}) })
.catch(() => {}); .catch(() => {});
} }
// } // }
}; };
const tableDataFunc = () => { const tableDataFunc = () => {
@@ -256,10 +255,7 @@ export default {
const onSelectChange = (selectedRowKeys, selectedRows) => { const onSelectChange = (selectedRowKeys, selectedRows) => {
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
state.addOnlineList = selectedRows; state.addOnlineList = selectedRows;
console.log(selectedRowKeys, selectedRows);
state.assessment = selectedRows[0]; state.assessment = selectedRows[0];
console.log("selectedRows=======", state.assessment);
// ctx.emit("checkedAss", state.assessment);
ctx.emit("update:assessmentId", state.assessment.assessmentId); ctx.emit("update:assessmentId", state.assessment.assessmentId);
ctx.emit("update:assessmentName", state.assessment.name); ctx.emit("update:assessmentName", state.assessment.name);
}; };
@@ -289,8 +285,8 @@ export default {
let num = n1 + n2 + n3 +n4; let num = n1 + n2 + n3 +n4;
let obj = { let obj = {
key: value.assessmentId, key: value.id,
assessmentId: value.assessmentId, assessmentId: value.id,
num: num, num: num,
name: value.assessmentName ? value.assessmentName : "-", name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUserName ? value.createUserName : "-", creator: value.createUserName ? value.createUserName : "-",

View File

@@ -437,8 +437,7 @@ export default {
}); });
}; };
const getDictList = async (param) => const getDictList = async (param) =>
api1 api1.getDict({
.getDict({
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 20,
setCode: param, setCode: param,

View File

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

View File

@@ -4146,55 +4146,58 @@ export default defineComponent({
if (type === "1") { if (type === "1") {
return; return;
} }
state.offcourseId = itm.offcourseId; // console.log(itm)
state.offcourseId = itm.id;
// const item = await detail({ const item = await detail({
// offcourseId: Number(state.offcourseId), offcourseId: Number(state.offcourseId),
// }).then((res) => { }).then((res) => {
// if (res.data.code === 200) return res.data.data; if (res.data.code === 200) return res.data.data;
// }); });
// state.statusJuJue = Number(item.auditStatus) === -1 ? 1 : 0;
// if (Number(item.auditStatus) === 2 && Number(item.status) === 1) {
// state.statusTingQi = 1;
// }
// if (Number(item.auditStatus) === 2 && Number(item.status) === 0) {
// state.statusTingQi = 0;
// }
// state.qdms_inputV1 = item.name; state.statusJuJue = Number(item.auditStatus) === -1 ? 1 : 0;
// // state.imageUrl = item.picUrl;
// state.feng_mian_1 = item.picUrl;
// state.qdms_inputV2 = item.targetUser;
// state.qdms_inputV3 = item.meaning;
// state.fen_lei = String(item.categoryId);
// state.chang_jin = String(item.sceneId);
// state.tags_val = item.tips ? item.tips.split(",") : [];
// //state.qdms_inputV5 = item.teacherId;
// state.teacher = item.teacher;
// state.teacherId = item.teacherId;
// state.qdms_inputV6 = item.intro;
// state.member = { value: item.teacherId, name: item.teacher };
// if (item.attach == "") {
// state.imgList = [];
// } else {
// if (item.attach.indexOf(",")) {
// const arr = item.attach.split(",");
// arr.forEach((item) => {
// state.imgList.push({ img: item });
// });
// } else {
// state.imgList = [{ img: item.attach }];
// }
// }
// valueHtml.value = item.outline; if (Number(item.auditStatus) === 2 && Number(item.status) === 1) {
state.statusTingQi = 1;
}
if (Number(item.auditStatus) === 2 && Number(item.status) === 0) {
state.statusTingQi = 0;
}
state.qdms_inputV1 = item.name;
// state.imageUrl = item.picUrl;
state.feng_mian_1 = item.picUrl;
state.qdms_inputV2 = item.targetUser;
state.qdms_inputV3 = item.meaning;
state.fen_lei = String(item.categoryId);
state.chang_jin = String(item.sceneId);
state.tags_val = item.tips ? item.tips.split(",") : [];
//state.qdms_inputV5 = item.teacherId;
state.teacher = item.teacher;
state.teacherId = item.teacherId;
state.qdms_inputV6 = item.intro;
state.member = { value: item.teacherId, name: item.teacher };
if (item.attach == "") {
state.imgList = [];
} else {
if (item.attach.indexOf(",")) {
const arr = item.attach.split(",");
arr.forEach((item) => {
state.imgList.push({ img: item });
});
} else {
state.imgList = [{ img: item.attach }];
}
}
valueHtml.value = item.outline;
// state.ft_hs = true; // state.ft_hs = true;
CourseModalRef.value.visibleOpen(state.offcourseId, null); CourseModalRef.value.visibleOpen(state.offcourseId, null);
state.ft_eidt = true; state.ft_eidt = true;
getTea(); // getTea();
}; };
// handleTagChange // handleTagChange
@@ -4242,7 +4245,7 @@ export default defineComponent({
if (type === "1") { if (type === "1") {
return; return;
} }
state.offcourseId = item.offcourseId; state.offcourseId = item.id;
state.delete_hs = true; state.delete_hs = true;
state.del_hs = true; state.del_hs = true;

View File

@@ -281,8 +281,7 @@
</a-modal> </a-modal>
</template> </template>
<script> <script>
import { reactive, toRefs, defineComponent, ref, watch, computed } from "vue"; import { reactive, toRefs, defineComponent, watch, computed } from "vue";
import * as api1 from "../../../api/index1";
import { useStore } from "vuex"; import { useStore } from "vuex";
export default defineComponent({ export default defineComponent({
@@ -302,136 +301,6 @@ export default defineComponent({
const state = reactive({ const state = reactive({
imgList: [], imgList: [],
options2222: [
{
title: "领导力",
value: "100",
children: [
{
title: "管理业务",
value: "1001",
},
{
title: "管理团队",
value: "1002",
},
{
title: "管理自我",
value: "1003",
},
],
},
{
title: "专业力",
value: "200",
children: [
{
title: "研发",
value: "2001",
},
{
title: "系统和解决方案",
value: "2002",
},
{
title: "生产技术与制造",
value: "2003",
},
{
title: "供应链",
value: "2004",
},
{
title: "营销",
value: "2005",
},
{
title: "品质",
value: "2006",
},
{
title: "专业职能",
value: "2007",
children: [
{
title: "战略与企划",
value: "200701",
},
{
title: "流程管理",
value: "200702",
},
{
title: "业绩管理",
value: "200703",
},
{
title: "项目管理",
value: "200704",
},
{
title: "信息技术",
value: "200705",
},
{
title: "环境与安全",
value: "200706",
},
{
title: "人力资源",
value: "200707",
},
{
title: "企业文化",
value: "200708",
},
{
title: "品牌",
value: "200709",
},
{
title: "财务",
value: "200710",
},
{
title: "法务",
value: "200711",
},
{
title: "风险控制",
value: "200712",
},
{
title: "行政",
value: "200713",
},
],
},
{
title: "医工",
value: "2008",
},
],
},
{
title: "通用力",
value: "300",
children: [
{
title: "职业操守与道德",
value: "3001",
},
{
title: "职业素养与技能",
value: "3002",
},
{
title: "规章制度",
value: "3003",
},
],
},
],
categoryName: "", categoryName: "",
ceshi: "https://u-pre.boe.com/upload/测试下载ppt2-1671002026755.pptx", ceshi: "https://u-pre.boe.com/upload/测试下载ppt2-1671002026755.pptx",
ceshi2: "http://43.143.139.204:12016/测试下载ppt3-1671001683026.pptx", ceshi2: "http://43.143.139.204:12016/测试下载ppt3-1671001683026.pptx",
@@ -441,7 +310,7 @@ export default defineComponent({
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/", : location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
}); });
const sysTypeOptions = computed(() => store.state.sysType); const sysTypeOptions = computed(() => store.state.content_type);
watch( watch(
() => props.detail.sysTypeId, () => props.detail.sysTypeId,
@@ -452,22 +321,7 @@ export default defineComponent({
function findClassFullName(list, name = "") { function findClassFullName(list, name = "") {
return ( return (
(list && (list && list.length && list.map((e) => props.detail.sysTypeId == e.code ? name ? name + "-" + e.name : e.name : findClassFullName(e.children, name ? name + "-" + e.name : e.name)).filter((name) => name).join("")) || ""
list.length &&
list
.map((e) =>
props.detail.sysTypeId == e.dictCode
? name
? name + "-" + e.dictName
: e.dictName
: findClassFullName(
e.children,
name ? name + "-" + e.dictName : e.dictName
)
)
.filter((name) => name)
.join("")) ||
""
); );
} }
@@ -478,72 +332,13 @@ export default defineComponent({
return "-"; return "-";
} }
}; };
const filterSenceTxt = (txt) => {
let str = "-";
if (txt) {
options3.value.forEach((item) => {
if (item.value === String(txt)) {
str = item.label;
}
});
}
return str;
};
const handleCancel = () => { const handleCancel = () => {
emit("cancel"); emit("cancel");
}; };
//获取分类、场景-----------字典配置-------------------------------
const options2 = ref([]);
const options3 = ref([]);
const getDictList = (param) => {
let obj = {
pageNo: 1,
pageSize: 20,
setCode: param,
};
api1
.getDict(obj)
.then((res) => {
console.log("获取字典成功", res);
if (res.data.code === 200) {
if (param === "faceclassClass") {
let arr = res.data.data.rows;
let newArr = [];
arr.forEach((item) => {
newArr.push({
value: item.dictCode,
label: item.dictName,
});
});
options2.value = state.options2222;
}
if (param === "faceclassScene") {
let arr = res.data.data.rows;
let newArr = [];
arr.forEach((item) => {
newArr.push({
value: item.dictCode,
label: item.dictName,
});
});
options3.value = newArr;
}
}
})
.catch((err) => {
console.log("获取字典失败", err);
});
};
getDictList("faceclassClass");
getDictList("faceclassScene");
//获取分类、场景----------------字典配置---------------------------
return { return {
...toRefs(state), ...toRefs(state),
filterTxt, filterTxt,
filterSenceTxt,
handleCancel, handleCancel,
}; };
}, },

View File

@@ -563,7 +563,7 @@ export default defineComponent({
} }
const postData = { const postData = {
offcourseId: state.offcourseId, //不传代表新增 id: state.offcourseId, //不传代表新增
name: state.qdms_inputV1, name: state.qdms_inputV1,
picUrl: state.feng_mian_1, picUrl: state.feng_mian_1,
targetUser: state.qdms_inputV2, targetUser: state.qdms_inputV2,

View File

@@ -14,15 +14,6 @@
<div class="tmplh_inp"> <div class="tmplh_inp">
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<!--
<a-select
v-model:value="valueproj"
value-key="value"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
]"
/>-->
<a-tree-select <a-tree-select
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body" :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="valueproj" v-model:value="valueproj"
@@ -30,8 +21,8 @@
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:fieldNames="{ :fieldNames="{
children: 'children', children: 'children',
label: 'dictName', label: 'name',
value: 'dictCode', value: 'code',
}" }"
placeholder="请选择内容分类" placeholder="请选择内容分类"
allow-clear allow-clear
@@ -128,7 +119,6 @@
<script> <script>
import {reactive, toRefs, onMounted, computed} from "vue"; import {reactive, toRefs, onMounted, computed} from "vue";
import { courseListView } from "../../api/indexAudit"; import { courseListView } from "../../api/indexAudit";
import * as api1 from "@/api/index1";
import {useStore} from "vuex"; import {useStore} from "vuex";
import dayjs from "dayjs"; import dayjs from "dayjs";
@@ -422,11 +412,11 @@ export default {
const store = useStore(); const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType); const sysTypeOptions = computed(() => store.state.content_type);
function findClassFullName(list,classify,name=''){ function findClassFullName(list,classify,name=''){
return list && list.length && list.map(e=>{ return list && list.length && list.map(e=>{
return classify == e.dictCode ? name?name+'-'+e.dictName:e.dictName : findClassFullName(e.children,classify,name?name+'-'+e.dictName:e.dictName) return classify == e.code ? name?name+'-'+e.name:e.name : findClassFullName(e.children,classify,name?name+'-'+e.name:e.name)
}).filter(name=>name).join('') }).filter(name=>name).join('')
} }
@@ -503,22 +493,9 @@ export default {
state.currentPage = pagina; state.currentPage = pagina;
getList(); getList();
}; };
const getDictList = (param) =>
api1
.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
onMounted(async () => { onMounted(async () => {
getList(); getList();
//获取分类列表
state.calssifyList = (await getDictList("faceclassClass")).map((e) => ({
label: e.dictName,
value: e.dictCode,
}));
}); });
// 显示审核 // 显示审核

View File

@@ -14,19 +14,11 @@
<div class="tmplh_inp"> <div class="tmplh_inp">
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<!--
<a-select
v-model:value="valueproj"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
]"
/>-->
<a-tree-select <a-tree-select
:fieldNames="{ :fieldNames="{
children: 'children', children: 'children',
label: 'dictName', label: 'name',
value: 'dictCode', value: 'code',
}" }"
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body" :getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="valueproj" v-model:value="valueproj"
@@ -148,7 +140,6 @@ import { list, courseAuditView, courseDetail } from "../../api/indexAudit";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import SeeModal from "../courselibrary/components/seeModal.vue"; import SeeModal from "../courselibrary/components/seeModal.vue";
import { iframeUrl } from "../../api/method"; import { iframeUrl } from "../../api/method";
import * as api1 from "@/api/index1";
import {useStore} from "vuex"; import {useStore} from "vuex";
import dayjs from "dayjs"; import dayjs from "dayjs";
@@ -423,11 +414,11 @@ export default {
}); });
const store = useStore(); const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType); const sysTypeOptions = computed(() => store.state.content_type);
function findClassFullName(list,classify,name=''){ function findClassFullName(list,classify,name=''){
return list && list.length && list.map(e=>{ return list && list.length && list.map(e=>{
return classify == e.dictCode ? name?name+'-'+e.dictName:e.dictName : findClassFullName(e.children,classify,name?name+'-'+e.dictName:e.dictName) return classify == e.code ? name?name+'-'+e.name:e.name : findClassFullName(e.children,classify,name?name+'-'+e.name:e.name)
}).filter(name=>name).join('') }).filter(name=>name).join('')
} }
@@ -435,20 +426,6 @@ export default {
const sHX = (classify) => { const sHX = (classify) => {
return findClassFullName(sysTypeOptions.value,classify) || '-' return findClassFullName(sysTypeOptions.value,classify) || '-'
} }
/*
* 获取字典列表
* param faceclassPic | faceclassClass | faceclassScene
* */
const getDictList = (param) =>
api1
.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
const getFaceList = () => { const getFaceList = () => {
state.loading = true state.loading = true
let objn = { let objn = {
@@ -462,10 +439,6 @@ export default {
projectName: "", projectName: "",
}; };
console.log(objn);
// 测试数据先放下
// setFaceData([{ name: "面授课审核", category_id: "8", scene_id: "8" }]);
list(objn) list(objn)
.then((res) => { .then((res) => {
console.log("获取面授列表成功", res); console.log("获取面授列表成功", res);
@@ -588,7 +561,7 @@ export default {
creater: item.createName, creater: item.createName,
time: item.processTime, time: item.processTime,
createrId: item.createId, createrId: item.createId,
offId: item.offcourseId, offId: item.id,
}; };
array.push(obj); array.push(obj);
}); });
@@ -658,11 +631,6 @@ export default {
}; };
onMounted(async () => { onMounted(async () => {
getFaceList(); getFaceList();
//获取分类列表
state.calssifyList = (await getDictList("faceclassClass")).map((e) => ({
label: e.dictName,
value: e.dictCode,
}));
}); });
// 禁止用户编辑文本框内容 // 禁止用户编辑文本框内容

View File

@@ -717,8 +717,6 @@ import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import * as apiStu from "../../api/index"; import * as apiStu from "../../api/index";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { commonData } from "@/api/method";
import { storage } from "@/api/storage";
import { useStore } from "vuex"; import { useStore } from "vuex";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import NameInput from "@/components/project/NameInput"; import NameInput from "@/components/project/NameInput";
@@ -1220,49 +1218,19 @@ export default {
return message.warning("项目名称重复,请重新填写"); return message.warning("项目名称重复,请重新填写");
} }
state.lpLoading = true; state.lpLoading = true;
let obj = { api.createLearnPath({
name: state.pathName, name: state.pathName,
remark: state.pathIntro, remark: state.pathIntro,
status: 0, status: 0,
organizationId: state.organizationSelectId, organizationId: state.organizationSelectId,
organizationName: state.organizationSelectName, organizationName: state.organizationSelectName,
picUrl: state.pathBg, picUrl: state.pathBg,
}; }).then(id => {
api
.createLearnPath(obj)
.then((res) => {
console.log("创建学习路径成功", res);
if (res.data.code === 200) {
let chapterObj = {
name: "关卡一",
remark: "",
routerId: res.data.data.routerId,
};
//创建关卡
api
.editChapter(chapterObj)
.then((chapterRes) => {
console.log("关卡创建成功", chapterRes);
setTimeout(() => {
console.log("创建成功", res);
message.destroy(); message.destroy();
message.success("创建成功"); message.success("创建成功");
state.lpLoading = false; state.lpLoading = false;
state.currentPage = 1; router.push( {path: "/leveladd",query:{routerId: id }})
router.push("/leveladd");
storage.set("routerId", res.data.data.routerId);
// getLearnPath();
}, commonData.timeout);
}) })
.catch((chapterErr) => {
console.log("关卡创建失败", chapterErr);
});
}
})
.catch((err) => {
console.log("创建失败", err);
// state.createLoading = false;
});
}; };
//获取学习路径列表 //获取学习路径列表
@@ -1536,15 +1504,15 @@ export default {
function manage(id) { function manage(id) {
router.push({ router.push({
path: "/leveladd", path: "/leveladd",
query:{routerId:id}
}); });
storage.set("routerId", id);
} }
const getLearnPathInfo = (id) => { const getLearnPathInfo = (id) => {
// console.log("编辑学习路径图id", id); // console.log("编辑学习路径图id", id);
//获取学习路径详情 //获取学习路径详情
api api
.getRouterDetail(id) .getRouterDetail(id,"draft")
.then((res) => { .then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
console.log("获取学习路径详情成功", res.data.data); console.log("获取学习路径详情成功", res.data.data);

View File

@@ -1354,7 +1354,6 @@
import { ref, reactive, toRefs, onMounted, createVNode, watch } from "vue"; import { ref, reactive, toRefs, onMounted, createVNode, watch } from "vue";
import { ExclamationCircleOutlined } from "@ant-design/icons-vue"; import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
import { message, Modal } from "ant-design-vue"; import { message, Modal } from "ant-design-vue";
// import PathAddStu from "../../components/drawers/pathStuAdd";
import ProjCheckShip from "../../components/drawers/ProjCheckPower"; import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import ImpStu from "../../components/drawers/AddLevelImportStu"; import ImpStu from "../../components/drawers/AddLevelImportStu";
import CheckStu from "../../components/drawers/CheckStu"; import CheckStu from "../../components/drawers/CheckStu";
@@ -1365,20 +1364,15 @@ import TestManage from "../../components/drawers/TestManage";
import FaceManage from "../../components/drawers/FaceManage"; import FaceManage from "../../components/drawers/FaceManage";
import WorkManage from "../../components/drawers/WorkManage"; import WorkManage from "../../components/drawers/WorkManage";
import SeeStu from "../../components/drawers/SeeStu"; import SeeStu from "../../components/drawers/SeeStu";
import { useRouter } from "vue-router"; import { useRouter,useRoute } from "vue-router";
// import { useStore } from "vuex";
import { storage } from "../../api/storage";
import { getRouterOverview } from "@/api/indexLearningPath"; import { getRouterOverview } from "@/api/indexLearningPath";
import { handleLearnPath } from "../../api/index1"; import { handleLearnPath } from "../../api/index1";
import { GetRouterDetail } from "@/api/indexTask"; import { GetRouterDetail } from "@/api/indexTask";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { editRoutered } from "../../api/indexLearningPath"; import { editRoutered } from "../../api/indexLearningPath";
// import { codeUrl } from "../../api/method";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue"; import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
import TableStudent from "@/components/student/TableStudent"; import TableStudent from "@/components/student/TableStudent";
// import * as student from "@/api/student";
import { getStuPage, moveStudent } from "@/api/index1"; import { getStuPage, moveStudent } from "@/api/index1";
import RouterFaceTeachManage from "../../components/drawers/router/RouterFaceTeachManage"; import RouterFaceTeachManage from "../../components/drawers/router/RouterFaceTeachManage";
import RouterExaminationManage from "../../components/drawers/router/RouterExaminationManage"; import RouterExaminationManage from "../../components/drawers/router/RouterExaminationManage";
import RouterExaminationExternalManage from "../../components/drawers/router/RouterExaminationExternalManage"; import RouterExaminationExternalManage from "../../components/drawers/router/RouterExaminationExternalManage";
@@ -1417,15 +1411,15 @@ export default {
}, },
setup() { setup() {
const router = useRouter(); const router = useRouter();
const route = useRoute();
// const store = useStore(); // const store = useStore();
const state = reactive({ const state = reactive({
permissions: "", permissions: "",
hasTask: false, hasTask: false,
stage: [], stage: [],
statess: [], statess: [],
routerId: storage.get("routerId") routerId: route.query.routerId, //学习路径页面传的学习路径id
? JSON.parse(storage.get("routerId"))
: null, //学习路径页面传的学习路径id
gatename: null, //关卡名称 gatename: null, //关卡名称
gatenamee: null, //学员管理关卡名称 gatenamee: null, //学员管理关卡名称
action: null, action: null,
@@ -2196,7 +2190,7 @@ export default {
}); });
}; };
const reget = () => { const reget = () => {
GetRouterDetail(state.routerId, "N").then((res) => { GetRouterDetail(state.routerId).then((res) => {
console.log("获取路径图详情", res); console.log("获取路径图详情", res);
console.log( console.log(
!!res.data.data?.chapterList.some(({ taskList }) => taskList.length) !!res.data.data?.chapterList.some(({ taskList }) => taskList.length)

View File

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

View File

@@ -13,10 +13,11 @@
<div class="btnText">添加阶段</div> <div class="btnText">添加阶段</div>
</div> </div>
<div class="maincon" style="background-color: #fff"> <div class="maincon" style="background-color: #fff">
<draggable v-model="level" chosenClass="chosen" ghostClass="ghost" forceFallback="true" group="stage" <draggable v-model="level" chosenClass="chosen" ghostClass="ghost" forceFallback="true"
animation="500"> group="stage" animation="500">
<template #item="{ element }"> <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="items1">
<div class="boxs_left"> <div class="boxs_left">
<a-popover placement="topLeft" trigger="click"> <a-popover placement="topLeft" trigger="click">
@@ -107,13 +108,20 @@
<!-- 2022-11-30注释 后面放开 --> <!-- 2022-11-30注释 后面放开 -->
<div class="select" style="margin-right:90px;"> <div class="select" style="margin-right:90px;">
<span>学习模式</span> <span>学习模式</span>
<div class="inputbox"> <!-- <div class="inputbox"> -->
<input type="text" placeholder="按学习时间解锁" style="padding-left:12px;" /> <!-- <input type="text" placeholder="按学习时间解锁" style="padding-left:12px;" /> -->
<div class="bottonbox" @click="showModeVisible"> <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 class="btnText">切换模式</div>
</div> </div> -->
<unlock-mode v-model:unlockModeVisible="unlockModeVisible" /> <unlock-mode ref="unlockModeModal" v-model:unlockModeVisible="unlockModeVisible" :objData="projectInfo" @saveUnlock="saveUnlock"/>
</div> <!-- </div> -->
</div> </div>
<div class="line"></div> <div class="line"></div>
<!-- <img class="img2" src="../../assets/images/projectadd/keep.png" /> <!-- <img class="img2" src="../../assets/images/projectadd/keep.png" />
@@ -138,9 +146,10 @@
</div> </div>
<!-- 添加在线侧弹窗 --> <!-- 添加在线侧弹窗 -->
<div> <div>
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData" :isLevel="isLevel" <add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData"
v-model:edit="edit" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" :isLevel="isLevel" v-model:edit="edit" v-model:projectId="projectId"
v-model:projectTaskId="projectTaskId" v-model:EditOnlineId="EditOnlineId" /> v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId" />
</div> </div>
<!-- 添加在线侧弹窗 --> <!-- 添加在线侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -154,10 +163,10 @@
</div> </div>
<!-- 添加面授侧弹窗 --> <!-- 添加面授侧弹窗 -->
<div> <div>
<add-faceteach v-model:addfaceteachVisible="addfaceteachvisible" v-model:EditFaceId="EditFaceId" <add-faceteach v-model:addfaceteachVisible="addfaceteachvisible"
v-model:edit="edit" :isLevel="isLevel" v-model:projectId="projectId" v-model:EditFaceId="EditFaceId" v-model:edit="edit" :isLevel="isLevel"
v-model:chooseStageId="chooseStageId" @changeData="updateTableData" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" /> @changeData="updateTableData" v-model:projectTaskId="projectTaskId" />
</div> </div>
<!-- 添加面授侧弹窗 --> <!-- 添加面授侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -171,9 +180,10 @@
</div> </div>
<!-- 添加案例侧弹窗 --> <!-- 添加案例侧弹窗 -->
<div> <div>
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" :isLevel="isLevel" <add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData"
v-model:edit="edit" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" :isLevel="isLevel" v-model:edit="edit" v-model:projectId="projectId"
v-model:projectTaskId="projectTaskId" v-model:EditCaseId="EditCaseId" /> v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId" />
</div> </div>
<!-- 添加案例侧弹窗 --> <!-- 添加案例侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -204,9 +214,10 @@
</div> </div>
<!-- 添加考试侧弹窗 --> <!-- 添加考试侧弹窗 -->
<div> <div>
<add-test v-model:addtestVisible="addtestvisible" @changeData="updateTableData" :isLevel="isLevel" <add-test v-model:addtestVisible="addtestvisible" @changeData="updateTableData"
v-model:edit="edit" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" :isLevel="isLevel" v-model:edit="edit" v-model:projectId="projectId"
v-model:EditTestId="EditTestId" v-model:projectTaskId="projectTaskId" /> v-model:chooseStageId="chooseStageId" v-model:EditTestId="EditTestId"
v-model:projectTaskId="projectTaskId" />
</div> </div>
<!-- 添加考试侧弹窗 --> <!-- 添加考试侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -220,8 +231,9 @@
</div> </div>
<!-- 添加直播侧弹窗 --> <!-- 添加直播侧弹窗 -->
<div> <div>
<add-live v-model:addliveVisible="addlivevisible" :isLevel="isLevel" @changeData="updateTableData" <add-live v-model:addliveVisible="addlivevisible" :isLevel="isLevel"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:edit="edit" @changeData="updateTableData" v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId" v-model:edit="edit"
v-model:EditLiveId="EditLiveId" v-model:projectTaskId="projectTaskId" /> v-model:EditLiveId="EditLiveId" v-model:projectTaskId="projectTaskId" />
</div> </div>
<!-- 添加直播侧弹窗 --> <!-- 添加直播侧弹窗 -->
@@ -236,9 +248,10 @@
</div> </div>
<!-- 添加外链侧弹窗 --> <!-- 添加外链侧弹窗 -->
<div> <div>
<add-ref v-model:addrefVisible="addrefvisible" :isLevel="isLevel" @changeData="updateTableData" <add-ref v-model:addrefVisible="addrefvisible" :isLevel="isLevel"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:edit="edit" @changeData="updateTableData" v-model:projectId="projectId"
v-model:EditRefId="EditRefId" v-model:projectTaskId="projectTaskId" /> v-model:chooseStageId="chooseStageId" v-model:edit="edit" v-model:EditRefId="EditRefId"
v-model:projectTaskId="projectTaskId" />
</div> </div>
<!-- 添加外链侧弹窗 --> <!-- 添加外链侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -253,16 +266,10 @@
</div> </div>
<div> <div>
<add-discuss <add-discuss v-model:adddiscussVisible="adddiscussvisible" v-model:edit="edit"
v-model:adddiscussVisible="adddiscussvisible" :isLevel="isLevel" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
v-model:edit="edit" v-model:EditDiscussId="EditDiscussId" v-model:projectTaskId="projectTaskId"
:isLevel="isLevel" @changeData="updateTableData" />
v-model:projectId="projectId"
v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId"
v-model:projectTaskId="projectTaskId"
@changeData="updateTableData"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
@@ -278,8 +285,9 @@
<!-- 添加活动侧弹窗 --> <!-- 添加活动侧弹窗 -->
<div> <div>
<add-active v-model:addactiveVisible="addactivevisible" v-model:projectId="projectId" <add-active v-model:addactiveVisible="addactivevisible" v-model:projectId="projectId"
v-model:EditActiveId="EditActiveId" v-model:projectTaskId="projectTaskId" v-model:edit="edit" v-model:EditActiveId="EditActiveId" v-model:projectTaskId="projectTaskId"
:isLevel="isLevel" v-model:chooseStageId="chooseStageId" @changeData="updateTableData" /> v-model:edit="edit" :isLevel="isLevel" v-model:chooseStageId="chooseStageId"
@changeData="updateTableData" />
</div> </div>
<!-- 添加活动侧弹窗 --> <!-- 添加活动侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -293,9 +301,10 @@
</div> </div>
<!-- 添加测评侧弹窗 --> <!-- 添加测评侧弹窗 -->
<div> <div>
<add-eval v-model:addevalVisible="addevalvisible" @changeData="updateTableData" v-model:edit="edit" <add-eval v-model:addevalVisible="addevalvisible" @changeData="updateTableData"
:isLevel="isLevel" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:edit="edit" :isLevel="isLevel" v-model:projectId="projectId"
v-model:projectTaskId="projectTaskId" v-model:EditEvalId="EditEvalId" /> v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditEvalId="EditEvalId" />
</div> </div>
<!-- 添加测评侧弹窗 --> <!-- 添加测评侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
@@ -309,9 +318,10 @@
</div> </div>
<!-- 添加评估侧弹窗 --> <!-- 添加评估侧弹窗 -->
<div> <div>
<add-invist v-model:addinvistVisible="addinvistvisible" @changeData="updateTableData" v-model:edit="edit" <add-invist v-model:addinvistVisible="addinvistvisible" @changeData="updateTableData"
:isLevel="isLevel" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:edit="edit" :isLevel="isLevel" v-model:projectId="projectId"
v-model:projectTaskId="projectTaskId" v-model:EditInvistId="EditInvistId" /> v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditInvistId="EditInvistId" />
</div> </div>
<div class="lin"></div> <div class="lin"></div>
@@ -326,19 +336,11 @@
<div class="text">投票</div> <div class="text">投票</div>
<div> <div>
<add-vote <add-vote v-model:addvoteVisible="addvotevisible" @changeData="updateTableData"
v-model:addvoteVisible="addvotevisible" @getData="changeVData" v-model:edit="edit" :isLevel="isLevel"
@changeData="updateTableData" v-model:projectId="projectId" v-model:chooseStageId="chooseStageId"
@getData="changeVData" v-model:projectTaskId="projectTaskId" v-model:EditVoteId="EditVoteId"
v-model:edit="edit" v-model:voteId="voteId" v-model:ballotId="ballotId" />
: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>
</div> </div>
@@ -432,8 +434,8 @@
操作 操作
</div> </div>
</div> </div>
<draggable v-model="tableData" chosenClass="chosen" ghostClass="ghost" forceFallback="true" group="task" <draggable v-model="tableData" chosenClass="chosen" ghostClass="ghost"
animation="500" @start="onStart" @end="onEnd"> forceFallback="true" group="task" animation="500" @start="onStart" @end="onEnd">
<template #item="{ element }"> <template #item="{ element }">
<div style=" <div style="
height: 50px; height: 50px;
@@ -460,7 +462,8 @@
position: absolute; position: absolute;
left: -25px; left: -25px;
"></div> "></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> </a-checkbox>
<div style="margin-top: 2px; margin-left: 8px"> <div style="margin-top: 2px; margin-left: 8px">
{{ element.lei }} {{ element.lei }}
@@ -479,8 +482,9 @@
<div style="width: 120px; text-align: center"> <div style="width: 120px; text-align: center">
<div class="opat"> <div class="opat">
<div class="opacationt clearfix"> <div class="opacationt clearfix">
<a-switch style="margin-left: -50px; margin-top: 3px" v-model:checked="element.checked1" <a-switch style="margin-left: -50px; margin-top: 3px"
size="small" active-color="red" @click="changeCourseType(element)" /> v-model:checked="element.checked1" size="small"
active-color="red" @click="changeCourseType(element)" />
<div class="showt clearfix"> <div class="showt clearfix">
<div class="bi" :style="{ <div class="bi" :style="{
'z-index': element.checked1 ? 999 : 998, 'z-index': element.checked1 ? 999 : 998,
@@ -496,7 +500,8 @@
{{ {{
element.cretime 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> </div>
@@ -507,7 +512,7 @@
"> ">
<div class="opa"> <div class="opa">
<div class="opacation"> <div class="opacation">
<span style=" <span v-if="element.type !== 5" style="
color: #4ea6ff; color: #4ea6ff;
margin-right: 25px; margin-right: 25px;
cursor: pointer; cursor: pointer;
@@ -520,7 +525,14 @@
"> ">
编辑 编辑
</span> </span>
<span style="color: #4ea6ff; cursor: pointer" @click="showDelete(element.id)"> <span v-else style="
color: #4ea6ff;
margin-right: 55px;
cursor: pointer;
">
</span>
<span style="color: #4ea6ff; cursor: pointer"
@click="showDelete(element.id)">
删除 删除
</span> </span>
</div> </div>
@@ -653,7 +665,8 @@
</a-modal> </a-modal>
</div> </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="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -677,7 +690,8 @@
</div> </div>
</a-modal> </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="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -701,7 +715,8 @@
</div> </div>
</a-modal> </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="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -789,7 +804,8 @@
<div class="close_exit" @click="closeDeleteStage"></div> <div class="close_exit" @click="closeDeleteStage"></div>
</div> </div>
<div class="body"> <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> }}</span>
</div> </div>
@@ -888,6 +904,8 @@ export default {
//阶段数据 //阶段数据
level: [], level: [],
stageList: [], stageList: [],
projectInfo: null, // 项目信息
unlockMode: 1, // 学习模式
projectTitle: null, projectTitle: null,
picUrl: null, picUrl: null,
@@ -1010,11 +1028,11 @@ export default {
data.map((value) => { data.map((value) => {
if (value.stageId != 0) { if (value.stageId != 0) {
let obj = { let obj = {
id: value.stageId, id: value.id,
tit: value.name, tit: value.name,
name: value.remark, name: value.remark,
taskList: value.taskList, taskList: value.taskList,
value: value.stageId, value: value.id,
label: value.name, label: value.name,
courseId: value.courseId ? value.courseId : null, courseId: value.courseId ? value.courseId : null,
}; };
@@ -1153,6 +1171,21 @@ export default {
return columns; 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 () => { const getTask = async () => {
let obj = { let obj = {
@@ -1164,15 +1197,17 @@ export default {
if (state.onceChoice) { if (state.onceChoice) {
let data = res.data.data.stageList; let data = res.data.data.stageList;
state.onceChoice = false; state.onceChoice = false;
state.projectInfo = res.data.data.projectInfo
state.unlockMode = res.data.data.projectInfo.unlockMode
let arraynew = [] let arraynew = []
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
if (data[i].stageId !== '0') { if (data[i].id !== '0') {
arraynew.push(data[i]) arraynew.push(data[i])
} }
} }
// console.log(arraynew) // console.log(arraynew)
if (arraynew.length !== 0) { if (arraynew.length !== 0) {
state.chooseStageId = Number(arraynew[arraynew.length - 1].stageId); state.chooseStageId = Number(arraynew[arraynew.length - 1].id);
} }
} }
@@ -1746,6 +1781,7 @@ export default {
showModal1, showModal1,
closeCancel, closeCancel,
showDelete, showDelete,
saveUnlock,
closeDelete, closeDelete,
showChangeModal, showChangeModal,
closeChangeModal, closeChangeModal,

View File

@@ -591,12 +591,12 @@ export default {
state.newNext = true; state.newNext = true;
}; };
const handleEditName = (item) => { const handleEditName = (item) => {
state.assessmentId = item.assessmentId; state.id = item.id;
state.assessmentName = item.assessmentName; state.assessmentName = item.assessmentName;
state.newNext = true; state.newNext = true;
}; };
const handleNext = async() => { const handleNext = async() => {
if (!state.assessmentId) { if (!state.id) {
if (!state.assessmentName) { if (!state.assessmentName) {
message.destroy(); message.destroy();
message.error("请输入评估名称"); message.error("请输入评估名称");
@@ -606,7 +606,7 @@ export default {
message.destroy(); message.destroy();
return message.warning("该评估名称已存在"); return message.warning("该评估名称已存在");
} }
const offName = await validateName({name: state.assessmentName, type:4, id:state.assessmentId}).then(res => { const offName = await validateName({name: state.assessmentName, type:4, id:state.id}).then(res => {
return res.data.data == 1; return res.data.data == 1;
}); });
if(offName){ if(offName){
@@ -626,7 +626,7 @@ export default {
return false; return false;
} }
editAssessmentName({ editAssessmentName({
assessmentId: state.assessmentId, assessmentId: state.id,
assessmentName: state.assessmentName, assessmentName: state.assessmentName,
}).then((res) => { }).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
@@ -637,14 +637,14 @@ export default {
} }
}; };
const handleCancel = () => { const handleCancel = () => {
state.assessmentId = ""; state.id = "";
state.assessmentName = ""; state.assessmentName = "";
// store.commit("SET_assessmentName", ""); // store.commit("SET_assessmentName", "");
state.newNext = false; state.newNext = false;
}; };
const handleStatuts = (item, status) => { const handleStatuts = (item, status) => {
state.assessmentId = item.assessmentId; state.id = item.id;
switch (status) { switch (status) {
case "1": case "1":
// 发布 // 发布
@@ -664,12 +664,12 @@ export default {
} }
}; };
const handleDel = (item) => { const handleDel = (item) => {
state.assessmentId = item.assessmentId; state.id = item.id;
state.delete_hs = true; state.delete_hs = true;
state.del_hs = true; state.del_hs = true;
}; };
const handleCopy = (item) => { const handleCopy = (item) => {
state.assessmentId = item.assessmentId; state.id = item.id;
state.copyItem = item; state.copyItem = item;
state.delete_hs = true; state.delete_hs = true;
state.copy_hs = true; state.copy_hs = true;
@@ -679,7 +679,7 @@ export default {
// 发布 // 发布
if (state.pub_hs) { if (state.pub_hs) {
editReleaseStatus({ editReleaseStatus({
assessmentId: state.assessmentId, assessmentId: state.id,
releaseStatus: "2", releaseStatus: "2",
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
@@ -690,7 +690,7 @@ export default {
// 撤回 // 撤回
if (state.back_hs) { if (state.back_hs) {
editReleaseStatus({ editReleaseStatus({
assessmentId: state.assessmentId, assessmentId: state.id,
releaseStatus: "1", releaseStatus: "1",
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
@@ -701,7 +701,7 @@ export default {
// 结束 // 结束
if (state.over_hs) { if (state.over_hs) {
editReleaseStatus({ editReleaseStatus({
assessmentId: state.assessmentId, assessmentId: state.id,
releaseStatus: "3", releaseStatus: "3",
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
@@ -712,7 +712,7 @@ export default {
// 删除 // 删除
if (state.del_hs) { if (state.del_hs) {
deleteResearch({ deleteResearch({
assessmentId: Number(state.assessmentId), assessmentId: Number(state.id),
}).then((res) => { }).then((res) => {
console.log(res); console.log(res);
handleCancelModal(); handleCancelModal();
@@ -735,7 +735,7 @@ export default {
} }
}; };
const handleCancelModal = () => { const handleCancelModal = () => {
state.assessmentId = ""; state.id = "";
state.delete_hs = false; state.delete_hs = false;
state.del_hs = false; state.del_hs = false;
state.over_hs = false; state.over_hs = false;
@@ -745,15 +745,15 @@ export default {
}; };
const handleToManagepage = (item, path) => { const handleToManagepage = (item, path) => {
router.push({ router.push({
path: path + "/" + item.assessmentId, path: path + "/" + item.id,
}); });
}; };
const handleToResearchadd = (item, path) => { const handleToResearchadd = (item, path) => {
// console.log("item.assessmentId"); // console.log("item.id");
// console.log(item.assessmentId); // console.log(item.id);
// console.log(item); // console.log(item);
router.push({ router.push({
path: path + "/" + item.assessmentId, path: path + "/" + item.id,
}); });
}; };

View File

@@ -0,0 +1,78 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-09 09:26:26
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-25 17:37:05
* @FilePath: /fe-manage/src/views/courselibrary/CourseManage.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!-- 课件管理页面 -->
<!-- sandbox="allow-forms allow-scripts allow-same-origin allow-popups" -->
<template>
<div class="courseManage">
<iframe
id="iframe"
style="width: 100%; height: 100%"
src="http://43.143.139.204/platform/"
frameborder="0"
name="myframe"
security="restricted"
sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
></iframe>
<OnlineClassModelStudent ref="stuRef"></OnlineClassModelStudent>
<div @click="test">
asdfasdf
</div>
</div>
</template>
<script setup>
import {onMounted, ref} from "vue";
import OnlineClassModelStudent from "@/components/student/OnlineClassModelStudent";
const stuRef = ref()
onMounted(()=>{
window.openStudentModel = stuRef.value.openDrawer
})
function test(){
window.openStudentModel()
}
</script>
<style lang="scss">
.courseManage {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
.btnn {
height: 72px;
width: 100%;
background-color: #fff;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
</style>