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 getRouterDetail = (routerId) =>
export const getRouterDetail = (routerId,useTask) =>
http.get("/admin/router/detail", {
params: {
routerId: routerId,
useTask: useTask
},
});
//添加学员

View File

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

View File

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

View File

@@ -189,7 +189,7 @@ export default {
}
await RouterEditTask({
chapterId: props.isactive,
courseId: Number(value.evaluationId),
courseId: Number(value.id),
name: value.evaluationName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
@@ -206,7 +206,7 @@ export default {
.addTask({
duration: 0,
flag: true,
courseId: Number(value.evaluationId),
courseId: Number(value.id),
name: value.evaluationName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
@@ -223,7 +223,7 @@ export default {
});
} else if (props.isLevel == 3) {
await addTempTask({
courseId: Number(value.evaluationId),
courseId: Number(value.id),
name: value.evaluationName,
projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
projectTaskId: props.projectTaskId || 0,
@@ -331,7 +331,7 @@ export default {
let obj = {
evaluationName: state.inputV1,
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") : "",
evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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)
}
}).catch(e=>{
console.log(e)
message.error(e.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)
// })
}
// 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

@@ -4146,55 +4146,58 @@ export default defineComponent({
if (type === "1") {
return;
}
state.offcourseId = itm.offcourseId;
// console.log(itm)
state.offcourseId = itm.id;
// const item = await detail({
// offcourseId: Number(state.offcourseId),
// }).then((res) => {
// if (res.data.code === 200) return res.data.data;
// });
const item = await detail({
offcourseId: Number(state.offcourseId),
}).then((res) => {
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.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 }];
// }
// }
state.statusJuJue = Number(item.auditStatus) === -1 ? 1 : 0;
// 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;
CourseModalRef.value.visibleOpen(state.offcourseId, null);
state.ft_eidt = true;
getTea();
// getTea();
};
// handleTagChange
@@ -4242,7 +4245,7 @@ export default defineComponent({
if (type === "1") {
return;
}
state.offcourseId = item.offcourseId;
state.offcourseId = item.id;
state.delete_hs = true;
state.del_hs = true;

View File

@@ -281,8 +281,7 @@
</a-modal>
</template>
<script>
import { reactive, toRefs, defineComponent, ref, watch, computed } from "vue";
import * as api1 from "../../../api/index1";
import { reactive, toRefs, defineComponent, watch, computed } from "vue";
import { useStore } from "vuex";
export default defineComponent({
@@ -302,136 +301,6 @@ export default defineComponent({
const state = reactive({
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: "",
ceshi: "https://u-pre.boe.com/upload/测试下载ppt2-1671002026755.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/",
});
const sysTypeOptions = computed(() => store.state.sysType);
const sysTypeOptions = computed(() => store.state.content_type);
watch(
() => props.detail.sysTypeId,
@@ -452,22 +321,7 @@ export default defineComponent({
function findClassFullName(list, name = "") {
return (
(list &&
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("")) ||
""
(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("")) || ""
);
}
@@ -478,72 +332,13 @@ export default defineComponent({
return "-";
}
};
const filterSenceTxt = (txt) => {
let str = "-";
if (txt) {
options3.value.forEach((item) => {
if (item.value === String(txt)) {
str = item.label;
}
});
}
return str;
};
const handleCancel = () => {
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 {
...toRefs(state),
filterTxt,
filterSenceTxt,
handleCancel,
};
},

View File

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

View File

@@ -14,15 +14,6 @@
<div class="tmplh_inp">
<div class="inpbox">
<div class="inpbox1">
<!--
<a-select
v-model:value="valueproj"
value-key="value"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
]"
/>-->
<a-tree-select
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="valueproj"
@@ -30,8 +21,8 @@
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:fieldNames="{
children: 'children',
label: 'dictName',
value: 'dictCode',
label: 'name',
value: 'code',
}"
placeholder="请选择内容分类"
allow-clear
@@ -128,7 +119,6 @@
<script>
import {reactive, toRefs, onMounted, computed} from "vue";
import { courseListView } from "../../api/indexAudit";
import * as api1 from "@/api/index1";
import {useStore} from "vuex";
import dayjs from "dayjs";
@@ -422,11 +412,11 @@ export default {
const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType);
const sysTypeOptions = computed(() => store.state.content_type);
function findClassFullName(list,classify,name=''){
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('')
}
@@ -503,22 +493,9 @@ export default {
state.currentPage = pagina;
getList();
};
const getDictList = (param) =>
api1
.getDict({
pageNo: 1,
pageSize: 20,
setCode: param,
})
.then((res) => res.data.data.rows);
onMounted(async () => {
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="inpbox">
<div class="inpbox1">
<!--
<a-select
v-model:value="valueproj"
:options="[
{ label: '请选择内容分类', value: '' },
...calssifyList,
]"
/>-->
<a-tree-select
:fieldNames="{
children: 'children',
label: 'dictName',
value: 'dictCode',
label: 'name',
value: 'code',
}"
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
v-model:value="valueproj"
@@ -148,7 +140,6 @@ import { list, courseAuditView, courseDetail } from "../../api/indexAudit";
import { message } from "ant-design-vue";
import SeeModal from "../courselibrary/components/seeModal.vue";
import { iframeUrl } from "../../api/method";
import * as api1 from "@/api/index1";
import {useStore} from "vuex";
import dayjs from "dayjs";
@@ -423,11 +414,11 @@ export default {
});
const store = useStore();
const sysTypeOptions = computed(() => store.state.sysType);
const sysTypeOptions = computed(() => store.state.content_type);
function findClassFullName(list,classify,name=''){
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('')
}
@@ -435,20 +426,6 @@ export default {
const sHX = (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 = () => {
state.loading = true
let objn = {
@@ -462,10 +439,6 @@ export default {
projectName: "",
};
console.log(objn);
// 测试数据先放下
// setFaceData([{ name: "面授课审核", category_id: "8", scene_id: "8" }]);
list(objn)
.then((res) => {
console.log("获取面授列表成功", res);
@@ -588,7 +561,7 @@ export default {
creater: item.createName,
time: item.processTime,
createrId: item.createId,
offId: item.offcourseId,
offId: item.id,
};
array.push(obj);
});
@@ -658,11 +631,6 @@ export default {
};
onMounted(async () => {
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 apiStu from "../../api/index";
import { message } from "ant-design-vue";
import { commonData } from "@/api/method";
import { storage } from "@/api/storage";
import { useStore } from "vuex";
import OrgClass from "@/components/project/OrgClass";
import NameInput from "@/components/project/NameInput";
@@ -1220,49 +1218,19 @@ export default {
return message.warning("项目名称重复,请重新填写");
}
state.lpLoading = true;
let obj = {
api.createLearnPath({
name: state.pathName,
remark: state.pathIntro,
status: 0,
organizationId: state.organizationSelectId,
organizationName: state.organizationSelectName,
picUrl: state.pathBg,
};
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.success("创建成功");
state.lpLoading = false;
state.currentPage = 1;
router.push("/leveladd");
storage.set("routerId", res.data.data.routerId);
// getLearnPath();
}, commonData.timeout);
})
.catch((chapterErr) => {
console.log("关卡创建失败", chapterErr);
});
}
}).then(id => {
message.destroy();
message.success("创建成功");
state.lpLoading = false;
router.push( {path: "/leveladd",query:{routerId: id }})
})
.catch((err) => {
console.log("创建失败", err);
// state.createLoading = false;
});
};
//获取学习路径列表
@@ -1536,15 +1504,15 @@ export default {
function manage(id) {
router.push({
path: "/leveladd",
query:{routerId:id}
});
storage.set("routerId", id);
}
const getLearnPathInfo = (id) => {
// console.log("编辑学习路径图id", id);
//获取学习路径详情
api
.getRouterDetail(id)
.getRouterDetail(id,"draft")
.then((res) => {
if (res.data.code === 200) {
console.log("获取学习路径详情成功", res.data.data);

View File

@@ -1354,7 +1354,6 @@
import { ref, reactive, toRefs, onMounted, createVNode, watch } from "vue";
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
import { message, Modal } from "ant-design-vue";
// import PathAddStu from "../../components/drawers/pathStuAdd";
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import ImpStu from "../../components/drawers/AddLevelImportStu";
import CheckStu from "../../components/drawers/CheckStu";
@@ -1365,20 +1364,15 @@ import TestManage from "../../components/drawers/TestManage";
import FaceManage from "../../components/drawers/FaceManage";
import WorkManage from "../../components/drawers/WorkManage";
import SeeStu from "../../components/drawers/SeeStu";
import { useRouter } from "vue-router";
// import { useStore } from "vuex";
import { storage } from "../../api/storage";
import { useRouter,useRoute } from "vue-router";
import { getRouterOverview } from "@/api/indexLearningPath";
import { handleLearnPath } from "../../api/index1";
import { GetRouterDetail } from "@/api/indexTask";
import * as api from "../../api/index1";
import { editRoutered } from "../../api/indexLearningPath";
// import { codeUrl } from "../../api/method";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
import TableStudent from "@/components/student/TableStudent";
// import * as student from "@/api/student";
import { getStuPage, moveStudent } from "@/api/index1";
import RouterFaceTeachManage from "../../components/drawers/router/RouterFaceTeachManage";
import RouterExaminationManage from "../../components/drawers/router/RouterExaminationManage";
import RouterExaminationExternalManage from "../../components/drawers/router/RouterExaminationExternalManage";
@@ -1417,15 +1411,15 @@ export default {
},
setup() {
const router = useRouter();
const route = useRoute();
// const store = useStore();
const state = reactive({
permissions: "",
hasTask: false,
stage: [],
statess: [],
routerId: storage.get("routerId")
? JSON.parse(storage.get("routerId"))
: null, //学习路径页面传的学习路径id
routerId: route.query.routerId, //学习路径页面传的学习路径id
gatename: null, //关卡名称
gatenamee: null, //学员管理关卡名称
action: null,
@@ -2196,7 +2190,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">
@@ -618,8 +618,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">
@@ -861,7 +861,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";
@@ -1033,8 +1033,21 @@ export default {
state.updateChapterID = null;
};
const successA = () => {
getDetail()
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)
})
//
}
//新建关卡
@@ -1287,7 +1300,7 @@ export default {
};
const getDetail = () => {
console.log('调用查询')
GetRouterDetail(state.routerId, "N")
GetRouterDetail(state.routerId, "draft")
.then((res) => {
//给level赋初始值
state.level = res.data.data.chapterList;
@@ -1870,7 +1883,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="btnText">切换模式</div>
</div>
<unlock-mode v-model:unlockModeVisible="unlockModeVisible" />
</div>
<!-- <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 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>
@@ -246,23 +259,17 @@
<!-- TODO1216 -->
<div class="item" @click="showDrawerAddDiscuss">
<div class="itcon">
<div class="img">
<img src="../../assets/images/leveladd/tao.png" />
</div>
<div class="text">讨论</div>
<div class="img">
<img src="../../assets/images/leveladd/tao.png" />
</div>
<div class="text">讨论</div>
</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,40 +318,33 @@
</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>
</div>
<!-- TODO1216 -->
<div class="item" @click="showDrawerAddVote">
<div class="itcon">
<div class="img">
<img src="../../assets/images/leveladd/tou.png" />
</div>
<div class="text">投票</div>
<div class="item" @click="showDrawerAddVote">
<div class="itcon">
<div class="img">
<img src="../../assets/images/leveladd/tou.png" />
</div>
<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"
/>
</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" />
</div>
</div>
</div>
</div>
</div>
<div class="boom">
@@ -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,
@@ -494,10 +498,11 @@
</div>
<div style="width: 87px; text-align: center">
{{
element.cretime
?
element.type==1? Math.ceil(Number(element.cretime)/60) + "分钟" : element.cretime + "分钟"
: "-"
element.cretime
?
element.type == 1 ? Math.ceil(Number(element.cretime) / 60) + "分钟" :
element.cretime + "分钟"
: "-"
}}
</div>
<div style="
@@ -507,7 +512,7 @@
">
<div class="opa">
<div class="opacation">
<span style="
<span v-if="element.type !== 5" style="
color: #4ea6ff;
margin-right: 25px;
cursor: pointer;
@@ -520,7 +525,14 @@
">
编辑
</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>
</div>
@@ -565,13 +577,13 @@
<div class="footbtn">
<div class="btnbox">
<div class="btn btn2" @click="temporaryStorage">
<div class="btnText">暂存</div>
<div class="btnText">暂存</div>
</div>
<div class="btn btn2" @click="submitStorage">
<div class="btnText">确定</div>
<div class="btnText">确定</div>
</div>
<div class="btn btn1" @click="cancelStorage">
<div class="btnText">取消</div>
<div class="btnText">取消</div>
</div>
</div>
</div>
@@ -653,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">
@@ -677,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">
@@ -701,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">
@@ -789,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>
@@ -888,6 +904,8 @@ export default {
//阶段数据
level: [],
stageList: [],
projectInfo: null, // 项目信息
unlockMode: 1, // 学习模式
projectTitle: null,
picUrl: null,
@@ -1010,11 +1028,11 @@ export default {
data.map((value) => {
if (value.stageId != 0) {
let obj = {
id: value.stageId,
id: value.id,
tit: value.name,
name: value.remark,
taskList: value.taskList,
value: value.stageId,
value: value.id,
label: value.name,
courseId: value.courseId ? value.courseId : null,
};
@@ -1153,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 = {
@@ -1164,15 +1197,17 @@ 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') {
if (data[i].id !== '0') {
arraynew.push(data[i])
}
}
// console.log(arraynew)
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,
closeCancel,
showDelete,
saveUnlock,
closeDelete,
showChangeModal,
closeChangeModal,

View File

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