mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 20:06:47 +08:00
添案例接口添多数据情况批量标记弹窗封装新增查答卷查投票抽屉考勤面管添在线注释及清空考和测管内容判断
This commit is contained in:
@@ -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
19
src/api/indexTest.js
Normal 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',
|
||||
}
|
||||
});
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -199,7 +199,7 @@ export default {
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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),
|
||||
};
|
||||
},
|
||||
|
||||
161
src/components/drawers/AllStuOver.vue
Normal file
161
src/components/drawers/AllStuOver.vue
Normal 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>
|
||||
287
src/components/drawers/CheckQue.vue
Normal file
287
src/components/drawers/CheckQue.vue
Normal 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>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user