feat:新增课程管理列表1(差导出图标,操作详情)、 2 ,操作在线课程管理

This commit is contained in:
dongwug
2022-10-08 18:28:19 +08:00
parent 8cb03598cc
commit 0e7e0ac110
5 changed files with 600 additions and 302 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 460 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

View File

@@ -1,316 +1,335 @@
<!-- 管理页面 --> <!-- 管理页面 -->
<template> <template>
<div class="coursewareManage"> <div class="courseManage">
<div <div class="headerf">
style="width: calc(100% - 76px); margin: 19px 0px 30px 38px" <!-- 搜索框及按钮 -->
class="tableBox" <div class="filter">
> <div class="filterItems">
<a-table <div class="fi_input fitems">
:columns="columns" <a-input v-model:value="value" style="width: 270px ;height:40px;border-radius: 8px;" placeholder="请输入项目名称" />
:data-source="tableData" </div>
:row-selection="rowSelection" <div class="fi_input fitems">
:loading="tableDataTotal === -1 ? true : false" <a-input v-model:value="value" style="width: 270px ;height:40px;border-radius: 8px;" placeholder="请输入名称" />
:scroll="{ x: 700, y: 800 }" </div>
:pagination="{ <div class="fi_input fitems">
showSizeChanger: true, <a-input v-model:value="value" style="width: 270px ;height:40px;border-radius: 8px;" placeholder="请输入所属项目" />
showQuickJumper: true, </div>
hideOnSinglePage: true, <div class="select fitems">
pageSizeOptions: [], <a-select
pageSize: pageSize, v-model:value="projectName"
current: currentPage, style="width: 200px"
total: tableDataTotal, placeholder="请选择状态"
onChange: (page, pageSize) => { :options="projectNameList"
currentPage = page; @change="selectProjectName"
// console.log('page', page) allowClear
// 加翻页查找代码 showSearch
// this.setState({ ></a-select>
// currentPage: page, </div>
// }, () => { <div class="select fitems">
// this.getMilitaryDeployment() <a-select
// }) v-model:value="projectName"
}, style="width: 200px"
}" placeholder="请选择内容分类"
/> :options="projectNameList"
@change="selectProjectName"
allowClear
showSearch
></a-select>
</div>
<div class="select fitems">
<a-time-range-picker />
<!-- <a-date-picker
v-model="selectTime"
type="date"
placeholder="创建时间"
style="width: 286px"
/> -->
</div>
</div>
</div>
<div class="btns">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btn btn2">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
<div class="btn btn3">
<div class="search"></div>
<div class="btnText">导出</div>
</div>
<div class="btn btn4">
<div class="search"></div>
<div class="btnText">新建课程</div>
</div>
</div>
<!-- 搜索框及按钮 -->
</div> </div>
<!-- 表格 -->
<div class="tableBox">
<a-table :columns="columns" :data-source="data" :scroll="{ x: 1300, y: 1000 }">
<template #bodyCell="{ column }">
<template v-if="column.key === 'operation'">
<a>action</a>
</template>
</template>
</a-table>
</div>
<!-- 表格 -->
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { defineComponent } from 'vue';
const columns = [ const columns = [{
{ title: '序号',
title: "项目名称", width: 200,
dataIndex: "projectName", dataIndex: 'num',
key: "projectName", key: 'num',
width: 280, align: "center",
}, }, {
{ title: '名称',
title: "项目经理", width: 200,
dataIndex: "manager", dataIndex: 'name',
key: "manager", key: 'name',
width: 100, }, {
}, title: '内容分类',
{ width: 200,
title: "状态", dataIndex: 'content',
dataIndex: "state", key: '1',
// width: "30%", align: "center",
key: "state", }, {
width: 100, title: '课程形式',
}, width: 200,
{ dataIndex: 'courseform',
title: "创建人", key: '2',
dataIndex: "creater", align: "center",
// width: "30%", }, {
key: "creater", title: ' 所属项目',
width: 100, width: 300,
}, dataIndex: 'project',
{ key: '3',
title: "创建时间", align: "center",
dataIndex: "time", }, {
key: "time", title: '学习人数',
width: 180, width: 200,
}, dataIndex: 'stunum',
{ key: '4',
title: "操作", align: "center",
dataIndex: "opacation", }, {
key: "opacation", title: '评分',
width: 300, width: 200,
}, dataIndex: 'grade',
]; key: '5',
const rowSelection = ref({ align: "center",
checkStrictly: false, }, {
onChange: (selectedRowKeys, selectedRows) => { title: '状态',
console.log( width: 200,
`selectedRowKeys: ${selectedRowKeys}`, dataIndex: 'status',
"selectedRows: ", key: '6',
selectedRows align: "center",
); }, {
}, title: '是否发布',
onSelect: (record, selected, selectedRows) => { width: 200,
console.log(record, selected, selectedRows); dataIndex: 'ynpub',
}, key: '7',
onSelectAll: (selected, selectedRows, changeRows) => { align: "center",
console.log(selected, selectedRows, changeRows); }, {
title: '创建人',
width: 200,
dataIndex: 'creator',
key: '8',
align: "center",
}, {
title: '创建时间',
width: 280,
dataIndex: 'createtime',
key: '9',
align: "center",
}, {
title: '上线时间',
width: 280,
dataIndex: 'pubtime',
key: '10',
align: "center",
}, {
title: '是否停用',
width: 200,
key: 'either',
dataIndex: 'ynuse',
align: "center",
}, {
title: '操作',
width: 400,
key: 'operation',
fixed: 'right',
align: "center",
}];
const data = [{
key: '1',
num:1,
name: '时间管理',
content: '领导力',
courseform: '线上',
project: '管理者进阶-腾飞班1',
stunum: '50',
grade: '5',
status: '未提交',
ynpub: '未发布',
creator: '管理员',
createtime: '2022-07-20 9:30',
pubtime: '2022-07-20 9:30',
ynuse: '启用',
kkty:false,
}, {
key: '2',
num:2,
name: '智能制造初级课程',
content: '专业力',
courseform: '线上',
project: '-',
stunum: '200',
grade: '5',
status: '待审核',
ynpub: '未发布',
creator: '管理员',
createtime: '2022-07-20 9:30',
pubtime: '2022-07-20 9:30',
ynuse: '启用',
kkty:true,
}];
export default defineComponent({
data() {
return {
data,
columns,
};
}, },
}); });
export default {
name: "coursewareManage",
setup() {
const state = reactive({
tableData: [
{
id: 1,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
children: [
{
id: 5,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
children: [
{
id: 7,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 8,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
},
{
id: 6,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
},
{
id: 2,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 3,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
hasChildren: true,
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
{
id: 4,
projectName: "管理者进阶",
manager: "黄华 刘俊",
state: "草稿",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
currentPage: 1,
tableDataTotal: 20,
pageSize: 10,
});
return {
...toRefs(state),
columns,
rowSelection,
};
},
};
</script> </script>
<style lang="scss"> <style lang="scss">
.coursewareManage { .courseManage {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex;
flex-direction: column;
.headerf{
display: flex;
margin-left: 38px;
margin-top: 30px;
.filter {
width: calc(69% - 34px);
margin-right: 34px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
.filterItems {
display: flex;
flex-wrap: wrap;
.fitems{
margin-right: 20px;
margin-bottom: 20px;
}
}
}
.btns {
display: flex;
// flex-wrap: wrap;
.btn {
padding: 0px 26px 0px 26px;
height: 38px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: rgba(64, 158, 255, 1);
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search1.png");
}
}
.btn2 {
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
}
}
.btn3 {
.search {
width: 17px;
height: 18px;
background-image: url("../../assets/images/courseManage/add1.png");
}
}
.btn4 {
margin-right: 0px;
.search {
width: 17px;
height: 18px;
background-image: url("../../assets/images/courseManage/add1.png");
}
}
.btn1:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/search0.png");
}
.btnText {
color: #ffffff;
}
}
.btn2:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/reset0.png");
}
.btnText {
color: #ffffff;
}
}
.btn3:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/add0.png");
}
.btnText {
color: #ffffff;
}
}
.btn4:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("../../assets/images/courseManage/add0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
.tableBox {
margin: 20px 38px 30px;
}
} }
</style> </style>

View File

@@ -0,0 +1,279 @@
<template>
<div class="onlinemanage">
<div class="om_header">
</div>
<div class="main">
<div class="m_header">
<div class="pc_icon"></div>
<span>在线课程管理</span>
<div class="pc_exit">x</div>
</div>
<div class="m_body">
<div class="b_title">课程BMOT2021年职级晋升-安全管理高级</div>
<div class="b_sub">
<div class="bs_type">类型</div>
<div class="bs_right">录播课</div>
<div class="bs_left">内容分类</div>
<div class="bs_right">领导力</div>
<div class="bs_left">状态</div>
<div class="bs_right">已审核</div>
</div>
<div class="b_menu">
<a-menu v-model:selectedKeys="current" mode="horizontal">
<a-menu-item key="mail">
报名管理
</a-menu-item>
<a-menu-item key="sub2">
学习记录
</a-menu-item>
<a-menu-item key="sub3">
资源完成情况
</a-menu-item>
</a-menu>
</div>
<div class="b_menunav">
<div class="bm_select">
<a-select
class="select"
ref="select"
placeholder="请选择状态"
v-model:value="value1"
style="width: 200px;"
@focus="focus"
@change="handleChange"
>
<a-select-option value="status">状态</a-select-option>
<a-select-option value="passed">已通过</a-select-option>
<a-select-option value="weishenhe">未审核</a-select-option>
<a-select-option value="reject">管理员拒绝</a-select-option>
</a-select>
</div>
<div class="bm_input">
<a-input v-model:value="value" style="width: 200px ;height:40px;border-radius: 8px;" placeholder="姓名" />
</div>
<div class="bm_btn">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
</div>
</div>
<div class="bm_table">
<a-table
:columns="columns"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="false"
/>
</div>
</div>
</div>
</div>
</template>
<script>
import { reactive, toRefs, ref } from "vue";
const columns = [
{
title: "姓名",
dataIndex: "projectName",
key: "projectName",
width: '16%',
align: "center",
},
{
title: "工号",
dataIndex: "numb",
key: "numb",
width: '16%',
align: "center",
},
{
title: "报名时间",
dataIndex: "applytime",
key: "applytime",
width: '16%',
align: "center",
},
{
title: "签到时间",
dataIndex: "signtime",
key: "signtime",
width: '16%',
align: "center",
},
{
title: "状态",
dataIndex: "status",
key: "status",
width: '16%',
align: "center",
},
{
title: "操作",
dataIndex: "opacation",
key: "opacation",
width: '16%',
align: "center",
},
];
export default {
name: "onlineManage",
setup() {
const current = ref(['mail']);
const state = reactive({
tableData: [
{
key: 1,
projectName:"刘莉",
numb: "10064511",
applytime:"2022-07-20 14:00:00",
signtime: "-",
status: "已通过",
},
{
key: 2,
projectName:"",
numb: "",
applytime:"2022-07-20 14:00:00",
signtime: "2022-09-26 13:30:30",
status:"已通过",
},
],
});
return {
columns,
current,
...toRefs(state),
};
},
};
</script>
<style lang="scss" scoped>
.onlinemanage{
width: 1358px;
min-width: 1000px;
height: 537px;
background: #FFFFFF;
box-shadow: 0px 1px 35px 0px rgba(118,136,166,0.21);
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
font-size: 14px;
font-family: PingFangSC-Regular;
color: #000000;
overflow: auto;
.om_header{
position: absolute;
width:calc(100%);
height: 40px;
background: linear-gradient( rgba(78,166,255,0.2) 0%, rgba(78,166,255,0) 100%);
}
.main{
width:calc(100%);
position: relative;
.m_header{
display: flex;
align-items: center;
padding-top: 20px;
padding-left: 26px;
font-size: 16px;
.pc_icon{
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/pc.png);
}
.pc_exit{
position: absolute;
right:42px;
cursor: pointer;
}
}
.m_body{
width:calc(100% - 50px);
padding-left: 50px;
padding-top: 17px;
.b_title{
color: #4F5156;
font-weight: 500;
margin-bottom: 19px;
}
.b_sub{
display: flex;
margin-bottom: 10px;
.bs_type{
color: #999BA3;
}
.bs_left{
color: #999BA3;
margin-left: 35px;
}
.bs_right{
color: #4F5156;
}
}
.b_menu{
width:calc(100%);
}
.b_menunav{
display: flex;
margin-top: 20px;
margin-bottom: 20px;
.bm_select{
margin-right: 20px;
}
.bm_input{
margin-right: 20px;
}
.bm_btn {
display: flex;
// flex-wrap: wrap;
.btn {
padding: 0px 26px 0px 26px;
height: 40px;
background: rgba(64, 158, 255, 0);
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
.search {
background-size: 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: rgba(64, 158, 255, 1);
line-height: 36px;
margin-left: 5px;
}
}
.btn1 {
.search {
width: 15px;
height: 17px;
background-image: url("@/assets/images/coursewareManage/search1.png");
}
}
.btn1:hover {
background: rgba(64, 158, 255, 1);
.search {
background-image: url("@/assets/images/coursewareManage/search0.png");
}
.btnText {
color: #ffffff;
}
}
}
}
}
}
}
</style>