|
@@ -3,7 +3,7 @@
|
|
|
<!-- 头部菜单栏 -->
|
|
|
<Header class="header">
|
|
|
<div class="logo-wrap">
|
|
|
- <img src="../assets/ies5.png" :class="isCollapsed ? 'collapsed-logo-width unit-logo':'collapsed-logo-width unit-logo'" />
|
|
|
+ <img src="../assets/ies5.png" :class="isCollapsed ? 'collapsed-logo-width unit-logo':'collapsed-logo-width unit-logo'" v-show="isShowLogo" />
|
|
|
</div>
|
|
|
<div class="school-wrap">
|
|
|
<BaseSelectSchool></BaseSelectSchool>
|
|
@@ -15,40 +15,83 @@
|
|
|
<div class="collapse-icon-box" @click="changeMenuStatus">
|
|
|
<Icon :class="rotateIcon" custom="iconfont icon-arrow" style="color:var(--primary-text-color)" @click.stop="changeMenuStatus" size="12" />
|
|
|
</div>
|
|
|
- <Menu width="auto" :class="menuitemClasses" accordion :active-name="activeName" :open-names="openNames">
|
|
|
+ <Menu width="auto" :class="['menu-item', isCollapsed ? 'collapsed-menu' : '']" accordion :active-name="activeName" :open-names="openNames">
|
|
|
<vuescroll :ops="ops">
|
|
|
- <div v-for="(item,index) in menuTree" :key="index">
|
|
|
- <Submenu :name="item.subName" v-if="$access.ability(item.role,item.permission).validateAll && item.child.length" v-show="(index == 0 && $store.state.userInfo.hasSchool) || index > 0">
|
|
|
- <template slot="title">
|
|
|
+ <MenuGroup title="学校">
|
|
|
+ <!-- 暂未提供判断是否购买服务的字段 -->
|
|
|
+ <p class="school-menu-tips" v-if="$store.state.userInfo.schoolPay && !isCollapsed">*当前学校暂未购买服务</p>
|
|
|
+ <p class="school-menu-tips" v-else-if="!$store.state.userInfo.hasSchool && !isCollapsed">*暂未加入学校,无法使用学校功能</p>
|
|
|
+ <div v-else-if="!$store.state.userInfo.schoolPay && $store.state.userInfo.hasSchool">
|
|
|
+ <div v-for="(item,index) in schoolMenu" :key="index">
|
|
|
+ <Submenu :name="item.subName" v-if="$access.ability(item.role,item.permission).validateAll && item.child.length" v-show="(index == 0 && $store.state.userInfo.hasSchool) || index > 0">
|
|
|
+ <template slot="title">
|
|
|
+ <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
|
|
|
+ <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="20" />
|
|
|
+ </Tooltip>
|
|
|
+ <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="20" />
|
|
|
+ <span>{{item.name}}</span>
|
|
|
+ </template>
|
|
|
+ <MenuItem class="sub-item-wrap sub-item-wrap-active" :name="menuItem.menuName" :to="menuItem.router" v-for="(menuItem,i) in item.child" :key="i" v-show="$access.ability(menuItem.role,menuItem.permission).validateAll">
|
|
|
+ <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed">
|
|
|
+ <Icon class="sub-menu-icon" :custom="menuItem.icon" size="18" />
|
|
|
+ </Tooltip>
|
|
|
+ <Icon v-show="!isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="18" />
|
|
|
+ <span>
|
|
|
+ {{menuItem.name}}
|
|
|
+ <span style="color: aqua;margin-left: 2px;font-size: 12px;vertical-align: text-top;">
|
|
|
+ {{menuItem.tag}}
|
|
|
+ </span>
|
|
|
+ </span>
|
|
|
+ </MenuItem>
|
|
|
+ </Submenu>
|
|
|
+ <MenuItem :name="item.menuName" v-else-if="$access.ability(item.role,item.permission).validateAll" :to="item.router">
|
|
|
<Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
|
|
|
- <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="20" />
|
|
|
+ <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="22" />
|
|
|
</Tooltip>
|
|
|
- <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="20" />
|
|
|
+ <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="22" />
|
|
|
<span>{{item.name}}</span>
|
|
|
- </template>
|
|
|
- <MenuItem class="sub-item-wrap sub-item-wrap-active" :name="menuItem.menuName" :to="menuItem.router" v-for="(menuItem,i) in item.child" :key="i" v-if="$access.ability(menuItem.role,menuItem.permission).validateAll">
|
|
|
- <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed">
|
|
|
- <Icon class="sub-menu-icon" :custom="menuItem.icon" size="18" />
|
|
|
- </Tooltip>
|
|
|
- <Icon v-show="!isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="18" />
|
|
|
- <span>
|
|
|
- {{menuItem.name}}
|
|
|
- <span style="color: aqua;margin-left: 2px;font-size: 12px;vertical-align: text-top;">
|
|
|
- {{menuItem.tag}}
|
|
|
+ </MenuItem>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </MenuGroup>
|
|
|
+ <MenuGroup title="个人">
|
|
|
+ <div v-for="(item,index) in teacherMenu" :key="index">
|
|
|
+ <Submenu :name="item.subName" v-if="$access.ability(item.role,item.permission).validateAll && item.child.length" v-show="(index == 0 && $store.state.userInfo.hasSchool) || index > 0">
|
|
|
+ <template slot="title">
|
|
|
+ <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
|
|
|
+ <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="20" />
|
|
|
+ </Tooltip>
|
|
|
+ <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="20" />
|
|
|
+ <span>{{item.name}}</span>
|
|
|
+ </template>
|
|
|
+ <MenuItem class="sub-item-wrap sub-item-wrap-active" :name="menuItem.menuName" :to="menuItem.router" v-for="(menuItem,i) in item.child" :key="i" v-show="$access.ability(menuItem.role,menuItem.permission).validateAll && menuItem.isShow">
|
|
|
+ <Tooltip :content="menuItem.name" placement="right" transfer v-show="isCollapsed">
|
|
|
+ <Icon class="sub-menu-icon" :custom="menuItem.icon" size="18" />
|
|
|
+ </Tooltip>
|
|
|
+ <Icon v-show="!isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="18" />
|
|
|
+ <span>
|
|
|
+ {{menuItem.name}}
|
|
|
+ <span style="color: aqua;margin-left: 2px;font-size: 12px;vertical-align: text-top;">
|
|
|
+ {{menuItem.tag}}
|
|
|
+ </span>
|
|
|
</span>
|
|
|
- </span>
|
|
|
+ </MenuItem>
|
|
|
+ </Submenu>
|
|
|
+ <MenuItem :name="item.menuName" v-else-if="$access.ability(item.role,item.permission).validateAll && item.isShow" :to="item.router">
|
|
|
+ <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
|
|
|
+ <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="22" />
|
|
|
+ </Tooltip>
|
|
|
+ <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="22" />
|
|
|
+ <span>{{item.name}}</span>
|
|
|
</MenuItem>
|
|
|
- </Submenu>
|
|
|
- <MenuItem :name="item.menuName" v-else-if="$access.ability(item.role,item.permission).validateAll" :to="item.router">
|
|
|
- <Tooltip :content="item.name" placement="right" transfer v-show="isCollapsed">
|
|
|
- <Icon :custom="item.icon" style="width:55px;text-align:left;" :class="isCollapsed ? 'collapse-icon-size':''" size="22" />
|
|
|
- </Tooltip>
|
|
|
- <Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="22" />
|
|
|
- <span>{{item.name}}</span>
|
|
|
- </MenuItem>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </MenuGroup>
|
|
|
+
|
|
|
</vuescroll>
|
|
|
</Menu>
|
|
|
+ <p class="copyright-info" v-show="!isCollapsed">
|
|
|
+ ©2021 Powered by 醍摩豆
|
|
|
+ </p>
|
|
|
</Sider>
|
|
|
<!-- Body内容部分 -->
|
|
|
<Layout :class="isCollapsed ?'collapsed-padding content-wrap':'content-wrap'">
|
|
@@ -69,18 +112,22 @@ export default {
|
|
|
bar: { opacity: 0 }
|
|
|
},
|
|
|
isCollapsed: false,
|
|
|
- menuTree: []
|
|
|
+ menuTree: [],
|
|
|
+ schoolMenu: [],
|
|
|
+ teacherMenu: [],
|
|
|
+ isShowLogo: true
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
initMenu() {
|
|
|
- this.menuTree = [
|
|
|
- // 智慧校园
|
|
|
+ //判断当前学校是否购买服务 暂未提供字段
|
|
|
+ this.schoolMenu = !this.$store.state.userInfo.schoolPay ? [
|
|
|
+ // 学校管理
|
|
|
{
|
|
|
icon: 'iconfont icon-school',
|
|
|
- name: this.$t('system.menu.smartSc'),
|
|
|
+ name: this.$t('system.menu.schoolMgt'),
|
|
|
router: '',
|
|
|
- subName: 'smartSchool',
|
|
|
+ subName: 'schoolMgt',
|
|
|
role: 'admin',
|
|
|
permission: 'schoolSetting-read|teacher-read|student-read|classroom-read|auth-read|course-read|syllabus-read|content-read|exercise-read|knowledge-read',
|
|
|
child: [
|
|
@@ -114,7 +161,7 @@ export default {
|
|
|
permission: 'student-upd|student-read',
|
|
|
menuName: 'studentAccount'
|
|
|
},
|
|
|
- // 教室管理
|
|
|
+ // // 教室管理
|
|
|
{
|
|
|
icon: 'iconfont icon-class-mgt',
|
|
|
name: this.$t('system.menu.classMgt'),
|
|
@@ -143,24 +190,35 @@ export default {
|
|
|
role: 'admin',
|
|
|
permission: 'auth-read|auth-upd',
|
|
|
menuName: 'serviceDriveAuth'
|
|
|
- },
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ // 学校资源
|
|
|
+ {
|
|
|
+ icon: 'iconfont icon-textbook',
|
|
|
+ name: this.$t('system.menu.schoolRes'),
|
|
|
+ router: '',
|
|
|
+ subName: 'schoolRes',
|
|
|
+ role: 'admin|teacher',
|
|
|
+ permission: 'schoolSetting-read|teacher-read|student-read|classroom-read|auth-read|course-read|syllabus-read|content-read|exercise-read|knowledge-read',
|
|
|
+ child: [
|
|
|
// 校本课纲
|
|
|
- {
|
|
|
- icon: 'iconfont icon-syllabus',
|
|
|
- name: this.$t('system.menu.scSyllabus'),
|
|
|
- router: '/home/syllabus',
|
|
|
- tag: this.$t('system.menu.preview'),
|
|
|
- role: 'admin',
|
|
|
- permission: 'syllabus-read|syllabus-upd',
|
|
|
- menuName: 'syllabus'
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-syllabus',
|
|
|
+ // name: this.$t('system.menu.scSyllabus'),
|
|
|
+ // router: '/home/syllabus',
|
|
|
+ // tag: this.$t('system.menu.preview'),
|
|
|
+ // role: 'admin|teacher',
|
|
|
+ // permission: 'syllabus-read|syllabus-upd',
|
|
|
+ // menuName: 'syllabus'
|
|
|
+ // },
|
|
|
// 校本内容
|
|
|
{
|
|
|
icon: 'iconfont icon-file',
|
|
|
name: this.$t('system.menu.scContent'),
|
|
|
router: '/home/schoolcontent',
|
|
|
tag: '',
|
|
|
- role: 'admin',
|
|
|
+ role: 'admin|teacher',
|
|
|
permission: 'content-read|content-upd',
|
|
|
menuName: 'schoolcontent'
|
|
|
},
|
|
@@ -170,7 +228,7 @@ export default {
|
|
|
name: this.$t('system.menu.scQuBack'),
|
|
|
router: '/home/evaluation/schoolBank',
|
|
|
tag: '',
|
|
|
- role: 'admin',
|
|
|
+ role: 'admin|teacher',
|
|
|
permission: 'exercise-read|exercise-upd',
|
|
|
menuName: 'schoolBank'
|
|
|
},
|
|
@@ -180,41 +238,12 @@ export default {
|
|
|
name: this.$t('system.menu.kdBack'),
|
|
|
router: '/home/knowledge',
|
|
|
tag: '',
|
|
|
- role: 'admin',
|
|
|
+ role: 'admin|teacher',
|
|
|
permission: 'knowledge-read|knowledge-upd',
|
|
|
menuName: 'knowledge'
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
- // 统计分析
|
|
|
- {
|
|
|
- icon: 'iconfont icon-analysis',
|
|
|
- name: this.$t('system.menu.staAna'),
|
|
|
- router: '',
|
|
|
- role: 'admin',
|
|
|
- subName: 'analysis',
|
|
|
- permission: 'analysis-read|scboard-read',
|
|
|
- child: [
|
|
|
- {
|
|
|
- icon: 'iconfont icon-xueqing',
|
|
|
- name: this.$t('system.menu.evAna'),
|
|
|
- router: '/totalIndex',
|
|
|
- tag: '',
|
|
|
- role: 'admin',
|
|
|
- permission: 'analysis-read',
|
|
|
- menuName: 'totalIndex'
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'iconfont icon-school-analysis',
|
|
|
- name: this.$t('system.menu.scAna'),
|
|
|
- router: '/home/scboard',
|
|
|
- tag: this.$t('system.menu.preview'),
|
|
|
- role: 'admin',
|
|
|
- permission: 'scboard-read',
|
|
|
- menuName: 'scboard'
|
|
|
- }
|
|
|
- ]
|
|
|
- },
|
|
|
// 校园活动
|
|
|
{
|
|
|
icon: 'iconfont icon-activityS',
|
|
@@ -222,9 +251,7 @@ export default {
|
|
|
router: '',
|
|
|
role: 'admin',
|
|
|
permission: 'schoolAc-read|schoolAc-upd',
|
|
|
- // role: 'admin',
|
|
|
- // permission: '',
|
|
|
- subName:'scAc',
|
|
|
+ subName: 'scAc',
|
|
|
child: [
|
|
|
{
|
|
|
icon: 'iconfont icon-test',
|
|
@@ -255,24 +282,95 @@ export default {
|
|
|
},
|
|
|
]
|
|
|
},
|
|
|
- // 课程教材
|
|
|
+ // 统计分析 暂时隐藏,只保留学情分析
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-analysis',
|
|
|
+ // name: this.$t('system.menu.staAna'),
|
|
|
+ // router: '',
|
|
|
+ // role: 'admin',
|
|
|
+ // subName: 'analysis',
|
|
|
+ // permission: 'analysis-read|scboard-read',
|
|
|
+ // child: [
|
|
|
+ // // 学情分析
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-xueqing',
|
|
|
+ // name: this.$t('system.menu.evAna'),
|
|
|
+ // router: '/totalIndex',
|
|
|
+ // tag: '',
|
|
|
+ // role: 'admin',
|
|
|
+ // permission: 'analysis-read',
|
|
|
+ // menuName: 'totalIndex'
|
|
|
+ // },
|
|
|
+ // // 校园分析
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-school-analysis',
|
|
|
+ // name: this.$t('system.menu.scAna'),
|
|
|
+ // router: '/home/scboard',
|
|
|
+ // tag: this.$t('system.menu.preview'),
|
|
|
+ // role: 'admin',
|
|
|
+ // permission: 'scboard-read',
|
|
|
+ // menuName: 'scboard'
|
|
|
+ // }
|
|
|
+ // ]
|
|
|
+ // },
|
|
|
+
|
|
|
+ // 学情分析
|
|
|
+ {
|
|
|
+ icon: 'iconfont icon-xueqing',
|
|
|
+ name: this.$t('system.menu.evAna'),
|
|
|
+ router: '/totalIndex',
|
|
|
+ tag: '',
|
|
|
+ role: 'admin',
|
|
|
+ permission: 'analysis-read',
|
|
|
+ menuName: 'totalIndex',
|
|
|
+ child: []
|
|
|
+ },
|
|
|
+
|
|
|
+ ] : []
|
|
|
+ this.teacherMenu = [
|
|
|
+ // 我的班级
|
|
|
+ {
|
|
|
+ icon: 'iconfont icon-class-self',
|
|
|
+ name: this.$t('system.menu.myClass'),
|
|
|
+ router: '/home/manageClass',
|
|
|
+ tag: '',
|
|
|
+ role: 'teacher',
|
|
|
+ permission: '',
|
|
|
+ child: [],
|
|
|
+ menuName: 'manageClass',
|
|
|
+ isShow: this.$store.state.userInfo.hasSchool && this.$store.state.userInfo.isHeadmaster
|
|
|
+ },
|
|
|
+ // 我的课程
|
|
|
+ {
|
|
|
+ icon: 'iconfont icon-course-self',
|
|
|
+ name: this.$t('system.menu.myCus'),
|
|
|
+ router: '/home/myCourse',
|
|
|
+ tag: '',
|
|
|
+ role: 'teacher',
|
|
|
+ permission: '',
|
|
|
+ child: [],
|
|
|
+ menuName: 'myCourse',
|
|
|
+ isShow: true
|
|
|
+ },
|
|
|
+ // 我的资源
|
|
|
{
|
|
|
icon: 'iconfont icon-textbook',
|
|
|
name: this.$t('system.menu.cusContent'),
|
|
|
router: '',
|
|
|
role: 'teacher',
|
|
|
permission: '',
|
|
|
- subName:'cusContent',
|
|
|
+ subName: 'cusContent',
|
|
|
child: [
|
|
|
- {
|
|
|
- icon: 'iconfont icon-syllabus',
|
|
|
- name: this.$t('system.menu.prtSyllabus'),
|
|
|
- router: '/home/personalSyllabus',
|
|
|
- tag: this.$t('system.menu.preview'),
|
|
|
- role: 'teacher|admin',
|
|
|
- permission: '',
|
|
|
- menuName: 'personalSyllabus'
|
|
|
- },
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-syllabus',
|
|
|
+ // name: this.$t('system.menu.prtSyllabus'),
|
|
|
+ // router: '/home/personalSyllabus',
|
|
|
+ // tag: this.$t('system.menu.preview'),
|
|
|
+ // role: 'teacher|admin',
|
|
|
+ // permission: '',
|
|
|
+ // menuName: 'personalSyllabus',
|
|
|
+ // isShow: true
|
|
|
+ // },
|
|
|
{
|
|
|
icon: 'iconfont icon-file',
|
|
|
name: this.$t('system.menu.prtContent'),
|
|
@@ -280,7 +378,8 @@ export default {
|
|
|
tag: '',
|
|
|
role: 'teacher|admin',
|
|
|
permission: '',
|
|
|
- menuName: 'personalcontent'
|
|
|
+ menuName: 'personalcontent',
|
|
|
+ isShow: true
|
|
|
},
|
|
|
{
|
|
|
icon: 'iconfont icon-question-bank',
|
|
@@ -289,7 +388,8 @@ export default {
|
|
|
tag: '',
|
|
|
role: 'teacher|admin',
|
|
|
permission: '',
|
|
|
- menuName: 'personalBank'
|
|
|
+ menuName: 'personalBank',
|
|
|
+ isShow: true
|
|
|
}
|
|
|
]
|
|
|
},
|
|
@@ -300,7 +400,7 @@ export default {
|
|
|
router: '',
|
|
|
role: 'teacher|admin',
|
|
|
permission: '',
|
|
|
- subName:'stuAc',
|
|
|
+ subName: 'stuAc',
|
|
|
child: [
|
|
|
{
|
|
|
icon: 'iconfont icon-test',
|
|
@@ -309,7 +409,8 @@ export default {
|
|
|
tag: '',
|
|
|
role: 'teacher|admin',
|
|
|
permission: '',
|
|
|
- menuName: 'privateEvaluation'
|
|
|
+ menuName: 'privateEvaluation',
|
|
|
+ isShow: true
|
|
|
},
|
|
|
{
|
|
|
icon: 'iconfont icon-vote',
|
|
@@ -318,7 +419,8 @@ export default {
|
|
|
tag: '',
|
|
|
role: 'teacher|admin',
|
|
|
permission: '',
|
|
|
- menuName: 'personalVote'
|
|
|
+ menuName: 'personalVote',
|
|
|
+ isShow: true
|
|
|
},
|
|
|
{
|
|
|
icon: 'iconfont icon-questionnaire',
|
|
@@ -327,50 +429,33 @@ export default {
|
|
|
tag: '',
|
|
|
role: 'teacher|admin',
|
|
|
permission: '',
|
|
|
- menuName: 'personalSurvey'
|
|
|
+ menuName: 'personalSurvey',
|
|
|
+ isShow: true
|
|
|
},
|
|
|
- {
|
|
|
- icon: 'iconfont icon-learning-self',
|
|
|
- name: this.$t('system.menu.selfLearn'),
|
|
|
- router: '/home/SelfLearn',
|
|
|
- tag: this.$t('system.menu.preview'),
|
|
|
- role: 'teacher|admin',
|
|
|
- permission: '',
|
|
|
- menuName: 'selfLearn'
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'iconfont icon-hw',
|
|
|
- name: this.$t('system.menu.homework'),
|
|
|
- router: '/home/manageHomeWork',
|
|
|
- tag: this.$t('system.menu.preview'),
|
|
|
- role: 'teacher|admin',
|
|
|
- permission: '',
|
|
|
- menuName: 'manageHomeWork'
|
|
|
- }
|
|
|
+ // 自主学习和作业活动暂时隐藏
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-learning-self',
|
|
|
+ // name: this.$t('system.menu.selfLearn'),
|
|
|
+ // router: '/home/SelfLearn',
|
|
|
+ // tag: this.$t('system.menu.preview'),
|
|
|
+ // role: 'teacher|admin',
|
|
|
+ // permission: '',
|
|
|
+ // menuName: 'selfLearn',
|
|
|
+ // isShow:true
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // icon: 'iconfont icon-hw',
|
|
|
+ // name: this.$t('system.menu.homework'),
|
|
|
+ // router: '/home/manageHomeWork',
|
|
|
+ // tag: this.$t('system.menu.preview'),
|
|
|
+ // role: 'teacher|admin',
|
|
|
+ // permission: '',
|
|
|
+ // menuName: 'manageHomeWork',
|
|
|
+ // isShow:true
|
|
|
+ // }
|
|
|
]
|
|
|
},
|
|
|
- // 我的班级
|
|
|
- {
|
|
|
- icon: 'iconfont icon-class-self',
|
|
|
- name: this.$t('system.menu.myClass'),
|
|
|
- router: '/home/manageClass',
|
|
|
- tag: '',
|
|
|
- role: 'teacher',
|
|
|
- permission: '',
|
|
|
- child: [],
|
|
|
- menuName: 'manageClass'
|
|
|
- },
|
|
|
- // 我的课程
|
|
|
- {
|
|
|
- icon: 'iconfont icon-course-self',
|
|
|
- name: this.$t('system.menu.myCus'),
|
|
|
- router: '/home/myCourse',
|
|
|
- tag: '',
|
|
|
- role: 'teacher',
|
|
|
- permission: '',
|
|
|
- child: [],
|
|
|
- menuName: 'myCourse'
|
|
|
- },
|
|
|
+
|
|
|
// 任务列表
|
|
|
{
|
|
|
icon: 'iconfont icon-task',
|
|
@@ -380,7 +465,8 @@ export default {
|
|
|
role: 'teacher',
|
|
|
permission: '',
|
|
|
child: [],
|
|
|
- menuName: 'taskList'
|
|
|
+ menuName: 'taskList',
|
|
|
+ isShow: this.$store.state.userInfo.hasSchool
|
|
|
}
|
|
|
]
|
|
|
},
|
|
@@ -392,12 +478,10 @@ export default {
|
|
|
computed: {
|
|
|
rotateIcon() {
|
|
|
return ["collapse-icon", this.isCollapsed ? "rotate-icon" : ""]
|
|
|
- },
|
|
|
- menuitemClasses() {
|
|
|
- return ["menu-item", this.isCollapsed ? "collapsed-menu" : ""]
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
+ console.log('权限',this.$access)
|
|
|
this.initMenu()
|
|
|
let cloudSetting = localStorage.getItem('cloudSetting')
|
|
|
if (cloudSetting) {
|
|
@@ -405,24 +489,41 @@ export default {
|
|
|
if (cloudSetting.menuStatus == 'close') {
|
|
|
this.isCollapsed = true
|
|
|
}
|
|
|
+ this.isShowLogo = cloudSetting.logoStatus === 'open'
|
|
|
}
|
|
|
},
|
|
|
+ mounted() {
|
|
|
+ this.$EventBus.$off('onLogoStatusChange')
|
|
|
+ this.$EventBus.$on('onLogoStatusChange', val => {
|
|
|
+ this.isShowLogo = val === 'open'
|
|
|
+ })
|
|
|
+ },
|
|
|
watch: {
|
|
|
$route: {
|
|
|
handler(val, oldval) {
|
|
|
- if (this.menuTree.length == 0) {
|
|
|
+ if (this.schoolMenu.length == 0) {
|
|
|
this.initMenu()
|
|
|
}
|
|
|
- console.log(val)
|
|
|
let metaName = val.meta.activeName
|
|
|
this.activeName = metaName
|
|
|
this.openNames = []
|
|
|
- for (let i in this.menuTree) {
|
|
|
- if (this.menuTree[i].child.length) {
|
|
|
- for (let j in this.menuTree[i].child) {
|
|
|
- if (this.menuTree[i].child[j].menuName == metaName) {
|
|
|
+ for (let i in this.schoolMenu) {
|
|
|
+ if (this.schoolMenu[i].child.length) {
|
|
|
+ for (let j in this.schoolMenu[i].child) {
|
|
|
+ if (this.schoolMenu[i].child[j].menuName == metaName) {
|
|
|
+ this.activeName = metaName
|
|
|
+ this.openNames.push(this.schoolMenu[i].subName)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (let i in this.teacherMenu) {
|
|
|
+ if (this.teacherMenu[i].child.length) {
|
|
|
+ for (let j in this.teacherMenu[i].child) {
|
|
|
+ if (this.teacherMenu[i].child[j].menuName == metaName) {
|
|
|
this.activeName = metaName
|
|
|
- this.openNames.push(this.menuTree[i].subName)
|
|
|
+ this.openNames.push(this.teacherMenu[i].subName)
|
|
|
break
|
|
|
}
|
|
|
}
|
|
@@ -445,6 +546,17 @@ export default {
|
|
|
@import "./BaseLayout.less";
|
|
|
</style>
|
|
|
<style lang="less">
|
|
|
+.biz-menu .ivu-menu-vertical .ivu-menu-item-group-title {
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 30px;
|
|
|
+ height: 30px;
|
|
|
+}
|
|
|
+.biz-menu .ivu-menu-item-group:first-child {
|
|
|
+ margin-top: 0px;
|
|
|
+}
|
|
|
+.biz-menu .ivu-menu-item-group {
|
|
|
+ margin-top: 10px;
|
|
|
+}
|
|
|
.layout .ivu-layout-header {
|
|
|
padding: 0px;
|
|
|
}
|
|
@@ -466,24 +578,20 @@ export default {
|
|
|
}
|
|
|
|
|
|
.collapsed-menu span {
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- /* width: 118px; */
|
|
|
-}
|
|
|
-.collapsed-menu span {
|
|
|
- width: 0px;
|
|
|
+ position: absolute;
|
|
|
+ opacity: 0;
|
|
|
float: right;
|
|
|
- transition: width 0.1s ease;
|
|
|
+ width: 0px;
|
|
|
}
|
|
|
.menu-item span {
|
|
|
display: inline-block;
|
|
|
- /* overflow: hidden; */
|
|
|
- /* text-overflow: ellipsis; */
|
|
|
white-space: nowrap;
|
|
|
font-size: 16px;
|
|
|
- /* width: 118px; */
|
|
|
+ position: absolute;
|
|
|
+ width: ~"calc(100% - 50px)";
|
|
|
+ max-width: 150px;
|
|
|
vertical-align: top;
|
|
|
- transition: width 0.1s ease 0.1s;
|
|
|
+ transition: width 0.2s;
|
|
|
font-family: Roboto, -apple-system, BlinkMacSystemFont, Segoe UI,
|
|
|
Microsoft JhengHei !important;
|
|
|
}
|
|
@@ -518,6 +626,7 @@ export default {
|
|
|
position: absolute;
|
|
|
top: -5px;
|
|
|
font-size: 12px;
|
|
|
+ opacity: 0.8;
|
|
|
color: #1cc0f3;
|
|
|
}
|
|
|
|