Merge branch 'develop' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage into develop

This commit is contained in:
zhangyc
2022-12-04 20:05:52 +08:00
6 changed files with 871 additions and 731 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -460,11 +460,15 @@
</div> </div>
<div class="time"> <div class="time">
<div class="timetext">开始时间</div> <div class="timetext">开始时间</div>
<div class="timetext">{{ item.startTime!==null?item.startTime:''}}</div> <div class="timetext">
{{ item.startTime !== null ? item.startTime : "" }}
</div>
</div> </div>
<div class="progress"> <div class="progress">
<div class="progresstext"> <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>
<div style="display: flex"> <div style="display: flex">
<a-progress <a-progress
@@ -474,7 +478,7 @@
trailColor="rgba(253, 209, 98, 0.2)" trailColor="rgba(253, 209, 98, 0.2)"
/> />
<span class="progresstext" style="margin-left: 10px" <span class="progresstext" style="margin-left: 10px"
>{{ item.percent?item.percent:0 }}%</span >{{ item.percent ? item.percent : 0 }}%</span
> >
</div> </div>
</div> </div>
@@ -768,7 +772,10 @@
<div class="box"></div> <div class="box"></div>
<div class="onetitle">上传共享文档</div> <div class="onetitle">上传共享文档</div>
<div class="oneedi"> <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> </div>
<div class="btnbox" style="margin: 20px"> <div class="btnbox" style="margin: 20px">
@@ -1217,6 +1224,15 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 二维码弹窗 -->
<two-dimensional-code
v-model:codevisible="codevisible"
:codeInfo="codeInfo"
index="0"
type="课程二维码"
/>
<!-- 二维码弹窗 -->
</div> </div>
</template> </template>
<script> <script>
@@ -1243,6 +1259,7 @@ import { GetRouterDetail } from "@/api/indexTask";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
import { toDate } from "../../api/method"; import { toDate } from "../../api/method";
import { editRoutered } from "../../api/indexLearningPath"; import { editRoutered } from "../../api/indexLearningPath";
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
export default { export default {
name: "LevelAdd", name: "LevelAdd",
components: { components: {
@@ -1257,6 +1274,7 @@ export default {
FaceManage, FaceManage,
WorkManage, WorkManage,
SeeStu, SeeStu,
TwoDimensionalCode,
}, },
setup() { setup() {
// const routers = useRoute(); // const routers = useRoute();
@@ -1888,7 +1906,7 @@ export default {
const getOverview = () => { const getOverview = () => {
getRouterOverview(state.routerId) getRouterOverview(state.routerId)
.then((res) => { .then((res) => {
console.log(res) console.log(res);
Object.keys(res.data.data.routerInfoOverview).forEach((item) => { Object.keys(res.data.data.routerInfoOverview).forEach((item) => {
levelList.routerInfoOverview[item] = levelList.routerInfoOverview[item] =
res.data.data.routerInfoOverview[item] || 0; res.data.data.routerInfoOverview[item] || 0;
@@ -1911,40 +1929,40 @@ export default {
}; };
// 设置上传图片开关 // 设置上传图片开关
const checkedClose = (data,a) => { const checkedClose = (data, a) => {
console.log(data,a) console.log(data, a);
state.docChecked = data state.docChecked = data;
console.log({ console.log({
routerId: state.routerId, routerId: state.routerId,
status: state.action, status: state.action,
attachSwitch: data ? 1: -1 attachSwitch: data ? 1 : -1,
}) });
// 更新开关状态 // 更新开关状态
editRoutered({ editRoutered({
attach:JSON.stringify(state.fileList), attach: JSON.stringify(state.fileList),
name: state.styTitle, name: state.styTitle,
picUrl: state.picUrl, picUrl: state.picUrl,
remark: state.remark, remark: state.remark,
routerId: state.routerId, routerId: state.routerId,
status: state.action, status: state.action,
attachSwitch: data ? 1: -1 attachSwitch: data ? 1 : -1,
})
.then((res) => {
console.log(res);
}) })
.then((res) => { .catch((err) => {
console.log(res); console.log(err);
}) });
.catch((err) => { };
console.log(err);
});
}
// 获取路径列表 // 获取路径列表
const myGetRouterDetail = () => { const myGetRouterDetail = () => {
GetRouterDetail(state.routerId) GetRouterDetail(state.routerId)
.then((res) => { .then((res) => {
console.log('router-list',res) console.log("router-list", res);
state.fileList = JSON.parse(res.data.data.routerInfo.attach) state.fileList = JSON.parse(res.data.data.routerInfo.attach);
state.docChecked = res.data.data.routerInfo.attachSwitch == 1?true:false state.docChecked =
res.data.data.routerInfo.attachSwitch == 1 ? true : false;
if (res.data.data.routerInfo.status == 1) { if (res.data.data.routerInfo.status == 1) {
state.nodata = false; state.nodata = false;
} }
@@ -1990,7 +2008,7 @@ export default {
remark: state.remark, remark: state.remark,
routerId: state.routerId, routerId: state.routerId,
status: state.action, status: state.action,
attachSwitch: state.docChecked?1:-1 attachSwitch: state.docChecked ? 1 : -1,
}) })
.then((res) => { .then((res) => {
console.log(res); console.log(res);
@@ -2213,7 +2231,7 @@ export default {
deleteStu, deleteStu,
totask, totask,
tostudent, tostudent,
checkedClose checkedClose,
}; };
}, },
}; };

View File

@@ -928,34 +928,32 @@ export default defineComponent({
api api
.templateDetail(localStorage.getItem("projectTemplateId")) .templateDetail(localStorage.getItem("projectTemplateId"))
.then((res) => { .then((res) => {
console.log('get model list ----->',res, res.data.data.stageList)
state.taskSyllabus = []; state.taskSyllabus = [];
console.log(res); console.log(res);
state.projectInfo.name = res.data.data.projectTemplateInfo.name; state.projectInfo.name = res.data.data.projectTemplateInfo.name;
state.projectInfo.beginTime = state.projectInfo.beginTime = res.data.data.projectTemplateInfo.beginTime;
res.data.data.projectTemplateInfo.beginTime;
state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime; state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime;
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager; state.projectInfo.manager = res.data.data.projectTemplateInfo.manager;
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice; state.projectInfo.notice = res.data.data.projectTemplateInfo.notice;
state.projectInfo.sourceBelongId = state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId;
res.data.data.projectTemplateInfo.sourceBelongId; state.projectInfo.managerId = res.data.data.projectTemplateInfo.managerId;
state.projectInfo.managerId = state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
res.data.data.projectTemplateInfo.managerId; state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag;
state.projectInfo.remark = res.data.data.stageList.remark;
state.projectInfo.courseSyncFlag =
res.data.data.projectTemplateInfo.courseSyncFlag;
state.projectInfo.level = res.data.data.projectTemplateInfo.level; state.projectInfo.level = res.data.data.projectTemplateInfo.level;
state.projectInfo.systemId = state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId;
res.data.data.projectTemplateInfo.systemId;
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag; state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag;
state.projectInfo.noticeFlag = state.projectInfo.noticeFlag = res.data.data.projectTemplateInfo.noticeFlag;
res.data.data.projectTemplateInfo.noticeFlag;
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark; state.projectInfo.remark = res.data.data.projectTemplateInfo.remark;
state.projectInfo.status = res.data.data.projectTemplateInfo.status; state.projectInfo.status = res.data.data.projectTemplateInfo.status;
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl; 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; let data = res.data.data.stageList;
console.log("data=====", data); console.log("data=====", data);
for (let i in data) { for (let i in data) {
console.log('what ------ > ', i,data)
state.taskSyllabus.push({ text: data[i].name, children: [] }); state.taskSyllabus.push({ text: data[i].name, children: [] });
for (let j in data[i].taskList) { for (let j in data[i].taskList) {
state.taskSyllabus[i].children.push({ state.taskSyllabus[i].children.push({

View File

@@ -44,7 +44,6 @@
placeholder="请选择状态" placeholder="请选择状态"
:options="sProjectStateList" :options="sProjectStateList"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
<div class="select"> <div class="select">
@@ -1526,6 +1525,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);
}} }}

View File

@@ -872,11 +872,11 @@
<span>您确定要取消阶段吗</span> <span>您确定要取消阶段吗</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1"> <div class="del_btn btn1" @click="closeCancel">
<div class="btnText" @click="delete_exit">取消</div> <div class="btnText" >取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="showModal">
<div class="btnText" @click="showModal">确定</div> <div class="btnText" >确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -902,11 +902,11 @@
<span>您确定要删除此任务吗</span> <span>您确定要删除此任务吗</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1"> <div class="del_btn btn1" @click="closeDelete">
<div class="btnText" @click="delete_exit">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="showModal1">
<div class="btnText" @click="showModal1">确定</div> <div class="btnText" >确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -931,11 +931,11 @@
<span>您确定要批量删除任务吗</span> <span>您确定要批量删除任务吗</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1"> <div class="del_btn btn1" @click="closeDeAll">
<div class="btnText" @click="closeDeAll">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2"> <div class="del_btn btn2" @click="deleteTaskAll">
<div class="btnText" @click="deleteTaskAll">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
</div> </div>
@@ -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); state.projectTitle = res.data.data.projectInfo.name;
// console.log("22222", res.data.data.stageList); state.picUrl = res.data.data.projectInfo.picUrl;
state.projectTitle = res.data.data.projectInfo.name; state.stageList = res.data.data.stageList;
state.picUrl = res.data.data.projectInfo.picUrl; getStageData(res.data.data.stageList);
state.stageList = res.data.data.stageList; updateStageChoosd()
let leng = res.data.data.stageList.length; // let leng = res.data.data.stageList.length;
if (leng > 0) { // if (leng > 0) {
let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null; // let stage = localStorage.getItem("stageId") ? localStorage.getItem("stageId") : null;
//
// console.log("stage",Object.prototype.toString.call(stage)) // // console.log("stage",Object.prototype.toString.call(stage))
getStageData(res.data.data.stageList); // if (stage != null) {
if (stage != null) { // console.log(stage);
console.log(stage); // let stageList = res.data.data.stageList; //阶段数组
let stageList = res.data.data.stageList; //阶段数组 //
let result = stageList.find((item) => item.stageId == stage); //
console.log("又找到了", result); //
if (result != null) { // let result = stageList.find((item) => item.stageId == stage);
getTableData(result.taskList); // console.log("又找到了", result);
} else { // if (result != null) {
//没有选中的阶段时,获取全部的任务 // getTableData(result.taskList);
console.log(stage); // } else {
let stageList = res.data.data.stageList; //阶段数组 // //没有选中的阶段时,获取全部的任务
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) => {
console.log("taskListAll", taskListAll); // taskListAll = [...item.taskList];
getTableData(taskListAll); // });
} // console.log("taskListAll", taskListAll);
} // getTableData(taskListAll);
} else { // }
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) => {
console.log("taskListAll", taskListAll); // taskListAll = [...item.taskList];
getTableData(taskListAll); // });
} // console.log("taskListAll", taskListAll);
} // getTableData(taskListAll);
// 每次都获取了第一条taskList // }
// let arr = res.data.data.stageList[0].taskList; // }
// console.log("任务列表", stage, arr); // // 每次都获取了第一条taskList
// getTableData(arr); // // 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); // let stagearr = res.data.data.stageList;
if (stagearr.length > 0) { // // let arrlist = state.curLevel;
getStageData(stagearr); // console.log(stagearr, 111111);
// stagearr.map((value) => { // if (stagearr.length > 0) {
// console.log(value); // getStageData(stagearr);
// // arrlist.push(value); // // stagearr.map((value) => {
// }); // // console.log(value);
} // // // arrlist.push(value);
//给阶段id赋初始值 // // });
let stageid = localStorage.getItem("stageId") // }
? localStorage.getItem("stageId") // //给阶段id赋初始值
: null; // let stageid = localStorage.getItem("stageId")
if (stageid !== "null") { // ? localStorage.getItem("stageId")
state.chooseStageId = stageid; // : null;
} else { // if (stageid !== "null") {
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null; // state.chooseStageId = stageid;
} // } else {
let final = state.level.find((item) => item.id == state.chooseStageId); // state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
getTableData(final.taskList); // }
} // 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);
}; };

View File

@@ -323,8 +323,10 @@
<!-- <button class="btn" @click="showFaceIn" v-if="morFaceT"> <!-- <button class="btn" @click="showFaceIn" v-if="morFaceT">
批量面授报名 批量面授报名
</button> --> </button> -->
<router-link to="/taskadd"> <router-link
<button to="/taskadd" class="edit"> :to="{ path: `/taskadd`, query: { projectId: projectId } }"
>
<button class="edit">
<img <img
class="editimg" class="editimg"
src="../../assets/images/projectadd/edit.png" src="../../assets/images/projectadd/edit.png"
@@ -367,175 +369,175 @@
/> />
<div></div> <div></div>
</template> </template>
<a-collapse-panel <template v-for="(value, index) in taskSyllabus">
v-for="(value, index) in taskSyllabus" <a-collapse-panel
:key="index" :key="index"
:header="value.name" v-if="value.name"
> :header="value.name"
<div
class="course"
v-for="(item, key) in value.taskList"
:key="key"
> >
<div class="first"> <div
<div class="icon"> class="course"
<div v-for="(item, key) in value.taskList"
style=" :key="key"
width: 31px; >
height: 28px; <div class="first">
display: flex; <div class="icon">
align-items: center; <div
justify-content: center; style="
" width: 31px;
> height: 28px;
<img display: flex;
:src=" align-items: center;
item.type == 1 justify-content: center;
? 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')
" "
/> >
<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>
<div> <div class="type">
<div class="iconame">「{{ item.name }}」</div> <div
<div class="icontext">{{ item.name }}</div> :class="item.flag == true ? 'typename1' : 'typename'"
</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
> >
<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> </div>
<div class="operations"> </a-collapse-panel>
<!-- 2022-11-30注释 后面放开 --> </template>
<!-- <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> </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);
@@ -564,7 +566,10 @@
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)"
@@ -776,10 +781,11 @@
<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"> <!-- 2022-12-2注释 后面放开 -->
<!-- <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>
<!-- 小组列表 --> <!-- 小组列表 -->
<div class="groupmain"> <div class="groupmain">
@@ -1795,11 +1801,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"),
@@ -2457,7 +2462,7 @@ export default {
//任务大纲渲染 //任务大纲渲染
const getTaskList = () => { const getTaskList = () => {
let objtl = { let objtl = {
projectId: storage.get("projectId"), projectId: state.projectId,
}; };
apitl apitl
.getProjectDetail(objtl) .getProjectDetail(objtl)
@@ -3210,6 +3215,7 @@ export default {
}; };
//把小组列表信息放到state里 //把小组列表信息放到state里
const setGroupList = (tableData) => { const setGroupList = (tableData) => {
console.log("tableDatatableDatatableData", tableData);
let data = tableData; let data = tableData;
let array = []; let array = [];
data.map((value) => { data.map((value) => {
@@ -3222,7 +3228,7 @@ export default {
source: value.source == 1 ? "指定添加" : "随机分组", source: value.source == 1 ? "指定添加" : "随机分组",
completeTaskCnt: value.completeTaskCnt, //完成任务数 completeTaskCnt: value.completeTaskCnt, //完成任务数
totalTaskCnt: value.totalTaskCnt, //累计任务数 totalTaskCnt: value.totalTaskCnt, //累计任务数
completeRatio: value.completeRatio, //完成比例 completeRatio: value.completeRatio ? value.completeRatio : 0, //完成比例
}; };
array.push(obj); array.push(obj);
}); });
@@ -3321,55 +3327,57 @@ export default {
projectId: state.projectId, projectId: state.projectId,
}).then((res) => { }).then((res) => {
console.log("get task", res.data.data); console.log("get task", res.data.data);
let info = res.data.data.projectInfo; if (res.data.code === 200) {
// let start = toDate(info.beginTime / 1000, "Y-M-D h:m"); let info = res.data.data.projectInfo;
let start = info.beginTime; // let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
// let end = toDate(info.endTime / 1000, "Y-M-D h:m"); let start = info.beginTime;
let end = info.endTime; // let end = toDate(info.endTime / 1000, "Y-M-D h:m");
state.tstartTime = info.beginTime; let end = info.endTime;
state.tendTime = info.endTime; state.tstartTime = info.beginTime;
state.tsourceBelong = info.sourceBelongName; state.tendTime = info.endTime;
state.parentId = info.parentId; state.tsourceBelong = info.sourceBelongName;
state.name = info.name; state.parentId = info.parentId;
state.startTime = start; state.name = info.name;
state.endTime = end; state.startTime = start;
state.manager = info.manager; state.endTime = end;
state.remark = info.remark; state.manager = info.manager;
state.level = info.level; state.remark = info.remark;
state.tlevel = info.level; state.level = info.level;
state.systemId = info.systemId; state.tlevel = info.level;
state.tsystemId = info.systemId; state.systemId = info.systemId;
state.checkedSty = info.courseSyncFlag == 1 ? true : false; state.tsystemId = info.systemId;
state.courseSyncFlag = info.courseSyncFlag; state.checkedSty = info.courseSyncFlag == 1 ? true : false;
state.checkedBOEU = info.boeFlag == 1 ? true : false; state.courseSyncFlag = info.courseSyncFlag;
state.boeFlag = info.boeFlag; state.checkedBOEU = info.boeFlag == 1 ? true : false;
state.picUrl = info.picUrl; state.boeFlag = info.boeFlag;
state.managerId = info.managerId; state.picUrl = info.picUrl;
state.notice = info.notice; state.managerId = info.managerId;
state.status = info.status; state.notice = info.notice;
state.type = info.type; state.status = info.status;
state.category = info.category; state.type = info.type;
state.noticeFlag = info.noticeFlag; state.category = info.category;
// state.attach = info.attach; state.noticeFlag = info.noticeFlag;
// state.templateId = info.templateId; // state.attach = info.attach;
state.sourceBelong = info.sourceBelongName; // state.templateId = info.templateId;
// state.fileList=info.attach.split(",") state.sourceBelong = info.sourceBelongName;
let d = info.attach.indexOf(","); // state.fileList=info.attach.split(",")
// console.log(info.attach, "xgo", info.attach.length); let d = info.attach.indexOf(",");
if (info.attach.length == 0) { // console.log(info.attach, "xgo", info.attach.length);
return; if (info.attach.length == 0) {
} else if (info.attach.length !== 0 && d == -1) { return;
return; } else if (info.attach.length !== 0 && d == -1) {
} else { return;
// console.log(info.attach, "xgo"); } else {
// let str = JSON.parse(info.attach) // console.log(info.attach, "xgo");
// console.log("赚回来",str) // let str = JSON.parse(info.attach)
// let luj = info.attach.split(",") // console.log("赚回来",str)
let luj = info.attach; // let luj = info.attach.split(",")
// console.log("lulj", luj); let luj = info.attach;
console.log("赚回来", JSON.parse(luj)); // console.log("lulj", luj);
state.fileList = JSON.parse(luj); console.log("赚回来", JSON.parse(luj));
// state.fileList = luj state.fileList = JSON.parse(luj);
// state.fileList = luj
}
} }
}); });
}; };
@@ -3559,6 +3567,7 @@ export default {
} }
}; };
const reget = () => { const reget = () => {
console.log("state.projectId", state.projectId);
getTask({ getTask({
projectId: state.projectId, projectId: state.projectId,
}).then((res) => { }).then((res) => {