diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js index 36da015..dff09b9 100644 --- a/src/store/modules/permission.js +++ b/src/store/modules/permission.js @@ -8,120 +8,120 @@ import InnerLink from '@/layout/components/InnerLink' // 匹配views里面所有的.vue文件 const modules = import.meta.glob('./../../views/**/*.vue') -const usePermissionStore = defineStore( - 'permission', - { +const usePermissionStore = defineStore('permission', { state: () => ({ - routes: [], - addRoutes: [], - defaultRoutes: [], - topbarRouters: [], - sidebarRouters: [] + routes: [], + addRoutes: [], + defaultRoutes: [], + topbarRouters: [], + sidebarRouters: [], }), actions: { - setRoutes(routes) { - this.addRoutes = routes - this.routes = constantRoutes.concat(routes) - }, - setDefaultRoutes(routes) { - this.defaultRoutes = constantRoutes.concat(routes) - }, - setTopbarRoutes(routes) { - this.topbarRouters = routes - }, - setSidebarRouters(routes) { - this.sidebarRouters = routes - }, - generateRoutes(roles) { - return new Promise(resolve => { - // 向后端请求路由数据 - getRouters().then(res => { - const sdata = JSON.parse(JSON.stringify(res.data)) - const rdata = JSON.parse(JSON.stringify(res.data)) - const defaultData = JSON.parse(JSON.stringify(res.data)) - const sidebarRoutes = filterAsyncRouter(sdata) - const rewriteRoutes = filterAsyncRouter(rdata, false, true) - const defaultRoutes = filterAsyncRouter(defaultData) - const asyncRoutes = filterDynamicRoutes(dynamicRoutes) - asyncRoutes.forEach(route => { router.addRoute(route) }) - this.setRoutes(rewriteRoutes) - this.setSidebarRouters(constantRoutes.concat(sidebarRoutes)) - this.setDefaultRoutes(sidebarRoutes) - this.setTopbarRoutes(defaultRoutes) - resolve(rewriteRoutes) - }) - }) - } - } - }) + setRoutes(routes) { + this.addRoutes = routes + this.routes = constantRoutes.concat(routes) + }, + setDefaultRoutes(routes) { + this.defaultRoutes = constantRoutes.concat(routes) + }, + setTopbarRoutes(routes) { + this.topbarRouters = routes + }, + setSidebarRouters(routes) { + this.sidebarRouters = routes + }, + generateRoutes(roles) { + return new Promise((resolve) => { + // 向后端请求路由数据 + getRouters().then((res) => { + const sdata = JSON.parse(JSON.stringify(res.data)) + const rdata = JSON.parse(JSON.stringify(res.data)) + const defaultData = JSON.parse(JSON.stringify(res.data)) + const sidebarRoutes = filterAsyncRouter(sdata) + const rewriteRoutes = filterAsyncRouter(rdata, false, true) + const defaultRoutes = filterAsyncRouter(defaultData) + const asyncRoutes = filterDynamicRoutes(dynamicRoutes) + asyncRoutes.forEach((route) => { + router.addRoute(route) + }) + this.setRoutes(rewriteRoutes) + this.setSidebarRouters(constantRoutes.concat(sidebarRoutes)) + this.setDefaultRoutes(sidebarRoutes) + this.setTopbarRoutes(defaultRoutes) + resolve(rewriteRoutes) + }) + }) + }, + }, +}) // 遍历后台传来的路由字符串,转换为组件对象 function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) { - return asyncRouterMap.filter(route => { - if (type && route.children) { - route.children = filterChildren(route.children) - } - if (route.component) { - // Layout ParentView 组件特殊处理 - if (route.component === 'Layout') { - route.component = Layout - } else if (route.component === 'ParentView') { - route.component = ParentView - } else if (route.component === 'InnerLink') { - route.component = InnerLink - } else { - route.component = loadView(route.component) - } - } - if (route.children != null && route.children && route.children.length) { - route.children = filterAsyncRouter(route.children, route, type) - } else { - delete route['children'] - delete route['redirect'] - } - return true - }) + return asyncRouterMap.filter((route) => { + if (type && route.children) { + route.children = filterChildren(route.children) + } + if (route.component) { + // Layout ParentView 组件特殊处理 + if (route.component === 'Layout') { + route.component = Layout + } else if (route.component === 'ParentView') { + route.component = ParentView + } else if (route.component === 'InnerLink') { + route.component = InnerLink + } else { + route.component = loadView(route.component) + } + } + if (route.children != null && route.children && route.children.length) { + route.children = filterAsyncRouter(route.children, route, type) + } else { + delete route['children'] + delete route['redirect'] + } + return true + }) } function filterChildren(childrenMap, lastRouter = false) { - var children = [] - childrenMap.forEach(el => { - el.path = lastRouter ? lastRouter.path + '/' + el.path : el.path - if (el.children && el.children.length && el.component === 'ParentView') { - children = children.concat(filterChildren(el.children, el)) - } else { - children.push(el) - } - }) - return children + var children = [] + childrenMap.forEach((el) => { + el.path = lastRouter ? lastRouter.path + '/' + el.path : el.path + if (el.children && el.children.length && el.component === 'ParentView') { + children = children.concat(filterChildren(el.children, el)) + } else { + children.push(el) + } + }) + return children } // 动态路由遍历,验证是否具备权限 export function filterDynamicRoutes(routes) { - const res = [] - routes.forEach(route => { - if (route.permissions) { - if (auth.hasPermiOr(route.permissions)) { - res.push(route) - } - } else if (route.roles) { - if (auth.hasRoleOr(route.roles)) { - res.push(route) - } - } - }) - return res + const res = [] + routes.forEach((route) => { + if (route.permissions) { + if (auth.hasPermiOr(route.permissions)) { + res.push(route) + } + } else if (route.roles) { + if (auth.hasRoleOr(route.roles)) { + res.push(route) + } + } + }) + return res } export const loadView = (view) => { - let res - for (const path in modules) { - const dir = path.split('views/')[1].split('.vue')[0] - if (dir === view) { - res = () => modules[path]() + let res + for (const path in modules) { + const dir = path.split('views/')[1].split('.vue')[0] + if (dir === view) { + res = () => modules[path]() + } } - } - return res + return res } export default usePermissionStore diff --git a/src/views/basicManage/businessType/index.vue b/src/views/basicManage/businessType/index.vue new file mode 100644 index 0000000..db52bea --- /dev/null +++ b/src/views/basicManage/businessType/index.vue @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/views/basicManage/inspectionStation/index.vue b/src/views/basicManage/inspectionStation/index.vue new file mode 100644 index 0000000..6469a49 --- /dev/null +++ b/src/views/basicManage/inspectionStation/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/basicManage/personCategory/index.vue b/src/views/basicManage/personCategory/index.vue new file mode 100644 index 0000000..bda477e --- /dev/null +++ b/src/views/basicManage/personCategory/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/basicManage/personNature/index.vue b/src/views/basicManage/personNature/index.vue new file mode 100644 index 0000000..c7fecef --- /dev/null +++ b/src/views/basicManage/personNature/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/basicManage/planCategory/index.vue b/src/views/basicManage/planCategory/index.vue new file mode 100644 index 0000000..d68cb1c --- /dev/null +++ b/src/views/basicManage/planCategory/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/basicManage/planProfessional/index.vue b/src/views/basicManage/planProfessional/index.vue new file mode 100644 index 0000000..0265eab --- /dev/null +++ b/src/views/basicManage/planProfessional/index.vue @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/views/basicManage/position/index.vue b/src/views/basicManage/position/index.vue new file mode 100644 index 0000000..a4591f5 --- /dev/null +++ b/src/views/basicManage/position/index.vue @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/views/basicManage/projectDept/index.vue b/src/views/basicManage/projectDept/index.vue new file mode 100644 index 0000000..4b21cf9 --- /dev/null +++ b/src/views/basicManage/projectDept/index.vue @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/views/basicManage/workloadCategory/index.vue b/src/views/basicManage/workloadCategory/index.vue new file mode 100644 index 0000000..75bad78 --- /dev/null +++ b/src/views/basicManage/workloadCategory/index.vue @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/views/monthReportManage/monthlyReport/index.vue b/src/views/monthReportManage/monthlyReport/index.vue new file mode 100644 index 0000000..4fe67fd --- /dev/null +++ b/src/views/monthReportManage/monthlyReport/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/personManage/Person/index.vue b/src/views/personManage/Person/index.vue new file mode 100644 index 0000000..7afd015 --- /dev/null +++ b/src/views/personManage/Person/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/planMange/dailyPlan/index.vue b/src/views/planMange/dailyPlan/index.vue new file mode 100644 index 0000000..7b0655d --- /dev/null +++ b/src/views/planMange/dailyPlan/index.vue @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/views/planMange/monthlyPlan/index.vue b/src/views/planMange/monthlyPlan/index.vue new file mode 100644 index 0000000..ce3c78f --- /dev/null +++ b/src/views/planMange/monthlyPlan/index.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/planMange/plan/index.vue b/src/views/planMange/plan/index.vue new file mode 100644 index 0000000..1d54ade --- /dev/null +++ b/src/views/planMange/plan/index.vue @@ -0,0 +1,10 @@ + + + + + +