|
@@ -18,6 +18,7 @@
|
|
|
</div>
|
|
|
<Menu style="margin-top:0px" width="auto" :class="['menu-item', isCollapsed ? 'collapsed-menu' : '']" accordion :active-name="activeName" :open-names="openNames">
|
|
|
<vuescroll :ops="ops">
|
|
|
+ <!-- 学校菜单 -->
|
|
|
<MenuGroup :title="$t('system.menu.school')">
|
|
|
<!-- 暂未提供判断是否购买服务的字段 -->
|
|
|
<p class="school-menu-tips" v-show="schoolStatusInfo">
|
|
@@ -33,7 +34,7 @@
|
|
|
<Icon v-show="!isCollapsed" :custom="item.icon" :class="isCollapsed ? 'collapse-icon-size':''" size="16" />
|
|
|
<span>{{item.name}}</span>
|
|
|
</template>
|
|
|
- <MenuItem :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">
|
|
|
+ <MenuItem :name="menuItem.menuName" @click.native.capture="menuClick(menuItem)" :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 v-show="isCollapsed" class="sub-menu-icon" :custom="menuItem.icon" size="16" />
|
|
|
<!-- </Tooltip> -->
|
|
@@ -67,6 +68,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</MenuGroup>
|
|
|
+ <!-- 个人菜单 -->
|
|
|
<MenuGroup :title="$t('system.menu.private')">
|
|
|
<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 && item.isShow" v-show="(index == 0 && $store.state.userInfo.hasSchool) || index > 0">
|
|
@@ -116,6 +118,7 @@
|
|
|
<Icon :title="isLock ? $t('system.menu.unlockTips') : $t('system.menu.lockTips')" :custom="isLock ? 'iconfont icon-lock' : 'iconfont icon-unlock'" @click="isLock = !isLock" class="lock-menu-btn" />
|
|
|
</p>
|
|
|
</Sider>
|
|
|
+ <Loading v-if="isLoading"></Loading>
|
|
|
<!-- Body内容部分 -->
|
|
|
<Layout :class="!isLock ?'collapsed-padding content-wrap':'content-wrap'">
|
|
|
<slot name="content"></slot>
|
|
@@ -127,6 +130,7 @@ import { mapGetters } from 'vuex'
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
+ isLoading: false,
|
|
|
systemLevel: this.$t('system.basic'),
|
|
|
isLock: false,
|
|
|
isShowAreaSelect: true,
|
|
@@ -194,6 +198,29 @@ export default {
|
|
|
const proInfo = this.$store.state.user?.schoolProfile?.svcStatus || null
|
|
|
console.log(proInfo)
|
|
|
return proInfo && proInfo.YMPCVCIM
|
|
|
+ },
|
|
|
+ //获取快速登录的code
|
|
|
+ getLoginCode() {
|
|
|
+ this.isLoading = true
|
|
|
+ let idToken = localStorage.getItem('id_token')
|
|
|
+ this.$api.login.getCode(idToken).then(
|
|
|
+ res => {
|
|
|
+ this.loginCode = res.code
|
|
|
+ window.location = `https://sokrates.teammodel.cn/auth/login/callback-habook?code=${this.loginCode}`
|
|
|
+ },
|
|
|
+ err => {
|
|
|
+ console.log('获取code失败', err)
|
|
|
+ }
|
|
|
+ ).finally(() => {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.isLoading = false
|
|
|
+ }, 500)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ menuClick(menu) {
|
|
|
+ if (menu.router == '#') {
|
|
|
+ this.getLoginCode()
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -444,7 +471,18 @@ export default {
|
|
|
role: 'admin',
|
|
|
permission: 'research-read|research-upd',
|
|
|
menuName: 'courseCenter',
|
|
|
- isShow: this.$store.state.config.srvAdrType != 'product'
|
|
|
+ isShow: this.$store.state.config.srvAdrType === 'test'
|
|
|
+ },
|
|
|
+ // 名师课堂
|
|
|
+ {
|
|
|
+ icon: 'iconfont icon-course-videos',
|
|
|
+ name: this.$t('system.menu.toSokrates'),
|
|
|
+ router: '#',
|
|
|
+ tag: '',
|
|
|
+ role: 'admin',
|
|
|
+ permission: 'research-read|research-upd',
|
|
|
+ menuName: 'courseCenter',
|
|
|
+ isShow: true
|
|
|
},
|
|
|
{
|
|
|
icon: 'iconfont icon-data-count',
|