添案例接口添多数据情况批量标记弹窗封装新增查答卷查投票抽屉考勤面管添在线注释及清空考和测管内容判断

This commit is contained in:
Ggysh-7
2022-11-21 13:32:21 +08:00
parent 5a9c5ad274
commit 0fe0e74a75
22 changed files with 1259 additions and 1075 deletions

View File

@@ -23,6 +23,7 @@ http.interceptors.request.use(
console.log("当前请求页面无token,请执行操作!!!");
// 此处测试默认配置token
config.headers.token = "123456";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njg4NjI2MTAsImV4cCI6MTY2ODg2OTgxMCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.defa91ecb2b61d9b20d858db0c2c8d7d80dea4613cb2559a22569b7df36b3f6b";
}
return config;
},

19
src/api/indexTest.js Normal file
View File

@@ -0,0 +1,19 @@
import http from "./config";
//创建考试信息接口
export const createExamination = (obj) => http.post('/examination/createExamination',obj);
//根据Id删除考试信息
export const deleteExaminationById = (obj) => http.post('/examination/deleteExaminationById',{params:obj});
//根据ID获取考试信息详情
export const queryExaminationDetailById = (obj) => http.post('/examination/queryExaminationDetailById',{params:obj});
//获取考试试卷
// export const queryExaminationPaper = (obj) => http.post('/examination/queryExaminationPaper',obj);
export const queryExaminationPaper = (obj) => http.post('/examination/queryExaminationPaperList',obj);
//修改考试信息接口
export const updateExamination = (obj) => http.post('/examination/updateExamination',obj,{
header:{
'token': '123',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
}
});

View File

@@ -142,15 +142,19 @@ export default {
};
const rowSelection = {
type: "radio",
onSelect:(selectedRows,)=>{
onSelect:(selectedRows)=>{
state.assessment = selectedRows;
console.log("selectedRows=======",state.assessment);
ctx.emit("checkedAss", state.assessment);
state.selectedRowKeys = [],
state.selectedRowKeys = []
closeDrawer();
}
},
};
// const onSelectChange = (selectedRowKeys) => {
// if(selectedRowKeys.length>2){return}
// state.selectedRowKeys = selectedRowKeys;
// };
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
@@ -201,7 +205,6 @@ export default {
state.inputV1 = "";
getAllInvistText();
};
return {
...toRefs(state),
afterVisibleChange,

View File

@@ -92,15 +92,14 @@
<div class="left">
<div class="img"></div>
<div class="text" style="margin-left: 10px">已选择</div>
<div class="text2">2</div>
<div class="text2">{{selectedRowKeys.length}}</div>
<div class="text"></div>
<div class="text3">列表选项总计</div>
<div class="text4">9</div>
<div class="text4">{{tableData.length}}</div>
</div>
<div class="right">清空</div>
<div class="right" @click="clearLine">清空</div>
</div>
</div>
<!-- <div class="pad"></div> -->
<div class="tableBox" style="margin-top: 30px">
<a-table
@@ -108,34 +107,14 @@
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div>
<!-- <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900, y: 350 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div> -->
</div>
<div class="btnn">
<button class="btn1">取消</button>
@@ -296,7 +275,6 @@ export default {
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
selectedRowKeys: [],
signQRvisible:false, //二维码弹窗
qdModal: false, //批量签到
singleqjModal: false, //单独请假
@@ -347,6 +325,7 @@ export default {
label: "项目四",
},
],
selectedRowKeys: [],
tableData: [
{
key: 1,
@@ -456,8 +435,6 @@ export default {
state.Evisible = true;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
@@ -514,14 +491,12 @@ export default {
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 50,
align: "center",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
return (
<div class="racona">
<span> {text.record.name}</span>
@@ -532,7 +507,6 @@ export default {
{
title: "所在部门",
dataIndex: "com",
// width: "30%",
key: "com",
width: 50,
align: "center",
@@ -585,18 +559,14 @@ export default {
key: "opacation",
width: 130,
align: "center",
// scopedSlots: { customRender: "action" }, //引入的插槽
// customRender: () => {
// return (
// <div class="opa">
// <a-checkbox-group />
// </div>
// );
// },
},
];
return columns;
};
//清空所选
const clearLine = ()=> {
state.selectedRowKeys=[]
}
const showqdModal = () => {
state.qdModal = true;
};
@@ -632,6 +602,7 @@ export default {
onSelectChange,
showEntryScore,
tableDataFunc,
clearLine,
showqdModal,
closeqdModal,
showsingleqdModal,
@@ -654,9 +625,7 @@ export default {
}
.largeDrawerStyle {
// width: 80%;
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
@@ -665,7 +634,6 @@ export default {
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
// overflow-x: auto;
display: flex;
flex-direction: column;
height: 100%;
@@ -675,7 +643,6 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
flex-shrink: 0;
.headerTitle {
@@ -683,13 +650,9 @@ export default {
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.centermain {
// width: 100%;
// height: 100%;
// background-color: #bfa;
flex: 1;
overflow-y: auto;
margin-bottom: 75px;
@@ -721,13 +684,6 @@ export default {
margin-top: 8px;
white-space: nowrap;
}
// .name {
// margin-top: 8px;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
}
}
@@ -826,13 +782,12 @@ export default {
height: 100%;
display: flex;
justify-content: space-between;
// background-color: #bfa;
.left {
height: 100%;
display: flex;
align-items: center;
.img {
width: 14px;
width: 15px;
height: 15px;
background-image: url(../../assets/images/leveladd/gan.png);
background-size: 100% 100%;
@@ -861,18 +816,9 @@ export default {
}
}
}
.pad {
width: 96%;
height: 10px;
background-color: #fff;
position: absolute;
}
.tableBox {
// margin-bottom: 80px;
.classify {
// margin-left: 11px !important;
// padding-left: 9px !important;
padding-left: 0px !important;
}
.ant-checkbox-wrapper {
@@ -881,7 +827,6 @@ export default {
}
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
@@ -895,35 +840,13 @@ export default {
> td {
background: #f6f9fd;
}
// .opa {
// background-color: #bfa;
// }
}
// .tab {
// .ant-table-thead > tr > th {
// background-color: rgba(239, 244, 252, 1) !important;
// }
// th.h {
// background-color: #eff4fc !important;
// }
// .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
}
.btnn {
height: 72px;
width: 100%;
// position: absolute;
background-color: #fff;
// bottom: 0;
// left: 0;
display: flex;
// display: none;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
@@ -948,12 +871,6 @@ export default {
}
}
}
// .botm {
// width: 100%;
// height: 90px;
// // background-color: red;
// // flex-shrink: 1;
// }
}
}
}

View File

@@ -49,15 +49,11 @@
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,onSelect:onSelect }"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
this.getMilitaryDeployment()
@expand="expandTable"
:pagination="false"
filterMultiple:false
/>
<div class="pa">
<a-pagination
@@ -81,7 +77,7 @@
</a-drawer>
</template>
<script>
import { reactive, toRefs, onMounted } from "vue";
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexCase.js";
import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue";
@@ -106,11 +102,11 @@ export default {
},
projectId: {
type: Number,
default: null,
default: 0,
},
chooseStageId: {
type: Number,
default: null,
default: 0,
},
routerTaskId: {
type: Number,
@@ -124,7 +120,7 @@ export default {
projectTaskId: {
// 要编辑的projectId
type: Number,
default: null,
default: 0,
},
routerId: {
type: Number,
@@ -141,10 +137,12 @@ export default {
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
selectedRowKeys:[],
apiTaskList:[],
inputV1: "",
time: undefined,
assessmentId: null,
assessmentName: "",
caseId: null,
caseName: "",
});
const closeDrawer = () => {
ctx.emit("update:addcaseVisible", false);
@@ -153,6 +151,7 @@ export default {
localStorage.setItem("chapterId", props.isactive);
};
const afterVisibleChange = () => {
getAllCaseText()
};
const tableDataFunc = () => {
const columns = [
@@ -182,12 +181,14 @@ export default {
];
return columns;
};
const rowSelection = {
onSelect: (selectedRows) => {
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
},
const onSelectChange = (selectedRowKeys,selectedRows)=> {
state.selectedRowKeys = selectedRowKeys;
state.apiTaskList = selectedRows;
};
const onSelect = ( record ) => {
state.caseId = record.caseid;
state.caseName = record.title;
}
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
@@ -203,7 +204,7 @@ export default {
authorName:value.authorName,
companyId:value.companyId,
coverUrl:value.coverUrl,
caseid:value.caseid,
caseid:value.id,
title:value.title,
};
array.push(obj);
@@ -222,21 +223,19 @@ export default {
"top": true
})
.then((res) => {
let arr = res.data.data;
if (res.status === 200) {
getTableDate(arr);
getTableDate(res.data.data);
}
})
.catch(() => {
console.log('---------------------获取全部案例信息接口失败-----------------------');
});
};
const updateTask = () => {
if (props.isLevel == 1) {
RouterEditTask({
chapterId: props.isactive,
courseId: state.assessmentId,
name: state.assessmentName,
courseId: state.caseId,
name: state.caseName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 3,
@@ -251,14 +250,53 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
if(state.apiTaskList.length > 1){
// for((item,index) in state.apiTaskList){
// apiTask
// .addTask({
// "courseId": item.caseId,
// "duration": 0,
// "flag": true,
// "name": item.caseName,
// "projectId": props.projectId,
// "projectTaskId": props.projectTaskId,
// "stageId": props.chooseStageId,
// "type": 3,
// })
for(let i = 0;i <= state.apiTaskList.length;i++){
apiTask
.addTask({
courseId: state.assessmentId,
name: state.assessmentName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 3,
"courseId": state.apiTaskList[i].caseId,
"duration": 0,
"flag": true,
"name": state.apiTaskList[i].caseName,
"projectId": props.projectId,
"projectTaskId": props.projectTaskId,
"stageId": props.chooseStageId,
"type": 3,
})
.then(() => {
message.destroy()
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy()
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
}
} else {
apiTask
.addTask({
"courseId": state.caseId,
"duration": 0,
"flag": true,
"name": state.caseName,
"projectId": props.projectId,
"projectTaskId": props.projectTaskId,
"stageId": props.chooseStageId,
"type": 3,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
@@ -266,8 +304,9 @@ export default {
closeDrawer();
})
.catch(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
}
} else if (props.isLevel == 3) {
console.log("");
}
@@ -277,16 +316,13 @@ export default {
state.inputV1 = "";
getAllCaseText();
};
onMounted(() => {
// createCase();
getAllCaseText();
});
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
tableDataFunc,
rowSelection,
onSelectChange,
onSelect,
handelChangePage,
getTableDate,
updateTask,
@@ -319,6 +355,7 @@ export default {
}
}
.contentMain {
padding-right: 15px;
.main_items {
margin-top: 32px;
display: flex;

View File

@@ -52,16 +52,6 @@
选择测评
</button>
</div>
<div>
<div>
<EvList
v-model:EvalListVisible="EvalListVisible"
v-model:evaluationTypeId="evaluationTypeId"
v-model:evaluationTypeName="evaluationTypeName"
@getEvLsitDate="checkFinish"
/>
</div>
</div>
</div>
<div class="main_item">
<div class="signbox">
@@ -96,6 +86,13 @@
<button class="btn2" @click="createEvalText">确定</button>
</div>
</div>
<EvList
v-model:EvalListVisible="EvalListVisible"
@getEvLsitDate="checkFinish"
/>
<!-- v-model:evaluationTypeId="evaluationTypeId"
v-model:evaluationTypeName="evaluationTypeName" -->
<!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
<a-spin :spinning="addLoading" tip="添加中..." />
</div> -->
@@ -268,7 +265,7 @@ export default {
evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName,
};
if (props.edit) {
if (props.edit !== true) {
api
.createEvaluation(obj)
.then((res) => {

View File

@@ -199,7 +199,7 @@ export default {
closeDrawer();
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {
console.log("");

View File

@@ -59,13 +59,13 @@
<div class="mntc_left">
<div class="notice_icon"></div>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择 <span style="color: #388be1">{{ RowsNum }}</span> </span
>已选择 <span style="color: #388be1">{{ selectedRowKeys.length }}</span> </span
>
<span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>{{ tableDataTotal }}</span> </span
>
</div>
<div class="mntc_right">
<div class="mntc_right" @click="clearLine">
<span style="color: #387df7; margin-right: 24px">清空</span>
</div>
</div>
@@ -75,15 +75,15 @@
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection"
:row-selection="{
selectedRowKeys:selectedRowKeys,
onChange:onSelectChange,
onSelect:onSelected,
}"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
this.getMilitaryDeployment()
@expand="expandTable"
:pagination="false"
filterMultiple:false
/>
<div class="pa">
<a-pagination
@@ -107,7 +107,7 @@
</a-drawer>
</template>
<script>
import { reactive, toRefs, onMounted } from "vue";
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexInvist.js";
import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue";
@@ -172,7 +172,7 @@ export default {
time: undefined,
assessmentId: null,
assessmentName: "",
RowsNum: 0,
selectedRowKeys:[],
tableData: [],
currentPage: 1,
tableDataTotal: 0,
@@ -181,11 +181,11 @@ export default {
const closeDrawer = () => {
ctx.emit("update:addonlineVisible", false);
ctx.emit("update:edit", false);
// ctx.emit("changeData", false);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
const afterVisibleChange = () => {
getAllOnlineText();
};
const tableDataFunc = () => {
const columns = [
@@ -199,7 +199,6 @@ export default {
{
title: "名称",
dataIndex: "name",
// width: "30%",
key: "name",
width: "100px",
align: "left",
@@ -236,25 +235,18 @@ export default {
];
return columns;
};
const rowSelection = {
checkStrictly: false,
onSelectAll: (selected) => {
if (selected == true) {
state.RowsNum = state.tableDataTotal;
} else {
state.RowsNum = 0;
const onSelected = (record) => {
state.assessmentId = record.assessmentId;
state.assessmentName = record.name;
}
},
onSelect: (selectedRows, selected) => {
if (selected == true) {
state.RowsNum++;
} else {
state.RowsNum--;
const onSelectChange = (selectedRowKeys,b) => {
state.selectedRowKeys = selectedRowKeys
console.log(b);
}
//清空所选
const clearLine = ()=> {
state.selectedRowKeys=[]
}
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
},
};
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
@@ -265,7 +257,7 @@ export default {
let array = [];
data.map((value, index) => {
let obj = {
key: index,
key: index+1,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
@@ -305,12 +297,14 @@ export default {
type: 1,
})
.then(() => {
message.destroy()
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
})
.catch(() => {
message.destroy()
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
@@ -324,11 +318,13 @@ export default {
type: 1,
})
.then(() => {
message.destroy()
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy()
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {
@@ -340,16 +336,14 @@ export default {
state.inputV1 = "";
getAllOnlineText();
};
onMounted(() => {
// createOnline();
getAllOnlineText();
});
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
tableDataFunc,
rowSelection,
onSelected,
onSelectChange,
clearLine,
handelChangePage,
getAllOnlineText,
getTableDate,

View File

@@ -306,7 +306,7 @@
<a-spin :spinning="addLoading" tip="添加中..." />
</div>
<!-- 选择考试抽屉 -->
<s-test v-model:STvisible="STvisible"/>
<s-test v-model:STvisible="STvisible" @getSTData="getData"/>
</a-drawer>
</template>
<script>
@@ -405,6 +405,8 @@ export default {
addLoading: false,
isOuter: 1, // 是否为外部考试
STvisible:false, //选择试卷抽屉
paperId:null, //试卷id 子组件传过来给考试抽屉创建考试信息需要
paperName:"", //试卷名称 子组件传过来给考试抽屉选择试卷后框框用
choosedTestList: [
{
value: "提高核心竞争力",
@@ -748,6 +750,10 @@ export default {
);
state.choosedTestList = tags;
};
const getData = (value)=> {
state.paperId = value.paperId;
state.paperName = value.paperName;
}
return {
formState,
afterVisibleChange,
@@ -770,6 +776,7 @@ export default {
changeOuter,
chooseTest,
closeTag,
getData,
...toRefs(state),
};
},

View File

@@ -0,0 +1,161 @@
<template>
<a-modal
:visible="ASOvervisible"
:closable="closable"
centered="true"
:footer="null"
wrapClassName="AllStuOverModel"
@cancel="closeModal"
>
<div class="head">
<div class="inhead">
<div class="left">
<div class="gan"></div>
<div class="tis">提示</div>
</div>
<div class="right" @click="closeModal"></div>
</div>
</div>
<div class="main">确定将所选学员标记完成吗</div>
<div class="butn">
<button class="btn btn1" @click="closeModal">取消</button>
<button class="btn btn2" @click="check">确定</button>
</div>
</a-modal>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
props: {
ASOvervisible:{
type:Boolean,
default:false
}
},
setup(props,ctx){
const state = reactive({
closable:false,
});
const closeModal = () => {
ctx.emit("update:ASOvervisible", false);
};
const check = () => {
closeModal();
};
return{
...toRefs(state),
closeModal,
check,
}
}
};
</script>
<style lang="scss">
.AllStuOverModel {
.ant-modal {
width: 424px;
height: 258px;
.ant-modal-content {
width: 424px;
height: 258px;
.ant-modal-body {
width: 424px;
height: 258px;
padding: 0px;
.head {
width: 424px;
height: 68px;
// position: absolute;
// left: 0;
// top: 0;
background: linear-gradient(
180deg,
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
display: flex;
justify-content: center;
.inhead {
width: 90%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.gan {
width: 16px;
height: 16px;
background-image: url(../../assets/images/taskpage/gan.png);
}
.tis {
margin-left: 5px;
width: 32px;
font-size: 16px;
font-weight: 600;
color: #333333;
}
}
.right {
width: 22px;
height: 22px;
background-image: url(../../assets/images/basicinfo/close.png);
background-size: 100% 100%;
cursor: pointer;
}
}
}
.main {
margin-top: 20px;
width: 100%;
display: flex;
justify-content: center;
font-size: 14px;
font-weight: 400;
color: #333333;
}
.butn {
width: 100%;
display: flex;
margin-top: 60px;
justify-content: center;
.btn {
width: 100px;
height: 40px;
border-radius: 4px;
cursor: pointer;
}
.btn1 {
color: #387df7;
background: #ffffff;
border: 1px solid #387df7;
}
.btn2 {
background: #409eff;
color: #fff;
border: 0;
margin-left: 10px;
}
}
}
}
}
}
</style>

View File

@@ -0,0 +1,287 @@
<template>
<a-drawer
:visible="CQvisible"
class="drawerStyle CheckWork"
placement="right"
width="40%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="headersub">
<div class="headerTitle">查看答卷</div>
<img
style="width:29px;height:29px;cursor:pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="headersup"><span>评估名称<span style="color:#999ba3">管理者进阶作业</span></span><span style="margin-left:25px">考试总分<span style="color:#999ba3">100</span></span><span style="margin-left:25px">及格分<span style="color:#999ba3">60</span></span></div>
<div class="main">
<div class="basetext"><span>考试成绩</span><span>{{score}}</span></div>
<div class="basequestion">
<div class="ques" v-for=" item,index in queData" :key="index">
<div class="quename">{{ index+1 + "、" + "【" + item.quetype + "】" + item.quename }}</div>
<div class="queanswer">
<div class="queabox" v-for="items,index in item.answer" :key="index">
<div class="single" v-if="item.quetype === '判断' ">
<a-radio-group v-model:value="items.index">
<div class="queaboxs">
<a-radio
v-model:checked="checked"
:value="1"
style="margin-bottom:5px"
>
正确
</a-radio>
<a-radio
v-model:checked="checked"
:value="2"
style="margin-bottom:5px"
>
错误
</a-radio>
</div>
</a-radio-group>
<div class="analysisbox">
<div class="answer">
<span>答案</span>{{items.answercontent}}
</div>
<div class="analysis">
<span>解析</span>{{items.analysis}}
</div>
</div>
</div>
<div class="multiple" v-if="item.quetype === '多选' ">
<a-checkbox
:value="items.value">
{{items.answercontent}}
</a-checkbox>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { toRefs,reactive } from '@vue/reactivity';
export default {
name:"CheckWork",
props:{
CQvisible:{
type:Boolean,
default:false,
},
},
setup(props,ctx){
const state = reactive({
score:null, //传过来赋给score
queData:[
{
quetype:"判断",
quename:"当前项目对您是否有帮助?",
value:1,
answer:[
{
value:1,
answercontent:"错误",
analysis:"暂无解析",
},
]
},
{
quetype:"多选",
quename:"哪些项目跨年快乐memememememeemme?",
value:2,
answer:[
{
value:1,
answercontent:"A、有帮助"
},
{
value:2,
answercontent:"B、mei帮助"
},
{
value:3,
answercontent:"C、mei5155帮助"
},
{
value:4,
answercontent:"D、12345mei帮助"
}
],
answercontent:"错误",
analysis:"暂无解析",
},
{
quetype:"多选",
quename:"哪些项目跨年快乐memememememeemme?",
value:3,
answer:[
{
value:1,
answercontent:"A、有帮助"
},
{
value:2,
answercontent:"B、mei帮助"
},
{
value:3,
answercontent:"C、mei5155帮助"
},
{
value:4,
answercontent:"D、12345mei帮助"
}
]
},
{
quetype:"判断",
quename:"当前项目对您是否有帮助?",
value:4,
answer:[
{
value:1,
answercontent:"错误",
analysis:"暂无解析",
},
]
},
],
})
const closeDrawer = ()=> {
ctx.emit("update:CQvisible",false)
}
const afterVisibleChange = (bool) => {
console.log(bool);
}
return{
...toRefs(state),
closeDrawer,
afterVisibleChange,
}
}
};
</script>
<style lang="scss">
.CheckWork {
.drawerMain {
min-width: 400px;
margin: 0px 32px 0px 32px;
display: flex;
flex-direction: column;
.headersub {
height: 73px;
display: flex;
justify-content: space-between;
align-items: center;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
}
}
.headersup{
border-bottom: 1px solid #e8e8e8;
padding-bottom: 20px;
}
.main {
width: 100%;
overflow-y: auto;
margin-bottom: 70px;
.basetext{
color: #333333;
line-height: 25px;
margin-top: 27px ;
margin-bottom: 27px ;
}
.basequestion{
.ques{
.quename{
margin: 10px auto ;
font-weight: bold;
}
.queanswer{
padding-left: 25px;
.queabox{
margin-bottom: 10px;
.single{
padding: 5px;
.queaboxs{
display: flex;
flex-direction: column;
}
.analysisbox{
border: 1px solid #e8e8e8;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
border-radius: 8px;
margin-left: -10px;
padding: 5px 10px;
}
}
.multiple{
padding: 5px;
.queaboxs{
display: flex;
flex-direction: column;
}
.analysisbox{
border: 1px solid #e8e8e8;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
border-radius: 8px;
margin-left: -10px;
padding: 5px 10px;
}
}
}
}
}
}
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
background-color: #fff;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

@@ -7,26 +7,34 @@
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headersub">
<div class="headerTitle">查看投票</div>
<img
style="width:29px;height:29px;cursor:pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
<!-- <div class="suptit"><span>评估名称<span>管理者进阶投票</span></span></div> -->
</div>
<div class="headersup"><span>评估名称<span style="color:#999ba3">管理者进阶投票</span></span></div>
<div class="main">
<div class="basetext"><span>基础信息</span></div>
<div class="HW Name"><span>作业名称</span ><span style="color:#999ba3">{{""}}</span></div>
<div class="HW Need"><span>作业要求</span ><span style="color:#999ba3">{{"600"}}</span></div>
<div class="HWText">
<span>作业信息</span>
<div class="hwText">
<img src="@/assets/images/projectadd/keep.png"/>
<div class="hwName">{{"京东方商业模型.jpeg"}}</div>
<div class="op"> <span>查看</span> </div>
<div class="op"> <span>下载</span> </div>
<div class="basetext"><span>投票说明</span></div>
<div class="basequestion">
<div class="ques" v-for=" item,index in queData" :key="index">
<div class="quename">{{ index+1 +"."+ item.quename }}</div>
<div class="queanswer">
<a-radio-group v-model:value="item.value">
<div class="queaboxs" :style="{display: item.quetype ? 'flex' : 'block'}">
<div class="queabox" v-for="items,index in item.answer" :key="index">
<a-radio
v-model:checked="checked"
:value="items.value"
>
{{items.answercontent}}
</a-radio>
</div>
</div>
</a-radio-group>
</div>
</div>
</div>
</div>
@@ -50,8 +58,41 @@ export default {
},
setup(props,ctx){
const state = reactive({
valueE1:"",
queData:[
{
quetype:false,
quename:"当前项目对您是否有帮助?",
value:1,
answer:[
{
value:1,
answercontent:"有帮助"
},
{
value:2,
answercontent:"mei帮助"
}
]
},
{
quetype:true,
quename:"当前项目对您是否有帮助memememememeemme?",
value:2,
answer:[
{
value:1,
answercontent:"有帮助"
},
{
value:2,
answercontent:"mei帮助"
}
]
}
],
})
const closeDrawer = ()=> {
ctx.emit("update:CVvisible",false)
}
@@ -73,13 +114,12 @@ export default {
margin: 0px 32px 0px 32px;
display: flex;
flex-direction: column;
.header {
.headersub {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -87,34 +127,32 @@ export default {
line-height: 25px;
}
}
.headersup{
border-bottom: 1px solid #e8e8e8;
padding-bottom: 20px;
}
.main {
width: 100%;
overflow-y: auto;
margin-bottom: 70px;
.basetext{
font-size: 16px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-top: 27px ;
margin-bottom: 27px ;
}
.HW{
margin-bottom: 20px;
.basequestion{
.ques{
.quename{
margin: 10px auto ;
font-weight: bold;
}
.hwText{
display: flex;
align-items: center;
margin: 15px auto;
img{
background-size: 100% 100%;
.queanswer{
padding-left: 20px;
.queabox{
margin-bottom: 10px;
}
.hwName{
margin:auto 10px;
}
.op{
color:#388be1;
margin: auto 20px;
cursor: pointer;
}
}
}

View File

@@ -47,16 +47,10 @@
<a-table
style="border: 1px solid #f2f6fe"
:columns="columns"
:data-source="tabledata"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:row-selection="{ selectedRowKeys:selectedRowKeys,onSelect:onSelect,onChange:onSelectChange}"
/>
<div class="pa">
<a-pagination
@@ -81,7 +75,7 @@
</a-drawer>
</template>
<script>
import { reactive, toRefs, ref,onMounted } from "vue";
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexEval";
export default {
name: "EvList",
@@ -108,13 +102,13 @@
evaluationTypeId:null,
evaluationTypeName:"",
tableData: [],
});
const columns = [
selectedRowKeys:[],
columns:[
{
title: "课程编号",
width: "20%",
dataIndex: "kid",
key: "kid",
dataIndex: "quiz_code",
key: "code",
align: "center",
},
{
@@ -127,7 +121,7 @@
{
title: "备注",
width: "13%",
dataIndex: "content",
dataIndex: "theme_desc",
key: "content",
align: "center",
},
@@ -141,31 +135,31 @@
{
title: "价格",
width: "13%",
dataIndex: "price",
dataIndex: "quiz_price",
key: "price",
align: "center",
},
{
title: "可答题人数",
width: "20%",
dataIndex: "time",
dataIndex: "quiz_range",
key: "time",
align: "center",
},
];
const rowSelection = ref({
type: "radio",
checkStrictly: false,
onSelect: (selectedRows) => {
state.evaluationTypeName = selectedRows.title
state.evaluationTypeId = selectedRows.kid
},
]
});
const onSelect = (record)=> {
state.evaluationTypeName = record.title
state.evaluationTypeId = record.quiz_code
};
const onSelectChange = (selectedRowKeys)=> {
state.selectedRowKeys = selectedRowKeys
}
const closeDrawer = () => {
ctx.emit("update:EvalListVisible", false);
};
const afterVisibleChange = () => {
// getEvalList();
getAllEvalText();
};
const checkFinish =() =>{
let EvListDate = {
@@ -177,77 +171,46 @@
}
const changePagination = (page) => {
state.currentPage = page;
// getEvalList();
};
const getTableDataList = (tableData) => {
let data = tableData;
let array = [];
data.map((value) => {
let obj = {
status:value.status,
kid:value.quiz_kid,
quiz_code:value.quiz_code,
title:value.title,
price:value.quiz_price,
// key: value.studentId,
// projectId: value.projectId, //项目id
// groupId: value.groupId, //小组id
// group: value.groupName, //小组名
// studentId: value.studentId, //学生id
// currentStageId: value.currentStageId, //当前关卡id
// name: value.name, //用户名
// bum: value.userInfoBo.deptName, //部门
// gangw: value.userInfoBo.jobName, //岗位
// completeStageCnt: value.completeStageCnt, //当前完成阶段数
// totalStageCnt: value.totalStageCnt, //总阶段数
// progress: value.completeStageCnt + "/" + value.totalStageCnt,
theme_desc:value.theme_desc,
quiz_price:value.quiz_price,
quiz_range:value.quiz_range,
};
array.push(obj);
});
state.tabledata = array;
};
//个人认为此接口为查询外部测评接口
const getEvalList =(o)=>{
let obj = o || {
evaluationTypeName:state.value1
}
api
.getEvalListByName(obj).then((res) => {
console.log(res.data.data, "获取测评");
let leng = res.data.data.rows.length;
state.total = res.data.data.total;
if (leng > 0) {
let arr = res.data.data.rows;
getTableDataList(arr);
}
});
state.tableData = array;
};
//获取测评列表
const getAllEvalText = ()=> {
let objael = {
"keyword": "",
"user_id": 0
"user_id": 0,
}
api
.choiceEvaluation(objael)
.then((res) => {
state.tableData = res.data.data
getTableDataList()
getTableDataList(res.data.data)
})
.catch(()=>{
})
}
onMounted(() => {
getAllEvalText ();
});
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
getEvalList,
onSelectChange,
onSelect,
getTableDataList,
columns,
rowSelection,
checkFinish,
changePagination,
};

View File

@@ -56,11 +56,11 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" style="margin-right: 20px" @click="showopen">
<div class="btn btn1" style="margin-right: 20px" @click="godie">
<div class="img1"></div>
<div class="wz">催促学习</div>
</div>
<div class="btn btn2">
<div class="btn btn2" @click="allStuOver">
<div class="wz">批量标注完成</div>
</div>
<div class="btn btn2">
@@ -79,12 +79,12 @@
<div class="left">
<div class="img"></div>
<div class="text" style="margin-left: 10px">已选择</div>
<div class="text2">2</div>
<div class="text2">{{selectedRowKeys.length}}</div>
<div class="text"></div>
<div class="text3">列表选项总计</div>
<div class="text4">9</div>
<div class="text4">{{tabledata.length}}</div>
</div>
<div class="right">清空</div>
<div class="right" @click="clearLine">清空</div>
</div>
</div>
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
@@ -93,14 +93,12 @@
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
onSelect: onSelect,
}"
/>
<div class="pa">
@@ -117,46 +115,27 @@
</div>
</div>
<div class="btnn">
<button class="btn1" @click="ckwork()">取消</button>
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
<a-modal
:closable="closable"
v-model:visible="showmodal"
centered="true"
:footer="null"
wrapClassName="FacMa"
>
<div class="head">
<div class="inhead">
<div class="left">
<div class="gan"></div>
<div class="tis">提示</div>
</div>
<div class="right" @click="closeModal"></div>
</div>
</div>
<div class="main">确定将所选学员标记完成吗</div>
<div class="butn">
<button class="btn btn1" @click="closeModal">取消</button>
<button class="btn btn2" @click="check">确定</button>
</div>
</a-modal>
<div class="noticebox" v-show="open">
<div><img src="../../assets/images/taskpage/check.png" /></div>
<div class="notext">催促学员成功</div>
</div>
</div>
</a-drawer>
<!-- 批量标注完成 -->
<ASOver v-model:ASOvervisible="ASOvervisible" />
<!-- 录入成绩抽屉 -->
<entry-scores v-model:Evisible="Evisible" />
<!-- 查看作业抽屉 -->
<CKWork v-model:CWvisible="CWvisible"/>
<!-- 查看答卷抽屉 -->
<CQue v-model:CQvisible="CQvisible"/>
</template>
<script>
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { toRefs, reactive } from "vue";
import { message } from 'ant-design-vue';
import ASOver from "./AllStuOver.vue";
import CKWork from './CheckWork.vue'
import CQue from './CheckQue.vue'
import EntryScores from "./EntryScores.vue";
import * as api from "../../api/index";
export default {
@@ -164,6 +143,8 @@ export default {
components: {
EntryScores,
CKWork,
CQue,
ASOver,
},
props: {
Fvisible: {
@@ -184,16 +165,14 @@ export default {
const state = reactive({
Evisible: false, //录入成绩抽屉
CWvisible: false, //查看作业抽屉
CQvisible:false, //查看答卷抽屉
ASOvervisible:false, //批量标注完成弹窗
name: "",
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageNo: 1,
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
showdonemodal: false,
tableDataTotal: 0,
open: false,
selectedRowKeys: [],
projectName: "",
projectNameList: [
{
@@ -212,7 +191,19 @@ export default {
label: "已完成",
},
],
tabledata: [],
selectedRowKeys: [],
tabledata: [
{
workNum:1,
status:"已完成",
operation:"",
},
{
workNum:1,
status:"未完成",
operation:"",
}
],
tablecolumns: [
{
title: "工号",
@@ -283,8 +274,8 @@ export default {
//面授直播管理列表操作
const ListOpera = () => {
let arr = state.tabledata;
console.log(arr,'-=-=-=-=-=-=-=-=--=-==----=-=-=-');
arr.map((value) => {
if(value.status == '已完成'){
value.operation = (
<div
style={{
@@ -293,73 +284,112 @@ export default {
justifyContent: "center",
}}
>
<div
class="studentopea1"
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
onClick={() => {
state.CWvisible = true
}}
>
查看作业
</div>
<div
class="studentopea2"
</a-button>
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
onClick={() => {
console.log( "--------");
state.CQvisible = true
}}
>
查看答卷
</div>
</a-button>
</div>
);
} else {
value.operation = (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
disabled
>
查看作业
</a-button>
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
disabled
>
查看答卷
</a-button>
</div>
);
}
});
state.tabledata = arr;
console.log(state.tabledata,'++++++++++++-------------+++++++++-----------+++++++++++++++');
// state.tabledata = arr;
};
ListOpera();
const selectProjectName = (value, index) => {
console.log("value", value, index);
state.projectName = value;
};
const closeDrawer = () => {
ctx.emit("update:Fvisible", false);
};
//勾选提示框
const showModal = () => {
state.showmodal = true;
const afterVisibleChange = () => {
getManageList()
};
//关闭勾选提示框
const closeModal = () => {
state.showmodal = false;
const selectProjectName = (value) => {
state.projectName = value;
};
//点击确认
const check = () => {
closeModal();
return true;
const onSelectChange = (selectedRowKeys) => {
state.selectedRowKeys = selectedRowKeys;
};
const onSelect = (record) => {
console.log(record);
}
const allStuOver = ()=> {
state.ASOvervisible = true
}
const showEntryScore = () => {
state.Evisible = true;
};
const showdoneModal = () => {
state.showdonemodal = true;
};
const closedoneModal = () => {
state.showdonemodal = false;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
showModal();
// 判断是否点击了确认
// let result = check();
// if (result) {
// state.selectedRowKeys = selectedRowKeys;
// }
// state.selectedRowKeys = selectedRowKeys;
};
const showopen = () => {
state.open = true;
//催促学员学习
const godie = () => {
message.destroy()
message.success("催促学员成功")
};
//清空所选
const clearLine = ()=> {
state.selectedRowKeys=[]
}
//渲染列表
const getTableDate = (tableData) => {
let data = tableData
let array = []
data.map((value,index) => {
let obj = {
key : index,
workNum : value.workNum,
userName : value.userName,
deptName : value.deptName,
jobName : value.jobName,
score : value.score,
testscore : value.testscore,
status : value.status,
operation : "",
}
array.push(obj)
})
state.tabledata = array
}
//获取任务管理列表
const getManageList = () => {
let obj = {
@@ -376,12 +406,9 @@ export default {
state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize;
for (let i = 0; i < res.data.data.rows.length; i++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
getTableDate(res.data.data.rows)
})
.catch((err) => {
console.log("获取面授任务列表失败", err);
.catch(() => {
});
};
@@ -410,8 +437,7 @@ export default {
}
state.tabledata = newArr;
})
.catch((err) => {
console.log("搜索任务列表失败", err);
.catch(() => {
});
}
};
@@ -424,35 +450,18 @@ export default {
getManageList();
};
let timer;
onMounted(() => {
setTimeout(() => {
getManageList();
}, 1000);
timer = setInterval(() => {
state.open = false;
}, 3000);
});
onUnmounted(() => {
clearInterval(timer);
});
const ckwork = ()=> {
state.CWvisible = true
}
return {
...toRefs(state),
ckwork,
selectProjectName,
check,
closeDrawer,
afterVisibleChange,
onSelectChange,
showModal,
closeModal,
ListOpera, //渲染列表操作
onSelect,
allStuOver,
showEntryScore,
showdoneModal,
closedoneModal,
showopen,
godie,
clearLine,
getTableDate,
getManageList,
searchTaskList,
resetTaskList,
@@ -462,153 +471,14 @@ export default {
</script>
<style lang="scss">
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
//面授管理弹窗
.FacMa {
.ant-modal {
width: 424px;
height: 258px;
.ant-modal-content {
width: 424px;
height: 258px;
.ant-modal-body {
width: 424px;
height: 258px;
padding: 0px;
.head {
width: 424px;
height: 68px;
// position: absolute;
// left: 0;
// top: 0;
background: linear-gradient(
180deg,
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
display: flex;
justify-content: center;
.inhead {
width: 90%;
height: 100%;
display: flex;
align-items: center;
justify-content: space-between;
.left {
display: flex;
align-items: center;
.gan {
width: 16px;
height: 16px;
background-image: url(../../assets/images/taskpage/gan.png);
}
.tis {
margin-left: 5px;
width: 32px;
font-size: 16px;
font-weight: 600;
color: #333333;
}
}
.right {
width: 22px;
height: 22px;
background-image: url(../../assets/images/basicinfo/close.png);
background-size: 100% 100%;
cursor: pointer;
}
}
}
.main {
margin-top: 20px;
width: 100%;
display: flex;
justify-content: center;
font-size: 14px;
font-weight: 400;
color: #333333;
}
.butn {
width: 100%;
display: flex;
margin-top: 60px;
justify-content: center;
.btn {
width: 100px;
height: 40px;
border-radius: 4px;
cursor: pointer;
}
.btn1 {
color: #387df7;
background: #ffffff;
border: 1px solid #387df7;
}
.btn2 {
background: #409eff;
color: #fff;
border: 0;
margin-left: 10px;
}
}
}
}
}
}
//面授管理弹窗
.FaceManage {
// overflow: auto;
.drawerMain {
min-width: 550px;
margin: 0px 32px 0px 32px;
overflow-x: auto;
display: flex;
flex-direction: column;
.noticebox {
width: 240px;
height: 64px;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
position: absolute;
top: 161px;
display: flex;
align-items: center;
justify-content: center;
.notext {
color: rgba(51, 51, 51, 1);
font-size: 14px;
font-weight: 500;
margin-left: 20px;
}
}
.header {
height: 73px;
@@ -616,7 +486,6 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
@@ -624,15 +493,12 @@ export default {
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.main {
width: 100%;
height: 100%;
// background-color: #bfa;
overflow: auto;
padding-right: 10px;
.endtime {
@@ -655,14 +521,6 @@ export default {
.name {
margin-top: 8px;
}
// .name {
// margin-top: 8px;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
}
.btns {
@@ -770,7 +628,6 @@ export default {
display: flex;
justify-content: space-between;
// background-color: #bfa;
.left {
height: 100%;
display: flex;
@@ -816,9 +673,6 @@ export default {
padding: 0px !important;
// padding-left: 45px !important;
}
// .ant-pagination-prev {
// margin-bottom: 5px;
// }
.ant-pagination-item,
.ant-pagination-prev,
.ant-pagination-next,
@@ -828,7 +682,6 @@ export default {
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1) !important;
}
.ant-table-selection-column {
padding: 0 !important;
}
@@ -868,15 +721,10 @@ export default {
}
.pa {
// left: 0;
margin-top: 15px;
width: 100%;
// height: 20px;
// background-color: red;
display: flex;
justify-content: center;
// position: absolute;
// bottom: 20px;
}
}
}

View File

@@ -21,7 +21,7 @@
<div class="namecon" style="margin-right: 30px">
<div class="name">试卷名称</div>
<a-input
v-model:value="name"
v-model:value="inputPname"
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="请输入试卷名称或序号"
/>
@@ -29,7 +29,7 @@
<div class="namecon" style="margin-right: 30px">
<div class="name">创建人</div>
<a-input
v-model:value="name"
v-model:value="inputCname"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入创建人"
/>
@@ -59,11 +59,10 @@
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tabledata"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:row-selection="{selectedRowKeys:selectedRowKeys,onSelect:onSelect,onChange:onSelectChange}"
:scroll="{ x: 900 }"
@expand="expandTable"
:pagination="false"
/>
<div class="tableBox">
@@ -84,15 +83,16 @@
</div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
<button class="btn2" @click="CreatSTText()">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive, onMounted } from "vue";
import * as api from "../../api/index";
import { toRefs, reactive } from "vue";
import * as api from "../../api/indexTest";
import { message } from 'ant-design-vue';
export default {
name: "STest",
props: {
@@ -104,62 +104,72 @@
setup(props, ctx) {
const state = reactive({
name: "",
inputPname: "",
inputCname: "",
pageNo: 1,
pageSize: 10,
currentPage: 1,
tableDataTotal: 0,
projectName: "",
tabledata: [],
tableData: [],
selectedRowKeys:[],
//需要传给父亲的参数
SelectTestData:{},
});
//点击确认后执行此方法将参数传给父亲
const CreatSTText = ()=> {
ctx.emit('getSTData',state.SelectTestData)
closeDrawer()
}
const closeDrawer = () => {
ctx.emit("update:STvisible", false);
};
const afterVisibleChange = () => {
getManageList()
};
const tableDataFunc = ()=> {
{
const columns = [
{
title: "号",
dataIndex: "workNum",
key: "workNum",
width: 50,
title: "号",
dataIndex: "paperId",
key: "paperId",
width: 90,
align: "center",
className: "h head",
},
{
title: "姓名",
dataIndex: "userName",
key: "userName",
width: 50,
title: "试卷名称",
dataIndex: "testName",
key: "testName",
width: 110,
align: "center",
className: "h head",
},
{
title: "所在部门",
dataIndex: "deptName",
key: "userName",
width: 60,
title: "随机模式",
dataIndex: "paperMode",
key: "paperMode",
width: 110,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "jobName",
key: "jobName",
width: 60,
title: "创建人",
dataIndex: "sysCreateBy",
key: "sysCreateBy",
width: 90,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 100,
align: "center",
className: "h",
},
{
title: "任务状态",
dataIndex: "status",
key: "status",
width: 60,
title: "最近更新时间",
dataIndex: "sysUpdateTime",
key: "sysUpdateTime",
width: 150,
align: "center",
className: "h",
},
@@ -167,38 +177,58 @@
return columns;
}
};
const closeDrawer = () => {
ctx.emit("update:STvisible", false);
};
const onChange = (pageNumber) => {
console.log("Page: ", pageNumber);
};
const newTest = ()=> {
console.log('111');
const onSelect = (record) => {
state.SelectTestData = record
};
const onSelectChange = (selectedRowKeys) => {
state.selectedRowKeys = selectedRowKeys;
}
const newTest = ()=> {
console.log('创建考试没设计图');
}
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index+1,
sysCreateBy: value.sysCreateBy,
paperId: value.paperId,
testName:value.testName,
paperMode:value.paperMode,
sysUpdateTime: value.sysUpdateTime,
};
array.push(obj);
});
state.tableData = array;
};
//获取任务管理列表
const getManageList = () => {
let obj = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: 370,
// projectTaskId: props.projectTaskId,
status: -1,
// "keyWord": "",
// "pageIndex": 0,
// "pageSize": 0,
// "published": true,
"keyWord": "",
"orderAsc": true,
"orderFiled": "",
"pageIndex": 0,
"pageSize": 0
};
api
.taskStudentList(obj)
.queryExaminationPaper(obj)
.then((res) => {
state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize;
for (let i = 0; i < res.data.data.rows.length; i++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
getTableDate(res.data.data)
})
.catch((err) => {
console.log("获取时间任务列表失败cc", err);
.catch(() => {
message.destroy()
message.error("获取选择考试列表失败")
});
};
@@ -227,8 +257,7 @@
}
state.tabledata = newArr;
})
.catch((err) => {
console.log("搜索任务列表失败", err);
.catch(() => {
});
}
};
@@ -240,17 +269,16 @@
state.tabledata = [];
getManageList();
};
onMounted(() => {
setTimeout(() => {
getManageList();
}, 500);
});
return {
...toRefs(state),
closeDrawer,
afterVisibleChange,
getTableDate,
onSelect,
onSelectChange,
CreatSTText,
newTest,
tableDataFunc,
onMounted,
onChange,
getManageList,
searchTaskList,

View File

@@ -60,7 +60,7 @@
<div class="btnss" style="margin-top: 20px">
<div
class="btn btn1"
@click="showopen"
@click="godie"
style="margin-right: 20px; cursor: pointer"
>
<div class="img2"></div>
@@ -72,16 +72,39 @@
</div>
</div>
<div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<!-- <a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }"
:pagination="false"
/> -->
<div v-if="itemsType == 5">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tabledata"
:row-selection="{
selectedRowKeys:selectedRowKeys,
onChange:onSelectChange,
onSelect:onSelect,
}"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }"
:pagination="false"
/>
</div>
<div v-if="itemsType == 10">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900 }"
@expand="expandTable"
:pagination="false"
/>
</div>
<div class="tableBox">
<div class="pa">
<a-pagination
@@ -102,16 +125,13 @@
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
<div class="noticebox" v-show="open">
<div><img src="../../assets/images/taskpage/check.png" /></div>
<div class="notext">催促学员成功</div>
</div>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { toRefs, reactive } from "vue";
import { message } from 'ant-design-vue';
import * as api from "../../api/index";
export default {
name: "TestManage",
@@ -160,7 +180,19 @@ export default {
label: "已完成",
},
],
tabledata: [],
tabledata: [
{
workNum:1,
status:"已完成",
operation:"",
},
{
workNum:1,
status:"未完成",
operation:"",
}
],
selectedRowKeys:[],
});
const tableDataFunc = () => {
if(props.itemsType == 10){
@@ -303,11 +335,12 @@ export default {
};
//考试、测评管理列表操作
//考试管理列表操作
const ListOpera = () => {
let arr = state.tabledata;
console.log(arr,'-=-=-=-=-=-=-=-=--=-==----=-=-=-');
if(props.itemsType == 5){
arr.map((value) => {
if(value.status == '已完成'){
value.operation = (
<div
style={{
@@ -316,35 +349,89 @@ export default {
justifyContent: "center",
}}
>
<div
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
onClick={() => {
console.log(state.tabledata,'++++++++++++');
console.log('123')
}}
>
查看
</div>
</a-button>
</div>
);
});
state.tabledata = arr;
console.log(state.tabledata,'-----------');
} else {
value.operation = (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
disabled
>
查看
</a-button>
</div>
);
}
})
}
};
ListOpera();
const onSelect = (record) => {
console.log(record);
}
const onSelectChange = (selectRowKeys) => {
state.selectedRowKeys = selectRowKeys
}
const closeDrawer = () => {
ctx.emit("update:TMvisible", false);
};
const afterVisibleChange = () => {
getManageList();
};
const selectProjectName = (value, index) => {
console.log("value", value, index);
state.projectName = value;
};
const closeDrawer = () => {
ctx.emit("update:TMvisible", false);
};
const showopen = () => {
state.open = true;
//催促
const godie = () => {
message.destroy()
message.success("催促考试成功")
};
//换页
const onChange = (pageNumber) => {
console.log("Page: ", pageNumber);
};
//渲染列表
const getTableDate = (tableData) => {
let data = tableData
let array = []
data.map((item,index)=>{
let obj = {
key : index+1,
workNum : item.workNum,
userName : item.userName,
deptName : item.deptName,
jobName : item.jobName,
testNum : item.testNum,
score : item.score,
time : item.time,
status : "已完成",
operation:"",
}
array.push(obj)
})
state.tabledata = array
}
//获取任务管理列表
const getManageList = () => {
let obj = {
@@ -361,9 +448,7 @@ export default {
state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize;
for (let i = 0; i < res.data.data.rows.length; i++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
getTableDate(res.data.data.rows)
})
.catch((err) => {
console.log("获取测试任务列表失败", err);
@@ -407,28 +492,15 @@ export default {
state.tabledata = [];
getManageList();
};
let timer;
onMounted(() => {
setTimeout(() => {
getManageList();
}, 1000);
timer = setInterval(() => {
state.open = false;
}, 3000);
});
onUnmounted(() => {
clearInterval(timer);
});
return {
...toRefs(state),
selectProjectName,
closeDrawer,
afterVisibleChange,
tableDataFunc,
showopen,
onMounted,
onUnmounted,
onSelect,
onSelectChange,
godie,
onChange,
getManageList,
searchTaskList,
@@ -589,6 +661,10 @@ export default {
}
}
.tab {
.ant-table-thead{
background-color: #eff4fc !important;
}
th.h {
background-color: #eff4fc !important;
}

View File

@@ -58,7 +58,7 @@
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" @click="showopen" style="margin-right: 20px">
<div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">催促学习</div>
</div>
@@ -73,9 +73,7 @@
:columns="tableDataFunc()"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900 }"
@expand="expandTable"
:pagination="false"
/>
<div class="tableBox">
@@ -95,13 +93,9 @@
</div>
</div>
<div class="btnn">
<button class="btn1" @click="test()">取消</button>
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
<div class="noticebox" v-show="open">
<div><img src="../../assets/images/taskpage/check.png" /></div>
<div class="notext">催促学员成功</div>
</div>
<CVote v-model:CVvisible="CVvisible"/>
</div>
</a-drawer>
@@ -109,6 +103,7 @@
<script>
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import { message } from 'ant-design-vue';
import CVote from "./CheckVote.vue"
import * as api from "../../api/index";
export default {
@@ -163,7 +158,18 @@ export default {
label: "已完成",
},
],
tabledata: [],
tabledata: [
{
workNum:1,
status:"已完成",
operation:"",
},
{
workNum:2,
status:"未完成",
operation:"",
},
],
});
const tableDataFunc = ()=> {
if(
@@ -290,8 +296,8 @@ export default {
//在线投票等管理列表操作
const ListOpera = () => {
let arr = state.tabledata;
console.log(arr,'-=-=-=-=-=-=-=-=--=-==----=-=-=-');
arr.map((value) => {
if(value.status == '已完成'){
value.operation = (
<div
style={{
@@ -300,30 +306,55 @@ export default {
justifyContent: "center",
}}
>
<div
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
onClick={() => {
state.CVvisible = true;
}}
>
查看
</div>
</a-button>
</div>
);
} else {
value.operation = (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
disabled
>
查看
</a-button>
</div>
);
}
});
state.tabledata = arr;
console.log(state.tabledata,'-----------');
};
ListOpera();
const selectProjectName = (value, index) => {
console.log("value", value, index);
state.projectName = value;
};
const closeDrawer = () => {
ctx.emit("update:Tvisible", false);
};
const showopen = () => {
state.open = true;
const afterVisibleChange = () => {
getManageList();
};
const selectProjectName = (value) => {
state.projectName = value;
};
//催促
const godie = () => {
message.destroy()
message.success("催促学习成功")
};
const onChange = (pageNumber) => {
console.log("Page: ", pageNumber);
@@ -335,7 +366,6 @@ export default {
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
// projectTaskId: 370,
projectTaskId: props.projectTaskId,
status: -1,
};
@@ -349,8 +379,7 @@ export default {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
})
.catch((err) => {
console.log("获取时间任务列表失败cc", err);
.catch(() => {
});
};
@@ -391,28 +420,13 @@ export default {
state.tabledata = [];
getManageList();
};
const test = ()=> {
state.CVvisible = true
}
let timer;
onMounted(() => {
setTimeout(() => {
getManageList();
}, 500);
timer = setInterval(() => {
state.open = false;
}, 3000);
});
onUnmounted(() => {
clearInterval(timer);
});
return {
test,
...toRefs(state),
selectProjectName,
closeDrawer,
afterVisibleChange,
tableDataFunc,
showopen,
godie,
onMounted,
onUnmounted,
onChange,

View File

@@ -112,7 +112,8 @@
</template>
<script>
import { toRefs, reactive, onMounted } from "vue";
import { toRefs, reactive } from "vue";
import { message } from 'ant-design-vue';
import EHWork from "./ExportHWork.vue"
import EScore from "./ExportScore.vue"
import WorkDetail from "../drawers/WorkDetail.vue";
@@ -148,7 +149,7 @@ export default {
pageNo: 1,
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
tableDataTotal: 0,
projectName: "",
projectNameList: [
{
@@ -167,7 +168,18 @@ export default {
label: "已完成",
},
],
tabledata: [],
tabledata: [
{
workNum:1,
status:"已完成",
operation:"",
},
{
workNum:2,
status:"未完成",
operation:"",
},
],
tablecolumns: [
{
title: "工号",
@@ -238,8 +250,8 @@ export default {
//作业管理列表操作
const ListOpera = () => {
let arr = state.tabledata;
console.log(arr,'-=-=-=-=-=-=-=-=--=-==----=-=-=-');
arr.map((value) => {
if(value.status == '已完成'){
value.operation = (
<div
style={{
@@ -248,28 +260,51 @@ export default {
justifyContent: "center",
}}
>
<div
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
onClick={() => {
console.log(state.tabledata,'++++++++++++');
state.WDvisible = true;
}}
>
查看
</div>
</a-button>
</div>
);
} else {
value.operation = (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<a-button
type="link"
class="operation"
style="cursor:pointer;margin-right:10px;"
disabled
>
查看
</a-button>
</div>
);
}
});
state.tabledata = arr;
console.log(state.tabledata,'-----------');
};
ListOpera();
const selectProjectName = (value, index) => {
console.log("value", value, index);
state.projectName = value;
};
const closeDrawer = () => {
ctx.emit("update:Wvisible", false);
};
const afterVisibleChange = () => {
getManageList();
};
const selectProjectName = (value) => {
state.projectName = value;
};
const showEHWorkModal = () => {
state.exportHWorkvisible = true;
};
@@ -303,8 +338,7 @@ export default {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
})
.catch((err) => {
console.log("获取作业任务列表失败", err);
.catch(() => {
});
};
@@ -332,8 +366,9 @@ export default {
}
state.tabledata = newArr;
})
.catch((err) => {
console.log("搜索任务列表失败", err);
.catch(() => {
message.destroy()
message.error("搜索任务列表失败")
});
}
};
@@ -346,15 +381,11 @@ export default {
getManageList();
};
onMounted(() => {
setTimeout(() => {
getManageList();
}, 1000);
});
return {
...toRefs(state),
selectProjectName,
closeDrawer,
afterVisibleChange,
showEHWorkModal,
showEScoreModal,
showWorkDetail,

View File

@@ -368,8 +368,6 @@
v-for="(item, key) in value.taskList"
:key="key"
>
<!-- :style="{width:item.course==='在线'?'28px':
height:item.course==='在线'?'27px':}" -->
<div class="first">
<div class="icon">
<div
@@ -421,7 +419,6 @@
<div
:class="item.flag == true ? 'typename1' : 'typename'"
>
<!-- {{ item.classify }} -->
<span v-if="item.flag">必修</span>
<span v-else>选修</span>
</div>
@@ -477,7 +474,6 @@
style="cursor: pointer"
@click="showCodeModal"
>
<!-- 我的@click=" showCopyModal(item.type)" -->
二维码
</div>
<div
@@ -1079,16 +1075,14 @@
</div>
<!-- 时间管理抽屉 -->
<time-manage
v-model:Tvisible.sync="visible"
v-if="visible"
v-model:Tvisible="visible"
:projectTaskId="projectTaskId"
:title="showTimeText"
:itemsType="itemstype"
/>
<!-- 面授管理抽屉 -->
<face-manage
v-model:Fvisible.sync="FaceVisivle"
v-if="FaceVisivle"
v-model:Fvisible="FaceVisivle"
:projectTaskId="projectTaskId"
:title="showFaceText"
/>
@@ -1125,15 +1119,13 @@
<active-attendance v-model:AAvisible="AAvisible" :title="showkaoqinText" />
<!-- 作业管理抽屉 -->
<work-manage
v-model:Wvisible.sync="Wvisible"
v-if="Wvisible"
v-model:Wvisible="Wvisible"
:projectTaskId="projectTaskId"
:title="showWorkText"
/>
<!-- 考试管理抽屉 -->
<test-manage
v-model:TMvisible.sync="TMvisible"
v-if="TMvisible"
v-model:TMvisible="TMvisible"
:title="showTestText"
:projectTaskId="projectTaskId"
:itemsType="itemstype"
@@ -1423,45 +1415,7 @@
</a-modal>
</div>
<!-- 删除弹窗 -->
<!-- 管理二维码 -->
<a-modal
v-model:visible="copyModal"
: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 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>
<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>
<a-modal
@@ -1720,7 +1674,6 @@ import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
export default {
name: "taskPage",
components: {
// CaretRightOutlined,
TimeManage,
FaceManage,
SubsetManage,
@@ -1847,10 +1800,8 @@ export default {
Changevisible: false, //学员换组
editHs: false, //编辑弹窗
delete_hs: false, //删除弹窗
copyModal: false, //面授二维码弹窗
closeCopy: false, //面授二维码关闭图标
zhibModal: false, //直播二维码弹窗
QRtype: "", //二维码标题
huodModal: false, //活动二维码弹窗
allDelete: false, //批量删除弹窗
@@ -2308,45 +2259,6 @@ export default {
// },
// ],
// },
// {
// text: "阶段2腾飞班阶段2",
// children: [
// {
// course: "讨论",
// name: "时间管理",
// classify: "选修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 20, //完成人数
// percent: 40,
// },
// {
// course: "测评",
// name: "管理直播间",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 10, //完成人数
// percent: 20,
// },
// {
// course: "调研",
// name: "管理直播间",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 10, //完成人数
// percent: 20,
// },
// {
// course: "投票",
// name: "管理直播间",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 10, //完成人数
// percent: 20,
// },
// ],
// },
],
@@ -2620,37 +2532,6 @@ export default {
state.stugroup = false;
}
};
const showCopyModal = (itemtype) => {
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 = () => {
state.copyModal = false;
};
const showFaceIn = () => {
state.TaskFaceImpStuvisible = true;
};
@@ -3667,8 +3548,6 @@ export default {
closeModal3,
showDeleteOne,
closeDeleteOne,
showCopyModal,
closeCopyModal,
showTime,
showFace,
showSubset,
@@ -3724,7 +3603,6 @@ export default {
createG,
resetGroupName,
searchGroup,
// studentData,
cancelyou,
cancelcanyou,
changePaginationStu,
@@ -4549,121 +4427,6 @@ export default {
}
}
.facemanageModal {
.ant-modal {
width: 532px !important;
height: 428px !important;
.ant-modal-content {
width: 532px !important;
height: 428px !important;
.ant-modal-body {
width: 532px !important;
height: 428px !important;
padding: 0 !important;
.delete {
z-index: 999;
width: 532px;
height: 428px;
background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px;
// position: absolute;
// left: 50%;
// top: 10%;
// transform: translate(-50%, -50%);
.del_header {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
width: 100%;
position: relative;
.header {
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.png);
background-size: 100% 100%;
}
.close_exit {
position: absolute;
right: 42px;
cursor: pointer;
width: 20px;
height: 20px;
background-image: url(@/assets/images/coursewareManage/close.png);
background-size: 100% 100%;
}
}
.body {
width: 100%;
margin: 34px auto 56px auto;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
// background-color: red;
position: relative;
.back {
position: absolute;
top: 30px;
font-size: 12px;
font-weight: 400;
color: #666666;
}
}
.footerr {
display: flex;
justify-content: center;
align-items: center;
.onload {
color: rgba(51, 51, 51, 1);
font-size: 14px;
}
.onloadpx {
width: 80px;
height: 32px;
border: 1px solid rgba(56, 125, 247, 1);
border-radius: 4px;
color: rgba(56, 125, 247, 1);
margin-left: 20px;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
}
}
}
}
}
}
}
}
.taskpage {
width: 100%;
display: flex;

View File

@@ -5,7 +5,7 @@ module.exports = defineConfig({
port:8080,
proxy: {
"/api": {
// target: "http://192.168.100.208:30019/",
// target:"http://192.168.100.208:30001",
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
changeOrigin: true, //表示是否改变原域名
// secure: false,