Browse Source

搜索菜单

master
[li_she] 5 years ago
parent
commit
763bd689e4
  1. 2
      src/assets/scss/_base.scss
  2. 1
      src/utils/httpRequest.js
  3. 3
      src/views/main-navbar.vue
  4. 119
      src/views/main-sidebar.vue
  5. 10
      src/views/modules/knifemold/receive.vue
  6. 8
      src/views/modules/sys/language/common.vue

2
src/assets/scss/_base.scss

@ -284,7 +284,7 @@ img {
&__inner { &__inner {
position: relative; position: relative;
z-index: 1; z-index: 1;
width: 230px; // 放出侧边滚动条
width: 250px; // 放出侧边滚动条
height: 100%; height: 100%;
padding-bottom: 15px; padding-bottom: 15px;
overflow-y: scroll; overflow-y: scroll;

1
src/utils/httpRequest.js

@ -113,6 +113,7 @@ instance.interceptors.response.use(response => {
export const createAPI = (url, method, data) => { export const createAPI = (url, method, data) => {
let config = {} let config = {}
if (method === 'get') { if (method === 'get') {

3
src/views/main-navbar.vue

@ -25,6 +25,8 @@
<el-menu <el-menu
class="site-navbar__menu site-navbar__menu--right" class="site-navbar__menu site-navbar__menu--right"
mode="horizontal"> mode="horizontal">
<el-submenu index="2"> <el-submenu index="2">
<template slot="title">设置</template> <template slot="title">设置</template>
<el-submenu index="2-1" > <el-submenu index="2-1" >
@ -98,6 +100,7 @@
<!-- 弹窗, 修改密码 --> <!-- 弹窗, 修改密码 -->
<update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password> <update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password>
<update-language v-if="updateLanguageVisible" ref="updateLanguage"></update-language> <update-language v-if="updateLanguageVisible" ref="updateLanguage"></update-language>
</nav> </nav>
</template> </template>

119
src/views/main-sidebar.vue

@ -6,6 +6,11 @@
:collapse="sidebarFold" :collapse="sidebarFold"
:collapseTransition="false" :collapseTransition="false"
class="site-sidebar__menu"> class="site-sidebar__menu">
<el-menu-item style=" padding-left: 15px;" class="menu">
<span slot="title"> <el-input v-model="search" placeholder="搜索"
@keyup.enter.native="searchMenu"></el-input></span>
<i type="primary" class="el-icon-search" @click="searchMenu()"></i>
</el-menu-item>
<el-menu-item index="home" @click="$router.push({ name: 'home' })"> <el-menu-item index="home" @click="$router.push({ name: 'home' })">
<icon-svg name="shouye" class="site-sidebar__menu-icon"></icon-svg> <icon-svg name="shouye" class="site-sidebar__menu-icon"></icon-svg>
<span slot="title">{{ $t('commonhomePage') }}</span> <span slot="title">{{ $t('commonhomePage') }}</span>
@ -38,10 +43,13 @@
<script> <script>
import SubMenu from './main-sidebar-sub-menu' import SubMenu from './main-sidebar-sub-menu'
import {isURL} from '@/utils/validate' import {isURL} from '@/utils/validate'
export default { export default {
data() { data() {
return { return {
dynamicMenuRoutes: []
dynamicMenuRoutes: [],
search: '',
categoryList: []
} }
}, },
components: { components: {
@ -49,26 +57,47 @@
}, },
computed: { computed: {
sidebarLayoutSkin: { sidebarLayoutSkin: {
get () { return this.$store.state.common.sidebarLayoutSkin }
get() {
return this.$store.state.common.sidebarLayoutSkin
}
}, },
sidebarFold: { sidebarFold: {
get () { return this.$store.state.common.sidebarFold }
get() {
return this.$store.state.common.sidebarFold
}
}, },
menuList: {
get () { return this.$store.state.common.menuList },
set (val) { this.$store.commit('common/updateMenuList', val) }
menuList:
{
get() {
return this.$store.state.common.menuList
},
set(val) {
this.$store.commit('common/updateMenuList', val)
}
}, },
menuActiveName: { menuActiveName: {
get () { return this.$store.state.common.menuActiveName },
set (val) { this.$store.commit('common/updateMenuActiveName', val) }
get() {
return this.$store.state.common.menuActiveName
},
set(val) {
this.$store.commit('common/updateMenuActiveName', val)
}
}, },
mainTabs: { mainTabs: {
get () { return this.$store.state.common.mainTabs },
set (val) { this.$store.commit('common/updateMainTabs', val) }
get() {
return this.$store.state.common.mainTabs
},
set(val) {
this.$store.commit('common/updateMainTabs', val)
}
}, },
mainTabsActiveName: { mainTabsActiveName: {
get () { return this.$store.state.common.mainTabsActiveName },
set (val) { this.$store.commit('common/updateMainTabsActiveName', val) }
get() {
return this.$store.state.common.mainTabsActiveName
},
set(val) {
this.$store.commit('common/updateMainTabsActiveName', val)
}
} }
}, },
watch: { watch: {
@ -80,6 +109,61 @@
this.routeHandle(this.$route) this.routeHandle(this.$route)
}, },
methods: { methods: {
// 1 start
searchMenu1() {
if (this.search == "") {
this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]')
} else {
this.menuList = JSON.parse(sessionStorage.getItem('menuList') || '[]')
// this.menuList = this.treeFindPath(this.menuList).filter(this.search)
let list = this.treeFindPath(this.menuList)
list = this.distinct(list, list);
this.menuList = list.filter(item => item.name.indexOf(this.search) != -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
}
this.treeFindPath(data.list, path)
}
return path
},
// 1 end
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) { routeHandle(route) {
if (route.meta.isTab) { if (route.meta.isTab) {
@ -110,3 +194,14 @@
} }
} }
</script> </script>
<style>
.menu .el-input__inner {
background: transparent;
width: 100px;
font-size: 12px;
color: #FFFFFF;
border: #0BB2D4;
}
</style>

10
src/views/modules/knifemold/receive.vue

@ -33,6 +33,8 @@
<el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()" <el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()"
:disabled="dataListSelections.length <= 0">{{ buttons.deleteList }} :disabled="dataListSelections.length <= 0">{{ buttons.deleteList }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -45,6 +47,9 @@
<el-button type="primary" @click="addLanguageFun()">{{ buttons.add }} <el-button type="primary" @click="addLanguageFun()">{{ buttons.add }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item>
<el-button @click="favorites()" type="primary">收藏</el-button>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
@ -542,6 +547,10 @@ export default {
this.getLanguageList() this.getLanguageList()
}, },
methods: { methods: {
//
favorites() {
},
// //
saveLanguageList(val) { saveLanguageList(val) {
saveSysLanguageOne(val).then(({data}) => { saveSysLanguageOne(val).then(({data}) => {
@ -627,6 +636,7 @@ export default {
}, },
// table // table
updateColumnList() { updateColumnList() {
let userColumns = [] let userColumns = []
for (let column of this.userColumnList) { for (let column of this.userColumnList) {
let userColumn = { let userColumn = {

8
src/views/modules/sys/language/common.vue

@ -4,10 +4,8 @@
<el-form-item> <el-form-item>
<el-select filterable v-model="querySysLanguagePack.objectType" clearable>
<el-option label="列表" value="table"></el-option>
<el-option label="按钮" value="button"></el-option>
</el-select>
<el-input filterable v-model="querySysLanguagePack.functionId" clearable>
</el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()" type="primary">{{buttons.search}}</el-button> <el-button @click="getDataList()" type="primary">{{buttons.search}}</el-button>
@ -584,7 +582,7 @@
getFunctionButtonList() { getFunctionButtonList() {
searchFunctionButtonList(this.queryButton).then(({data}) => { searchFunctionButtonList(this.queryButton).then(({data}) => {
console.log(data.data) console.log(data.data)
if (data.data) {
if (data.data.length > 0) {
this.buttons = data.data this.buttons = data.data
} else { } else {
saveButtonList(this.buttonList).then(({data}) => { saveButtonList(this.buttonList).then(({data}) => {

Loading…
Cancel
Save