--项目 阶段修改

This commit is contained in:
yuping
2022-12-04 17:51:53 +08:00
parent a38ca44e6f
commit a09bbd6fde
3 changed files with 962 additions and 951 deletions

View File

@@ -1526,6 +1526,7 @@ export default {
onClick={() => {
router.push({
path: "/taskpage",
query: {projectId: value.record.projectId}
});
storage.set("projectId", value.record.projectId);
}}

View File

@@ -1027,7 +1027,7 @@
</template>
<script>
import {reactive, toRefs, onMounted, onUnmounted, onUpdated} from "vue";
import {reactive, toRefs, onMounted, onUnmounted, onUpdated, watch} from "vue";
import AddOnline from "../../components/drawers/AddOnline.vue";
import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
import AddCase from "../../components/drawers/AddCase.vue";
@@ -1048,7 +1048,7 @@ import draggable from "vuedraggable";
import {storage} from "../../api/storage";
// import UnlockMode from "../../components/drawers/UnlockMode.vue";
// import * as api1 from "../../api/index1";
import {useRouter} from "vue-router";
import {useRoute, useRouter} from "vue-router";
export default {
name: "TaskAdd",
@@ -1070,10 +1070,9 @@ export default {
},
setup() {
const router = useRouter();
const route = useRoute();
const state = reactive({
projectId: storage.get("projectId")
? JSON.parse(storage.get("projectId"))
: null,
projectId: route.query.projectId,
chooseStageId: null,
removeStageId: null,
edit: false,
@@ -1160,6 +1159,10 @@ export default {
console.log("visible", bool);
};
watch(route, () => {
console.log(route)
})
// 把数据放到state里
const getTableData = (tableData) => {
let data = tableData;
@@ -1360,90 +1363,86 @@ export default {
//获取任务列表
const getTask = async () => {
// console.log("state.projectId", state.projectId);
let obj = {
projectId: state.projectId,
// projectId: 28,
};
await api
.getTask(obj)
.then((res) => {
if (res.status == 200) {
console.log("22222", res.data.data.stageList);
// console.log("22222", res.data.data.stageList);
state.projectTitle = res.data.data.projectInfo.name;
state.picUrl = res.data.data.projectInfo.picUrl;
state.stageList = res.data.data.stageList;
let leng = res.data.data.stageList.length;
if (leng > 0) {
let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null;
// console.log("stage",Object.prototype.toString.call(stage))
getStageData(res.data.data.stageList);
if (stage != null) {
console.log(stage);
let stageList = res.data.data.stageList; //阶段数组
let result = stageList.find((item) => item.stageId == stage);
console.log("又找到了", result);
if (result != null) {
getTableData(result.taskList);
} else {
//没有选中的阶段时,获取全部的任务
console.log(stage);
let stageList = res.data.data.stageList; //阶段数组
if (stageList != null) {
let taskListAll;
stageList.forEach((item) => {
taskListAll = [...item.taskList];
});
console.log("taskListAll", taskListAll);
getTableData(taskListAll);
}
}
} else {
console.log(stage);
let stageList = res.data.data.stageList; //阶段数组
if (stageList != null) {
let taskListAll;
stageList.forEach((item) => {
taskListAll = [...item.taskList];
});
console.log("taskListAll", taskListAll);
getTableData(taskListAll);
}
}
// 每次都获取了第一条taskList
// let arr = res.data.data.stageList[0].taskList;
// console.log("任务列表", stage, arr);
// getTableData(arr);
}
// //获取阶段列表
let stagearr = res.data.data.stageList;
// let arrlist = state.curLevel;
console.log(stagearr, 111111);
if (stagearr.length > 0) {
getStageData(stagearr);
// stagearr.map((value) => {
// console.log(value);
// // arrlist.push(value);
updateStageChoosd()
// let leng = res.data.data.stageList.length;
// if (leng > 0) {
// let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null;
//
// // console.log("stage",Object.prototype.toString.call(stage))
// if (stage != null) {
// console.log(stage);
// let stageList = res.data.data.stageList; //阶段数组
//
//
//
// let result = stageList.find((item) => item.stageId == stage);
// console.log("又找到了", result);
// if (result != null) {
// getTableData(result.taskList);
// } else {
// //没有选中的阶段时,获取全部的任务
// console.log(stage);
// let stageList = res.data.data.stageList; //阶段数组
// if (stageList != null) {
// let taskListAll;
// stageList.forEach((item) => {
// taskListAll = [...item.taskList];
// });
}
//给阶段id赋初始值
let stageid = localStorage.getItem("stageId")
? localStorage.getItem("stageId")
: null;
if (stageid !== "null") {
state.chooseStageId = stageid;
} else {
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
}
let final = state.level.find((item) => item.id == state.chooseStageId);
getTableData(final.taskList);
}
// console.log("taskListAll", taskListAll);
// getTableData(taskListAll);
// }
// }
// } else {
// console.log(stage);
// let stageList = res.data.data.stageList; //阶段数组
// if (stageList != null) {
// let taskListAll;
// stageList.forEach((item) => {
// taskListAll = [...item.taskList];
// });
// console.log("taskListAll", taskListAll);
// getTableData(taskListAll);
// }
// }
// // 每次都获取了第一条taskList
// // let arr = res.data.data.stageList[0].taskList;
// // console.log("任务列表", stage, arr);
// // getTableData(arr);
// }
// // //获取阶段列表
// let stagearr = res.data.data.stageList;
// // let arrlist = state.curLevel;
// console.log(stagearr, 111111);
// if (stagearr.length > 0) {
// getStageData(stagearr);
// // stagearr.map((value) => {
// // console.log(value);
// // // arrlist.push(value);
// // });
// }
// //给阶段id赋初始值
// let stageid = localStorage.getItem("stageId")
// ? localStorage.getItem("stageId")
// : null;
// if (stageid !== "null") {
// state.chooseStageId = stageid;
// } else {
// state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
// }
// let final = state.level.find((item) => item.id == state.chooseStageId);
// getTableData(final.taskList);
})
.catch((err) => {
console.log("获取任务列表失败", err);
});
};
//获取修改、删除id投票)
@@ -1459,18 +1458,28 @@ export default {
};
//删除任务
const deleteTask = () => {
let obj = {projectTaskIds: state.deleteID};
api
.deleteTask(obj)
.then((res) => {
console.log(res);
})
.catch((err) => {
console.log(err);
});
const deleteTask = async () => {
await api.deleteTask({projectTaskIds: state.deleteID})
//删除后更新索引
};
function updateStageChoosd() {
console.log('updateStageChoosd')
console.log(state.chooseStageId)
if (state.chooseStageId && state.stageList.find(e => e.stageId == state.chooseStageId)) {
getTableData(state.stageList.find(e => e.stageId == state.chooseStageId)?.taskList);
return
}
state.chooseStageId = ''
const arr = state.stageList.filter(e => e.name);
arr && arr.length && (state.chooseStageId = arr[0].stageId);
if (!state.chooseStageId) {
getTableData(state.stageList[0].taskList)
return
}
getTableData(state.stageList.find(e => e.stageId == state.chooseStageId)?.taskList);
}
const showChangeModal = () => {
if (state.selectRow.length == 0) {
message.destroy();
@@ -1771,7 +1780,7 @@ export default {
state.selectAll = 0; //0未选择1全选2部分选择
console.log("state.level", id, state.level);
state.chooseStageId = id;
let final = state.level.find((item) => item.id === id);
let final = state.level.find((item) => item.id == id);
getTableData(final.taskList);
};

View File

@@ -3,7 +3,7 @@
<div class="taskpage">
<div class="addhead" style="flex-shrink: 0">
<div class="leftimg">
<img class="img" :src="picUrl" />
<img class="img" :src="picUrl"/>
</div>
<div class="imgfor">
<div class="forz">{{ name }}</div>
@@ -11,7 +11,7 @@
<div class="fort">起止时间{{ startTime }}{{ endTime }}</div>
</div>
<div class="right">
<img class="img1" src="../../assets/images/leveladd/ma.png" />
<img class="img1" src="../../assets/images/leveladd/ma.png"/>
<div class="line" v-if="action == 1 || action == 0"></div>
<img
v-if="action == 1 || action == 0"
@@ -88,7 +88,7 @@
<div class="line"></div>
<router-link to="/projectmanage">
<div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<img class="img2" src="../../assets/images/leveladd/back.png"/>
<div class="return">返回</div>
</div>
</router-link>
@@ -117,13 +117,13 @@
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left1.png" />
<img src="../../assets/images/taskpage/left1.png"/>
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture1.png" />
<img src="../../assets/images/taskpage/picture1.png"/>
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right1.png" />
<img src="../../assets/images/taskpage/right1.png"/>
</div>
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
添加任务
@@ -136,13 +136,13 @@
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left2.png" />
<img src="../../assets/images/taskpage/left2.png"/>
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture2.png" />
<img src="../../assets/images/taskpage/picture2.png"/>
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right2.png" />
<img src="../../assets/images/taskpage/right2.png"/>
</div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
添加学员
@@ -323,8 +323,8 @@
<!-- <button class="btn" @click="showFaceIn" v-if="morFaceT">
批量面授报名
</button> -->
<router-link to="/taskadd">
<button to="/taskadd" class="edit">
<router-link :to="{path:`/taskadd`,query:{projectId:projectId}}">
<button class="edit">
<img
class="editimg"
src="../../assets/images/projectadd/edit.png"
@@ -367,9 +367,10 @@
/>
<div></div>
</template>
<template v-for="(value, index) in taskSyllabus">
<a-collapse-panel
v-for="(value, index) in taskSyllabus"
:key="index"
v-if="value.name"
:header="value.name"
>
<div
@@ -438,7 +439,7 @@
<div class="timetext">开始时间</div>
<div class="timetext">
{{
item.startTime !== null ? item.startTime: ''
item.startTime !== null ? item.startTime : ''
}}
</div>
</div>
@@ -532,10 +533,11 @@
</div>
</div>
</a-collapse-panel>
</template>
</a-collapse>
<!-- 无数据创建任务 v-if="taskSyllabus.length == 0"-->
<router-link
to="/taskadd"
:to="{path:`/taskadd`,query:{projectId:projectId}}"
class="taskbox"
style="
background: linear-gradient(180deg, #ddeaff, #f0f8fe);
@@ -544,13 +546,13 @@
v-if="taskSyllabus.length == 0"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left2.png" />
<img src="../../assets/images/taskpage/left2.png"/>
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture8.png" />
<img src="../../assets/images/taskpage/picture8.png"/>
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right2.png" />
<img src="../../assets/images/taskpage/right2.png"/>
</div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
创建任务
@@ -564,19 +566,19 @@
class="taskbox"
@click="
() => {
routered.push({ path: '/taskadd' });
routered.push({ path: `/taskadd`,query:{projectId:projectId} });
}
"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left1.png" />
<img src="../../assets/images/taskpage/left1.png"/>
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture1.png" />
<img src="../../assets/images/taskpage/picture1.png"/>
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right1.png" />
<img src="../../assets/images/taskpage/right1.png"/>
</div>
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
添加任务
@@ -674,18 +676,18 @@
</div>
<div class="groupright">
<div class="btn1" @click="searchStu">
<img src="../../assets/images/courseManage/search0.png" />
<img src="../../assets/images/courseManage/search0.png"/>
<span class="btn1text">搜索</span>
</div>
<div class="btn2" @click="resetCancel">
<img src="../../assets/images/courseManage/reset1.png" />
<img src="../../assets/images/courseManage/reset1.png"/>
<span class="btn2text">重置</span>
</div>
</div>
</div>
<div class="second2" style="margin-top: 20px">
<div class="btn1" @click="showStuAdd">
<img src="../../assets/images/courseManage/add0.png" />
<img src="../../assets/images/courseManage/add0.png"/>
<span class="btn1text">添加学员</span>
</div>
<!-- 2022-11-30注释 后面放开 -->
@@ -694,12 +696,12 @@
<span class="btn2text">导入学员</span>
</div> -->
<div class="btn2" @click="showAllDelete">
<img src="../../assets/images/projectadd/delete.png" />
<img src="../../assets/images/projectadd/delete.png"/>
<span class="btn2text">批量删除</span>
</div>
</div>
<div class="talk">
<img class="im" src="../../assets/images/leveladd/gan.png" />
<img class="im" src="../../assets/images/leveladd/gan.png"/>
<div class="xu">
<span class="yi">已选择</span>
<div style="width: 5px; display: inline-block"></div>
@@ -762,22 +764,22 @@
</div>
<div class="groupright">
<div class="btn1" @click="searchGroup">
<img src="../../assets/images/courseManage/search0.png" />
<img src="../../assets/images/courseManage/search0.png"/>
<span class="btn1text">搜索</span>
</div>
<div class="btn2" @click="resetGroupName">
<img src="../../assets/images/courseManage/reset1.png" />
<img src="../../assets/images/courseManage/reset1.png"/>
<span class="btn2text">重置</span>
</div>
</div>
</div>
<div class="second2">
<div class="btn1" @click="showModal2">
<img src="../../assets/images/courseManage/add0.png" />
<img src="../../assets/images/courseManage/add0.png"/>
<span class="btn1text">创建小组</span>
</div>
<div class="btn2" @click="showSubset">
<img src="../../assets/images/courseManage/reset2.png" />
<img src="../../assets/images/courseManage/reset2.png"/>
<span class="btn2text">随机分组</span>
</div>
</div>
@@ -810,7 +812,7 @@
<div class="leader">组长:{{ item.leaderName }}</div>
<div class="grocenter">
<div class="leader1">进度</div>
<a-progress :percent="item.completeRatio" />
<a-progress :percent="item.completeRatio"/>
</div>
<div
class="grofooter"
@@ -1170,7 +1172,7 @@
:title="showFaceText"
/>
<!-- 学员(小组管理)创建小组抽屉 -->
<subset-manage v-model:Svisible="subsetVisivle" />
<subset-manage v-model:Svisible="subsetVisivle"/>
<!-- 学员管理-添加学员抽屉 -->
<!-- <stu-add v-model:Stuvisible="Stuvisible" /> -->
<!-- 添加学员抽屉 -->
@@ -1182,7 +1184,7 @@
classify="addstudent"
/>
<!-- 学员管理-导入学员抽屉 -->
<import-stu v-model:Importvisible="Importvisible" />
<import-stu v-model:Importvisible="Importvisible"/>
<!-- 查看学员 传入查看学员的id-->
<see-stu
v-model:Seevisible="Seevisible"
@@ -1205,9 +1207,9 @@
v-model:projectId="projectId"
/>
<!-- 面授学员抽屉 -->
<face-stu v-model:FSvisible="FSvisible" />
<face-stu v-model:FSvisible="FSvisible"/>
<!-- 活动考勤抽屉 -->
<active-attendance v-model:AAvisible="AAvisible" :title="showkaoqinText" />
<active-attendance v-model:AAvisible="AAvisible" :title="showkaoqinText"/>
<!-- 作业管理抽屉 -->
<work-manage
v-model:Wvisible="Wvisible"
@@ -1222,7 +1224,7 @@
:itemsType="itemstype"
/>
<!-- 批量面授报名 -->
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" />
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible"/>
<!-- 概览(无数据)-项目发布弹窗 -->
<div>
@@ -1281,7 +1283,7 @@
</div>
</div>
<div class="send">
<a-switch v-model:checked="checked" size="small" />
<a-switch v-model:checked="checked" size="small"/>
<span class="sendtext">发送项目通知</span>
</div>
<div class="ckb">
@@ -1539,7 +1541,7 @@
</a-modal>
</div>
<!-- 编辑项目弹窗 -->
<proj-set v-model:editHs="editHs" v-model:projectId="projectId" />
<proj-set v-model:editHs="editHs" v-model:projectId="projectId"/>
<!-- 二维码弹窗 -->
<two-dimensional-code
@@ -1724,9 +1726,9 @@
</div>
</template>
<script>
import { reactive, toRefs, onMounted, watch, computed } from "vue";
import { useRoute } from "vue-router";
import { useRouter } from "vue-router";
import {reactive, toRefs, onMounted, watch, computed} 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";
@@ -1745,7 +1747,7 @@ import NoticePub from "../../components/drawers/NoticePub";
import NoticeHis from "../../components/drawers/NoticeHis";
// import ProjectScore from "../../components/drawers/ProjectScore";
import TaskImpStu from "../../components/drawers/TaskFaceIn";
import { storage } from "../../api/storage";
import {storage} from "../../api/storage";
import * as api from "../../api/index1";
import * as apiproj from "../../api/index";
import {
@@ -1756,15 +1758,15 @@ import {
editGroup,
topStudent,
} from "../../api/indexProjStu";
import { message } from "ant-design-vue";
import {message} from "ant-design-vue";
import * as apitl from "../../api/index";
import { getTask } from "../../api/indexTaskadd";
import { editProj } from "../../api/indexTaskadd";
import { toDate } from "../../api/method";
import {getTask} from "../../api/indexTaskadd";
import {editProj} from "../../api/indexTaskadd";
import {toDate} from "../../api/method";
import projSet from "../../components/Modals/projSet";
import { overview } from "../../api/indexProjStu";
import {overview} from "../../api/indexProjStu";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
import { useStore } from "vuex";
import {useStore} from "vuex";
import ProjectLevel from "@/components/project/ProjectLevel";
import TrainClass from "@/components/project/TrainClass";
@@ -1795,11 +1797,10 @@ export default {
},
setup() {
const store = useStore();
const route = useRoute();
const state = reactive({
loading: false,
projectId: storage.get("projectId")
? JSON.parse(storage.get("projectId"))
: null,
projectId: route.query.projectId,
isbj: storage.get("isbj") ? JSON.parse(storage.get("isbj")) : null,
// pN: storage.get("pN") ? JSON.parse(storage.get("pN")) : null,
pN: storage.get("pN"),
@@ -1864,23 +1865,23 @@ export default {
projectTaskId: "", //项目任务任务id
//进度排行学员
rankjindu: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
{value: "学员", label: "学员"},
{value: "小组", label: "小组"},
],
valuestu1: "学员",
//进度排行阶段
rankjieduan: [{ value: "第一阶段", label: "第一阶段" }],
rankjieduan: [{value: "第一阶段", label: "第一阶段"}],
valuestu2: "第一阶段",
//积分排行
rankxuefen: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
{value: "学员", label: "学员"},
{value: "小组", label: "小组"},
],
valuestu3: "学员",
//学时排行
rankxueshi: [
{ value: "学员", label: "学员" },
{ value: "小组", label: "小组" },
{value: "学员", label: "学员"},
{value: "小组", label: "小组"},
],
valuestu4: "学员",
visible: false, //时间管理
@@ -2022,21 +2023,21 @@ export default {
if (text.record.rank == "1") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/one.png")}
/>
);
} else if (text.record.rank == "2") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/two.png")}
/>
);
} else if (text.record.rank == "3") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/three.png")}
/>
);
@@ -2129,21 +2130,21 @@ export default {
if (text.record.rank == "1") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/one.png")}
/>
);
} else if (text.record.rank == "2") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/two.png")}
/>
);
} else if (text.record.rank == "3") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/three.png")}
/>
);
@@ -2236,21 +2237,21 @@ export default {
if (text.record.rank == "1") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/one.png")}
/>
);
} else if (text.record.rank == "2") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/two.png")}
/>
);
} else if (text.record.rank == "3") {
return (
<img
style={{ width: 24, height: 24 }}
style={{width: 24, height: 24}}
src={require("../../assets/images/taskpage/three.png")}
/>
);
@@ -2457,7 +2458,7 @@ export default {
//任务大纲渲染
const getTaskList = () => {
let objtl = {
projectId: storage.get("projectId"),
projectId: state.projectId,
};
apitl
.getProjectDetail(objtl)
@@ -2956,7 +2957,7 @@ export default {
// width: 60,
align: "center",
className: "h",
scopedSlots: { customRender: "action" }, //引入的插槽
scopedSlots: {customRender: "action"}, //引入的插槽
customRender: (text) => {
// console.log(text);
return (
@@ -3453,7 +3454,7 @@ export default {
//start---------项目概览
// 获取项目概览
const getOverview = () => {
overview({ projectId: state.projectId })
overview({projectId: state.projectId})
.then((res) => {
Object.keys(res.data.data.projectInfoOverview).forEach((item) => {
levelList.projectInfoOverview[item] =
@@ -3477,7 +3478,7 @@ export default {
};
//end---------项目概览
const handleChange = ({ file, fileList }) => {
const handleChange = ({file, fileList}) => {
let list = [];
if (file.status !== "uploading") {
console.log("上传的list", fileList);