diff --git a/src/router/index.js b/src/router/index.js index 661fb7f2..4c27af91 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -11,14 +11,9 @@ const settingsDisabled = disabledFeatures.includes('settings') const settings = { path: '/settings', component: Layout, - children: [ - { - path: 'index', - component: () => import('@/views/settings/index'), - name: 'Settings', - meta: { title: 'settings', icon: 'settings', noCache: true } - } - ] + name: 'Settings', + hasSubmenu: true, + meta: { title: 'settings', icon: 'settings', noCache: true } } const statusesDisabled = disabledFeatures.includes('statuses') @@ -145,7 +140,8 @@ export const constantRouterMap = [ { path: '', component: Layout, - redirect: '/users/index' + redirect: '/users/index', + hidden: true } ] diff --git a/src/store/getters.js b/src/store/getters.js index f58f0c6b..a287712d 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -17,6 +17,7 @@ const getters = { errorLogs: state => state.errorLog.logs, users: state => state.users.fetchedUsers, authHost: state => state.user.authHost, - settings: state => state.settings + settings: state => state.settings, + tabs: state => state.settings.tabs } export default getters diff --git a/src/views/layout/components/Sidebar/index.vue b/src/views/layout/components/Sidebar/index.vue index e52ae6b6..b23e4dc6 100644 --- a/src/views/layout/components/Sidebar/index.vue +++ b/src/views/layout/components/Sidebar/index.vue @@ -7,6 +7,7 @@ :text-color="variables.menuText" :active-text-color="variables.menuActiveText" mode="vertical" + @open="handleOpen" > @@ -17,13 +18,15 @@ import { mapGetters } from 'vuex' import SidebarItem from './SidebarItem' import variables from '@/styles/variables.scss' +// import router from '@/router' export default { components: { SidebarItem }, computed: { ...mapGetters([ 'permission_routers', - 'sidebar' + 'sidebar', + 'tabs' ]), variables() { return variables @@ -34,6 +37,26 @@ export default { }, mounted() { this.$store.dispatch('FetchOpenReportsCount') + }, + methods: { + async handleOpen($event) { + if ($event === '/settings') { + let items = localStorage.getItem('settingsTabs') + if (!items) { + await this.$store.dispatch('FetchSettings') + items = this.tabs + localStorage.setItem('settingsTabs', JSON.stringify(items)) + } + JSON.parse(items).forEach(item => { + // router.addRoute('Settings', [{ + // path: item.value, + // component: { + // template: 'Ioio' + // } + // }]) + }) + } + } } }