Files
fe-manage/src/components/drawers/FaceManage.vue

778 lines
18 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<a-drawer
:visible="Fvisible"
class="drawerStyle FaceManage"
placement="right"
width="60%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">面授管理</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">
<div class="img1"></div>
<div class="wz">搜索</div>
</div>
<div class="btn btn2">
<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">
<div class="img1"></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 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">2</div>
<div class="text"></div>
<div class="text3">列表选项总计</div>
<div class="text4">9</div>
</div>
<div class="right">清空</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"
expandRowByClick="true"
:scroll="{ x: 900, y: 350 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
/>
</div>
</div>
</div>
<div class="btnn">
<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>
</a-drawer>
<!-- 录入成绩抽屉 -->
<entry-scores v-model:Evisible="Evisible" />
</template>
<script>
import { toRefs, reactive } from "vue";
import EntryScores from "./EntryScores.vue";
export default {
name: "FaceManage",
components: { EntryScores },
props: {
Fvisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
Evisible: false, //录入成绩抽屉
name: null,
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
selectedRowKeys: [],
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tabledata: [
{
key: 1,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "-",
state: "未完成",
},
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "-",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "不合格",
state: "完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "不合格",
state: "完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "不合格",
state: "完成",
},
],
tablecolumns: [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: 50,
align: "left",
className: "h head",
},
{
title: "所在部门",
dataIndex: "bum",
key: "bum",
width: 60,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gangw",
key: "gangw",
width: 60,
align: "center",
className: "h",
},
{
title: "课程成绩",
dataIndex: "score",
key: "score",
width: 60,
align: "center",
className: "h",
},
{
title: "任务状态",
dataIndex: "state",
key: "state",
width: 60,
align: "center",
className: "h",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:Fvisible", false);
};
//勾选提示框
const showModal = () => {
state.showmodal = true;
};
//关闭勾选提示框
const closeModal = () => {
state.showmodal = false;
};
//点击确认
const check = () => {
closeModal();
return true;
};
const showEntryScore = () => {
state.Evisible = true;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
showModal();
// 判断是否点击了确认
// let result = check();
// if (result) {
// state.selectedRowKeys = selectedRowKeys;
// }
// state.selectedRowKeys = selectedRowKeys;
};
return {
...toRefs(state),
selectProjectName,
check,
closeDrawer,
onSelectChange,
showModal,
closeModal,
showEntryScore,
};
},
};
</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: #388be1;
color: #fff;
border: 0;
margin-left: 10px;
}
}
}
}
}
}
//面授管理弹窗
.FaceManage {
// overflow: auto;
.drawerMain {
min-width: 550px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
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: auto;
.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;
}
// .name {
// margin-top: 8px;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
}
.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: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
}
}
}
.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/courseManage/search0.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: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
margin-right: 20px;
color: #388be1;
border: 1px solid #388be1;
}
}
.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;
// background-color: #bfa;
.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;
// padding-left: 45px !important;
}
// .ant-pagination-prev {
// margin-bottom: 5px;
// }
.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;
}
.pa {
// left: 0;
margin-top: 15px;
width: 100%;
// height: 20px;
// background-color: red;
display: flex;
justify-content: center;
// position: absolute;
// bottom: 20px;
}
}
}
.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>