feat:合并

This commit is contained in:
李晓鸽
2022-11-03 17:55:25 +08:00
18 changed files with 2572 additions and 3671 deletions

View File

@@ -41,4 +41,7 @@ import http from "./config";
export const createProject = (obj) => http.post('/admin/project/edit', obj) export const createProject = (obj) => http.post('/admin/project/edit', obj)
// 获取项目列表 // 获取项目列表
export const getProjectList = (obj) => http.post('/admin/project/list', obj) export const getProjectList = (obj) => http.post('/admin/project/list', obj)
// 获取项目详情信息(包含阶段及任务列表)
export const getProjectDetail = (obj) => http.get('/admin/project/detail', { params: obj })

View File

@@ -33,11 +33,7 @@ import qs from 'qs';
* axios.post(`${this.$url}/test/testRequest`,data).then() * axios.post(`${this.$url}/test/testRequest`,data).then()
* *
*/ */
// , {
// header: {
// 'token': '123',
// }
// }
// 接口-请求 // 接口-请求
@@ -48,7 +44,11 @@ export const createEvaluation = (obj) => http.post('/evaluation/createEvaluation
export const fileUp = (obj) => http.post('/file/upload', obj, qs.stringify({ obj })); export const fileUp = (obj) => http.post('/file/upload', obj, qs.stringify({ obj }));
//删除测评信息 //删除测评信息
export const deleteEvaluationById = (obj) => http.post('/evaluation/deleteEvaluationById', { params: obj }) export const deleteEvaluationById = (obj) => http.post('/evaluation/deleteEvaluationById', { params: obj }, {
header: {
'token': '123',
}
})
//根据ID获取测评信息详情 //根据ID获取测评信息详情

8
src/api/indexStage.js Normal file
View File

@@ -0,0 +1,8 @@
import http from "./config";
//添加阶段
export const editStage = (obj) => http.post('/admin/project/editStage', obj, {
headers: {
'token': '123'
}
});

14
src/api/indexTask.js Normal file
View File

@@ -0,0 +1,14 @@
import http from "./config";
// 获取路径图详情-包含关卡及任务列表
export const GetRouterDetail = (routerId) => http.get(`/admin/router/detail?routerId=${routerId}`)
// 新建或编辑阶段任务
export const ProjectEditTask = (obj) => http.post('/admin/project/editTask',obj)
// 新建或编辑关卡任务
export const RouterEditTask = (obj) => http.post('/admin/router/editTask',obj)
// 删除关卡任务
export const RouterDeleteTask = (obj) => http.post('/admin/router/deleteTask',obj);
// 删除项目任务
export const ProjectDeleteTask = (obj) => http.delete('/admin/project/deleteTask',obj);

51
src/api/storage.js Normal file
View File

@@ -0,0 +1,51 @@
/**
* 封装操作localstorage本地存储的方法
*/
export const storage = {
//存储
set(key, value) {
localStorage.setItem(key, JSON.stringify(value))
},
//取出数据
get(key) {
const value = localStorage.getItem(key)
if (value && value != "undefined" && value != "null") {
return JSON.parse(value)
}
},
// 删除数据
remove(key) {
localStorage.removeItem(key)
},
// 获取所有数据
getAllStorage() {
return JSON.parse(window.localStorage.getItem() || "{}")
},
// 删除所有数据
removeAllLocalStorage() {
window.localStorage.clear()
return { message: "ok" }
}
};
/**
* 封装操作sessionStorage本地存储的方法
*/
export const sessionStorage = {
//存储
set(key, value) {
window.sessionStorage.setItem(key, JSON.stringify(value))
},
//取出数据
get(key) {
const value = window.sessionStorage.getItem(key)
if (value && value != "undefined" && value != "null") {
return JSON.parse(value)
}
return null
},
// 删除数据
remove(key) {
window.sessionStorage.removeItem(key)
}
}

View File

@@ -224,6 +224,7 @@
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
import * as api from "../../api/indexActivity"; import * as api from "../../api/indexActivity";
import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { toDate } from "../../api/method.js"; import { toDate } from "../../api/method.js";
const rowSelection = ref({ const rowSelection = ref({
@@ -332,8 +333,7 @@ export default {
}; };
api api
.createActivity(obj) .createActivity(obj)
.then((res) => { .then((res) => {
setTimeout(() => {
console.log("创建成功", res); console.log("创建成功", res);
message.success("创建成功"); message.success("创建成功");
state.radioV1 = ""; state.radioV1 = "";
@@ -347,7 +347,26 @@ export default {
state.textV2 = ""; state.textV2 = "";
state.time = ""; state.time = "";
ctx.emit("update:addactiveVisible", false); ctx.emit("update:addactiveVisible", false);
}, 1000); apiTask
.addTask({
courseId: 0,
duration: obj.activityDuration,
flag: true,
name: obj.activityName,
projectId: 28,
projectTaskId: 0,
stageId: 3,
type: 9,
})
.then((res) => {
console.log("调用项目添加接口后", res.data);
//重新获取任务列表
// apiTask.getTask({ projectId: 28 });
// router.push("/taskadd");
})
.catch((err) => {
console.log(err);
});
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败",err); console.log("创建失败",err);

View File

@@ -3,7 +3,6 @@
:visible="adddiscussVisible" :visible="adddiscussVisible"
class="drawerStyle addrefDrawer" class="drawerStyle addrefDrawer"
width="80%" width="80%"
title="添加讨论"
placement="right" placement="right"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
@@ -72,6 +71,7 @@
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
import * as api from "../../api/indexDiscuss"; import * as api from "../../api/indexDiscuss";
import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
const rowSelection = ref({ const rowSelection = ref({
checkStrictly: false, checkStrictly: false,
@@ -105,6 +105,7 @@ export default {
inputV2: "", inputV2: "",
textV1: "", textV1: "",
checkedC1: "", checkedC1: "",
add: true,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:adddiscussVisible", false); ctx.emit("update:adddiscussVisible", false);
@@ -137,17 +138,33 @@ export default {
api api
.createDiscuss(obj) .createDiscuss(obj)
.then((res) => { .then((res) => {
setTimeout(() => { console.log("创建成功", res);
console.log("创建成功", res); state.inputV1 = "";
state.inputV1 = ""; state.textV1 = "";
state.textV1 = ""; message.success("创建成功");
message.success("创建成功"); ctx.emit("update:adddiscussVisible", false);
ctx.emit("update:adddiscussVisible", false); //ctx.emit("changeData","传的参数");
// let emit = defineEmits(["changeData"]); //console.log("discussName",obj.discussName);
// emit("changeData", true); apiTask
ctx.emit("changeData", "传的参数"); .addTask({
// props.(true); courseId: 0,
}, 1000); duration: 0,
flag: true,
name: obj.discussName,
projectId: 28,
projectTaskId: 0,
stageId: 3,
type: 8,
})
.then((res) => {
console.log("调用项目添加接口后", res.data);
//重新获取任务列表
// apiTask.getTask({ projectId: 28 });
// router.push("/taskadd");
})
.catch((err) => {
console.log(err);
});
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败", err); console.log("创建失败", err);

View File

@@ -9,7 +9,8 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">添加测评</div> <div v-if="edit" class="headerTitle">编辑测评</div>
<div v-else class="headerTitle">添加测评</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -91,7 +92,7 @@
</div> </div>
</a-upload> </a-upload>
<span style="padding-bottom: 20px; color: #878b92" <span style="padding-bottom: 20px; color: #878b92"
>图片格式为</span >图片格式为JPG/PNG 图片大小不可超过1MB</span
> >
</div> </div>
</div> </div>
@@ -121,6 +122,10 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
edit: {
type: Boolean,
default: false,
},
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
@@ -140,6 +145,7 @@ export default {
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addevalVisible", false); ctx.emit("update:addevalVisible", false);
ctx.emit("update:edit", false);
state.inputV1 = ""; state.inputV1 = "";
state.inputV2 = ""; state.inputV2 = "";
}; };
@@ -179,9 +185,9 @@ export default {
const beforeUpload = (file) => { const beforeUpload = (file) => {
const isJpgOrPng = const isJpgOrPng =
file.type === "image/jpeg" || file.type === "image/png"; file.type === "image/jpg" || file.type === "image/png";
if (!isJpgOrPng) { if (!isJpgOrPng) {
message.error("You can only upload JPG file!"); message.error("You can upload JPG/PNG file!");
} }
const isLt2M = file.size / 1024 / 1024 < 1; const isLt2M = file.size / 1024 / 1024 < 1;
if (!isLt2M) { if (!isLt2M) {
@@ -229,21 +235,21 @@ export default {
api api
.createEvaluation(obj) .createEvaluation(obj)
.then((res) => { .then((res) => {
setTimeout(() => {
console.log("创建成功", res); console.log("创建成功", res);
message.success("创建成功"); message.success("创建成功");
closeDrawer(); closeDrawer();
apitaskadd.addTask({ apitaskadd
.addTask({
courseId: 0, courseId: 0,
duration: 0, duration: 0,
flag: true, flag: true,
name: "", name: obj.evaluationName,
projectId: 28, projectId: 28,
projectTaskId: 0, projectTaskId: 0,
stageId: 3, stageId: 3,
type: 10, type: 10,
}); },
}, 1000); );
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败", err); console.log("创建失败", err);

View File

@@ -106,6 +106,7 @@
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import {message} from"ant-design-vue"; import {message} from"ant-design-vue";
import { createWorkTask, queryWorkDetailById, updateWorkTaskUsing} from "@/api/indexWork"; import { createWorkTask, queryWorkDetailById, updateWorkTaskUsing} from "@/api/indexWork";
import { ProjectEditTask,RouterEditTask } from "@/api/indexTask"
import dayjs from 'dayjs'; import dayjs from 'dayjs';
const rowSelection = ref({ const rowSelection = ref({
@@ -133,7 +134,15 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
workId: { flag: {
type: Number,
default: 0,
},
projectTaskId: {
type: Number,
default: 0,
},
routerTaskId: {
type: Number, type: Number,
default: 0, default: 0,
} }
@@ -261,19 +270,60 @@ export default {
if(id) { if(id) {
updateWorkTaskUsing(obj).then((res) => { updateWorkTaskUsing(obj).then((res) => {
console.log(res); console.log(res);
message.success(`编辑成功`)
closeDrawer();
}).catch((err) => { }).catch((err) => {
message.error(`编辑失败${err}`) message.error(`编辑失败${err}`)
}) })
} else { } else {
createWorkTask(obj).then((res)=>{ createWorkTask(obj).then((res)=>{
message.success(`添加成功${res}`) console.log(res);
closeDrawer();
}).catch((err)=>{ }).catch((err)=>{
message.error(`添加失败${err}`) message.error(`添加失败${err}`)
}) })
} }
if(props.flag == 1) {
let editObj = {
"courseId": 0,
"duration": 0,
"flag": true,
"name": formState.workName,
"projectId": 0,
"projectTaskId": props.workId || '',
"stageId": 0,
"type": 4
}
// 新增编辑或新增项目任务
ProjectEditTask(editObj).then(res => {
console.log(` 编辑项目成功的打印 ${res}`);
message.success(`${props.workId? '编辑' : '新增'}阶段任务成功`)
closeDrawer();
}).catch(err => {
message.error(`${props.workId? '编辑' : '新增'}阶段任务失败`)
console.log(` 编辑项目失败的打印 ${err}`);
})
} else {
let editObj1 = {
"chapterId":36,
"courseId": 0,
"duration": 0,
"flag": true,
"name": formState.workName,
"routerId": 92,
"routerTaskId": 0,
"type": 4
}
// 新增编辑或新增关卡任务
RouterEditTask(editObj1).then(res => {
console.log(` 编辑关卡成功的打印 ${res}`);
message.success(`${props.workId? '编辑' : '新增'}关卡任务成功`)
closeDrawer();
}).catch(err => {
message.error(`${props.workId? '编辑' : '新增'}关卡任务失败`)
console.log(` 编辑关卡失败的打印 ${err}`);
})
}
}; };
return { return {
afterVisibleChange, afterVisibleChange,

View File

@@ -202,21 +202,20 @@ export default {
api api
.createAppraiseMessage(obj) .createAppraiseMessage(obj)
.then((res) => { .then((res) => {
setTimeout(() => {
console.log("创建成功", res); console.log("创建成功", res);
message.success("创建成功"); message.success("创建成功");
closeDrawer(); closeDrawer();
apitaskadd.addTask({ apitaskadd
.addTask({
courseId: 0, courseId: 0,
duration: 0, duration: 0,
flag: true, flag: true,
name: "", name: obj.appraiseName,
projectId: 28, projectId: 28,
projectTaskId: 0, projectTaskId: 0,
stageId: 3, stageId: 3,
type: 11, type: 11,
}); });
}, 1000);
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败", err); console.log("创建失败", err);

View File

@@ -280,7 +280,7 @@
</div> </div>
<div class="main_btns"> <div class="main_btns">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="done">确定</button> <button class="btn2" @click="createLiveBroadcast">确定</button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
@@ -628,6 +628,8 @@ export default {
}) })
.then((res) => { .then((res) => {
console.log("调用项目添加接口后", res.data); console.log("调用项目添加接口后", res.data);
//自定义事件给父组件传值
ctx.emit("changeData", false);
//重新获取任务列表 //重新获取任务列表
// apiTask.getTask({ projectId: 28 }); // apiTask.getTask({ projectId: 28 });
// router.push("/taskadd"); // router.push("/taskadd");
@@ -643,15 +645,6 @@ export default {
}); });
}; };
//添加任务到数据库
const addTask = () => {};
const done = () => {
createLiveBroadcast();
addTask();
// api.getLiveBroadcastInfor({});
};
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
@@ -664,7 +657,6 @@ export default {
createLiveBroadcast, createLiveBroadcast,
handleChange, handleChange,
beforeUpload, beforeUpload,
done,
}; };
}, },
}; };

View File

@@ -85,6 +85,7 @@
<a-input <a-input
v-model:value="formState.examinationDuration" v-model:value="formState.examinationDuration"
type="number"
style="width: 388px; height: 32px; style="width: 388px; height: 32px;
margin-left: 35px;" margin-left: 35px;"
/> />
@@ -100,6 +101,7 @@
<a-input-number <a-input-number
:min="-1" :precision="0" :min="-1" :precision="0"
type="number"
v-model:value="formState.examinationLimit" v-model:value="formState.examinationLimit"
style="width: 88px; height: 32px; style="width: 88px; height: 32px;
border-radius: 8px;overflow: hidden;" border-radius: 8px;overflow: hidden;"
@@ -161,6 +163,7 @@
<a-input <a-input
v-model:value="formState.passLine" v-model:value="formState.passLine"
type="number"
style="width: 88px; height: 32px;margin-left: 35px;" style="width: 88px; height: 32px;margin-left: 35px;"
/> />
</a-form-item> </a-form-item>
@@ -197,6 +200,8 @@
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import {message} from"ant-design-vue"; import {message} from"ant-design-vue";
import {createExamination,queryExaminationDetailById,updateExamination} from "@/api/indexExam" import {createExamination,queryExaminationDetailById,updateExamination} from "@/api/indexExam"
import { ProjectEditTask } from "@/api/indexTask"
import dayjs from 'dayjs'; import dayjs from 'dayjs';
const rowSelection = ref({ const rowSelection = ref({
checkStrictly: false, checkStrictly: false,
@@ -225,7 +230,7 @@ export default {
}, },
examinationId: { examinationId: {
type: Number, type: Number,
default: 0, default: -1,
} }
}, },
setup(props, ctx) { setup(props, ctx) {
@@ -429,21 +434,38 @@ export default {
if(id) { if(id) {
updateExamination(obj).then((res)=>{ updateExamination(obj).then((res)=>{
console.log(res); console.log(res);
message.success(`编辑成功`)
closeDrawer();
}).catch(()=>{ }).catch(()=>{
message.error(`编辑失败`) message.error(`编辑失败`)
}) })
} else { } else {
createExamination(obj).then((res)=>{ createExamination(obj).then(()=>{
message.success(`添加成功${res}`)
closeDrawer();
}).catch((err)=>{ }).catch((err)=>{
message.error(`添加失败${err}`) message.error(`添加失败${err}`)
}) })
} }
let editObj = {
"courseId": 0,
"duration": 0,
"flag": true,
"name": "",
"projectId": 0,
"projectTaskId": props.examinationId || '',
"stageId": 0,
"type": 5
}
// 新增编辑或新增项目
ProjectEditTask(editObj).then(res => {
console.log(` 编辑项目成功的打印 ${res}`);
message.success(`${props.examinationId? '编辑' : '新增'}阶段任务成功`)
closeDrawer();
}).catch(err => {
message.error(`${props.examinationId? '编辑' : '新增'}阶段任务失败`)
console.log(` 编辑项目失败的打印 ${err}`);
})
} }
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("formState", bool); console.log("formState", bool);

View File

@@ -203,21 +203,20 @@ export default {
api api
.createVote(obj) .createVote(obj)
.then((res) => { .then((res) => {
setTimeout(() => {
console.log("创建成功", res); console.log("创建成功", res);
message.success("创建成功"); message.success("创建成功");
closeDrawer(); closeDrawer();
apitaskadd.addTask({ apitaskadd
.addTask({
courseId: 0, courseId: 0,
duration: 0, duration: 0,
flag: true, flag: true,
name: "", name: obj.voteName,
projectId: 28, projectId: 28,
projectTaskId: 0, projectTaskId: 0,
stageId: 3, stageId: 3,
type: 12, type: 12,
}); });
}, 1000);
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败", err); console.log("创建失败", err);

View File

@@ -17,10 +17,10 @@
> --> > -->
<div <div
class="items" class="items"
:class="isactive == index && isActive == true ? 'active' : ''" :class="isactive == index ? 'active' : ''"
@click="changebgc(index)" @click="changebgc(index)"
v-for="(item, index) in level" v-for="(item, index) in level"
:key="item.id" :key="item.chapterId"
> >
<div class="items1"> <div class="items1">
<div class="boxs_left"> <div class="boxs_left">
@@ -37,7 +37,7 @@
<div class="nname">{{ item.name }}</div> <div class="nname">{{ item.name }}</div>
</div> </div>
<!-- <div class="itemle"> <!-- <div class="itemle">
<div class="tit">{{ item.tit }}</div> <div class="tit">{{ item.remark }}</div>
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
</div> --> </div> -->
</div> </div>
@@ -166,20 +166,32 @@
</div> </div>
<div class="item"> <div class="item">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img" @click="showDrawerAddHomework">
<img src="../../assets/images/leveladd/zuo.png" /> <img src="../../assets/images/leveladd/zuo.png" />
</div> </div>
<div class="text">作业</div> <div class="text">作业</div>
</div> </div>
<!-- 添加作业侧弹窗 -->
<div>
<add-homework
flag="0"
routerTaskId="ListChoosedId"
v-model:addhomeworkVisible="addhomeworkvisible"
/>
</div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img" @click="showDrawerAddTest">
<img src="../../assets/images/leveladd/kao.png" /> <img src="../../assets/images/leveladd/kao.png" />
</div> </div>
<div class="text">考试</div> <div class="text">考试</div>
</div> </div>
<!-- 添加考试侧弹窗 -->
<div>
<add-test v-model:addtestVisible="addtestvisible" />
</div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
@@ -218,30 +230,45 @@
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item" @click="showDrawerAddEval">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
<img src="../../assets/images/leveladd/ce.png" /> <img src="../../assets/images/leveladd/ce.png" />
</div> </div>
<div class="text">测评</div> <div class="text">测评</div>
<!-- 添加测评侧弹窗 -->
<div>
<add-eval v-model:addevalVisible="addevalvisible" v-model:edit="edit" />
</div>
<!-- 添加测评侧弹窗 -->
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item" @click="showDrawerAddInvist">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
<img src="../../assets/images/leveladd/diao.png" /> <img src="../../assets/images/leveladd/diao.png" />
</div> </div>
<div class="text">评估</div> <div class="text">评估</div>
<!-- 添加评估侧弹窗 -->
<div>
<add-invist v-model:addinvistVisible="addinvistvisible" />
</div>
<!-- 添加评估侧弹窗 -->
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item" @click="showDrawerAddVote">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
<img src="../../assets/images/leveladd/tou.png" /> <img src="../../assets/images/leveladd/tou.png" />
</div> </div>
<div class="text">投票</div> <div class="text">投票</div>
<!-- 添加投票侧弹窗 -->
<div>
<add-vote v-model:addvoteVisible="addvotevisible" />
</div>
<!-- 添加投票侧弹窗 -->
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -519,67 +546,33 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue"; import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import AddStu from "../../components/drawers/AddLevelAddStu"; import AddStu from "../../components/drawers/AddLevelAddStu";
import ImpStu from "../../components/drawers/AddLevelImportStu"; import ImpStu from "../../components/drawers/AddLevelImportStu";
import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue";
import AddEval from "../../components/drawers/AddEval.vue";
import AddInvist from "../../components/drawers/AddInvist.vue";
import AddVote from "../../components/drawers/AddVote.vue";
import * as api from "../../api/indexLevel"; import * as api from "../../api/indexLevel";
import { GetRouterDetail, RouterDeleteTask } from "../../api/indexTask";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
export default { export default {
name: "LevelAddDetail", name: "LevelAddDetail",
components: { components: {
AddStu, AddStu,
ImpStu, ImpStu,
AddHomework,
AddTest,
AddEval,
AddInvist,
AddVote,
}, },
setup() { setup() {
const state = reactive({ const state = reactive({
routerId: localStorage.getItem("routerId"), routerId: localStorage.getItem("routerId"),
level: [ level: [
{ {
id: "1", chapterId: "1",
tit: "关卡1关卡1关卡1关卡1关卡1关卡1", remark: "关卡说明",
name: "初级产品经理fewfewfwefwefe", name: "默认关卡",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
},
{
id: "2",
tit: "关卡2",
name: "中级产品经理",
}, },
], ],
tableData: [ tableData: [
@@ -594,50 +587,6 @@ export default {
checked1: false, checked1: false,
checkedd: false, checkedd: false,
}, },
{
key: 2,
lei: "面授",
// state: "草稿",
creater: "管理者面授",
// pubtime: "2022-07-20 14:00:03",
cretime: "20分钟",
haspub: true,
checked1: false,
checkedd: false,
},
{
key: 3,
lei: "作业",
// state: "已停用",
creater: "管理者作业",
// pubtime: "2022-07-20 14:00:03",
cretime: "60分钟",
haspub: false,
checked1: false,
checkedd: false,
},
{
key: 4,
lei: "考试",
// state: "草稿",
creater: "管理者考试",
// pubtime: "2022-07-20 14:00:03",
cretime: "20分钟",
haspub: true,
checked1: false,
checkedd: false,
},
{
key: 5,
lei: "案例",
// state: "草稿",
creater: "腾飞班1案例",
// pubtime: "2022-07-20 14:00:03",
cretime: "-",
haspub: true,
checked1: true,
checkedd: false,
},
], ],
tableData2: [ tableData2: [
{ {
@@ -821,11 +770,18 @@ export default {
value1: "", value1: "",
value2: "", value2: "",
selectedRowKeys: [], selectedRowKeys: [],
edit:false, //是否点击编辑
gqxy_hs: true, gqxy_hs: true,
isactive: -1, isactive: 0,
isActive: false,
projectChecked: null, //项目单选框 projectChecked: null, //项目单选框
addhomeworkvisible: false,
addtestvisible: false,
addevalvisible: false,
addinvistvisible: false,
addvotevisible: false,
updateChapterID: null, //修改关卡id updateChapterID: null, //修改关卡id
// 表示当前触发列表的id,用来发送编辑和删除
ListChoosedId: 0,
}); });
//新建关卡 //新建关卡
@@ -856,26 +812,79 @@ export default {
}; };
//编辑关卡 //编辑关卡
const updateChapter = () => { // const updateChapter = () => {
let obj = { // let obj = {
chapterId: state.updateChapterID, // chapterId: state.updateChapterID,
name: "", // name: "",
remark: "", // remark:"",
routerId: 0, // routerId: 0,
}; // };
api // api
.updateChapter(obj) // .updateChapter(obj)
.then((res) => { // .then((res) => {
console.log("修改成功", res); // console.log("修改成功",res);
message.success("修改成功"); // message.success("修改成功");
}) // })
.catch((err) => { // .catch((err) => {
console.log("修改失败", err); // console.log("修改失败",err);
}); // })
}; // };
const showDrawer = () => { const showDrawer = () => {
state.visible = true; state.visible = true;
}; };
// 作业和考试的抽屉
const showDrawerAddHomework = () => {
state.addhomeworkvisible = true;
state.ListChoosedId = 0;
};
const showDrawerAddTest = () => {
state.addtestvisible = true;
state.ListChoosedId = 0;
};
//测试评估投票抽屉
const showDrawerAddEval = () => {
state.addevalvisible = true;
};
const showDrawerAddInvist = () => {
state.addinvistvisible = true;
};
const showDrawerAddVote = () => {
state.addvotevisible = true;
};
// tableData数据赋值方法
const dataAssignment = () => {
console.log(state.level);
state.level[0].taskList.forEach((element, index) => {
state.tableData[index] = {
key: element.routerTaskId,
lei: checkType(element.type),
creater: element.name,
cretime: element.duration,
checked1: element.flag,
};
});
};
const getDetail = (index) => {
GetRouterDetail(92)
.then((res) => {
state.level = res.data.data.chapterList;
console.log(state.level);
if (index == 0) {
// state.tableData[1] = {
// key: 2,
// lei: "在线",
// creater: "管理者课程",
// cretime: "60",
// checked1: true,
// }
dataAssignment(0);
}
})
.catch((err) => {
message.error(err);
});
};
const closeDrawer = () => { const closeDrawer = () => {
state.visible = false; state.visible = false;
}; };
@@ -998,13 +1007,19 @@ export default {
return ( return (
<div class="opa"> <div class="opa">
<div class="opacation"> <div class="opacation">
<span style="color:#4EA6FF;margin-right:25px;cursor:pointer"> <span
style="color:#4EA6FF;margin-right:25px;cursor:pointer"
onClick={()=>{
state.edit = true;
state.addevalvisible = true;
}}
>
编辑 编辑
</span> </span>
<span <span
style="color:#4EA6FF;cursor:pointer" style="color:#4EA6FF;cursor:pointer"
onClick={() => { onClick={() => {
updateChapter(); deleteLevelTask();
}} }}
> >
删除 删除
@@ -1017,6 +1032,23 @@ export default {
]; ];
return columns; return columns;
}; };
const checkType = (index) => {
let typeRules = [
"",
"在线",
"面授",
"案例",
"作业",
"考试",
"直播",
"外链",
"讨论",
"测评",
"评估",
"投票",
];
return typeRules[index];
};
const tableDataFunc2 = () => { const tableDataFunc2 = () => {
const columns = [ const columns = [
{ {
@@ -1201,6 +1233,7 @@ export default {
document.getElementsByTagName("main")[0].style.background = document.getElementsByTagName("main")[0].style.background =
"rgb(245, 247, 250,1)"; "rgb(245, 247, 250,1)";
document.getElementsByTagName("main")[0].style.boxShadow = "none"; document.getElementsByTagName("main")[0].style.boxShadow = "none";
getDetail(0);
}); });
onUnmounted(() => { onUnmounted(() => {
document.getElementsByTagName("main")[0].style.background = "#ffffff"; document.getElementsByTagName("main")[0].style.background = "#ffffff";
@@ -1209,7 +1242,7 @@ export default {
}); });
const changebgc = (index) => { const changebgc = (index) => {
state.isactive = index; state.isactive = index;
state.isActive = !state.isActive; dataAssignment(index);
}; };
const gqxy_hShow = () => { const gqxy_hShow = () => {
state.gqxy_hs = !state.gqxy_hs; state.gqxy_hs = !state.gqxy_hs;
@@ -1220,6 +1253,17 @@ export default {
const delete_exit = () => { const delete_exit = () => {
state.deleteAll = false; state.deleteAll = false;
}; };
const deleteLevelTask = () => {
RouterDeleteTask(state.listChoosedId)
.then((res) => {
console.log(`删除成功${res}`);
message.success("删除成功");
})
.catch((err) => {
console.log(`删除失败${err}`);
});
};
return { return {
...toRefs(state), ...toRefs(state),
tableDataFunc, tableDataFunc,
@@ -1239,7 +1283,13 @@ export default {
delete_exit, delete_exit,
drawertableColumns, drawertableColumns,
editChapter, editChapter,
updateChapter, // updateChapter,
showDrawerAddHomework,
showDrawerAddTest,
showDrawerAddEval,
showDrawerAddInvist,
showDrawerAddVote,
deleteLevelTask,
}; };
}, },
}; };
@@ -1402,7 +1452,7 @@ export default {
.drawerMain { .drawerMain {
min-width: 600px; min-width: 600px;
margin: 0px 32px 0px 32px; margin: 0px 32px 0px 32px;
overflow-x: auto; overflow-x: scroll;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.header { .header {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -154,11 +154,14 @@
</div> </div>
<div class="text">直播</div> <div class="text">直播</div>
</div> </div>
<!-- 添加考试侧弹窗 --> <!-- 添加直播侧弹窗 -->
<div> <div>
<add-live v-model:addliveVisible="addlivevisible" /> <add-live
v-model:addliveVisible="addlivevisible"
@changeData="updateTableData"
/>
</div> </div>
<!-- 添加考试侧弹窗 --> <!-- 添加直播侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item" @click="showDrawerAddRef"> <div class="item" @click="showDrawerAddRef">
@@ -364,11 +367,17 @@
<div class="modalMain" style="width: 100%"> <div class="modalMain" style="width: 100%">
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<div>
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<div class="inname">阶段名称</div> <div class="inname">阶段名称</div>
</div> </div>
<div class="in"> <div class="in">
<a-input <a-input
v-model:value="valueE" v-model:value="valuesname"
show-count show-count
:maxlength="20" :maxlength="20"
placeholder="请输入阶段名称" placeholder="请输入阶段名称"
@@ -381,7 +390,7 @@
</div> </div>
<div class="intext" style="margin-left: 14px"> <div class="intext" style="margin-left: 14px">
<a-textarea <a-textarea
v-model:value="value" v-model:value="valuesnotice"
style="height: 88px" style="height: 88px"
show-count show-count
:maxlength="100" :maxlength="100"
@@ -412,7 +421,7 @@
取消 取消
</button> </button>
<button <button
@click="closeModal" @click="editStage"
style=" style="
cursor: pointer; cursor: pointer;
margin-left: 16px; margin-left: 16px;
@@ -491,7 +500,7 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 确认删除阶段弹窗 --> <!-- 确认删除任务弹窗 -->
<a-modal <a-modal
v-model:visible="deleteModal" v-model:visible="deleteModal"
:footer="null" :footer="null"
@@ -547,6 +556,8 @@ import * as apidiscuss from "../../api/indexDiscuss";
import * as apiactivity from "../../api/indexActivity"; import * as apiactivity from "../../api/indexActivity";
import * as apieval from "../../api/indexEval"; import * as apieval from "../../api/indexEval";
import * as apiinvist from "../../api/indexInvist"; import * as apiinvist from "../../api/indexInvist";
import * as apivote from "../../api/indexVote";
import * as apistage from "../../api/indexStage";
const drawercolumns = [ const drawercolumns = [
{ {
title: "项目名称", title: "项目名称",
@@ -667,97 +678,7 @@ export default {
], ],
//任务数据 //任务数据
tableData: [ tableData: [],
// {
// key: 1,
// lei: "在线",
// // state: "已发布",
// creater: "管理者课程",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "60分钟",
// haspub: false,
// checked1: false,
// checkedd: false,
// id: "ssss",
// },
// {
// key: 2,
// lei: "面授",
// // state: "草稿",
// creater: "管理者面授",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "20分钟",
// haspub: true,
// checked1: false,
// checkedd: false,
// },
// {
// key: 1,
// lei: "在线",
// // state: "已发布",
// creater: "管理者课程",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "60分钟",
// haspub: false,
// checked1: false,
// checkedd: false,
// },
// {
// key: 3,
// lei: "作业",
// // state: "已停用",
// creater: "管理者作业",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "60分钟",
// haspub: false,
// checked1: false,
// checkedd: false,
// },
// {
// key: 4,
// lei: "考试",
// // state: "草稿",
// creater: "管理者考试",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "20分钟",
// haspub: true,
// checked1: false,
// checkedd: false,
// },
// {
// key: 5,
// lei: "案例",
// // state: "草稿",
// creater: "腾飞班1案例",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "20分钟",
// haspub: true,
// checked1: true,
// checkedd: false,
// },
// {
// key: 4,
// lei: "考试",
// // state: "草稿",
// creater: "管理者考试",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "20分钟",
// haspub: true,
// checked1: false,
// checkedd: false,
// },
// {
// key: 5,
// lei: "案例",
// // state: "草稿",
// creater: "腾飞班1案例",
// // pubtime: "2022-07-20 14:00:03",
// cretime: "20分钟",
// haspub: true,
// checked1: true,
// checkedd: false,
// },
],
drawertableData: [ drawertableData: [
{ {
key: 1, key: 1,
@@ -856,6 +777,8 @@ export default {
addvotevisible: false, addvotevisible: false,
stage: false, stage: false,
selectedRowKeys: [], selectedRowKeys: [],
valuesname: "",
valuesnotice: "",
confirmModal: false, //确认添加阶段弹窗 confirmModal: false, //确认添加阶段弹窗
cC: false, cC: false,
cancelModal: false, //确认取消阶段弹窗 cancelModal: false, //确认取消阶段弹窗
@@ -868,7 +791,7 @@ export default {
deleteInvistID: 4, //评估 deleteInvistID: 4, //评估
deleteDiscussID: null, //删除讨论id deleteDiscussID: null, //删除讨论id
deleteActivityID: null, //删除活动id deleteActivityID: null, //删除活动id
deleteID: "", //删除任务的taskID deleteID: "",
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
@@ -879,6 +802,28 @@ export default {
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("visible", bool); console.log("visible", bool);
}; };
//添加阶段
const editStage = () => {
if (!state.valuesname) {
message.destroy();
return message.warning("请输入阶段名称");
}
let obj = {
name: state.valuesname,
projectId: 28,
remark: state.valuesnotice,
};
apistage
.editStage(obj)
.then((res) => {
console.log("添加阶段成功", res);
message.default();
message.success("添加阶段成功");
})
.catch((err) => {
console.log("添加阶段失败", err);
});
};
// 把数据放到state里 // 把数据放到state里
const getTableData = (tableData) => { const getTableData = (tableData) => {
let data = tableData; let data = tableData;
@@ -1060,7 +1005,7 @@ export default {
.then((res) => { .then((res) => {
if (res.status == 200) { if (res.status == 200) {
console.log("22222", res.data.data.stageList[0].taskList); console.log("22222", res.data.data.stageList[0].taskList);
let arr = res.data.data.stageList[0].taskList; let arr = res.data.data.stageList[1].taskList;
getTableData(arr); getTableData(arr);
} }
}) })
@@ -1068,6 +1013,13 @@ export default {
console.log("获取任务列表失败", err); console.log("获取任务列表失败", err);
}); });
}; };
//数据变化
const updateTableData = (data) => {
console.log("添加数据", data);
getTask();
};
//删除直播 //删除直播
const deleteLiveBroadcast = () => { const deleteLiveBroadcast = () => {
let obj = { let obj = {
@@ -1199,8 +1151,8 @@ export default {
//删除测评测试 //删除测评测试
const deleteEvalText = () => { const deleteEvalText = () => {
let obj = { let obj = {
evaluationId: state.deleteEvalID, evaluationId: "",
token: "", token: 123,
}; };
apieval apieval
.deleteEvaluationById(obj) .deleteEvaluationById(obj)
@@ -1375,6 +1327,59 @@ export default {
console.log(err); console.log(err);
}); });
}; };
//删除投票信息
const deleteVoteText = () => {
let obj = {
voteId: "",
};
apivote
.deleteVoteMessage(obj)
.then((res) => {
console.log("删除成功", res);
message.success("删除成功");
//重新获取列表
getTask();
})
.catch((err) => {
console.log("删除失败", err);
});
};
//编辑投票信息
const editVotePath = () => {
let obj = {
baseVote: "",
createTime: "",
createUser: 0,
stem: "",
stemId: 0,
updateTime: "",
updateUser: 0,
voteEndTime: "",
voteExplain: "",
voteFlag: "",
voteId: 0,
voteName: "",
voteStartTime: "",
voteTag: "",
};
apivote
.editVote(obj)
.then((res) => {
setTimeout(() => {
console.log("修改成功", res);
message.success("修改成功");
}, 1000);
})
.catch((err) => {
console.log("修改失败", err);
// state.createLoading = false;
//重新获取列表
getTask();
});
};
const onSelectChange = (selectedRowKeys) => { const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys); console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
@@ -1397,6 +1402,8 @@ export default {
//关闭确认框 //关闭确认框
state.deleteModal = false; state.deleteModal = false;
deleteTask(); deleteTask();
message.success("删除成功");
getTask();
}; };
const closeModal = () => { const closeModal = () => {
state.stage = false; state.stage = false;
@@ -1477,9 +1484,6 @@ export default {
state.isActive = !state.isActive; state.isActive = !state.isActive;
}; };
const updateTableData = (data) => {
console.log("添加数据", data);
};
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
@@ -1518,14 +1522,17 @@ export default {
deleteEvalText, deleteEvalText,
deleteExternalChain, deleteExternalChain,
deleteActivity, deleteActivity,
deleteVoteText,
editActivity, editActivity,
editEvalPath, editEvalPath,
deleteInvistText, deleteInvistText,
editLiveBroadcast, editLiveBroadcast,
editExternal, editExternal,
editInvistPath, editInvistPath,
editVotePath,
getTableData, getTableData,
deleteTask, deleteTask,
editStage,
updateTableData, updateTableData,
}; };
}, },
@@ -1533,12 +1540,12 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
.ant-input { // .ant-input {
border-radius: 8px; // border-radius: 8px;
// height: 120%; // // height: 120%;
width: 384px; // width: 384px;
height: 88px; // height: 88px;
} // }
.ConfirmModal { .ConfirmModal {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;