mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 21:06:44 +08:00
--项目 阶段修改
This commit is contained in:
@@ -1526,6 +1526,7 @@ export default {
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
router.push({
|
router.push({
|
||||||
path: "/taskpage",
|
path: "/taskpage",
|
||||||
|
query: {projectId: value.record.projectId}
|
||||||
});
|
});
|
||||||
storage.set("projectId", value.record.projectId);
|
storage.set("projectId", value.record.projectId);
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -1027,7 +1027,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 AddOnline from "../../components/drawers/AddOnline.vue";
|
||||||
import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
|
import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
|
||||||
import AddCase from "../../components/drawers/AddCase.vue";
|
import AddCase from "../../components/drawers/AddCase.vue";
|
||||||
@@ -1048,7 +1048,7 @@ import draggable from "vuedraggable";
|
|||||||
import {storage} from "../../api/storage";
|
import {storage} from "../../api/storage";
|
||||||
// import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
// import UnlockMode from "../../components/drawers/UnlockMode.vue";
|
||||||
// import * as api1 from "../../api/index1";
|
// import * as api1 from "../../api/index1";
|
||||||
import {useRouter} from "vue-router";
|
import {useRoute, useRouter} from "vue-router";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "TaskAdd",
|
name: "TaskAdd",
|
||||||
@@ -1070,10 +1070,9 @@ export default {
|
|||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
const route = useRoute();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
projectId: storage.get("projectId")
|
projectId: route.query.projectId,
|
||||||
? JSON.parse(storage.get("projectId"))
|
|
||||||
: null,
|
|
||||||
chooseStageId: null,
|
chooseStageId: null,
|
||||||
removeStageId: null,
|
removeStageId: null,
|
||||||
edit: false,
|
edit: false,
|
||||||
@@ -1160,6 +1159,10 @@ export default {
|
|||||||
console.log("visible", bool);
|
console.log("visible", bool);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
watch(route, () => {
|
||||||
|
console.log(route)
|
||||||
|
})
|
||||||
|
|
||||||
// 把数据放到state里
|
// 把数据放到state里
|
||||||
const getTableData = (tableData) => {
|
const getTableData = (tableData) => {
|
||||||
let data = tableData;
|
let data = tableData;
|
||||||
@@ -1360,90 +1363,86 @@ export default {
|
|||||||
|
|
||||||
//获取任务列表
|
//获取任务列表
|
||||||
const getTask = async () => {
|
const getTask = async () => {
|
||||||
// console.log("state.projectId", state.projectId);
|
|
||||||
let obj = {
|
let obj = {
|
||||||
projectId: state.projectId,
|
projectId: state.projectId,
|
||||||
// projectId: 28,
|
|
||||||
};
|
};
|
||||||
await api
|
await api
|
||||||
.getTask(obj)
|
.getTask(obj)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.status == 200) {
|
|
||||||
console.log("22222", res.data.data.stageList);
|
console.log("22222", res.data.data.stageList);
|
||||||
// console.log("22222", res.data.data.stageList);
|
|
||||||
state.projectTitle = res.data.data.projectInfo.name;
|
state.projectTitle = res.data.data.projectInfo.name;
|
||||||
state.picUrl = res.data.data.projectInfo.picUrl;
|
state.picUrl = res.data.data.projectInfo.picUrl;
|
||||||
state.stageList = res.data.data.stageList;
|
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);
|
getStageData(res.data.data.stageList);
|
||||||
if (stage != null) {
|
updateStageChoosd()
|
||||||
console.log(stage);
|
// let leng = res.data.data.stageList.length;
|
||||||
let stageList = res.data.data.stageList; //阶段数组
|
// if (leng > 0) {
|
||||||
let result = stageList.find((item) => item.stageId == stage);
|
// let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null;
|
||||||
console.log("又找到了", result);
|
//
|
||||||
if (result != null) {
|
// // console.log("stage",Object.prototype.toString.call(stage))
|
||||||
getTableData(result.taskList);
|
// if (stage != null) {
|
||||||
} else {
|
// console.log(stage);
|
||||||
//没有选中的阶段时,获取全部的任务
|
// let stageList = res.data.data.stageList; //阶段数组
|
||||||
console.log(stage);
|
//
|
||||||
let stageList = res.data.data.stageList; //阶段数组
|
//
|
||||||
if (stageList != null) {
|
//
|
||||||
let taskListAll;
|
// let result = stageList.find((item) => item.stageId == stage);
|
||||||
stageList.forEach((item) => {
|
// console.log("又找到了", result);
|
||||||
taskListAll = [...item.taskList];
|
// if (result != null) {
|
||||||
});
|
// getTableData(result.taskList);
|
||||||
console.log("taskListAll", taskListAll);
|
// } else {
|
||||||
getTableData(taskListAll);
|
// //没有选中的阶段时,获取全部的任务
|
||||||
}
|
// console.log(stage);
|
||||||
}
|
// let stageList = res.data.data.stageList; //阶段数组
|
||||||
} else {
|
// if (stageList != null) {
|
||||||
console.log(stage);
|
// let taskListAll;
|
||||||
let stageList = res.data.data.stageList; //阶段数组
|
// stageList.forEach((item) => {
|
||||||
if (stageList != null) {
|
// taskListAll = [...item.taskList];
|
||||||
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);
|
|
||||||
// });
|
// });
|
||||||
}
|
// console.log("taskListAll", taskListAll);
|
||||||
//给阶段id赋初始值
|
// getTableData(taskListAll);
|
||||||
let stageid = localStorage.getItem("stageId")
|
// }
|
||||||
? localStorage.getItem("stageId")
|
// }
|
||||||
: null;
|
// } else {
|
||||||
if (stageid !== "null") {
|
// console.log(stage);
|
||||||
state.chooseStageId = stageid;
|
// let stageList = res.data.data.stageList; //阶段数组
|
||||||
} else {
|
// if (stageList != null) {
|
||||||
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
|
// let taskListAll;
|
||||||
}
|
// stageList.forEach((item) => {
|
||||||
let final = state.level.find((item) => item.id == state.chooseStageId);
|
// taskListAll = [...item.taskList];
|
||||||
getTableData(final.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(投票)
|
//获取修改、删除id(投票)
|
||||||
@@ -1459,18 +1458,28 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//删除任务
|
//删除任务
|
||||||
const deleteTask = () => {
|
const deleteTask = async () => {
|
||||||
let obj = {projectTaskIds: state.deleteID};
|
await api.deleteTask({projectTaskIds: state.deleteID})
|
||||||
api
|
//删除后更新索引
|
||||||
.deleteTask(obj)
|
|
||||||
.then((res) => {
|
|
||||||
console.log(res);
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
console.log(err);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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 = () => {
|
const showChangeModal = () => {
|
||||||
if (state.selectRow.length == 0) {
|
if (state.selectRow.length == 0) {
|
||||||
message.destroy();
|
message.destroy();
|
||||||
@@ -1771,7 +1780,7 @@ export default {
|
|||||||
state.selectAll = 0; //0:未选择,1:全选,2:部分选择
|
state.selectAll = 0; //0:未选择,1:全选,2:部分选择
|
||||||
console.log("state.level", id, state.level);
|
console.log("state.level", id, state.level);
|
||||||
state.chooseStageId = id;
|
state.chooseStageId = id;
|
||||||
let final = state.level.find((item) => item.id === id);
|
let final = state.level.find((item) => item.id == id);
|
||||||
getTableData(final.taskList);
|
getTableData(final.taskList);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<div class="taskpage">
|
<div class="taskpage">
|
||||||
<div class="addhead" style="flex-shrink: 0">
|
<div class="addhead" style="flex-shrink: 0">
|
||||||
<div class="leftimg">
|
<div class="leftimg">
|
||||||
<img class="img" :src="picUrl" />
|
<img class="img" :src="picUrl"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="imgfor">
|
<div class="imgfor">
|
||||||
<div class="forz">{{ name }}</div>
|
<div class="forz">{{ name }}</div>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<div class="fort">起止时间:{{ startTime }}至{{ endTime }}</div>
|
<div class="fort">起止时间:{{ startTime }}至{{ endTime }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<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>
|
<div class="line" v-if="action == 1 || action == 0"></div>
|
||||||
<img
|
<img
|
||||||
v-if="action == 1 || action == 0"
|
v-if="action == 1 || action == 0"
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<router-link to="/projectmanage">
|
<router-link to="/projectmanage">
|
||||||
<div style="display: flex">
|
<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 class="return">返回</div>
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
@@ -117,13 +117,13 @@
|
|||||||
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
||||||
>
|
>
|
||||||
<div class="leftt">
|
<div class="leftt">
|
||||||
<img src="../../assets/images/taskpage/left1.png" />
|
<img src="../../assets/images/taskpage/left1.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="photo">
|
<div class="photo">
|
||||||
<img src="../../assets/images/taskpage/picture1.png" />
|
<img src="../../assets/images/taskpage/picture1.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightt">
|
<div class="rightt">
|
||||||
<img src="../../assets/images/taskpage/right1.png" />
|
<img src="../../assets/images/taskpage/right1.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
|
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
|
||||||
添加任务
|
添加任务
|
||||||
@@ -136,13 +136,13 @@
|
|||||||
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
|
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
|
||||||
>
|
>
|
||||||
<div class="leftt">
|
<div class="leftt">
|
||||||
<img src="../../assets/images/taskpage/left2.png" />
|
<img src="../../assets/images/taskpage/left2.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="photo">
|
<div class="photo">
|
||||||
<img src="../../assets/images/taskpage/picture2.png" />
|
<img src="../../assets/images/taskpage/picture2.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightt">
|
<div class="rightt">
|
||||||
<img src="../../assets/images/taskpage/right2.png" />
|
<img src="../../assets/images/taskpage/right2.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
|
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
|
||||||
添加学员
|
添加学员
|
||||||
@@ -323,8 +323,8 @@
|
|||||||
<!-- <button class="btn" @click="showFaceIn" v-if="morFaceT">
|
<!-- <button class="btn" @click="showFaceIn" v-if="morFaceT">
|
||||||
批量面授报名
|
批量面授报名
|
||||||
</button> -->
|
</button> -->
|
||||||
<router-link to="/taskadd">
|
<router-link :to="{path:`/taskadd`,query:{projectId:projectId}}">
|
||||||
<button to="/taskadd" class="edit">
|
<button class="edit">
|
||||||
<img
|
<img
|
||||||
class="editimg"
|
class="editimg"
|
||||||
src="../../assets/images/projectadd/edit.png"
|
src="../../assets/images/projectadd/edit.png"
|
||||||
@@ -367,9 +367,10 @@
|
|||||||
/>
|
/>
|
||||||
<div></div>
|
<div></div>
|
||||||
</template>
|
</template>
|
||||||
|
<template v-for="(value, index) in taskSyllabus">
|
||||||
<a-collapse-panel
|
<a-collapse-panel
|
||||||
v-for="(value, index) in taskSyllabus"
|
|
||||||
:key="index"
|
:key="index"
|
||||||
|
v-if="value.name"
|
||||||
:header="value.name"
|
:header="value.name"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
@@ -438,7 +439,7 @@
|
|||||||
<div class="timetext">开始时间</div>
|
<div class="timetext">开始时间</div>
|
||||||
<div class="timetext">
|
<div class="timetext">
|
||||||
{{
|
{{
|
||||||
item.startTime !== null ? item.startTime: ''
|
item.startTime !== null ? item.startTime : ''
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -532,10 +533,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-collapse-panel>
|
</a-collapse-panel>
|
||||||
|
</template>
|
||||||
</a-collapse>
|
</a-collapse>
|
||||||
<!-- 无数据创建任务 v-if="taskSyllabus.length == 0"-->
|
<!-- 无数据创建任务 v-if="taskSyllabus.length == 0"-->
|
||||||
<router-link
|
<router-link
|
||||||
to="/taskadd"
|
:to="{path:`/taskadd`,query:{projectId:projectId}}"
|
||||||
class="taskbox"
|
class="taskbox"
|
||||||
style="
|
style="
|
||||||
background: linear-gradient(180deg, #ddeaff, #f0f8fe);
|
background: linear-gradient(180deg, #ddeaff, #f0f8fe);
|
||||||
@@ -544,13 +546,13 @@
|
|||||||
v-if="taskSyllabus.length == 0"
|
v-if="taskSyllabus.length == 0"
|
||||||
>
|
>
|
||||||
<div class="leftt">
|
<div class="leftt">
|
||||||
<img src="../../assets/images/taskpage/left2.png" />
|
<img src="../../assets/images/taskpage/left2.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="photo">
|
<div class="photo">
|
||||||
<img src="../../assets/images/taskpage/picture8.png" />
|
<img src="../../assets/images/taskpage/picture8.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightt">
|
<div class="rightt">
|
||||||
<img src="../../assets/images/taskpage/right2.png" />
|
<img src="../../assets/images/taskpage/right2.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
|
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
|
||||||
创建任务
|
创建任务
|
||||||
@@ -564,19 +566,19 @@
|
|||||||
class="taskbox"
|
class="taskbox"
|
||||||
@click="
|
@click="
|
||||||
() => {
|
() => {
|
||||||
routered.push({ path: '/taskadd' });
|
routered.push({ path: `/taskadd`,query:{projectId:projectId} });
|
||||||
}
|
}
|
||||||
"
|
"
|
||||||
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
||||||
>
|
>
|
||||||
<div class="leftt">
|
<div class="leftt">
|
||||||
<img src="../../assets/images/taskpage/left1.png" />
|
<img src="../../assets/images/taskpage/left1.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="photo">
|
<div class="photo">
|
||||||
<img src="../../assets/images/taskpage/picture1.png" />
|
<img src="../../assets/images/taskpage/picture1.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightt">
|
<div class="rightt">
|
||||||
<img src="../../assets/images/taskpage/right1.png" />
|
<img src="../../assets/images/taskpage/right1.png"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
|
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
|
||||||
添加任务
|
添加任务
|
||||||
@@ -674,18 +676,18 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="groupright">
|
<div class="groupright">
|
||||||
<div class="btn1" @click="searchStu">
|
<div class="btn1" @click="searchStu">
|
||||||
<img src="../../assets/images/courseManage/search0.png" />
|
<img src="../../assets/images/courseManage/search0.png"/>
|
||||||
<span class="btn1text">搜索</span>
|
<span class="btn1text">搜索</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn2" @click="resetCancel">
|
<div class="btn2" @click="resetCancel">
|
||||||
<img src="../../assets/images/courseManage/reset1.png" />
|
<img src="../../assets/images/courseManage/reset1.png"/>
|
||||||
<span class="btn2text">重置</span>
|
<span class="btn2text">重置</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="second2" style="margin-top: 20px">
|
<div class="second2" style="margin-top: 20px">
|
||||||
<div class="btn1" @click="showStuAdd">
|
<div class="btn1" @click="showStuAdd">
|
||||||
<img src="../../assets/images/courseManage/add0.png" />
|
<img src="../../assets/images/courseManage/add0.png"/>
|
||||||
<span class="btn1text">添加学员</span>
|
<span class="btn1text">添加学员</span>
|
||||||
</div>
|
</div>
|
||||||
<!-- 2022-11-30注释 后面放开 -->
|
<!-- 2022-11-30注释 后面放开 -->
|
||||||
@@ -694,12 +696,12 @@
|
|||||||
<span class="btn2text">导入学员</span>
|
<span class="btn2text">导入学员</span>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="btn2" @click="showAllDelete">
|
<div class="btn2" @click="showAllDelete">
|
||||||
<img src="../../assets/images/projectadd/delete.png" />
|
<img src="../../assets/images/projectadd/delete.png"/>
|
||||||
<span class="btn2text">批量删除</span>
|
<span class="btn2text">批量删除</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="talk">
|
<div class="talk">
|
||||||
<img class="im" src="../../assets/images/leveladd/gan.png" />
|
<img class="im" src="../../assets/images/leveladd/gan.png"/>
|
||||||
<div class="xu">
|
<div class="xu">
|
||||||
<span class="yi">已选择</span>
|
<span class="yi">已选择</span>
|
||||||
<div style="width: 5px; display: inline-block"></div>
|
<div style="width: 5px; display: inline-block"></div>
|
||||||
@@ -762,22 +764,22 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="groupright">
|
<div class="groupright">
|
||||||
<div class="btn1" @click="searchGroup">
|
<div class="btn1" @click="searchGroup">
|
||||||
<img src="../../assets/images/courseManage/search0.png" />
|
<img src="../../assets/images/courseManage/search0.png"/>
|
||||||
<span class="btn1text">搜索</span>
|
<span class="btn1text">搜索</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn2" @click="resetGroupName">
|
<div class="btn2" @click="resetGroupName">
|
||||||
<img src="../../assets/images/courseManage/reset1.png" />
|
<img src="../../assets/images/courseManage/reset1.png"/>
|
||||||
<span class="btn2text">重置</span>
|
<span class="btn2text">重置</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="second2">
|
<div class="second2">
|
||||||
<div class="btn1" @click="showModal2">
|
<div class="btn1" @click="showModal2">
|
||||||
<img src="../../assets/images/courseManage/add0.png" />
|
<img src="../../assets/images/courseManage/add0.png"/>
|
||||||
<span class="btn1text">创建小组</span>
|
<span class="btn1text">创建小组</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn2" @click="showSubset">
|
<div class="btn2" @click="showSubset">
|
||||||
<img src="../../assets/images/courseManage/reset2.png" />
|
<img src="../../assets/images/courseManage/reset2.png"/>
|
||||||
<span class="btn2text">随机分组</span>
|
<span class="btn2text">随机分组</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -810,7 +812,7 @@
|
|||||||
<div class="leader">组长:{{ item.leaderName }}</div>
|
<div class="leader">组长:{{ item.leaderName }}</div>
|
||||||
<div class="grocenter">
|
<div class="grocenter">
|
||||||
<div class="leader1">进度</div>
|
<div class="leader1">进度</div>
|
||||||
<a-progress :percent="item.completeRatio" />
|
<a-progress :percent="item.completeRatio"/>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="grofooter"
|
class="grofooter"
|
||||||
@@ -1170,7 +1172,7 @@
|
|||||||
:title="showFaceText"
|
:title="showFaceText"
|
||||||
/>
|
/>
|
||||||
<!-- 学员(小组管理)创建小组抽屉 -->
|
<!-- 学员(小组管理)创建小组抽屉 -->
|
||||||
<subset-manage v-model:Svisible="subsetVisivle" />
|
<subset-manage v-model:Svisible="subsetVisivle"/>
|
||||||
<!-- 学员管理-添加学员抽屉 -->
|
<!-- 学员管理-添加学员抽屉 -->
|
||||||
<!-- <stu-add v-model:Stuvisible="Stuvisible" /> -->
|
<!-- <stu-add v-model:Stuvisible="Stuvisible" /> -->
|
||||||
<!-- 添加学员抽屉 -->
|
<!-- 添加学员抽屉 -->
|
||||||
@@ -1182,7 +1184,7 @@
|
|||||||
classify="addstudent"
|
classify="addstudent"
|
||||||
/>
|
/>
|
||||||
<!-- 学员管理-导入学员抽屉 -->
|
<!-- 学员管理-导入学员抽屉 -->
|
||||||
<import-stu v-model:Importvisible="Importvisible" />
|
<import-stu v-model:Importvisible="Importvisible"/>
|
||||||
<!-- 查看学员 传入查看学员的id-->
|
<!-- 查看学员 传入查看学员的id-->
|
||||||
<see-stu
|
<see-stu
|
||||||
v-model:Seevisible="Seevisible"
|
v-model:Seevisible="Seevisible"
|
||||||
@@ -1205,9 +1207,9 @@
|
|||||||
v-model:projectId="projectId"
|
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
|
<work-manage
|
||||||
v-model:Wvisible="Wvisible"
|
v-model:Wvisible="Wvisible"
|
||||||
@@ -1222,7 +1224,7 @@
|
|||||||
:itemsType="itemstype"
|
:itemsType="itemstype"
|
||||||
/>
|
/>
|
||||||
<!-- 批量面授报名 -->
|
<!-- 批量面授报名 -->
|
||||||
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" />
|
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible"/>
|
||||||
|
|
||||||
<!-- 概览(无数据)-项目发布弹窗 -->
|
<!-- 概览(无数据)-项目发布弹窗 -->
|
||||||
<div>
|
<div>
|
||||||
@@ -1281,7 +1283,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="send">
|
<div class="send">
|
||||||
<a-switch v-model:checked="checked" size="small" />
|
<a-switch v-model:checked="checked" size="small"/>
|
||||||
<span class="sendtext">发送项目通知</span>
|
<span class="sendtext">发送项目通知</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="ckb">
|
<div class="ckb">
|
||||||
@@ -1539,7 +1541,7 @@
|
|||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<!-- 编辑项目弹窗 -->
|
<!-- 编辑项目弹窗 -->
|
||||||
<proj-set v-model:editHs="editHs" v-model:projectId="projectId" />
|
<proj-set v-model:editHs="editHs" v-model:projectId="projectId"/>
|
||||||
|
|
||||||
<!-- 二维码弹窗 -->
|
<!-- 二维码弹窗 -->
|
||||||
<two-dimensional-code
|
<two-dimensional-code
|
||||||
@@ -1724,9 +1726,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs, onMounted, watch, computed } from "vue";
|
import {reactive, toRefs, onMounted, watch, computed} from "vue";
|
||||||
import { useRoute } from "vue-router";
|
import {useRoute} from "vue-router";
|
||||||
import { useRouter } from "vue-router";
|
import {useRouter} from "vue-router";
|
||||||
// import { CaretRightOutlined } from "@ant-design/icons-vue";
|
// import { CaretRightOutlined } from "@ant-design/icons-vue";
|
||||||
import TimeManage from "../../components/drawers/TimeManage";
|
import TimeManage from "../../components/drawers/TimeManage";
|
||||||
import FaceManage from "../../components/drawers/FaceManage";
|
import FaceManage from "../../components/drawers/FaceManage";
|
||||||
@@ -1745,7 +1747,7 @@ import NoticePub from "../../components/drawers/NoticePub";
|
|||||||
import NoticeHis from "../../components/drawers/NoticeHis";
|
import NoticeHis from "../../components/drawers/NoticeHis";
|
||||||
// import ProjectScore from "../../components/drawers/ProjectScore";
|
// import ProjectScore from "../../components/drawers/ProjectScore";
|
||||||
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
||||||
import { storage } from "../../api/storage";
|
import {storage} from "../../api/storage";
|
||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
import * as apiproj from "../../api/index";
|
import * as apiproj from "../../api/index";
|
||||||
import {
|
import {
|
||||||
@@ -1756,15 +1758,15 @@ import {
|
|||||||
editGroup,
|
editGroup,
|
||||||
topStudent,
|
topStudent,
|
||||||
} from "../../api/indexProjStu";
|
} from "../../api/indexProjStu";
|
||||||
import { message } from "ant-design-vue";
|
import {message} from "ant-design-vue";
|
||||||
import * as apitl from "../../api/index";
|
import * as apitl from "../../api/index";
|
||||||
import { getTask } from "../../api/indexTaskadd";
|
import {getTask} from "../../api/indexTaskadd";
|
||||||
import { editProj } from "../../api/indexTaskadd";
|
import {editProj} from "../../api/indexTaskadd";
|
||||||
import { toDate } from "../../api/method";
|
import {toDate} from "../../api/method";
|
||||||
import projSet from "../../components/Modals/projSet";
|
import projSet from "../../components/Modals/projSet";
|
||||||
import { overview } from "../../api/indexProjStu";
|
import {overview} from "../../api/indexProjStu";
|
||||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||||
import { useStore } from "vuex";
|
import {useStore} from "vuex";
|
||||||
import ProjectLevel from "@/components/project/ProjectLevel";
|
import ProjectLevel from "@/components/project/ProjectLevel";
|
||||||
import TrainClass from "@/components/project/TrainClass";
|
import TrainClass from "@/components/project/TrainClass";
|
||||||
|
|
||||||
@@ -1795,11 +1797,10 @@ export default {
|
|||||||
},
|
},
|
||||||
setup() {
|
setup() {
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
const route = useRoute();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
loading: false,
|
loading: false,
|
||||||
projectId: storage.get("projectId")
|
projectId: route.query.projectId,
|
||||||
? JSON.parse(storage.get("projectId"))
|
|
||||||
: null,
|
|
||||||
isbj: storage.get("isbj") ? JSON.parse(storage.get("isbj")) : 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") ? JSON.parse(storage.get("pN")) : null,
|
||||||
pN: storage.get("pN"),
|
pN: storage.get("pN"),
|
||||||
@@ -1864,23 +1865,23 @@ export default {
|
|||||||
projectTaskId: "", //项目任务任务id
|
projectTaskId: "", //项目任务任务id
|
||||||
//进度排行学员
|
//进度排行学员
|
||||||
rankjindu: [
|
rankjindu: [
|
||||||
{ value: "学员", label: "学员" },
|
{value: "学员", label: "学员"},
|
||||||
{ value: "小组", label: "小组" },
|
{value: "小组", label: "小组"},
|
||||||
],
|
],
|
||||||
valuestu1: "学员",
|
valuestu1: "学员",
|
||||||
//进度排行阶段
|
//进度排行阶段
|
||||||
rankjieduan: [{ value: "第一阶段", label: "第一阶段" }],
|
rankjieduan: [{value: "第一阶段", label: "第一阶段"}],
|
||||||
valuestu2: "第一阶段",
|
valuestu2: "第一阶段",
|
||||||
//积分排行
|
//积分排行
|
||||||
rankxuefen: [
|
rankxuefen: [
|
||||||
{ value: "学员", label: "学员" },
|
{value: "学员", label: "学员"},
|
||||||
{ value: "小组", label: "小组" },
|
{value: "小组", label: "小组"},
|
||||||
],
|
],
|
||||||
valuestu3: "学员",
|
valuestu3: "学员",
|
||||||
//学时排行
|
//学时排行
|
||||||
rankxueshi: [
|
rankxueshi: [
|
||||||
{ value: "学员", label: "学员" },
|
{value: "学员", label: "学员"},
|
||||||
{ value: "小组", label: "小组" },
|
{value: "小组", label: "小组"},
|
||||||
],
|
],
|
||||||
valuestu4: "学员",
|
valuestu4: "学员",
|
||||||
visible: false, //时间管理
|
visible: false, //时间管理
|
||||||
@@ -2022,21 +2023,21 @@ export default {
|
|||||||
if (text.record.rank == "1") {
|
if (text.record.rank == "1") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/one.png")}
|
src={require("../../assets/images/taskpage/one.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (text.record.rank == "2") {
|
} else if (text.record.rank == "2") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/two.png")}
|
src={require("../../assets/images/taskpage/two.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (text.record.rank == "3") {
|
} else if (text.record.rank == "3") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/three.png")}
|
src={require("../../assets/images/taskpage/three.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -2129,21 +2130,21 @@ export default {
|
|||||||
if (text.record.rank == "1") {
|
if (text.record.rank == "1") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/one.png")}
|
src={require("../../assets/images/taskpage/one.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (text.record.rank == "2") {
|
} else if (text.record.rank == "2") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/two.png")}
|
src={require("../../assets/images/taskpage/two.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (text.record.rank == "3") {
|
} else if (text.record.rank == "3") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/three.png")}
|
src={require("../../assets/images/taskpage/three.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -2236,21 +2237,21 @@ export default {
|
|||||||
if (text.record.rank == "1") {
|
if (text.record.rank == "1") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/one.png")}
|
src={require("../../assets/images/taskpage/one.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (text.record.rank == "2") {
|
} else if (text.record.rank == "2") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/two.png")}
|
src={require("../../assets/images/taskpage/two.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
} else if (text.record.rank == "3") {
|
} else if (text.record.rank == "3") {
|
||||||
return (
|
return (
|
||||||
<img
|
<img
|
||||||
style={{ width: 24, height: 24 }}
|
style={{width: 24, height: 24}}
|
||||||
src={require("../../assets/images/taskpage/three.png")}
|
src={require("../../assets/images/taskpage/three.png")}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
@@ -2457,7 +2458,7 @@ export default {
|
|||||||
//任务大纲渲染
|
//任务大纲渲染
|
||||||
const getTaskList = () => {
|
const getTaskList = () => {
|
||||||
let objtl = {
|
let objtl = {
|
||||||
projectId: storage.get("projectId"),
|
projectId: state.projectId,
|
||||||
};
|
};
|
||||||
apitl
|
apitl
|
||||||
.getProjectDetail(objtl)
|
.getProjectDetail(objtl)
|
||||||
@@ -2956,7 +2957,7 @@ export default {
|
|||||||
// width: 60,
|
// width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
scopedSlots: { customRender: "action" }, //引入的插槽
|
scopedSlots: {customRender: "action"}, //引入的插槽
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
// console.log(text);
|
// console.log(text);
|
||||||
return (
|
return (
|
||||||
@@ -3453,7 +3454,7 @@ export default {
|
|||||||
//start---------项目概览
|
//start---------项目概览
|
||||||
// 获取项目概览
|
// 获取项目概览
|
||||||
const getOverview = () => {
|
const getOverview = () => {
|
||||||
overview({ projectId: state.projectId })
|
overview({projectId: state.projectId})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
Object.keys(res.data.data.projectInfoOverview).forEach((item) => {
|
Object.keys(res.data.data.projectInfoOverview).forEach((item) => {
|
||||||
levelList.projectInfoOverview[item] =
|
levelList.projectInfoOverview[item] =
|
||||||
@@ -3477,7 +3478,7 @@ export default {
|
|||||||
};
|
};
|
||||||
//end---------项目概览
|
//end---------项目概览
|
||||||
|
|
||||||
const handleChange = ({ file, fileList }) => {
|
const handleChange = ({file, fileList}) => {
|
||||||
let list = [];
|
let list = [];
|
||||||
if (file.status !== "uploading") {
|
if (file.status !== "uploading") {
|
||||||
console.log("上传的list", fileList);
|
console.log("上传的list", fileList);
|
||||||
|
|||||||
Reference in New Issue
Block a user