feat:修改课程管理的tabs切换问题以及学习记录详情的高

This commit is contained in:
李晓鸽
2022-10-19 10:07:19 +08:00
16 changed files with 5087 additions and 2237 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 505 B

View File

@@ -5,6 +5,7 @@ body {
padding: 0;
// overflow-y: auto;
}
//隐藏滚动条----------------------------------------------------------------
// div::-webkit-scrollbar {
// display: none !important;
@@ -38,8 +39,10 @@ body {
// }
::-webkit-scrollbar {
width: 6px; /*对垂直流动条有效*/
height: 6px; /*对水平流动条有效*/
width: 6px;
/*对垂直流动条有效*/
height: 6px;
/*对水平流动条有效*/
}
/*定义滚动条的轨道颜色、内阴影及圆角*/
@@ -63,25 +66,37 @@ body {
/*定义右下角汇合处的样式*/
::-webkit-scrollbar-corner {
background:rgba(239, 244, 252, 1);;
background: rgba(239, 244, 252, 1);
;
}
//隐藏滚动条----------------------------------------------------------------
//禁止选中----------------------------------------------------------
* {
-webkit-touch-callout:none; /*系统默认菜单被禁用*/
-webkit-user-select:none; /*webkit浏览器*/
-khtml-user-select:none; /*早期浏览器*/
-moz-user-select:none;/*火狐*/
-ms-user-select:none; /*IE10*/
-webkit-touch-callout: none;
/*系统默认菜单被禁用*/
-webkit-user-select: none;
/*webkit浏览器*/
-khtml-user-select: none;
/*早期浏览器*/
-moz-user-select: none;
/*火狐*/
-ms-user-select: none;
/*IE10*/
user-select: none;
}
input {
-webkit-user-select:auto; /*webkit浏览器*/
-webkit-user-select: auto;
/*webkit浏览器*/
}
textarea {
-webkit-user-select:auto; /*webkit浏览器*/
-webkit-user-select: auto;
/*webkit浏览器*/
}
//禁止选中----------------------------------------------------------
// 下拉框----------------------------------------------------------
@@ -90,18 +105,23 @@ 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{
.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;
}
// 下拉框----------------------------------------------------------
@@ -116,6 +136,7 @@ border: 1px solid #C7CBD2 !important;
padding: 0px;
// overflow: hidden;
}
.ant-table-row-expand-icon {
top: 3px !important;
float: none;
@@ -123,36 +144,45 @@ border: 1px solid #C7CBD2 !important;
// left: 50px;
// display: inline-block;
}
.ant-pagination-item-link {
border-radius: 8px !important;
}
.ant-pagination-item {
border-radius: 8px !important;
a {
font-size: 14px;
font-weight: 400;
color: #818a92;
}
}
.ant-pagination-item-active {
background-color: rgba(64, 158, 255, 1);
a {
color: rgba(255, 255, 255, 1);
font-size: 14px;
font-weight: 400;
}
}
.ant-select-selection-item {
font-size: 14px;
font-weight: 400;
color: #818a92;
}
.ant-pagination-options-quick-jumper {
font-size: 14px;
font-weight: 400;
color: #818a92;
}
.ant-pagination-options {
// .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{
// font-size: 14px;
// font-weight: 400;
@@ -163,42 +193,49 @@ border: 1px solid #C7CBD2 !important;
font-weight: 400;
color: #818a92;
}
.ant-select:not(.ant-select-customize-input) .ant-select-selector {
border-radius: 8px !important;
}
.ant-select-selection-item {
padding-right: 0px !important;
}
.ant-select-arrow {
display: none;
}
.ant-select-dropdown {
display: none;
}
}
}
// 表格---------------------------------
//表格下拉框-------------------------------------------
.tableSelect {
margin-left: 21px;
display: inline-block;
.ant-select:not(.ant-select-customize-input)
.ant-select-selector
.ant-select-selection-search-input {
.ant-select:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input {
background-color: rgba(255, 255, 255, 0);
border: none;
}
.ant-select:not(.ant-select-customize-input) .ant-select-selector {
background-color: rgba(255, 255, 255, 0);
border: none;
}
.ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
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;
}
.ant-select-arrow {
right: 0px;
color: rgba(0, 0, 0, 0.8);
@@ -207,32 +244,40 @@ display: none;
// top: 17px;
top: 14px;
}
.ant-select-selection-item {
font-size: 14px;
font-weight: 400;
color: #4ea6ff;
line-height: 36px;
}
.ant-select-single.ant-select-open .ant-select-selection-item {
color: #4ea6ff;
}
}
.tabledropdown {
width: 100px !important;
}
//表格下拉框-------------------------------------------
//抽屉--------------------------------------------------------
.drawerStyle {
.ant-drawer-content-wrapper {
max-width: 1050px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 700px;
margin: 0px 32px 0px 32px;
@@ -240,17 +285,46 @@ display: none;
display: flex;
flex-direction: column;
height: 100%;
.contentMain {
flex: 1;
overflow-y: scroll;
}
}}
}
}
//抽屉--------------------------------------------------------
//大型抽屉
.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%;
.ant-modal {
height: calc(100% - 200px);
background-color: rgba(255, 255, 255, 1);
@@ -258,31 +332,35 @@ display: none;
min-width: 900px;
max-width: 1300px;
padding: 0;
.ant-modal-content {
width: 100%;
height: 100%;
}
.ant-modal-body {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
}
.ant-modal-header {
display: none;
}
.ant-modal-body {
padding: 0px;
}
.modalHeader {
width: 100%;
height: 68px;
background: linear-gradient(
0deg,
background: linear-gradient(0deg,
rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100%
);
rgba(78, 166, 255, 0.2) 100%);
}
.modalMain {
height: 0px;
flex: 1 1 auto;
@@ -294,4 +372,5 @@ 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

@@ -3,13 +3,13 @@
:visible="addfaceteachVisible"
class="drawerStyle"
width="80%"
title="添加在线"
title="添加面授"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">添加在线</div>
<div class="headerTitle">添加面授</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@@ -17,94 +17,194 @@
/>
</div>
<div class="contentMain">
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">课程编号</div>
<div class="fi_input">
<div class="main_left">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">课程名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="value1"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
v-model:value="value2"
style="width: 384px; height: 32px"
placeholder="请输入小组名称"
/>
</div>
</div>
<div class="mii_ipt">
<div class="ipt_name">内容分类</div>
<div class="select">
<a-select
dropdownClassName="dropdown-style"
style="width: 240px"
placeholder="请选择"
:options="options1"
allowClear
showSearch
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">选择课程</span>
</div>
<div class="btnbox">
<button class="xkbtn">选择课程</button>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">项目说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="textareavalue"
placeholder="请输入说明"
allow-clear
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<div class="mi_btns">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
<span style="margin-right: 3px">授课教师</span>
</div>
<div class="btn btn2">
<div class="search"></div>
<div class="btnText">重置</div>
<div class="btnbox">
<a-input
v-model:value="value2"
style="width: 384px; height: 32px"
placeholder="请输入授课教师"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择 <span style="color: #388be1">4</span> </span
>
<span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>14</span> </span
<span style="margin-right: 3px">面授时间</span>
</div>
<div class="btnbox">
<a-range-picker
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">面授时长</span>
</div>
<div class="btnbox">
<a-input
v-model:value="value2"
style="width: 384px; height: 32px"
/>
<span style="margin-left: 5px">分钟</span>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">上课地址</span>
</div>
<div class="btnbox">
<a-input
v-model:value="value2"
style="width: 384px; height: 32px"
placeholder="请输入上课地址"
/>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">考勤设置</span>
</div>
<div class="kqszbox">
<div class="qdqtbox"><span>签到</span></div>
<div class="setbox">
<div class="timerbox">
<span>开始前</span>
<a-input style="width: 88px; height: 32px"></a-input>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
<div class="timerbox">
<span>开始后</span>
<a-input style="width: 88px; height: 32px"></a-input>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
<div class="qdqtbox"><span>签退</span></div>
<div class="setbox">
<div class="timerbox">
<span>结束前</span>
<a-input style="width: 88px; height: 32px"></a-input>
<span style="color: #999999; margin-left: 8px"
>分钟提前签退则记为早退</span
>
</div>
<div class="mntc_right">
<span style="color: #387df7; margin-right: 24px">清空</span>
</div>
</div>
<div class="main_table">
<a-table
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection"
:columns="columns1"
:data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false"
:pagination="{
showSizeChanger: true,
showQuickJumper: true,
hideOnSinglePage: true,
pageSizeOptions: [],
pageSize: pageSize,
current: currentPage,
total: tableDataTotal,
onChange: (page, pageSize) => {
currentPage = page;
// console.log('page', page)
// 加翻页查找代码
// this.setState({
// currentPage: page,
// }, () => {
// this.getMilitaryDeployment()
// })
},
}"
/>
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">完成标准设置</span>
</div>
<div class="btnbox">
<a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
<a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
</div>
</div>
<div class="main_item">
<div class="signbox">
<span style="margin-right: 3px">其他设置</span>
</div>
<div class="btnbox">
<a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">现场参与</span>
</div>
<div class="btnbox2">
<a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
<a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">评估</span>
</div>
<div class="btnbox2">
<a-checkbox v-model:checked="checked">需要评估</a-checkbox>
<button class="xkbtn">选择课程</button>
</div>
</div>
</div>
<div class="main_right"></div>
</div>
<div class="main_btns">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
@@ -278,13 +378,13 @@ export default {
const afterVisibleChange = (bool) => {
console.log("state", bool);
};
const showDrawerFaceteach = () => {
state.visible3 = true;
};
// const showDrawerFaceteach = () => {
// state.addfaceteachvisible = true;
// };
return {
...toRefs(state),
afterVisibleChange,
showDrawerFaceteach,
// showDrawerFaceteach,
closeDrawer,
options1,
columns1,
@@ -315,117 +415,92 @@ export default {
}
}
.contentMain {
.main_items {
display: flex;
justify-content: space-between;
margin-bottom: 12px;
flex-wrap: wrap;
.mi_ipts {
.main_left {
margin-right: 30px;
.main_item {
display: flex;
margin-bottom: 20px;
.mii_ipt {
display: flex;
align-items: center;
margin-right: 24px;
.ipt_name {
white-space: nowrap;
}
}
}
.mi_btns {
display: flex;
margin-left: 38px;
margin-bottom: 20px;
cursor: pointer;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-left: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
background: rgb(64, 158, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png");
}
.btnText {
color: rgb(255, 255, 255);
}
}
.btn2 {
background: rgb(255, 255, 255);
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png");
}
.btnText {
color: rgb(64, 158, 255);
}
}
.btn1:hover {
background: rgb(255, 255, 255);
.search {
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388be1;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("@/assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.main_notice {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background-color: #e9f6fe;
.mntc_left {
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
}
}
}
.main_item2 {
display: flex;
align-items: flex-start;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
}
.kqszbox {
.qdqtbox {
margin-left: 56px;
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox {
margin-top: 6px;
margin-right: 32px;
display: flex;
align-items: center;
.notice_icon {
width: 14px;
height: 14px;
margin-right: 9px;
margin-left: 9px;
background-image: url(@/assets/images/coursewareManage/gan.png);
background-size: 100% 100%;
flex-wrap: nowrap;
}
}
.mntc_right {
}
.btnbox2{
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 16px 8px 32px 0;
color: #fff;
}
}
}
}
.main_right {
width: 337px;
border-left: 1px solid #e8e8e8;
}
}
.main_btns {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
@@ -454,5 +529,4 @@ export default {
}
}
}
}
</style>

View File

@@ -57,16 +57,23 @@
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<span style="color:rgba(0, 0, 0, .65); margin-right:17px;">已选择 <span style="color:#388BE1;">4</span> </span>
<span style="color:rgba(0, 0, 0, .65)">列表选项总计<span>14</span> </span>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择 <span style="color: #388be1">4</span> </span
>
<span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>14</span> </span
>
</div>
<div class="mntc_right">
<span style="color:#387DF7; margin-right:24px;">清空</span>
<span style="color: #387df7; margin-right: 24px">清空</span>
</div>
</div>
<div class="main_table">
<a-table class="ant-table-striped"
:row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)"
<a-table
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection"
:columns="columns1"
:data-source="tableData1"
@@ -92,12 +99,12 @@
}"
/>
</div>
</div>
<div class="main_btns">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
@@ -111,51 +118,55 @@ import { reactive, toRefs, ref } from "vue";
const columns1 = [
{
title: "课程编号",
width: '20%',
width: "20%",
dataIndex: "num",
key: "num",
align: "center",
},
{
title: "名称",
width: '20%',
width: "20%",
dataIndex: "name",
key: "name",
align: "center",
},
{
title: "内容分类",
width: '13%',
width: "13%",
dataIndex: "content",
key: "content",
align: "center",
},
{
title: "授课教师",
width: '13%',
width: "13%",
dataIndex: "teacher",
key: "teacher",
align: "center",
},
{
title: "创建人",
width: '13%',
width: "13%",
dataIndex: "creator",
key: "creator",
align: "center",
},
{
title: "完成时间",
width: '20%',
width: "20%",
dataIndex: "time",
key: "time",
align: "center",
},
]
];
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
@@ -177,84 +188,84 @@ import { reactive, toRefs, ref } from "vue";
tableData1: [
{
key: "1",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'通用力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "2",
num: 'JDF2022071100001',
name:'管理能力课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "3",
num: 'JDF2022071100001',
name:'快速换模SMED',
content:'通用力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "快速换模SMED",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "4",
num: 'JDF2022071100001',
name:'巧妙对话人见人夸',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "巧妙对话人见人夸",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "5",
num: 'JDF2022071100001',
name:'管理能力课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "6",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "7",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "8",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "9",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
],
currentPage: 1,
@@ -374,7 +385,7 @@ import { reactive, toRefs, ref } from "vue";
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388BE1;
color: #388be1;
}
}
.btn2:hover {
@@ -394,7 +405,7 @@ import { reactive, toRefs, ref } from "vue";
align-items: center;
margin-bottom: 32px;
height: 40px;
background-color: #E9F6FE;
background-color: #e9f6fe;
.mntc_left {
display: flex;
align-items: center;
@@ -411,10 +422,11 @@ import { reactive, toRefs, ref } from "vue";
cursor: pointer;
}
}
}
.main_btns {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
@@ -443,5 +455,4 @@ import { reactive, toRefs, ref } from "vue";
}
}
}
}
</style>

View File

@@ -19,7 +19,9 @@
<div class="contentMain">
<div class="main_item">
<div class="signbox">
<div class="sign"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">课程名称</span>
</div>
<div class="fi_input">
@@ -32,12 +34,20 @@
</div>
<div class="main_item">
<div class="signbox">
<div class="sign"><img src="@/assets/images/coursewareManage/asterisk.png" alt=""></div>
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
</div>
<span style="margin-right: 3px">选择课程</span>
</div>
<div class="btnbox">
<button class="xkbtn">选择课程</button>
<a-tag closable @close="log" color='#F0FFFF' style="background-color: #388BE1;">时间管理</a-tag>
<a-tag
closable
@close="log"
color="#F0FFFF"
style="background-color: #388be1"
>时间管理</a-tag
>
</div>
</div>
<div class="main_items">
@@ -78,8 +88,11 @@
</div>
</div>
<div class="main_table">
<a-table class="ant-table-striped"
:row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)"
<a-table
class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection"
:columns="columns1"
:data-source="tableData1"
@@ -105,12 +118,12 @@
}"
/>
</div>
</div>
<div class="main_btns">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
@@ -124,51 +137,55 @@ import { reactive, toRefs, ref } from "vue";
const columns1 = [
{
title: "课程编号",
width: '20%',
width: "20%",
dataIndex: "num",
key: "num",
align: "center",
},
{
title: "名称",
width: '20%',
width: "20%",
dataIndex: "name",
key: "name",
align: "center",
},
{
title: "内容分类",
width: '13%',
width: "13%",
dataIndex: "content",
key: "content",
align: "center",
},
{
title: "授课教师",
width: '13%',
width: "13%",
dataIndex: "teacher",
key: "teacher",
align: "center",
},
{
title: "创建人",
width: '13%',
width: "13%",
dataIndex: "creator",
key: "creator",
align: "center",
},
{
title: "完成时间",
width: '20%',
width: "20%",
dataIndex: "time",
key: "time",
align: "center",
},
]
];
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
@@ -190,66 +207,66 @@ import { reactive, toRefs, ref } from "vue";
tableData1: [
{
key: "1",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'通用力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "2",
num: 'JDF2022071100001',
name:'管理能力课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "3",
num: 'JDF2022071100001',
name:'快速换模SMED',
content:'通用力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "快速换模SMED",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "4",
num: 'JDF2022071100001',
name:'巧妙对话人见人夸',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "巧妙对话人见人夸",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "5",
num: 'JDF2022071100001',
name:'管理能力课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "6",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "7",
num: 'JDF2022071100001',
name:'时间管理课程',
content:'领导力',
teacher:'BOE教师',
creator:'管理员',
time:'2022-10-31 23:12:00',
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
],
currentPage: 1,
@@ -313,7 +330,7 @@ import { reactive, toRefs, ref } from "vue";
cursor: pointer;
width: 130px;
height: 40px;
background: #388BE1;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
@@ -393,7 +410,7 @@ import { reactive, toRefs, ref } from "vue";
background-image: url("@/assets/images/courseManage/search1.png");
}
.btnText {
color: #388BE1;
color: #388be1;
}
}
.btn2:hover {
@@ -407,10 +424,10 @@ import { reactive, toRefs, ref } from "vue";
}
}
}
}
.main_btns {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
@@ -439,5 +456,4 @@ import { reactive, toRefs, ref } from "vue";
}
}
}
}
</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>
<a-drawer
:visible="Fvisible"
class="drawerStyle"
class="drawerStyle FaceManage"
placement="right"
width="60%"
@after-visible-change="afterVisibleChange"
@@ -60,7 +60,7 @@
<div class="wz">批量标注完成</div>
</div>
<div class="btn btn2">
<div class="wz">批量录入成绩</div>
<div class="wz" @click="showEntryScore">批量录入成绩</div>
</div>
<div class="btn btn2">
<div class="img2"></div>
@@ -80,7 +80,7 @@
<div class="right">清空</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
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
@@ -113,14 +113,42 @@
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</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>
</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,
@@ -130,7 +158,10 @@ export default {
setup(props, ctx) {
const state = reactive({
Evisible: false, //录入成绩抽屉
name: null,
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
@@ -245,14 +276,14 @@ export default {
dataIndex: "name",
key: "name",
width: 50,
align: "center",
className: "h",
align: "left",
className: "h head",
},
{
title: "所在部门",
dataIndex: "bum",
key: "bum",
width: 50,
width: 60,
align: "center",
className: "h",
},
@@ -260,7 +291,7 @@ export default {
title: "所在岗位",
dataIndex: "gangw",
key: "gangw",
width: 50,
width: 60,
align: "center",
className: "h",
},
@@ -268,7 +299,7 @@ export default {
title: "课程成绩",
dataIndex: "score",
key: "score",
width: 50,
width: 60,
align: "center",
className: "h",
},
@@ -276,7 +307,7 @@ export default {
title: "任务状态",
dataIndex: "state",
key: "state",
width: 50,
width: 60,
align: "center",
className: "h",
},
@@ -288,31 +319,158 @@ export default {
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);
state.selectedRowKeys = 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 scoped lang="scss" >
.drawerStyle {
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
<style lang="scss" >
.me {
.ant-modal-body {
padding: 0px;
}
}
.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 {
min-width: 600px;
margin: 0px 32px 0px 32px;
@@ -355,6 +513,9 @@ export default {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
}
// .name {
// margin-top: 8px;
@@ -493,15 +654,23 @@ export default {
}
}
}
.tab {
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
.tableBox {
.ant-table-selection-column {
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 {
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 {

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

@@ -0,0 +1,107 @@
<template>
<a-drawer
:visible="Svisible"
class="drawerStyle"
placement="right"
width="40%"
@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>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
export default {
name: "SubsetManage",
props: {
Svisible: {
type: Boolean,
default: false,
},
},
};
</script>
<style scoped lang="scss" >
.drawerStyle {
.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;
}
}
.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>
<a-drawer
:visible="Tvisible"
class="drawerStyle"
class="drawerStyle TimeManage"
placement="right"
width="60%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">在线时间管理</div>
<div class="headerTitle">在线时间管理</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@@ -18,6 +18,7 @@
<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
@@ -40,6 +41,7 @@
></a-select>
</div>
</div>
</div>
<div class="btns">
<div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div>
@@ -272,17 +274,19 @@ export default {
};
</script>
<style scoped lang="scss" >
.drawerStyle {
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
<style lang="scss" >
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
.TimeManage {
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
@@ -320,18 +324,18 @@ export default {
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;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
.name {
margin-top: 8px;
}
}
}
.btns {
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

@@ -27,7 +27,7 @@
@ok="closeModal"
:footer="null"
:closable="false"
wrapClassName="modalStyle"
wrapClassName="modalStyle faceModal"
width="80%"
>
<div class="modalHeader">
@@ -260,7 +260,7 @@ export default {
.certificateCenter {
width: 100%;
}
.modalStyle {
.faceModal {
.ant-modal {
.modalHeader {
display: flex;

View File

@@ -294,6 +294,8 @@
alt=""
/>
</div>
<span style="margin-right: 14px">课程名称</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
@@ -310,7 +312,6 @@
</div>
</div>
</div>
</div>
<div class="i2_cz">
<div class="i2_top">
<div class="i2_left">课程命名规则</div>
@@ -374,6 +375,24 @@
</div>
</a-upload>
</div>
<div class="i3_bottom">
<span style="color: #999ba3"
>高宽比为16:9 (:800*450) png或jpg图片</span
>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
<img
style="width: 10px; height: 10px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 14px">目标人群</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
@@ -390,15 +409,9 @@
</div>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
<img
style="width: 10px; height: 10px"
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
<span style="margin-right: 14px">课程价值</span>
</div>
<div class="item_inp">
<div class="i1_input">
@@ -416,22 +429,6 @@
</div>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">课程价值</span>
</div>
<div class="item_inp">
<div class="i1_input">
<a-input
v-model:value="value8"
maxlength="200"
style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入课程价值"
/>
</div>
</div>
</div>
<div class="mbl_items">
<div class="item_nam">
<div class="asterisk_icon">
@@ -522,6 +519,11 @@
style="width: 440px; height: 100px; border-radius: 8px"
placeholder="请输入"
/>
<div class="inp_num">
<span style="color: #c7cbd2"
>{{ value11.length }}/150</span
>
</div>
</div>
</div>
</div>
@@ -536,11 +538,6 @@
src="@/assets/images/coursewareManage/enclosure.png"
alt=""
/>
<div class="inp_num">
<span style="color: #c7cbd2"
>{{ value11.length }}/150</span
>
</div>
</div>
<span style="color: #4ea6ff">添加附件</span>
</div>
@@ -724,10 +721,10 @@
</div>
<a-tabs
class="b_menu"
v-model:activeKey="activeKey"
v-model:activeKey="faceManageTab"
size="large"
:tabBarStyle="{ marginLeft: '10px' }"
@change="coursemanageTabsChange"
@change="faceManageChange"
>
<a-tab-pane key="1" tab="报名管理">
<div class="b_menunav">
@@ -839,7 +836,7 @@
@ok="closeModal"
:footer="null"
:closable="false"
wrapClassName="modalStyle detailModal"
wrapClassName="modalStyle coursewareDetail"
width="80%"
>
<div class="modalHeader">
@@ -2318,7 +2315,7 @@ export default defineComponent({
valueC: "",
selectedRowKeys: [],
activeKey: "1",
faceManageTab: "1",
});
const fileList = ref([]);
const loading = ref(false);
@@ -2363,9 +2360,6 @@ export default defineComponent({
{value.status === "已审核" ? (
<div class="nselect">
<div class="ops1">
{value.courseform === "线上" ? (
<div class="jc" style={{ width: "30px" }}></div>
) : (
<div
class="jc"
style={{ width: "30px" }}
@@ -2375,7 +2369,6 @@ export default defineComponent({
>
开课
</div>
)}
</div>
<div class="ops2">
<div
@@ -2485,9 +2478,6 @@ export default defineComponent({
{value.status === "待审核" ? (
<div class="nselect">
<div class="ops1">
{value.courseform === "线上" ? (
<div class="jc" style={{ width: "30px" }}></div>
) : (
<div
class="jc"
style={{ width: "30px" }}
@@ -2497,7 +2487,6 @@ export default defineComponent({
>
开课
</div>
)}
</div>
<div class="ops1">
<div class="jc" style={{ width: "30px" }}></div>
@@ -2552,9 +2541,6 @@ export default defineComponent({
{value.status === "未提交" ? (
<div class="nselect">
<div class="ops1">
{value.courseform === "线上" ? (
<div class="jc" style={{ width: "30px" }}></div>
) : (
<div
class="jc"
style={{ width: "30px" }}
@@ -2564,7 +2550,6 @@ export default defineComponent({
>
开课
</div>
)}
</div>
<div class="ops2">
<div class="jc" style={{ width: "30px" }}>
@@ -2576,46 +2561,6 @@ export default defineComponent({
复制
</div>
</div>
<div class="tableSelect">
<div class="ops4">
<a-select
style="width: 50px;margin-top:2px;margin-left:15px"
value="授权"
// options={state.projectNameList}
dropdownClassName="tabledropdown"
>
<a-select-option value="权限名单" label="权限名单">
<div
onClick={() => {
state.gpm_hs = true;
}}
>
权限名单
</div>
</a-select-option>
<a-select-option value="归属权" label="归属权">
<div
onClick={() => {
console.log("点击了");
}}
>
归属权
</div>
</a-select-option>
<a-select-option value="查看权" label="查看权">
<div>查看权</div>
</a-select-option>
<a-select-option value="管理权" label="管理权">
<div>管理权</div>
</a-select-option>
</a-select>
</div>
</div>
<div class="ops5">
<div class="jc" style="margin-left:22px">
删除
</div>
</div>
</div>
) : (
<div></div>
@@ -2623,9 +2568,6 @@ export default defineComponent({
{value.status === "审核未通过" ? (
<div class="nselect">
<div class="ops1">
{value.courseform === "线上" ? (
<div class="jc" style={{ width: "30px" }}></div>
) : (
<div
class="jc"
style={{ width: "30px" }}
@@ -2635,7 +2577,6 @@ export default defineComponent({
>
开课
</div>
)}
</div>
<div class="ops2">
<div class="jc" style={{ width: "30px" }}>
@@ -2699,7 +2640,6 @@ export default defineComponent({
state.tableData = datas;
};
getTableDate();
const getTableDate2 = () => {
let data2 = state.tableData7;
data2.map((value) => {
@@ -2763,7 +2703,6 @@ export default defineComponent({
state.tableData = data2;
};
getTableDate2();
const getTableDate3 = () => {
let datas = state.tableData6;
datas.map((value) => {
@@ -2821,7 +2760,6 @@ export default defineComponent({
state.tableData = datas;
};
getTableDate3();
const getTableDate4 = () => {
let data2 = state.tableData7;
data2.map((value) => {
@@ -2882,7 +2820,6 @@ export default defineComponent({
state.tableData = data2;
};
getTableDate4();
const onftvalue = ref();
const options1 = ref([
{
@@ -2953,8 +2890,7 @@ export default defineComponent({
};
const om_exit = () => {
state.om_1 = false;
// console.log("点击关闭");
state.activeKey = "1";
state.faceManageTab = "1";
};
const ckxq_hs = () => {
state.om_ckxq = true;
@@ -3001,10 +2937,10 @@ export default defineComponent({
state.selectedRowKeys = selectedRowKeys;
};
const coursemanageTabsChange = (e) => {
// console.log("eee", e);
state.activeKey = e;
const faceManageChange = (e) => {
state.faceManageTab = e;
};
return {
onftvalue,
current,
@@ -3046,7 +2982,7 @@ export default defineComponent({
agreestudy_exit,
rejectstudy_exit,
onSelectChange,
coursemanageTabsChange,
faceManageChange,
};
},
});
@@ -3060,7 +2996,6 @@ export default defineComponent({
// color: #4EA6FF !important;
// }
// }
.courseManage {
width: 100%;
height: 100%;
@@ -3284,7 +3219,6 @@ export default defineComponent({
margin-left: 100px;
}
}
.mb_right {
width: 50%;
.mbl_items {
@@ -3468,7 +3402,6 @@ export default defineComponent({
}
}
}
.selectonlineface {
z-index: 999;
width: 679px;
@@ -3560,32 +3493,14 @@ export default defineComponent({
justify-content: center;
margin-left: 6px;
}
.cstm_items {
.b_sub {
width: 440px;
margin-left: 110px;
.bs_header {
display: flex;
width: 80%;
margin: auto;
align-items: center;
margin-bottom: 23px;
.signbox {
justify-content: space-between;
.b_right {
display: flex;
justify-content: end;
width: 100px;
margin-right: 6px;
.sign {
margin-top: -5px;
margin-right: 4px;
}
}
.b_input {
flex: 1;
position: relative;
.upload_box {
display: flex;
}
.inp_num {
position: absolute;
top: 9px;
right: 10px;
}
}
}
@@ -3694,6 +3609,7 @@ export default defineComponent({
}
.b_input {
flex: 1;
position: relative;
.upload_box {
display: flex;
cursor: pointer;
@@ -3703,6 +3619,11 @@ export default defineComponent({
margin-right: 5px;
}
}
.inp_num {
position: absolute;
top: 9px;
right: 10px;
}
}
}
.items_fj {
@@ -3741,7 +3662,6 @@ export default defineComponent({
}
}
}
//QR
.ant-modal {
.ant-modal-content {
@@ -3835,7 +3755,6 @@ export default defineComponent({
}
}
}
//recordgrade
.ant-modal {
.ant-modal-content {
@@ -4136,7 +4055,6 @@ export default defineComponent({
}
}
}
//onlinemanage faceteachmanage ftsturecord givepower schooltime studentsmanage
.modalStyle {
.ant-modal {
@@ -4670,18 +4588,8 @@ export default defineComponent({
}
}
}
.detailModal {
// display: flex;
// align-items: center;
// justify-content: center;
.ant-modal {
height: 350px;
.coursewareDetail .ant-modal {
height: 320px;
margin-top: 100px;
}
.ant-modal-content {
height: 350px !important;
}
}
</style>

View File

@@ -78,7 +78,7 @@
</div>
<!-- 添加在线侧弹窗 -->
<div>
<add-online v-model:addonlineVisible="visible" />
<add-online v-model:addonlineVisible="addonlinevisible" />
</div>
<!-- 添加在线侧弹窗 -->
<div class="lin"></div>
@@ -92,7 +92,7 @@
</div>
<!-- 添加面授侧弹窗 -->
<div>
<add-faceteach v-model:addfaceteachVisible="visible3" />
<add-faceteach v-model:addfaceteachVisible="addfaceteachvisible" />
</div>
<!-- 添加面授侧弹窗 -->
<div class="lin"></div>
@@ -243,7 +243,7 @@
</div>
<!-- 编辑在线侧弹窗 -->
<div>
<edit-online v-model:editonlineVisible="visible2" />
<edit-online v-model:editonlineVisible="editonlinevisible" />
</div>
<!-- 编辑在线侧弹窗 -->
</div>
@@ -644,9 +644,9 @@ export default {
currentPage: 1,
tableDataTotal: 100,
pageSize: 10,
visible: false,
visible2: false,
visible3: false,
addonlinevisible: false,
addfaceteachvisible: false,
editonlinevisible: false,
stage: false,
selectedRowKeys: [],
});
@@ -763,7 +763,7 @@ export default {
<div class="opacation">
<span
onClick={() => {
state.visible2 = true;
state.editonlinevisible = true;
}}
style="color:#4EA6FF;margin-right:25px;cursor:pointer"
>
@@ -807,11 +807,10 @@ export default {
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
});
const showDrawerOnline = () => {
state.visible = true;
state.addonlinevisible = true;
};
const showDrawerFaceteach = () => {
state.visible3 = true;
console.log(state.visible3);
state.addfaceteachvisible = true;
};
return {
...toRefs(state),

View File

@@ -56,9 +56,7 @@
<div class="second">
<div
class="taskbox"
style="
background: linear-gradient(180deg,#FEF3DD,#FFFAF0);
"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left1.png" />
@@ -77,7 +75,11 @@
<div
class="taskbox"
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">
@@ -98,7 +100,11 @@
class="taskbox"
@click="showModal"
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">
@@ -333,7 +339,9 @@
</div>
</div>
<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>
@@ -370,7 +378,9 @@
</div>
</div>
<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>
@@ -405,7 +415,9 @@
</div>
</div>
<div class="operations">
<div class="operation">管理</div>
<div class="operation" style="cursor: pointer" @click="showWork">
管理
</div>
</div>
</div>
<div class="course">
@@ -456,21 +468,58 @@
<a-tab-pane key="8" tab="学员管理">
<div class="group">
<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>
<a-input v-model:value="value" placeholder="请输入姓名" />
</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>
<a-input v-model:value="value" placeholder="请输入小组名称" />
<a-input
v-model:value="value"
placeholder="请输入小组名称"
/>
</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>
<a-select v-model:value="value" placeholder="请选择部门" />
<a-select
v-model:value="value"
placeholder="请选择部门"
/>
</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>
<a-select v-model:value="value" placeholder="是否为优秀学员" :options="goodstuList"/>
<a-select
v-model:value="value"
placeholder="是否为优秀学员"
:options="goodstuList"
/>
</div>
</div>
<div class="groupright">
@@ -485,7 +534,7 @@
</div>
</div>
<div class="second2" style="margin-top: 20px">
<div class="btn1" @click="showModal2">
<div class="btn1">
<img src="../../assets/images/courseManage/add0.png" />
<span class="btn1text">添加学员</span>
</div>
@@ -512,7 +561,7 @@
</div>
<div class="clear">清空</div>
</div>
<div class="tab" style="margin: 20px 32px 0 32px">
<div class="tab" style="margin: 20px 32px 30px 32px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
@@ -545,7 +594,10 @@
<div class="group">
<div class="groupleft">
<div class="groupname">小组名称</div>
<a-input v-model:value="value" placeholder="请输入小组名称" />
<a-input
v-model:value="value"
placeholder="请输入小组名称"
/>
</div>
<div class="groupright">
<div class="btn1">
@@ -563,7 +615,7 @@
<img src="../../assets/images/courseManage/add0.png" />
<span class="btn1text">创建小组</span>
</div>
<div class="btn2">
<div class="btn2" @click="showSubset">
<img src="../../assets/images/courseManage/reset2.png" />
<span class="btn2text">随机分组</span>
</div>
@@ -574,7 +626,10 @@
<div class="grouptitle">
<div class="goodgruop">好好学习小组</div>
<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="sammo">编辑</div>
<div class="sammo">删除</div>
@@ -589,10 +644,26 @@
<div class="grofooter">
<div class="ftext">组员名单 ></div>
<div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></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 class="people1">
<img
src="../../assets/images/taskpage/people1.png"
/>
</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>
@@ -602,7 +673,10 @@
<div class="grouptitle">
<div class="goodgruop">全能小组</div>
<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="sammo">编辑</div>
<div class="sammo">删除</div>
@@ -617,10 +691,26 @@
<div class="grofooter">
<div class="ftext">组员名单 ></div>
<div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></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 class="people1">
<img
src="../../assets/images/taskpage/people1.png"
/>
</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>
@@ -630,7 +720,10 @@
<div class="grouptitle">
<div class="goodgruop">宇宙第一最强小组</div>
<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="sammo">编辑</div>
<div class="sammo">删除</div>
@@ -645,10 +738,26 @@
<div class="grofooter">
<div class="ftext">组员名单 ></div>
<div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></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 class="people1">
<img
src="../../assets/images/taskpage/people1.png"
/>
</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>
@@ -658,7 +767,10 @@
<div class="grouptitle">
<div class="goodgruop">天天向上小组</div>
<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="sammo">编辑</div>
<div class="sammo">删除</div>
@@ -673,10 +785,26 @@
<div class="grofooter">
<div class="ftext">组员名单 ></div>
<div class="peoples">
<div class="people1"><img src="../../assets/images/taskpage/people1.png"/></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 class="people1">
<img
src="../../assets/images/taskpage/people1.png"
/>
</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>
@@ -700,6 +828,14 @@
<time-manage v-model:Tvisible="visible" />
<!-- 面授管理抽屉 -->
<face-manage v-model:Fvisible="FaceVisivle" />
<!-- 学员小组管理创建小组抽屉 -->
<subset-manage v-model:Svisible="subsetVisivle" />
<!-- 面授学员抽屉 -->
<face-stu v-model:FSvisible="FSvisible" />
<!-- 活动考勤抽屉 -->
<active-attendance v-model:AAvisible="AAvisible" />
<!-- 作业管理抽屉 -->
<work-manage v-model:Wvisible="Wvisible" />
<!-- 概览无数据-项目发布弹窗 -->
<div>
<a-modal
@@ -720,7 +856,11 @@
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%);
background: linear-gradient(
0deg,
rgba(78, 166, 255, 0) 0%,
rgba(78, 166, 255, 0.2) 100%
);
"
>
<div class="headerLeft" style="margin-left: 32px">
@@ -788,8 +928,20 @@
width="624px"
height="332px"
>
<div 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.2000) 100%)"
<div
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">
<span class="headerLeftText" style="font-size: 16px">创建小组</span>
@@ -821,7 +973,7 @@
<div class="name">
<div class="star" style="margin-top: -4px">
<img
style="width: 10px; height: 10px"
style="width: 10px; height: 10px; margin-left: 15px"
src="../../assets/images/basicinfo/asterisk.png"
/>
</div>
@@ -848,9 +1000,20 @@
import { reactive, toRefs } from "vue";
import TimeManage from "../../components/drawers/TimeManage";
import FaceManage from "../../components/drawers/FaceManage";
import SubsetManage from "../../components/drawers/SubsetManage";
import ActiveAttendance from "../../components/drawers/ActiveAttendance";
import WorkManage from "../../components/drawers/WorkManage.vue";
import FaceStu from "../../components/drawers/FaceStu";
export default {
name: "taskPage",
components: { TimeManage, FaceManage },
components: {
TimeManage,
FaceManage,
SubsetManage,
FaceStu,
ActiveAttendance,
WorkManage,
},
setup() {
const state = reactive({
goodstuList: [
@@ -890,7 +1053,7 @@ export default {
group: "天天向上",
progress: "5/20",
diploma: "0",
stutime: "2022-10-31 23:12:00",
stutime: "2022-10-21 23:12:00",
putin: "手动加入",
},
{
@@ -901,7 +1064,7 @@ export default {
group: "好好学习",
progress: "5/20",
diploma: "0",
stutime: "2022-10-31 23:12:00",
stutime: "2022-10-11 23:12:00",
putin: "手动加入",
},
{
@@ -972,6 +1135,10 @@ export default {
width: 50,
align: "center",
className: "h",
sorter: {
compare: (a, b) => a.stutime - b.stutime,
multiple: 3,
},
},
{
title: "加入方式",
@@ -992,13 +1159,17 @@ export default {
],
visible: false, //时间管理
FaceVisivle: false, //面授管理
subsetVisivle: false, //随机小组
FSvisible: false, //面授学员
AAvisible: false, //活动考勤
Wvisible: false, //作业管理
pubproject: false,
stugroup: false,
checked: false,
checked1: true,
checked2: false,
activeKey: '3',
activeKey1: '8',
activeKey: "3",
activeKey1: "8",
});
const showModal = () => {
state.pubproject = true;
@@ -1023,6 +1194,23 @@ export default {
// console.log("点击管理");
state.FaceVisivle = true;
};
const showSubset = () => {
//面授管理的抽屉
// console.log("点击管理");
state.subsetVisivle = true;
};
//面授学员的弹窗
const showFS = () => {
state.FSvisible = true;
};
//活动考勤的抽屉
const showAA = () => {
state.AAvisible = true;
};
//作业管理的抽屉
const showWork = () => {
state.Wvisible = true;
};
return {
...toRefs(state),
showModal,
@@ -1031,6 +1219,10 @@ export default {
closeModal2,
showTime,
showFace,
showSubset,
showFS,
showAA,
showWork,
};
},
};
@@ -1211,7 +1403,6 @@ export default {
}
}
}
}
.pubtn {
display: flex;
@@ -1223,25 +1414,25 @@ export default {
height: 40px;
margin-right: 16px;
margin-bottom: 29px;
border: 1px solid #409EFF;
border: 1px solid #409eff;
border-radius: 4px;
color: rgba(78, 166, 255, 1);
font-size: 14px;
//line-height: 36px;
align-items: center;
background: rgba(255, 255, 255, 1)
background: rgba(255, 255, 255, 1);
}
.pubtn2 {
width: 100px;
height: 40px;
margin-bottom: 29px;
border: 1px solid #409EFF;
border: 1px solid #409eff;
border-radius: 4px;
color: #FFFFFF;
color: #ffffff;
font-size: 14px;
align-items: center;
//line-height: 36px;
background: #409EFF;
background: #409eff;
}
}
}
@@ -1794,12 +1985,12 @@ export default {
align-items: center;
justify-content: center;
margin-right: 16px;
border: 1px solid #409EFF;
border: 1px solid #409eff;
border-radius: 8px;
background: #409EFF;
background: #409eff;
cursor: pointer;
.btn1text {
color: #FFFFFF;
color: #ffffff;
margin-left: 5px;
font-size: 14px;
}
@@ -1811,12 +2002,12 @@ export default {
align-items: center;
justify-content: center;
margin-right: 32px;
border: 1px solid #409EFF;
border: 1px solid #409eff;
border-radius: 8px;
cursor: pointer;
background: #FFFFFF;
background: #ffffff;
.btn2text {
color: #409EFF;
color: #409eff;
margin-left: 5px;
font-size: 14px;
}
@@ -1899,7 +2090,7 @@ export default {
.clear {
cursor: pointer;
font-size: 14px;
color: #387DF7;
color: #387df7;
line-height: 24px;
position: absolute;
right: 20px;
@@ -1908,11 +2099,11 @@ export default {
.tab {
.ant-table-thead > tr > th {
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 {
border-bottom: 1px solid #F0F6FC;
color: rgba(0, 0, 0, 0.6500);
border-bottom: 1px solid #f0f6fc;
color: rgba(0, 0, 0, 0.65);
}
th.h {
background-color: #eff4fc !important;
@@ -1944,8 +2135,8 @@ export default {
height: 181px;
display: flex;
justify-content: center;
border: 1px solid #E9E9E9;
box-shadow: 1px 1px 18px 1px rgba(0, 0, 0, 0.0500);
border: 1px solid #e9e9e9;
box-shadow: 1px 1px 18px 1px rgba(0, 0, 0, 0.05);
margin-top: 16px;
margin-right: 20px;
.grouptitle {
@@ -1954,7 +2145,7 @@ export default {
margin-top: 5px;
border-bottom: 1px solid rgba(232, 232, 232, 1);
.goodgruop {
color: rgba(0, 0, 0, 0.8500);
color: rgba(0, 0, 0, 0.85);
font-size: 16px;
line-height: 36px;
font-weight: 600;