master
parent
1f2fa5c2af
commit
7979506474
@ -0,0 +1,53 @@
|
|||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'MenuItem',
|
||||||
|
functional: true,
|
||||||
|
props: {
|
||||||
|
icon: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
render(h, context) {
|
||||||
|
const { icon, title } = context.props
|
||||||
|
const vnodes = []
|
||||||
|
|
||||||
|
if (icon) {
|
||||||
|
if (icon.includes('el-icon')) {
|
||||||
|
vnodes.push(<i class={[icon, 'sub-el-icon']} />)
|
||||||
|
}
|
||||||
|
else if(icon.includes("viewicon")){
|
||||||
|
let _icon=icon.split("/")[1];
|
||||||
|
vnodes.push(<Icon type={_icon} class='sub-el-icon' size="18" />)
|
||||||
|
}
|
||||||
|
else if(icon.includes("iconfont")){
|
||||||
|
let _icon=icon.split("/")[1]+" iconfont";
|
||||||
|
vnodes.push(<Icon custom={_icon} class='sub-el-icon' size="18" />)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
vnodes.push(<svg-icon icon-class={icon}/>)
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
var _icon="el-icon-menu";
|
||||||
|
vnodes.push(<i class={[_icon, 'sub-el-icon']} />)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (title) {
|
||||||
|
vnodes.push(<span slot='title'>{(title)}</span>)
|
||||||
|
}
|
||||||
|
return vnodes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.sub-el-icon {
|
||||||
|
color: currentColor;
|
||||||
|
width: 1em;
|
||||||
|
height: 1em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -1,68 +1,83 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="v-header">
|
<div class="v-header">
|
||||||
<div class="v-left-text">
|
<div class="v-left-text">
|
||||||
<Icon size="20" :type="icon" />
|
<item :icon="iconImg" />
|
||||||
<span>{{text}}</span>
|
<span style="margin-left: 3px;">{{title}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<slot name="content"></slot>
|
<slot name="content"></slot>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="v-right-content">
|
<!-- <div class="v-right-content">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div> -->
|
</div> -->
|
||||||
<div class="selerchcontent">
|
<div class="selerchcontent">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
import Item from './Item'
|
||||||
props: {
|
export default {
|
||||||
icon: {
|
components: {
|
||||||
type: String,
|
Item
|
||||||
default: ""
|
},
|
||||||
},
|
props: {
|
||||||
text: {
|
icon: {
|
||||||
type: String,
|
type: String,
|
||||||
default: "未定义名称"
|
default: ""
|
||||||
}
|
},
|
||||||
}
|
text: {
|
||||||
};
|
type: String,
|
||||||
</script>
|
default: "未定义名称"
|
||||||
<style lang="less" scoped>
|
}
|
||||||
.v-header {
|
},
|
||||||
display: flex;
|
computed: {
|
||||||
border-bottom: 1px solid #dcdee2;
|
title() {
|
||||||
flex-direction: column;
|
return this.$route.meta.title;
|
||||||
|
},
|
||||||
.v-left-text {
|
iconImg() {
|
||||||
margin-top: 3px;
|
return this.$route.meta.icon;
|
||||||
padding-bottom: 6px;
|
|
||||||
// padding-top: 10px;
|
}
|
||||||
font-weight: bold;
|
|
||||||
font-size: 15px;
|
|
||||||
color: #338de3;
|
}
|
||||||
white-space: nowrap;
|
};
|
||||||
border-bottom: 2px solid #338de3;
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
>span {
|
.v-header {
|
||||||
position: relative;
|
display: flex;
|
||||||
// top: 2px;
|
border-bottom: 1px solid #dcdee2;
|
||||||
}
|
flex-direction: column;
|
||||||
}
|
|
||||||
|
.v-left-text {
|
||||||
.content {
|
margin-top: 3px;
|
||||||
line-height: 25px;
|
padding-bottom: 6px;
|
||||||
padding-left: 10px;
|
// padding-top: 10px;
|
||||||
padding: 6px 0 0 10px;
|
font-weight: bold;
|
||||||
}
|
font-size: 15px;
|
||||||
|
color: #338de3;
|
||||||
.v-right-content {
|
white-space: nowrap;
|
||||||
flex: 1;
|
border-bottom: 2px solid #338de3;
|
||||||
}
|
|
||||||
|
>span {
|
||||||
.selerchcontent {
|
position: relative;
|
||||||
flex: 1;
|
// top: 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
line-height: 25px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding: 6px 0 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.v-right-content {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selerchcontent {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue