|
@@ -1,291 +1,291 @@
|
|
|
-<template>
|
|
|
- <div class="sidebar">
|
|
|
- <el-menu
|
|
|
- class="sidebar-el-menu"
|
|
|
- :default-active="onRoutes"
|
|
|
- :collapse="collapse"
|
|
|
- background-color="#324157"
|
|
|
- text-color="#bfcbd9"
|
|
|
- active-text-color="#20a0ff"
|
|
|
- unique-opened
|
|
|
- router
|
|
|
- >
|
|
|
- <template v-for="item in items">
|
|
|
- <template v-if="item.subs">
|
|
|
- <el-submenu class="second" :index="item.index" :key="item.index">
|
|
|
- <template slot="title">
|
|
|
- <i :class="item.icon"></i>
|
|
|
- <span slot="title">
|
|
|
- <span>{{ item.title }}</span>
|
|
|
- <span class="num" v-bind:style="{ color: getColor(item.num) }" v-if="item.num"
|
|
|
- >[<span>{{ getNum(item.num) }}</span
|
|
|
- >]</span
|
|
|
- >
|
|
|
- </span>
|
|
|
- </template>
|
|
|
- <template v-for="subItem in item.subs">
|
|
|
- <el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
|
|
|
- <template slot="title">{{ subItem.title }}</template>
|
|
|
- <el-menu-item v-for="(threeItem, i) in subItem.subs" :key="i" :index="threeItem.index">{{ threeItem.title }}</el-menu-item>
|
|
|
- </el-submenu>
|
|
|
- <el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }}</el-menu-item>
|
|
|
- </template>
|
|
|
- </el-submenu>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-menu-item class="first" :index="item.index" :key="item.index">
|
|
|
- <i :class="item.icon"></i>
|
|
|
- <span slot="title">
|
|
|
- <span>{{ item.title }}</span>
|
|
|
- <span class="num" v-bind:style="{ color: getColor(item.num) }" v-if="item.num"
|
|
|
- >[<span>{{ getNum(item.num) }}</span
|
|
|
- >]</span
|
|
|
- >
|
|
|
- </span>
|
|
|
- </el-menu-item>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
- </el-menu>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import _ from 'lodash';
|
|
|
-import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
-const { mapActions: menu } = createNamespacedHelpers('menu');
|
|
|
-const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
|
|
|
-
|
|
|
-import bus from '../common/bus';
|
|
|
-export default {
|
|
|
- data() {
|
|
|
- return {
|
|
|
- collapse: false,
|
|
|
- items: [
|
|
|
- {
|
|
|
- icon: 'el-icon-s-home',
|
|
|
- index: 'homeIndex',
|
|
|
- title: '系统首页',
|
|
|
- },
|
|
|
- ],
|
|
|
- num: {},
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- ...mapState(['user']),
|
|
|
- onRoutes() {
|
|
|
- return this.$route.path;
|
|
|
- },
|
|
|
- },
|
|
|
- created() {
|
|
|
- // 通过 Event Bus 进行组件间通信,来折叠侧边栏
|
|
|
- bus.$on('collapse', msg => {
|
|
|
- this.collapse = msg;
|
|
|
- bus.$emit('collapse-content', msg);
|
|
|
- });
|
|
|
- },
|
|
|
- methods: {
|
|
|
- ...menu(['query']),
|
|
|
- ...achieveApply(['queryNum']),
|
|
|
- // 分配用户彩带权限
|
|
|
- async getMenu() {
|
|
|
- // 客户信息
|
|
|
- let user = this.user;
|
|
|
- let list = _.cloneDeep(this.items);
|
|
|
- if (user.role == '1') {
|
|
|
- let data = [
|
|
|
- {
|
|
|
- icon: 'el-icon-s-home',
|
|
|
- index: '',
|
|
|
- title: '管理员测试菜单',
|
|
|
- },
|
|
|
- ];
|
|
|
- list.push(...data);
|
|
|
- this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
- } else if (user.role == '2') {
|
|
|
- let data = [
|
|
|
- { icon: 'el-icon-eleme', index: '/adminApplyExpert', title: '专家管理' },
|
|
|
- { icon: 'el-icon-eleme', index: '/adminExamine', title: '初审申请书' },
|
|
|
- { icon: 'el-icon-thumb', index: '/adminScore', title: '专家评分' },
|
|
|
- { icon: 'el-icon-orange', index: '/adminMeet', title: '专家会审' },
|
|
|
- { icon: 'el-icon-edit-outline', index: '/adminPerfect', title: '资料完善' },
|
|
|
- { icon: 'el-icon-postcard', index: '/adminCate', title: '证书发放' },
|
|
|
- { icon: 'el-icon-postcard', index: '/adminHaveCert', title: '已证书发放' },
|
|
|
- ];
|
|
|
- list.push(...data);
|
|
|
- this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
- } else if (user.role === '3') {
|
|
|
- let data = [
|
|
|
- // { icon: 'el-icon-thumb', index: '/expertScore', title: '专家评分' },
|
|
|
- // { icon: 'el-icon-thumb', index: '/expertMeet', title: '专家会审' },
|
|
|
- { icon: 'el-icon-thumb', index: '/expertCenter', title: '专家审核' },
|
|
|
- ];
|
|
|
- list.push(...data);
|
|
|
- this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
- } else {
|
|
|
- // let data = [
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '2',
|
|
|
- // title: '申请书管理',
|
|
|
- // subs: [
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/firstApply',
|
|
|
- // title: '待审中',
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/updateApply',
|
|
|
- // title: '审核未通过',
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '3',
|
|
|
- // title: '专家评分',
|
|
|
- // subs: [
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/expertExam',
|
|
|
- // title: '待评分',
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/noExpertScore',
|
|
|
- // title: '评分审核未通过',
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '4',
|
|
|
- // title: '专家会审管理',
|
|
|
- // subs: [
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/expertPay',
|
|
|
- // title: '待缴费',
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/expertMeet',
|
|
|
- // title: '待会审',
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/noExpertMeet',
|
|
|
- // title: '会审未通过',
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // },
|
|
|
- // { icon: 'el-icon-eleme', index: '/perfectData', title: '完善资料' },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '6',
|
|
|
- // title: '证书管理',
|
|
|
- // subs: [
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/readyCert',
|
|
|
- // title: '待发证书',
|
|
|
- // },
|
|
|
- // {
|
|
|
- // icon: 'el-icon-eleme',
|
|
|
- // index: '/alreadyCert',
|
|
|
- // title: '已发证书',
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // },
|
|
|
- // ];
|
|
|
- let data = [
|
|
|
- {
|
|
|
- num: 'cs',
|
|
|
- icon: 'el-icon-eleme',
|
|
|
- index: '2',
|
|
|
- title: '我的申报',
|
|
|
- subs: [
|
|
|
- {
|
|
|
- icon: 'el-icon-eleme',
|
|
|
- index: '/nowDeclare',
|
|
|
- title: '申报中',
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'el-icon-eleme',
|
|
|
- index: '/pastDeclare',
|
|
|
- title: '已往申报',
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- { num: 'pf', icon: 'el-icon-postcard', index: '/userExpertScore', title: '专家评分' },
|
|
|
- { num: 'hs', icon: 'el-icon-postcard', index: '/userExpertMeet', title: '专家会审' },
|
|
|
- { num: 'zs', icon: 'el-icon-medal', index: '/userCert', title: '证书管理' },
|
|
|
- ];
|
|
|
- list.push(...data);
|
|
|
- this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
- }
|
|
|
- },
|
|
|
- // 查询成果数
|
|
|
- async searchNum() {
|
|
|
- let role = this.user.role;
|
|
|
- if (role == undefined) {
|
|
|
- let res = await this.queryNum(this.user.id);
|
|
|
- if (this.$checkRes(res)) {
|
|
|
- this.$set(this, `num`, res.data);
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- // 分菜单成果数
|
|
|
- getNum(data) {
|
|
|
- if (data == 'cs') return this.num.cs;
|
|
|
- else if (data == 'pf') return this.num.pf;
|
|
|
- else if (data == 'hs') return this.num.hs;
|
|
|
- else if (data == 'zs') return this.num.zs;
|
|
|
- },
|
|
|
- // 显示颜色
|
|
|
- getColor(data) {
|
|
|
- if (data == 'cs' && this.num.cs > 0) return '#ff0000';
|
|
|
- else if (data == 'pf' && this.num.pf > 0) return '#ff0000';
|
|
|
- else if (data == 'hs' && this.num.hs > 0) return '#ff0000';
|
|
|
- else if (data == 'zs' && this.num.zs > 0) return '#ff0000';
|
|
|
- },
|
|
|
- },
|
|
|
- watch: {
|
|
|
- user: {
|
|
|
- deep: true,
|
|
|
- immediate: true,
|
|
|
- handler(val) {
|
|
|
- this.getMenu();
|
|
|
- this.searchNum();
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
-};
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="less" scoped>
|
|
|
-.sidebar {
|
|
|
- display: block;
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 60px;
|
|
|
- bottom: 0;
|
|
|
- overflow-y: scroll;
|
|
|
-}
|
|
|
-.sidebar::-webkit-scrollbar {
|
|
|
- width: 0;
|
|
|
-}
|
|
|
-.sidebar-el-menu:not(.el-menu--collapse) {
|
|
|
- width: 200px;
|
|
|
-}
|
|
|
-.sidebar > ul {
|
|
|
- height: 100%;
|
|
|
-}
|
|
|
-.num {
|
|
|
- font-size: 16px;
|
|
|
- padding: 0 10px;
|
|
|
- span {
|
|
|
- padding: 0 5px;
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|
|
|
+<template>
|
|
|
+ <div class="sidebar">
|
|
|
+ <el-menu
|
|
|
+ class="sidebar-el-menu"
|
|
|
+ :default-active="onRoutes"
|
|
|
+ :collapse="collapse"
|
|
|
+ background-color="#324157"
|
|
|
+ text-color="#bfcbd9"
|
|
|
+ active-text-color="#20a0ff"
|
|
|
+ unique-opened
|
|
|
+ router
|
|
|
+ >
|
|
|
+ <template v-for="item in items">
|
|
|
+ <template v-if="item.subs">
|
|
|
+ <el-submenu class="second" :index="item.index" :key="item.index">
|
|
|
+ <template slot="title">
|
|
|
+ <i :class="item.icon"></i>
|
|
|
+ <span slot="title">
|
|
|
+ <span>{{ item.title }}</span>
|
|
|
+ <span class="num" v-bind:style="{ color: getColor(item.num) }" v-if="item.num"
|
|
|
+ >[<span>{{ getNum(item.num) }}</span
|
|
|
+ >]</span
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ <template v-for="subItem in item.subs">
|
|
|
+ <el-submenu v-if="subItem.subs" :index="subItem.index" :key="subItem.index">
|
|
|
+ <template slot="title">{{ subItem.title }}</template>
|
|
|
+ <el-menu-item v-for="(threeItem, i) in subItem.subs" :key="i" :index="threeItem.index">{{ threeItem.title }}</el-menu-item>
|
|
|
+ </el-submenu>
|
|
|
+ <el-menu-item v-else :index="subItem.index" :key="subItem.index">{{ subItem.title }}</el-menu-item>
|
|
|
+ </template>
|
|
|
+ </el-submenu>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <el-menu-item class="first" :index="item.index" :key="item.index">
|
|
|
+ <i :class="item.icon"></i>
|
|
|
+ <span slot="title">
|
|
|
+ <span>{{ item.title }}</span>
|
|
|
+ <span class="num" v-bind:style="{ color: getColor(item.num) }" v-if="item.num"
|
|
|
+ >[<span>{{ getNum(item.num) }}</span
|
|
|
+ >]</span
|
|
|
+ >
|
|
|
+ </span>
|
|
|
+ </el-menu-item>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </el-menu>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import _ from 'lodash';
|
|
|
+import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
+const { mapActions: menu } = createNamespacedHelpers('menu');
|
|
|
+const { mapActions: achieveApply } = createNamespacedHelpers('achieveApply');
|
|
|
+
|
|
|
+import bus from '../common/bus';
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ collapse: false,
|
|
|
+ items: [
|
|
|
+ {
|
|
|
+ icon: 'el-icon-s-home',
|
|
|
+ index: 'homeIndex',
|
|
|
+ title: '系统首页',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ num: {},
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['user']),
|
|
|
+ onRoutes() {
|
|
|
+ return this.$route.path;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ // 通过 Event Bus 进行组件间通信,来折叠侧边栏
|
|
|
+ bus.$on('collapse', msg => {
|
|
|
+ this.collapse = msg;
|
|
|
+ bus.$emit('collapse-content', msg);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ ...menu(['query']),
|
|
|
+ ...achieveApply(['queryNum']),
|
|
|
+ // 分配用户彩带权限
|
|
|
+ async getMenu() {
|
|
|
+ // 客户信息
|
|
|
+ let user = this.user;
|
|
|
+ let list = _.cloneDeep(this.items);
|
|
|
+ if (user.role == '1') {
|
|
|
+ let data = [
|
|
|
+ {
|
|
|
+ icon: 'el-icon-s-home',
|
|
|
+ index: '',
|
|
|
+ title: '管理员测试菜单',
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ list.push(...data);
|
|
|
+ this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
+ } else if (user.role == '2') {
|
|
|
+ let data = [
|
|
|
+ { icon: 'el-icon-eleme', index: '/adminApplyExpert', title: '专家管理' },
|
|
|
+ { icon: 'el-icon-eleme', index: '/adminExamine', title: '形式审查' },
|
|
|
+ { icon: 'el-icon-thumb', index: '/adminScore', title: '专家初评' },
|
|
|
+ { icon: 'el-icon-orange', index: '/adminMeet', title: '专家会审' },
|
|
|
+ { icon: 'el-icon-edit-outline', index: '/adminPerfect', title: '资料完善' },
|
|
|
+ { icon: 'el-icon-postcard', index: '/adminCate', title: '证书发放' },
|
|
|
+ { icon: 'el-icon-postcard', index: '/adminHaveCert', title: '已证书发放' },
|
|
|
+ ];
|
|
|
+ list.push(...data);
|
|
|
+ this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
+ } else if (user.role === '3') {
|
|
|
+ let data = [
|
|
|
+ // { icon: 'el-icon-thumb', index: '/expertScore', title: '专家评分' },
|
|
|
+ // { icon: 'el-icon-thumb', index: '/expertMeet', title: '专家会审' },
|
|
|
+ { icon: 'el-icon-thumb', index: '/expertCenter', title: '专家审核' },
|
|
|
+ ];
|
|
|
+ list.push(...data);
|
|
|
+ this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
+ } else {
|
|
|
+ // let data = [
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '2',
|
|
|
+ // title: '申请书管理',
|
|
|
+ // subs: [
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/firstApply',
|
|
|
+ // title: '待审中',
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/updateApply',
|
|
|
+ // title: '审核未通过',
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '3',
|
|
|
+ // title: '专家评分',
|
|
|
+ // subs: [
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/expertExam',
|
|
|
+ // title: '待评分',
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/noExpertScore',
|
|
|
+ // title: '评分审核未通过',
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '4',
|
|
|
+ // title: '专家会审管理',
|
|
|
+ // subs: [
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/expertPay',
|
|
|
+ // title: '待缴费',
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/expertMeet',
|
|
|
+ // title: '待会审',
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/noExpertMeet',
|
|
|
+ // title: '会审未通过',
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // { icon: 'el-icon-eleme', index: '/perfectData', title: '完善资料' },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '6',
|
|
|
+ // title: '证书管理',
|
|
|
+ // subs: [
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/readyCert',
|
|
|
+ // title: '待发证书',
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'el-icon-eleme',
|
|
|
+ // index: '/alreadyCert',
|
|
|
+ // title: '已发证书',
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ // },
|
|
|
+ // ];
|
|
|
+ let data = [
|
|
|
+ {
|
|
|
+ num: 'cs',
|
|
|
+ icon: 'el-icon-eleme',
|
|
|
+ index: '2',
|
|
|
+ title: '我的申报',
|
|
|
+ subs: [
|
|
|
+ {
|
|
|
+ icon: 'el-icon-eleme',
|
|
|
+ index: '/nowDeclare',
|
|
|
+ title: '申报中',
|
|
|
+ },
|
|
|
+ {
|
|
|
+ icon: 'el-icon-eleme',
|
|
|
+ index: '/pastDeclare',
|
|
|
+ title: '已往申报',
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ { num: 'pf', icon: 'el-icon-postcard', index: '/userExpertScore', title: '专家评分' },
|
|
|
+ { num: 'hs', icon: 'el-icon-postcard', index: '/userExpertMeet', title: '专家会审' },
|
|
|
+ { num: 'zs', icon: 'el-icon-medal', index: '/userCert', title: '证书管理' },
|
|
|
+ ];
|
|
|
+ list.push(...data);
|
|
|
+ this.$set(this, `items`, _.uniqBy(list, 'index'));
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 查询成果数
|
|
|
+ async searchNum() {
|
|
|
+ let role = this.user.role;
|
|
|
+ if (role == undefined) {
|
|
|
+ let res = await this.queryNum(this.user.id);
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ this.$set(this, `num`, res.data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 分菜单成果数
|
|
|
+ getNum(data) {
|
|
|
+ if (data == 'cs') return this.num.cs;
|
|
|
+ else if (data == 'pf') return this.num.pf;
|
|
|
+ else if (data == 'hs') return this.num.hs;
|
|
|
+ else if (data == 'zs') return this.num.zs;
|
|
|
+ },
|
|
|
+ // 显示颜色
|
|
|
+ getColor(data) {
|
|
|
+ if (data == 'cs' && this.num.cs > 0) return '#ff0000';
|
|
|
+ else if (data == 'pf' && this.num.pf > 0) return '#ff0000';
|
|
|
+ else if (data == 'hs' && this.num.hs > 0) return '#ff0000';
|
|
|
+ else if (data == 'zs' && this.num.zs > 0) return '#ff0000';
|
|
|
+ },
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ user: {
|
|
|
+ deep: true,
|
|
|
+ immediate: true,
|
|
|
+ handler(val) {
|
|
|
+ this.getMenu();
|
|
|
+ this.searchNum();
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+.sidebar {
|
|
|
+ display: block;
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 60px;
|
|
|
+ bottom: 0;
|
|
|
+ overflow-y: scroll;
|
|
|
+}
|
|
|
+.sidebar::-webkit-scrollbar {
|
|
|
+ width: 0;
|
|
|
+}
|
|
|
+.sidebar-el-menu:not(.el-menu--collapse) {
|
|
|
+ width: 200px;
|
|
|
+}
|
|
|
+.sidebar > ul {
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+.num {
|
|
|
+ font-size: 16px;
|
|
|
+ padding: 0 10px;
|
|
|
+ span {
|
|
|
+ padding: 0 5px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|