YbMainPro 主页
在yb-layout-pro
的基础上,加入了yb-main-size-menu
和 tab 页(vue-router-tab (opens new window))的结构,形成一个常用的主页组件。
# 基本用法
<template>
<yb-main-pro
style="height: 600px"
:menuData="menuData"
:layout="theme.layout"
@collapseChange="collapseChange"
@collapseTransitionEnd="collapseTransitionEnd"
>
<template v-slot:headerLeft>
<!-- <img :src="logo" /> -->
<span v-show="showTitle">{{ systemTitle }}</span>
</template>
<template v-slot:headerRight>
<el-dropdown class="main-user-dropdown" trigger="click">
<div class="yb-header-click-item" v-show="showUser">
<i class="el-icon-user" style="font-size: 18px"></i>
<span class="main-user-name">用户名称</span>
<i class="el-icon-caret-bottom"></i>
</div>
<el-dropdown-menu
class="main-user-dropdown-menu"
slot="dropdown"
>
<el-dropdown-item>个人中心</el-dropdown-item>
<el-dropdown-item>退出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</yb-main-pro>
</template>
<script>
export default {
data() {
return {
menuData: [
{
name: '首页',
icon: '#yibao-xinxieguan',
path: '/home',
},
{
name: '目录菜单1',
path: '/parent1',
icon: '#yibao-huore',
children: [
{
name: '子级菜单',
path: '/mychild1',
},
],
},
{
name: '目录菜单2',
path: '/parent2',
icon: '#yibao-gongneng',
children: [
{
name: '子级菜单',
path: '/mychild2',
},
],
},
],
systemTitle: '标题',
theme: { layout: 'tlr' },
collapse: false,
collapeTransEnd: true,
};
},
computed: {
showTitle() {
let showTitle = true;
switch (this.theme.layout) {
case 'ltr':
case 'ltr-light':
case 'lr':
case 'lr-light':
if (this.collapse || !this.collapeTransEnd) {
showTitle = false;
}
break;
default:
}
return showTitle;
},
showUser() {
let showUser = true;
switch (this.theme.layout) {
case 'lr':
case 'lr-light':
if (this.collapse || !this.collapeTransEnd) {
showUser = false;
}
break;
default:
}
return showUser;
},
},
methods: {
collapseChange(collapse) {
this.collapse = collapse;
this.collapeTransEnd = false;
},
collapseTransitionEnd() {
this.collapeTransEnd = true;
},
},
};
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# 运用在实际项目中,完善之后的案例
# props
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
layout | 布局类型 | string | "tlr"|"tlr-light"|"ltr"|"ltr-light"|"ltr-dark"|"ttlr"|"tb-light"|"tb"|"lr"|"lr-light" | "tlr" |
onelyBody | 是否只显示中间区域,开启后不会显示左侧栏和顶部栏 | boolean | - | false |
collapse | 是否折叠左侧栏 | - | false | - |
menuType | 菜单类型,同YbMainSideMenu type 属性 | string | 'simple' | - |
menuData | 菜单数据 | object[] | - | - |
menuData[].name | 菜单名称 | string | - | - |
menuData[].path | 菜单路径,路由跳转 | string | - | - |
menuData[].icon | 小图标,以"#"开头的是多色图标,否则就是 i 标签的 calssname | string | - | - |
menuData[].children | 子菜单数据 | object[] | - | - |
watermarkOptions | 水印配置 | object{show:false} | - | - |
... | 其他属性同 yb-layout-pro | - | - | - |
# watermarkOptions
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
show | 是否显示水印型 | boolean | - | false |
gapX | 水印之间的水平间距 | number | - | - |
gapY | 水印之间的垂直间距 | number | - | - |
offsetLeft | 水印在 canvas 画布上绘制的水平偏移量 | number | - | - |
offsetTop | 水印在 canvas 画布上绘制的垂直偏移量 | number | - | - |
width | 单个水印宽度 | number | - | - |
height | 单个水印宽度 | number | - | - |
opacity | 水印透明度 | number | - | - |
rotate | 旋转的角度 | number | - | - |
fontSize | 设置字体大小 | number | - | - |
fontColor | 设置字体颜色 | string | - | - |
fontFamily | 设置水印文字的字体 | string | - | - |
monitor | 是否开启监视模式 | boolean | - | true |
text | 水印文本, 为数组时表示多行水印 | string | string[] | - | - |
zIndex | 样式层级 | number | - | - |
# ScopedSlots
名称 | 说明 | 参数 |
---|---|---|
headerLeft | 顶部栏左侧内容插槽 | {position} |
headerRight | 顶部栏右侧内容插槽 | {position} |
menuTitle | 导航名称插槽 | {position,path,name,...} |
# Events
事件 | 说明 | 参数 |
---|---|---|
collapseChange | 左侧栏折叠按钮切换时触发 | (collapsed)=>{} |
collapseTransitionEnd | 折叠过渡完了之后触发 | (collapsed)=>{} |
上次更新: 2024/09/06, 16:30:44