feat:taskoage所有二维码整理成一个弹窗,在线抽屉动态获取选项数,学习路径关联项目抽屉接口还没调试好

This commit is contained in:
Ggysh-7
2022-11-16 13:09:30 +08:00
parent 633ec2d6bf
commit 87db2fab4d
7 changed files with 808 additions and 902 deletions

View File

@@ -59,10 +59,10 @@
<div class="mntc_left"> <div class="mntc_left">
<div class="notice_icon"></div> <div class="notice_icon"></div>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px" <span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择 <span style="color: #388be1">4</span> </span >已选择 <span style="color: #388be1">{{RowsNum}}</span> </span
> >
<span style="color: rgba(0, 0, 0, 0.65)" <span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>14</span> </span >列表选项总计<span>{{tableDataTotal}}</span> </span
> >
</div> </div>
<div class="mntc_right"> <div class="mntc_right">
@@ -169,7 +169,8 @@ export default {
time: undefined, time: undefined,
assessmentId:null, assessmentId:null,
assessmentName:"", assessmentName:"",
tableData: [ ], RowsNum: 0,
tableData: [],
currentPage: 1, currentPage: 1,
tableDataTotal: 0, tableDataTotal: 0,
pageSize: 10, pageSize: 10,
@@ -230,10 +231,24 @@ export default {
return columns; return columns;
}; };
const rowSelection = { const rowSelection = {
checkStrictly: false,
onSelectAll: (selected) => {
console.log(selected);
if (selected == true) {
state.RowsNum = state.tableDataTotal
} else {
state.RowsNum = 0
}
},
onSelect: (selectedRows, selected, selectedRowKeys) => { onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log( console.log(
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected); "selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
console.log(selectedRows.assessmentId); console.log(selectedRows.assessmentId);
if (selected == true) {
state.RowsNum++
} else {
state.RowsNum--
}
state.assessmentId = selectedRows.assessmentId; state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name; state.assessmentName = selectedRows.name;
}, },

View File

@@ -239,9 +239,10 @@ export default {
} }
// for (let i = 0; i < state.questions.length; i++) { // for (let i = 0; i < state.questions.length; i++) {
// for (let k = 0; k < state.questions[i].options.length; k++) { // for (let k = 0; k < state.questions[i].options.length; k++) {
// // console.log('1111111111111111', state.questions); // console.log('1111111111111111', state.questions);
// // console.log('2222222222222222', state.questions[i].options); // console.log('2222222222222222', state.questions[i]);
// console.log(' state.questions[i].inputV', state.questions[i].inputV,);
// console.log('state.questions[i].options[k].opvalue',state.questions[i].options[k].opvalue)
// } // }
// } // }
let obj = { let obj = {

View File

@@ -70,6 +70,10 @@
<div class="img2"></div> <div class="img2"></div>
<div class="wz">导出数据</div> <div class="wz">导出数据</div>
</div> </div>
<div class="btn btn2">
<div class="img2"></div>
<div class="wz">导出作业</div>
</div>
</div> </div>
<div class="line"> <div class="line">
<div class="inline"> <div class="inline">
@@ -362,7 +366,7 @@ export default {
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
// getManageList(); getManageList();
}, 1000); }, 1000);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;

View File

@@ -219,10 +219,6 @@ export default {
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
// watch(props.visible, ()=>{
// getManageList()
// },{immediate:true});
//获取任务管理列表 //获取任务管理列表
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
@@ -237,7 +233,6 @@ export default {
api api
.taskStudentList(obj) .taskStudentList(obj)
.then((res) => { .then((res) => {
console.log("csscas成功");
state.pageNo = res.data.data.pageNo; state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
@@ -291,7 +286,7 @@ export default {
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
// getManageList(); getManageList();
}, 500); }, 500);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;

View File

@@ -65,6 +65,9 @@
<div class="btn btn2" @click="showModal"> <div class="btn btn2" @click="showModal">
<div class="wz">导出作业</div> <div class="wz">导出作业</div>
</div> </div>
<div class="btn btn2" @click="showModal">
<div class="wz">导入成绩</div>
</div>
</div> </div>
<div class="tab" style="margin-top: 20px; margin-bottom: 100px"> <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table <a-table
@@ -312,7 +315,7 @@ export default {
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
// getManageList(); getManageList();
}, 1000); }, 1000);
}); });
return { return {

View File

@@ -212,6 +212,13 @@
</div> </div>
<div class="text">在线</div> <div class="text">在线</div>
</div> </div>
<!-- 添加在线侧弹窗 -->
<div>
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId" />
</div>
<!-- 添加在线侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
@@ -230,6 +237,13 @@
</div> </div>
<div class="text">案例</div> <div class="text">案例</div>
</div> </div>
<!-- 添加案例侧弹窗 -->
<div>
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId" />
</div>
<!-- 添加案例侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
@@ -241,17 +255,9 @@
</div> </div>
<!-- 添加作业侧弹窗 --> <!-- 添加作业侧弹窗 -->
<div> <div>
<add-homework <add-homework v-model:addhomeworkVisible="addhomeworkvisible" :isLevel="true" @changeData="updateTableData"
v-model:addhomeworkVisible="addhomeworkvisible" v-model:isactive="isactive" v-model:edit="edit" v-model:routerId="routerId" v-model:chooseStageId="chooseStageId"
:isLevel="true" v-model:EditWorkId="EditWorkId" v-model:routerTaskId="routerTaskId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:EditWorkId="EditWorkId"
v-model:routerTaskId="routerTaskId"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -264,17 +270,9 @@
</div> </div>
<!-- 添加考试侧弹窗 --> <!-- 添加考试侧弹窗 -->
<div> <div>
<add-test <add-test v-model:addtestVisible="addtestvisible" :isLevel="true" @changeData="updateTableData"
v-model:addtestVisible="addtestvisible" v-model:isactive="isactive" v-model:edit="edit" v-model:routerId="routerId" v-model:chooseStageId="chooseStageId"
:isLevel="true" v-model:EditTestId="EditTestId" v-model:routerTaskId="routerTaskId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:EditTestId="EditTestId"
v-model:routerTaskId="routerTaskId"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -286,17 +284,9 @@
<div class="text">直播</div> <div class="text">直播</div>
</div> </div>
<div> <div>
<add-live <add-live v-model:addliveVisible="addlivevisible" :isLevel="true" @changeData="updateTableData"
v-model:addliveVisible="addlivevisible" v-model:isactive="isactive" v-model:routerId="routerId" v-model:chooseStageId="chooseStageId"
:isLevel="true" v-model:routerTaskId="routerTaskId" v-model:edit="edit" v-model:EditLiveId="EditLiveId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:routerTaskId="routerTaskId"
v-model:edit="edit"
v-model:EditLiveId="EditLiveId"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -308,17 +298,9 @@
<div class="text">外链</div> <div class="text">外链</div>
</div> </div>
<div> <div>
<add-ref <add-ref v-model:addrefVisible="addrefvisible" :isLevel="true" @changeData="updateTableData"
v-model:addrefVisible="addrefvisible" v-model:isactive="isactive" v-model:routerId="routerId" v-model:chooseStageId="chooseStageId"
:isLevel="true" v-model:routerTaskId="routerTaskId" v-model:edit="edit" v-model:EditRefId="EditRefId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:routerTaskId="routerTaskId"
v-model:edit="edit"
v-model:EditRefId="EditRefId"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -330,17 +312,9 @@
<div class="text">讨论</div> <div class="text">讨论</div>
</div> </div>
<div> <div>
<add-discuss <add-discuss v-model:adddiscussVisible="adddiscussvisible" @changeData="updateTableData" :isLevel="true"
v-model:adddiscussVisible="adddiscussvisible" v-model:isactive="isactive" v-model:edit="edit" v-model:routerId="routerId" v-model:chooseStageId="chooseStageId"
@changeData="updateTableData" v-model:routerTaskId="routerTaskId" v-model:EditDiscussId="EditDiscussId" />
:isLevel="true"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:routerTaskId="routerTaskId"
v-model:EditDiscussId="EditDiscussId"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -352,17 +326,9 @@
<div class="text">活动</div> <div class="text">活动</div>
</div> </div>
<div> <div>
<add-active <add-active v-model:addactiveVisible="addactivevisible" :isLevel="true" v-model:edit="edit"
v-model:addactiveVisible="addactivevisible" v-model:isactive="isactive" @changeData="updateTableData" v-model:routerId="routerId"
:isLevel="true" v-model:chooseStageId="chooseStageId" v-model:routerTaskId="routerTaskId" v-model:EditActiveId="EditActiveId" />
v-model:edit="edit"
v-model:isactive="isactive"
@changeData="updateTableData"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:routerTaskId="routerTaskId"
v-model:EditActiveId="EditActiveId"
/>
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
@@ -374,16 +340,9 @@
<div class="text">测评</div> <div class="text">测评</div>
<!-- 添加测评侧弹窗 --> <!-- 添加测评侧弹窗 -->
<div> <div>
<add-eval <add-eval v-model:addevalVisible="addevalvisible" :isLevel="true" @changeData="updateTableData"
v-model:addevalVisible="addevalvisible" v-model:isactive="isactive" v-model:edit="edit" v-model:routerId="routerId" v-model:EditEvalId="EditEvalId"
:isLevel="true" v-model:routerTaskId="routerTaskId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:EditEvalId="EditEvalId"
v-model:routerTaskId="routerTaskId"
/>
</div> </div>
<!-- 添加测评侧弹窗 --> <!-- 添加测评侧弹窗 -->
</div> </div>
@@ -397,17 +356,9 @@
<div class="text">评估</div> <div class="text">评估</div>
<!-- 添加评估侧弹窗 --> <!-- 添加评估侧弹窗 -->
<div> <div>
<add-invist <add-invist v-model:addinvistVisible="addinvistvisible" :isLevel="true" @changeData="updateTableData"
v-model:addinvistVisible="addinvistvisible" v-model:isactive="isactive" v-model:edit="edit" v-model:routerId="routerId"
:isLevel="true" v-model:chooseStageId="chooseStageId" v-model:EditInvistId="EditInvistId" v-model:routerTaskId="routerTaskId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:EditInvistId="EditInvistId"
v-model:routerTaskId="routerTaskId"
/>
</div> </div>
<!-- 添加评估侧弹窗 --> <!-- 添加评估侧弹窗 -->
</div> </div>
@@ -421,29 +372,18 @@
<div class="text">投票</div> <div class="text">投票</div>
<!-- 添加投票侧弹窗 --> <!-- 添加投票侧弹窗 -->
<div> <div>
<add-vote <add-vote v-model:addvoteVisible="addvotevisible" :isLevel="true" @changeData="updateTableData"
v-model:addvoteVisible="addvotevisible" v-model:isactive="isactive" v-model:edit="edit" v-model:routerId="routerId"
:isLevel="true" v-model:chooseStageId="chooseStageId" v-model:EditVoteId="EditVoteId" v-model:routerTaskId="routerTaskId" />
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:EditVoteId="EditVoteId"
v-model:routerTaskId="routerTaskId"
/>
</div> </div>
<!-- 添加投票侧弹窗 --> <!-- 添加投票侧弹窗 -->
</div> </div>
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item" @click="showDrawerAddVote"> <div class="item" @click="showDrawerAddProj">
<div class="itcon"> <div class="itcon">
<div class="img"> <div class="img">
<img <img src="../../assets/images/leveladd/xiang.png" @click="leaveProjDrawer" />
src="../../assets/images/leveladd/xiang.png"
@click="showDrawer"
/>
</div> </div>
<div class="text">项目</div> <div class="text">项目</div>
</div> </div>
@@ -466,8 +406,7 @@
</div> </div>
</div> </div>
<div class="tableBox"> <div class="tableBox">
<div <div style="
style="
height: 50px; height: 50px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -478,32 +417,25 @@
color: #999ba3; color: #999ba3;
line-height: 36px; line-height: 36px;
border-bottom: 1px solid #f2f6fc; border-bottom: 1px solid #f2f6fc;
" ">
> <div style="
<div
style="
width: 87px; width: 87px;
text-align: center; text-align: center;
display: flex; display: flex;
margin-left: 46px; margin-left: 46px;
" ">
> <img style="
<img
style="
width: 16px; width: 16px;
height: 16px; height: 16px;
cursor: pointer; cursor: pointer;
margin-top: 12px; margin-top: 12px;
" " :src="
:src="
selectAll === 0 selectAll === 0
? require('../../assets/images/notSelect.png') ? require('../../assets/images/notSelect.png')
: selectAll === 1 : selectAll === 1
? require('../../assets/images/selectAll.png') ? require('../../assets/images/selectAll.png')
: require('../../assets/images/select.png') : require('../../assets/images/select.png')
" " @click="selectRowAll" />
@click="selectRowAll"
/>
<!-- <a-checkbox <!-- <a-checkbox
v-model:checked="selectAll" v-model:checked="selectAll"
@change="selectRowAll" @change="selectRowAll"
@@ -518,19 +450,10 @@
操作 操作
</div> </div>
</div> </div>
<draggable <draggable v-model="tableData" chosenClass="chosen" ghostClass="ghost" forceFallback="true" group="task"
v-model="tableData" animation="500" @start="onStart" @end="onEnd">
chosenClass="chosen"
ghostClass="ghost"
forceFallback="true"
group="task"
animation="500"
@start="onStart"
@end="onEnd"
>
<template #item="{ element }"> <template #item="{ element }">
<div <div style="
style="
height: 50px; height: 50px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@@ -540,33 +463,22 @@
font-weight: 400; font-weight: 400;
color: #4f5156; color: #4f5156;
line-height: 36px; line-height: 36px;
" " class="tableRow">
class="tableRow" <div style="
>
<div
style="
width: 87px; width: 87px;
text-align: center; text-align: center;
margin-left: 46px; margin-left: 46px;
position: relative; position: relative;
" ">
>
<div class="racona"> <div class="racona">
<div <div class="img" style="
class="img"
style="
cursor: pointer; cursor: pointer;
margin-top: 2px; margin-top: 2px;
margin-right: 9px; margin-right: 9px;
position: absolute; position: absolute;
left: -25px; left: -25px;
" "></div>
></div> <a-checkbox :id="element.id" v-model:checked="element.checked" @change="changeRow">
<a-checkbox
:id="element.id"
v-model:checked="element.checked"
@change="changeRow"
>
</a-checkbox> </a-checkbox>
<div style="margin-top: 2px; margin-left: 8px"> <div style="margin-top: 2px; margin-left: 8px">
{{ element.lei }} {{ element.lei }}
@@ -579,20 +491,12 @@
<div style="width: 120px; text-align: center"> <div style="width: 120px; text-align: center">
<div class="opat"> <div class="opat">
<div class="opacationt clearfix"> <div class="opacationt clearfix">
<a-switch <a-switch style="margin-left: -50px; margin-top: 3px" v-model:checked="element.checked1" size="small"
style="margin-left: -50px; margin-top: 3px" active-color="red" @click="changeCourseType(element)" />
v-model:checked="element.checked1"
size="small"
active-color="red"
@click="changeCourseType(element)"
/>
<div class="showt clearfix"> <div class="showt clearfix">
<div <div class="bi" :style="{
class="bi"
:style="{
'z-index': element.checked1 ? 999 : 998, 'z-index': element.checked1 ? 999 : 998,
}" }">
>
必修 必修
</div> </div>
<div class="xuan">选修</div> <div class="xuan">选修</div>
@@ -603,31 +507,23 @@
<div style="width: 87px; text-align: center"> <div style="width: 87px; text-align: center">
{{ element.cretime }}分钟 {{ element.cretime }}分钟
</div> </div>
<div <div style="width: 120px; text-align: center; margin-right: 20px">
style="width: 120px; text-align: center; margin-right: 20px"
>
<div class="opa"> <div class="opa">
<div class="opacation"> <div class="opacation">
<span <span style="
style="
color: #4ea6ff; color: #4ea6ff;
margin-right: 25px; margin-right: 25px;
cursor: pointer; cursor: pointer;
" " @click="
@click="
decideType( decideType(
element.lei, element.lei,
element.courseId, element.courseId,
element.id element.id
) )
" ">
>
编辑 编辑
</span> </span>
<span <span style="color: #4ea6ff; cursor: pointer" @click="showDeleteModal(element.id)">
style="color: #4ea6ff; cursor: pointer"
@click="showDeleteModal(element.id)"
>
删除 删除
</span> </span>
</div> </div>
@@ -670,37 +566,24 @@
</div> </div>
</div> </div>
<div class="draw" style="position: relative"> <div class="draw" style="position: relative">
<a-drawer <a-drawer v-model:visible="addprojvisible" :isLevel="isLevel" class="drawerStyle ProjectDrawer" title="关联项目"
v-model:visible="visible" placement="right" width="80%" @after-visible-change="afterVisibleChange">
class="drawerStyle ProjectDrawer"
title="关联项目"
placement="right"
width="80%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">关联项目</div> <div class="headerTitle">关联项目</div>
<img <img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
style="width: 29px; height: 29px; cursor: pointer" @click="leaveProjDrawer" />
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div> </div>
<div class="drawerbox"> <div class="drawerbox">
<a-table <a-table :columns="drawertableColumns()" :data-source="drawertableData"
:columns="drawertableColumns()" :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)" :row-selection="rowSelection"
:data-source="drawertableData" :loading="tableDataTotal === -1 ? true : false" :scroll="{ x: 700 }" @expand="expandTable"
:loading="tableDataTotal === -1 ? true : false" :pagination="false">
:scroll="{ x: 700 }"
@expand="expandTable"
:pagination="false"
>
</a-table> </a-table>
</div> </div>
<div class="btnn"> <div class="btnn">
<button @click="showDrawer" class="btn1">取消</button> <button @click="leaveProjDrawer" class="btn1">取消</button>
<button @click="showDrawer" class="btn2">确定</button> <button @click="updateTask" class="btn2">确定</button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
@@ -918,6 +801,10 @@ import { storage } from "../../api/storage";
import { deleteStudyTask } from "../../api/indexStudy"; import { deleteStudyTask } from "../../api/indexStudy";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import { editTask } from "../../api/indexTaskadd"; import { editTask } from "../../api/indexTaskadd";
import * as apiProj from "../../api/indexInvist.js";
import * as apiTask from "../../api/indexTaskadd";
import { RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs";
export default { export default {
name: "LevelAddDetail", name: "LevelAddDetail",
components: { components: {
@@ -1035,104 +922,108 @@ export default {
time: "2022-07-15 14:00", time: "2022-07-15 14:00",
}, },
], ],
drawertableData: [ drawertableData: [],
{ // drawertableData: [
key: 1, // {
projectName: "管理者进阶", // key: 1,
manager: "黄华 刘俊", // projectName: "管理者进阶",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
children: [ // time: "2022-07-20 14:00:03",
{ // children: [
key: "1-1", // {
projectName: "管理者进阶-腾飞班", // key: "1-1",
manager: "黄华 刘俊", // projectName: "管理者进阶-腾飞班",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
children: [ // time: "2022-07-20 14:00:03",
{ // children: [
key: "1-1-1", // {
projectName: "管理者进阶-腾飞班K1", // key: "1-1-1",
manager: "黄华 刘俊", // projectName: "管理者进阶-腾飞班K1",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
}, // time: "2022-07-20 14:00:03",
], // },
}, // ],
], // },
}, // ],
{ // },
key: 2, // {
projectName: "管理者进阶", // key: 2,
manager: "黄华 刘俊", // projectName: "管理者进阶",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
children: [ // time: "2022-07-20 14:00:03",
{ // children: [
key: "2-1", // {
projectName: "管理者进阶-腾飞班", // key: "2-1",
manager: "黄华 刘俊", // projectName: "管理者进阶-腾飞班",
// manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
children: [ // children: [
{ // {
key: "2-1-1", // key: "2-1-1",
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
], // ],
}, // },
], // ],
}, // },
{ // {
key: 3, // key: 3,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 4, // key: 4,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 5, // key: 5,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 6, // key: 6,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 7, // key: 7,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
], // ],
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
pageSize: 10, pageSize: 10,
visible: false, visible: false,
//项目
editproj: false,
addprojvisible: false,
AddSvisible: false, //添加学员抽屉 AddSvisible: false, //添加学员抽屉
AddImpStuvisible: false, //导入学员抽屉 AddImpStuvisible: false, //导入学员抽屉
addlivevisible: false, //添加直播抽屉 addlivevisible: false, //添加直播抽屉
@@ -1154,6 +1045,8 @@ export default {
EditEvalId: "", EditEvalId: "",
EditInvistId: "", EditInvistId: "",
EditVoteId: "", EditVoteId: "",
//项目
EditProjId: "",
routerTaskId: "", routerTaskId: "",
chapterId: "", chapterId: "",
stageId: "", stageId: "",
@@ -1177,6 +1070,14 @@ export default {
ListChoosedId: 0, ListChoosedId: 0,
selectRow: [], //选择行 selectRow: [], //选择行
selectAll: 0, //0未选择1全选2部分选择 selectAll: 0, //0未选择1全选2部分选择
//项目抽屉参数
time: undefined,
assessmentId: null,
assessmentName: "",
isLevel: false,
projectId: null,
projectTaskId: null,
chooseStageId: null,
}); });
//新建关卡 //新建关卡
@@ -1227,6 +1128,11 @@ export default {
const showDrawer = () => { const showDrawer = () => {
state.visible = true; state.visible = true;
}; };
//关闭项目抽屉
const leaveProjDrawer = () => {
state.addprojvisible = false;
state.isLevel = false;
};
// 作业和考试的抽屉 // 作业和考试的抽屉
const showDrawerAddHomework = (id, eleId) => { const showDrawerAddHomework = (id, eleId) => {
console.log("homework==============", id, state.isactive); console.log("homework==============", id, state.isactive);
@@ -1279,6 +1185,13 @@ export default {
state.EditActiveId = id; state.EditActiveId = id;
state.routerTaskId = eleId; state.routerTaskId = eleId;
}; };
//打开项目抽屉
const showDrawerAddProj = (id, eleId) => {
state.addprojvisible = true;
state.isLevel = true;
state.EditActiveId = id;
state.routerTaskId = eleId;
};
// tableData数据赋值方法 // tableData数据赋值方法
const dataAssignment = (id) => { const dataAssignment = (id) => {
@@ -1713,6 +1626,8 @@ export default {
showDrawerAddEval(id, eleId); showDrawerAddEval(id, eleId);
} else if (type == "投票") { } else if (type == "投票") {
showDrawerAddVote(id, eleId); showDrawerAddVote(id, eleId);
} else if (type == "项目") {
showDrawerAddVote(id, eleId);
} }
}; };
//删除关卡 //删除关卡
@@ -1756,6 +1671,98 @@ export default {
message.warning("修改失败"); message.warning("修改失败");
}); });
}; };
//项目抽屉用的
const rowSelection = {
onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log(
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
console.log(selectedRows.assessmentId);
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
},
};
const getTableDate = (drawertableData) => {
let data = drawertableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
state.tableData = array;
};
//获取全部项目信息接口
const getAllProjText = () => {
apiProj
.queryAssessmentDetailList({
assessmentName: "",
// pageNo: state.currentPage,
// pageSize: state.pageSize,
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
getTableDate(arr);
}
})
.catch((err) => {
console.log("获取全部在线信息接口失败", err);
// state.createLoading = false;
});
};
const updateTask = () => {
console.log("jinlaile=================", state.assessmentName)
if (state.isLevel) {
RouterEditTask({
chapterId: state.isactive,
courseId: state.assessmentId,
name: state.assessmentName,
routerId: state.routerId,
routerTaskId: state.routerTaskId || 0,
type: 13,
})
.then((res) => {
console.log(res, 11111);
message.success(`${state.editproj ? '编辑' : '新增'}关卡任务成功`)
// ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
})
.catch((err) => {
console.log(err, 1111);
});
} else {
console.log("=========projectTaskId", state.projectTaskId);
apiTask
.addTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectId: state.projectId,
projectTaskId: state.projectTaskId || 0,
stageId: state.chooseStageId,
type: 13,
})
.then((res) => {
console.log("调用项目添加接口后111", res.data, 11111);
// ctx.emit("changeData", false);
closeDrawer();
})
.catch((err) => {
console.log(err, 111111);
});
}
}
onMounted(() => {
// createCase();
getAllProjText();
});
return { return {
...toRefs(state), ...toRefs(state),
// tableDataFunc, // tableDataFunc,
@@ -1785,6 +1792,8 @@ export default {
deleteLevelTask, deleteLevelTask,
showDrawerAddLive, showDrawerAddLive,
showDrawerAddRef, showDrawerAddRef,
showDrawerAddProj,
leaveProjDrawer,
closeDeleteModel, closeDeleteModel,
clearEditData, clearEditData,
showDrawerAddDiscuss, showDrawerAddDiscuss,
@@ -1798,6 +1807,10 @@ export default {
updateTableData, updateTableData,
deleteChapter, deleteChapter,
changeCourseType, changeCourseType,
rowSelection,
getTableDate,
getAllProjText,
updateTask,
}; };
}, },
}; };

View File

@@ -419,23 +419,7 @@
<div <div
class="operation" class="operation"
style="cursor: pointer" style="cursor: pointer"
:style="{ @click=" showCopyModal(item.type)"
display:
item.type == '6' ||
item.type == '9' ||
item.type == '2'
? 'flex'
: 'none',
}"
@click="
item.type == '2'
? showCopyModal(item.type)
: item.type == '6'
? showzhibModal(item.type)
: item.type == '9'
? showhuodModal(item.type)
: null
"
> >
二维码 二维码
</div> </div>
@@ -1082,60 +1066,33 @@
:projectTaskId="projectTaskId" :projectTaskId="projectTaskId"
/> />
<!-- 考试管理抽屉 --> <!-- 考试管理抽屉 -->
<test-manage <test-manage v-model:TMvisible.sync="TMvisible" v-if="TMvisible" :title="showTestText" :projectTaskId="projectTaskId" />
v-model:TMvisible.sync="TMvisible"
v-if="Wvisible"
:title="showTestText"
:projectTaskId="projectTaskId"
/>
<!-- 批量面授报名 --> <!-- 批量面授报名 -->
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" /> <task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" />
<!-- 概览无数据-项目发布弹窗 --> <!-- 概览无数据-项目发布弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="pubproject" :title="null" @ok="closeModal" :footer="null" :closable="false" :centered="true"
v-model:visible="pubproject" wrapClassName="pubproject" width="679px" height="437px">
:title="null" <div class="modalHeader" style="
@ok="closeModal"
:footer="null"
:closable="false"
:centered="true"
wrapClassName="pubproject"
width="679px"
height="437px"
>
<div
class="modalHeader"
style="
width: 100%; width: 100%;
height: 68px; height: 68px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
" ">
>
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
<span style="width: 15px; height: 15px" <span style="width: 15px; height: 15px"><img src="../../assets/images/taskpage/pub.png" /></span>
><img src="../../assets/images/taskpage/pub.png" <span class="headerLeftText" style="font-size: 16px; margin-left: 10px">项目发布</span>
/></span>
<span
class="headerLeftText"
style="font-size: 16px; margin-left: 10px"
>项目发布</span
>
</div> </div>
<div style="cursor: pointer; margin-right: 32px" @click="closeModal"> <div style="cursor: pointer; margin-right: 32px" @click="closeModal">
<img <img style="width: 22px; height: 22px" src="../../assets/images/basicinfo/close22.png" />
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
<div class="projectname">管理者进阶-腾飞班1</div> <div class="projectname">管理者进阶-腾飞班1</div>
<div class="projecttime"> <div class="projecttime">
<span class="timeti">项目时间</span <span class="timeti">项目时间</span><span class="timeme">2022/08/01-2022/08/30</span>
><span class="timeme">2022/08/01-2022/08/30</span>
</div> </div>
<div class="projectbox"> <div class="projectbox">
<div class="promessage"> <div class="promessage">
@@ -1152,12 +1109,8 @@
<span class="sendtext">发送项目通知</span> <span class="sendtext">发送项目通知</span>
</div> </div>
<div class="ckb"> <div class="ckb">
<a-checkbox v-model:checked="checked1" <a-checkbox v-model:checked="checked1"><span class="sendpeo">发给老师</span></a-checkbox>
><span class="sendpeo">发给老师</span></a-checkbox <a-checkbox v-model:checked="checked2"><span class="sendpeo">发给学员</span></a-checkbox>
>
<a-checkbox v-model:checked="checked2"
><span class="sendpeo">发给学员</span></a-checkbox
>
</div> </div>
<div class="pubtn"> <div class="pubtn">
<a-button class="pubtn1" @click="closeModal">取消</a-button> <a-button class="pubtn1" @click="closeModal">取消</a-button>
@@ -1169,68 +1122,39 @@
<!-- 概览无数据-项目发布弹窗 --> <!-- 概览无数据-项目发布弹窗 -->
<!-- 学员-创建小组弹窗 --> <!-- 学员-创建小组弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="stugroup" :title="null" @ok="closeModal2" :footer="null" :closable="false" :centered="true"
v-model:visible="stugroup" wrapClassName="doublepro" width="624px" height="332px">
:title="null" <div class="modalHeader" style="
@ok="closeModal2"
:footer="null"
:closable="false"
:centered="true"
wrapClassName="doublepro"
width="624px"
height="332px"
>
<div
class="modalHeader"
style="
width: 100%; width: 100%;
height: 68px; height: 68px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
" ">
>
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
<span class="headerLeftText" style="font-size: 16px">创建小组</span> <span class="headerLeftText" style="font-size: 16px">创建小组</span>
</div> </div>
<div style="cursor: pointer; margin-right: 32px" @click="closeModal2"> <div style="cursor: pointer; margin-right: 32px" @click="closeModal2">
<img <img style="width: 22px; height: 22px" src="../../assets/images/basicinfo/close22.png" />
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
<div class="name"> <div class="name">
<div class="star" style="margin-top: -4px"> <div class="star" style="margin-top: -4px">
<img <img style="width: 10px; height: 10px" src="../../assets/images/basicinfo/asterisk.png" />
style="width: 10px; height: 10px"
src="../../assets/images/basicinfo/asterisk.png"
/>
</div> </div>
<div class="inname">小组名称:</div> <div class="inname">小组名称:</div>
<div class="in"> <div class="in">
<a-input <a-input v-model:value="valueaddg" placeholder="请输入小组名称" style="border-radius: 8px; height: 40px" />
v-model:value="valueaddg"
placeholder="请输入小组名称"
style="border-radius: 8px; height: 40px"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="star" style="margin-top: -4px"> <div class="star" style="margin-top: -4px">
<img <img style="width: 10px; height: 10px; margin-left: 15px" src="../../assets/images/basicinfo/asterisk.png" />
style="width: 10px; height: 10px; margin-left: 15px"
src="../../assets/images/basicinfo/asterisk.png"
/>
</div> </div>
<div class="inname">小组长:</div> <div class="inname">小组长:</div>
<div class="in"> <div class="in">
<a-input <a-input v-model:value="valueaddm" placeholder="请输入小组长" style="border-radius: 8px; height: 40px" />
v-model:value="valueaddm"
placeholder="请输入小组长"
style="border-radius: 8px; height: 40px"
/>
</div> </div>
</div> </div>
<div class="pubtn"> <div class="pubtn">
@@ -1243,14 +1167,8 @@
<!-- 学员-创建小组弹窗 --> <!-- 学员-创建小组弹窗 -->
<!-- 取消学员弹窗 --> <!-- 取消学员弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="canclestu" :footer="null" :closable="close" wrapClassName="canclestu" centered="true"
v-model:visible="canclestu" @cancel="closeModal1">
:footer="null"
:closable="close"
wrapClassName="canclestu"
centered="true"
@cancel="closeModal1"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1276,13 +1194,7 @@
<!-- 取消学员弹窗 --> <!-- 取消学员弹窗 -->
<!-- 优秀学员弹窗 --> <!-- 优秀学员弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="canclestu1" :footer="null" :closable="close" wrapClassName="canclestu1" centered="true">
v-model:visible="canclestu1"
:footer="null"
:closable="close"
wrapClassName="canclestu1"
centered="true"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1308,13 +1220,7 @@
<!-- 取消学员弹窗 --> <!-- 取消学员弹窗 -->
<!-- 删除学员弹窗 --> <!-- 删除学员弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="deleteOneStu" :footer="null" :closable="close" wrapClassName="canclestu1" centered="true">
v-model:visible="deleteOneStu"
:footer="null"
:closable="close"
wrapClassName="canclestu1"
centered="true"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1341,14 +1247,8 @@
<!-- 删除弹窗 --> <!-- 删除弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="delete_hs" :footer="null" :closable="closableQR" wrapClassName="DelModal"
v-model:visible="delete_hs" style="margin-top: 400px" @cancel="delete_exit">
:footer="null"
:closable="closableQR"
wrapClassName="DelModal"
style="margin-top: 400px"
@cancel="delete_exit"
>
<div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }"> <div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1373,20 +1273,26 @@
</a-modal> </a-modal>
</div> </div>
<!-- 删除弹窗 --> <!-- 删除弹窗 -->
<!-- 面授管理二维码 --> <!-- 管理二维码 -->
<a-modal <a-modal v-model:visible="copyModal" :footer="null" :closable="closeCopy" wrapClassName="facemanageModal"
v-model:visible="copyModal" centered="true">
:footer="null"
:closable="closeCopy"
wrapClassName="facemanageModal"
centered="true"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
<div class="header"> <div class="header">
<div class="icon"></div> <div class="icon"></div>
<span>面授管理</span> <span v-if="QRtype == '1'">在线管理</span>
<span v-if="QRtype == '2'">面授管理</span>
<span v-if="QRtype == '3'">案例管理</span>
<span v-if="QRtype == '4'">作业管理</span>
<span v-if="QRtype == '5'">考试管理</span>
<span v-if="QRtype == '6'">直播管理</span>
<span v-if="QRtype == '7'">外链管理</span>
<span v-if="QRtype == '8'">讨论管理</span>
<span v-if="QRtype == '9'">活动管理</span>
<span v-if="QRtype == '10'">测评管理</span>
<span v-if="QRtype == '11'">评估管理</span>
<span v-if="QRtype == '12'">投票管理</span>
<div class="close_exit" @click="closeCopyModal"></div> <div class="close_exit" @click="closeCopyModal"></div>
</div> </div>
<div class="body"> <div class="body">
@@ -1401,62 +1307,6 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 直播管理二维码 -->
<a-modal
v-model:visible="zhibModal"
:footer="null"
:closable="closeCopy"
wrapClassName="facemanageModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>直播管理</span>
<div class="close_exit" @click="closezhibModal"></div>
</div>
<div class="body">
<div><img src="../../assets/images/taskpage/erweima.png" /></div>
</div>
<div class="footerr">
<div class="onload">下载二维码</div>
<div class="onloadpx">200*200</div>
<div class="onloadpx">400*400</div>
<div class="onloadpx">800*800</div>
</div>
</div>
</div>
</a-modal>
<!-- 活动管理二维码 -->
<a-modal
v-model:visible="huodModal"
:footer="null"
:closable="closeCopy"
wrapClassName="facemanageModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>活动管理</span>
<div class="close_exit" @click="closehuodModal"></div>
</div>
<div class="body">
<div><img src="../../assets/images/taskpage/erweima.png" /></div>
</div>
<div class="footerr">
<div class="onload">下载二维码</div>
<div class="onloadpx">200*200</div>
<div class="onloadpx">400*400</div>
<div class="onloadpx">800*800</div>
</div>
</div>
</div>
</a-modal>
<!-- 批量删除弹窗 --> <!-- 批量删除弹窗 -->
<div> <div>
<a-modal <a-modal
@@ -1661,7 +1511,7 @@ export default {
copyModal: false, //面授二维码弹窗 copyModal: false, //面授二维码弹窗
closeCopy: false, //面授二维码关闭图标 closeCopy: false, //面授二维码关闭图标
zhibModal: false, //直播二维码弹窗 zhibModal: false, //直播二维码弹窗
QRtype: "", //二维码标题
huodModal: false, //活动二维码弹窗 huodModal: false, //活动二维码弹窗
allDelete: false, //批量删除弹窗 allDelete: false, //批量删除弹窗
pubproject: false, pubproject: false,
@@ -2406,8 +2256,33 @@ export default {
state.stugroup = false; state.stugroup = false;
} }
}; };
const showCopyModal = () => { const showCopyModal = (itemtype) => {
state.copyModal = true; state.copyModal = true;
if (itemtype == "1") {
state.QRtype = "1"
} else if (itemtype == "2") {
state.QRtype = "2"
} else if (itemtype == "3") {
state.QRtype = "3"
} else if (itemtype == "4") {
state.QRtype = "4"
} else if (itemtype == "5") {
state.QRtype = "5"
} else if (itemtype == "6") {
state.QRtype = "6"
} else if (itemtype == "7") {
state.QRtype = "7"
} else if (itemtype == "8") {
state.QRtype = "8"
} else if (itemtype == "9") {
state.QRtype = "9"
} else if (itemtype == "10") {
state.QRtype = "10"
} else if (itemtype == "11") {
state.QRtype = "11"
} else if (itemtype == "12") {
state.QRtype = "12"
}
}; };
const closeCopyModal = () => { const closeCopyModal = () => {
state.copyModal = false; state.copyModal = false;