mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 22:06:45 +08:00
Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -460,11 +460,15 @@
|
||||
</div>
|
||||
<div class="time">
|
||||
<div class="timetext">开始时间</div>
|
||||
<div class="timetext">{{ item.startTime!==null?item.startTime:''}}</div>
|
||||
<div class="timetext">
|
||||
{{ item.startTime !== null ? item.startTime : "" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progresstext">
|
||||
{{ item.complete?item.complete:0 }}/{{ item.total?item.total:0 }}人
|
||||
{{ item.complete ? item.complete : 0 }}/{{
|
||||
item.total ? item.total : 0
|
||||
}}人
|
||||
</div>
|
||||
<div style="display: flex">
|
||||
<a-progress
|
||||
@@ -474,7 +478,7 @@
|
||||
trailColor="rgba(253, 209, 98, 0.2)"
|
||||
/>
|
||||
<span class="progresstext" style="margin-left: 10px"
|
||||
>{{ item.percent?item.percent:0 }}%</span
|
||||
>{{ item.percent ? item.percent : 0 }}%</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@@ -768,7 +772,10 @@
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">上传共享文档</div>
|
||||
<div class="oneedi">
|
||||
<a-switch v-model:checked="docChecked" @change="checkedClose"></a-switch>
|
||||
<a-switch
|
||||
v-model:checked="docChecked"
|
||||
@change="checkedClose"
|
||||
></a-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnbox" style="margin: 20px">
|
||||
@@ -1217,6 +1224,15 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
<!-- 二维码弹窗 -->
|
||||
<two-dimensional-code
|
||||
v-model:codevisible="codevisible"
|
||||
:codeInfo="codeInfo"
|
||||
index="0"
|
||||
type="课程二维码"
|
||||
/>
|
||||
<!-- 二维码弹窗 -->
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -1243,6 +1259,7 @@ import { GetRouterDetail } from "@/api/indexTask";
|
||||
import * as api from "../../api/index1";
|
||||
import { toDate } from "../../api/method";
|
||||
import { editRoutered } from "../../api/indexLearningPath";
|
||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||
export default {
|
||||
name: "LevelAdd",
|
||||
components: {
|
||||
@@ -1257,6 +1274,7 @@ export default {
|
||||
FaceManage,
|
||||
WorkManage,
|
||||
SeeStu,
|
||||
TwoDimensionalCode,
|
||||
},
|
||||
setup() {
|
||||
// const routers = useRoute();
|
||||
@@ -1888,7 +1906,7 @@ export default {
|
||||
const getOverview = () => {
|
||||
getRouterOverview(state.routerId)
|
||||
.then((res) => {
|
||||
console.log(res)
|
||||
console.log(res);
|
||||
Object.keys(res.data.data.routerInfoOverview).forEach((item) => {
|
||||
levelList.routerInfoOverview[item] =
|
||||
res.data.data.routerInfoOverview[item] || 0;
|
||||
@@ -1911,40 +1929,40 @@ export default {
|
||||
};
|
||||
|
||||
// 设置上传图片开关
|
||||
const checkedClose = (data,a) => {
|
||||
console.log(data,a)
|
||||
state.docChecked = data
|
||||
const checkedClose = (data, a) => {
|
||||
console.log(data, a);
|
||||
state.docChecked = data;
|
||||
console.log({
|
||||
routerId: state.routerId,
|
||||
status: state.action,
|
||||
attachSwitch: data ? 1: -1
|
||||
})
|
||||
routerId: state.routerId,
|
||||
status: state.action,
|
||||
attachSwitch: data ? 1 : -1,
|
||||
});
|
||||
// 更新开关状态
|
||||
editRoutered({
|
||||
attach:JSON.stringify(state.fileList),
|
||||
name: state.styTitle,
|
||||
picUrl: state.picUrl,
|
||||
remark: state.remark,
|
||||
routerId: state.routerId,
|
||||
status: state.action,
|
||||
attachSwitch: data ? 1: -1
|
||||
attach: JSON.stringify(state.fileList),
|
||||
name: state.styTitle,
|
||||
picUrl: state.picUrl,
|
||||
remark: state.remark,
|
||||
routerId: state.routerId,
|
||||
status: state.action,
|
||||
attachSwitch: data ? 1 : -1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
}
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
};
|
||||
|
||||
// 获取路径列表
|
||||
const myGetRouterDetail = () => {
|
||||
GetRouterDetail(state.routerId)
|
||||
.then((res) => {
|
||||
console.log('router-list',res)
|
||||
state.fileList = JSON.parse(res.data.data.routerInfo.attach)
|
||||
state.docChecked = res.data.data.routerInfo.attachSwitch == 1?true:false
|
||||
console.log("router-list", res);
|
||||
state.fileList = JSON.parse(res.data.data.routerInfo.attach);
|
||||
state.docChecked =
|
||||
res.data.data.routerInfo.attachSwitch == 1 ? true : false;
|
||||
if (res.data.data.routerInfo.status == 1) {
|
||||
state.nodata = false;
|
||||
}
|
||||
@@ -1990,7 +2008,7 @@ export default {
|
||||
remark: state.remark,
|
||||
routerId: state.routerId,
|
||||
status: state.action,
|
||||
attachSwitch: state.docChecked?1:-1
|
||||
attachSwitch: state.docChecked ? 1 : -1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
@@ -2213,7 +2231,7 @@ export default {
|
||||
deleteStu,
|
||||
totask,
|
||||
tostudent,
|
||||
checkedClose
|
||||
checkedClose,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -928,34 +928,32 @@ export default defineComponent({
|
||||
api
|
||||
.templateDetail(localStorage.getItem("projectTemplateId"))
|
||||
.then((res) => {
|
||||
|
||||
console.log('get model list ----->',res, res.data.data.stageList)
|
||||
|
||||
state.taskSyllabus = [];
|
||||
console.log(res);
|
||||
state.projectInfo.name = res.data.data.projectTemplateInfo.name;
|
||||
state.projectInfo.beginTime =
|
||||
res.data.data.projectTemplateInfo.beginTime;
|
||||
state.projectInfo.beginTime = res.data.data.projectTemplateInfo.beginTime;
|
||||
state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime;
|
||||
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager;
|
||||
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice;
|
||||
state.projectInfo.sourceBelongId =
|
||||
res.data.data.projectTemplateInfo.sourceBelongId;
|
||||
state.projectInfo.managerId =
|
||||
res.data.data.projectTemplateInfo.managerId;
|
||||
state.projectInfo.remark = res.data.data.stageList.remark;
|
||||
state.projectInfo.courseSyncFlag =
|
||||
res.data.data.projectTemplateInfo.courseSyncFlag;
|
||||
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId;
|
||||
state.projectInfo.managerId = res.data.data.projectTemplateInfo.managerId;
|
||||
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
|
||||
state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag;
|
||||
state.projectInfo.level = res.data.data.projectTemplateInfo.level;
|
||||
state.projectInfo.systemId =
|
||||
res.data.data.projectTemplateInfo.systemId;
|
||||
state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId;
|
||||
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag;
|
||||
state.projectInfo.noticeFlag =
|
||||
res.data.data.projectTemplateInfo.noticeFlag;
|
||||
state.projectInfo.noticeFlag = res.data.data.projectTemplateInfo.noticeFlag;
|
||||
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
|
||||
state.projectInfo.status = res.data.data.projectTemplateInfo.status;
|
||||
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl;
|
||||
state.projectInfo.attach =res.res.data.data.projectTemplateInfo.attach;
|
||||
state.projectInfo.attach = res.data.data.projectTemplateInfo.attach;
|
||||
let data = res.data.data.stageList;
|
||||
console.log("data=====", data);
|
||||
for (let i in data) {
|
||||
console.log('what ------ > ', i,data)
|
||||
state.taskSyllabus.push({ text: data[i].name, children: [] });
|
||||
for (let j in data[i].taskList) {
|
||||
state.taskSyllabus[i].children.push({
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
placeholder="请选择状态"
|
||||
:options="sProjectStateList"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
<div class="select">
|
||||
@@ -1526,6 +1525,7 @@ export default {
|
||||
onClick={() => {
|
||||
router.push({
|
||||
path: "/taskpage",
|
||||
query: {projectId: value.record.projectId}
|
||||
});
|
||||
storage.set("projectId", value.record.projectId);
|
||||
}}
|
||||
|
||||
@@ -872,11 +872,11 @@
|
||||
<span>您确定要取消阶段吗</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1">
|
||||
<div class="btnText" @click="delete_exit">取消</div>
|
||||
<div class="del_btn btn1" @click="closeCancel">
|
||||
<div class="btnText" >取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2">
|
||||
<div class="btnText" @click="showModal">确定</div>
|
||||
<div class="del_btn btn2" @click="showModal">
|
||||
<div class="btnText" >确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -902,11 +902,11 @@
|
||||
<span>您确定要删除此任务吗</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1">
|
||||
<div class="btnText" @click="delete_exit">取消</div>
|
||||
<div class="del_btn btn1" @click="closeDelete">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2">
|
||||
<div class="btnText" @click="showModal1">确定</div>
|
||||
<div class="del_btn btn2" @click="showModal1">
|
||||
<div class="btnText" >确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -931,11 +931,11 @@
|
||||
<span>您确定要批量删除任务吗</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1">
|
||||
<div class="btnText" @click="closeDeAll">取消</div>
|
||||
<div class="del_btn btn1" @click="closeDeAll">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2">
|
||||
<div class="btnText" @click="deleteTaskAll">确定</div>
|
||||
<div class="del_btn btn2" @click="deleteTaskAll">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -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);
|
||||
// });
|
||||
}
|
||||
//给阶段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("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;
|
||||
getStageData(res.data.data.stageList);
|
||||
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];
|
||||
// });
|
||||
// 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);
|
||||
};
|
||||
|
||||
|
||||
@@ -323,8 +323,10 @@
|
||||
<!-- <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,175 +369,175 @@
|
||||
/>
|
||||
<div></div>
|
||||
</template>
|
||||
<a-collapse-panel
|
||||
v-for="(value, index) in taskSyllabus"
|
||||
:key="index"
|
||||
:header="value.name"
|
||||
>
|
||||
<div
|
||||
class="course"
|
||||
v-for="(item, key) in value.taskList"
|
||||
:key="key"
|
||||
<template v-for="(value, index) in taskSyllabus">
|
||||
<a-collapse-panel
|
||||
:key="index"
|
||||
v-if="value.name"
|
||||
:header="value.name"
|
||||
>
|
||||
<div class="first">
|
||||
<div class="icon">
|
||||
<div
|
||||
style="
|
||||
width: 31px;
|
||||
height: 28px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
>
|
||||
<img
|
||||
:src="
|
||||
item.type == 1
|
||||
? require('../../assets/images/leveladd/zai.png')
|
||||
: item.type == 2
|
||||
? require('../../assets/images/leveladd/mian.png')
|
||||
: item.type == 3
|
||||
? require('../../assets/images/leveladd/an.png')
|
||||
: item.type == 4
|
||||
? require('../../assets/images/leveladd/zuo.png')
|
||||
: item.type == 5
|
||||
? require('../../assets/images/leveladd/kao.png')
|
||||
: item.type == 6
|
||||
? require('../../assets/images/leveladd/zhi.png')
|
||||
: item.type == 7
|
||||
? require('../../assets/images/leveladd/wai.png')
|
||||
: item.type == 8
|
||||
? require('../../assets/images/leveladd/tao.png')
|
||||
: item.type == 9
|
||||
? require('../../assets/images/leveladd/huo.png')
|
||||
: item.type == 10
|
||||
? require('../../assets/images/leveladd/ce.png')
|
||||
: item.type == 11
|
||||
? require('../../assets/images/leveladd/pinggu.png')
|
||||
: item.type == 12
|
||||
? require('../../assets/images/leveladd/tou.png')
|
||||
: item.type == 13
|
||||
? require('../../assets/images/leveladd/tou.png')
|
||||
: require('../../assets/images/leveladd/xiangmu.png')
|
||||
<div
|
||||
class="course"
|
||||
v-for="(item, key) in value.taskList"
|
||||
:key="key"
|
||||
>
|
||||
<div class="first">
|
||||
<div class="icon">
|
||||
<div
|
||||
style="
|
||||
width: 31px;
|
||||
height: 28px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
"
|
||||
/>
|
||||
>
|
||||
<img
|
||||
:src="
|
||||
item.type == 1
|
||||
? require('../../assets/images/leveladd/zai.png')
|
||||
: item.type == 2
|
||||
? require('../../assets/images/leveladd/mian.png')
|
||||
: item.type == 3
|
||||
? require('../../assets/images/leveladd/an.png')
|
||||
: item.type == 4
|
||||
? require('../../assets/images/leveladd/zuo.png')
|
||||
: item.type == 5
|
||||
? require('../../assets/images/leveladd/kao.png')
|
||||
: item.type == 6
|
||||
? require('../../assets/images/leveladd/zhi.png')
|
||||
: item.type == 7
|
||||
? require('../../assets/images/leveladd/wai.png')
|
||||
: item.type == 8
|
||||
? require('../../assets/images/leveladd/tao.png')
|
||||
: item.type == 9
|
||||
? require('../../assets/images/leveladd/huo.png')
|
||||
: item.type == 10
|
||||
? require('../../assets/images/leveladd/ce.png')
|
||||
: item.type == 11
|
||||
? require('../../assets/images/leveladd/pinggu.png')
|
||||
: item.type == 12
|
||||
? require('../../assets/images/leveladd/tou.png')
|
||||
: item.type == 13
|
||||
? require('../../assets/images/leveladd/tou.png')
|
||||
: require('../../assets/images/leveladd/xiangmu.png')
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="iconame">「{{ item.name }}」</div>
|
||||
<div class="icontext">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="iconame">「{{ item.name }}」</div>
|
||||
<div class="icontext">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="type">
|
||||
<div
|
||||
:class="item.flag == true ? 'typename1' : 'typename'"
|
||||
>
|
||||
<span v-if="item.flag">必修</span>
|
||||
<span v-else>选修</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="time">
|
||||
<div class="timetext">开始时间</div>
|
||||
<div class="timetext">
|
||||
{{
|
||||
item.startTime !== null ? item.startTime: ''
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progresstext">
|
||||
{{
|
||||
item.finishStuCnt && item.finishStuCnt !== null
|
||||
? item.finishStuCnt
|
||||
: 0
|
||||
}}/{{
|
||||
item.totalStuCnt && item.totalStuCnt !== null
|
||||
? item.totalStuCnt
|
||||
: 0
|
||||
}}人
|
||||
</div>
|
||||
<div style="display: flex">
|
||||
<a-progress
|
||||
:showInfo="false"
|
||||
:percent="item.percent"
|
||||
strokeColor="#FFC067"
|
||||
trailColor="rgba(253, 209, 98, 0.2)"
|
||||
/>
|
||||
<span class="progresstext" style="margin-left: 10px"
|
||||
>{{
|
||||
(item.finishStuCnt && item.finishStuCnt !== null
|
||||
? item.finishStuCnt
|
||||
: 0 / item.totalStuCnt &&
|
||||
item.totalStuCnt !== null
|
||||
? item.totalStuCnt
|
||||
: 0) * 100
|
||||
}}%</span
|
||||
<div class="type">
|
||||
<div
|
||||
:class="item.flag == true ? 'typename1' : 'typename'"
|
||||
>
|
||||
<span v-if="item.flag">必修</span>
|
||||
<span v-else>选修</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="time">
|
||||
<div class="timetext">开始时间</div>
|
||||
<div class="timetext">
|
||||
{{ item.startTime !== null ? item.startTime : "" }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div class="progresstext">
|
||||
{{
|
||||
item.finishStuCnt && item.finishStuCnt !== null
|
||||
? item.finishStuCnt
|
||||
: 0
|
||||
}}/{{
|
||||
item.totalStuCnt && item.totalStuCnt !== null
|
||||
? item.totalStuCnt
|
||||
: 0
|
||||
}}人
|
||||
</div>
|
||||
<div style="display: flex">
|
||||
<a-progress
|
||||
:showInfo="false"
|
||||
:percent="item.percent"
|
||||
strokeColor="#FFC067"
|
||||
trailColor="rgba(253, 209, 98, 0.2)"
|
||||
/>
|
||||
<span class="progresstext" style="margin-left: 10px"
|
||||
>{{
|
||||
(item.finishStuCnt && item.finishStuCnt !== null
|
||||
? item.finishStuCnt
|
||||
: 0 / item.totalStuCnt &&
|
||||
item.totalStuCnt !== null
|
||||
? item.totalStuCnt
|
||||
: 0) * 100
|
||||
}}%</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="operations">
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div
|
||||
class="operation"
|
||||
style="cursor: pointer"
|
||||
:style="{
|
||||
display: item.type == '2' ? 'flex' : 'none',
|
||||
}"
|
||||
@click="showFS"
|
||||
>
|
||||
学员
|
||||
</div> -->
|
||||
<!-- <div
|
||||
class="operation"
|
||||
style="cursor: pointer"
|
||||
@click="showAA(item.name)"
|
||||
:style="{
|
||||
display:
|
||||
item.type == '6' || item.type == '9'
|
||||
? 'flex'
|
||||
: 'none',
|
||||
}"
|
||||
>
|
||||
考勤
|
||||
</div> -->
|
||||
<div
|
||||
class="operation"
|
||||
style="cursor: pointer"
|
||||
@click="showCodeModal"
|
||||
>
|
||||
二维码
|
||||
</div>
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div
|
||||
class="operation"
|
||||
style="cursor: pointer; margin-right: 35px"
|
||||
@click="
|
||||
item.type == '1' ||
|
||||
item.type == '3' ||
|
||||
item.type == '7' ||
|
||||
item.type == '8' ||
|
||||
item.type == '9' ||
|
||||
item.type == '11' ||
|
||||
item.type == '12'
|
||||
? showTime(item.name, item.projectTaskId, item.type)
|
||||
: item.type == '5' || item.type == '10'
|
||||
? showTest(item.name, item.projectTaskId, item.type)
|
||||
: item.type == '2' || item.type == '6'
|
||||
? showFace(item.name, item.projectTaskId)
|
||||
: item.type == '4'
|
||||
? showWork(item.name, item.projectTaskId)
|
||||
: null
|
||||
"
|
||||
>
|
||||
管理
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="operations">
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div
|
||||
class="operation"
|
||||
style="cursor: pointer"
|
||||
:style="{
|
||||
display: item.type == '2' ? 'flex' : 'none',
|
||||
}"
|
||||
@click="showFS"
|
||||
>
|
||||
学员
|
||||
</div> -->
|
||||
<!-- <div
|
||||
class="operation"
|
||||
style="cursor: pointer"
|
||||
@click="showAA(item.name)"
|
||||
:style="{
|
||||
display:
|
||||
item.type == '6' || item.type == '9'
|
||||
? 'flex'
|
||||
: 'none',
|
||||
}"
|
||||
>
|
||||
考勤
|
||||
</div> -->
|
||||
<div
|
||||
class="operation"
|
||||
style="cursor: pointer"
|
||||
@click="showCodeModal"
|
||||
>
|
||||
二维码
|
||||
</div>
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div
|
||||
class="operation"
|
||||
style="cursor: pointer; margin-right: 35px"
|
||||
@click="
|
||||
item.type == '1' ||
|
||||
item.type == '3' ||
|
||||
item.type == '7' ||
|
||||
item.type == '8' ||
|
||||
item.type == '9' ||
|
||||
item.type == '11' ||
|
||||
item.type == '12'
|
||||
? showTime(item.name, item.projectTaskId, item.type)
|
||||
: item.type == '5' || item.type == '10'
|
||||
? showTest(item.name, item.projectTaskId, item.type)
|
||||
: item.type == '2' || item.type == '6'
|
||||
? showFace(item.name, item.projectTaskId)
|
||||
: item.type == '4'
|
||||
? showWork(item.name, item.projectTaskId)
|
||||
: null
|
||||
"
|
||||
>
|
||||
管理
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</a-collapse-panel>
|
||||
</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);
|
||||
@@ -564,7 +566,10 @@
|
||||
class="taskbox"
|
||||
@click="
|
||||
() => {
|
||||
routered.push({ path: '/taskadd' });
|
||||
routered.push({
|
||||
path: `/taskadd`,
|
||||
query: { projectId: projectId },
|
||||
});
|
||||
}
|
||||
"
|
||||
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
||||
@@ -776,10 +781,11 @@
|
||||
<img src="../../assets/images/courseManage/add0.png" />
|
||||
<span class="btn1text">创建小组</span>
|
||||
</div>
|
||||
<div class="btn2" @click="showSubset">
|
||||
<!-- 2022-12-2注释 后面放开 -->
|
||||
<!-- <div class="btn2" @click="showSubset">
|
||||
<img src="../../assets/images/courseManage/reset2.png" />
|
||||
<span class="btn2text">随机分组</span>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- 小组列表 -->
|
||||
<div class="groupmain">
|
||||
@@ -1795,11 +1801,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"),
|
||||
@@ -2457,7 +2462,7 @@ export default {
|
||||
//任务大纲渲染
|
||||
const getTaskList = () => {
|
||||
let objtl = {
|
||||
projectId: storage.get("projectId"),
|
||||
projectId: state.projectId,
|
||||
};
|
||||
apitl
|
||||
.getProjectDetail(objtl)
|
||||
@@ -3210,6 +3215,7 @@ export default {
|
||||
};
|
||||
//把小组列表信息放到state里
|
||||
const setGroupList = (tableData) => {
|
||||
console.log("tableDatatableDatatableData", tableData);
|
||||
let data = tableData;
|
||||
let array = [];
|
||||
data.map((value) => {
|
||||
@@ -3222,7 +3228,7 @@ export default {
|
||||
source: value.source == 1 ? "指定添加" : "随机分组",
|
||||
completeTaskCnt: value.completeTaskCnt, //完成任务数
|
||||
totalTaskCnt: value.totalTaskCnt, //累计任务数
|
||||
completeRatio: value.completeRatio, //完成比例
|
||||
completeRatio: value.completeRatio ? value.completeRatio : 0, //完成比例
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
@@ -3321,55 +3327,57 @@ export default {
|
||||
projectId: state.projectId,
|
||||
}).then((res) => {
|
||||
console.log("get task", res.data.data);
|
||||
let info = res.data.data.projectInfo;
|
||||
// let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
|
||||
let start = info.beginTime;
|
||||
// let end = toDate(info.endTime / 1000, "Y-M-D h:m");
|
||||
let end = info.endTime;
|
||||
state.tstartTime = info.beginTime;
|
||||
state.tendTime = info.endTime;
|
||||
state.tsourceBelong = info.sourceBelongName;
|
||||
state.parentId = info.parentId;
|
||||
state.name = info.name;
|
||||
state.startTime = start;
|
||||
state.endTime = end;
|
||||
state.manager = info.manager;
|
||||
state.remark = info.remark;
|
||||
state.level = info.level;
|
||||
state.tlevel = info.level;
|
||||
state.systemId = info.systemId;
|
||||
state.tsystemId = info.systemId;
|
||||
state.checkedSty = info.courseSyncFlag == 1 ? true : false;
|
||||
state.courseSyncFlag = info.courseSyncFlag;
|
||||
state.checkedBOEU = info.boeFlag == 1 ? true : false;
|
||||
state.boeFlag = info.boeFlag;
|
||||
state.picUrl = info.picUrl;
|
||||
state.managerId = info.managerId;
|
||||
state.notice = info.notice;
|
||||
state.status = info.status;
|
||||
state.type = info.type;
|
||||
state.category = info.category;
|
||||
state.noticeFlag = info.noticeFlag;
|
||||
// state.attach = info.attach;
|
||||
// state.templateId = info.templateId;
|
||||
state.sourceBelong = info.sourceBelongName;
|
||||
// state.fileList=info.attach.split(",")
|
||||
let d = info.attach.indexOf(",");
|
||||
// console.log(info.attach, "xgo", info.attach.length);
|
||||
if (info.attach.length == 0) {
|
||||
return;
|
||||
} else if (info.attach.length !== 0 && d == -1) {
|
||||
return;
|
||||
} else {
|
||||
// console.log(info.attach, "xgo");
|
||||
// let str = JSON.parse(info.attach)
|
||||
// console.log("赚回来",str)
|
||||
// let luj = info.attach.split(",")
|
||||
let luj = info.attach;
|
||||
// console.log("lulj", luj);
|
||||
console.log("赚回来", JSON.parse(luj));
|
||||
state.fileList = JSON.parse(luj);
|
||||
// state.fileList = luj
|
||||
if (res.data.code === 200) {
|
||||
let info = res.data.data.projectInfo;
|
||||
// let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
|
||||
let start = info.beginTime;
|
||||
// let end = toDate(info.endTime / 1000, "Y-M-D h:m");
|
||||
let end = info.endTime;
|
||||
state.tstartTime = info.beginTime;
|
||||
state.tendTime = info.endTime;
|
||||
state.tsourceBelong = info.sourceBelongName;
|
||||
state.parentId = info.parentId;
|
||||
state.name = info.name;
|
||||
state.startTime = start;
|
||||
state.endTime = end;
|
||||
state.manager = info.manager;
|
||||
state.remark = info.remark;
|
||||
state.level = info.level;
|
||||
state.tlevel = info.level;
|
||||
state.systemId = info.systemId;
|
||||
state.tsystemId = info.systemId;
|
||||
state.checkedSty = info.courseSyncFlag == 1 ? true : false;
|
||||
state.courseSyncFlag = info.courseSyncFlag;
|
||||
state.checkedBOEU = info.boeFlag == 1 ? true : false;
|
||||
state.boeFlag = info.boeFlag;
|
||||
state.picUrl = info.picUrl;
|
||||
state.managerId = info.managerId;
|
||||
state.notice = info.notice;
|
||||
state.status = info.status;
|
||||
state.type = info.type;
|
||||
state.category = info.category;
|
||||
state.noticeFlag = info.noticeFlag;
|
||||
// state.attach = info.attach;
|
||||
// state.templateId = info.templateId;
|
||||
state.sourceBelong = info.sourceBelongName;
|
||||
// state.fileList=info.attach.split(",")
|
||||
let d = info.attach.indexOf(",");
|
||||
// console.log(info.attach, "xgo", info.attach.length);
|
||||
if (info.attach.length == 0) {
|
||||
return;
|
||||
} else if (info.attach.length !== 0 && d == -1) {
|
||||
return;
|
||||
} else {
|
||||
// console.log(info.attach, "xgo");
|
||||
// let str = JSON.parse(info.attach)
|
||||
// console.log("赚回来",str)
|
||||
// let luj = info.attach.split(",")
|
||||
let luj = info.attach;
|
||||
// console.log("lulj", luj);
|
||||
console.log("赚回来", JSON.parse(luj));
|
||||
state.fileList = JSON.parse(luj);
|
||||
// state.fileList = luj
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -3559,6 +3567,7 @@ export default {
|
||||
}
|
||||
};
|
||||
const reget = () => {
|
||||
console.log("state.projectId", state.projectId);
|
||||
getTask({
|
||||
projectId: state.projectId,
|
||||
}).then((res) => {
|
||||
|
||||
Reference in New Issue
Block a user