From 512e640c13405a95498f2f78e52aa6706a436cbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A9=99=E5=AD=90?= <454313500@qq.com> Date: Tue, 26 Apr 2022 11:18:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=8F=9C=E5=8D=95=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Yi.Vue2.x/src/layouts/default/Drawer.vue | 186 +++++++++++++++++++++-- Yi.Vue2.x/src/util/menuHandle.js | 33 +++- Yi.Vue2.x/src/util/objctHandle,js | 71 +++++++++ 3 files changed, 269 insertions(+), 21 deletions(-) create mode 100644 Yi.Vue2.x/src/util/objctHandle,js diff --git a/Yi.Vue2.x/src/layouts/default/Drawer.vue b/Yi.Vue2.x/src/layouts/default/Drawer.vue index 784e1bab..047625cb 100644 --- a/Yi.Vue2.x/src/layouts/default/Drawer.vue +++ b/Yi.Vue2.x/src/layouts/default/Drawer.vue @@ -53,13 +53,176 @@ import userApi from "@/api/userApi"; export default { methods: { init() { - userApi.GetMenuByHttpUser().then((resp) => { - this.items = resp.data.children; - }); + //这里动态获取菜单,暂时写死 + // userApi.GetMenuByHttpUser().then((resp) => { + // this.items = resp.data.children; + // }); + this.items = + + [ + { + icon: "mdi-view-dashboard", + router: "/", + menu_name: "首页", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 1, + children: null, + id: 2, + is_delete: 0, + }, + { + icon: "mdi-account-box-multiple", + router: null, + menu_name: "用户角色管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 1, + children: [ + { + icon: "mdi-account-box", + router: "/AdmUser/", + menu_name: "用户管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 3, + children: null, + id: 4, + is_delete: 0, + }, + { + icon: "mdi-account-circle", + router: "/admrole/", + menu_name: "角色管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 3, + children: null, + id: 9, + is_delete: 0, + }, + ], + id: 3, + is_delete: 0, + }, + { + icon: "mdi-account-cash", + router: null, + menu_name: "角色接口管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 1, + children: [ + { + icon: "mdi-clipboard-check-multiple", + router: "/AdmMenu/", + menu_name: "菜单管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 14, + children: null, + id: 15, + is_delete: 0, + }, + { + icon: "mdi-circle-slice-8", + router: "/admMould/", + menu_name: "接口管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 14, + children: null, + id: 20, + is_delete: 0, + }, + { + icon: "mdi-clipboard-account", + router: "/admRoleMenu/", + menu_name: "角色菜单分配管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 14, + children: null, + id: 25, + is_delete: 0, + }, + ], + id: 14, + is_delete: 0, + }, + { + icon: "mdi-clipboard-flow-outline", + router: null, + menu_name: "路由管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 1, + children: [ + { + icon: "mdi-account-eye", + router: "/userinfo/", + menu_name: "用户信息", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 26, + children: null, + id: 27, + is_delete: 0, + }, + { + icon: "mdi-account-eye", + router: "/pan", + menu_name: "云盘管理", + roles: null, + mould: null, + is_top: 0, + sort: 0, + is_show: 1, + parentId: 26, + children: null, + id: 28, + is_delete: 0, + }, + ], + id: 26, + is_delete: 0, + }, + ] + }, logout() { this.$store.dispatch("Logout"); - this.$router.push({ path: "/login" }); + this.$router.push({ path: "/login" }); }, }, created() { @@ -69,21 +232,18 @@ export default { image() { return this.$store.getters.image; }, - gradient() { + gradient() { return this.$store.getters.gradient; }, - drawerImage() - { - return this.$store.state.home.drawerImage; + drawerImage() { + return this.$store.state.home.drawerImage; + }, + dark() { + return this.$store.state.user.dark; }, - dark() - { - return this.$store.state.user.dark; - } }, data: () => ({ - items: [], }), name: "DefaultDrawer", diff --git a/Yi.Vue2.x/src/util/menuHandle.js b/Yi.Vue2.x/src/util/menuHandle.js index e2e0ead2..255518d1 100644 --- a/Yi.Vue2.x/src/util/menuHandle.js +++ b/Yi.Vue2.x/src/util/menuHandle.js @@ -1,12 +1,29 @@ -export function setMenu(menuList) { -if(menuList!=null && menuList.Count()>0) -{ +export function setTreeMenu(menuList) { + if (menuList != null && menuList.length > 0) { -} - + //结果 + var res; + //获取最小的parentId + var minParentId = 0; + //获取id=最小的parentId的菜单列表 + var menuList1=menuList.filter((item)=>{item.parentId==minParentId}) ; + + menuList1.forEach(element=>{ + res.push(element) + var children=menuList.filter((item)=>{item.parentId==element.id}) ; + if (children.length > 0) { + setTreeChildren(menuList, children,element) + } + }) + } } -function setTreeChildren(menuList) -{ - +function setTreeChildren(menuList, childrenList,model) { + childrenList.forEach(element => { + model.Childs.push(element); + var childrenList2=menuList.filter((item)=>{item.parentId==element.id}) ; + if (childrenList2.length > 0) { + setTreeChildren(menuList, childrenList2,element) + } + }); } \ No newline at end of file diff --git a/Yi.Vue2.x/src/util/objctHandle,js b/Yi.Vue2.x/src/util/objctHandle,js new file mode 100644 index 00000000..2bc88eda --- /dev/null +++ b/Yi.Vue2.x/src/util/objctHandle,js @@ -0,0 +1,71 @@ +//深拷贝 +export function deepCopy(obj) { + var a = JSON.stringify(obj); + var newobj = JSON.parse(a); + return newobj; +} + + +//转换数据,0是相等,1是模糊查询 +export function objctToDic(object, isByPage) { + if (isByPage) { + var paramPage = { + "index": object.pageIndex, + "size": object.pageSize, + "parameters": [], + "orderBys": [] + } + + var newData = deepCopy(object); + delete newData.pageIndex; + delete newData.pageSize; + + var newList = [Object.keys(newData).map(val => { + return { + key: val, + value: object[val], + type: 1 + } + })] + + //过滤封装 + newList[0].forEach((item, index) => { + if(item.value.length>0) + { + if(item.key=='isDeleted') + { + item.type=0; + } + paramPage.parameters.push(item); + } + }); + + return paramPage; + } + else { + var params = { + "parameters": [], + "orderBys": [] + } + var thisList = [Object.keys(object).map(val => { + return { + key: val, + value: object[val], + type: 1 + } + })] + thisList[0].forEach((item, index) => { + if(item.value.length>0) + { + if(item.key=='isDeleted') + { + item.type=0; + } + params.parameters.push(item); + } + }); + + return params; + } + +} \ No newline at end of file