diff --git a/src/api/BasicData/MenuManagement.js b/src/api/BasicData/MenuManagement.js new file mode 100644 index 00000000..a9b0ecce --- /dev/null +++ b/src/api/BasicData/MenuManagement.js @@ -0,0 +1,94 @@ +import request from '@/utils/request' + +// 初始化角色 +export function getRole() { + return request({ + url: '', + method: 'post', + data: { + type: '1', + name: '菜单系统模块_项目角色_查询数据_new' + } + }) +} +// 根据角色查模块 +export function getModule(role) { + return request({ + url: '', + method: 'post', + data: { + type: '3', + name: `select * from 基础表_角色模块信息 inner join 基础表_模块信息 on 基础表_角色模块信息.id = 基础表_模块信息.id where 角色编号=${role} order by 模块顺序` + } + }) +} +// 初始化一级菜单 +export function initFisrtLevel() { + return request({ + url: '', + method: 'post', + data: { + type: '3', + name: `select id,title from 基础表_模块信息 where [path] = '/'` + } + }) +} +// 初始化二级菜单 +export function initSecondLevel() { + return request({ + url: '', + method: 'post', + data: { + type: '3', + name: `select id,title from 基础表_模块信息 where [path] <> '/'` + } + }) +} +// 撤回分配模块 +export function returnModule(id, num) { + return request({ + url: '', + method: 'post', + data: { + type: '2', + name: `菜单管理_角色模块_删除数据`, + param: `id=${id}&角色编号=${num}` + } + }) +} +// 分配一级模块 +export function giveFirstLevel(idGroup, num) { + return request({ + url: '', + method: 'post', + data: { + type: '2', + name: `菜单管理_角色模块_一级_增加数据`, + param: `一级模块id组=${idGroup}&角色编号=${num}` + } + }) +} +// 分配一级模块 +export function giveSecondLevel(idGroup, num, pid) { + return request({ + url: '', + method: 'post', + data: { + type: '2', + name: `菜单管理_角色模块_二级_增加数据`, + param: `二级模块id组=${idGroup}&角色编号=${num}&pid=${pid}` + } + }) +} +// 新增一级菜单 +export function submitAdd(name) { + return request({ + url: '', + method: 'post', + data: { + type: '2', + name: `菜单管理_模块_一级_增加数据`, + param: `模块名称=${name}` + } + }) +} diff --git a/src/api/login.js b/src/api/login.js index 8be466ef..973cb1c4 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -16,9 +16,11 @@ export function getInfo(token) { url: '', method: 'post', data: { - type: '1', - name: '菜单系统模块_项目角色模块列表_查询数据gj', - param: `角色编号=${token}` + // type: '1', + // name: '菜单系统模块_项目角色模块列表_查询数据gj', + // param: `角色编号=${token}` + type: '3', + name: `select * from 基础表_角色模块信息 inner join 基础表_模块信息 on 基础表_角色模块信息.id = 基础表_模块信息.id where 角色编号=${token}` } }) } diff --git a/src/permission.js b/src/permission.js index faf8b4a4..ce0ac0c0 100644 --- a/src/permission.js +++ b/src/permission.js @@ -4,7 +4,7 @@ import { Message } from 'element-ui' import NProgress from 'nprogress' // progress bar import 'nprogress/nprogress.css'// progress bar style import { getToken } from '@/utils/auth' // getToken from cookie - +import getRouter from './router/getRouter' NProgress.configure({ showSpinner: false })// NProgress Configuration // permission judge function @@ -13,25 +13,25 @@ function hasPermission(roles, permissionRoles) { if (!permissionRoles) return true return roles.some(role => permissionRoles.indexOf(role) >= 0) } -function getRouter(data) { - const result = [] - for (let i = 0; i < data.length; i++) { - const obj = { - 'path': data[i].父路径, - 'component': () => import(`@/views/layout/${data[i].父组件}`), - 'children': [ - { - 'path': data[i].子路径, - 'name': data[i].子名称, - 'component': () => import(`@/views${data[i].子组件}`), - 'meta': { 'title': data[i].标题, 'icon': data[i].图标 } - } - ] - } - result.push(obj) - } - return result -} +// function getRouter(data) { +// const result = [] +// for (let i = 0; i < data.length; i++) { +// const obj = { +// 'path': data[i].父路径, +// 'component': () => import(`@/views/layout/${data[i].父组件}`), +// 'children': [ +// { +// 'path': data[i].子路径, +// 'name': data[i].子名称, +// 'component': () => import(`@/views${data[i].子组件}`), +// 'meta': { 'title': data[i].标题, 'icon': data[i].图标 } +// } +// ] +// } +// result.push(obj) +// } +// return result +// } const whiteList = ['/login', '/auth-redirect']// no redirect whitelist router.beforeEach((to, from, next) => { @@ -45,7 +45,8 @@ router.beforeEach((to, from, next) => { if (store.getters.roles.length === 0) { // 判断当前用户是否已拉取完user_info信息 store.dispatch('GetInfo').then(res => { // 拉取user_info const data = res.data - const asyncRouterMap = getRouter(data) + const asyncRouterMap = getRouter(data, 0) + console.log(asyncRouterMap) asyncRouterMap.push({ path: '*', redirect: '/404', hidden: true }) store.dispatch('GenerateRoutes', asyncRouterMap).then(() => { // 根据roles权限生成可访问的路由表 router.addRoutes(store.getters.addRouters) // 动态添加可访问路由表 diff --git a/src/router/getRouter.js b/src/router/getRouter.js new file mode 100644 index 00000000..a8b32be5 --- /dev/null +++ b/src/router/getRouter.js @@ -0,0 +1,16 @@ + +export default function fn(data, pid) { + const result = [] + let temp + for (let i = 0; i < data.length; i++) { + if (data[i].pid === pid) { + const obj = { 'path': data[i].path, 'component': () => import(`@/views${(data[i].component)}`), 'redirect': data[i].redirect, alwaysShow: true, 'name': data[i].name, meta: { 'title': data[i].title, 'icon': data[i].icon }} + temp = fn(data, data[i].id) + if (temp.length > 0) { + obj.children = temp + } + result.push(obj) + } + } + return result +} diff --git a/src/views/BasicData/MenuManagement/index.vue b/src/views/BasicData/MenuManagement/index.vue new file mode 100644 index 00000000..46147ef0 --- /dev/null +++ b/src/views/BasicData/MenuManagement/index.vue @@ -0,0 +1,396 @@ + + + + + diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue index 9c7389f4..1a9ca162 100644 --- a/src/views/dashboard/index.vue +++ b/src/views/dashboard/index.vue @@ -51,9 +51,8 @@ export default { url: '', method: 'post', data: { - type: '1', - name: '菜单系统模块_项目角色模块列表_消息通知', - param: '角色编号=' + this.token + type: '3', + name: `select * from 基础表_角色模块信息 inner join 基础表_模块信息 on 基础表_角色模块信息.id = 基础表_模块信息.id where 角色编号=${this.token} and 是否通知 = 1` } }).then(data => { this.sudokus = [] @@ -72,10 +71,10 @@ export default { } }).then(res => { this.sudokus.push({ - id: rawData.data[i].主模块编号, - name: rawData.data[i].标题, - icon: rawData.data[i].图标, - router: `${rawData.data[i].父路径}/${rawData.data[i].子路径}`, + id: rawData.data[i].id, + name: rawData.data[i].title, + icon: rawData.data[i].icon, + router: rawData.data[i].path, value: res.data[0].Column1 }) }) diff --git a/src/views/layout/components/Navbar.vue b/src/views/layout/components/Navbar.vue index 2c4b00bb..8461a64c 100644 --- a/src/views/layout/components/Navbar.vue +++ b/src/views/layout/components/Navbar.vue @@ -68,7 +68,7 @@ export default { title: '提示', message: '您有采购合同待审批,请及时处理,点击查看', onClick: () => { - this.$router.push({ path: '/PurchaseContractApproval/index' }) + this.$router.push({ path: '/PurchasingCenter/PurchaseContractApproval' }) setTimeout(this.noticeContract.close(), 1000) }, duration: 1000 * 60 @@ -91,7 +91,7 @@ export default { title: '提示', message: '您有合同请款申请待审批,请及时处理,点击查看', onClick: () => { - this.$router.push({ path: '/FundApproval2/index' }) + this.$router.push({ path: '/PurchasingCenter/FundApproval2' }) setTimeout(this.noticeFund.close(), 1000) }, duration: 1000 * 60 * 5 @@ -105,7 +105,7 @@ export default { title: '提示', message: '您有发票结算申请待审批,请及时处理,点击查看', onClick: () => { - this.$router.push({ path: '/InvoiceSettlementApprove/index' }) + this.$router.push({ path: '/PurchasingCenter/InvoiceSettlementApprove' }) setTimeout(this.noticeInvoice.close(), 1000) }, duration: 1000 * 60 * 5 diff --git a/src/views/layout/components/Sidebar/SidebarItem2.vue b/src/views/layout/components/Sidebar/SidebarItem2.vue new file mode 100644 index 00000000..51de583c --- /dev/null +++ b/src/views/layout/components/Sidebar/SidebarItem2.vue @@ -0,0 +1,48 @@ + + +