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

View File

@@ -0,0 +1,734 @@
<template>
<a-drawer
:visible="AAvisible"
class="largeDrawerStyle"
placement="right"
width="80%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">活动考勤</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="main">
<div class="titl">
<div class="endtime">
起止时间2022-07-21 14:00 2022-7-30 14:00
</div>
<div class="endtime" style="margin-left: 64px">签到时间14:00</div>
<div class="endtime" style="margin-left: 40px">签退时间21:00</div>
</div>
<div class="search">
<div class="leftchoose">
<div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div>
<a-input
v-model:value="name"
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="请输入姓名"
/>
</div>
<div class="namecon" style="margin-right: 30px">
<div class="name">考勤</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 160px"
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</div>
<div class="namecon">
<div class="name">签到状态</div>
<div class="select">
<a-select
v-model:value="projectName2"
style="width: 160px"
placeholder="请选择"
:options="projectNameList2"
@change="selectProjectName2"
allowClear
showSearch
></a-select>
</div>
</div>
</div>
<div class="btns">
<div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">搜索</div>
</div>
<div class="btn btn2">
<div class="img2"></div>
<div class="wz">重置</div>
</div>
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1">
<div class="wz">批量签到</div>
</div>
<div class="btn btn2">
<div class="wz" @click="showEntryScore">批量签退</div>
</div>
<div class="btn btn2">
<div class="img2"></div>
<div class="wz">导出数据</div>
</div>
</div>
<div class="line">
<div class="inline">
<div class="left">
<div class="img"></div>
<div class="text" style="margin-left: 10px">已选择</div>
<div class="text2">2</div>
<div class="text"></div>
<div class="text3">列表选项总计</div>
<div class="text4">9</div>
</div>
<div class="right">清空</div>
</div>
</div>
<!-- <div class="pad"></div> -->
<div class="tableBox" style="margin-top: 30px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div>
<!-- <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900, y: 350 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div> -->
</div>
</div>
<div class="botm"></div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "ActiveAttendance",
props: {
AAvisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
Evisible: false, //录入成绩抽屉
name: null,
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
selectedRowKeys: [],
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
projectNameList2: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tableData: [
{
key: 1,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "-",
jin: "-",
time: "缺勤",
state: "异常",
},
{
key: 2,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "-",
time: "签到",
state: "正常",
},
{
key: 3,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 4,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 5,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 6,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 8,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "请假",
state: "正常",
},
],
options: [
{
label: "Apple",
value: "Apple",
},
{
label: "Pear",
value: "Pear",
},
{
label: "Orange",
value: "Orange",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const selectProjectName2 = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:AAvisible", false);
};
const showEntryScore = () => {
state.Evisible = true;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
const tableDataFunc = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 50,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
return (
<div class="racona">
<span> {text.record.name}</span>
</div>
);
},
},
{
title: "所在部门",
dataIndex: "com",
// width: "30%",
key: "com",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gang",
key: "gang",
width: 50,
align: "center",
className: "h",
},
{
title: "签到时间",
dataIndex: "cur",
key: "cur",
width: 110,
align: "center",
className: "h",
},
{
title: "签退时间",
dataIndex: "jin",
key: "jin",
width: 110,
align: "center",
className: "h",
},
{
title: "考勤",
dataIndex: "time",
key: "time",
width: 50,
align: "center",
className: "h",
},
{
title: "签到状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 210,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<a-checkbox-group />
</div>
);
},
},
];
return columns;
};
return {
...toRefs(state),
selectProjectName,
selectProjectName2,
closeDrawer,
onSelectChange,
showEntryScore,
tableDataFunc,
};
},
};
</script>
<style lang="scss" >
.me {
.ant-modal-body {
padding: 0px;
}
}
.largeDrawerStyle {
// width: 80%;
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.main {
width: 100%;
height: 100%;
// background-color: #bfa;
// overflow-y: auto;
.titl {
display: flex;
.endtime {
font-size: 16px;
font-weight: 500;
color: #333333;
}
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
justify-content: space-between;
.leftchoose {
display: flex;
margin-right: 20px;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
white-space: nowrap;
}
// .name {
// margin-top: 8px;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
}
}
.btns {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 100px;
height: 40px;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 16px;
height: 18px;
background-image: url(../../assets/images/courseManage/reset1.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
}
}
}
.btnss {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 130px;
height: 40px;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 17px;
height: 16px;
background-image: url(../../assets/images/coursewareManage/export.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
margin-right: 20px;
color: #ffffff;
}
.btn2 {
background: #ffffff;
margin-right: 20px;
color: #388be1;
border: 1px solid #388be1;
}
}
.line {
width: 100%;
height: 40px;
background-color: #e9f6fe;
display: flex;
justify-content: center;
align-items: center;
margin-top: 20px;
border: 1px solid #c3e6fc;
.inline {
width: 95%;
height: 100%;
display: flex;
justify-content: space-between;
// background-color: #bfa;
.left {
height: 100%;
display: flex;
align-items: center;
.img {
width: 14px;
height: 15px;
background-image: url(../../assets/images/leveladd/gan.png);
background-size: 100% 100%;
}
.text {
color: #999ba3;
}
.text2 {
color: #4ea6ff;
margin-left: 5px;
margin-right: 5px;
}
.text3 {
color: #999ba3;
margin-left: 20px;
}
}
.right {
font-size: 14px;
font-weight: 400;
color: #387df7;
height: 100%;
display: flex;
align-items: center;
cursor: pointer;
}
}
}
.pad {
width: 96%;
height: 10px;
background-color: #fff;
position: absolute;
}
.tableBox {
// margin-bottom: 80px;
.classify {
// margin-left: 11px !important;
// padding-left: 9px !important;
padding-left: 0px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.opa {
background-color: #bfa;
}
}
// .tab {
// .ant-table-thead > tr > th {
// background-color: rgba(239, 244, 252, 1) !important;
// }
// th.h {
// background-color: #eff4fc !important;
// }
// .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
}
}
// .botm {
// width: 100%;
// height: 100%;
// background-color: red;
// // flex-shrink: 1;
// }
.btnn {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
</style>

View File

@@ -3,13 +3,13 @@
:visible="addfaceteachVisible" :visible="addfaceteachVisible"
class="drawerStyle" class="drawerStyle"
width="80%" width="80%"
title="添加在线" title="添加面授"
placement="right" placement="right"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">添加在线</div> <div class="headerTitle">添加面授</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -17,94 +17,194 @@
/> />
</div> </div>
<div class="contentMain"> <div class="contentMain">
<div class="main_items"> <div class="main_left">
<div class="mi_ipts"> <div class="main_item">
<div class="mii_ipt"> <div class="signbox">
<div class="ipt_name">课程编号</div> <div class="sign">
<div class="fi_input"> <img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">课程名称</span>
</div>
<div class="btnbox">
<a-input <a-input
v-model:value="value1" v-model:value="value2"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 384px; height: 32px"
placeholder="请输入项目名称" placeholder="请输入小组名称"
/> />
</div> </div>
</div> </div>
<div class="mii_ipt"> <div class="main_item">
<div class="ipt_name">内容分类</div> <div class="signbox">
<div class="select"> <div class="sign">
<a-select <img
dropdownClassName="dropdown-style" src="@/assets/images/coursewareManage/asterisk.png"
style="width: 240px" alt=""
placeholder="请选择" />
:options="options1" </div>
allowClear <span style="margin-right: 3px">选择课程</span>
showSearch </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> </div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div> </div>
<div class="mi_btns"> <span style="margin-right: 3px">授课教师</span>
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btnbox">
<div class="search"></div> <a-input
<div class="btnText">重置</div> v-model:value="value2"
style="width: 384px; height: 32px"
placeholder="请输入授课教师"
/>
</div> </div>
</div> </div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div> </div>
<div class="main_notice"> <span style="margin-right: 3px">面授时间</span>
<div class="mntc_left"> </div>
<div class="notice_icon"></div> <div class="btnbox">
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px" <a-range-picker
>已选择 <span style="color: #388be1">4</span> </span :placeholder="[' 开始时间', ' 结束时间']"
> />
<span style="color: rgba(0, 0, 0, 0.65)" </div>
>列表选项总计<span>14</span> </span </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>
<div class="mntc_right">
<span style="color: #387df7; margin-right: 24px">清空</span>
</div> </div>
</div> </div>
<div class="main_table"> </div>
<a-table <div class="main_item">
class="ant-table-striped" <div class="signbox">
:row-class-name=" <span style="margin-right: 3px">完成标准设置</span>
(_record, index) => (index % 2 === 1 ? 'table-striped' : null) </div>
" <div class="btnbox">
:row-selection="rowSelection" <a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
:columns="columns1" <a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
:data-source="tableData1" </div>
:loading="tableDataTotal === -1 ? true : false" </div>
:pagination="{ <div class="main_item">
showSizeChanger: true, <div class="signbox">
showQuickJumper: true, <span style="margin-right: 3px">其他设置</span>
hideOnSinglePage: true, </div>
pageSizeOptions: [], <div class="btnbox">
pageSize: pageSize, <a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
current: currentPage, </div>
total: tableDataTotal, </div>
onChange: (page, pageSize) => { <div class="main_item2">
currentPage = page; <div class="signbox">
// console.log('page', page) <span style="margin-right: 3px">现场参与</span>
// 加翻页查找代码 </div>
// this.setState({ <div class="btnbox2">
// currentPage: page, <a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
// }, () => { <a-checkbox v-model:checked="checked">Checkbox</a-checkbox>
// this.getMilitaryDeployment() </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>
<div class="main_btns"> <div class="main_btns">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
</div> </div>
</div>
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
@@ -278,13 +378,13 @@ export default {
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
}; };
const showDrawerFaceteach = () => { // const showDrawerFaceteach = () => {
state.visible3 = true; // state.addfaceteachvisible = true;
}; // };
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
showDrawerFaceteach, // showDrawerFaceteach,
closeDrawer, closeDrawer,
options1, options1,
columns1, columns1,
@@ -315,117 +415,92 @@ export default {
} }
} }
.contentMain { .contentMain {
.main_items {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 12px; .main_left {
flex-wrap: wrap; margin-right: 30px;
.mi_ipts { .main_item {
display: flex; 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; align-items: center;
margin-bottom: 32px; 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; height: 40px;
background-color: #e9f6fe; background: #388be1;
.mntc_left { 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; display: flex;
align-items: center; align-items: center;
.notice_icon { flex-wrap: nowrap;
width: 14px;
height: 14px;
margin-right: 9px;
margin-left: 9px;
background-image: url(@/assets/images/coursewareManage/gan.png);
background-size: 100% 100%;
} }
} }
.mntc_right { }
.btnbox2{
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer; 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 { .main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;
position: absolute;
bottom: 0; bottom: 0;
left: 0; left: 0;
display: flex; display: flex;
@@ -453,6 +528,5 @@ export default {
} }
} }
} }
}
} }
</style> </style>

View File

@@ -57,16 +57,23 @@
<div class="main_notice"> <div class="main_notice">
<div class="mntc_left"> <div class="mntc_left">
<div class="notice_icon"></div> <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, 0.65); margin-right: 17px"
<span style="color:rgba(0, 0, 0, .65)">列表选项总计<span>14</span> </span> >已选择 <span style="color: #388be1">4</span> </span
>
<span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>14</span> </span
>
</div> </div>
<div class="mntc_right"> <div class="mntc_right">
<span style="color:#387DF7; margin-right:24px;">清空</span> <span style="color: #387df7; margin-right: 24px">清空</span>
</div> </div>
</div> </div>
<div class="main_table"> <div class="main_table">
<a-table class="ant-table-striped" <a-table
:row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)" class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection" :row-selection="rowSelection"
:columns="columns1" :columns="columns1"
:data-source="tableData1" :data-source="tableData1"
@@ -92,70 +99,74 @@
}" }"
/> />
</div> </div>
</div>
<div class="main_btns"> <div class="main_btns">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
</div> </div>
</div>
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
const options1 = ref([ const options1 = ref([
{ {
value: "value1", value: "value1",
label: "请选择状态", label: "请选择状态",
}, },
]); ]);
const columns1 = [ const columns1 = [
{ {
title: "课程编号", title: "课程编号",
width: '20%', width: "20%",
dataIndex: "num", dataIndex: "num",
key: "num", key: "num",
align: "center", align: "center",
}, },
{ {
title: "名称", title: "名称",
width: '20%', width: "20%",
dataIndex: "name", dataIndex: "name",
key: "name", key: "name",
align: "center", align: "center",
}, },
{ {
title: "内容分类", title: "内容分类",
width: '13%', width: "13%",
dataIndex: "content", dataIndex: "content",
key: "content", key: "content",
align: "center", align: "center",
}, },
{ {
title: "授课教师", title: "授课教师",
width: '13%', width: "13%",
dataIndex: "teacher", dataIndex: "teacher",
key: "teacher", key: "teacher",
align: "center", align: "center",
}, },
{ {
title: "创建人", title: "创建人",
width: '13%', width: "13%",
dataIndex: "creator", dataIndex: "creator",
key: "creator", key: "creator",
align: "center", align: "center",
}, },
{ {
title: "完成时间", title: "完成时间",
width: '20%', width: "20%",
dataIndex: "time", dataIndex: "time",
key: "time", key: "time",
align: "center", align: "center",
}, },
] ];
const rowSelection = ref({ const rowSelection = ref({
checkStrictly: false, checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
}, },
onSelect: (record, selected, selectedRows) => { onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows); console.log(record, selected, selectedRows);
@@ -163,8 +174,8 @@ import { reactive, toRefs, ref } from "vue";
onSelectAll: (selected, selectedRows, changeRows) => { onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows); console.log(selected, selectedRows, changeRows);
}, },
}); });
export default { export default {
name: "AddOnline", name: "AddOnline",
props: { props: {
addonlineVisible: { addonlineVisible: {
@@ -177,84 +188,84 @@ import { reactive, toRefs, ref } from "vue";
tableData1: [ tableData1: [
{ {
key: "1", key: "1",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'通用力', content: "通用力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "2", key: "2",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'管理能力课程', name: "管理能力课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "3", key: "3",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'快速换模SMED', name: "快速换模SMED",
content:'通用力', content: "通用力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "4", key: "4",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'巧妙对话人见人夸', name: "巧妙对话人见人夸",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "5", key: "5",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'管理能力课程', name: "管理能力课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "6", key: "6",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "7", key: "7",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "8", key: "8",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "9", key: "9",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
], ],
currentPage: 1, currentPage: 1,
@@ -304,24 +315,24 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
.contentMain { .contentMain {
.main_items{ .main_items {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 12px; margin-bottom: 12px;
flex-wrap: wrap; flex-wrap: wrap;
.mi_ipts{ .mi_ipts {
display: flex; display: flex;
margin-bottom: 20px; margin-bottom: 20px;
.mii_ipt{ .mii_ipt {
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 24px; margin-right: 24px;
.ipt_name{ .ipt_name {
white-space: nowrap; white-space: nowrap;
} }
} }
} }
.mi_btns{ .mi_btns {
display: flex; display: flex;
margin-left: 38px; margin-left: 38px;
margin-bottom: 20px; margin-bottom: 20px;
@@ -353,7 +364,7 @@ import { reactive, toRefs, ref } from "vue";
height: 17px; height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png"); background-image: url("@/assets/images/coursewareManage/search0.png");
} }
.btnText{ .btnText {
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
} }
} }
@@ -364,7 +375,7 @@ import { reactive, toRefs, ref } from "vue";
height: 17px; height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png"); background-image: url("@/assets/images/coursewareManage/reset1.png");
} }
.btnText{ .btnText {
color: rgb(64, 158, 255); color: rgb(64, 158, 255);
} }
} }
@@ -374,7 +385,7 @@ import { reactive, toRefs, ref } from "vue";
background-image: url("@/assets/images/courseManage/search1.png"); background-image: url("@/assets/images/courseManage/search1.png");
} }
.btnText { .btnText {
color: #388BE1; color: #388be1;
} }
} }
.btn2:hover { .btn2:hover {
@@ -388,17 +399,17 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
} }
.main_notice{ .main_notice {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 32px; margin-bottom: 32px;
height: 40px; height: 40px;
background-color: #E9F6FE; background-color: #e9f6fe;
.mntc_left{ .mntc_left {
display: flex; display: flex;
align-items: center; align-items: center;
.notice_icon{ .notice_icon {
width: 14px; width: 14px;
height: 14px; height: 14px;
margin-right: 9px; margin-right: 9px;
@@ -407,14 +418,15 @@ import { reactive, toRefs, ref } from "vue";
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.mntc_right{ .mntc_right {
cursor: pointer; cursor: pointer;
} }
} }
.main_btns{ }
.main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;
position: absolute;
bottom: 0; bottom: 0;
left: 0; left: 0;
display: flex; display: flex;
@@ -442,6 +454,5 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
} }
}
} }
</style> </style>

View File

@@ -19,7 +19,9 @@
<div class="contentMain"> <div class="contentMain">
<div class="main_item"> <div class="main_item">
<div class="signbox"> <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> <span style="margin-right: 3px">课程名称</span>
</div> </div>
<div class="fi_input"> <div class="fi_input">
@@ -32,12 +34,20 @@
</div> </div>
<div class="main_item"> <div class="main_item">
<div class="signbox"> <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> <span style="margin-right: 3px">选择课程</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<button class="xkbtn">选择课程</button> <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> </div>
<div class="main_items"> <div class="main_items">
@@ -78,8 +88,11 @@
</div> </div>
</div> </div>
<div class="main_table"> <div class="main_table">
<a-table class="ant-table-striped" <a-table
:row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped' : null)" class="ant-table-striped"
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="rowSelection" :row-selection="rowSelection"
:columns="columns1" :columns="columns1"
:data-source="tableData1" :data-source="tableData1"
@@ -105,70 +118,74 @@
}" }"
/> />
</div> </div>
</div>
<div class="main_btns"> <div class="main_btns">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>
</div> </div>
</div>
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
const options1 = ref([ const options1 = ref([
{ {
value: "value1", value: "value1",
label: "请选择状态", label: "请选择状态",
}, },
]); ]);
const columns1 = [ const columns1 = [
{ {
title: "课程编号", title: "课程编号",
width: '20%', width: "20%",
dataIndex: "num", dataIndex: "num",
key: "num", key: "num",
align: "center", align: "center",
}, },
{ {
title: "名称", title: "名称",
width: '20%', width: "20%",
dataIndex: "name", dataIndex: "name",
key: "name", key: "name",
align: "center", align: "center",
}, },
{ {
title: "内容分类", title: "内容分类",
width: '13%', width: "13%",
dataIndex: "content", dataIndex: "content",
key: "content", key: "content",
align: "center", align: "center",
}, },
{ {
title: "授课教师", title: "授课教师",
width: '13%', width: "13%",
dataIndex: "teacher", dataIndex: "teacher",
key: "teacher", key: "teacher",
align: "center", align: "center",
}, },
{ {
title: "创建人", title: "创建人",
width: '13%', width: "13%",
dataIndex: "creator", dataIndex: "creator",
key: "creator", key: "creator",
align: "center", align: "center",
}, },
{ {
title: "完成时间", title: "完成时间",
width: '20%', width: "20%",
dataIndex: "time", dataIndex: "time",
key: "time", key: "time",
align: "center", align: "center",
}, },
] ];
const rowSelection = ref({ const rowSelection = ref({
checkStrictly: false, checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows); console.log(
`selectedRowKeys: ${selectedRowKeys}`,
"selectedRows: ",
selectedRows
);
}, },
onSelect: (record, selected, selectedRows) => { onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows); console.log(record, selected, selectedRows);
@@ -176,8 +193,8 @@ import { reactive, toRefs, ref } from "vue";
onSelectAll: (selected, selectedRows, changeRows) => { onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows); console.log(selected, selectedRows, changeRows);
}, },
}); });
export default { export default {
name: "EditOnline", name: "EditOnline",
props: { props: {
editonlineVisible: { editonlineVisible: {
@@ -185,71 +202,71 @@ import { reactive, toRefs, ref } from "vue";
default: false, default: false,
}, },
}, },
setup( props,ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
tableData1: [ tableData1: [
{ {
key: "1", key: "1",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'通用力', content: "通用力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "2", key: "2",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'管理能力课程', name: "管理能力课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "3", key: "3",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'快速换模SMED', name: "快速换模SMED",
content:'通用力', content: "通用力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "4", key: "4",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'巧妙对话人见人夸', name: "巧妙对话人见人夸",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "5", key: "5",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'管理能力课程', name: "管理能力课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "6", key: "6",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
{ {
key: "7", key: "7",
num: 'JDF2022071100001', num: "JDF2022071100001",
name:'时间管理课程', name: "时间管理课程",
content:'领导力', content: "领导力",
teacher:'BOE教师', teacher: "BOE教师",
creator:'管理员', creator: "管理员",
time:'2022-10-31 23:12:00', time: "2022-10-31 23:12:00",
}, },
], ],
currentPage: 1, currentPage: 1,
@@ -295,25 +312,25 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
.contentMain { .contentMain {
.main_item{ .main_item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 32px; margin-bottom: 32px;
.signbox{ .signbox {
display: flex; display: flex;
align-items: center; align-items: center;
.sign{ .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.btnbox{ .btnbox {
display: flex; display: flex;
align-items: center; align-items: center;
.xkbtn { .xkbtn {
cursor: pointer; cursor: pointer;
width: 130px; width: 130px;
height: 40px; height: 40px;
background: #388BE1; background: #388be1;
border-radius: 8px; border-radius: 8px;
border: 0; border: 0;
margin-right: 8px; margin-right: 8px;
@@ -321,26 +338,26 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
} }
.main_items{ .main_items {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-wrap:wrap; flex-wrap: wrap;
margin-bottom: 12px; margin-bottom: 12px;
.mi_ipts{ .mi_ipts {
display: flex; display: flex;
margin-bottom: 20px; margin-bottom: 20px;
flex-wrap: wrap; flex-wrap: wrap;
.mii_ipt{ .mii_ipt {
display: flex; display: flex;
align-items: center; align-items: center;
margin-right: 24px; margin-right: 24px;
margin-bottom: 10px; margin-bottom: 10px;
.ipt_name{ .ipt_name {
white-space: nowrap; white-space: nowrap;
} }
} }
} }
.mi_btns{ .mi_btns {
display: flex; display: flex;
margin-left: 38px; margin-left: 38px;
margin-bottom: 20px; margin-bottom: 20px;
@@ -372,7 +389,7 @@ import { reactive, toRefs, ref } from "vue";
height: 17px; height: 17px;
background-image: url("@/assets/images/coursewareManage/search0.png"); background-image: url("@/assets/images/coursewareManage/search0.png");
} }
.btnText{ .btnText {
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
} }
} }
@@ -383,7 +400,7 @@ import { reactive, toRefs, ref } from "vue";
height: 17px; height: 17px;
background-image: url("@/assets/images/coursewareManage/reset1.png"); background-image: url("@/assets/images/coursewareManage/reset1.png");
} }
.btnText{ .btnText {
color: rgb(64, 158, 255); color: rgb(64, 158, 255);
} }
} }
@@ -393,7 +410,7 @@ import { reactive, toRefs, ref } from "vue";
background-image: url("@/assets/images/courseManage/search1.png"); background-image: url("@/assets/images/courseManage/search1.png");
} }
.btnText { .btnText {
color: #388BE1; color: #388be1;
} }
} }
.btn2:hover { .btn2:hover {
@@ -407,10 +424,10 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
} }
.main_btns{ }
.main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;
position: absolute;
bottom: 0; bottom: 0;
left: 0; left: 0;
display: flex; display: flex;
@@ -438,6 +455,5 @@ import { reactive, toRefs, ref } from "vue";
} }
} }
} }
}
} }
</style> </style>

View File

@@ -0,0 +1,338 @@
<template>
<a-drawer
:visible="Evisible"
class="drawerStyle EntryScores"
placement="right"
width="50%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">录入成绩</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="main">
<div class="isGood">
<div class="sta"></div>
<div class="cj">成绩</div>
<div class="ch">
<a-radio-group v-model:value="value">
<a-radio :value="1">合格</a-radio>
<a-radio :value="2">不合格</a-radio>
</a-radio-group>
</div>
</div>
<div class="score">
<div class="sleft">
<div class="sta"></div>
<div class="cj">得分</div>
<a-input
v-model:value="score"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-left: 15px;
"
placeholder="请输入分数"
/>
</div>
</div>
</div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "EntryScores",
props: {
Evisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
value: 1, //成绩是否合格的单选
score: null, //录入的成绩
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tabledata: [
{
key: 1,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "-",
state: "未完成",
},
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
],
tablecolumns: [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: 50,
align: "center",
className: "h",
},
{
title: "所在部门",
dataIndex: "bum",
key: "bum",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gangw",
key: "gangw",
width: 50,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 50,
align: "center",
className: "h",
},
{
title: "任务状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:Evisible", false);
};
return {
...toRefs(state),
selectProjectName,
closeDrawer,
};
},
};
</script>
<style scoped lang="scss" >
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
.EntryScores {
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.main {
width: 100%;
height: 100%;
.sta {
width: 10px;
height: 10px;
background-image: url(../../assets/images/basicinfo/asterisk.png);
background-size: 100%;
}
.cj {
font-size: 16px;
font-weight: 400;
color: rgba(0, 0, 0, 0.85);
margin-left: 6px;
}
// background-color: #bfa;
// overflow-y: auto;
.isGood {
display: flex;
align-items: center;
.ch {
margin-top: 2.5px;
margin-left: 15px;
}
}
.score {
display: flex;
margin-top: 30px;
.sleft {
display: flex;
align-items: center;
}
}
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

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

View File

@@ -0,0 +1,738 @@
<template>
<a-drawer
:visible="FSvisible"
class="largeDrawerStyle"
placement="right"
width="80%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">面授学员</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="main">
<div class="titl">
<div class="endtime">
起止时间2022-07-21 14:00 2022-7-30 14:00
</div>
<div class="endtime" style="margin-left: 64px">签到时间14:00</div>
<div class="endtime" style="margin-left: 40px">签退时间21:00</div>
</div>
<div class="search">
<div class="leftchoose">
<div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div>
<a-input
v-model:value="name"
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="请输入姓名"
/>
</div>
<div class="namecon" style="margin-right: 30px">
<div class="name">考勤</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 160px"
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</div>
<div class="namecon">
<div class="name">签到状态</div>
<div class="select">
<a-select
v-model:value="projectName2"
style="width: 160px"
placeholder="请选择"
:options="projectNameList2"
@change="selectProjectName2"
allowClear
showSearch
></a-select>
</div>
</div>
</div>
<div class="btns">
<div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">搜索</div>
</div>
<div class="btn btn2">
<div class="img2"></div>
<div class="wz">重置</div>
</div>
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">导入学员</div>
</div>
<div class="btn btn2">
<div class="wz">批量签到</div>
</div>
<div class="btn btn2">
<div class="wz" @click="showEntryScore">批量签退</div>
</div>
<div class="btn btn2">
<div class="img2"></div>
<div class="wz">导出数据</div>
</div>
</div>
<div class="line">
<div class="inline">
<div class="left">
<div class="img"></div>
<div class="text" style="margin-left: 10px">已选择</div>
<div class="text2">2</div>
<div class="text"></div>
<div class="text3">列表选项总计</div>
<div class="text4">9</div>
</div>
<div class="right">清空</div>
</div>
</div>
<!-- <div class="pad"></div> -->
<div class="tableBox" style="margin-top: 30px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div>
<!-- <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900, y: 350 }"
@expand="expandTable"
:pagination="false"
:row-selection="{
columnWidth: 30,
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div> -->
</div>
</div>
<div class="botm"></div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "FaceManage",
props: {
FSvisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
Evisible: false, //录入成绩抽屉
name: null,
showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮
pageSize: 10,
currentPage: 1,
tableDataTotal: 100,
selectedRowKeys: [],
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
projectNameList2: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tableData: [
{
key: 1,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "-",
jin: "-",
time: "缺勤",
state: "异常",
},
{
key: 2,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "-",
time: "签到",
state: "正常",
},
{
key: 3,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 4,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 5,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 6,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "签到/签退",
state: "正常",
},
{
key: 8,
name: "张三",
com: "产研部",
gang: "产品经理",
cur: "2022-10-31 23:12",
jin: "2022-10-31 23:12",
time: "请假",
state: "正常",
},
],
options: [
{
label: "Apple",
value: "Apple",
},
{
label: "Pear",
value: "Pear",
},
{
label: "Orange",
value: "Orange",
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const selectProjectName2 = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:FSvisible", false);
};
const showEntryScore = () => {
state.Evisible = true;
};
const onSelectChange = (selectedRowKeys) => {
console.log("selectedRowKeys changed: ", selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
};
const tableDataFunc = () => {
const columns = [
{
title: "姓名",
dataIndex: "name",
// width: "30%",
key: "name",
width: 50,
align: "left",
className: "classify",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: (text) => {
// console.log(text.record.checked1);
return (
<div class="racona">
<span> {text.record.name}</span>
</div>
);
},
},
{
title: "所在部门",
dataIndex: "com",
// width: "30%",
key: "com",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gang",
key: "gang",
width: 50,
align: "center",
className: "h",
},
{
title: "签到时间",
dataIndex: "cur",
key: "cur",
width: 110,
align: "center",
className: "h",
},
{
title: "签退时间",
dataIndex: "jin",
key: "jin",
width: 110,
align: "center",
className: "h",
},
{
title: "考勤",
dataIndex: "time",
key: "time",
width: 50,
align: "center",
className: "h",
},
{
title: "签到状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 210,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<a-checkbox-group />
</div>
);
},
},
];
return columns;
};
return {
...toRefs(state),
selectProjectName,
selectProjectName2,
closeDrawer,
onSelectChange,
showEntryScore,
tableDataFunc,
};
},
};
</script>
<style lang="scss" >
.me {
.ant-modal-body {
padding: 0px;
}
}
.largeDrawerStyle {
// width: 80%;
.ant-drawer-content-wrapper {
// max-width: 1000px;
.ant-drawer-header {
display: none !important;
}
.ant-drawer-body {
padding: 0;
}
}
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.main {
width: 100%;
height: 100%;
// background-color: #bfa;
// overflow-y: auto;
.titl {
display: flex;
.endtime {
font-size: 16px;
font-weight: 500;
color: #333333;
}
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
justify-content: space-between;
.leftchoose {
display: flex;
margin-right: 20px;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
white-space: nowrap;
}
// .name {
// margin-top: 8px;
// color: rgba(0, 0, 0, 0.85);
// font-size: 14px;
// font-weight: 400;
// }
}
}
.btns {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 100px;
height: 40px;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 16px;
height: 18px;
background-image: url(../../assets/images/courseManage/reset1.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
}
}
}
.btnss {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 130px;
height: 40px;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 17px;
height: 16px;
background-image: url(../../assets/images/coursewareManage/export.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
margin-right: 20px;
color: #388be1;
border: 1px solid #388be1;
}
}
.line {
width: 100%;
height: 40px;
background-color: #e9f6fe;
display: flex;
justify-content: center;
align-items: center;
margin-top: 20px;
border: 1px solid #c3e6fc;
.inline {
width: 95%;
height: 100%;
display: flex;
justify-content: space-between;
// background-color: #bfa;
.left {
height: 100%;
display: flex;
align-items: center;
.img {
width: 14px;
height: 15px;
background-image: url(../../assets/images/leveladd/gan.png);
background-size: 100% 100%;
}
.text {
color: #999ba3;
}
.text2 {
color: #4ea6ff;
margin-left: 5px;
margin-right: 5px;
}
.text3 {
color: #999ba3;
margin-left: 20px;
}
}
.right {
font-size: 14px;
font-weight: 400;
color: #387df7;
height: 100%;
display: flex;
align-items: center;
cursor: pointer;
}
}
}
.pad {
width: 96%;
height: 10px;
background-color: #fff;
position: absolute;
}
.tableBox {
// margin-bottom: 80px;
.classify {
// margin-left: 11px !important;
// padding-left: 9px !important;
padding-left: 0px !important;
}
.ant-checkbox-wrapper {
align-items: center;
margin-top: -2px;
}
.ant-table-selection-column {
padding: 0px !important;
// padding-left: 45px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
}
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
.opa {
background-color: #bfa;
}
}
// .tab {
// .ant-table-thead > tr > th {
// background-color: rgba(239, 244, 252, 1) !important;
// }
// th.h {
// background-color: #eff4fc !important;
// }
// .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
}
}
// .botm {
// width: 100%;
// height: 100%;
// background-color: red;
// // flex-shrink: 1;
// }
.btnn {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
</style>

View File

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

View File

@@ -0,0 +1,482 @@
<template>
<a-drawer
:visible="Wvisible"
class="drawerStyle WorkManage"
placement="right"
width="60%"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">作业管理</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="main">
<div class="endtime">起止时间2022-07-21 14:00 2022-7-30 14:00</div>
<div class="search">
<div class="sealeft">
<div class="namecon" style="margin-right: 30px">
<div class="name">姓名</div>
<a-input
v-model:value="name"
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="请输入姓名"
/>
</div>
<div class="namecon" style="margin-right: 50px">
<div class="name">任务状态</div>
<div class="select">
<a-select
v-model:value="projectName"
style="width: 160px"
placeholder="请选择"
:options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
</div>
</div>
<div class="btns">
<div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">搜索</div>
</div>
<div class="btn btn2">
<div class="img2"></div>
<div class="wz">重置</div>
</div>
</div>
</div>
<div class="btnss" style="margin-top: 20px">
<div class="btn btn1" style="margin-right: 20px">
<div class="img1"></div>
<div class="wz">导出数据</div>
</div>
<div class="btn btn2">
<div class="wz">导出作业</div>
</div>
</div>
<div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tablecolumns"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
:scroll="{ x: 900, y: 500 }"
@expand="expandTable"
:pagination="false"
/>
</div>
</div>
<div class="btnn">
<button class="btn1">取消</button>
<button class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { toRefs, reactive } from "vue";
export default {
name: "WorkManage",
props: {
Wvisible: {
type: Boolean,
default: false,
},
},
setup(props, ctx) {
const state = reactive({
name: null,
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
tabledata: [
{
key: 1,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "-",
state: "未完成",
},
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
],
tablecolumns: [
{
title: "姓名",
dataIndex: "name",
key: "name",
width: 50,
align: "center",
className: "h",
},
{
title: "所在部门",
dataIndex: "bum",
key: "bum",
width: 50,
align: "center",
className: "h",
},
{
title: "所在岗位",
dataIndex: "gangw",
key: "gangw",
width: 50,
align: "center",
className: "h",
},
{
title: "所在小组",
dataIndex: "comp",
key: "comp",
width: 50,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 100,
align: "center",
className: "h",
},
{
title: "任务状态",
dataIndex: "state",
key: "state",
width: 50,
align: "center",
className: "h",
},
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 50,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<div class="opacation">
<span style="color:#4EA6FF;cursor:pointer">查看</span>
</div>
</div>
);
},
},
],
});
const selectProjectName = (value, index) => {
console.log("value", value, index);
};
const closeDrawer = () => {
ctx.emit("update:Wvisible", false);
};
return {
...toRefs(state),
selectProjectName,
closeDrawer,
};
},
};
</script>
<style lang="scss" >
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// }
.WorkManage {
.drawerMain {
min-width: 600px;
margin: 0px 32px 0px 32px;
overflow-x: scroll;
display: flex;
flex-direction: column;
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
// background-color: red;
margin-bottom: 20px;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
// margin-left: 24px;
}
}
.main {
width: 100%;
height: 100%;
// background-color: #bfa;
// overflow-y: auto;
.endtime {
font-size: 16px;
font-weight: 500;
color: #333333;
}
.search {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 20px;
justify-content: space-between;
.sealeft {
display: flex;
.namecon {
display: flex;
flex-wrap: nowrap;
margin-bottom: 10px;
.name {
margin-top: 8px;
}
}
}
.btns {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 100px;
height: 40px;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 15px;
height: 17px;
background-image: url(../../assets/images/courseManage/search0.png);
background-size: 100% 100%;
margin-right: 7px;
}
.img2 {
width: 16px;
height: 18px;
background-image: url(../../assets/images/courseManage/reset1.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
}
}
}
.btnss {
display: flex;
flex-wrap: nowrap;
.btn {
cursor: pointer;
width: 130px;
height: 40px;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
.img1 {
width: 17px;
height: 16px;
background-image: url(../../assets/images/coursewareManage/export1.png);
background-size: 100% 100%;
margin-right: 7px;
}
}
.btn1 {
background: #388be1;
color: #ffffff;
}
.btn2 {
background: #ffffff;
color: #388be1;
border: 1px solid #388be1;
}
}
.tab {
th.h {
background-color: #eff4fc !important;
}
.ant-table-tbody
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
> td {
background: #f6f9fd;
}
}
}
.btnn {
height: 72px;
width: 100%;
position: absolute;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

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

View File

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

View File

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

View File

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