Commit 5387cdbf authored by “yiyousong”'s avatar “yiyousong”

perf: 优化页面配置

parent 1159c387
<template>
<div class="page-tab-view">
<el-tabs :value="activeKey" @tab-click="changeRouter">
<el-tab-pane v-for="v in secondaryRoutes" :key="v.path" :name="v.path">
<template slot="label">
<i v-if="v.meta.icon" :class="['tab-icon', v.meta.icon]"></i>
<span class="tab-label">{{ v.meta.title }}</span>
</template>
</el-tab-pane>
</el-tabs>
<div class="out-box">
<router-view></router-view>
</div>
</div>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
data() {
return {};
},
computed: {
activeKey() {
return this.$route.path;
},
...mapGetters('user', ['secondaryRoutes'])
},
created() {},
methods: {
changeRouter(e) {
this.$router.push(e.name);
}
}
};
</script>
<style lang="less" scoped>
:deep(.el-tabs__nav-scroll) {
padding-left: 15px;
.tab-icon {
margin-right: 5px;
color: #2681e8;
}
.tab-label {
font-weight: bold;
color: rgba(0, 0, 0, 0.65);
}
.is-active {
.tab-label {
color: #2681e8;
}
}
}
.page-tab-view {
width: 100%;
height: 100%;
background: #fff;
display: flex;
flex-direction: column;
.out-box {
flex: 1;
padding: 15px;
overflow-y: auto;
}
}
</style>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<script> <script>
import HeaderSite from './HeaderSite.vue'; import HeaderSite from './HeaderSite.vue';
import { mapState,mapMutations } from 'vuex'; import { mapState, mapMutations } from 'vuex';
import { systemName } from '@/config'; import { systemName } from '@/config';
export default { export default {
components: { components: {
...@@ -66,7 +66,7 @@ export default { ...@@ -66,7 +66,7 @@ export default {
} }
return path; return path;
}, },
...mapState('user', ['menus', 'sysName', 'sysLogo', 'path', 'menus']) ...mapState('user', ['sysName', 'sysLogo', 'path', 'menus'])
}, },
created() { created() {
......
...@@ -64,7 +64,7 @@ import storage from '@/utils/storage'; ...@@ -64,7 +64,7 @@ import storage from '@/utils/storage';
import { mapMutations } from 'vuex'; import { mapMutations } from 'vuex';
import { getHomeData } from '@/api/home'; import { getHomeData } from '@/api/home';
import { generateRoutes, filterBtn } from '@/utils'; import { generateRoutes, filterBtn } from '@/utils';
import { calcMenu } from '@/router'; import { calcMenu, menusFilter } from '@/router';
import { login, loginCode } from '@/api/login'; import { login, loginCode } from '@/api/login';
import { systemName } from '@/config'; import { systemName } from '@/config';
export default { export default {
...@@ -162,6 +162,7 @@ export default { ...@@ -162,6 +162,7 @@ export default {
// 过滤掉按钮 // 过滤掉按钮
let menus = filterBtn(menuList, false); let menus = filterBtn(menuList, false);
let routes = generateRoutes(menus); let routes = generateRoutes(menus);
routes = menusFilter(routes);
// this.SET_routes(routes); // this.SET_routes(routes);
this.SET_menusList(menus); this.SET_menusList(menus);
this.setBtnPermissions(menuList); this.setBtnPermissions(menuList);
......
...@@ -9,7 +9,7 @@ import storage from '@/utils/storage'; ...@@ -9,7 +9,7 @@ import storage from '@/utils/storage';
import { mapMutations } from 'vuex'; import { mapMutations } from 'vuex';
import { getHomeData } from '@/api/home'; import { getHomeData } from '@/api/home';
import { generateRoutes, filterBtn } from '@/utils'; import { generateRoutes, filterBtn } from '@/utils';
import { calcMenu } from '@/router'; import { calcMenu, menusFilter } from '@/router';
export default { export default {
data() { data() {
return { return {
...@@ -58,6 +58,7 @@ export default { ...@@ -58,6 +58,7 @@ export default {
// 过滤掉按钮 // 过滤掉按钮
let menus = filterBtn(menuList, false); let menus = filterBtn(menuList, false);
let routes = generateRoutes(menus); let routes = generateRoutes(menus);
routes = menusFilter(routes);
// this.SET_routes(routes); // this.SET_routes(routes);
this.SET_menusList(menus); this.SET_menusList(menus);
this.setBtnPermissions(menuList); this.setBtnPermissions(menuList);
...@@ -66,7 +67,7 @@ export default { ...@@ -66,7 +67,7 @@ export default {
let path = routes[0].path; let path = routes[0].path;
this.$router.push(path); this.$router.push(path);
} else { } else {
this.$message.warning('暂无权限,请联系管理员!'); this.$message.warning('暂无页面权限,请联系管理员!');
} }
} }
}, },
......
<template>
<div class="system">
<tab-menu-bar></tab-menu-bar>
</div>
</template>
<script>
import TabMenuBar from '@/components/TabMenuBar/TabMenuBar.vue';
export default {
components: { TabMenuBar },
data() {
return {
subMenus: []
};
},
computed: {},
created() {},
methods: {}
};
</script>
<style lang="less" scoped>
.system {
width: 100%;
height: 100%;
}
</style>
...@@ -108,11 +108,11 @@ export default { ...@@ -108,11 +108,11 @@ export default {
prop: 'name' prop: 'name'
// align: "center", // align: "center",
}, },
{ // {
label: 'ID', // label: 'ID',
prop: 'id', // prop: 'id',
align: 'center' // align: 'center'
}, // },
{ {
label: '图标', label: '图标',
align: 'center', align: 'center',
...@@ -131,11 +131,11 @@ export default { ...@@ -131,11 +131,11 @@ export default {
// return this.dict.authType[row.authType]; // return this.dict.authType[row.authType];
// } // }
// }, // },
{ // {
label: '父ID', // label: '父ID',
prop: 'parentId', // prop: 'parentId',
align: 'center' // align: 'center'
}, // },
{ {
label: '地址', label: '地址',
prop: 'url', prop: 'url',
...@@ -146,9 +146,28 @@ export default { ...@@ -146,9 +146,28 @@ export default {
prop: 'menuType', prop: 'menuType',
align: 'center', align: 'center',
formatter: (row) => { formatter: (row) => {
return this.dict.menuType[row.menuType]; if (row.menuType === 0) {
return (
<el-tag size="small" type="info">
{this.dict.menuType[row.menuType]}
</el-tag>
);
} else if (row.menuType === 1) {
return (
<el-tag size="small" type="success">
{this.dict.menuType[row.menuType]}
</el-tag>
);
} else if (row.menuType === 2) {
return <el-tag size="small">{this.dict.menuType[row.menuType]}</el-tag>;
}
} }
}, },
{
label: '权限字符',
prop: 'perms',
align: 'center'
},
{ {
label: '状态', label: '状态',
prop: 'status', prop: 'status',
...@@ -175,12 +194,12 @@ export default { ...@@ -175,12 +194,12 @@ export default {
return ( return (
<div class="flex items-center justify-center gap-4"> <div class="flex items-center justify-center gap-4">
<i <i
v-hasPermi={['system:menu:up']} v-hasPermi={['system:menu:sort']}
class="el-icon-top primary cursor-pointer" class="el-icon-top primary cursor-pointer"
onClick={() => this.changeMenuSort(row.id, 0)} onClick={() => this.changeMenuSort(row.id, 0)}
></i> ></i>
<i <i
v-hasPermi={['system:menu:down']} v-hasPermi={['system:menu:sort']}
class="el-icon-bottom primary cursor-pointer" class="el-icon-bottom primary cursor-pointer"
onClick={() => this.changeMenuSort(row.id, 1)} onClick={() => this.changeMenuSort(row.id, 1)}
></i> ></i>
......
...@@ -287,7 +287,11 @@ export default { ...@@ -287,7 +287,11 @@ export default {
if (this.form.resourceType === 1) { if (this.form.resourceType === 1) {
resourceUrl = this.form.resourceUrl.join(','); resourceUrl = this.form.resourceUrl.join(',');
} else { } else {
resourceUrl = this.form.urls.map((v) => v.value).join(','); resourceUrl = this.form.urls
.map((v) => {
return v.value.startsWith('/') ? v.value : '/' + v.value;
})
.join(',');
} }
this.$delete(form, 'resourceType'); this.$delete(form, 'resourceType');
this.$delete(form, 'urls'); this.$delete(form, 'urls');
......
...@@ -266,7 +266,7 @@ router.beforeEach((to, from, next) => { ...@@ -266,7 +266,7 @@ router.beforeEach((to, from, next) => {
}); });
// 过滤菜单 // 过滤菜单
function menusFilter(arr) { export function menusFilter(arr) {
let router = arr.filter((v) => { let router = arr.filter((v) => {
if (!v.hidden) { if (!v.hidden) {
if (v.children) { if (v.children) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment