|
@@ -1,5 +1,6 @@
|
|
|
<script>
|
|
|
import menuList from '@/data/json/menuList.json'
|
|
|
+import {requireImg} from "@/utils/requireImg";
|
|
|
|
|
|
export default {
|
|
|
props: {
|
|
@@ -19,9 +20,27 @@ export default {
|
|
|
mounted() {
|
|
|
this.suitHeight(this.collapse)
|
|
|
},
|
|
|
+ emits: ['update:collapse'],
|
|
|
+ setup(props, context) {
|
|
|
+ const methods = {
|
|
|
+ toggleCollapse() {
|
|
|
+ const val = !props.collapse
|
|
|
+ context.emit('update:collapse', val)
|
|
|
+ },
|
|
|
+ }
|
|
|
+ return methods
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ requireImg,
|
|
|
suitHeight(val) {
|
|
|
this.$nextTick(() => {
|
|
|
+ if (this.collapse) {
|
|
|
+ document.getElementsByClassName("aside-collapse")[0].style.textAlign = 'center'
|
|
|
+ document.getElementsByClassName("aside-collapse")[0].style.marginLeft = '0'
|
|
|
+ } else {
|
|
|
+ document.getElementsByClassName("aside-collapse")[0].style.textAlign = ''
|
|
|
+ document.getElementsByClassName("aside-collapse")[0].style.marginLeft = '5%'
|
|
|
+ }
|
|
|
let height = document.getElementsByClassName('home')[0].clientHeight
|
|
|
this.asideStyle = { height: `${height - 60}px` }
|
|
|
if (val)
|
|
@@ -55,9 +74,21 @@ export default {
|
|
|
mode="inline"
|
|
|
@select="handleSelected"
|
|
|
>
|
|
|
+ <a-menu-item-group key="g1">
|
|
|
+ <template slot="title">
|
|
|
+ <div class="aside-collapse" style="color: white; cursor: pointer;margin-left: 5%" @click="toggleCollapse">
|
|
|
+ <a-icon style="font-size: 18px;vertical-align: text-top" type="menu-fold" v-if="!collapse" />
|
|
|
+ <a-icon style="font-size: 18px;vertical-align: text-top;" type="menu-unfold" v-if="collapse" />
|
|
|
+ <span style="margin-left: 15px;vertical-align: top" v-if="!collapse">展开/收起</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </a-menu-item-group>
|
|
|
+ <!--<a-menu-item :disabled="false">123</a-menu-item>-->
|
|
|
<a-menu-item v-for="(item,index) in menuList" :key="index" :route="item.key">
|
|
|
- <span class="anticon"><i-icon-park-outline-more-app /></span>
|
|
|
- <span>
|
|
|
+ <span class="anticon" style="vertical-align: middle">
|
|
|
+ <a-avatar class="function-avatar" shape="square" :size="20" :src="requireImg(item.icon)"></a-avatar>
|
|
|
+ </span>
|
|
|
+ <span style="vertical-align: sub">
|
|
|
{{ item.name }}
|
|
|
</span>
|
|
|
</a-menu-item>
|
|
@@ -66,9 +97,26 @@ export default {
|
|
|
</template>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
+@menu-dark-bg: #266a99;
|
|
|
+@menu-dark-submenu-bg: #266a99;
|
|
|
+@menu-dark-color: #fff;
|
|
|
+@menu-dark-arrow-color: #fff;
|
|
|
+@menu-dark-highlight-color: #fff;
|
|
|
+.aside-collapse {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+.aside-collapse:hover {
|
|
|
+ span {
|
|
|
+ color: #2ba8e4;
|
|
|
+ }
|
|
|
+ i {
|
|
|
+ color: #2ba8e4;
|
|
|
+ }
|
|
|
+}
|
|
|
.aside {
|
|
|
//width: 100%;
|
|
|
height: 100%;
|
|
|
+
|
|
|
/deep/ .ant-menu-sub {
|
|
|
box-shadow: none !important;
|
|
|
}
|