| | |
| | | "vue": "2.6.12",
|
| | | "vue-count-to": "1.0.13",
|
| | | "vue-cropper": "0.5.5",
|
| | | "vue-meta": "^2.4.0",
|
| | | "vue-meta": "2.4.0",
|
| | | "vue-router": "3.4.9",
|
| | | "vuedraggable": "2.24.3",
|
| | | "vuex": "3.6.0"
|
| | |
| | | <el-breadcrumb class="app-breadcrumb" separator="/"> |
| | | <transition-group name="breadcrumb"> |
| | | <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path"> |
| | | <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span> |
| | | <span v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" class="no-redirect">{{ item.meta.title }}</span> |
| | | <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> |
| | | </el-breadcrumb-item> |
| | | </transition-group> |
| | |
| | | <template>
|
| | | <div>
|
| | | <svg-icon icon-class="question" @click="goto"/>
|
| | | <svg-icon icon-class="question" @click="goto" />
|
| | | </div>
|
| | | </template>
|
| | |
|
| | |
| | | <template>
|
| | | <div>
|
| | | <svg-icon icon-class="github" @click="goto"/>
|
| | | <svg-icon icon-class="github" @click="goto" />
|
| | | </div>
|
| | | </template>
|
| | |
|
| | |
| | | </div>
|
| | | <el-dropdown-menu slot="dropdown">
|
| | | <el-dropdown-item v-for="item of sizeOptions" :key="item.value" :disabled="size===item.value" :command="item.value">
|
| | | {{
|
| | | item.label }}
|
| | | {{ item.label }}
|
| | | </el-dropdown-item>
|
| | | </el-dropdown-menu>
|
| | | </el-dropdown>
|
| | |
| | | variables() {
|
| | | return variables;
|
| | | },
|
| | | sideTheme() {
|
| | | sideTheme() {
|
| | | return this.$store.state.settings.sideTheme
|
| | | }
|
| | | },
|
| | |
| | | }
|
| | |
|
| | | .hideSidebar .fixed-header {
|
| | | width: calc(100% - 54px)
|
| | | width: calc(100% - 54px);
|
| | | }
|
| | |
|
| | | .mobile .fixed-header {
|
| | |
| | | import App from './App'
|
| | | import store from './store'
|
| | | import router from './router'
|
| | | import directive from './directive' //directive
|
| | | import directive from './directive' // directive
|
| | | import plugins from './plugins' // plugins
|
| | | import { download } from '@/utils/request'
|
| | |
|
| | |
| | | responseType: 'blob', |
| | | headers: { 'Authorization': 'Bearer ' + getToken() } |
| | | }).then(async (res) => { |
| | | const isLogin = await this.blobValidate(res.data); |
| | | const isLogin = await blobValidate(res.data); |
| | | if (isLogin) { |
| | | const blob = new Blob([res.data]) |
| | | this.saveAs(blob, decodeURI(res.headers['download-filename'])) |
| | |
| | | responseType: 'blob', |
| | | headers: { 'Authorization': 'Bearer ' + getToken() } |
| | | }).then(async (res) => { |
| | | const isLogin = await this.blobValidate(res.data); |
| | | const isLogin = await blobValidate(res.data); |
| | | if (isLogin) { |
| | | const blob = new Blob([res.data]) |
| | | this.saveAs(blob, decodeURI(res.headers['download-filename'])) |
| | |
| | | path: 'role/:userId(\\d+)', |
| | | component: (resolve) => require(['@/views/system/user/authRole'], resolve), |
| | | name: 'AuthRole', |
| | | meta: { title: '分配角色', activeMenu: '/system/user'} |
| | | meta: { title: '分配角色', activeMenu: '/system/user' } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | path: 'user/:roleId(\\d+)', |
| | | component: (resolve) => require(['@/views/system/role/authUser'], resolve), |
| | | name: 'AuthUser', |
| | | meta: { title: '分配用户', activeMenu: '/system/role'} |
| | | meta: { title: '分配用户', activeMenu: '/system/role' } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | path: 'index/:dictId(\\d+)', |
| | | component: (resolve) => require(['@/views/system/dict/data'], resolve), |
| | | name: 'Data', |
| | | meta: { title: '字典数据', activeMenu: '/system/dict'} |
| | | meta: { title: '字典数据', activeMenu: '/system/dict' } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | path: 'index', |
| | | component: (resolve) => require(['@/views/monitor/job/log'], resolve), |
| | | name: 'JobLog', |
| | | meta: { title: '调度日志', activeMenu: '/monitor/job'} |
| | | meta: { title: '调度日志', activeMenu: '/monitor/job' } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | path: 'index', |
| | | component: (resolve) => require(['@/views/tool/gen/editTable'], resolve), |
| | | name: 'GenEdit', |
| | | meta: { title: '修改生成配置', activeMenu: '/tool/gen'} |
| | | meta: { title: '修改生成配置', activeMenu: '/tool/gen' } |
| | | } |
| | | ] |
| | | } |
| | |
| | | import { constantRoutes } from '@/router'
|
| | | import { getRouters } from '@/api/menu'
|
| | | import Layout from '@/layout/index'
|
| | | import ParentView from '@/components/ParentView';
|
| | | import ParentView from '@/components/ParentView'
|
| | | import InnerLink from '@/layout/components/InnerLink'
|
| | |
|
| | | const permission = {
|
| | |
| | | // 顶部导航菜单默认添加统计报表栏指向首页
|
| | | const index = [{
|
| | | path: 'index',
|
| | | meta: { title: '统计报表', icon: 'dashboard'}
|
| | | meta: { title: '统计报表', icon: 'dashboard' }
|
| | | }]
|
| | | state.topbarRouters = routes.concat(index);
|
| | | },
|
| | |
| | | theme: storageSetting.theme || '#409EFF',
|
| | | sideTheme: storageSetting.sideTheme || sideTheme,
|
| | | showSettings: showSettings,
|
| | | topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
|
| | | topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
|
| | | tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
|
| | | fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
|
| | | sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
|
| | |
| | | })
|
| | | })
|
| | | },
|
| | | |
| | |
|
| | | // 退出系统
|
| | | LogOut({ commit, state }) {
|
| | | return new Promise((resolve, reject) => {
|