Commit 5fd365dd authored by “yiyousong”'s avatar “yiyousong”

feat: 屏蔽菜单管理

parent de44fc45
......@@ -79,6 +79,9 @@ export default {
clearSelection() {
this.$refs.MyTable.clearSelection();
},
toggleRowSelection() {
this.$refs.MyTable.toggleRowSelection(...arguments);
},
},
};
</script>
......
......@@ -5,9 +5,9 @@
<el-button size="small" type="primary" @click="handleAdd"
>新增</el-button
>
<el-button size="small" type="danger" @click="handleDelAll"
<!-- <el-button size="small" type="danger" @click="handleDelAll"
>批量删除</el-button
>
> -->
</div>
<!-- <div slot="right">
<el-form ref="searchForm" :model="searchForm" inline>
......@@ -60,6 +60,7 @@
:title="title"
:dict="dict"
:menuList="menuList"
@success="getMenuList"
></AddMenu>
</div>
</template>
......@@ -82,13 +83,13 @@ export default {
data() {
return {
column: [
{
label: "全选",
type: "selection",
width: "55",
align: "center",
reserveSelection: true,
},
// {
// label: "全选",
// type: "selection",
// width: "55",
// align: "center",
// reserveSelection: true,
// },
{
label: "序号",
type: "index",
......@@ -136,6 +137,14 @@ export default {
prop: "url",
align: "center",
},
{
label: "类型",
prop: "menuType",
align: "center",
formatter: (row) => {
return this.dict.menuType[row.menuType];
},
},
{
label: "状态",
prop: "status",
......@@ -153,6 +162,7 @@ export default {
);
},
},
{
label: "操作",
align: "center",
......@@ -198,6 +208,7 @@ export default {
show: false,
title: "新增",
dict: {}, // 字典
isAllSelected: false,
};
},
created() {
......@@ -205,7 +216,7 @@ export default {
},
computed: {},
methods: {
// 获取接入区域列表
// 获取列表
async getMenuList() {
this.loading = true;
this.menuList = [
......@@ -255,8 +266,8 @@ export default {
this.getMenuList();
},
// 选中
handleSelectionChange(select) {
this.selectRows = select;
handleSelectionChange(selection) {
this.selectRows = selection;
},
// 新增
......
......@@ -55,6 +55,16 @@
v-model="form.url"
></el-input>
</el-form-item>
<el-form-item label="类型" prop="menuType">
<el-radio-group v-model="form.menuType">
<el-radio
v-for="(item, key) in dict.menuType"
:key="key"
:label="Number(key)"
>{{ item }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio
......@@ -105,7 +115,7 @@
</template>
<script>
import { saveSystem } from "@/api/system";
import { saveMenu } from "@/api/system";
import { iconList } from "@/assets/icon";
export default {
components: {},
......@@ -137,6 +147,7 @@ export default {
form: {
name: "",
parentId: 0,
menuType: 0,
status: 1,
url: "",
authType: "",
......@@ -168,7 +179,7 @@ export default {
handleOk() {
this.$refs.form.validate(async (valid) => {
if (valid) {
let res = await saveSystem(this.form);
let res = await saveMenu(this.form);
let { code, msg } = res.data;
if (code === 1) {
this.$message.success(msg);
......
......@@ -186,15 +186,15 @@ const routes = [
icon: "el-icon-box",
},
},
{
path: "/system/menu",
component: () => import("@/pages/system/menu/Menu.vue"),
meta: {
activeMenu: "/system",
title: "菜单管理",
icon: "el-icon-box",
},
},
// {
// path: "/system/menu",
// component: () => import("@/pages/system/menu/Menu.vue"),
// meta: {
// activeMenu: "/system",
// title: "菜单管理",
// icon: "el-icon-box",
// },
// },
{
path: "/system/parameter",
component: () => import("@/pages/system/parameter/Parameter.vue"),
......@@ -245,18 +245,18 @@ const router = new VueRouter({
});
// 前置路由卫士
// router.beforeEach((to, from, next) => {
// let islogin = store.getters["user/token"];
// if (islogin) {
// next();
// } else {
// if (to.path === "/sso") {
// next();
// } else {
// location.href = process.env.VUE_APP_API_portal_URL;
// }
// }
// });
router.beforeEach((to, from, next) => {
let islogin = store.getters["user/token"];
if (islogin) {
next();
} else {
if (to.path === "/sso") {
next();
} else {
location.href = process.env.VUE_APP_API_portal_URL;
}
}
});
// 过滤菜单
function menusFilter(arr) {
......
import { getSiteBusiness, getDepartment, getWindow } from "@/api/site";
import { getHomeData } from "@/api/home";
export default {
namespaced: true,
state: {
menus: [], // 菜单
barList: [], // 登录返回菜单
homeData: {}, // 首页数据
token: "",
siteId: "", // 站点id
userInfo: {}, // 用户信息
......@@ -30,6 +33,10 @@ export default {
path(state) {
return state.path;
},
barList(state) {
let { barList } = state.homeData;
return barList || [];
},
},
mutations: {
SET_path(state, path) {
......@@ -65,11 +72,25 @@ export default {
SET_windowList(state, windowList) {
state.windowList = windowList;
},
SET_barList(state, barList) {
state.barList = barList;
},
SET_homeData(state, homeData) {
state.homeData = homeData;
},
// 重置所有仓库状态
reset: () => {},
},
actions: {
// 获取首页信息
getHomeData: async (context) => {
let res = await getHomeData();
if (res.data.code == 1) {
let { data } = res.data;
context.commit("SET_homeData", data);
}
},
// 获取站点业务列表
getBusiness: async (context, siteId) => {
let res = await getSiteBusiness({
......
......@@ -178,9 +178,30 @@ export function buildTree(data, idField = "id", parentIdField = "parentId") {
const parent = idToItem[parentId];
if (parent) {
parent.childList.push(idToItem[item[idField]]);
} else {
tree.push(idToItem[item[idField]]);
}
}
});
return tree;
}
// 递归从数组里边取出某一字段
export const getFieldFromArray = (arr, field, treeField) => {
let result = [];
arr.forEach((item) => {
if (item[field]) {
result.push(item[field]);
}
// 如果有子路由,递归提取子路由的路径
if (item[treeField] && item[treeField].length > 0) {
result = result.concat(
getFieldFromArray(item[treeField], field, treeField)
);
}
});
return result;
};
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