<template>
|
<div class="table-layout">
|
<!-- 头部 -->
|
<!-- <div v-if="withBreadcrumb" class="table-header">
|
<el-breadcrumb separator="/">
|
<el-breadcrumb-item v-for="path in paths" :key="path">{{path}}</el-breadcrumb-item>
|
</el-breadcrumb>
|
</div>-->
|
<!-- <div style="height:10px;"></div> -->
|
<Profile :roles="roles" :permissions="permissions">
|
<!-- 搜索表单部分 -->
|
<div class="table-search-form">
|
<div class="form-wrap">
|
<slot name="search-form"></slot>
|
</div>
|
</div>
|
<slot name="space"></slot>
|
<!-- 列表和分页部分 -->
|
<div class="table-content">
|
<div class="table-wrap">
|
<slot name="table-wrap"></slot>
|
</div>
|
</div>
|
<slot></slot>
|
</Profile>
|
</div>
|
</template>
|
|
<script>
|
import Profile from '../components/common/Profile'
|
export default {
|
name: 'TableLayout',
|
components: { Profile },
|
props: {
|
// 角色
|
roles: {
|
type: Array
|
},
|
// 权限
|
permissions: {
|
type: Array
|
},
|
// 是否展示头部面包屑
|
withBreadcrumb: {
|
type: Boolean,
|
default: true
|
}
|
},
|
computed: {
|
paths () {
|
return this.$route.meta.paths
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
@import "@/assets/style/variables.scss";
|
.table-layout {
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
margin-top: 10px;
|
.not-allow-wrap {
|
padding-top: 0;
|
}
|
}
|
// 头部
|
.table-header {
|
overflow: hidden;
|
padding: 12px 16px;
|
flex-shrink: 0;
|
// 页面路径
|
.el-breadcrumb {
|
.el-breadcrumb__item {
|
.el-breadcrumb__inner {
|
color: #ABB2BE;
|
font-size: 12px;
|
}
|
&:last-of-type .el-breadcrumb__inner {
|
color: #606263;
|
font-size: 14px;
|
}
|
}
|
}
|
}
|
// 搜索
|
.table-search-form {
|
display: flex;
|
flex-wrap: wrap;
|
padding: 0 16px;
|
margin-bottom: 10px;
|
.form-wrap {
|
padding: 16px 16px 0 16px;
|
width: 100%;
|
background: #fff;
|
&:empty {
|
padding: 0;
|
}
|
}
|
section {
|
display: inline-block;
|
margin-left: 16px;
|
margin-bottom: 18px;
|
}
|
}
|
// 列表和分页
|
.table-content {
|
padding: 0 16px;
|
.table-wrap {
|
padding: 16px 16px 0 16px;
|
background: #fff;
|
// 工具栏
|
.toolbar {
|
border-bottom: 1px solid #eee;
|
padding-bottom: 10px;
|
li {
|
display: inline-block;
|
margin-right: 6px;
|
}
|
}
|
// 表格
|
.el-table {
|
th {
|
.cell {
|
color: #666;
|
}
|
}
|
// 复选框列
|
.el-table-column--selection {
|
.cell {
|
text-align: center !important;
|
}
|
}
|
// 多值字段
|
.table-column-strings {
|
ul {
|
li {
|
display: inline-block;
|
background: #eee;
|
border-radius: 3px;
|
padding: 0 3px;
|
margin-right: 3px;
|
margin-bottom: 3px;
|
}
|
}
|
}
|
// 树视觉调整
|
[class*=el-table__row--level] .el-table__expand-icon {
|
position: relative;
|
left: -6px;
|
margin-right: 0;
|
}
|
}
|
// 分页
|
.table-pagination {
|
padding: 16px 0;
|
text-align: left;
|
}
|
}
|
}
|
</style>
|