Преглед изворни кода

Merge branch 'master' of http://182.92.174.150:3000/dukai/CZO_Boss

dukai пре 3 година
родитељ
комит
c48f9862c8

+ 17 - 16
src/layout/components/Sidebar.vue

@@ -1,8 +1,10 @@
 <template>
 	<div class="has-logo">
-		<logo :collapse="isCollapse" />
+		<logo />
 		<div class="sidebar-box">
-			<div v-for="item in sidebarRouters" :key="item.path" class="sidebar-box-item" @click="toMainMenu(item)">{{ item.menuName }}</div>
+			<div v-for="item in sidebarRouters" :key="item.path" class="sidebar-box-item" :class="{ active: item.path == active }" @click="toMainMenu(item)">
+				<item :icon="item.icon" :title="item.menuName" />
+			</div>
 		</div>
 	</div>
 </template>
@@ -10,31 +12,29 @@
 <script>
 import { mapGetters, mapState } from 'vuex'
 import Logo from './Sidebar/Logo'
-import variables from '@/assets/styles/variables.scss'
+import Item from './Sidebar/Item'
 
 export default {
-	components: { Logo },
+	components: { Logo, Item },
+	data() {
+		return {
+			active: sessionStorage.getItem('sidebarActive') || 'index'
+		}
+	},
 	computed: {
 		...mapState(['settings']),
 		...mapGetters(['sidebarRouters', 'sidebar']),
-		activeMenu() {
-			const route = this.$route
-			const { meta, path } = route
-			// if set path, the sidebar will highlight the path you set
-			if (meta.activeMenu) {
-				return meta.activeMenu
-			}
-			return path
-		},
-		variables() {
-			return variables
-		},
 		isCollapse() {
 			return !this.sidebar.opened
 		}
 	},
 	methods: {
 		toMainMenu(item) {
+			if (this.$route.query.id == item.menuId) {
+				return
+			}
+			this.active = item.path
+			sessionStorage.setItem('sidebarActive', item.path)
 			this.$router.replace({
 				path: '/mainMenu',
 				query: {
@@ -57,6 +57,7 @@ export default {
 		text-align: center;
 		line-height: 49px;
 		cursor: pointer;
+		user-select: none;
 		border-bottom: 1px dashed #535559;
 		&:hover {
 			background-color: #535559;

+ 4 - 41
src/layout/components/Sidebar/Logo.vue

@@ -1,34 +1,8 @@
 <template>
-	<div
-		class="sidebar-logo-container"
-		:class="{ collapse: collapse }"
-		:style="{
-			backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground
-		}"
-	>
+	<div class="sidebar-logo-container collapse">
 		<transition name="sidebarLogoFade">
-			<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/">
+			<router-link v-if="enlarge" key="collapse" class="sidebar-logo-link" to="/">
 				<img v-if="logo" :src="logo" class="sidebar-logo" />
-				<h1
-					v-else
-					class="sidebar-title"
-					:style="{
-						color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor
-					}"
-				>
-					{{ title }}
-				</h1>
-			</router-link>
-			<router-link v-else key="expand" class="sidebar-logo-link" to="/">
-				<img v-if="logo" :src="logo" class="sidebar-logo" />
-				<h1
-					class="sidebar-title"
-					:style="{
-						color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor
-					}"
-				>
-					{{ title }}
-				</h1>
 			</router-link>
 		</transition>
 	</div>
@@ -36,27 +10,16 @@
 
 <script>
 import logoImg from '@/assets/logo/logo.png'
-import variables from '@/assets/styles/variables.scss'
 
 export default {
 	name: 'SidebarLogo',
-	props: {
-		collapse: {
-			type: Boolean,
-			required: true
-		}
-	},
 	computed: {
-		variables() {
-			return variables
-		},
-		sideTheme() {
-			return this.$store.state.settings.sideTheme
+		enlarge() {
+			return this.$store.state.app.enlarge
 		}
 	},
 	data() {
 		return {
-			title: '',
 			logo: logoImg
 		}
 	}

+ 1 - 1
src/router/index.js

@@ -63,7 +63,7 @@ export const constantRoutes = [
 				path: 'index',
 				component: resolve => require(['@/views/index'], resolve),
 				name: 'Index',
-				meta: { title: '首页', icon: 'dashboard', affix: true }
+				meta: { title: '风险办公', icon: 'dashboard', affix: true }
 			}
 		]
 	},

+ 12 - 3
src/store/modules/permission.js

@@ -4,7 +4,8 @@ import Layout from '@/layout/index'
 
 const permission = {
 	state: {
-		routes: []
+		routes: [],
+		sidebarRouters: []
 	},
 	mutations: {
 		SET_ROUTES: (state, routes) => {
@@ -25,7 +26,10 @@ const permission = {
 					const rewriteRoutes = filterAsyncRouter(data)
 					rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
 					sidebarRouters.unshift({ menuName: '风险办公', menuType: 'M', path: 'index' })
-					commit('SET_ROUTES', constantRoutes.concat(rewriteRoutes))
+					commit(
+						'SET_ROUTES',
+						data.filter(item => item.menuType === 'C')
+					)
 					commit('SET_SIDEBAR_ROUTERS', sidebarRouters)
 					resolve(rewriteRoutes)
 				})
@@ -48,7 +52,12 @@ function filterAsyncRouter(data) {
 						path: '',
 						component: loadView(item.component),
 						name: item.path,
-						meta: { title: item.menuName, icon: item.icon }
+						meta: {
+							title: item.menuName,
+							icon: item.icon,
+							menuId: item.menuId,
+							parentId: item.parentId
+						}
 					}
 				]
 			}