mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-16 06:16:46 +08:00
feat:合并
This commit is contained in:
13
src/App.vue
13
src/App.vue
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="container">
|
<div id="container" v-if="!isLogin">
|
||||||
<nav-top />
|
<nav-top />
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<nav-left />
|
<nav-left />
|
||||||
@@ -14,9 +14,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="container" v-if="isLogin">
|
||||||
|
<router-view/>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { computed, defineComponent } from "vue";
|
import {computed, defineComponent, ref, watch} from "vue";
|
||||||
import { useRouter, useRoute } from "vue-router";
|
import { useRouter, useRoute } from "vue-router";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import NavLeft from "@/components/NavLeft";
|
import NavLeft from "@/components/NavLeft";
|
||||||
@@ -36,11 +39,16 @@ export default defineComponent({
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
const isLogin = ref(false)
|
||||||
// console.log("router", router.getRoutes(), route);
|
// console.log("router", router.getRoutes(), route);
|
||||||
const routes = computed(() => {
|
const routes = computed(() => {
|
||||||
return router.getRoutes().filter((e) => e.meta?.isLink);
|
return router.getRoutes().filter((e) => e.meta?.isLink);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
watch(() => route.path, () => {
|
||||||
|
route.path === '/login' && (isLogin.value = true)
|
||||||
|
})
|
||||||
|
|
||||||
const currentRouteName = computed(() => route.name);
|
const currentRouteName = computed(() => route.name);
|
||||||
|
|
||||||
//获取组织树
|
//获取组织树
|
||||||
@@ -68,6 +76,7 @@ export default defineComponent({
|
|||||||
getOrgTree();
|
getOrgTree();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
isLogin,
|
||||||
routes,
|
routes,
|
||||||
name: currentRouteName,
|
name: currentRouteName,
|
||||||
zhCN,
|
zhCN,
|
||||||
|
|||||||
@@ -75,3 +75,5 @@ export const getTemplateDetail = (obj) => http.get('/admin/project/template/deta
|
|||||||
//获取项目统计
|
//获取项目统计
|
||||||
export const getProjectCount = (projectId) => http.get('/admin/project/projectCount', { params: { projectId: projectId } })
|
export const getProjectCount = (projectId) => http.get('/admin/project/projectCount', { params: { projectId: projectId } })
|
||||||
|
|
||||||
|
export const login = (obj) => http.post('/admin/CheckUser/userLogin', obj)
|
||||||
|
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ const setCookie = (name, value, perpetual) => {
|
|||||||
console.log('存储token到cookie')
|
console.log('存储token到cookie')
|
||||||
let exdate = new Date()
|
let exdate = new Date()
|
||||||
exdate.setDate(perpetual * 24 * 60 * 60 * 1000) //exdate.setDate(exdate.getDate() + 365)
|
exdate.setDate(perpetual * 24 * 60 * 60 * 1000) //exdate.setDate(exdate.getDate() + 365)
|
||||||
document.cookie = name + '=' + value + ';expires=' + exdate.toGMTString()
|
document.cookie = `${name}=${value};expires=${exdate.toGMTString()};path=/`
|
||||||
//永久有效
|
//永久有效
|
||||||
//document.cookie = name + '=' + value + ';expires=' + 'Fri, 31 Dec 9999 23:59:59 GMT'
|
//document.cookie = name + '=' + value + ';expires=' + 'Fri, 31 Dec 9999 23:59:59 GMT'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -110,7 +110,7 @@ export default {
|
|||||||
};
|
};
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
console.log("state getAllInvistText", bool,"======",props.titleTag);
|
console.log("state getAllInvistText", bool,"======",props.titleTag);
|
||||||
if (props.assessmentVisible) {
|
if (props.assessmentVisible&&bool) {
|
||||||
getAllInvistText();
|
getAllInvistText();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -181,7 +181,7 @@
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
"
|
"
|
||||||
:v-model:value="beforeStart"
|
:v-model:value="beforeStartValue"
|
||||||
></a-input-number>
|
></a-input-number>
|
||||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -195,9 +195,8 @@
|
|||||||
width: 88px;
|
width: 88px;
|
||||||
height: 32px;
|
height: 32px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
overflow: hidden;
|
overflow: hidden;"
|
||||||
"
|
:value="afterStartValue"
|
||||||
:v-model:value="afterStart"
|
|
||||||
></a-input-number>
|
></a-input-number>
|
||||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -223,7 +222,7 @@
|
|||||||
<span style="margin-right: 3px">其他设置:</span>
|
<span style="margin-right: 3px">其他设置:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-checkbox v-model:checked="complete_leave" @click="complete_leave=!complete_leave"
|
<a-checkbox v-model:checked="completeLeave" @click="completeLeave=!completeLeave"
|
||||||
>学员请假后记为任务完成</a-checkbox
|
>学员请假后记为任务完成</a-checkbox
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
@@ -242,7 +241,7 @@
|
|||||||
<span style="margin-right: 3px">评估:</span>
|
<span style="margin-right: 3px">评估:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnbox2">
|
<div class="btnbox2">
|
||||||
<a-checkbox v-model:checked="needEval"
|
<a-checkbox v-model:checked="needEval" @click="needEval=!needEval"
|
||||||
>需要评估</a-checkbox >
|
>需要评估</a-checkbox >
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -408,6 +407,11 @@ export default {
|
|||||||
type: Number,
|
type: Number,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
|
projectTemplateId:{
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
|
|
||||||
},
|
},
|
||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
const options = ref([]);
|
const options = ref([]);
|
||||||
@@ -426,10 +430,10 @@ export default {
|
|||||||
memberId: 0,
|
memberId: 0,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
courseName: "",
|
courseName: "",
|
||||||
duration: "",
|
duration:null,
|
||||||
address: null,
|
address: null,
|
||||||
beforeStart: null,
|
beforeStartValue:20,
|
||||||
afterStart: null,
|
afterStartValue:10,
|
||||||
description: "",
|
description: "",
|
||||||
chooseTime: [],
|
chooseTime: [],
|
||||||
fileList: [],
|
fileList: [],
|
||||||
@@ -437,19 +441,20 @@ export default {
|
|||||||
assessmentId:null,
|
assessmentId:null,
|
||||||
EditTestId:null,
|
EditTestId:null,
|
||||||
EditWorkId:null,
|
EditWorkId:null,
|
||||||
assessmentVisible: false,
|
assessmentVisible:false,
|
||||||
|
needEval:false,
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
const clear = () => {
|
const clear = () => {
|
||||||
state.courseName = null;
|
state.courseName = "";
|
||||||
state.memberValue = null;
|
state.memberValue = null;
|
||||||
state.duration = null;
|
state.duration = null;
|
||||||
state.address = null;
|
state.address = null;
|
||||||
state.beforeStart = null;
|
state.beforeStart = 0;
|
||||||
state.afterStart = null;
|
state.afterStartValue =0;
|
||||||
state.chooseTime = [];
|
state.chooseTime = [];
|
||||||
state.description = null;
|
state.description ="";
|
||||||
state.onlySign =false;
|
state.onlySign =false;
|
||||||
state.completeLeave =false;
|
state.completeLeave =false;
|
||||||
state.projectMember =false;
|
state.projectMember =false;
|
||||||
@@ -458,7 +463,9 @@ export default {
|
|||||||
state.EditTestId =null;
|
state.EditTestId =null;
|
||||||
state.assessmentId=null;
|
state.assessmentId=null;
|
||||||
state.EditWorkId=null;
|
state.EditWorkId=null;
|
||||||
|
state.EditEvalId=null;
|
||||||
|
state.applyFlag="";
|
||||||
|
console.log("state.afterStart",state.afterStartValue);
|
||||||
};
|
};
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:addfaceteachVisible", false);
|
ctx.emit("update:addfaceteachVisible", false);
|
||||||
@@ -505,6 +512,7 @@ export default {
|
|||||||
|
|
||||||
//查询面授
|
//查询面授
|
||||||
const queryFaceTeach = () => {
|
const queryFaceTeach = () => {
|
||||||
|
console.log("props.EditFaceI========d",props.EditFaceId);
|
||||||
queryFaceDetailById(props.EditFaceId).then((res) => {
|
queryFaceDetailById(props.EditFaceId).then((res) => {
|
||||||
console.log("获取到了面授课开课详情", res.data.data);
|
console.log("获取到了面授课开课详情", res.data.data);
|
||||||
let result = res.data.data;
|
let result = res.data.data;
|
||||||
@@ -522,14 +530,15 @@ export default {
|
|||||||
}
|
}
|
||||||
state.address = result.address;
|
state.address = result.address;
|
||||||
state.beforeStart = result.beforeStart;
|
state.beforeStart = result.beforeStart;
|
||||||
state.afterStart = result.afterStart;
|
state.afterStartValue = result.afterStart;
|
||||||
|
console.log("编辑========",state.afterStartValue);
|
||||||
state.fileList = JSON.parse(result.attach);
|
state.fileList = JSON.parse(result.attach);
|
||||||
state.EditWorkId = result.homeWorkId;
|
state.EditWorkId = result.homeWorkId;
|
||||||
state.onlySign = result.completeType.split(",")[0]==1?true:false;
|
state.onlySign = result.completeType.split(",")[0]=="1"?true:false;
|
||||||
state.completeLeave =result.completeType.split(",")[1]==1?true:false;
|
state.completeLeave =result.completeType.split(",")[1]=="1"?true:false;
|
||||||
state.chooseCourse =result.offcourseId;
|
state.chooseCourse =result.offcourseId;
|
||||||
state.projectMember = result.projectMember.split(",")[0]==1?true:false;
|
state.projectMember = result.projectMember.split(",")[0]=="1"?true:false;
|
||||||
state.noProjectMember = result.projectMember.split(",")[1]==1?true:false;
|
state.noProjectMember = result.projectMember.split(",")[1]=="1"?true:false;
|
||||||
state.EditTestId = result.testId;
|
state.EditTestId = result.testId;
|
||||||
state.EditWorkId=result.homeWorkId;
|
state.EditWorkId=result.homeWorkId;
|
||||||
state.assessmentId =result.evaluateId;
|
state.assessmentId =result.evaluateId;
|
||||||
@@ -539,13 +548,18 @@ export default {
|
|||||||
//新建或编辑面授
|
//新建或编辑面授
|
||||||
// 新增任务
|
// 新增任务
|
||||||
const updateFaceTeach = () => {
|
const updateFaceTeach = () => {
|
||||||
|
console.log("v",state.beforeStart,"v",state.afterStartValue,"v",
|
||||||
|
state.applyFlag,"v",state.evalFlag,"v",state.completeType,"state.address",state.address);
|
||||||
if (
|
if (
|
||||||
|
/*
|
||||||
state.courseName == "" ||
|
state.courseName == "" ||
|
||||||
state.chooseCourse == null ||
|
state.chooseCourse == null ||s
|
||||||
state.memberValue == "" ||
|
state.memberValue == "" ||
|
||||||
state.chooseTime == [] ||
|
state.chooseTime == [] ||
|
||||||
state.duration == "" ||
|
state.duration == "" ||
|
||||||
|
*/
|
||||||
state.address == ""
|
state.address == ""
|
||||||
|
|
||||||
) {
|
) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("请输入必填字段");
|
return message.warning("请输入必填字段");
|
||||||
@@ -554,27 +568,27 @@ export default {
|
|||||||
teacherId:state.memberValue.value,
|
teacherId:state.memberValue.value,
|
||||||
teacher:state.memberValue.label,
|
teacher:state.memberValue.label,
|
||||||
address:state.address,
|
address:state.address,
|
||||||
applyFlag: 1,
|
applyFlag: state.applyFlag,
|
||||||
attach: JSON.stringify(state.fileList),
|
attach: JSON.stringify(state.fileList),
|
||||||
afterStart: state.afterStart || 0,
|
afterStart:state.afterStartValue ||0,
|
||||||
beforeStart: state.beforeStart || 0,
|
beforeStart:state.beforeStart,
|
||||||
beginTime: parseInt( new Date(state.chooseTime[0].$d).getTime() / 1000),
|
beginTime: parseInt( new Date(state.chooseTime[0].$d).getTime() / 1000),
|
||||||
completeType: state.onlySign? "1,":"0," + state.completeLeave?"1":"0",
|
completeType: state.onlySign? "1,":"0," + state.completeLeave?"1":"0",
|
||||||
description: state.description,
|
description: state.description,
|
||||||
endTime: parseInt(new Date(state.chooseTime[1].$d).getTime() / 1000),
|
endTime: parseInt(new Date(state.chooseTime[1].$d).getTime() / 1000),
|
||||||
evalFlag: state.needEval?1:0,
|
evalFlag:state.needEval?1:0,
|
||||||
evaluateId:state.assessmentId,
|
evaluateId:state.assessmentId,
|
||||||
homeWorkId: state.EditWorkId,
|
homeWorkId: state.EditWorkId,
|
||||||
name: state.courseName,
|
name: state.courseName,
|
||||||
projectMember:state.innerPersion?"1":"0" + state.outPerson?"1":"0",
|
projectMember:state.innerPersion?"1,":"0," + state.outPerson?"1":"0",
|
||||||
offcourseId:state.chooseCourse,
|
offcourseId:state.chooseCourse,
|
||||||
offcoursePlanId:props.EditFaceId >0 ? props.EditFaceId : 0,
|
offcoursePlanId:props.EditFaceId >0 ? props.EditFaceId : 0,
|
||||||
signFlag: 0,
|
|
||||||
testId: state.EditTestId
|
testId: state.EditTestId
|
||||||
};
|
};
|
||||||
|
|
||||||
editPlan(obj)
|
editPlan(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
console.log("更新任务s's");
|
||||||
updateTask(res);
|
updateTask(res);
|
||||||
closeDrawer();
|
closeDrawer();
|
||||||
}).catch((err) => {
|
}).catch((err) => {
|
||||||
@@ -588,6 +602,7 @@ export default {
|
|||||||
//更新任务列表
|
//更新任务列表
|
||||||
// 新增编辑或新增项目任务
|
// 新增编辑或新增项目任务
|
||||||
const updateTask = (res) => {
|
const updateTask = (res) => {
|
||||||
|
console.log("props.isLevel=====",props.isLevel);
|
||||||
if (props.isLevel == 1) {
|
if (props.isLevel == 1) {
|
||||||
let editObj1 = {
|
let editObj1 = {
|
||||||
chapterId: props.isactive,
|
chapterId: props.isactive,
|
||||||
@@ -610,7 +625,7 @@ export default {
|
|||||||
} else if (props.isLevel == 2) {
|
} else if (props.isLevel == 2) {
|
||||||
let editObj = {
|
let editObj = {
|
||||||
courseId: res.data.data.offcoursePlanId,
|
courseId: res.data.data.offcoursePlanId,
|
||||||
duration: 0,
|
duration: res.data.data.duration,
|
||||||
name: res.data.data.name,
|
name: res.data.data.name,
|
||||||
projectId: props.projectId,
|
projectId: props.projectId,
|
||||||
projectTaskId: props.projectTaskId || 0,
|
projectTaskId: props.projectTaskId || 0,
|
||||||
@@ -629,11 +644,12 @@ export default {
|
|||||||
message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
|
message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
|
||||||
});
|
});
|
||||||
} else if (props.isLevel == 3) {
|
} else if (props.isLevel == 3) {
|
||||||
|
console.log("dddddddddddd33333333");
|
||||||
addTempTask({
|
addTempTask({
|
||||||
courseId: res.data.data.offcoursePlanId,
|
courseId: res.data.data.offcoursePlanId,
|
||||||
name: res.data.data.name,
|
name: res.data.data.name,
|
||||||
duration: res.data.data.duration,
|
duration: res.data.data.duration,
|
||||||
projectTemplateId: props.projectTemplateId,
|
projectTemplateId:props.projectTemplateId,
|
||||||
projectTaskId: props.projectTaskId || 0,
|
projectTaskId: props.projectTaskId || 0,
|
||||||
stageId: props.chooseStageId || 0,
|
stageId: props.chooseStageId || 0,
|
||||||
type: 2,
|
type: 2,
|
||||||
|
|||||||
@@ -276,7 +276,6 @@ export default {
|
|||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
closeDrawer,
|
closeDrawer,
|
||||||
updateTask,
|
updateTask,
|
||||||
AssessmentList,
|
|
||||||
checkAssDrawer,
|
checkAssDrawer,
|
||||||
getCheckedAss,
|
getCheckedAss,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -121,39 +121,44 @@
|
|||||||
></a-auto-complete>
|
></a-auto-complete>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_item2">
|
<div class="mbl_items2">
|
||||||
<div class="signbox">
|
<div class="item_nam">
|
||||||
<span style="margin-right: 3px">直播封面:</span>
|
<div class="asterisk_icon">
|
||||||
</div>
|
<img
|
||||||
<div
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
class="textarea"
|
alt=""
|
||||||
style="overflow: hidden; width: 102px; height: 102px"
|
/>
|
||||||
>
|
</div>
|
||||||
<a-upload
|
<span style="margin-right: 14px">直播封面</span>
|
||||||
v-model:file-list="fileList"
|
</div>
|
||||||
name="avatar"
|
<div class="item_inp">
|
||||||
list-type="picture-card"
|
|
||||||
class="avatar-uploader"
|
<a-upload
|
||||||
:show-upload-list="false"
|
name="avatar"
|
||||||
action="/manageApi/file/upload"
|
list-type="picture-card"
|
||||||
:before-upload="beforeUpload"
|
class="avatar-uploader"
|
||||||
@change="handleChange"
|
:show-upload-list="false"
|
||||||
>
|
:before-upload="beforeUpload"
|
||||||
<img
|
>
|
||||||
v-if="imageUrl"
|
<img
|
||||||
:src="imageUrl"
|
class="i_upload_img"
|
||||||
alt="avatar"
|
v-if="imageUrl"
|
||||||
style="“width:100px;height:100px;”"
|
:src="imageUrl"
|
||||||
/>
|
alt="avatar"
|
||||||
<div v-else>
|
/>
|
||||||
<loading-outlined v-if="loading"></loading-outlined>
|
<div class="i_upload" v-else>
|
||||||
<plus-outlined v-else></plus-outlined>
|
<div class="addimg">
|
||||||
<div class="ant-upload-text">Upload</div>
|
<div class="heng"></div>
|
||||||
</div>
|
<div class="shu"></div>
|
||||||
</a-upload>
|
</div>
|
||||||
<div class="tip">支持图片格式为jpg/jpeg/png 图片最大为2MB</div>
|
</div>
|
||||||
</div>
|
</a-upload>
|
||||||
</div>
|
<div class="i_bottom">
|
||||||
|
<div class="tip">支持图片格式为jpg/jpeg/png 图片最大为2MB</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="main_item" style="margin-top: -10px">
|
<div class="main_item" style="margin-top: -10px">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<span style="margin-right: 3px">直播链接:</span>
|
<span style="margin-right: 3px">直播链接:</span>
|
||||||
@@ -174,7 +179,7 @@
|
|||||||
<a-switch v-model:checked="switchC1" @click="PlayBack" />
|
<a-switch v-model:checked="switchC1" @click="PlayBack" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div :style="{ display: playback ? 'block' : 'none' }">
|
<div v-if ="switchC1">
|
||||||
<div class="main_item">
|
<div class="main_item">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<span style="margin-right: 3px">回放链接:</span>
|
<span style="margin-right: 3px">回放链接:</span>
|
||||||
@@ -189,33 +194,34 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="main_item">
|
<div class="main_item2">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<span style="margin-right: 3px">评价:</span>
|
<span style="margin-right: 3px">评估:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnbox">
|
<div class="btnbox2">
|
||||||
<a-checkbox v-model:checked="checkedC1" @change="checkRadio"
|
<a-checkbox v-model:checked="needEval" @click="needEval=!needEval"
|
||||||
>需要评估</a-checkbox
|
>需要评估</a-checkbox >
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="needEval" class="main_item">
|
||||||
class="main_item"
|
<div class="signbox">
|
||||||
style="margin-top: -25px"
|
</div>
|
||||||
:style="{ display: checkedC1 ? 'block' : 'none' }"
|
|
||||||
>
|
|
||||||
<div class="signbox"></div>
|
|
||||||
<div class="btnbox">
|
<div class="btnbox">
|
||||||
<a-select
|
<button class="xkbtn" @click="showAssessment">选择评估</button>
|
||||||
v-model:value="assessmentvalue"
|
<div v-if = "assessmentId >0 ">
|
||||||
show-search
|
<a-tag closable color="processing" @close="logA">
|
||||||
placeholder="选择评估"
|
<span style="font-size:14px;line-height: 33px;" >删除评估</span>
|
||||||
style="width: 364px"
|
</a-tag></div>
|
||||||
:options="assessment"
|
<AssessmentList
|
||||||
@change="handleChangeAssessment"
|
v-model:assessmentVisible="assessmentVisible"
|
||||||
></a-select>
|
v-model:titleTag="titleTag"
|
||||||
|
v-model:assessmentId="assessmentId"
|
||||||
|
/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="main_item2">
|
<div class="main_item2">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<span style="margin-right: 3px">考勤设置:</span>
|
<span style="margin-right: 3px">考勤设置:</span>
|
||||||
@@ -327,6 +333,9 @@ import { RouterEditTask } from "@/api/indexTask";
|
|||||||
import { addTempTask } from "../../api/indexTaskadd";
|
import { addTempTask } from "../../api/indexTaskadd";
|
||||||
import { getMemberInfo } from "@/api/index1";
|
import { getMemberInfo } from "@/api/index1";
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
|
import { fileUp } from "../../api/indexEval";
|
||||||
|
import AssessmentList from "../drawers/ AssessmentList.vue";
|
||||||
|
|
||||||
import { debounce } from "lodash-es";
|
import { debounce } from "lodash-es";
|
||||||
// import { useRouter } from "vue-router";
|
// import { useRouter } from "vue-router";
|
||||||
function getBase64(img, callback) {
|
function getBase64(img, callback) {
|
||||||
@@ -337,6 +346,9 @@ function getBase64(img, callback) {
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AddLive",
|
name: "AddLive",
|
||||||
|
components:{
|
||||||
|
AssessmentList
|
||||||
|
},
|
||||||
props: {
|
props: {
|
||||||
addliveVisible: {
|
addliveVisible: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
@@ -419,6 +431,9 @@ export default {
|
|||||||
obj: {}, //要传的obj数据
|
obj: {}, //要传的obj数据
|
||||||
assessment: [], //评估信息
|
assessment: [], //评估信息
|
||||||
assessmentvalue: null,
|
assessmentvalue: null,
|
||||||
|
needEval:false,
|
||||||
|
otherSettings:false,
|
||||||
|
assessmentVisible:false,
|
||||||
});
|
});
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:addliveVisible", false);
|
ctx.emit("update:addliveVisible", false);
|
||||||
@@ -437,12 +452,14 @@ export default {
|
|||||||
state.textV1 = "";
|
state.textV1 = "";
|
||||||
state.switchC1 = "";
|
state.switchC1 = "";
|
||||||
state.imageUrl = "";
|
state.imageUrl = "";
|
||||||
|
state.needEval=false;
|
||||||
|
state.otherSettings;
|
||||||
ctx.emit("changeData", false);
|
ctx.emit("changeData", false);
|
||||||
localStorage.setItem("stageId", props.chooseStageId);
|
localStorage.setItem("stageId", props.chooseStageId);
|
||||||
localStorage.setItem("chapterId", props.isactive);
|
localStorage.setItem("chapterId", props.isactive);
|
||||||
};
|
};
|
||||||
const afterVisibleChange = () => {
|
const afterVisibleChange = (bool) => {
|
||||||
if (props.edit) {
|
if (props.edit&&bool) {
|
||||||
queryLive();
|
queryLive();
|
||||||
}
|
}
|
||||||
api
|
api
|
||||||
@@ -492,6 +509,7 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const cloradio1 = (value) => {
|
const cloradio1 = (value) => {
|
||||||
if (state.radioV1 === value.target._value) {
|
if (state.radioV1 === value.target._value) {
|
||||||
state.radioV1 = "";
|
state.radioV1 = "";
|
||||||
@@ -519,24 +537,7 @@ export default {
|
|||||||
message.error("upload error");
|
message.error("upload error");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const beforeUpload = (file) => {
|
|
||||||
const isJpgOrPng =
|
|
||||||
file.type === "image/jpeg" ||
|
|
||||||
file.type === "image/png" ||
|
|
||||||
file.type === "image/jpg";
|
|
||||||
|
|
||||||
if (!isJpgOrPng) {
|
|
||||||
message.error("You can only upload JPG file!");
|
|
||||||
}
|
|
||||||
|
|
||||||
const isLt2M = file.size / 1024 / 1024 < 2;
|
|
||||||
|
|
||||||
if (!isLt2M) {
|
|
||||||
message.error("Image must smaller than 2MB!");
|
|
||||||
}
|
|
||||||
|
|
||||||
return isJpgOrPng && isLt2M;
|
|
||||||
};
|
|
||||||
const updateTask = (res) => {
|
const updateTask = (res) => {
|
||||||
if (props.isLevel == 1) {
|
if (props.isLevel == 1) {
|
||||||
RouterEditTask({
|
RouterEditTask({
|
||||||
@@ -593,6 +594,11 @@ export default {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const showAssessment = () => {
|
||||||
|
|
||||||
|
state.assessmentVisible = true;
|
||||||
|
console.log("hshs======",state.assessmentVisible);
|
||||||
|
};
|
||||||
//创建直播
|
//创建直播
|
||||||
const updateLiveBroadcast = () => {
|
const updateLiveBroadcast = () => {
|
||||||
if (!state.inputV1) {
|
if (!state.inputV1) {
|
||||||
@@ -638,9 +644,10 @@ export default {
|
|||||||
livePlayback: state.playback ? "true" : "false",
|
livePlayback: state.playback ? "true" : "false",
|
||||||
livePlaybackLink: state.playback ? state.inputV5 : "",
|
livePlaybackLink: state.playback ? state.inputV5 : "",
|
||||||
liveTeacherId: state.inputV3,
|
liveTeacherId: state.inputV3,
|
||||||
otherSettings: 0, //1或0
|
otherSettings: state.otherSettings, //1或0
|
||||||
signOutTime: state.inputV8,
|
signOutTime: state.inputV8,
|
||||||
standardSettings: state.radioV1, //1或2
|
standardSettings: state.radioV1, //1或2
|
||||||
|
isEvaluate:state.eedEval ? "1":"0",
|
||||||
};
|
};
|
||||||
if (props.edit) {
|
if (props.edit) {
|
||||||
api
|
api
|
||||||
@@ -662,6 +669,42 @@ export default {
|
|||||||
.catch(() => {});
|
.catch(() => {});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const beforeUpload = (file) => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const isJpgOrPng =
|
||||||
|
file.type === "image/jpg" ||
|
||||||
|
file.type === "image/jpeg" ||
|
||||||
|
file.type === "image/png" ||
|
||||||
|
file.type === "image/svg" ||
|
||||||
|
file.type === "image/bmp" ||
|
||||||
|
file.type === "image/gif";
|
||||||
|
if (!isJpgOrPng) {
|
||||||
|
message.error("仅支持jpg、gif、png、jpeg、svg、bmp格式!");
|
||||||
|
return reject(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
let reader = new FileReader();
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
reader.onload = () => {
|
||||||
|
const image = new Image();
|
||||||
|
image.src = reader.result;
|
||||||
|
image.onload = () => {
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("file", file);
|
||||||
|
console.log(file);
|
||||||
|
fileUp(formData).then((res) => {
|
||||||
|
if (res.data.code === 200) {
|
||||||
|
state.imageUrl = res.data.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return resolve(true);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
return reject(false);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const templateScroll = (e) => {
|
const templateScroll = (e) => {
|
||||||
console.log("滚动", e);
|
console.log("滚动", e);
|
||||||
const { target } = e;
|
const { target } = e;
|
||||||
@@ -728,9 +771,7 @@ export default {
|
|||||||
state.discussSettings = "false";
|
state.discussSettings = "false";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const handleChangeAssessment = (option) => {
|
|
||||||
state.assessmentId = option.assessmentId;
|
|
||||||
};
|
|
||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
@@ -743,10 +784,10 @@ export default {
|
|||||||
handleChange2,
|
handleChange2,
|
||||||
options,
|
options,
|
||||||
checkRadio,
|
checkRadio,
|
||||||
handleChangeAssessment,
|
|
||||||
queryMember,
|
queryMember,
|
||||||
templateScroll,
|
templateScroll,
|
||||||
handleSearch,
|
handleSearch,
|
||||||
|
showAssessment,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -874,6 +915,63 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.mbl_items2 {
|
||||||
|
display: flex;
|
||||||
|
align-items: start;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
.i_bottom{
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
.item_nam {
|
||||||
|
width: 100px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
white-space: nowrap;
|
||||||
|
.asterisk_icon {
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
margin-right: 5px;
|
||||||
|
margin-top: -15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.item_inp {
|
||||||
|
flex: 1;
|
||||||
|
.i_upload_img {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.i_upload {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
border: 1px solid #4ea6ff;
|
||||||
|
border-radius: 8px;
|
||||||
|
text-align: center;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
.addimg {
|
||||||
|
position: relative;
|
||||||
|
.heng {
|
||||||
|
position: absolute;
|
||||||
|
top: 50px;
|
||||||
|
left: 25px;
|
||||||
|
width: 50px;
|
||||||
|
border: 1px solid #4ea6ff;
|
||||||
|
}
|
||||||
|
.shu {
|
||||||
|
position: absolute;
|
||||||
|
top: 25px;
|
||||||
|
left: 50px;
|
||||||
|
height: 50px;
|
||||||
|
border: 1px solid #4ea6ff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.main_btns {
|
.main_btns {
|
||||||
|
|||||||
@@ -392,7 +392,7 @@ export default {
|
|||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
const formState = reactive({
|
const formState = reactive({
|
||||||
examinationName: "",
|
examinationName: "",
|
||||||
examinationDuration: "",
|
examinationDuration:0,
|
||||||
examinationLimit: "",
|
examinationLimit: "",
|
||||||
passLine:null,
|
passLine:null,
|
||||||
examinationEndTime: "",
|
examinationEndTime: "",
|
||||||
|
|||||||
@@ -370,12 +370,7 @@
|
|||||||
<span style="margin-right: 14px">封面图</span>
|
<span style="margin-right: 14px">封面图</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="item_inp">
|
<div class="item_inp">
|
||||||
<!-- <div class="i_upload">
|
|
||||||
<div class="addimg">
|
|
||||||
<div class="heng"></div>
|
|
||||||
<div class="shu"></div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<a-upload
|
<a-upload
|
||||||
name="avatar"
|
name="avatar"
|
||||||
list-type="picture-card"
|
list-type="picture-card"
|
||||||
@@ -1750,21 +1745,16 @@
|
|||||||
<span style="margin-right: 3px">完成规则</span>
|
<span style="margin-right: 3px">完成规则</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="b_input">
|
<div class="b_input">
|
||||||
<a-radio-group v-model:value="xjkkradioV2">
|
<a-checkbox v-model:checked="regisCom" @click="regisCom =!regisCom">
|
||||||
<a-radio :value="1" @click="clear_xjkkradioV2">
|
<span style="color: #6d7584">报名即完成</span>
|
||||||
<span style="color: #6d7584; margin-right: 30px">
|
</a-checkbox>
|
||||||
报名即完成
|
<a-checkbox v-model:checked="signCom" @click="signCom =!signCom">
|
||||||
</span>
|
<span style="color: #6d7584">签到即完成</span>
|
||||||
</a-radio>
|
</a-checkbox>
|
||||||
<a-radio :value="2" @click="clear_xjkkradioV2">
|
<a-checkbox v-model:checked="comLeave" @click="comLeave =!comLeave">
|
||||||
<span style="color: #6d7584; margin-right: 30px">
|
<span style="color: #6d7584">请假算完成</span>
|
||||||
签到即完成
|
</a-checkbox>
|
||||||
</span>
|
|
||||||
</a-radio>
|
|
||||||
<a-radio :value="3" @click="clear_xjkkradioV2">
|
|
||||||
<span style="color: #6d7584">请假算完成</span>
|
|
||||||
</a-radio>
|
|
||||||
</a-radio-group>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="cstm_items items_fj">
|
<div class="cstm_items items_fj">
|
||||||
@@ -3343,7 +3333,7 @@ export default defineComponent({
|
|||||||
kkinputV2: "",
|
kkinputV2: "",
|
||||||
//新建开课
|
//新建开课
|
||||||
xjkkradioV1: "",
|
xjkkradioV1: "",
|
||||||
xjkkradioV2: "",
|
completeType: "",
|
||||||
xjkkinputV1: "",
|
xjkkinputV1: "",
|
||||||
xjkkinputV2: "",
|
xjkkinputV2: "",
|
||||||
xjkkinputV3: "",
|
xjkkinputV3: "",
|
||||||
@@ -3379,7 +3369,9 @@ export default defineComponent({
|
|||||||
checked4: false,
|
checked4: false,
|
||||||
offcoursePlanId: 0,
|
offcoursePlanId: 0,
|
||||||
filesList: [],
|
filesList: [],
|
||||||
|
signCom:false ,
|
||||||
|
regisCom:false,
|
||||||
|
comLeave:false,
|
||||||
studentId: 0,
|
studentId: 0,
|
||||||
studentItem: {},
|
studentItem: {},
|
||||||
addOnlineCoursevisible: false, //新建面授弹窗
|
addOnlineCoursevisible: false, //新建面授弹窗
|
||||||
@@ -4107,7 +4099,7 @@ export default defineComponent({
|
|||||||
state.cstm_hs = false;
|
state.cstm_hs = false;
|
||||||
state.kk_eidt = false;
|
state.kk_eidt = false;
|
||||||
state.xjkkradioV1 = "";
|
state.xjkkradioV1 = "";
|
||||||
state.xjkkradioV2 = "";
|
state.completeType = "";
|
||||||
state.xjkkinputV1 = "";
|
state.xjkkinputV1 = "";
|
||||||
state.xjkkinputV2 = "";
|
state.xjkkinputV2 = "";
|
||||||
state.xjkkinputV3 = "";
|
state.xjkkinputV3 = "";
|
||||||
@@ -4130,12 +4122,12 @@ export default defineComponent({
|
|||||||
applyFlag: state.checked1 ? 1 : 0,
|
applyFlag: state.checked1 ? 1 : 0,
|
||||||
attach: state.filesList.length ? state.filesList.join(",") : "",
|
attach: state.filesList.length ? state.filesList.join(",") : "",
|
||||||
beginTime: startTime,
|
beginTime: startTime,
|
||||||
completeType: state.xjkkradioV2,
|
completeType: state.regisCom?"1,":"0,"+state.signCom?"1,":"0,"+state.comLeave?"1":"0",
|
||||||
endTime: endTime,
|
endTime: endTime,
|
||||||
evalFlag: state.checked4 ? 1 : 0,
|
evalFlag: state.checked4 ? 1 : 0,
|
||||||
name: state.xjkkinputV1,
|
name: state.xjkkinputV1,
|
||||||
signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否
|
signFlag: state.xjkkradioV1 === 0 ? 1 : 0, //是否允许未报名的签到:1是0否
|
||||||
signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
|
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
|
||||||
teacherId: state.xjkkinputV4 ? state.xjkkinputV4 : 1,
|
teacherId: state.xjkkinputV4 ? state.xjkkinputV4 : 1,
|
||||||
};
|
};
|
||||||
console.log(postData);
|
console.log(postData);
|
||||||
@@ -4178,13 +4170,17 @@ export default defineComponent({
|
|||||||
dayjs(item.endTime, "YYYY/MM/DD"),
|
dayjs(item.endTime, "YYYY/MM/DD"),
|
||||||
];
|
];
|
||||||
options4CurId.value = item.teacherId;
|
options4CurId.value = item.teacherId;
|
||||||
state.xjkkradioV2 = item.completeType;
|
state.regisCom = item.completeType.split(",")[0]==1?true:false,
|
||||||
|
state.signCom = item.completeType.split(",")[1]==1?true:false,
|
||||||
|
state.comLeave = item.completeType.split(",")[2]==1?true:false,
|
||||||
|
state.completeType = state.regisCom?"1,":"0,"+state.signCom?"1,":"0,"+state.comLeave?"1":"0",
|
||||||
state.checked4 = item.evalFlag === 1 ? true : false;
|
state.checked4 = item.evalFlag === 1 ? true : false;
|
||||||
state.xjkkinputV1 = item.name;
|
state.xjkkinputV1 = item.name;
|
||||||
if (item.signFlag === 1) {
|
if (item.signFlag === 1) {
|
||||||
//是否允许未报名的签到:1是0否
|
//是否允许未报名的签到:1是0否
|
||||||
state.xjkkradioV1 = 0;
|
state.xjkkradioV1 = 0;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
if (item.signWordFlag === 1) {
|
if (item.signWordFlag === 1) {
|
||||||
//签到是否需要口令:1是0否
|
//签到是否需要口令:1是0否
|
||||||
state.xjkkradioV1 = 1;
|
state.xjkkradioV1 = 1;
|
||||||
@@ -4192,6 +4188,7 @@ export default defineComponent({
|
|||||||
if (item.signFlag === 0 && item.signWordFlag === 0) {
|
if (item.signFlag === 0 && item.signWordFlag === 0) {
|
||||||
state.xjkkradioV1 = "";
|
state.xjkkradioV1 = "";
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
state.xjkkinputV4 = item.teacherId;
|
state.xjkkinputV4 = item.teacherId;
|
||||||
|
|
||||||
getTea();
|
getTea();
|
||||||
@@ -4399,7 +4396,7 @@ export default defineComponent({
|
|||||||
evalFlag: item.evalFlag,
|
evalFlag: item.evalFlag,
|
||||||
name: item.name,
|
name: item.name,
|
||||||
signFlag: item.signFlag, //是否允许未报名的签到:1是0否
|
signFlag: item.signFlag, //是否允许未报名的签到:1是0否
|
||||||
signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
|
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
|
||||||
teacherId: item.teacherId,
|
teacherId: item.teacherId,
|
||||||
};
|
};
|
||||||
console.log(obj);
|
console.log(obj);
|
||||||
|
|||||||
51
src/views/login.vue
Normal file
51
src/views/login.vue
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<template>
|
||||||
|
<div :style="{
|
||||||
|
margin: 'auto',
|
||||||
|
background: 'url(http://img.gz2c.com/FoTcLY8ww-ISCFlwyCoYuLim1BMt) no-repeat',
|
||||||
|
backgroundSize: '100% 100%',
|
||||||
|
width: '100%',
|
||||||
|
height: '100vh',
|
||||||
|
display:'flex'
|
||||||
|
}">
|
||||||
|
<div
|
||||||
|
:style="{width:'300px', height: '300px', margin:'10% auto',padding:'20px 30px',textAlign:'center', borderRadius:'10px', background:'#e0e0e0',boxShadow:'20px 20px 60px #bebebe,-20px -20px 60px #ffffff'}">
|
||||||
|
<div :style="{fontSize:'24px',paddingBottom:'30px'}">用户登录</div>
|
||||||
|
<div>
|
||||||
|
<a-input placeholder='用户名' v-model:value="form.account"/>
|
||||||
|
<a-input placeholder='密码' v-model:value="form.password" :style="{marginTop: '30px'}" type='password'/>
|
||||||
|
<a-button :style="{marginTop:'30px'}" @click="loginUser">登录</a-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {reactive, toRefs} from "vue";
|
||||||
|
import * as api from "@/api";
|
||||||
|
import {setCookie} from "@/api/method";
|
||||||
|
import {useRouter} from "vue-router";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "loginPage",
|
||||||
|
setup() {
|
||||||
|
const router = useRouter()
|
||||||
|
const state = reactive({
|
||||||
|
form: {
|
||||||
|
account: '10181461',
|
||||||
|
password: '1234567890Aa'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
async function loginUser() {
|
||||||
|
const {data: {data: token}} = await api.login(state.form)
|
||||||
|
setCookie("token", token, 10)
|
||||||
|
await router.push({path: '/learningpath'})
|
||||||
|
location.reload()
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
loginUser
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@@ -901,6 +901,7 @@ export default defineComponent({
|
|||||||
state.projectInfo.status = res.data.data.projectTemplateInfo.status
|
state.projectInfo.status = res.data.data.projectTemplateInfo.status
|
||||||
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl
|
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl
|
||||||
let data = res.data.data.stageList;
|
let data = res.data.data.stageList;
|
||||||
|
console.log("data=====",data);
|
||||||
for(let i in data) {
|
for(let i in data) {
|
||||||
state.taskSyllabus.push({text: data[i].name,children:[]});
|
state.taskSyllabus.push({text: data[i].name,children:[]});
|
||||||
for(let j in data[i].taskList) {
|
for(let j in data[i].taskList) {
|
||||||
@@ -939,8 +940,8 @@ export default defineComponent({
|
|||||||
"notice": state.projectInfo.notice,
|
"notice": state.projectInfo.notice,
|
||||||
"noticeFlag": 0,
|
"noticeFlag": 0,
|
||||||
"projectTemplateId": localStorage.getItem('projectTemplateId'),
|
"projectTemplateId": localStorage.getItem('projectTemplateId'),
|
||||||
"remark": "",
|
"remark": state.projectInfo.remark,
|
||||||
"status": 0,
|
"status": state.projectInfo.status,
|
||||||
};
|
};
|
||||||
api.templateEdit(obj).then(res => {
|
api.templateEdit(obj).then(res => {
|
||||||
message.success("公告发布成功")
|
message.success("公告发布成功")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<!-- 任务页面 -->
|
<!-- 任务页面 -->img
|
||||||
<template>
|
<template>
|
||||||
<div class="taskpage">
|
<div class="taskpage">
|
||||||
<div class="addhead" style="flex-shrink: 0">
|
<div class="addhead" style="flex-shrink: 0">
|
||||||
|
|||||||
@@ -196,7 +196,13 @@
|
|||||||
<div>
|
<div>
|
||||||
<add-faceteach
|
<add-faceteach
|
||||||
v-model:addfaceteachVisible="addfaceteachvisible"
|
v-model:addfaceteachVisible="addfaceteachvisible"
|
||||||
v-model:EditEvalId="EditEvalId"
|
@changeData="updateTableData"
|
||||||
|
:isLevel="isLevel"
|
||||||
|
v-model:edit="edit"
|
||||||
|
v-model:projectTemplateId="projectTemplateId"
|
||||||
|
v-model:chooseStageId="chooseStageId"
|
||||||
|
v-model:projectTaskId="projectTaskId"
|
||||||
|
v-model:EditFaceId="EditFaceId"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- 添加面授侧弹窗 -->
|
<!-- 添加面授侧弹窗 -->
|
||||||
@@ -1127,7 +1133,7 @@ export default {
|
|||||||
EditTestId: null, // 要编辑的考试id
|
EditTestId: null, // 要编辑的考试id
|
||||||
EditCaseId: null, //要编辑的案例id
|
EditCaseId: null, //要编辑的案例id
|
||||||
EditOnlineId: null, //要编辑的在线id
|
EditOnlineId: null, //要编辑的在线id
|
||||||
EditFaceTeach: null,
|
EditFaceId: null,
|
||||||
EditEvalId: null,
|
EditEvalId: null,
|
||||||
EditInvistId: null,
|
EditInvistId: null,
|
||||||
EditVoteId: null, //编辑需要投票的id
|
EditVoteId: null, //编辑需要投票的id
|
||||||
@@ -1619,8 +1625,8 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
{
|
{
|
||||||
let obj = {
|
let obj = {
|
||||||
stageId: state.removeStageId,
|
templateStageId: state.removeStageId,
|
||||||
projectTaskId: state.selectRow,
|
projectTemplateTaskId: state.selectRow,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.moveTask(obj)
|
.moveTask(obj)
|
||||||
@@ -1771,8 +1777,11 @@ export default {
|
|||||||
state.EditOnlineId = id;
|
state.EditOnlineId = id;
|
||||||
state.projectTaskId = eleId;
|
state.projectTaskId = eleId;
|
||||||
};
|
};
|
||||||
const showDrawerFaceteach = () => {
|
const showDrawerFaceteach = (id, eleId) => {
|
||||||
state.addfaceteachvisible = true;
|
state.addfaceteachvisible = true;
|
||||||
|
console.log("id==========",id);
|
||||||
|
state.EditFaceId = id;
|
||||||
|
state.projectTaskId = eleId;
|
||||||
};
|
};
|
||||||
const showDrawerAddCase = (id, eleId) => {
|
const showDrawerAddCase = (id, eleId) => {
|
||||||
state.addcasevisible = true;
|
state.addcasevisible = true;
|
||||||
@@ -1917,18 +1926,19 @@ export default {
|
|||||||
const changeCourseType = (ele) => {
|
const changeCourseType = (ele) => {
|
||||||
console.log("任务id", ele.id);
|
console.log("任务id", ele.id);
|
||||||
console.log("flag", ele.checked1);
|
console.log("flag", ele.checked1);
|
||||||
|
console.log("ele", ele);
|
||||||
let obj = {
|
let obj = {
|
||||||
courseId: ele.courseId,
|
courseId: ele.courseId,
|
||||||
duration: ele.cretime == "-" ? 0 : ele.cretime,
|
duration: ele.cretime == "-" ? 0 : ele.cretime,
|
||||||
flag: ele.checked1,
|
flag: ele.checked1,
|
||||||
name: ele.creater,
|
name: ele.creater,
|
||||||
projectTemplateId: ele.projectTemplateId,
|
projectTemplateId: ele.projectTemplateId,
|
||||||
projectTaskId: ele.id,
|
projectTaskId:ele.id,
|
||||||
stageId: ele.templateStageId,
|
stageId:ele.stageId,
|
||||||
type: ele.type,
|
type: ele.type,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.addTask(obj)
|
.editTask(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log(`修改状态成功${res.data}`);
|
console.log(`修改状态成功${res.data}`);
|
||||||
message.destroy();
|
message.destroy();
|
||||||
@@ -1972,6 +1982,8 @@ export default {
|
|||||||
showDrawerAddTest(id, eleId);
|
showDrawerAddTest(id, eleId);
|
||||||
} else if (type == "在线") {
|
} else if (type == "在线") {
|
||||||
showDrawerOnline(id, eleId);
|
showDrawerOnline(id, eleId);
|
||||||
|
}else if (type == "面授") {
|
||||||
|
showDrawerFaceteach(id, eleId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const showdeAll = () => {
|
const showdeAll = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user