mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 04:46:46 +08:00
feat:任务批量删除弹窗 概览 获取规则 设置编辑 共享文档
This commit is contained in:
@@ -23,3 +23,6 @@ export const topStudent = (obj) => http.post('/admin/project/topStudent', obj)
|
||||
|
||||
//项目概览
|
||||
export const overview = (obj) => http.get('/admin/project/overview', { params: obj })
|
||||
|
||||
//设置项目积分规则
|
||||
export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
|
||||
@@ -164,8 +164,50 @@
|
||||
><span class="scoretext">{{ score1 }} </span><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>优秀学员可获得 </span
|
||||
><span class="scoretext">{{ score2 }}</span
|
||||
<span>完成在线课程获得 </span
|
||||
><span class="scoretext">{{ done }}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>完成面授课程获得 </span
|
||||
><span class="scoretext">{{ done1 }}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>完成作业成绩不低于 </span
|
||||
><span class="scoretext">{{ done2 }}</span
|
||||
><span>分获得</span>
|
||||
<span class="scoretext">{{ done3 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>前</span
|
||||
><span class="scoretext">{{ four1}}</span
|
||||
><span>名学完在线课程获得</span>
|
||||
<span class="scoretext">{{ four2}}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>前</span
|
||||
><span class="scoretext">{{ four3}}</span
|
||||
><span>名提交作业且成绩不低于</span>
|
||||
<span class="scoretext">{{ four4}}</span
|
||||
><span >分获得</span>
|
||||
<span class="scoretext">{{ four5}}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考试成绩高于</span
|
||||
><span class="scoretext">{{ five1 }}</span
|
||||
><span>分获得</span>
|
||||
<span class="scoretext">{{ five2 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考勤正常学员获得 </span
|
||||
><span class="scoretext">{{ six1}}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>成为小组长获得</span
|
||||
><span class="scoretext">{{ seven1 }}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>优秀学员可获得</span>
|
||||
<span class="scoretext">{{ seven2 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -186,11 +228,82 @@
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>优秀学员可获得 </span
|
||||
<span>完成在线课程获得 </span
|
||||
><span
|
||||
><a-input v-model:value="score2" :bordered="false" /></span
|
||||
><span>积分</span>
|
||||
><a-input v-model:value="done" :bordered="false" /></span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>完成面授课程获得 </span
|
||||
><a-input
|
||||
v-model:value="done1"
|
||||
:bordered="false"
|
||||
/>
|
||||
<span style="margin-right:50px">积分</span>
|
||||
<span>完成作业成绩不低于 </span
|
||||
><a-input
|
||||
v-model:value="done2"
|
||||
:bordered="false"
|
||||
/><span>分获得</span>
|
||||
<a-input
|
||||
v-model:value="done3"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>前</span
|
||||
><a-input
|
||||
v-model:value="four1"
|
||||
:bordered="false"
|
||||
/><span>名学完在线课程获得</span>
|
||||
<a-input
|
||||
v-model:value="four2"
|
||||
:bordered="false"
|
||||
/><span style="margin-right:50px">积分</span>
|
||||
<span>前</span
|
||||
><a-input
|
||||
v-model:value="four3"
|
||||
:bordered="false"
|
||||
/><span>名提交作业且成绩不低于</span>
|
||||
<a-input
|
||||
v-model:value="four4"
|
||||
:bordered="false"
|
||||
/><span >分获得</span>
|
||||
<a-input
|
||||
v-model:value="four5"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考试成绩高于</span
|
||||
><a-input
|
||||
v-model:value="five1"
|
||||
:bordered="false"
|
||||
/><span>分获得</span>
|
||||
<a-input
|
||||
v-model:value="five2"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考勤正常学员获得 </span
|
||||
><a-input
|
||||
v-model:value="six1"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>成为小组长获得</span
|
||||
><a-input
|
||||
v-model:value="seven1"
|
||||
:bordered="false"
|
||||
/><span style="margin-right:50px">积分</span>
|
||||
<span>优秀学员可获得</span>
|
||||
<a-input
|
||||
v-model:value="seven2"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div></a-tab-pane
|
||||
@@ -372,6 +485,20 @@ export default {
|
||||
Svisible: false,
|
||||
score1: 5,
|
||||
score2: 5,
|
||||
done:null,
|
||||
done1:null,
|
||||
done2:null,
|
||||
done3:null,
|
||||
four1:null,
|
||||
four2:null,
|
||||
four3:null,
|
||||
four4:null,
|
||||
four5:null,
|
||||
five1:null,
|
||||
five2:null,
|
||||
six1:null,
|
||||
seven1:null,
|
||||
seven2:null,
|
||||
edit: true,
|
||||
searchRankName:null,//榜单搜索名称
|
||||
});
|
||||
|
||||
@@ -347,10 +347,13 @@
|
||||
v-if="showHidden"
|
||||
@click="morePeopleHidden"
|
||||
>
|
||||
<div>收起 <img
|
||||
<div>
|
||||
收起
|
||||
<img
|
||||
style="width: 10px; height: 12px; margin-top: -2px"
|
||||
src="../../assets/images/projectadd/pickUp.png"
|
||||
/></div>
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
@@ -409,10 +412,13 @@
|
||||
v-if="showHidden1"
|
||||
@click="morePeopleHidden1"
|
||||
>
|
||||
<div>收起 <img
|
||||
<div>
|
||||
收起
|
||||
<img
|
||||
style="width: 10px; height: 12px; margin-top: -2px"
|
||||
src="../../assets/images/projectadd/pickUp.png"
|
||||
/></div>
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
@@ -469,10 +475,13 @@
|
||||
v-if="showHidden2"
|
||||
@click="morePeopleHidden2"
|
||||
>
|
||||
<div>收起 <img
|
||||
<div>
|
||||
收起
|
||||
<img
|
||||
style="width: 10px; height: 12px; margin-top: -2px"
|
||||
src="../../assets/images/projectadd/pickUp.png"
|
||||
/></div>
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1051,6 +1060,7 @@ export default {
|
||||
// console.log("selectedRowKeys changed: ", selectedRowKeys,item);
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.choosepeople = item.reverse();
|
||||
console.log(item, "选中你了!", state.choosepeople);
|
||||
selectedsHeight();
|
||||
};
|
||||
//单个删除选中的人
|
||||
|
||||
@@ -1161,7 +1161,6 @@ export default {
|
||||
getTableDate();
|
||||
};
|
||||
|
||||
|
||||
const searchSubmit = () => {
|
||||
console.log("点击了搜索");
|
||||
state.currentPage = 1;
|
||||
@@ -2921,6 +2920,9 @@ export default {
|
||||
data.subList.map((data2) => {
|
||||
data2.paraentName = value.name + "/" + data.name;
|
||||
data2.isbj = "class";
|
||||
storage.set("isbj", data.projectId);
|
||||
// console.log(data2.paraentName, "conme");
|
||||
storage.set("pN", data2.paraentName);
|
||||
});
|
||||
// console.log("lalallalaa", data);
|
||||
} else {
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
<div class="onerow">
|
||||
<div class="taskmain">任务列表</div>
|
||||
<button class="btn" @click="showChangeModal">移动任务到阶段</button>
|
||||
<div class="edit" @click="deleteTaskAll">
|
||||
<div class="edit" @click="showdeAll">
|
||||
<img
|
||||
class="editimg"
|
||||
src="../../assets/images/projectadd/delete.png"
|
||||
@@ -787,6 +787,35 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="deAll"
|
||||
:footer="null"
|
||||
:closable="cC"
|
||||
wrapClassName="ConfirmModal"
|
||||
centered="true"
|
||||
>
|
||||
<div class="delete">
|
||||
<div class="del_header"></div>
|
||||
<div class="del_main">
|
||||
<div class="header">
|
||||
<div class="icon"></div>
|
||||
<span>提示</span>
|
||||
<div class="close_exit" @click="closeDeAll"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>您确定要批量删除任务吗</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1">
|
||||
<div class="btnText" @click="closeDeAll">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2">
|
||||
<div class="btnText" @click="deleteTaskAll">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 移动任务到阶段 -->
|
||||
<a-modal
|
||||
style="padding: 0"
|
||||
@@ -850,7 +879,6 @@ import * as apimove from "../../api/indexMovetask";
|
||||
import draggable from "vuedraggable";
|
||||
import { storage } from "../../api/storage";
|
||||
|
||||
|
||||
const drawercolumns = [
|
||||
{
|
||||
title: "项目名称",
|
||||
@@ -928,6 +956,7 @@ export default {
|
||||
EditInvistId: null,
|
||||
EditVoteId: null,
|
||||
projectTaskId: null, // 要编辑的具体任务id
|
||||
deAll: false,
|
||||
projectNameList: [
|
||||
{
|
||||
id: 1,
|
||||
@@ -1325,7 +1354,6 @@ export default {
|
||||
// console.log("22222", res.data.data.stageList);
|
||||
let leng = res.data.data.stageList.length;
|
||||
if (leng > 0) {
|
||||
|
||||
let arr = res.data.data.stageList[0].taskList;
|
||||
console.log("任务列表", arr);
|
||||
getTableData(arr);
|
||||
@@ -1351,8 +1379,6 @@ export default {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
//获取删除id(投票)
|
||||
const changeVData = (data) => {
|
||||
console.log("8989", data);
|
||||
@@ -1420,8 +1446,11 @@ export default {
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
message.destroy();
|
||||
message.warning("批量删除失败");
|
||||
});
|
||||
});
|
||||
state.deAll = false;
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys) => {
|
||||
console.log("selectedRowKeys changed: ", selectedRowKeys);
|
||||
@@ -1566,6 +1595,8 @@ export default {
|
||||
});
|
||||
}
|
||||
state.selectRow = arr;
|
||||
console.log(state.selectRow, "xuanzhong");
|
||||
console.log(Object.prototype.toString.call(state.selectRow));
|
||||
//判断是否是全部选择或者是全部未选择来修改selectAll框的样式
|
||||
if (arr.length !== 0) {
|
||||
if (arr.length === state.tableData.length) {
|
||||
@@ -1608,7 +1639,6 @@ export default {
|
||||
console.log("任务id", id);
|
||||
};
|
||||
|
||||
|
||||
//打开测评的弹窗
|
||||
const showEditEvalDrawer = (id, eleId) => {
|
||||
console.log("222222222222222222222", id);
|
||||
@@ -1641,6 +1671,17 @@ export default {
|
||||
showDrawerAddTest(id, eleId);
|
||||
}
|
||||
};
|
||||
const showdeAll = () => {
|
||||
if(state.selectRow.length==0){
|
||||
message.destroy()
|
||||
return message.warning("请选择要删除的任务")
|
||||
}else{
|
||||
state.deAll = true;
|
||||
}
|
||||
};
|
||||
const closeDeAll = () => {
|
||||
state.deAll = false;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
@@ -1688,8 +1729,8 @@ export default {
|
||||
moveTask,
|
||||
deleteTaskAll,
|
||||
decideType,
|
||||
|
||||
|
||||
showdeAll,
|
||||
closeDeAll,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -175,9 +175,15 @@
|
||||
<div class="stage2">阶段2</div>
|
||||
</div> -->
|
||||
<div class="stagemess">
|
||||
<div v-for="item in stageList"
|
||||
:class= "{ 'stage1': item.stageId == choosedStageId, 'stage2': item.stageId != choosedStageId }"
|
||||
:key="item.stageId" @click="choosedStageId = item.stageId">
|
||||
<div
|
||||
v-for="item in stageList"
|
||||
:class="{
|
||||
stage1: item.stageId == choosedStageId,
|
||||
stage2: item.stageId != choosedStageId,
|
||||
}"
|
||||
:key="item.stageId"
|
||||
@click="choosedStageId = item.stageId"
|
||||
>
|
||||
{{ item.stage }}
|
||||
</div>
|
||||
<!-- <div class="stage1">阶段1</div>
|
||||
@@ -216,20 +222,35 @@
|
||||
<div class="protext">作业完成率</div>
|
||||
</div>
|
||||
<div class="proright">
|
||||
<div class="pronub" style="margin-left: 280px">{{stageOverviewList.totalTaskCnt}}</div>
|
||||
<div class="pronub" style="margin-left: 280px">
|
||||
{{ stageOverviewList.totalTaskCnt }}
|
||||
</div>
|
||||
<div class="proright1">
|
||||
<span class="textpro">阶段任务总数</span>
|
||||
<a-progress :percent="stageOverviewList.totalTaskCnt" style="width: 369px" />
|
||||
<a-progress
|
||||
:percent="stageOverviewList.totalTaskCnt"
|
||||
style="width: 369px"
|
||||
/>
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 206px">
|
||||
{{ stageOverviewList.totalReqCnt }}
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 206px">{{stageOverviewList.totalReqCnt}}</div>
|
||||
<div class="proright1">
|
||||
<span class="textpro">必修课</span>
|
||||
<a-progress :percent="stageOverviewList.totalReqCnt" style="width: 369px" />
|
||||
<a-progress
|
||||
:percent="stageOverviewList.totalReqCnt"
|
||||
style="width: 369px"
|
||||
/>
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 142px">
|
||||
{{ stageOverviewList.totalOptCnt }}
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 142px">{{stageOverviewList.totalOptCnt}}</div>
|
||||
<div class="proright1">
|
||||
<span class="textpro">选修课</span>
|
||||
<a-progress :percent="stageOverviewList.totalOptCnt" style="width: 369px" />
|
||||
<a-progress
|
||||
:percent="stageOverviewList.totalOptCnt"
|
||||
style="width: 369px"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -454,7 +475,6 @@
|
||||
background: linear-gradient(180deg, #ddeaff, #f0f8fe);
|
||||
display: block;
|
||||
"
|
||||
|
||||
>
|
||||
<div class="leftt">
|
||||
<img src="../../assets/images/taskpage/left2.png" />
|
||||
@@ -871,7 +891,7 @@
|
||||
<div class="img"></div>
|
||||
<div class="ed">编辑</div>
|
||||
</div> -->
|
||||
<div class="edit">
|
||||
<div class="edit" @click="toEdit">
|
||||
<div class="img"></div>
|
||||
<div class="ed">编辑</div>
|
||||
</div>
|
||||
@@ -962,29 +982,48 @@
|
||||
<a-switch v-model:checked="docChecked"></a-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnbox" style="margin:20px;">
|
||||
<div class="btnbox" style="margin: 20px">
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
action="/api/file/upload"
|
||||
@change="handleChange"
|
||||
>
|
||||
<span class="xkbtn" style="cursor: pointer; font-size: 17px" >上传</span>
|
||||
<img src="@/assets/images/basicinfo/cloud.png" style="cursor: pointer;
|
||||
width:34px;height:34px;
|
||||
" alt="">
|
||||
<span
|
||||
class="xkbtn"
|
||||
style="cursor: pointer; font-size: 17px"
|
||||
>上传</span
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/basicinfo/cloud.png"
|
||||
style="cursor: pointer; width: 34px; height: 34px"
|
||||
alt=""
|
||||
/>
|
||||
</a-upload>
|
||||
<div class="btnbox" style="margin:20px;">
|
||||
<div class="btnbox" style="margin: 20px">
|
||||
<span style="color: #999999">
|
||||
支持:pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
|
||||
</span>
|
||||
</div>
|
||||
<div v-for="item in docList" :key="item.src" class="docListStyle">
|
||||
<img src="@/assets/images/basicinfo/download.png" style="cursor: pointer;
|
||||
width:40px;height:40px;margin-right:40px;
|
||||
" alt="">
|
||||
<span style="font: oblique bold 16px Sans-serif">{{item.name}}</span>
|
||||
<span style="color: #4ea6ff;float:right;">删除</span>
|
||||
<div
|
||||
v-for="item in docList"
|
||||
:key="item.src"
|
||||
class="docListStyle"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/basicinfo/download.png"
|
||||
style="
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 40px;
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<span style="font: oblique bold 16px Sans-serif">{{
|
||||
item.name
|
||||
}}</span>
|
||||
<span style="color: #4ea6ff; float: right">删除</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1455,6 +1494,7 @@
|
||||
<script>
|
||||
import { reactive, toRefs, onMounted } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { useRouter } from "vue-router";
|
||||
// import { CaretRightOutlined } from "@ant-design/icons-vue";
|
||||
import TimeManage from "../../components/drawers/TimeManage";
|
||||
import FaceManage from "../../components/drawers/FaceManage";
|
||||
@@ -1515,6 +1555,9 @@ export default {
|
||||
projectId: storage.get("projectId")
|
||||
? JSON.parse(storage.get("projectId"))
|
||||
: null,
|
||||
isbj: storage.get("isbj") ? JSON.parse(storage.get("isbj")) : null,
|
||||
// pN: storage.get("pN") ? JSON.parse(storage.get("pN")) : null,
|
||||
pN: storage.get("pN"),
|
||||
goodstuList: [
|
||||
{
|
||||
id: 1,
|
||||
@@ -1545,17 +1588,17 @@ export default {
|
||||
docChecked: true,
|
||||
docList: [
|
||||
{
|
||||
name:'测试文档1.doc',
|
||||
name: "测试文档1.doc",
|
||||
src: "",
|
||||
},
|
||||
{
|
||||
name:'测试文档2.doc',
|
||||
name: "测试文档2.doc",
|
||||
src: "",
|
||||
},
|
||||
{
|
||||
name:'测试文档3.doc',
|
||||
name: "测试文档3.doc",
|
||||
src: "",
|
||||
}
|
||||
},
|
||||
],
|
||||
//学员信息列表
|
||||
tabledata: [
|
||||
@@ -2122,6 +2165,7 @@ export default {
|
||||
level: null, //项目级别
|
||||
systemId: null, //培训体系
|
||||
picUrl: null,
|
||||
parentId: null,
|
||||
});
|
||||
|
||||
const levelList = reactive({
|
||||
@@ -2158,6 +2202,7 @@ export default {
|
||||
// 输入接入 -- start --
|
||||
|
||||
const router = useRoute();
|
||||
const routered = useRouter();
|
||||
console.log("route:", router.query.id);
|
||||
|
||||
// 输入接入 -- start --
|
||||
@@ -2921,7 +2966,7 @@ export default {
|
||||
let info = res.data.data.projectInfo;
|
||||
let start = toDate(info.beginTime / 1000, "Y-M-D");
|
||||
let end = toDate(info.endTime / 1000, "Y-M-D");
|
||||
|
||||
state.parentId = info.parentId;
|
||||
state.name = info.name;
|
||||
state.startTime = start;
|
||||
state.endTime = end;
|
||||
@@ -3071,6 +3116,40 @@ export default {
|
||||
message.error(`${info.file.name} 文件上传失败.`);
|
||||
}
|
||||
};
|
||||
|
||||
//设置里的编辑按钮
|
||||
const toEdit = () => {
|
||||
if (state.parentId == "0") {
|
||||
routered.push({
|
||||
path: "/projectadd",
|
||||
query: {
|
||||
projectId: state.projectId,
|
||||
name: state.name,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
if (state.isbj !== null) {
|
||||
routered.push({
|
||||
path: "/classadd",
|
||||
query: {
|
||||
projectId: state.projectId,
|
||||
// name: state.paraentName,
|
||||
name: state.pN,
|
||||
edit: 0,
|
||||
},
|
||||
});
|
||||
} else {
|
||||
routered.push({
|
||||
path: "/sonproject",
|
||||
query: {
|
||||
projectId: state.projectId,
|
||||
name: state.name,
|
||||
edit: 0,
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
onMounted(() => {
|
||||
getStu();
|
||||
getTaskList();
|
||||
@@ -3154,6 +3233,7 @@ export default {
|
||||
cancelcanyou,
|
||||
changePaginationStu,
|
||||
handleChange,
|
||||
toEdit,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user