| | |
| | | clearable |
| | | filterable |
| | | reserve-keyword |
| | | :placeholder="$t('navbar.selectTenant')" |
| | | :placeholder="proxy.$t('navbar.selectTenant')" |
| | | @change="dynamicTenantEvent" |
| | | @clear="dynamicClearEvent" |
| | | > |
| | |
| | | </div> |
| | | </el-tooltip> |
| | | <!-- 消息 --> |
| | | <el-tooltip :content="$t('navbar.message')" effect="dark" placement="bottom"> |
| | | <el-tooltip :content="proxy.$t('navbar.message')" effect="dark" placement="bottom"> |
| | | <div> |
| | | <el-popover placement="bottom" trigger="click" transition="el-zoom-in-top" :width="300" :persistent="false"> |
| | | <template #reference> |
| | |
| | | <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip :content="$t('navbar.document')" effect="dark" placement="bottom"> |
| | | <el-tooltip :content="proxy.$t('navbar.document')" effect="dark" placement="bottom"> |
| | | <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip :content="$t('navbar.full')" effect="dark" placement="bottom"> |
| | | <el-tooltip :content="proxy.$t('navbar.full')" effect="dark" placement="bottom"> |
| | | <screenfull id="screenfull" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip :content="$t('navbar.language')" effect="dark" placement="bottom"> |
| | | <el-tooltip :content="proxy.$t('navbar.language')" effect="dark" placement="bottom"> |
| | | <lang-select id="lang-select" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip :content="$t('navbar.layoutSize')" effect="dark" placement="bottom"> |
| | | <el-tooltip :content="proxy.$t('navbar.layoutSize')" effect="dark" placement="bottom"> |
| | | <size-select id="size-select" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | </template> |
| | |
| | | <template #dropdown> |
| | | <el-dropdown-menu> |
| | | <router-link v-if="!dynamic" to="/user/profile"> |
| | | <el-dropdown-item>{{ $t('navbar.personalCenter') }}</el-dropdown-item> |
| | | <el-dropdown-item>{{ proxy.$t('navbar.personalCenter') }}</el-dropdown-item> |
| | | </router-link> |
| | | <el-dropdown-item v-if="settingsStore.showSettings" command="setLayout"> |
| | | <span>{{ $t('navbar.layoutSetting') }}</span> |
| | | <span>{{ proxy.$t('navbar.layoutSetting') }}</span> |
| | | </el-dropdown-item> |
| | | <el-dropdown-item divided command="logout"> |
| | | <span>{{ $t('navbar.logout') }}</span> |
| | | <span>{{ proxy.$t('navbar.logout') }}</span> |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </template> |
| | |
| | | import { dynamicClear, dynamicTenant } from '@/api/system/tenant'; |
| | | import { TenantVO } from '@/api/types'; |
| | | import notice from './notice/index.vue'; |
| | | import router from '@/router'; |
| | | |
| | | const appStore = useAppStore(); |
| | | const userStore = useUserStore(); |
| | |
| | | if (companyName.value != null && companyName.value !== '') { |
| | | await dynamicTenant(tenantId); |
| | | dynamic.value = true; |
| | | proxy?.$tab.closeAllPage(); |
| | | proxy?.$router.push('/'); |
| | | proxy?.$tab.refreshPage(); |
| | | await proxy?.$router.push('/'); |
| | | await proxy?.proxy.$tab.closeAllPage(); |
| | | await proxy?.proxy.$tab.refreshPage(); |
| | | } |
| | | }; |
| | | |
| | | const dynamicClearEvent = async () => { |
| | | await dynamicClear(); |
| | | dynamic.value = false; |
| | | proxy?.$tab.closeAllPage(); |
| | | proxy?.$router.push('/'); |
| | | proxy?.$tab.refreshPage(); |
| | | await proxy?.$router.push('/'); |
| | | await proxy?.proxy.$tab.closeAllPage(); |
| | | await proxy?.proxy.$tab.refreshPage(); |
| | | }; |
| | | |
| | | /** 租户列表 */ |
| | | const initTenantList = async () => { |
| | | const { data } = await getTenantList(); |
| | | const { data } = await getTenantList(true); |
| | | tenantEnabled.value = data.tenantEnabled === undefined ? true : data.tenantEnabled; |
| | | if (tenantEnabled.value) { |
| | | tenantList.value = data.voList; |
| | |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }); |
| | | await userStore.logout(); |
| | | location.href = import.meta.env.VITE_APP_CONTEXT_PATH + 'index'; |
| | | userStore.logout().then(() => { |
| | | router.replace({ |
| | | path: '/login', |
| | | query: { |
| | | redirect: encodeURIComponent(router.currentRoute.value.fullPath || '/') |
| | | } |
| | | }); |
| | | }); |
| | | }; |
| | | |
| | | const emits = defineEmits(['setLayout']); |