Merge branch 'master' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage

This commit is contained in:
dongwug
2022-10-18 18:32:23 +08:00
9 changed files with 3707 additions and 993 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -5,6 +5,7 @@ body {
padding: 0; padding: 0;
// overflow-y: auto; // overflow-y: auto;
} }
//隐藏滚动条---------------------------------------------------------------- //隐藏滚动条----------------------------------------------------------------
// div::-webkit-scrollbar { // div::-webkit-scrollbar {
// display: none !important; // display: none !important;
@@ -38,201 +39,245 @@ body {
// } // }
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 6px; /*对垂直流动条有效*/ width: 6px;
height: 6px; /*对水平流动条有效*/ /*对垂直流动条有效*/
} height: 6px;
/*对水平流动条有效*/
}
/*定义滚动条的轨道颜色、内阴影及圆角*/ /*定义滚动条的轨道颜色、内阴影及圆角*/
::-webkit-scrollbar-track{ ::-webkit-scrollbar-track {
background-color: rgba(239, 244, 252, 1); background-color: rgba(239, 244, 252, 1);
border-radius: 6px; border-radius: 6px;
} }
/*定义滑块颜色、内阴影及圆角*/ /*定义滑块颜色、内阴影及圆角*/
::-webkit-scrollbar-thumb{ ::-webkit-scrollbar-thumb {
border-radius: 3px; border-radius: 3px;
background-color: rgba(78, 166, 255, 1); background-color: rgba(78, 166, 255, 1);
} }
/*定义两端按钮的样式*/ /*定义两端按钮的样式*/
::-webkit-scrollbar-button { ::-webkit-scrollbar-button {
background-color:cyan; background-color: cyan;
display: none; display: none;
} }
/*定义右下角汇合处的样式*/
::-webkit-scrollbar-corner {
background: rgba(239, 244, 252, 1);
;
}
/*定义右下角汇合处的样式*/
::-webkit-scrollbar-corner {
background:rgba(239, 244, 252, 1);;
}
//隐藏滚动条---------------------------------------------------------------- //隐藏滚动条----------------------------------------------------------------
//禁止选中---------------------------------------------------------- //禁止选中----------------------------------------------------------
*{ * {
-webkit-touch-callout:none; /*系统默认菜单被禁用*/ -webkit-touch-callout: none;
-webkit-user-select:none; /*webkit浏览器*/ /*系统默认菜单被禁用*/
-khtml-user-select:none; /*早期浏览器*/ -webkit-user-select: none;
-moz-user-select:none;/*火狐*/ /*webkit浏览器*/
-ms-user-select:none; /*IE10*/ -khtml-user-select: none;
user-select:none; /*早期浏览器*/
} -moz-user-select: none;
input{ /*火狐*/
-webkit-user-select:auto; /*webkit浏览器*/ -ms-user-select: none;
} /*IE10*/
textarea{ user-select: none;
-webkit-user-select:auto; /*webkit浏览器*/ }
}
input {
-webkit-user-select: auto;
/*webkit浏览器*/
}
textarea {
-webkit-user-select: auto;
/*webkit浏览器*/
}
//禁止选中---------------------------------------------------------- //禁止选中----------------------------------------------------------
// 下拉框---------------------------------------------------------- // 下拉框----------------------------------------------------------
.select .ant-select-selector{ .select .ant-select-selector {
height: 40px !important;
border-radius: 8px !important;
border: 1px solid #C7CBD2 !important;
}
.select .ant-select-selector .ant-select-selection-search-input{
height: 40px !important;
}
.select .ant-select-selection-item,.select .ant-select-selection-placeholder{
line-height: 40px !important;
}
//日期选择框
.select .ant-picker{
height: 40px !important; height: 40px !important;
border-radius: 8px !important; border-radius: 8px !important;
border: 1px solid #C7CBD2 !important; border: 1px solid #C7CBD2 !important;
} }
.select .ant-select-selector .ant-select-selection-search-input {
height: 40px !important;
}
.select .ant-select-selection-item,
.select .ant-select-selection-placeholder {
line-height: 40px !important;
}
//日期选择框
.select .ant-picker {
height: 40px !important;
border-radius: 8px !important;
border: 1px solid #C7CBD2 !important;
}
// 下拉框---------------------------------------------------------- // 下拉框----------------------------------------------------------
// 表格--------------------------------- // 表格---------------------------------
.tableBox{ .tableBox {
.ant-table-row .ant-table-cell{ .ant-table-row .ant-table-cell {
height: 48px ; height: 48px;
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #4F5156; color: #4F5156;
line-height: 36px; line-height: 36px;
padding:0px ; padding: 0px;
// overflow: hidden; // overflow: hidden;
} }
.ant-table-row-expand-icon{
.ant-table-row-expand-icon {
top: 3px !important; top: 3px !important;
float:none; float: none;
position: relative; position: relative;
// left: 50px; // left: 50px;
// display: inline-block; // display: inline-block;
} }
.ant-pagination-item-link { .ant-pagination-item-link {
border-radius: 8px !important; border-radius: 8px !important;
} }
.ant-pagination-item { .ant-pagination-item {
border-radius: 8px !important; border-radius: 8px !important;
a { a {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #818a92; color: #818a92;
} }
} }
.ant-pagination-item-active { .ant-pagination-item-active {
background-color: rgba(64, 158, 255, 1); background-color: rgba(64, 158, 255, 1);
a { a {
color: rgba(255, 255, 255, 1); color: rgba(255, 255, 255, 1);
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
} }
} }
.ant-select-selection-item { .ant-select-selection-item {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #818a92; color: #818a92;
} }
.ant-pagination-options-quick-jumper { .ant-pagination-options-quick-jumper {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #818a92; color: #818a92;
} }
.ant-pagination-options { .ant-pagination-options {
// .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{ // .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{
// font-size: 14px; // font-size: 14px;
// font-weight: 400; // font-weight: 400;
// color: #818a92; // color: #818a92;
// } // }
.ant-select-single.ant-select-open .ant-select-selection-item{ .ant-select-single.ant-select-open .ant-select-selection-item {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #818a92; color: #818a92;
} }
.ant-select:not(.ant-select-customize-input) .ant-select-selector{
.ant-select:not(.ant-select-customize-input) .ant-select-selector {
border-radius: 8px !important; border-radius: 8px !important;
} }
.ant-select-selection-item{
.ant-select-selection-item {
padding-right: 0px !important; padding-right: 0px !important;
} }
.ant-select-arrow{
.ant-select-arrow {
display: none; display: none;
} }
.ant-select-dropdown{
display: none; .ant-select-dropdown {
display: none;
} }
} }
} }
// 表格--------------------------------- // 表格---------------------------------
//表格下拉框------------------------------------------- //表格下拉框-------------------------------------------
.tableSelect { .tableSelect {
margin-left: 21px; margin-left: 21px;
display: inline-block; display: inline-block;
.ant-select:not(.ant-select-customize-input)
.ant-select-selector .ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {
.ant-select-selection-search-input {
background-color: rgba(255, 255, 255, 0); background-color: rgba(255, 255, 255, 0);
border: none; border: none;
} }
.ant-select:not(.ant-select-customize-input) .ant-select-selector { .ant-select:not(.ant-select-customize-input) .ant-select-selector {
background-color: rgba(255, 255, 255, 0); background-color: rgba(255, 255, 255, 0);
border: none; border: none;
} }
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector { .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
padding: 0; padding: 0;
} }
.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input)
.ant-select-selector { .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {
box-shadow: none; box-shadow: none;
} }
.ant-select-arrow { .ant-select-arrow {
right: 0px; right: 0px;
color: rgba(0, 0, 0, 0.8); color: rgba(0, 0, 0, 0.8);
font-size: 14px; font-size: 14px;
line-height: 36px; line-height: 36px;
// top: 17px; // top: 17px;
top:14px; top: 14px;
} }
.ant-select-selection-item { .ant-select-selection-item {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #4ea6ff; color: #4ea6ff;
line-height: 36px; line-height: 36px;
} }
.ant-select-single.ant-select-open .ant-select-selection-item{
.ant-select-single.ant-select-open .ant-select-selection-item {
color: #4ea6ff; color: #4ea6ff;
} }
} }
.tabledropdown { .tabledropdown {
width: 100px !important; width: 100px !important;
} }
//表格下拉框------------------------------------------- //表格下拉框-------------------------------------------
//抽屉-------------------------------------------------------- //抽屉--------------------------------------------------------
.drawerStyle { .drawerStyle {
.ant-drawer-content-wrapper { .ant-drawer-content-wrapper {
max-width: 1050px; max-width: 1050px;
.ant-drawer-header { .ant-drawer-header {
display: none !important; display: none !important;
} }
.ant-drawer-body { .ant-drawer-body {
padding: 0; padding: 0;
} }
} }
.drawerMain { .drawerMain {
min-width: 700px; min-width: 700px;
margin: 0px 32px 0px 32px; margin: 0px 32px 0px 32px;
@@ -240,17 +285,46 @@ display: none;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
.contentMain { .contentMain {
flex: 1; flex: 1;
overflow-y: scroll; overflow-y: scroll;
} }
}} }
//抽屉-------------------------------------------------------- }
//弹窗-------------------------------------------------------- //抽屉--------------------------------------------------------
.modalStyle {
//大型抽屉
.largeDrawerStyle {
.ant-drawer-content-wrapper {
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 700px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
}
}
//大型抽屉
//弹窗--------------------------------------------------------
.modalStyle {
height: 100%; height: 100%;
.ant-modal { .ant-modal {
height: calc(100% - 200px); height: calc(100% - 200px);
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
@@ -258,31 +332,35 @@ display: none;
min-width: 900px; min-width: 900px;
max-width: 1300px; max-width: 1300px;
padding: 0; padding: 0;
.ant-modal-content { .ant-modal-content {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.ant-modal-body { .ant-modal-body {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.ant-modal-header { .ant-modal-header {
display: none; display: none;
} }
.ant-modal-body { .ant-modal-body {
padding: 0px; padding: 0px;
} }
.modalHeader { .modalHeader {
width: 100%; width: 100%;
height: 68px; height: 68px;
background: linear-gradient( background: linear-gradient(0deg,
0deg,
rgba(78, 166, 255, 0) 0%, rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100% rgba(78, 166, 255, 0.2) 100%);
);
} }
.modalMain { .modalMain {
height: 0px; height: 0px;
flex: 1 1 auto; flex: 1 1 auto;
@@ -293,5 +371,6 @@ display: none;
} }
} }
} }
//弹窗--------------------------------------------------------
//弹窗--------------------------------------------------------

View File

@@ -0,0 +1,734 @@
<template>
<a-drawer
:visible="AAvisible"
class="largeDrawerStyle"
placement="right"
width="80%"
@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="titl">
<div class="endtime">
起止时间2022-07-21 14:00 2022-7-30 14:00
</div>
<div class="endtime" style="margin-left: 64px">签到时间14:00</div>
<div class="endtime" style="margin-left: 40px">签退时间21:00</div>
</div>
<div class="search">
<div class="leftchoose">
<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: 30px">
<div class="name">考勤</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 160px"
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</div>
<div class="namecon">
<div class="name">签到状态</div>
<div class="select">
<a-select
v-model:value="projectName2"
style="width: 160px"
placeholder="请选择"
:options="projectNameList2"
@change="selectProjectName2"
allowClear
showSearch
></a-select>
</div>
</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">
<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="pad"></div> -->
<div class="tableBox" style="margin-top: 30px">
<a-table
style="border: 1px solid #f2f6fe"
: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>
<div class="botm"></div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "ActiveAttendance",
props: {
AAvisible: {
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: "项目四",
},
],
projectNameList2: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tableData: [
{
key: 1,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "-",
jin: "-",
time: "缺勤",
state: "异常",
},
{
key: 2,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "-",
time: "签到",
state: "正常",
},
{
key: 3,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 4,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 5,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 6,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 8,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "请假",
state: "正常",
},
],
options: [
{
label: "Apple",
value: "Apple",
},
{
label: "Pear",
value: "Pear",
},
{
label: "Orange",
value: "Orange",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const selectProjectName2 = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:AAvisible", false);
};
const showEntryScore = () => {
state.Evisible = true;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
const tableDataFunc = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 50,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
return (
<div class="racona">
<span> {text.record.name}</span>
</div>
);
},
},
{
title: "所在部门",
dataIndex: "com",
// width: "30%",
key: "com",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gang",
key: "gang",
width: 50,
align: "center",
className: "h",
},
{
title: "签到时间",
dataIndex: "cur",
key: "cur",
width: 110,
align: "center",
className: "h",
},
{
title: "签退时间",
dataIndex: "jin",
key: "jin",
width: 110,
align: "center",
className: "h",
},
{
title: "考勤",
dataIndex: "time",
key: "time",
width: 50,
align: "center",
className: "h",
},
{
title: "签到状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 210,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<a-checkbox-group />
</div>
);
},
},
];
return columns;
};
return {
...toRefs(state),
selectProjectName,
selectProjectName2,
closeDrawer,
onSelectChange,
showEntryScore,
tableDataFunc,
};
},
};
</script>
<style lang="scss" >
.me {
.ant-modal-body {
padding: 0px;
}
}
.largeDrawerStyle {
// width: 80%;
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 600px;
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-y: auto;
.titl {
display: flex;
.endtime {
font-size: 16px;
font-weight: 500;
color: #333333;
}
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
justify-content: space-between;
.leftchoose {
display: flex;
margin-right: 20px;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
white-space: nowrap;
}
// .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;
margin-right: 20px;
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;
}
}
}
.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 {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> 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;
// }
// }
}
}
// .botm {
// width: 100%;
// height: 100%;
// background-color: red;
// // flex-shrink: 1;
// }
.btnn {
height: 72px;
width: 100%;
position: absolute;
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>

View File

@@ -0,0 +1,338 @@
<template>
<a-drawer
:visible="Evisible"
class="drawerStyle EntryScores"
placement="right"
width="50%"
@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="isGood">
<div class="sta"></div>
<div class="cj">成绩</div>
<div class="ch">
<a-radio-group v-model:value="value">
<a-radio :value="1">合格</a-radio>
<a-radio :value="2">不合格</a-radio>
</a-radio-group>
</div>
</div>
<div class="score">
<div class="sleft">
<div class="sta"></div>
<div class="cj">得分</div>
<a-input
v-model:value="score"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-left: 15px;
"
placeholder="请输入分数"
/>
</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";
export default {
name: "EntryScores",
props: {
Evisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
value: 1, //成绩是否合格的单选
score: null, //录入的成绩
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tabledata: [
{
key: 1,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "-",
state: "未完成",
},
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
],
tablecolumns: [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: 50,
align: "center",
className: "h",
},
{
title: "所在部门",
dataIndex: "bum",
key: "bum",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gangw",
key: "gangw",
width: 50,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 50,
align: "center",
className: "h",
},
{
title: "任务状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:Evisible", false);
};
return {
...toRefs(state),
selectProjectName,
closeDrawer,
};
},
};
</script>
<style scoped lang="scss" >
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
.EntryScores {
.drawerMain {
min-width: 600px;
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%;
.sta {
width: 10px;
height: 10px;
background-image: url(../../assets/images/basicinfo/asterisk.png);
background-size: 100%;
}
.cj {
font-size: 16px;
font-weight: 400;
color: rgba(0, 0, 0, 0.85);
margin-left: 6px;
}
// background-color: #bfa;
// overflow-y: auto;
.isGood {
display: flex;
align-items: center;
.ch {
margin-top: 2.5px;
margin-left: 15px;
}
}
.score {
display: flex;
margin-top: 30px;
.sleft {
display: flex;
align-items: center;
}
}
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
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>

View File

@@ -1,7 +1,7 @@
<template> <template>
<a-drawer <a-drawer
:visible="Fvisible" :visible="Fvisible"
class="drawerStyle" class="drawerStyle FaceManage"
placement="right" placement="right"
width="60%" width="60%"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
@@ -60,7 +60,7 @@
<div class="wz">批量标注完成</div> <div class="wz">批量标注完成</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2">
<div class="wz">批量录入成绩</div> <div class="wz" @click="showEntryScore">批量录入成绩</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2">
<div class="img2"></div> <div class="img2"></div>
@@ -80,7 +80,7 @@
<div class="right">清空</div> <div class="right">清空</div>
</div> </div>
</div> </div>
<div class="tab" style="margin-top: 20px; margin-bottom: 100px"> <div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
<a-table <a-table
style="border: 1px solid #f2f6fe" style="border: 1px solid #f2f6fe"
:columns="tablecolumns" :columns="tablecolumns"
@@ -113,14 +113,42 @@
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
<a-modal
:closable="closable"
v-model:visible="showmodal"
centered="true"
:footer="null"
dialogClass="me"
style="width: 424px; height: 258px; padding: 0px; position: relative"
>
<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> </div>
</a-drawer> </a-drawer>
<!-- 录入成绩抽屉 -->
<entry-scores v-model:Evisible="Evisible" />
</template> </template>
<script> <script>
import { toRefs, reactive } from "vue"; import { toRefs, reactive } from "vue";
import EntryScores from "./EntryScores.vue";
export default { export default {
name: "FaceManage", name: "FaceManage",
components: { EntryScores },
props: { props: {
Fvisible: { Fvisible: {
type: Boolean, type: Boolean,
@@ -130,7 +158,10 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
Evisible: false, //录入成绩抽屉
name: null, name: null,
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
@@ -245,14 +276,14 @@ export default {
dataIndex: "name", dataIndex: "name",
key: "name", key: "name",
width: 50, width: 50,
align: "center", align: "left",
className: "h", className: "h head",
}, },
{ {
title: "所在部门", title: "所在部门",
dataIndex: "bum", dataIndex: "bum",
key: "bum", key: "bum",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -260,7 +291,7 @@ export default {
title: "所在岗位", title: "所在岗位",
dataIndex: "gangw", dataIndex: "gangw",
key: "gangw", key: "gangw",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -268,7 +299,7 @@ export default {
title: "课程成绩", title: "课程成绩",
dataIndex: "score", dataIndex: "score",
key: "score", key: "score",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -276,7 +307,7 @@ export default {
title: "任务状态", title: "任务状态",
dataIndex: "state", dataIndex: "state",
key: "state", key: "state",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -288,31 +319,158 @@ export default {
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Fvisible", false); 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) => { const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys); console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys; showModal();
// 判断是否点击了确认
// let result = check();
// if (result) {
// state.selectedRowKeys = selectedRowKeys;
// }
// state.selectedRowKeys = selectedRowKeys;
}; };
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
check,
closeDrawer, closeDrawer,
onSelectChange, onSelectChange,
showModal,
closeModal,
showEntryScore,
}; };
}, },
}; };
</script> </script>
<style scoped lang="scss" > <style lang="scss" >
.drawerStyle { .me {
.ant-drawer-content-wrapper { .ant-modal-body {
// max-width: 1000px; padding: 0px;
.ant-drawer-header {
display: none !important;
} }
.ant-drawer-body { }
padding: 0; .ant-modal {
width: 424px !important;
height: 258px !important;
.ant-modal-content {
width: 424px !important;
height: 258px !important;
.ant-modal-body {
width: 424px !important;
height: 258px !important;
padding: 0px !important;
.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;
}
}
}
}
}
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
.FaceManage {
.drawerMain { .drawerMain {
min-width: 600px; min-width: 600px;
margin: 0px 32px 0px 32px; margin: 0px 32px 0px 32px;
@@ -355,6 +513,9 @@ export default {
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
margin-bottom: 10px; margin-bottom: 10px;
.name {
margin-top: 8px;
}
// .name { // .name {
// margin-top: 8px; // margin-top: 8px;
@@ -493,15 +654,23 @@ export default {
} }
} }
} }
.tab { .tableBox {
.ant-table-thead > tr > th { .ant-table-selection-column {
background-color: rgba(239, 244, 252, 1); padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1) !important;
}
.ant-table-selection-column {
padding: 0 !important;
} }
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
.head {
padding-left: 0px !important;
}
.ant-table-tbody .ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected) > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td { > td {

View File

@@ -0,0 +1,738 @@
<template>
<a-drawer
:visible="FSvisible"
class="largeDrawerStyle"
placement="right"
width="80%"
@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="titl">
<div class="endtime">
起止时间2022-07-21 14:00 2022-7-30 14:00
</div>
<div class="endtime" style="margin-left: 64px">签到时间14:00</div>
<div class="endtime" style="margin-left: 40px">签退时间21:00</div>
</div>
<div class="search">
<div class="leftchoose">
<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: 30px">
<div class="name">考勤</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 160px"
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</div>
<div class="namecon">
<div class="name">签到状态</div>
<div class="select">
<a-select
v-model:value="projectName2"
style="width: 160px"
placeholder="请选择"
:options="projectNameList2"
@change="selectProjectName2"
allowClear
showSearch
></a-select>
</div>
</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="pad"></div> -->
<div class="tableBox" style="margin-top: 30px">
<a-table
style="border: 1px solid #f2f6fe"
: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>
<div class="botm"></div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "FaceManage",
props: {
FSvisible: {
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: "项目四",
},
],
projectNameList2: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tableData: [
{
key: 1,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "-",
jin: "-",
time: "缺勤",
state: "异常",
},
{
key: 2,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "-",
time: "签到",
state: "正常",
},
{
key: 3,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 4,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 5,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 6,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 8,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "请假",
state: "正常",
},
],
options: [
{
label: "Apple",
value: "Apple",
},
{
label: "Pear",
value: "Pear",
},
{
label: "Orange",
value: "Orange",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const selectProjectName2 = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:FSvisible", false);
};
const showEntryScore = () => {
state.Evisible = true;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
const tableDataFunc = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 50,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
return (
<div class="racona">
<span> {text.record.name}</span>
</div>
);
},
},
{
title: "所在部门",
dataIndex: "com",
// width: "30%",
key: "com",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gang",
key: "gang",
width: 50,
align: "center",
className: "h",
},
{
title: "签到时间",
dataIndex: "cur",
key: "cur",
width: 110,
align: "center",
className: "h",
},
{
title: "签退时间",
dataIndex: "jin",
key: "jin",
width: 110,
align: "center",
className: "h",
},
{
title: "考勤",
dataIndex: "time",
key: "time",
width: 50,
align: "center",
className: "h",
},
{
title: "签到状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 210,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<a-checkbox-group />
</div>
);
},
},
];
return columns;
};
return {
...toRefs(state),
selectProjectName,
selectProjectName2,
closeDrawer,
onSelectChange,
showEntryScore,
tableDataFunc,
};
},
};
</script>
<style lang="scss" >
.me {
.ant-modal-body {
padding: 0px;
}
}
.largeDrawerStyle {
// width: 80%;
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 600px;
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-y: auto;
.titl {
display: flex;
.endtime {
font-size: 16px;
font-weight: 500;
color: #333333;
}
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
justify-content: space-between;
.leftchoose {
display: flex;
margin-right: 20px;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
white-space: nowrap;
}
// .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;
}
}
}
.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 {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> 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;
// }
// }
}
}
// .botm {
// width: 100%;
// height: 100%;
// background-color: red;
// // flex-shrink: 1;
// }
.btnn {
height: 72px;
width: 100%;
position: absolute;
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>

View File

@@ -1,14 +1,14 @@
<template> <template>
<a-drawer <a-drawer
:visible="Tvisible" :visible="Tvisible"
class="drawerStyle" class="drawerStyle TimeManage"
placement="right" placement="right"
width="60%" width="60%"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">在线时间管理</div> <div class="headerTitle">在线时间管理</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -18,6 +18,7 @@
<div class="main"> <div class="main">
<div class="endtime">起止时间2022-07-21 14:00 2022-7-30 14:00</div> <div class="endtime">起止时间2022-07-21 14:00 2022-7-30 14:00</div>
<div class="search"> <div class="search">
<div class="sealeft">
<div class="namecon" style="margin-right: 30px"> <div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div> <div class="name">姓名</div>
<a-input <a-input
@@ -40,6 +41,7 @@
></a-select> ></a-select>
</div> </div>
</div> </div>
</div>
<div class="btns"> <div class="btns">
<div class="btn btn1" style="margin-right: 20px"> <div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div> <div class="img1"></div>
@@ -272,17 +274,19 @@ export default {
}; };
</script> </script>
<style scoped lang="scss" > <style lang="scss" >
.drawerStyle { // .drawerStyle {
.ant-drawer-content-wrapper { // .ant-drawer-content-wrapper {
// max-width: 1000px; // // max-width: 1000px;
.ant-drawer-header { // .ant-drawer-header {
display: none !important; // display: none !important;
} // }
.ant-drawer-body { // .ant-drawer-body {
padding: 0; // padding: 0;
} // }
} // }
// }
.TimeManage {
.drawerMain { .drawerMain {
min-width: 600px; min-width: 600px;
margin: 0px 32px 0px 32px; margin: 0px 32px 0px 32px;
@@ -320,18 +324,18 @@ export default {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 20px; margin-top: 20px;
justify-content: space-between;
.sealeft {
display: flex;
.namecon { .namecon {
display: flex; display: flex;
flex-wrap: nowrap; flex-wrap: nowrap;
margin-bottom: 10px; margin-bottom: 10px;
// .name { .name {
// margin-top: 8px; margin-top: 8px;
}
// color: rgba(0, 0, 0, 0.85); }
// font-size: 14px;
// font-weight: 400;
// }
} }
.btns { .btns {
display: flex; display: flex;

View File

@@ -0,0 +1,482 @@
<template>
<a-drawer
:visible="Wvisible"
class="drawerStyle WorkManage"
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="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: 160px"
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</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>
<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: 500 }"
@expand="expandTable"
:pagination="false"
/>
</div>
</div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "WorkManage",
props: {
Wvisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
name: null,
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tabledata: [
{
key: 1,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "-",
state: "未完成",
},
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
],
tablecolumns: [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: 50,
align: "center",
className: "h",
},
{
title: "所在部门",
dataIndex: "bum",
key: "bum",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gangw",
key: "gangw",
width: 50,
align: "center",
className: "h",
},
{
title: "所在小组",
dataIndex: "comp",
key: "comp",
width: 50,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 100,
align: "center",
className: "h",
},
{
title: "任务状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 50,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<div class="opacation">
<span style="color:#4EA6FF;cursor:pointer">查看</span>
</div>
</div>
);
},
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:Wvisible", false);
};
return {
...toRefs(state),
selectProjectName,
closeDrawer,
};
},
};
</script>
<style lang="scss" >
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
.WorkManage {
.drawerMain {
min-width: 600px;
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-y: auto;
.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;
.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: #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: 17px;
height: 16px;
background-image: url(../../assets/images/coursewareManage/export1.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
}
}
.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;
}
}
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
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>

View File

@@ -56,9 +56,7 @@
<div class="second"> <div class="second">
<div <div
class="taskbox" class="taskbox"
style=" style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
background: linear-gradient(180deg,#FEF3DD,#FFFAF0);
"
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left1.png" /> <img src="../../assets/images/taskpage/left1.png" />
@@ -77,7 +75,11 @@
<div <div
class="taskbox" class="taskbox"
style=" style="
background: linear-gradient(180deg,rgba(221, 234, 255, 1),rgba(240, 248, 254, 1)); background: linear-gradient(
180deg,
rgba(221, 234, 255, 1),
rgba(240, 248, 254, 1)
);
" "
> >
<div class="leftt"> <div class="leftt">
@@ -98,7 +100,11 @@
class="taskbox" class="taskbox"
@click="showModal" @click="showModal"
style=" style="
background: linear-gradient(180deg,rgba(229, 246, 236, 1) ,rgba(238, 249, 243, 1)); background: linear-gradient(
180deg,
rgba(229, 246, 236, 1),
rgba(238, 249, 243, 1)
);
" "
> >
<div class="leftt"> <div class="leftt">
@@ -333,7 +339,9 @@
</div> </div>
</div> </div>
<div class="operations"> <div class="operations">
<div class="operation">学员</div> <div class="operation" style="cursor: pointer" @click="showFS">
学员
</div>
<div class="operation" style="cursor: pointer" @click="showFace"> <div class="operation" style="cursor: pointer" @click="showFace">
管理 管理
</div> </div>
@@ -370,7 +378,9 @@
</div> </div>
</div> </div>
<div class="operations"> <div class="operations">
<div class="operation">考勤</div> <div class="operation" style="cursor: pointer" @click="showAA">
考勤
</div>
<div class="operation">管理</div> <div class="operation">管理</div>
<div class="operation">二维码</div> <div class="operation">二维码</div>
</div> </div>
@@ -405,7 +415,9 @@
</div> </div>
</div> </div>
<div class="operations"> <div class="operations">
<div class="operation">管理</div> <div class="operation" style="cursor: pointer" @click="showWork">
管理
</div>
</div> </div>
</div> </div>
<div class="course"> <div class="course">
@@ -456,45 +468,82 @@
<a-tab-pane key="8" tab="学员管理"> <a-tab-pane key="8" tab="学员管理">
<div class="group"> <div class="group">
<div class="groupleft"> <div class="groupleft">
<div style="display: flex;align-items: center;margin-right: 10px;margin-bottom: 10px"> <div
style="
display: flex;
align-items: center;
margin-right: 10px;
margin-bottom: 10px;
"
>
<div class="groupname" style="width: 42px">姓名</div> <div class="groupname" style="width: 42px">姓名</div>
<a-input v-model:value="value" placeholder="请输入姓名" /> <a-input v-model:value="value" placeholder="请输入姓名" />
</div> </div>
<div style="display: flex;align-items: center;margin-right: 10px;margin-bottom: 10px"> <div
style="
display: flex;
align-items: center;
margin-right: 10px;
margin-bottom: 10px;
"
>
<div class="groupname">小组名称</div> <div class="groupname">小组名称</div>
<a-input v-model:value="value" placeholder="请输入小组名称" /> <a-input
v-model:value="value"
placeholder="请输入小组名称"
/>
</div> </div>
<div style="display: flex;align-items: center;margin-right: 10px;margin-bottom: 10px"> <div
style="
display: flex;
align-items: center;
margin-right: 10px;
margin-bottom: 10px;
"
>
<div class="groupname" style="width: 42px">部门</div> <div class="groupname" style="width: 42px">部门</div>
<a-select v-model:value="value" placeholder="请选择部门" /> <a-select
v-model:value="value"
placeholder="请选择部门"
/>
</div> </div>
<div style="display: flex;align-items: center;margin-bottom: 10px"> <div
style="
display: flex;
align-items: center;
margin-bottom: 10px;
"
>
<div class="groupname" style="width: 42px">学员</div> <div class="groupname" style="width: 42px">学员</div>
<a-select v-model:value="value" placeholder="是否为优秀学员" :options="goodstuList"/> <a-select
v-model:value="value"
placeholder="是否为优秀学员"
:options="goodstuList"
/>
</div> </div>
</div> </div>
<div class="groupright"> <div class="groupright">
<div class="btn1"> <div class="btn1">
<img src="../../assets/images/courseManage/search0.png"/> <img src="../../assets/images/courseManage/search0.png" />
<span class="btn1text">搜索</span> <span class="btn1text">搜索</span>
</div> </div>
<div class="btn2"> <div class="btn2">
<img src="../../assets/images/courseManage/reset1.png"/> <img src="../../assets/images/courseManage/reset1.png" />
<span class="btn2text">重置</span> <span class="btn2text">重置</span>
</div> </div>
</div> </div>
</div> </div>
<div class="second2" style="margin-top: 20px"> <div class="second2" style="margin-top: 20px">
<div class="btn1" @click="showModal2"> <div class="btn1" @click="showModal2">
<img src="../../assets/images/courseManage/add0.png"/> <img src="../../assets/images/courseManage/add0.png" />
<span class="btn1text">添加学员</span> <span class="btn1text">添加学员</span>
</div> </div>
<div class="btn2"> <div class="btn2">
<img src="../../assets/images/courseManage/reset2.png"/> <img src="../../assets/images/courseManage/reset2.png" />
<span class="btn2text">导入学员</span> <span class="btn2text">导入学员</span>
</div> </div>
<div class="btn2"> <div class="btn2">
<img src="../../assets/images/projectadd/delete.png"/> <img src="../../assets/images/projectadd/delete.png" />
<span class="btn2text">批量删除</span> <span class="btn2text">批量删除</span>
</div> </div>
</div> </div>
@@ -545,26 +594,29 @@
<div class="group"> <div class="group">
<div class="groupleft"> <div class="groupleft">
<div class="groupname">小组名称</div> <div class="groupname">小组名称</div>
<a-input v-model:value="value" placeholder="请输入小组名称" /> <a-input
v-model:value="value"
placeholder="请输入小组名称"
/>
</div> </div>
<div class="groupright"> <div class="groupright">
<div class="btn1"> <div class="btn1">
<img src="../../assets/images/courseManage/search0.png"/> <img src="../../assets/images/courseManage/search0.png" />
<span class="btn1text">搜索</span> <span class="btn1text">搜索</span>
</div> </div>
<div class="btn2"> <div class="btn2">
<img src="../../assets/images/courseManage/reset1.png"/> <img src="../../assets/images/courseManage/reset1.png" />
<span class="btn2text">重置</span> <span class="btn2text">重置</span>
</div> </div>
</div> </div>
</div> </div>
<div class="second2"> <div class="second2">
<div class="btn1" @click="showModal2"> <div class="btn1" @click="showModal2">
<img src="../../assets/images/courseManage/add0.png"/> <img src="../../assets/images/courseManage/add0.png" />
<span class="btn1text">创建小组</span> <span class="btn1text">创建小组</span>
</div> </div>
<div class="btn2"> <div class="btn2">
<img src="../../assets/images/courseManage/reset2.png"/> <img src="../../assets/images/courseManage/reset2.png" />
<span class="btn2text">随机分组</span> <span class="btn2text">随机分组</span>
</div> </div>
</div> </div>
@@ -574,7 +626,10 @@
<div class="grouptitle"> <div class="grouptitle">
<div class="goodgruop">好好学习小组</div> <div class="goodgruop">好好学习小组</div>
<div class="more"> <div class="more">
<span style="color: rgba(0, 0, 0, 0.4500); cursor: pointer">. . .</span> <span
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
>. . .</span
>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">编辑</div> <div class="sammo">编辑</div>
<div class="sammo">删除</div> <div class="sammo">删除</div>
@@ -589,10 +644,26 @@
<div class="grofooter"> <div class="grofooter">
<div class="ftext">组员名单 ></div> <div class="ftext">组员名单 ></div>
<div class="peoples"> <div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></div> <div class="people1">
<div class="people2"><img src="../../assets/images/taskpage/people2.png"/></div> <img
<div class="people3"><img src="../../assets/images/taskpage/people3.png"/></div> src="../../assets/images/taskpage/people1.png"
<div class="people4"><img src="../../assets/images/taskpage/people4.png"/></div> />
</div>
<div class="people2">
<img
src="../../assets/images/taskpage/people2.png"
/>
</div>
<div class="people3">
<img
src="../../assets/images/taskpage/people3.png"
/>
</div>
<div class="people4">
<img
src="../../assets/images/taskpage/people4.png"
/>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -602,7 +673,10 @@
<div class="grouptitle"> <div class="grouptitle">
<div class="goodgruop">全能小组</div> <div class="goodgruop">全能小组</div>
<div class="more"> <div class="more">
<span style="color: rgba(0, 0, 0, 0.4500); cursor: pointer">. . .</span> <span
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
>. . .</span
>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">编辑</div> <div class="sammo">编辑</div>
<div class="sammo">删除</div> <div class="sammo">删除</div>
@@ -617,10 +691,26 @@
<div class="grofooter"> <div class="grofooter">
<div class="ftext">组员名单 ></div> <div class="ftext">组员名单 ></div>
<div class="peoples"> <div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></div> <div class="people1">
<div class="people2"><img src="../../assets/images/taskpage/people2.png"/></div> <img
<div class="people3"><img src="../../assets/images/taskpage/people3.png"/></div> src="../../assets/images/taskpage/people1.png"
<div class="people4"><img src="../../assets/images/taskpage/people4.png"/></div> />
</div>
<div class="people2">
<img
src="../../assets/images/taskpage/people2.png"
/>
</div>
<div class="people3">
<img
src="../../assets/images/taskpage/people3.png"
/>
</div>
<div class="people4">
<img
src="../../assets/images/taskpage/people4.png"
/>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -630,7 +720,10 @@
<div class="grouptitle"> <div class="grouptitle">
<div class="goodgruop">宇宙第一最强小组</div> <div class="goodgruop">宇宙第一最强小组</div>
<div class="more"> <div class="more">
<span style="color: rgba(0, 0, 0, 0.4500); cursor: pointer">. . .</span> <span
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
>. . .</span
>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">编辑</div> <div class="sammo">编辑</div>
<div class="sammo">删除</div> <div class="sammo">删除</div>
@@ -645,10 +738,26 @@
<div class="grofooter"> <div class="grofooter">
<div class="ftext">组员名单 ></div> <div class="ftext">组员名单 ></div>
<div class="peoples"> <div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></div> <div class="people1">
<div class="people2"><img src="../../assets/images/taskpage/people2.png"/></div> <img
<div class="people3"><img src="../../assets/images/taskpage/people3.png"/></div> src="../../assets/images/taskpage/people1.png"
<div class="people4"><img src="../../assets/images/taskpage/people4.png"/></div> />
</div>
<div class="people2">
<img
src="../../assets/images/taskpage/people2.png"
/>
</div>
<div class="people3">
<img
src="../../assets/images/taskpage/people3.png"
/>
</div>
<div class="people4">
<img
src="../../assets/images/taskpage/people4.png"
/>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -658,7 +767,10 @@
<div class="grouptitle"> <div class="grouptitle">
<div class="goodgruop">天天向上小组</div> <div class="goodgruop">天天向上小组</div>
<div class="more"> <div class="more">
<span style="color: rgba(0, 0, 0, 0.4500); cursor: pointer">. . .</span> <span
style="color: rgba(0, 0, 0, 0.45); cursor: pointer"
>. . .</span
>
<div class="moreItems"> <div class="moreItems">
<div class="sammo">编辑</div> <div class="sammo">编辑</div>
<div class="sammo">删除</div> <div class="sammo">删除</div>
@@ -673,10 +785,26 @@
<div class="grofooter"> <div class="grofooter">
<div class="ftext">组员名单 ></div> <div class="ftext">组员名单 ></div>
<div class="peoples"> <div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></div> <div class="people1">
<div class="people2"><img src="../../assets/images/taskpage/people2.png"/></div> <img
<div class="people3"><img src="../../assets/images/taskpage/people3.png"/></div> src="../../assets/images/taskpage/people1.png"
<div class="people4"><img src="../../assets/images/taskpage/people4.png"/></div> />
</div>
<div class="people2">
<img
src="../../assets/images/taskpage/people2.png"
/>
</div>
<div class="people3">
<img
src="../../assets/images/taskpage/people3.png"
/>
</div>
<div class="people4">
<img
src="../../assets/images/taskpage/people4.png"
/>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -696,7 +824,13 @@
<time-manage v-model:Tvisible="visible" /> <time-manage v-model:Tvisible="visible" />
<!-- 面授管理抽屉 --> <!-- 面授管理抽屉 -->
<face-manage v-model:Fvisible="FaceVisivle" /> <face-manage v-model:Fvisible="FaceVisivle" />
<!-- 概览无数据-项目发布弹窗 --> <!-- 面授学员抽屉 -->
<face-stu v-model:FSvisible="FSvisible" />
<!-- 活动考勤抽屉 -->
<active-attendance v-model:AAvisible="AAvisible" />
<!-- 作业管理抽屉 -->
<work-manage v-model:Wvisible="Wvisible" />
<!-- 项目发布弹窗 -->
<div> <div>
<a-modal <a-modal
v-model:visible="pubproject" v-model:visible="pubproject"
@@ -716,7 +850,11 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
background: linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2) 100%); background: linear-gradient(
0deg,
rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100%
);
" "
> >
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
@@ -771,9 +909,9 @@
</div> </div>
</a-modal> </a-modal>
</div> </div>
<!-- 概览无数据-项目发布弹窗 --> <!-- 概览无数据-项目发布弹窗 -->
<!-- 学员-创建小组弹窗 --> <!-- 学员-创建小组弹窗 -->
<div> <div>
<a-modal <a-modal
v-model:visible="stugroup" v-model:visible="stugroup"
:title="null" :title="null"
@@ -784,13 +922,25 @@
width="624px" width="624px"
height="332px" height="332px"
> >
<div class="modalHeader" <div
style="width: 100%;height: 68px;display: flex;align-items: center;justify-content: space-between;background:linear-gradient(0deg,rgba(78, 166, 255, 0) 0%,rgba(78, 166, 255, 0.2000) 100%)" class="modalHeader"
style="
width: 100%;
height: 68px;
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(
0deg,
rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100%
);
"
> >
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
<span class="headerLeftText" style="font-size: 16px">创建小组</span> <span class="headerLeftText" style="font-size: 16px">创建小组</span>
</div> </div>
<div style="cursor: pointer;margin-right:32px" @click="closeModal2"> <div style="cursor: pointer; margin-right: 32px" @click="closeModal2">
<img <img
style="width: 22px; height: 22px" style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png" src="../../assets/images/basicinfo/close22.png"
@@ -810,7 +960,7 @@
<a-input <a-input
v-model:value="value" v-model:value="value"
placeholder="请输入小组名称" placeholder="请输入小组名称"
style="border-radius: 8px;height: 40px" style="border-radius: 8px; height: 40px"
/> />
</div> </div>
</div> </div>
@@ -826,7 +976,7 @@
<a-input <a-input
v-model:value="value" v-model:value="value"
placeholder="请输入小组长" placeholder="请输入小组长"
style="border-radius: 8px;height: 40px" style="border-radius: 8px; height: 40px"
/> />
</div> </div>
</div> </div>
@@ -836,18 +986,21 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
</div> </div>
<!-- 学员-创建小组弹窗 --> <!-- 学员-创建小组弹窗 -->
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs } from "vue";
import TimeManage from "../../components/drawers/TimeManage"; import TimeManage from "../../components/drawers/TimeManage";
import FaceManage from "../../components/drawers/FaceManage"; import FaceManage from "../../components/drawers/FaceManage";
import FaceStu from "../../components/drawers/FaceStu";
import ActiveAttendance from "../../components/drawers/ActiveAttendance";
import WorkManage from "../../components/drawers/WorkManage.vue";
export default { export default {
name:"taskPage", name: "taskPage",
components: { TimeManage, FaceManage }, components: { TimeManage, FaceManage, FaceStu, ActiveAttendance, WorkManage },
setup(){ setup() {
const state = reactive({ const state = reactive({
goodstuList: [ goodstuList: [
{ {
@@ -988,13 +1141,16 @@ export default {
], ],
visible: false, //时间管理 visible: false, //时间管理
FaceVisivle: false, //面授管理 FaceVisivle: false, //面授管理
FSvisible: false, //面授学员
AAvisible: false, //活动考勤
Wvisible: false, //作业管理
pubproject: false, pubproject: false,
stugroup: false, stugroup: false,
checked: false, checked: false,
checked1: true, checked1: true,
checked2: false, checked2: false,
activeKey: '3', activeKey: "3",
activeKey1: '8', activeKey1: "8",
}); });
const showModal = () => { const showModal = () => {
state.pubproject = true; state.pubproject = true;
@@ -1019,6 +1175,18 @@ export default {
// console.log("点击管理"); // console.log("点击管理");
state.FaceVisivle = true; state.FaceVisivle = true;
}; };
//面授学员的弹窗
const showFS = () => {
state.FSvisible = true;
};
//活动考勤的抽屉
const showAA = () => {
state.AAvisible = true;
};
//作业管理的抽屉
const showWork = () => {
state.Wvisible = true;
};
return { return {
...toRefs(state), ...toRefs(state),
showModal, showModal,
@@ -1027,6 +1195,9 @@ export default {
closeModal2, closeModal2,
showTime, showTime,
showFace, showFace,
showFS,
showAA,
showWork,
}; };
}, },
}; };
@@ -1207,7 +1378,6 @@ export default {
} }
} }
} }
} }
.pubtn { .pubtn {
display: flex; display: flex;
@@ -1219,25 +1389,25 @@ export default {
height: 40px; height: 40px;
margin-right: 16px; margin-right: 16px;
margin-bottom: 29px; margin-bottom: 29px;
border: 1px solid #409EFF; border: 1px solid #409eff;
border-radius: 4px; border-radius: 4px;
color: rgba(78, 166, 255, 1); color: rgba(78, 166, 255, 1);
font-size: 14px; font-size: 14px;
//line-height: 36px; //line-height: 36px;
align-items: center; align-items: center;
background: rgba(255, 255, 255, 1) background: rgba(255, 255, 255, 1);
} }
.pubtn2 { .pubtn2 {
width: 100px; width: 100px;
height: 40px; height: 40px;
margin-bottom: 29px; margin-bottom: 29px;
border: 1px solid #409EFF; border: 1px solid #409eff;
border-radius: 4px; border-radius: 4px;
color: #FFFFFF; color: #ffffff;
font-size: 14px; font-size: 14px;
align-items: center; align-items: center;
//line-height: 36px; //line-height: 36px;
background: #409EFF; background: #409eff;
} }
} }
} }
@@ -1676,9 +1846,9 @@ export default {
//height: 71px; //height: 71px;
margin-left: 12px; margin-left: 12px;
margin-right: 50px; margin-right: 50px;
.icon { // .icon {
//position: absolute; // //position: absolute;
} // }
.iconame { .iconame {
//position: absolute; //position: absolute;
color: #4f5156; color: #4f5156;
@@ -1790,12 +1960,12 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-right: 16px; margin-right: 16px;
border: 1px solid #409EFF; border: 1px solid #409eff;
border-radius: 8px; border-radius: 8px;
background: #409EFF; background: #409eff;
cursor: pointer; cursor: pointer;
.btn1text { .btn1text {
color: #FFFFFF; color: #ffffff;
margin-left: 5px; margin-left: 5px;
font-size: 14px; font-size: 14px;
} }
@@ -1807,12 +1977,12 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
margin-right: 32px; margin-right: 32px;
border: 1px solid #409EFF; border: 1px solid #409eff;
border-radius: 8px; border-radius: 8px;
cursor: pointer; cursor: pointer;
background: #FFFFFF; background: #ffffff;
.btn2text { .btn2text {
color: #409EFF; color: #409eff;
margin-left: 5px; margin-left: 5px;
font-size: 14px; font-size: 14px;
} }
@@ -1895,7 +2065,7 @@ export default {
.clear { .clear {
cursor: pointer; cursor: pointer;
font-size: 14px; font-size: 14px;
color: #387DF7; color: #387df7;
line-height: 24px; line-height: 24px;
position: absolute; position: absolute;
right: 20px; right: 20px;
@@ -1904,11 +2074,11 @@ export default {
.tab { .tab {
.ant-table-thead > tr > th { .ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1); background-color: rgba(239, 244, 252, 1);
color: rgba(0, 0, 0, 0.8500); color: rgba(0, 0, 0, 0.85);
} }
.ant-table-tbody > tr > td { .ant-table-tbody > tr > td {
border-bottom: 1px solid #F0F6FC; border-bottom: 1px solid #f0f6fc;
color: rgba(0, 0, 0, 0.6500); color: rgba(0, 0, 0, 0.65);
} }
th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
@@ -1940,8 +2110,8 @@ export default {
height: 181px; height: 181px;
display: flex; display: flex;
justify-content: center; justify-content: center;
border: 1px solid #E9E9E9; border: 1px solid #e9e9e9;
box-shadow: 1px 1px 18px 1px rgba(0, 0, 0, 0.0500); box-shadow: 1px 1px 18px 1px rgba(0, 0, 0, 0.05);
margin-top: 16px; margin-top: 16px;
margin-right: 20px; margin-right: 20px;
.grouptitle { .grouptitle {
@@ -1950,7 +2120,7 @@ export default {
margin-top: 5px; margin-top: 5px;
border-bottom: 1px solid rgba(232, 232, 232, 1); border-bottom: 1px solid rgba(232, 232, 232, 1);
.goodgruop { .goodgruop {
color: rgba(0, 0, 0, 0.8500); color: rgba(0, 0, 0, 0.85);
font-size: 16px; font-size: 16px;
line-height: 36px; line-height: 36px;
font-weight: 600; font-weight: 600;