From d1a0722aaac9368b4e36254a2813ded0a488e149 Mon Sep 17 00:00:00 2001 From: "[li_she]" <[li.she@xujiesoft.com]> Date: Fri, 6 Aug 2021 09:04:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/userFavorite.js | 1 + src/store/modules/user.js | 8 ++ src/views/common/login.vue | 10 +- src/views/main-navbar.vue | 8 +- src/views/main-sidebar.vue | 119 ++++++++++++---------- src/views/main.vue | 11 +- src/views/modules/sys/language/common.vue | 2 +- src/views/modules/sys/user.vue | 60 +++++++---- 8 files changed, 140 insertions(+), 79 deletions(-) diff --git a/src/api/userFavorite.js b/src/api/userFavorite.js index c546256..aca424f 100644 --- a/src/api/userFavorite.js +++ b/src/api/userFavorite.js @@ -9,3 +9,4 @@ export const saveUserFavorite = data => createAPI('userFavorite/save',"POST",da // 取消收藏 export const removeUserFavorite = data => createAPI('userFavorite/remove',"POST",data) + diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 15e4bc2..fe44a7e 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -4,6 +4,8 @@ export default { id: 0, name: '', site: 0, + languageDefault: '', + userDisplay: '' }, mutations: { updateId (state, id) { @@ -12,8 +14,14 @@ export default { updateName (state, name) { state.name = name }, + updateLanguageDefault (state,languageDefault){ + state.languageDefault = languageDefault + }, updateSite (state,site){ state.site = site + }, + updateUserDisplay (state,userDisplay){ + state.userDisplay = userDisplay } } } diff --git a/src/views/common/login.vue b/src/views/common/login.vue index 666b50b..c355ed7 100644 --- a/src/views/common/login.vue +++ b/src/views/common/login.vue @@ -48,9 +48,13 @@ } }, created () { - + this.userName(); }, methods: { + // 获取上次登陆的用户名 + userName(){ + this.dataForm.userName = localStorage.getItem('userName') + }, // 提交表单 dataFormSubmit () { this.$refs['dataForm'].validate((valid) => { @@ -62,7 +66,6 @@ 'username': this.dataForm.userName, 'password': this.dataForm.password, 'uuid': this.dataForm.uuid - }) }).then(({data}) => { if (data && data.code === 0) { @@ -70,15 +73,14 @@ this.$router.replace({ name: 'home' }) localStorage.setItem('locale', data.language) localStorage.setItem('refresh', "0") + localStorage.setItem('userName', this.dataForm.userName) } else { - this.$message.error(data.msg) } }) } }) }, - } } diff --git a/src/views/main-navbar.vue b/src/views/main-navbar.vue index 2f2803b..a40c631 100644 --- a/src/views/main-navbar.vue +++ b/src/views/main-navbar.vue @@ -6,7 +6,7 @@ class="site-navbar__menu" mode="horizontal"> - + {{$t('commonSystemName')}} @@ -145,7 +145,7 @@ }, userName: { get() { - return this.$store.state.user.name + return this.$store.state.user.userDisplay } } }, @@ -206,7 +206,9 @@ color: #fff; margin-left: -45px; } - + .el-menu--horizontal>.el-menu-item { + color: #3b4249; + } diff --git a/src/views/main-sidebar.vue b/src/views/main-sidebar.vue index 537f446..ec36444 100644 --- a/src/views/main-sidebar.vue +++ b/src/views/main-sidebar.vue @@ -37,12 +37,12 @@ :dynamicMenuRoutes="dynamicMenuRoutes"> - - + + @@ -53,6 +53,7 @@ import SubMenu from './main-sidebar-sub-menu' import {isURL} from '@/utils/validate' import {userFavoriteList} from '@/api/userFavorite.js' +import {treeDataTranslate} from '@/utils' export default { data() { @@ -61,7 +62,9 @@ export default { search: '', categoryList: [], uFavoriteList: [], - favoriteList: [] + favoriteList: [], + newMenuList: [], + list: [] } }, components: { @@ -117,81 +120,95 @@ export default { $route: 'routeHandle' }, created() { - this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]').filter(item => item.menuId!=73) - - this.favoriteList = JSON.parse(sessionStorage.getItem('menuList') || '[]').filter(item => item.menuId==73) + this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]').filter(item => item.menuId != 73) + this.favoriteList = JSON.parse(sessionStorage.getItem('menuList') || '[]').filter(item => item.menuId == 73) this.userFavorites() this.dynamicMenuRoutes = JSON.parse(sessionStorage.getItem('dynamicMenuRoutes') || '[]') this.routeHandle(this.$route) }, methods: { // 用户收藏夹 - userFavorites(){ + userFavorites() { let query = { - userId:this.$store.state.user.id, - languageCode:this.$i18n.locale + userId: this.$store.state.user.id, + languageCode: this.$i18n.locale } - userFavoriteList(query).then(({data})=> { - if (data.list.length>0){ + userFavoriteList(query).then(({data}) => { + if (data.list.length > 0) { this.favoriteList[0].list = data.list } }) }, + + // 更具 当前节点id 获取上级节点 + getParent(val, sum) { + if (val == 0) { + return; + } + let parent = this.list.filter(item => item.menuId == val) + if (parent.length > 0) { + parent[0].list.length = 0 + sum.push(parent[0]) + this.getParent(parent[0].parentId, sum) + } + }, // 搜索菜单方式1 start searchMenu1() { - if (this.search == "") { - this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]') + this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]').filter(item => item.menuId != 73) } else { - this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]') + let menuPlus = [] + this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]').filter(item => item.menuId != 73) + // this.menuList = this.treeFindPath(this.menuList).filter(this.search) + // 转换成list + this.list = this.treeFindPath(this.menuList) let list = this.treeFindPath(this.menuList) list = this.distinct(list, list); + // list中获取菜单 this.menuList = list.filter(item => item.name.indexOf(this.search) != -1) + let menuSum = [] + for (let data of this.menuList) { + menuSum.push(data) + this.getParent(data.parentId, menuSum) + } + menuSum = Array.from(new Set([...menuSum])) + + if (menuSum.length > 0) { + let menuList = menuSum.filter(item => item.parentId == 0); + this.menuList=menuList + this.treeList(menuList,menuSum) + } } }, - // 树结构菜单转换list + // 封装树形结构 + treeList(menuList,menuSum) { + for (let m1 of menuList) { + for (let m2 of menuSum) { + if (m1.menuId == m2.parentId){ + m1.list.push(m2) + this.treeList( m1.list,menuSum) + } + } + } + }, + // 搜索菜单方式1 树结构菜单转换list treeFindPath(tree, path = []) { if (!tree) return [] for (const data of tree) { path.push(data) - if (data.list != null) { - path.push(...data.list) - delete data.list - } + // if (data.list != null) { + // path.push(...data.list) + // delete data.list + // } this.treeFindPath(data.list, path) } - return path }, - // 搜索菜单方式1 去重 end + // 搜索菜单方式1 去重 distinct(a, b) { return Array.from(new Set([...a, ...b])) }, - // 搜索菜单方式2 start - searchMenu() { - if (this.search == "") { - this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]') - } else { - this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]') - this.menuList = this.filterTree(this.menuList,this.search) - console.log(this.menuList) - } - }, - filterTree (tree = [], map , arr = []) { - if (!tree.length) - return [] - for (let item of tree) { - if (map.indexOf(item.name)>-1){ - - } - continue - let node = {...item, list: []} - arr.push(node) - if (item.list && item.list.length) - this.filterTree(item.list, map, node.list) } - return arr - }, // 路由操作 routeHandle(route) { if (route.meta.isTab) { @@ -222,10 +239,10 @@ export default { } } -