|
@@ -16,26 +16,28 @@
|
|
|
<span v-for="(item, index) in devMenu" :key="index">
|
|
|
<!-- <span v-if="`${item.role}` === `${user.role}` || !item.role"> -->
|
|
|
<!-- v-if="`${item.role}` === `${user.role}`" -->
|
|
|
- <span v-if="!item.children" :to="item.path" :key="item.name">
|
|
|
- <el-menu-item :index="item.path">
|
|
|
- <i v-if="item.icon" :class="item.icon"></i>
|
|
|
- <span v-if="item.name" slot="title">{{ item.name }}</span>
|
|
|
- </el-menu-item>
|
|
|
- </span>
|
|
|
+ <template v-if="display(item)">
|
|
|
+ <span v-if="!item.children" :to="item.path" :key="item.name">
|
|
|
+ <el-menu-item :index="item.path">
|
|
|
+ <i v-if="item.icon" :class="item.icon"></i>
|
|
|
+ <span v-if="item.name" slot="title">{{ item.name }}</span>
|
|
|
+ </el-menu-item>
|
|
|
+ </span>
|
|
|
|
|
|
- <el-submenu v-else :index="item.name || item.path" :key="item.name">
|
|
|
- <template slot="title">
|
|
|
- <i v-if="item && item.icon" :class="item.icon"></i>
|
|
|
- <span v-if="item && item.name" slot="title">{{ item.name }}</span>
|
|
|
- </template>
|
|
|
- <template v-for="(child, childIndex) in item.children">
|
|
|
- <div :key="childIndex" v-if="!child.hidden">
|
|
|
- <el-menu-item :index="item.path + child.path">
|
|
|
- <span v-if="child && child.name" slot="title">{{ child.name }}</span>
|
|
|
- </el-menu-item>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-submenu>
|
|
|
+ <el-submenu v-else :index="item.name || item.path" :key="item.name">
|
|
|
+ <template slot="title">
|
|
|
+ <i v-if="item && item.icon" :class="item.icon"></i>
|
|
|
+ <span v-if="item && item.name" slot="title">{{ item.name }}</span>
|
|
|
+ </template>
|
|
|
+ <template v-for="(child, childIndex) in item.children">
|
|
|
+ <div :key="childIndex" v-if="!child.hidden">
|
|
|
+ <el-menu-item :index="item.path + child.path">
|
|
|
+ <span v-if="child && child.name" slot="title">{{ child.name }}</span>
|
|
|
+ </el-menu-item>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-submenu>
|
|
|
+ </template>
|
|
|
</span>
|
|
|
</el-menu>
|
|
|
</scroll-bar>
|
|
@@ -44,6 +46,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { devMenu } from '../../config/menu-config';
|
|
|
+import { mapMutations, mapState, createNamespacedHelpers } from 'vuex';
|
|
|
import scrollBar from './scrollBar.vue';
|
|
|
export default {
|
|
|
name: 'admin-menu',
|
|
@@ -54,13 +57,26 @@ export default {
|
|
|
data: () => ({
|
|
|
devMenu,
|
|
|
}),
|
|
|
- created() {},
|
|
|
- computed: {},
|
|
|
+ created() {
|
|
|
+ this.getUser();
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['user']),
|
|
|
+ type() {
|
|
|
+ return this.user.type;
|
|
|
+ },
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ ...mapMutations(['getUser', 'logout']),
|
|
|
selectMenu(index) {
|
|
|
- console.log(index);
|
|
|
this.$router.push({ path: index });
|
|
|
},
|
|
|
+ display(item) {
|
|
|
+ if (this.type === 'admin') return true;
|
|
|
+ else if (item.platform === 'doctor') return this.type === 'doctor';
|
|
|
+ else if (!item.platform || item.platform === 'nurse') return true;
|
|
|
+ // else return true;
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|