feat:合并

This commit is contained in:
lixg
2022-12-09 14:23:01 +08:00
9 changed files with 169 additions and 60 deletions

View File

@@ -16,3 +16,6 @@ export const ProjectDeleteTask = (obj) => http.delete('/admin/project/deleteTask
export const IsExistence = (obj) => http.post('/admin/router/queryTaskDoesItExist',obj); export const IsExistence = (obj) => http.post('/admin/router/queryTaskDoesItExist',obj);
// 判断当前在线课是否已经添加到该项目下 // 判断当前在线课是否已经添加到该项目下
export const IsExistenceProject = (obj) => http.post('/admin/project/queryTaskDoesItExistForProject',obj); export const IsExistenceProject = (obj) => http.post('/admin/project/queryTaskDoesItExistForProject',obj);
// 判断当前在线课是否已经添加到该模板库下
export const IsExistenceProjectTemplate = (obj) => http.post('/admin/project/template/queryTaskDoesItExistForTemplate',obj);

View File

@@ -24,7 +24,9 @@
<div class="file_img"></div> <div class="file_img"></div>
<div class="file_detail"> <div class="file_detail">
<div class="file_name"> <div class="file_name">
<span style="color: #6f6f6fwidth:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.name }}</span> <span style="color: #6f6f6fwidth:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">
{{ item.name.indexOf('-')!==-1?item.name.slice(0,item.name.indexOf('-')) + item.name.slice(item.name.indexOf('.')) :item.name }}
</span>
</div> </div>
<!-- <div class="file_size">--> <!-- <div class="file_size">-->
<!-- <span style="color: #999ba3">{{ item.size }}</span>--> <!-- <span style="color: #999ba3">{{ item.size }}</span>-->
@@ -35,6 +37,7 @@
:class="`${{uploading: 'updatacolor3', done: 'updatacolor' ,error: 'updatacolor2'}[item.status] || 'updatacolor'}`" :class="`${{uploading: 'updatacolor3', done: 'updatacolor' ,error: 'updatacolor2'}[item.status] || 'updatacolor'}`"
:style="{width:`${item.status==='uploading'?parseInt(item.percent):100}%`}"></div> :style="{width:`${item.status==='uploading'?parseInt(item.percent):100}%`}"></div>
<div v-if="item.status" <div v-if="item.status"
style="right:-62px"
:class="`${{uploading: 'updataxq1', done: 'updataxq' ,error: 'updataxq2'}[item.status] || 'updataxq'}`"> :class="`${{uploading: 'updataxq1', done: 'updataxq' ,error: 'updataxq2'}[item.status] || 'updataxq'}`">
{{ {uploading: '正在上传', done: '上传完成', error: '上传失败'}[item.status] || '' }} {{ {uploading: '正在上传', done: '上传完成', error: '上传失败'}[item.status] || '' }}
</div> </div>

View File

@@ -105,7 +105,7 @@ import { reactive, toRefs } from "vue";
import * as apiTask from "../../api/indexTaskadd"; import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import AssessmentList from "./ AssessmentList.vue"; import AssessmentList from "./ AssessmentList.vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask, IsExistence, IsExistenceProject} from "@/api/indexTask";
import * as api from "../../api/indexInvist"; import * as api from "../../api/indexInvist";
import { addTempTask } from "../../api/indexTaskadd"; import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
@@ -222,6 +222,29 @@ export default {
return message.warning("请选择评估"); return message.warning("请选择评估");
} }
if (props.isLevel == 1) { if (props.isLevel == 1) {
IsExistence({
chapterId: Number(props.isactive),
courseId: state.assessment.assessmentId,
routerId: props.routerId,
type: 11,
})
.then((res) => {
console.log('shifouchongfu',res)
console.log("路径图中是否包含此评估了", res);
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
for (let i = 0; i < strdata.length; i++) {
if (i == strdata.length - 1) {
tipStr += strdata[i].courseName;
} else {
tipStr += strdata[i].courseName + "/";
}
}
message.destroy();
message.warning("评估(" + tipStr + ")重复添加");
return;
} else {
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: state.assessment.assessmentId, courseId: state.assessment.assessmentId,
@@ -241,7 +264,35 @@ export default {
message.destroy(); message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
}
}).catch(err=>{
console.log(err)
})
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
IsExistenceProject({
courseId: state.assessment.assessmentId,
projectId: props.projectId,
stageId: props.chooseStageId || 0,
type: 11,
}).then(res=>{
console.log(res)
console.log("项目中是否包含此评估了", res);
if (res.data.data.length) {
let strdata = res.data.data;
let tipStr = "";
for (let i = 0; i < strdata.length; i++) {
if (i == strdata.length - 1) {
tipStr += strdata[i].courseName;
} else {
tipStr += strdata[i].courseName + "/";
}
}
message.destroy();
message.warning("评估(" + tipStr + ")重复添加");
return;
} else {
apiTask apiTask
.addTask({ .addTask({
courseId: state.assessment.assessmentId, courseId: state.assessment.assessmentId,
@@ -259,6 +310,11 @@ export default {
.catch(() => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}任务失败`); message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
}); });
}
}).catch(err=>{
console.log(err)
})
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
addTempTask({ addTempTask({
courseId: state.assessment.assessmentId, courseId: state.assessment.assessmentId,

View File

@@ -75,10 +75,10 @@
<div class="btnText">重置</div> <div class="btnText">重置</div>
</div> </div>
<!-- 2022-11-30注释 后面放开 --> <!-- 2022-11-30注释 后面放开 -->
<!-- <div class="btn btn3" @click="openMessage"> <div class="btn btn3" @click="openMessage">
<div class="search"></div> <div class="search"></div>
<div class="btnText">导出</div> <div class="btnText">导出</div>
</div> --> </div>
<div class="btn btn4" @click="of_hShow"> <div class="btn btn4" @click="of_hShow">
<div class="search"></div> <div class="search"></div>
<div class="btnText">新建课程</div> <div class="btnText">新建课程</div>
@@ -629,6 +629,9 @@
<!-- <div class="file_name"> <!-- <div class="file_name">
<span style="color: #6f6f6f">{{ item.name }}</span> <span style="color: #6f6f6f">{{ item.name }}</span>
</div> --> </div> -->
<div class="file_name">
<span style="color: #6f6f6f;width:140px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.slice(item.lastIndexOf('/')+1) }}</span>
</div>
<!-- 条件渲染 s --> <!-- 条件渲染 s -->
<!-- <div class="file_size"> <!-- <div class="file_size">
<span style="color: #999ba3">{{ item.size }}</span> <span style="color: #999ba3">{{ item.size }}</span>
@@ -1971,9 +1974,9 @@
> >
<div class="file_img"></div> <div class="file_img"></div>
<div class="file_detail"> <div class="file_detail">
<!-- <div class="file_name"> <div class="file_name">
<span style="color: #6f6f6f">{{ item.name }}</span> <span style="color: #6f6f6f;width:140px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.slice(item.lastIndexOf('/')+1) }}</span>
</div> --> </div>
<!-- 条件渲染 s --> <!-- 条件渲染 s -->
<!-- <div class="file_size"> <!-- <div class="file_size">
<span style="color: #999ba3">{{ item.size }}</span> <span style="color: #999ba3">{{ item.size }}</span>
@@ -5156,6 +5159,7 @@ export default defineComponent({
// size: file.size, // size: file.size,
// }); // });
// console.log(state.filesList); // console.log(state.filesList);
console.log(res.data.data)
state.filesList = [res.data.data]; state.filesList = [res.data.data];
// state.hasImgName = res.data.data; // state.hasImgName = res.data.data;
} }

View File

@@ -156,6 +156,7 @@
<div class="mbl_items12"> <div class="mbl_items12">
<div <div
class="i12_box1" class="i12_box1"
style="position:relative;"
v-for="(item, index) in detail.attach" v-for="(item, index) in detail.attach"
:key="index" :key="index"
> >
@@ -205,13 +206,16 @@
</div> </div>
<div class="file_detail"> <div class="file_detail">
<div class="file_name"> <div class="file_name">
<span style="color: #6f6f6f">{{ item.name }}</span> <!-- http://111.231.196.214:12016/7.231.196.214:12016/7-1670486854017.jpg -->
<span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;top:4px;left:72px;">
{{ item.indexOf('-')!==-1?item.slice(item.lastIndexOf('/')+1,item.indexOf('-')) + item.slice(item.lastIndexOf('.')) :item }}
</span>
</div> </div>
<div class="file_updata"> <div class="file_updata">
<div class="updatabox"> <div class="updatabox">
<div class="updatacolor"></div> <div class="updatacolor"></div>
<div class="updataxq">上传完成</div> <div class="updataxq" style="right:-62px;">上传完成</div>
</div> </div>
<div class="upjd"> <div class="upjd">
<span style="margin: auto 5px">100%</span> <span style="margin: auto 5px">100%</span>
@@ -642,21 +646,21 @@ export default defineComponent({
.updataxq { .updataxq {
position: absolute; position: absolute;
right: 2px; right: -62px;
top: -30px; top: -30px;
color: #57c887; color: #57c887;
} }
.updataxq2 { .updataxq2 {
position: absolute; position: absolute;
right: 2px; right: -62px;
top: -30px; top: -30px;
color: #ff7474; color: #ff7474;
} }
.updataxq3 { .updataxq3 {
position: absolute; position: absolute;
right: 2px; right: -62px;
top: -30px; top: -30px;
color: #388be1; color: #388be1;
} }

View File

@@ -854,6 +854,7 @@
<div <div
v-for="item in fileList" v-for="item in fileList"
:key="item.uid" :key="item.uid"
style="width:500px;display:flex;justify-content:space-between;align-items:center;"
class="docListStyle" class="docListStyle"
> >
<img <img
@@ -866,11 +867,11 @@
" "
alt="" alt=""
/> />
<span style="font: oblique bold 16px Sans-serif">{{ <span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
item.name item.name
}}</span> }}</span>
<span <span
style="color: #4ea6ff; float: right; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="deFile(item.uid)" @click="deFile(item.uid)"
>删除</span >删除</span
> >
@@ -2660,8 +2661,9 @@ export default {
.docListStyle { .docListStyle {
display: flex; display: flex;
width: 300px !important; width: 500px !important;
justify-content: space-around; align-items: center;
justify-content: space-between;
} }
.del_btnbox { .del_btnbox {

View File

@@ -641,11 +641,11 @@
" "
alt="" alt=""
/> />
<span style="font: oblique bold 16px Sans-serif">{{ <span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
item.name item.name
}}</span> }}</span>
<span <span
style="color: #4ea6ff; float: right; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="deFile(item.uid)" @click="deFile(item.uid)"
>删除</span >删除</span
> >
@@ -1962,8 +1962,9 @@ export default defineComponent({
} }
.docListStyle { .docListStyle {
display: flex; display: flex;
width: 300px !important; width: 500px !important;
justify-content: space-around; align-items: center;
justify-content: space-between;
} }
.taskBox { .taskBox {
.onerow { .onerow {

View File

@@ -5,11 +5,11 @@
<div class="leftmain"> <div class="leftmain">
<div class="tit"> <div class="tit">
阶段 阶段
<!-- <img--> <img
<!-- src="../../assets/images/projectadd/right.png"--> src="../../assets/images/projectadd/right.png"
<!-- style="margin-left: 10px; cursor: pointer"--> style="margin-left: 10px; cursor: pointer"
<!-- @click="showCancel"--> @click="showCancel"
<!-- />--> />
</div> </div>
<div class="btn btn3" @click="showModal()" style="margin-left: 19px"> <div class="btn btn3" @click="showModal()" style="margin-left: 19px">
<div class="search"></div> <div class="search"></div>
@@ -880,13 +880,13 @@
<div class="close_exit" @click="closeCancel"></div> <div class="close_exit" @click="closeCancel"></div>
</div> </div>
<div class="body"> <div class="body">
<span>您确定要取消阶段吗</span> <span>您确定要删除所有阶段吗</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="closeCancel"> <div class="del_btn btn1" @click="closeCancel">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="showModal"> <div class="del_btn btn2" @click="removeAllLevel">
<div class="btnText">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
@@ -1020,7 +1020,7 @@
<div class="close_exit" @click="closeDeleteStage"></div> <div class="close_exit" @click="closeDeleteStage"></div>
</div> </div>
<div class="body"> <div class="body">
<span>您确定要删除此阶段</span> <span style="width:320px;display:flex;justify-content:center;align-items:center;">{{level.length==1?"当前阶段为第一阶段,删除后任务将被移出,为无阶段模式,确认删除阶段吗?":"您确定要删除此阶段"}}</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="closeDeleteStage"> <div class="del_btn btn1" @click="closeDeleteStage">
@@ -1680,6 +1680,7 @@ export default {
const showDeleteStage = (id) => { const showDeleteStage = (id) => {
state.deleteStageId = id; state.deleteStageId = id;
state.deleteStageModal = true; state.deleteStageModal = true;
console.log(state.level)
}; };
//关闭删除阶段弹窗 //关闭删除阶段弹窗
const closeDeleteStage = () => { const closeDeleteStage = () => {
@@ -1815,6 +1816,39 @@ export default {
getTableData(final.taskList); getTableData(final.taskList);
}; };
// 删除所有阶段
const removeAllLevel = () => {
// state.cancelModal = false;
console.log(state.level)
let removeArr = state.level;
for(let i=0;i<removeArr.length;i++){
let obj = {
stageId: removeArr[i].id
}
apistage
.deleteStage(obj)
.then((res) => {
console.log("删除阶段成功", res);
if(removeArr.length-1==i){
message.destroy();
message.success("删除全部阶段成功");
closeDeleteStage();
localStorage.setItem("stageId", "");
getTask();
state.cancelModal = false;
}
})
.catch((err) => {
if(removeArr.length-1==i){
console.log("删除阶段失败", err);
message.destroy();
message.success("删除全部阶段失败");
state.cancelModal = false;
}
});
}
}
//选择单个任务 //选择单个任务
const changeRow = (e) => { const changeRow = (e) => {
//selectRow:已经选择的任务的id数组 //selectRow:已经选择的任务的id数组
@@ -2019,6 +2053,7 @@ export default {
temporaryStorage, temporaryStorage,
submitStorage, submitStorage,
cancelStorage, cancelStorage,
removeAllLevel
}; };
}, },
}; };

View File

@@ -1236,6 +1236,7 @@
<div <div
v-for="item in fileList" v-for="item in fileList"
:key="item.uid" :key="item.uid"
style="width:500px;display:flex;justify-content:space-between;align-items:center;"
class="docListStyle" class="docListStyle"
> >
<img <img
@@ -1248,7 +1249,7 @@
" "
alt="" alt=""
/> />
<span style="font: oblique bold 16px Sans-serif">{{ <span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
item.name item.name
}}</span> }}</span>
<span <span