mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 03:16:44 +08:00
style:增加项目管理页面
This commit is contained in:
578
src/components/drawers/project/ProjectEvalManage.vue
Normal file
578
src/components/drawers/project/ProjectEvalManage.vue
Normal file
@@ -0,0 +1,578 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="Evalvisible"
|
||||
class="drawerStyle ProjectEvalManage"
|
||||
placement="right"
|
||||
width="60%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">【测评】{{ title }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="endtime">起止时间:2022-07-21 14:00 ~ 2022-7-30 14:00</div>
|
||||
<div class="search">
|
||||
<div class="namecon" style="margin-right: 30px">
|
||||
<div class="name">姓名:</div>
|
||||
<a-input
|
||||
v-model:value="name"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</div>
|
||||
<div class="namecon" style="margin-right: 50px">
|
||||
<div class="name">任务状态:</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="projectName"
|
||||
style="width: 270px"
|
||||
placeholder="请选择"
|
||||
:options="projectNameList"
|
||||
@change="selectProjectName"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<div
|
||||
class="btn btn1"
|
||||
style="margin-right: 20px"
|
||||
@click="searchTaskList"
|
||||
>
|
||||
<div class="img1"></div>
|
||||
<div class="wz">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="resetTaskList">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnss" style="margin-top: 20px">
|
||||
<div class="btn btn1" @click="godie" style="margin-right: 20px">
|
||||
<div class="img1"></div>
|
||||
<div class="wz">催促测评</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">导出数据</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="line">
|
||||
<div class="inline">
|
||||
<div class="left">
|
||||
<div class="img"></div>
|
||||
<div class="text" style="margin-left: 10px">已选择</div>
|
||||
<div class="text2">{{ selectedRowKeys.length }}</div>
|
||||
<div class="text">项</div>
|
||||
<div class="text3">列表选项总计:</div>
|
||||
<div class="text4">{{ tableDataTotal }}条</div>
|
||||
</div>
|
||||
<div class="right" @click="clearLine">清空</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tablecolumns"
|
||||
:data-source="tabledata"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:scroll="{ x: 900 }"
|
||||
:pagination="false"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
}"
|
||||
/>
|
||||
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
v-if="tableDataTotal > 10"
|
||||
/>
|
||||
</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";
|
||||
import { message } from "ant-design-vue";
|
||||
|
||||
// import * as api from "../../../api/index";
|
||||
export default {
|
||||
name: "ProjectEvalManage",
|
||||
|
||||
props: {
|
||||
Evalvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
projectTaskId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
name: "",
|
||||
|
||||
open: false,
|
||||
projectName: null,
|
||||
projectNameList: [
|
||||
{
|
||||
id: 1,
|
||||
value: "-1",
|
||||
label: "未开始",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
value: "0",
|
||||
label: "未完成",
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
value: "1",
|
||||
label: "已完成",
|
||||
},
|
||||
],
|
||||
selectedRowKeys: [],
|
||||
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 1,
|
||||
tabledata: [
|
||||
{
|
||||
workNum: "123",
|
||||
userName: "li",
|
||||
deptName: "开发",
|
||||
jobName: "前端开发",
|
||||
submitTime: "2022-07-22 14:00:30",
|
||||
status: "已完成",
|
||||
PDFstatus: "未生成",
|
||||
},
|
||||
],
|
||||
tablecolumns: [
|
||||
{
|
||||
title: "工号",
|
||||
dataIndex: "workNum",
|
||||
key: "workNum",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "姓名",
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "所在部门",
|
||||
dataIndex: "deptName",
|
||||
key: "userName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "所在岗位",
|
||||
dataIndex: "jobName",
|
||||
key: "jobName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "提交时间",
|
||||
dataIndex: "submitTime",
|
||||
key: "submitTime",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
|
||||
{
|
||||
title: "任务状态",
|
||||
dataIndex: "status",
|
||||
key: "status",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "PDF状态",
|
||||
dataIndex: "PDFstatus",
|
||||
key: "PDFstatus",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:Evalvisible", false);
|
||||
state.name = "";
|
||||
state.projectName = "";
|
||||
state.selectedRowKeys = [];
|
||||
state.currentPage = 1;
|
||||
};
|
||||
const afterVisibleChange = (bol) => {
|
||||
if (bol == true) {
|
||||
// getManageList();
|
||||
}
|
||||
};
|
||||
const selectProjectName = (value) => {
|
||||
state.projectName = value;
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys) => {
|
||||
if (selectedRowKeys.length > 2) {
|
||||
return;
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
};
|
||||
|
||||
//催促学员学习
|
||||
const godie = () => {
|
||||
message.destroy();
|
||||
message.success("催促" + props.title + "成功");
|
||||
};
|
||||
//表头清空
|
||||
const clearLine = () => {
|
||||
state.selectedRowKeys = [];
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
onSelectChange,
|
||||
godie,
|
||||
clearLine,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ProjectEvalManage {
|
||||
.drawerMain {
|
||||
min-width: 550px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.header {
|
||||
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;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
padding-right: 10px;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 20px;
|
||||
|
||||
.namecon {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.name {
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.btns {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/courseManage/search0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url(../../../assets/images/courseManage/reset1.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnss {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/basicinfo/call.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
background-image: url(../../../assets/images/coursewareManage/export.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
margin-right: 20px;
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
border: 1px solid #c3e6fc;
|
||||
|
||||
.inline {
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.left {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background-image: url(../../../assets/images/leveladd/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #999ba3;
|
||||
}
|
||||
|
||||
.text2 {
|
||||
color: #4ea6ff;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.text3 {
|
||||
color: #999ba3;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tableBox {
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
}
|
||||
.ant-pagination-item,
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-options {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1) !important;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.head {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
|
||||
.studentopea1 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
.studentopea2 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pa {
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
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>
|
||||
587
src/components/drawers/project/ProjectExamManage.vue
Normal file
587
src/components/drawers/project/ProjectExamManage.vue
Normal file
@@ -0,0 +1,587 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="TMvisible"
|
||||
class="drawerStyle ProjectExamManage"
|
||||
placement="right"
|
||||
width="60%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">【考试】{{ title }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="endtime">起止时间:2022-07-21 14:00 ~ 2022-7-30 14:00</div>
|
||||
<div class="search">
|
||||
<div class="namecon" style="margin-right: 30px">
|
||||
<div class="name">姓名:</div>
|
||||
<a-input
|
||||
v-model:value="name"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</div>
|
||||
<div class="namecon" style="margin-right: 50px">
|
||||
<div class="name">任务状态:</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="projectName"
|
||||
style="width: 270px"
|
||||
placeholder="请选择"
|
||||
:options="projectNameList"
|
||||
@change="selectProjectName"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<div
|
||||
class="btn btn1"
|
||||
style="margin-right: 20px"
|
||||
@click="searchTaskList"
|
||||
>
|
||||
<div class="img1"></div>
|
||||
<div class="wz">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="resetTaskList">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnss" style="margin-top: 20px">
|
||||
<div class="btn btn1" @click="godie" style="margin-right: 20px">
|
||||
<div class="img1"></div>
|
||||
<div class="wz">催促考试</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">导出数据</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="line">
|
||||
<div class="inline">
|
||||
<div class="left">
|
||||
<div class="img"></div>
|
||||
<div class="text" style="margin-left: 10px">已选择</div>
|
||||
<div class="text2">{{ selectedRowKeys.length }}</div>
|
||||
<div class="text">项</div>
|
||||
<div class="text3">列表选项总计:</div>
|
||||
<div class="text4">{{ tableDataTotal }}条</div>
|
||||
</div>
|
||||
<div class="right" @click="clearLine">清空</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tablecolumns"
|
||||
:data-source="tabledata"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:scroll="{ x: 900 }"
|
||||
:pagination="false"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
}"
|
||||
/>
|
||||
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
v-if="tableDataTotal > 10"
|
||||
/>
|
||||
</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";
|
||||
import { message } from "ant-design-vue";
|
||||
|
||||
// import * as api from "../../../api/index";
|
||||
export default {
|
||||
name: "ProjectExamManage",
|
||||
|
||||
props: {
|
||||
TMvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
projectTaskId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
name: "",
|
||||
|
||||
open: false,
|
||||
projectName: null,
|
||||
projectNameList: [
|
||||
{
|
||||
id: 1,
|
||||
value: "-1",
|
||||
label: "未开始",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
value: "0",
|
||||
label: "未通过",
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
value: "1",
|
||||
label: "已通过",
|
||||
},
|
||||
],
|
||||
selectedRowKeys: [],
|
||||
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 1,
|
||||
tabledata: [
|
||||
{
|
||||
workNum: "123",
|
||||
userName: "li",
|
||||
deptName: "开发",
|
||||
jobName: "前端开发",
|
||||
score: 89,
|
||||
examNum: 1,
|
||||
comptime: "2022-07-22 14:00:30",
|
||||
status: "已完成",
|
||||
},
|
||||
],
|
||||
tablecolumns: [
|
||||
{
|
||||
title: "工号",
|
||||
dataIndex: "workNum",
|
||||
key: "workNum",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "姓名",
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "所在部门",
|
||||
dataIndex: "deptName",
|
||||
key: "userName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "所在岗位",
|
||||
dataIndex: "jobName",
|
||||
key: "jobName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "考试次数",
|
||||
dataIndex: "examNum",
|
||||
key: "examNum",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "成绩",
|
||||
dataIndex: "score",
|
||||
key: "score",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
|
||||
{
|
||||
title: "完成时间",
|
||||
dataIndex: "comptime",
|
||||
key: "comptime",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "任务状态",
|
||||
dataIndex: "status",
|
||||
key: "status",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:TMvisible", false);
|
||||
state.name = "";
|
||||
state.projectName = "";
|
||||
state.selectedRowKeys = [];
|
||||
state.currentPage = 1;
|
||||
};
|
||||
const afterVisibleChange = (bol) => {
|
||||
if (bol == true) {
|
||||
// getManageList();
|
||||
}
|
||||
};
|
||||
const selectProjectName = (value) => {
|
||||
state.projectName = value;
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys) => {
|
||||
if (selectedRowKeys.length > 2) {
|
||||
return;
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
};
|
||||
|
||||
//催促学员学习
|
||||
const godie = () => {
|
||||
message.destroy();
|
||||
message.success("催促" + props.title + "成功");
|
||||
};
|
||||
//表头清空
|
||||
const clearLine = () => {
|
||||
state.selectedRowKeys = [];
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
onSelectChange,
|
||||
godie,
|
||||
clearLine,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ProjectExamManage {
|
||||
.drawerMain {
|
||||
min-width: 550px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.header {
|
||||
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;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
padding-right: 10px;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 20px;
|
||||
|
||||
.namecon {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.name {
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.btns {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/courseManage/search0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url(../../../assets/images/courseManage/reset1.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnss {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/basicinfo/call.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
background-image: url(../../../assets/images/coursewareManage/export.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
margin-right: 20px;
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
border: 1px solid #c3e6fc;
|
||||
|
||||
.inline {
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.left {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background-image: url(../../../assets/images/leveladd/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #999ba3;
|
||||
}
|
||||
|
||||
.text2 {
|
||||
color: #4ea6ff;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.text3 {
|
||||
color: #999ba3;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tableBox {
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
}
|
||||
.ant-pagination-item,
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-options {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1) !important;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.head {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
|
||||
.studentopea1 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
.studentopea2 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pa {
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
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>
|
||||
696
src/components/drawers/project/ProjectFaceTaskManage.vue
Normal file
696
src/components/drawers/project/ProjectFaceTaskManage.vue
Normal file
@@ -0,0 +1,696 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="Fvisible"
|
||||
class="drawerStyle ProjectFaceTaskManage"
|
||||
placement="right"
|
||||
width="60%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">【面授】{{ title }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="endtime">起止时间:2022-07-21 14:00 ~ 2022-7-30 14:00</div>
|
||||
<div class="search">
|
||||
<div class="namecon" style="margin-right: 30px">
|
||||
<div class="name">姓名:</div>
|
||||
<a-input
|
||||
v-model:value="name"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</div>
|
||||
<div class="namecon" style="margin-right: 50px">
|
||||
<div class="name">任务状态:</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="projectName"
|
||||
style="width: 270px"
|
||||
placeholder="请选择"
|
||||
:options="projectNameList"
|
||||
@change="selectProjectName"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<div
|
||||
class="btn btn1"
|
||||
style="margin-right: 20px"
|
||||
@click="searchTaskList"
|
||||
>
|
||||
<div class="img1"></div>
|
||||
<div class="wz">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="resetTaskList">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnss" style="margin-top: 20px">
|
||||
<div class="btn btn1" style="margin-right: 20px" @click="godie">
|
||||
<div class="img1"></div>
|
||||
<div class="wz">催促学习</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="allStuOver">
|
||||
<div class="wz">批量标注完成</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="wz" @click="showEntryScore">批量录入成绩</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">导出数据</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="wz">导出作业</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line">
|
||||
<div class="inline">
|
||||
<div class="left">
|
||||
<div class="img"></div>
|
||||
<div class="text" style="margin-left: 10px">已选择</div>
|
||||
<div class="text2">{{ selectedRowKeys.length }}</div>
|
||||
<div class="text">项</div>
|
||||
<div class="text3">列表选项总计:</div>
|
||||
<div class="text4">{{ tableDataTotal }}条</div>
|
||||
</div>
|
||||
<div class="right" @click="clearLine">清空</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tablecolumns"
|
||||
:data-source="tabledata"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:scroll="{ x: 900 }"
|
||||
:pagination="false"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
}"
|
||||
/>
|
||||
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
v-if="tableDataTotal > 10"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2">确定</button>
|
||||
</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 } 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 {
|
||||
name: "ProjectFaceTaskManage",
|
||||
components: {
|
||||
EntryScores,
|
||||
CKWork,
|
||||
CQue,
|
||||
ASOver,
|
||||
},
|
||||
props: {
|
||||
Fvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
projectTaskId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
Evisible: false, //录入成绩抽屉
|
||||
CWvisible: false, //查看作业抽屉
|
||||
CQvisible: false, //查看答卷抽屉
|
||||
ASOvervisible: false, //批量标注完成弹窗
|
||||
name: "",
|
||||
|
||||
open: false,
|
||||
projectName: null,
|
||||
projectNameList: [
|
||||
{
|
||||
id: 1,
|
||||
value: "-1",
|
||||
label: "未开始",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
value: "0",
|
||||
label: "未完成",
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
value: "1",
|
||||
label: "已完成",
|
||||
},
|
||||
],
|
||||
selectedRowKeys: [],
|
||||
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 1,
|
||||
tabledata: [
|
||||
{
|
||||
workNum: "123",
|
||||
userName: "li",
|
||||
deptName: "开发",
|
||||
jobName: "前端开发",
|
||||
score: 89,
|
||||
exam: 98,
|
||||
testscore: 80,
|
||||
status: "已完成",
|
||||
},
|
||||
],
|
||||
tablecolumns: [
|
||||
{
|
||||
title: "工号",
|
||||
dataIndex: "workNum",
|
||||
key: "workNum",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "姓名",
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "所在部门",
|
||||
dataIndex: "deptName",
|
||||
key: "userName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "所在岗位",
|
||||
dataIndex: "jobName",
|
||||
key: "jobName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "作业成绩",
|
||||
dataIndex: "score",
|
||||
key: "score",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "考试成绩",
|
||||
dataIndex: "exam",
|
||||
key: "exam",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "评分",
|
||||
dataIndex: "testscore",
|
||||
key: "testscore",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "任务状态",
|
||||
dataIndex: "status",
|
||||
key: "status",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
dataIndex: "operation",
|
||||
key: "operation",
|
||||
width: 100,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
],
|
||||
});
|
||||
//面授直播管理列表操作
|
||||
const ListOpera = () => {
|
||||
let arr = state.tabledata;
|
||||
arr.map((value) => {
|
||||
if (value.status == "已完成") {
|
||||
value.operation = (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
}}
|
||||
>
|
||||
<a-button
|
||||
type="link"
|
||||
class="operation"
|
||||
style="cursor:pointer;margin-right:10px;"
|
||||
onClick={() => {
|
||||
state.CWvisible = true;
|
||||
}}
|
||||
>
|
||||
查看作业
|
||||
</a-button>
|
||||
<a-button
|
||||
type="link"
|
||||
class="operation"
|
||||
style="cursor:pointer;margin-right:10px;"
|
||||
onClick={() => {
|
||||
state.CQvisible = true;
|
||||
}}
|
||||
>
|
||||
查看答卷
|
||||
</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>
|
||||
);
|
||||
}
|
||||
});
|
||||
};
|
||||
ListOpera();
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:Fvisible", false);
|
||||
state.name = "";
|
||||
state.projectName = "";
|
||||
state.selectedRowKeys = [];
|
||||
state.currentPage = 1;
|
||||
};
|
||||
const afterVisibleChange = (bol) => {
|
||||
if (bol == true) {
|
||||
// getManageList();
|
||||
}
|
||||
};
|
||||
const selectProjectName = (value) => {
|
||||
state.projectName = value;
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys) => {
|
||||
if (selectedRowKeys.length > 2) {
|
||||
return;
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
};
|
||||
|
||||
const allStuOver = () => {
|
||||
state.ASOvervisible = true;
|
||||
};
|
||||
const showEntryScore = () => {
|
||||
state.Evisible = true;
|
||||
};
|
||||
//催促学员学习
|
||||
const godie = () => {
|
||||
message.destroy();
|
||||
message.success("催促" + props.title + "成功");
|
||||
};
|
||||
//表头清空
|
||||
const clearLine = () => {
|
||||
state.selectedRowKeys = [];
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
onSelectChange,
|
||||
allStuOver,
|
||||
showEntryScore,
|
||||
godie,
|
||||
clearLine,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ProjectFaceTaskManage {
|
||||
.drawerMain {
|
||||
min-width: 550px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.header {
|
||||
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;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
padding-right: 10px;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 20px;
|
||||
|
||||
.namecon {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.name {
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.btns {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/courseManage/search0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url(../../../assets/images/courseManage/reset1.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnss {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/basicinfo/call.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
background-image: url(../../../assets/images/coursewareManage/export.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
margin-right: 20px;
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
border: 1px solid #c3e6fc;
|
||||
|
||||
.inline {
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.left {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background-image: url(../../../assets/images/leveladd/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #999ba3;
|
||||
}
|
||||
|
||||
.text2 {
|
||||
color: #4ea6ff;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.text3 {
|
||||
color: #999ba3;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tableBox {
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
}
|
||||
.ant-pagination-item,
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-options {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1) !important;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.head {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
|
||||
.studentopea1 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
.studentopea2 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pa {
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
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>
|
||||
672
src/components/drawers/project/ProjectHomeWorkManage.vue
Normal file
672
src/components/drawers/project/ProjectHomeWorkManage.vue
Normal file
@@ -0,0 +1,672 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="Wvisible"
|
||||
class="drawerStyle ProjectHomeWorkManage"
|
||||
placement="right"
|
||||
width="60%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">【作业】{{ title }}</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="endtime">起止时间:2022-07-21 14:00 ~ 2022-7-30 14:00</div>
|
||||
<div class="search">
|
||||
<div class="namecon" style="margin-right: 30px">
|
||||
<div class="name">姓名:</div>
|
||||
<a-input
|
||||
v-model:value="name"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</div>
|
||||
<div class="namecon" style="margin-right: 50px">
|
||||
<div class="name">任务状态:</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="projectName"
|
||||
style="width: 270px"
|
||||
placeholder="请选择"
|
||||
:options="projectNameList"
|
||||
@change="selectProjectName"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<div
|
||||
class="btn btn1"
|
||||
style="margin-right: 20px"
|
||||
@click="searchTaskList"
|
||||
>
|
||||
<div class="img1"></div>
|
||||
<div class="wz">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="resetTaskList">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnss" style="margin-top: 20px">
|
||||
<div class="btn btn2">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">导出数据</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="wz">导出作业</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="wz" @click="showEntryScore">录入成绩</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="line">
|
||||
<div class="inline">
|
||||
<div class="left">
|
||||
<div class="img"></div>
|
||||
<div class="text" style="margin-left: 10px">已选择</div>
|
||||
<div class="text2">{{ selectedRowKeys.length }}</div>
|
||||
<div class="text">项</div>
|
||||
<div class="text3">列表选项总计:</div>
|
||||
<div class="text4">{{ tableDataTotal }}条</div>
|
||||
</div>
|
||||
<div class="right" @click="clearLine">清空</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tablecolumns"
|
||||
:data-source="tabledata"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:scroll="{ x: 900 }"
|
||||
:pagination="false"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
}"
|
||||
/>
|
||||
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
v-if="tableDataTotal > 10"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2">确定</button>
|
||||
</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 } 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 {
|
||||
name: "ProjectHomeWorkManage",
|
||||
components: {
|
||||
EntryScores,
|
||||
CKWork,
|
||||
CQue,
|
||||
ASOver,
|
||||
},
|
||||
props: {
|
||||
Wvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
projectTaskId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
Evisible: false, //录入成绩抽屉
|
||||
CWvisible: false, //查看作业抽屉
|
||||
CQvisible: false, //查看答卷抽屉
|
||||
ASOvervisible: false, //批量标注完成弹窗
|
||||
name: "",
|
||||
|
||||
open: false,
|
||||
projectName: null,
|
||||
projectNameList: [
|
||||
{
|
||||
id: 1,
|
||||
value: "-1",
|
||||
label: "未开始",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
value: "0",
|
||||
label: "未完成",
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
value: "1",
|
||||
label: "已完成",
|
||||
},
|
||||
],
|
||||
selectedRowKeys: [],
|
||||
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 1,
|
||||
tabledata: [
|
||||
{
|
||||
workNum: "123",
|
||||
userName: "li",
|
||||
deptName: "开发",
|
||||
jobName: "前端开发",
|
||||
score: 89,
|
||||
group: "-",
|
||||
comptime: "2022-07-22 14:00:30",
|
||||
status: "已完成",
|
||||
},
|
||||
],
|
||||
tablecolumns: [
|
||||
{
|
||||
title: "工号",
|
||||
dataIndex: "workNum",
|
||||
key: "workNum",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "姓名",
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
width: 50,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "所在部门",
|
||||
dataIndex: "deptName",
|
||||
key: "userName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "所在岗位",
|
||||
dataIndex: "jobName",
|
||||
key: "jobName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "所属小组",
|
||||
dataIndex: "group",
|
||||
key: "group",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "成绩",
|
||||
dataIndex: "score",
|
||||
key: "score",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
|
||||
{
|
||||
title: "完成时间",
|
||||
dataIndex: "comptime",
|
||||
key: "comptime",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "任务状态",
|
||||
dataIndex: "status",
|
||||
key: "status",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "操作",
|
||||
dataIndex: "operation",
|
||||
key: "operation",
|
||||
width: 100,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
],
|
||||
});
|
||||
//面授直播管理列表操作
|
||||
const ListOpera = () => {
|
||||
let arr = state.tabledata;
|
||||
arr.map((value) => {
|
||||
if (value.status == "已完成") {
|
||||
value.operation = (
|
||||
<div
|
||||
style={{
|
||||
display: "flex",
|
||||
alignItems: "center",
|
||||
justifyContent: "center",
|
||||
}}
|
||||
>
|
||||
<a-button
|
||||
type="link"
|
||||
class="operation"
|
||||
style="cursor:pointer;margin-right:10px;"
|
||||
onClick={() => {
|
||||
state.CWvisible = true;
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</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>
|
||||
);
|
||||
}
|
||||
});
|
||||
};
|
||||
ListOpera();
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:Wvisible", false);
|
||||
state.name = "";
|
||||
state.projectName = "";
|
||||
state.selectedRowKeys = [];
|
||||
state.currentPage = 1;
|
||||
};
|
||||
const afterVisibleChange = (bol) => {
|
||||
if (bol == true) {
|
||||
// getManageList();
|
||||
}
|
||||
};
|
||||
const selectProjectName = (value) => {
|
||||
state.projectName = value;
|
||||
};
|
||||
const onSelectChange = (selectedRowKeys) => {
|
||||
if (selectedRowKeys.length > 2) {
|
||||
return;
|
||||
}
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
};
|
||||
|
||||
const allStuOver = () => {
|
||||
state.ASOvervisible = true;
|
||||
};
|
||||
const showEntryScore = () => {
|
||||
state.Evisible = true;
|
||||
};
|
||||
//催促学员学习
|
||||
const godie = () => {
|
||||
message.destroy();
|
||||
message.success("催促" + props.title + "成功");
|
||||
};
|
||||
//表头清空
|
||||
const clearLine = () => {
|
||||
state.selectedRowKeys = [];
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
onSelectChange,
|
||||
allStuOver,
|
||||
showEntryScore,
|
||||
godie,
|
||||
clearLine,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.ProjectHomeWorkManage {
|
||||
.drawerMain {
|
||||
min-width: 550px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
overflow-x: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.header {
|
||||
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;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
padding-right: 10px;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.search {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 20px;
|
||||
|
||||
.namecon {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.name {
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.btns {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/courseManage/search0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url(../../../assets/images/courseManage/reset1.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnss {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/basicinfo/call.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
.img2 {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
background-image: url(../../../assets/images/coursewareManage/export.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
margin-right: 20px;
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
|
||||
.line {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-top: 20px;
|
||||
border: 1px solid #c3e6fc;
|
||||
|
||||
.inline {
|
||||
width: 95%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.left {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 14px;
|
||||
height: 15px;
|
||||
background-image: url(../../../assets/images/leveladd/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.text {
|
||||
color: #999ba3;
|
||||
}
|
||||
|
||||
.text2 {
|
||||
color: #4ea6ff;
|
||||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.text3 {
|
||||
color: #999ba3;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tableBox {
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
}
|
||||
.ant-pagination-item,
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-options {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1) !important;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.head {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
|
||||
.studentopea1 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
.studentopea2 {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #387df7;
|
||||
line-height: 22px;
|
||||
padding-right: 8px;
|
||||
padding-left: 8px;
|
||||
border-right: 1px solid #e9e9e9;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.pa {
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
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>
|
||||
519
src/components/drawers/project/ProjectOnlineManage.vue
Normal file
519
src/components/drawers/project/ProjectOnlineManage.vue
Normal file
@@ -0,0 +1,519 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="Tvisible"
|
||||
class="drawerStyle ProjectOnlineManage"
|
||||
placement="right"
|
||||
width="60%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">
|
||||
【{{
|
||||
itemsType === 1
|
||||
? "在线"
|
||||
: itemsType === 3
|
||||
? "案例"
|
||||
: itemsType === 6
|
||||
? "直播"
|
||||
: itemsType === 7
|
||||
? "外链"
|
||||
: itemsType === 8
|
||||
? "讨论"
|
||||
: itemsType === 9
|
||||
? "活动"
|
||||
: itemsType === 11
|
||||
? "评估"
|
||||
: "-"
|
||||
}}】{{ title }}
|
||||
</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
<div class="endtime">起止时间:2022-07-21 14:00 ~ 2022-7-30 14:00</div>
|
||||
<div class="search">
|
||||
<div class="sealeft">
|
||||
<div class="namecon" style="margin-right: 30px">
|
||||
<div class="name">姓名:</div>
|
||||
<a-input
|
||||
v-model:value="name"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</div>
|
||||
<div class="namecon" style="margin-right: 50px">
|
||||
<div class="name">任务状态:</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="projectName"
|
||||
style="width: 270px"
|
||||
placeholder="请选择"
|
||||
:options="projectNameList"
|
||||
@change="selectProjectName"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<div
|
||||
class="btn btn1"
|
||||
style="margin-right: 20px"
|
||||
@click="searchTaskList"
|
||||
>
|
||||
<div class="img1"></div>
|
||||
<div class="wz">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2" @click="resetTaskList">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnss" style="margin-top: 20px">
|
||||
<div class="btn btn1" @click="godie" style="margin-right: 20px">
|
||||
<div class="img1"></div>
|
||||
<div class="wz">催促学习</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="img2"></div>
|
||||
<div class="wz">导出数据</div>
|
||||
</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 class="tableBox">
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
:showSizeChanger="false"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="onChange"
|
||||
v-if="tableDataTotal > 10"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { toRefs, reactive, onMounted, onUnmounted } from "vue";
|
||||
import { message } from "ant-design-vue";
|
||||
// import * as api from "../../../api/index";
|
||||
export default {
|
||||
name: "ProjectOnlineManage",
|
||||
|
||||
props: {
|
||||
Tvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
title: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
projectTaskId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
itemsType: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
visible: props.Tvisible,
|
||||
name: "",
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 0,
|
||||
projectName: null,
|
||||
projectNameList: [
|
||||
{
|
||||
id: 1,
|
||||
value: "-1",
|
||||
label: "未开始",
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
value: "0",
|
||||
label: "未完成",
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
value: "1",
|
||||
label: "已完成",
|
||||
},
|
||||
],
|
||||
tabledata: [
|
||||
{
|
||||
workNum: "123",
|
||||
userName: "li",
|
||||
deptName: "开发",
|
||||
jobName: "前端开发",
|
||||
time: "2022-07-22 14:00:30",
|
||||
status: "已完成",
|
||||
},
|
||||
],
|
||||
});
|
||||
const tableDataFunc = () => {
|
||||
if (
|
||||
props.itemsType == 1 ||
|
||||
props.itemsType == 3 ||
|
||||
props.itemsType == 6 ||
|
||||
props.itemsType == 7 ||
|
||||
props.itemsType == 8 ||
|
||||
props.itemsType == 9 ||
|
||||
props.itemsType == 11
|
||||
) {
|
||||
const columns = [
|
||||
{
|
||||
title: "工号",
|
||||
dataIndex: "workNum",
|
||||
key: "workNum",
|
||||
width: 50,
|
||||
align: "center",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "姓名",
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
width: 50,
|
||||
align: "center",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "所在部门",
|
||||
dataIndex: "deptName",
|
||||
key: "deptName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "所在岗位",
|
||||
dataIndex: "jobName",
|
||||
key: "jobName",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "完成时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
width: 100,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "任务状态",
|
||||
dataIndex: "status",
|
||||
key: "status",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
];
|
||||
return columns;
|
||||
}
|
||||
};
|
||||
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:Tvisible", false);
|
||||
state.currentPage = 1;
|
||||
state.name = "";
|
||||
state.projectName = "";
|
||||
state.tabledata = [];
|
||||
};
|
||||
const afterVisibleChange = (bol) => {
|
||||
if (bol == true) {
|
||||
// getManageList();
|
||||
}
|
||||
};
|
||||
const selectProjectName = (value) => {
|
||||
state.projectName = value;
|
||||
};
|
||||
//催促
|
||||
const godie = () => {
|
||||
message.destroy();
|
||||
message.success("催促" + props.title + "成功");
|
||||
};
|
||||
const onChange = (pageNumber) => {
|
||||
console.log("Page: ", pageNumber);
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
tableDataFunc,
|
||||
godie,
|
||||
onMounted,
|
||||
onUnmounted,
|
||||
onChange,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
// .drawerStyle {
|
||||
// .ant-drawer-content-wrapper {
|
||||
// // max-width: 1000px;
|
||||
// .ant-drawer-header {
|
||||
// display: none !important;
|
||||
// }
|
||||
// .ant-drawer-body {
|
||||
// padding: 0;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
.ProjectOnlineManage {
|
||||
// overflow-x: 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;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
flex-shrink: 0;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
// background-color: red;
|
||||
margin-bottom: 20px;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
// margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
// background-color: #bfa;
|
||||
overflow-y: auto;
|
||||
padding-right: 10px;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
.search {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 20px;
|
||||
justify-content: space-between;
|
||||
|
||||
.sealeft {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
.namecon {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
margin-bottom: 10px;
|
||||
.name {
|
||||
margin-top: 8px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.btns {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.img1 {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url(../../../assets/images/courseManage/search0.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.img2 {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url(../../../assets/images/courseManage/reset1.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.btnss {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.img1 {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background-image: url(../../../assets/images/basicinfo/call.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
.img2 {
|
||||
width: 17px;
|
||||
height: 16px;
|
||||
background-image: url(../../../assets/images/coursewareManage/export.png);
|
||||
background-size: 100% 100%;
|
||||
margin-right: 7px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
background: #4ea6ff;
|
||||
|
||||
color: #ffffff;
|
||||
}
|
||||
.btn2 {
|
||||
background: #ffffff;
|
||||
|
||||
color: #4ea6ff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
.tab {
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.tableBox {
|
||||
.pa {
|
||||
// left: 0;
|
||||
margin-top: 15px;
|
||||
width: 100%;
|
||||
// height: 20px;
|
||||
// background-color: red;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
// position: absolute;
|
||||
// bottom: 20px;
|
||||
.ant-pagination-prev,
|
||||
.ant-pagination-next,
|
||||
.ant-pagination-item,
|
||||
.ant-pagination-options {
|
||||
margin-bottom: 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>
|
||||
@@ -606,26 +606,32 @@
|
||||
@click="
|
||||
item.type == '1' ||
|
||||
item.type == '3' ||
|
||||
item.type == '6' ||
|
||||
item.type == '7' ||
|
||||
item.type == '8' ||
|
||||
item.type == '9' ||
|
||||
item.type == '11' ||
|
||||
item.type == '12'
|
||||
? showTime(
|
||||
item.type == '11'
|
||||
? showOnline(
|
||||
item.name,
|
||||
item.projectTaskId,
|
||||
item.type
|
||||
)
|
||||
: item.type == '5' || item.type == '10'
|
||||
? showTest(
|
||||
: item.type == '2'
|
||||
? showFace(
|
||||
item.name,
|
||||
item.projectTaskId,
|
||||
item.type
|
||||
)
|
||||
: item.type == '2' || item.type == '6'
|
||||
? showFace(item.name, item.projectTaskId)
|
||||
: item.type == '4'
|
||||
? showWork(item.name, item.projectTaskId)
|
||||
: item.type == '5'
|
||||
? showTest(item.name, item.projectTaskId)
|
||||
: item.type == '10'
|
||||
? showEval(item.name, item.projectTaskId)
|
||||
: item.type == '12'
|
||||
? showWork(item.name, item.projectTaskId)
|
||||
: item.type == '13'
|
||||
? showWork(item.name, item.projectTaskId)
|
||||
: null
|
||||
"
|
||||
>
|
||||
@@ -1083,12 +1089,39 @@
|
||||
:title="showTimeText"
|
||||
:itemsType="itemstype"
|
||||
/>
|
||||
<!-- 在线、案例等管理抽屉 -->
|
||||
<ProjectOnlineManage
|
||||
v-model:Tvisible="onlineVisible"
|
||||
:projectTaskId="projectTaskId"
|
||||
:title="showTimeText"
|
||||
:itemsType="itemstype"
|
||||
/>
|
||||
|
||||
<!-- 面授管理抽屉 -->
|
||||
<face-manage
|
||||
<ProjectFaceTaskManage
|
||||
v-model:Fvisible="FaceVisivle"
|
||||
:projectTaskId="projectTaskId"
|
||||
:title="showFaceText"
|
||||
/>
|
||||
<!-- 作业管理抽屉 -->
|
||||
<ProjectHomeWorkManage
|
||||
v-model:Wvisible="Wvisible"
|
||||
:projectTaskId="projectTaskId"
|
||||
:title="showWorkText"
|
||||
/>
|
||||
<!-- 考试管理抽屉 -->
|
||||
<ProjectExamManage
|
||||
v-model:TMvisible="TMvisible"
|
||||
:title="showTestText"
|
||||
:projectTaskId="projectTaskId"
|
||||
/>
|
||||
<!-- 测评抽屉 -->
|
||||
<ProjectEvalManage
|
||||
v-model:Evalvisible="Evalvisible"
|
||||
:title="showTestText"
|
||||
:projectTaskId="projectTaskId"
|
||||
/>
|
||||
|
||||
<!-- 学员(小组管理)创建小组抽屉 -->
|
||||
<subset-manage v-model:Svisible="subsetVisivle" />
|
||||
<!-- 学员管理-添加学员抽屉 -->
|
||||
@@ -1129,19 +1162,7 @@
|
||||
<face-stu v-model:FSvisible="FSvisible" />
|
||||
<!-- 活动考勤抽屉 -->
|
||||
<active-attendance v-model:AAvisible="AAvisible" :title="showkaoqinText" />
|
||||
<!-- 作业管理抽屉 -->
|
||||
<work-manage
|
||||
v-model:Wvisible="Wvisible"
|
||||
:projectTaskId="projectTaskId"
|
||||
:title="showWorkText"
|
||||
/>
|
||||
<!-- 考试管理抽屉 -->
|
||||
<test-manage
|
||||
v-model:TMvisible="TMvisible"
|
||||
:title="showTestText"
|
||||
:projectTaskId="projectTaskId"
|
||||
:itemsType="itemstype"
|
||||
/>
|
||||
|
||||
<!-- 批量面授报名 -->
|
||||
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" />
|
||||
|
||||
@@ -1694,13 +1715,15 @@ import { reactive, toRefs, onMounted, watch, computed } from "vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { useRouter } from "vue-router";
|
||||
import TimeManage from "../../components/drawers/TimeManage";
|
||||
import FaceManage from "../../components/drawers/FaceManage";
|
||||
import ProjectFaceTaskManage from "../../components/drawers/project/ProjectFaceTaskManage";
|
||||
import ProjectOnlineManage from "../../components/drawers/project/ProjectOnlineManage";
|
||||
import ProjectHomeWorkManage from "../../components/drawers/project/ProjectHomeWorkManage";
|
||||
import ProjectExamManage from "../../components/drawers/project/ProjectExamManage";
|
||||
import ProjectEvalManage from "../../components/drawers/project/ProjectEvalManage";
|
||||
import SubsetManage from "../../components/drawers/SubsetManage";
|
||||
import MemberList from "../../components/drawers/MemberList";
|
||||
import ActiveAttendance from "../../components/drawers/ActiveAttendance";
|
||||
import WorkManage from "../../components/drawers/WorkManage";
|
||||
import FaceStu from "../../components/drawers/FaceStu";
|
||||
import TestManage from "../../components/drawers/TestManage";
|
||||
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
|
||||
import ImportStu from "../../components/drawers/ImportStu";
|
||||
import SeeStu from "../../components/drawers/SeeStu";
|
||||
@@ -1741,13 +1764,15 @@ export default {
|
||||
ProjectLevel,
|
||||
TrainClass,
|
||||
TimeManage,
|
||||
FaceManage,
|
||||
ProjectFaceTaskManage,
|
||||
ProjectOnlineManage,
|
||||
ProjectHomeWorkManage,
|
||||
ProjectExamManage,
|
||||
ProjectEvalManage,
|
||||
SubsetManage,
|
||||
MemberList,
|
||||
FaceStu,
|
||||
ActiveAttendance,
|
||||
WorkManage,
|
||||
TestManage,
|
||||
// StuAdd,
|
||||
ProjCheckShip,
|
||||
ImportStu,
|
||||
@@ -1879,6 +1904,7 @@ export default {
|
||||
],
|
||||
valuestu4: "学员",
|
||||
visible: false, //时间管理
|
||||
onlineVisible: false, //在线管理
|
||||
FaceVisivle: false, //面授管理
|
||||
subsetVisivle: false, //随机小组
|
||||
Lvisible: false, //组员名单
|
||||
@@ -1886,6 +1912,7 @@ export default {
|
||||
AAvisible: false, //活动考勤
|
||||
Wvisible: false, //作业管理
|
||||
TMvisible: false, //考试管理
|
||||
Evalvisible: false, //测评管理
|
||||
Stuvisible: false, //添加学员
|
||||
Importvisible: false, //导入学员
|
||||
Seevisible: false, //查看学员
|
||||
@@ -2662,17 +2689,16 @@ export default {
|
||||
const showFaceIn = () => {
|
||||
state.TaskFaceImpStuvisible = true;
|
||||
};
|
||||
//新增
|
||||
const showTime = (name, id, type) => {
|
||||
//在线、案例、外链、讨论、评估、直播、活动管理页面
|
||||
const showOnline = (name, id, type) => {
|
||||
console.log("点击管理并传了id");
|
||||
state.visible = true;
|
||||
state.onlineVisible = true;
|
||||
state.showTimeText = name;
|
||||
state.projectTaskId = id;
|
||||
state.itemstype = Number(type);
|
||||
};
|
||||
//新增
|
||||
//面授管理的抽屉
|
||||
const showFace = (name, id) => {
|
||||
//面授管理的抽屉
|
||||
// console.log("点击管理");
|
||||
state.FaceVisivle = true;
|
||||
state.showFaceText = name;
|
||||
@@ -2703,12 +2729,18 @@ export default {
|
||||
state.showWorkText = name;
|
||||
state.projectTaskId = id;
|
||||
};
|
||||
//考试、测评管理的抽屉
|
||||
const showTest = (name, id, type) => {
|
||||
//考试管理的抽屉
|
||||
const showTest = (name, id) => {
|
||||
state.TMvisible = true;
|
||||
state.showTestText = name;
|
||||
state.projectTaskId = id;
|
||||
state.itemstype = Number(type);
|
||||
};
|
||||
//测评抽屉
|
||||
const showEval = (name, id) => {
|
||||
console.log('点击测评')
|
||||
state.Evalvisible = true;
|
||||
state.showTestText = name;
|
||||
state.projectTaskId = id;
|
||||
};
|
||||
const showStuAdd = () => {
|
||||
state.Stuvisible = true;
|
||||
@@ -4066,7 +4098,7 @@ export default {
|
||||
|
||||
showDeleteOne,
|
||||
closeDeleteOne,
|
||||
showTime,
|
||||
showOnline,
|
||||
showFace,
|
||||
showSubset,
|
||||
showMemberList,
|
||||
@@ -4074,6 +4106,7 @@ export default {
|
||||
showAA,
|
||||
showWork,
|
||||
showTest,
|
||||
showEval,
|
||||
showStuAdd,
|
||||
showImportStu,
|
||||
showSeeStu,
|
||||
|
||||
Reference in New Issue
Block a user