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

feat: 屏蔽菜单管理

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