diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue new file mode 100644 index 0000000..4537b5e --- /dev/null +++ b/src/views/home/rule/agreement/index.vue @@ -0,0 +1,3 @@ + + 协议管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue new file mode 100644 index 0000000..4537b5e --- /dev/null +++ b/src/views/home/rule/agreement/index.vue @@ -0,0 +1,3 @@ + + 协议管理 + diff --git a/src/views/home/rule/alarm/index.vue b/src/views/home/rule/alarm/index.vue new file mode 100644 index 0000000..bbd356b --- /dev/null +++ b/src/views/home/rule/alarm/index.vue @@ -0,0 +1,3 @@ + + 报警规则管理 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue new file mode 100644 index 0000000..4537b5e --- /dev/null +++ b/src/views/home/rule/agreement/index.vue @@ -0,0 +1,3 @@ + + 协议管理 + diff --git a/src/views/home/rule/alarm/index.vue b/src/views/home/rule/alarm/index.vue new file mode 100644 index 0000000..bbd356b --- /dev/null +++ b/src/views/home/rule/alarm/index.vue @@ -0,0 +1,3 @@ + + 报警规则管理 + diff --git a/src/views/home/station/control/index.vue b/src/views/home/station/control/index.vue new file mode 100644 index 0000000..00f980f --- /dev/null +++ b/src/views/home/station/control/index.vue @@ -0,0 +1,3 @@ + + 设备控制 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue new file mode 100644 index 0000000..4537b5e --- /dev/null +++ b/src/views/home/rule/agreement/index.vue @@ -0,0 +1,3 @@ + + 协议管理 + diff --git a/src/views/home/rule/alarm/index.vue b/src/views/home/rule/alarm/index.vue new file mode 100644 index 0000000..bbd356b --- /dev/null +++ b/src/views/home/rule/alarm/index.vue @@ -0,0 +1,3 @@ + + 报警规则管理 + diff --git a/src/views/home/station/control/index.vue b/src/views/home/station/control/index.vue new file mode 100644 index 0000000..00f980f --- /dev/null +++ b/src/views/home/station/control/index.vue @@ -0,0 +1,3 @@ + + 设备控制 + diff --git a/src/views/home/station/station/index.vue b/src/views/home/station/station/index.vue new file mode 100644 index 0000000..6aa0c1f --- /dev/null +++ b/src/views/home/station/station/index.vue @@ -0,0 +1,3 @@ + + 场站监测 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue new file mode 100644 index 0000000..4537b5e --- /dev/null +++ b/src/views/home/rule/agreement/index.vue @@ -0,0 +1,3 @@ + + 协议管理 + diff --git a/src/views/home/rule/alarm/index.vue b/src/views/home/rule/alarm/index.vue new file mode 100644 index 0000000..bbd356b --- /dev/null +++ b/src/views/home/rule/alarm/index.vue @@ -0,0 +1,3 @@ + + 报警规则管理 + diff --git a/src/views/home/station/control/index.vue b/src/views/home/station/control/index.vue new file mode 100644 index 0000000..00f980f --- /dev/null +++ b/src/views/home/station/control/index.vue @@ -0,0 +1,3 @@ + + 设备控制 + diff --git a/src/views/home/station/station/index.vue b/src/views/home/station/station/index.vue new file mode 100644 index 0000000..6aa0c1f --- /dev/null +++ b/src/views/home/station/station/index.vue @@ -0,0 +1,3 @@ + + 场站监测 + diff --git a/src/views/home/station/video/index.vue b/src/views/home/station/video/index.vue new file mode 100644 index 0000000..7e15901 --- /dev/null +++ b/src/views/home/station/video/index.vue @@ -0,0 +1,3 @@ + + 视频轮巡 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts new file mode 100644 index 0000000..c853fca --- /dev/null +++ b/src/router/modules/home.ts @@ -0,0 +1,361 @@ +// 所有菜单路由 +import sysRoutes from './system' +import type { Route } from '@/global' + +const Layout = () => import('@/layouts/index.vue') + +const routes: Route.recordRaw[] = [ + { + path: '/home', + component: Layout, + redirect: '/home/index', + name: 'Home', + meta: { + title: '首页', + icon: 'ep:key', + // auth: '/home', + }, + children: [ + { + path: 'index', + component: () => import('@/views/home/dashboard/index.vue'), + name: 'HomeIndex', + meta: { + title: '首页', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/home', + // auth: '/home', + }, + }, + ], + }, + { + path: '/fullscreen', + component: () => import('@/views/home/dashboard/fullScreen.vue'), + name: 'FullScreen', + meta: { + title: '综合大屏', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + // auth: '/fullscreen', + }, + }, + { + path: '/alarm', + component: Layout, + redirect: '/alarm/current', + name: 'Alarm', + meta: { + title: '报警管理', + icon: 'ep:key', + // auth: '/alarm', + }, + children: [ + { + path: 'current', + component: () => import('@/views/home/alarm/current/index.vue'), + name: 'AlarmCurrent', + meta: { + title: '当前报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/current', + // auth: '/alarm/current', + }, + }, + { + path: 'history', + component: () => import('@/views/home/alarm/history/index.vue'), + name: 'AlarmHistory', + meta: { + title: '历史报警', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/history', + // auth: '/alarm/history', + }, + }, + { + path: 'count', + component: () => import('@/views/home/alarm/count/index.vue'), + name: 'AlarmCount', + meta: { + title: '报警统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/alarm/count', + // auth: '/alarm/count', + }, + }, + ], + }, + { + path: '/well', + component: Layout, + redirect: '/well/monitor', + name: 'Well', + meta: { + title: '闸井监测', + icon: 'ep:key', + // auth: '/well', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/well/index.vue'), + name: 'WellMonitor', + meta: { + title: '闸井监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/well', + // auth: '/well', + }, + }, + ], + }, + { + path: '/station', + component: Layout, + redirect: '/station/monitor', + name: 'Station', + meta: { + title: '场站监测', + icon: 'ep:key', + // auth: '/station', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/station/station/index.vue'), + name: 'StationMonitor', + meta: { + title: '场站监测', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/monitor', + // auth: '/station/monitor', + }, + }, + { + path: 'video', + component: () => import('@/views/home/station/video/index.vue'), + name: 'StationVideo', + meta: { + title: '视频轮巡', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/video', + // auth: '/station/video', + }, + }, + { + path: 'control', + component: () => import('@/views/home/station/control/index.vue'), + name: 'StationControl', + meta: { + title: '设备控制', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/station/control', + // auth: '/station/control', + }, + }, + ], + }, + { + path: '/pipeline', + component: Layout, + redirect: '/pipeline/monitor', + name: 'Pipeline', + meta: { + title: '管线监测', + icon: 'ep:key', + // auth: '/pipeline', + }, + children: [ + { + path: 'monitor', + component: () => import('@/views/home/pipeline/index.vue'), + name: 'PipelineMonitor', + meta: { + title: '管线监测', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/pipeline', + // auth: '/pipeline', + }, + }, + ], + }, + { + path: '/ledger', + component: Layout, + redirect: '/ledger/manage', + name: 'Ledger', + meta: { + title: '台账管理', + icon: 'ep:key', + // auth: '/ledger', + }, + children: [ + { + path: 'manage', + component: () => import('@/views/home/ledger/index.vue'), + name: 'LedgerManage', + meta: { + title: '台账管理', + icon: 'ep:key', + sidebar: false, + breadcrumb: false, + activeMenu: '/ledger', + // auth: '/ledger', + }, + }, + ], + }, + { + path: '/device', + component: Layout, + redirect: '/device/type', + name: 'Device', + meta: { + title: '设备管理', + icon: 'ep:key', + // auth: '/device', + }, + children: [ + { + path: 'type', + component: () => import('@/views/home/device/type/index.vue'), + name: 'DeviceType', + meta: { + title: '设备类型管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/type', + // auth: '/device/type', + }, + }, + { + path: 'product', + component: () => import('@/views/home/device/product/index.vue'), + name: 'DeviceProduct', + meta: { + title: '产品管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/product', + // auth: '/device/product', + }, + }, + { + path: 'manage', + component: () => import('@/views/home/device/device/index.vue'), + name: 'DeviceManage', + meta: { + title: '设备管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/manage', + // auth: '/device/manage', + }, + }, + { + path: 'operation', + component: () => import('@/views/home/device/operation/index.vue'), + name: 'DeviceOperation', + meta: { + title: '运维管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/operation', + // auth: '/device/operation', + }, + }, + { + path: 'instruction', + component: () => import('@/views/home/device/instruction/index.vue'), + name: 'DeviceInstruction', + meta: { + title: '指令下发', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/instruction', + // auth: '/device/instruction', + }, + }, + { + path: 'count', + component: () => import('@/views/home/device/count/index.vue'), + name: 'DeviceCount', + meta: { + title: '设备统计', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/device/count', + // auth: '/device/count', + }, + }, + ], + }, + { + path: '/rule', + component: Layout, + redirect: '/rule/agreement', + name: 'Rule', + meta: { + title: '规则引擎', + icon: 'ep:key', + // auth: '/rule', + }, + children: [ + { + path: 'agreement', + component: () => import('@/views/home/rule/agreement/index.vue'), + name: 'RuleAgreement', + meta: { + title: '协议管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/agreement', + // auth: '/rule/agreement', + }, + }, + { + path: 'alarm', + component: () => import('@/views/home/rule/alarm/index.vue'), + name: 'RuleAlarm', + meta: { + title: '报警规则管理', + icon: 'ep:key', + sidebar: true, + breadcrumb: true, + activeMenu: '/rule/alarm', + // auth: '/rule/alarm', + }, + }, + ], + }, + ...sysRoutes, +] + +export default routes diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts index e686132..bae4cfb 100644 --- a/src/router/modules/system.ts +++ b/src/router/modules/system.ts @@ -1,3 +1,4 @@ +// 系统管理模块路由 import type { Route } from '@/global' const Layout = () => import('@/layouts/index.vue') @@ -15,154 +16,76 @@ }, children: [ { - path: '/area', - component: Layout, - redirect: '/area/list', - name: 'AreaManage', + path: 'area', + name: 'AreaList', + component: () => import('@/views/system/area/listArea.vue'), meta: { title: '区域管理', - icon: 'ep:key', auth: '/sys/area', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/area', }, - children: [ - { - path: 'list', - name: 'AreaList', - component: () => import('@/views/system/area/listArea.vue'), - meta: { - title: '区域管理', - auth: '/sys/area', - sidebar: false, - breadcrumb: false, - activeMenu: '/area', - }, - }, - ], }, { - path: '/resource', - component: Layout, - redirect: '/resource/list', - name: 'ResourceManage', + path: 'resource', + name: 'ResourceList', + component: () => import('@/views/system/resource/listResource.vue'), meta: { title: '资源管理', - icon: 'ep:key', auth: '/sys/resource', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/resource', }, - children: [ - { - path: 'list', - name: 'ResourceList', - component: () => import('@/views/system/resource/listResource.vue'), - meta: { - title: '资源管理', - auth: '/sys/resource', - sidebar: false, - breadcrumb: false, - activeMenu: '/resource', - }, - }, - ], }, { - path: '/dept', - component: Layout, - redirect: '/dept/list', - name: 'DeptManage', + path: 'dept', + name: 'DeptList', + component: () => import('@/views/system/dept/listDept.vue'), meta: { title: '组织管理', - icon: 'ep:key', auth: '/sys/dept', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dept', }, - children: [ - { - path: 'list', - name: 'DeptList', - component: () => import('@/views/system/dept/listDept.vue'), - meta: { - title: '组织管理', - auth: '/sys/dept', - sidebar: false, - breadcrumb: false, - activeMenu: '/dept', - }, - }, - ], }, { - path: '/role', - component: Layout, - redirect: '/role/list', - name: 'RoleManage', + path: 'role', + name: 'RoleList', + component: () => import('@/views/system/role/listRole.vue'), meta: { title: '角色管理', - icon: 'ep:key', auth: '/sys/role', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/role', }, - children: [ - { - path: 'list', - name: 'RoleList', - component: () => import('@/views/system/role/listRole.vue'), - meta: { - title: '角色管理', - auth: '/sys/role', - sidebar: false, - breadcrumb: false, - activeMenu: '/role', - }, - }, - ], }, { - path: '/user', - component: Layout, - redirect: '/user/list', - name: 'UserManage', + path: 'user', + name: 'UserList', + component: () => import('@/views/system/user/listUser.vue'), meta: { title: '用户管理', - icon: 'ep:key', auth: '/sys/mgr', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/user', }, - children: [ - { - path: 'list', - name: 'UserList', - component: () => import('@/views/system/user/listUser.vue'), - meta: { - title: '用户管理', - auth: '/sys/mgr', - sidebar: false, - breadcrumb: false, - activeMenu: '/user', - }, - }, - ], }, { - path: '/dict', - component: Layout, - redirect: '/dict/list', - name: 'DictManage', + path: 'dict', + name: 'DictList', + component: () => import('@/views/system/dict/listDict.vue'), meta: { title: '字典管理', - icon: 'ep:key', auth: '/sys/dict', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/dict', }, - children: [ - { - path: 'list', - name: 'DictList', - component: () => import('@/views/system/dict/listDict.vue'), - meta: { - title: '字典管理', - auth: '/sys/dict', - sidebar: false, - breadcrumb: false, - activeMenu: '/dict', - }, - }, - ], }, { path: '/process', @@ -228,107 +151,54 @@ ], }, { - path: '/tenant', - component: Layout, - redirect: '/tenant/list', - name: 'TenantManage', + path: 'tenant', + name: 'TenantList', + component: () => import('@/views/system/tenant/list.tenant.vue'), meta: { title: '项目管理', - icon: 'ep:key', auth: '/sys/tenantSys/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/tenant', }, - children: [ - { - path: 'list', - name: 'TenantList', - component: () => import('@/views/system/tenant/list.tenant.vue'), - meta: { - title: '项目管理', - auth: '/sys/tenantSys/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/tenant', - }, - }, - ], }, { - path: '/businessLog', - component: Layout, - redirect: '/businessLog/list', - name: 'BusinessLog', + path: 'businessLog', + name: 'BusinessList', + component: () => import('@/views/system/log/listLog.vue'), meta: { title: '业务日志', - icon: 'ep:key', auth: '/sys/log/biz/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/businessLog', }, - children: [ - { - path: 'list', - name: 'BusinessList', - component: () => import('@/views/system/log/listLog.vue'), - meta: { - title: '业务日志', - auth: '/sys/log/biz/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/businessLog', - }, - }, - ], }, { - path: '/error', - component: Layout, - redirect: '/error/list', - name: 'ErrorLog', + path: 'errorLog', + name: 'ErrorList', + component: () => import('@/views/system/log/listErrorLog.vue'), meta: { title: '异常日志', - icon: 'ep:key', auth: '/sys/log/error/list', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/error', }, - children: [ - { - path: 'list', - name: 'ErrorList', - component: () => import('@/views/system/log/listErrorLog.vue'), - meta: { - title: '异常日志', - auth: '/sys/log/error/list', - sidebar: false, - breadcrumb: false, - activeMenu: '/error', - }, - }, - ], }, { - path: '/loginDiary', - component: Layout, - redirect: '/loginDiary/list', - name: 'loginDiaryLog', + path: 'loginDiary', + name: 'loginDiaryList', + component: () => import('@/views/system/log/LoginLog.vue'), meta: { title: '登录日志', - icon: 'ep:key', auth: '/sys/loginLog', + sidebar: true, + breadcrumb: true, + activeMenu: '/system/loginDiary', }, - children: [ - { - path: 'list', - name: 'loginDiaryList', - component: () => import('@/views/system/log/LoginLog.vue'), - meta: { - title: '登录日志', - auth: '/sys/loginLog', - sidebar: false, - breadcrumb: false, - activeMenu: '/loginDiary', - }, - }, - ], }], }, - ] export default routes diff --git a/src/router/routes.ts b/src/router/routes.ts index 6f5a7e9..ae91d6e 100644 --- a/src/router/routes.ts +++ b/src/router/routes.ts @@ -1,6 +1,7 @@ import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' -import commonRoute from './modules/system' +// import commonRoute from './modules/system' +import homeRoute from './modules/home' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' @@ -14,14 +15,6 @@ }, }, { - path: '/index', - name: 'index', - component: () => import('@/views/dashboard.vue'), - meta: { - title: '子系统列表', - }, - }, - { path: '/login', name: 'login', component: () => import('@/views/login.vue'), @@ -111,24 +104,13 @@ // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ - // { - // meta: { - // title: '实验室环境监控系统', - // icon: '', - // auth: '/laboratory/index', - // }, - // children: [ - // ...laboratoryRoute, - // ], - // }, { meta: { - title: '系统设置', + title: '', icon: '', - auth: '/system', }, children: [ - ...commonRoute, + ...homeRoute, ], }, ] diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue new file mode 100644 index 0000000..7b222e4 --- /dev/null +++ b/src/views/home/alarm/count/index.vue @@ -0,0 +1,3 @@ + + 报警统计 + diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue new file mode 100644 index 0000000..773d91e --- /dev/null +++ b/src/views/home/alarm/current/index.vue @@ -0,0 +1,3 @@ + + 当前报警 + diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue new file mode 100644 index 0000000..94ef71e --- /dev/null +++ b/src/views/home/alarm/history/index.vue @@ -0,0 +1,3 @@ + + 历史报警 + diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue new file mode 100644 index 0000000..30af3fc --- /dev/null +++ b/src/views/home/dashboard/fullScreen.vue @@ -0,0 +1,3 @@ + + 综合大屏 + diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue new file mode 100644 index 0000000..47658b0 --- /dev/null +++ b/src/views/home/dashboard/index.vue @@ -0,0 +1,3 @@ + + 首页 + diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue new file mode 100644 index 0000000..d7c2022 --- /dev/null +++ b/src/views/home/device/count/index.vue @@ -0,0 +1,3 @@ + + 设备统计 + diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue new file mode 100644 index 0000000..ca77803 --- /dev/null +++ b/src/views/home/device/device/index.vue @@ -0,0 +1,3 @@ + + 设备管理 + diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue new file mode 100644 index 0000000..d3ff9a2 --- /dev/null +++ b/src/views/home/device/instruction/index.vue @@ -0,0 +1,3 @@ + + 指令下发 + diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue new file mode 100644 index 0000000..d5f177c --- /dev/null +++ b/src/views/home/device/operation/index.vue @@ -0,0 +1,3 @@ + + 运维管理 + diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue new file mode 100644 index 0000000..7fcfb61 --- /dev/null +++ b/src/views/home/device/product/index.vue @@ -0,0 +1,3 @@ + + 产品管理 + diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue new file mode 100644 index 0000000..ab687f7 --- /dev/null +++ b/src/views/home/device/type/index.vue @@ -0,0 +1,3 @@ + + 设备类型管理 + diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue new file mode 100644 index 0000000..52a70bf --- /dev/null +++ b/src/views/home/ledger/index.vue @@ -0,0 +1,3 @@ + + 台账管理 + diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue new file mode 100644 index 0000000..afa5a3a --- /dev/null +++ b/src/views/home/pipeline/index.vue @@ -0,0 +1,3 @@ + + 管线监测 + diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue new file mode 100644 index 0000000..4537b5e --- /dev/null +++ b/src/views/home/rule/agreement/index.vue @@ -0,0 +1,3 @@ + + 协议管理 + diff --git a/src/views/home/rule/alarm/index.vue b/src/views/home/rule/alarm/index.vue new file mode 100644 index 0000000..bbd356b --- /dev/null +++ b/src/views/home/rule/alarm/index.vue @@ -0,0 +1,3 @@ + + 报警规则管理 + diff --git a/src/views/home/station/control/index.vue b/src/views/home/station/control/index.vue new file mode 100644 index 0000000..00f980f --- /dev/null +++ b/src/views/home/station/control/index.vue @@ -0,0 +1,3 @@ + + 设备控制 + diff --git a/src/views/home/station/station/index.vue b/src/views/home/station/station/index.vue new file mode 100644 index 0000000..6aa0c1f --- /dev/null +++ b/src/views/home/station/station/index.vue @@ -0,0 +1,3 @@ + + 场站监测 + diff --git a/src/views/home/station/video/index.vue b/src/views/home/station/video/index.vue new file mode 100644 index 0000000..7e15901 --- /dev/null +++ b/src/views/home/station/video/index.vue @@ -0,0 +1,3 @@ + + 视频轮巡 + diff --git a/src/views/home/well/index.vue b/src/views/home/well/index.vue new file mode 100644 index 0000000..439816e --- /dev/null +++ b/src/views/home/well/index.vue @@ -0,0 +1,3 @@ + + 闸井监测 + diff --git a/README.md b/README.md index aefe1eb..c1ffcce 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,6 @@
燃气物联感知平台-北燃闸井产品化
-仓库: bjGasLot
## 简要说明
diff --git a/src/router/modules/home.ts b/src/router/modules/home.ts
new file mode 100644
index 0000000..c853fca
--- /dev/null
+++ b/src/router/modules/home.ts
@@ -0,0 +1,361 @@
+// 所有菜单路由
+import sysRoutes from './system'
+import type { Route } from '@/global'
+
+const Layout = () => import('@/layouts/index.vue')
+
+const routes: Route.recordRaw[] = [
+ {
+ path: '/home',
+ component: Layout,
+ redirect: '/home/index',
+ name: 'Home',
+ meta: {
+ title: '首页',
+ icon: 'ep:key',
+ // auth: '/home',
+ },
+ children: [
+ {
+ path: 'index',
+ component: () => import('@/views/home/dashboard/index.vue'),
+ name: 'HomeIndex',
+ meta: {
+ title: '首页',
+ icon: 'ep:key',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/home',
+ // auth: '/home',
+ },
+ },
+ ],
+ },
+ {
+ path: '/fullscreen',
+ component: () => import('@/views/home/dashboard/fullScreen.vue'),
+ name: 'FullScreen',
+ meta: {
+ title: '综合大屏',
+ icon: 'ep:key',
+ sidebar: false,
+ breadcrumb: false,
+ // auth: '/fullscreen',
+ },
+ },
+ {
+ path: '/alarm',
+ component: Layout,
+ redirect: '/alarm/current',
+ name: 'Alarm',
+ meta: {
+ title: '报警管理',
+ icon: 'ep:key',
+ // auth: '/alarm',
+ },
+ children: [
+ {
+ path: 'current',
+ component: () => import('@/views/home/alarm/current/index.vue'),
+ name: 'AlarmCurrent',
+ meta: {
+ title: '当前报警',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/alarm/current',
+ // auth: '/alarm/current',
+ },
+ },
+ {
+ path: 'history',
+ component: () => import('@/views/home/alarm/history/index.vue'),
+ name: 'AlarmHistory',
+ meta: {
+ title: '历史报警',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/alarm/history',
+ // auth: '/alarm/history',
+ },
+ },
+ {
+ path: 'count',
+ component: () => import('@/views/home/alarm/count/index.vue'),
+ name: 'AlarmCount',
+ meta: {
+ title: '报警统计',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/alarm/count',
+ // auth: '/alarm/count',
+ },
+ },
+ ],
+ },
+ {
+ path: '/well',
+ component: Layout,
+ redirect: '/well/monitor',
+ name: 'Well',
+ meta: {
+ title: '闸井监测',
+ icon: 'ep:key',
+ // auth: '/well',
+ },
+ children: [
+ {
+ path: 'monitor',
+ component: () => import('@/views/home/well/index.vue'),
+ name: 'WellMonitor',
+ meta: {
+ title: '闸井监测',
+ icon: 'ep:key',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/well',
+ // auth: '/well',
+ },
+ },
+ ],
+ },
+ {
+ path: '/station',
+ component: Layout,
+ redirect: '/station/monitor',
+ name: 'Station',
+ meta: {
+ title: '场站监测',
+ icon: 'ep:key',
+ // auth: '/station',
+ },
+ children: [
+ {
+ path: 'monitor',
+ component: () => import('@/views/home/station/station/index.vue'),
+ name: 'StationMonitor',
+ meta: {
+ title: '场站监测',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/station/monitor',
+ // auth: '/station/monitor',
+ },
+ },
+ {
+ path: 'video',
+ component: () => import('@/views/home/station/video/index.vue'),
+ name: 'StationVideo',
+ meta: {
+ title: '视频轮巡',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/station/video',
+ // auth: '/station/video',
+ },
+ },
+ {
+ path: 'control',
+ component: () => import('@/views/home/station/control/index.vue'),
+ name: 'StationControl',
+ meta: {
+ title: '设备控制',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/station/control',
+ // auth: '/station/control',
+ },
+ },
+ ],
+ },
+ {
+ path: '/pipeline',
+ component: Layout,
+ redirect: '/pipeline/monitor',
+ name: 'Pipeline',
+ meta: {
+ title: '管线监测',
+ icon: 'ep:key',
+ // auth: '/pipeline',
+ },
+ children: [
+ {
+ path: 'monitor',
+ component: () => import('@/views/home/pipeline/index.vue'),
+ name: 'PipelineMonitor',
+ meta: {
+ title: '管线监测',
+ icon: 'ep:key',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/pipeline',
+ // auth: '/pipeline',
+ },
+ },
+ ],
+ },
+ {
+ path: '/ledger',
+ component: Layout,
+ redirect: '/ledger/manage',
+ name: 'Ledger',
+ meta: {
+ title: '台账管理',
+ icon: 'ep:key',
+ // auth: '/ledger',
+ },
+ children: [
+ {
+ path: 'manage',
+ component: () => import('@/views/home/ledger/index.vue'),
+ name: 'LedgerManage',
+ meta: {
+ title: '台账管理',
+ icon: 'ep:key',
+ sidebar: false,
+ breadcrumb: false,
+ activeMenu: '/ledger',
+ // auth: '/ledger',
+ },
+ },
+ ],
+ },
+ {
+ path: '/device',
+ component: Layout,
+ redirect: '/device/type',
+ name: 'Device',
+ meta: {
+ title: '设备管理',
+ icon: 'ep:key',
+ // auth: '/device',
+ },
+ children: [
+ {
+ path: 'type',
+ component: () => import('@/views/home/device/type/index.vue'),
+ name: 'DeviceType',
+ meta: {
+ title: '设备类型管理',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/device/type',
+ // auth: '/device/type',
+ },
+ },
+ {
+ path: 'product',
+ component: () => import('@/views/home/device/product/index.vue'),
+ name: 'DeviceProduct',
+ meta: {
+ title: '产品管理',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/device/product',
+ // auth: '/device/product',
+ },
+ },
+ {
+ path: 'manage',
+ component: () => import('@/views/home/device/device/index.vue'),
+ name: 'DeviceManage',
+ meta: {
+ title: '设备管理',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/device/manage',
+ // auth: '/device/manage',
+ },
+ },
+ {
+ path: 'operation',
+ component: () => import('@/views/home/device/operation/index.vue'),
+ name: 'DeviceOperation',
+ meta: {
+ title: '运维管理',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/device/operation',
+ // auth: '/device/operation',
+ },
+ },
+ {
+ path: 'instruction',
+ component: () => import('@/views/home/device/instruction/index.vue'),
+ name: 'DeviceInstruction',
+ meta: {
+ title: '指令下发',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/device/instruction',
+ // auth: '/device/instruction',
+ },
+ },
+ {
+ path: 'count',
+ component: () => import('@/views/home/device/count/index.vue'),
+ name: 'DeviceCount',
+ meta: {
+ title: '设备统计',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/device/count',
+ // auth: '/device/count',
+ },
+ },
+ ],
+ },
+ {
+ path: '/rule',
+ component: Layout,
+ redirect: '/rule/agreement',
+ name: 'Rule',
+ meta: {
+ title: '规则引擎',
+ icon: 'ep:key',
+ // auth: '/rule',
+ },
+ children: [
+ {
+ path: 'agreement',
+ component: () => import('@/views/home/rule/agreement/index.vue'),
+ name: 'RuleAgreement',
+ meta: {
+ title: '协议管理',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/rule/agreement',
+ // auth: '/rule/agreement',
+ },
+ },
+ {
+ path: 'alarm',
+ component: () => import('@/views/home/rule/alarm/index.vue'),
+ name: 'RuleAlarm',
+ meta: {
+ title: '报警规则管理',
+ icon: 'ep:key',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/rule/alarm',
+ // auth: '/rule/alarm',
+ },
+ },
+ ],
+ },
+ ...sysRoutes,
+]
+
+export default routes
diff --git a/src/router/modules/system.ts b/src/router/modules/system.ts
index e686132..bae4cfb 100644
--- a/src/router/modules/system.ts
+++ b/src/router/modules/system.ts
@@ -1,3 +1,4 @@
+// 系统管理模块路由
import type { Route } from '@/global'
const Layout = () => import('@/layouts/index.vue')
@@ -15,154 +16,76 @@
},
children: [
{
- path: '/area',
- component: Layout,
- redirect: '/area/list',
- name: 'AreaManage',
+ path: 'area',
+ name: 'AreaList',
+ component: () => import('@/views/system/area/listArea.vue'),
meta: {
title: '区域管理',
- icon: 'ep:key',
auth: '/sys/area',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/area',
},
- children: [
- {
- path: 'list',
- name: 'AreaList',
- component: () => import('@/views/system/area/listArea.vue'),
- meta: {
- title: '区域管理',
- auth: '/sys/area',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/area',
- },
- },
- ],
},
{
- path: '/resource',
- component: Layout,
- redirect: '/resource/list',
- name: 'ResourceManage',
+ path: 'resource',
+ name: 'ResourceList',
+ component: () => import('@/views/system/resource/listResource.vue'),
meta: {
title: '资源管理',
- icon: 'ep:key',
auth: '/sys/resource',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/resource',
},
- children: [
- {
- path: 'list',
- name: 'ResourceList',
- component: () => import('@/views/system/resource/listResource.vue'),
- meta: {
- title: '资源管理',
- auth: '/sys/resource',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/resource',
- },
- },
- ],
},
{
- path: '/dept',
- component: Layout,
- redirect: '/dept/list',
- name: 'DeptManage',
+ path: 'dept',
+ name: 'DeptList',
+ component: () => import('@/views/system/dept/listDept.vue'),
meta: {
title: '组织管理',
- icon: 'ep:key',
auth: '/sys/dept',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/dept',
},
- children: [
- {
- path: 'list',
- name: 'DeptList',
- component: () => import('@/views/system/dept/listDept.vue'),
- meta: {
- title: '组织管理',
- auth: '/sys/dept',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/dept',
- },
- },
- ],
},
{
- path: '/role',
- component: Layout,
- redirect: '/role/list',
- name: 'RoleManage',
+ path: 'role',
+ name: 'RoleList',
+ component: () => import('@/views/system/role/listRole.vue'),
meta: {
title: '角色管理',
- icon: 'ep:key',
auth: '/sys/role',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/role',
},
- children: [
- {
- path: 'list',
- name: 'RoleList',
- component: () => import('@/views/system/role/listRole.vue'),
- meta: {
- title: '角色管理',
- auth: '/sys/role',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/role',
- },
- },
- ],
},
{
- path: '/user',
- component: Layout,
- redirect: '/user/list',
- name: 'UserManage',
+ path: 'user',
+ name: 'UserList',
+ component: () => import('@/views/system/user/listUser.vue'),
meta: {
title: '用户管理',
- icon: 'ep:key',
auth: '/sys/mgr',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/user',
},
- children: [
- {
- path: 'list',
- name: 'UserList',
- component: () => import('@/views/system/user/listUser.vue'),
- meta: {
- title: '用户管理',
- auth: '/sys/mgr',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/user',
- },
- },
- ],
},
{
- path: '/dict',
- component: Layout,
- redirect: '/dict/list',
- name: 'DictManage',
+ path: 'dict',
+ name: 'DictList',
+ component: () => import('@/views/system/dict/listDict.vue'),
meta: {
title: '字典管理',
- icon: 'ep:key',
auth: '/sys/dict',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/dict',
},
- children: [
- {
- path: 'list',
- name: 'DictList',
- component: () => import('@/views/system/dict/listDict.vue'),
- meta: {
- title: '字典管理',
- auth: '/sys/dict',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/dict',
- },
- },
- ],
},
{
path: '/process',
@@ -228,107 +151,54 @@
],
},
{
- path: '/tenant',
- component: Layout,
- redirect: '/tenant/list',
- name: 'TenantManage',
+ path: 'tenant',
+ name: 'TenantList',
+ component: () => import('@/views/system/tenant/list.tenant.vue'),
meta: {
title: '项目管理',
- icon: 'ep:key',
auth: '/sys/tenantSys/list',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/tenant',
},
- children: [
- {
- path: 'list',
- name: 'TenantList',
- component: () => import('@/views/system/tenant/list.tenant.vue'),
- meta: {
- title: '项目管理',
- auth: '/sys/tenantSys/list',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/tenant',
- },
- },
- ],
},
{
- path: '/businessLog',
- component: Layout,
- redirect: '/businessLog/list',
- name: 'BusinessLog',
+ path: 'businessLog',
+ name: 'BusinessList',
+ component: () => import('@/views/system/log/listLog.vue'),
meta: {
title: '业务日志',
- icon: 'ep:key',
auth: '/sys/log/biz/list',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/businessLog',
},
- children: [
- {
- path: 'list',
- name: 'BusinessList',
- component: () => import('@/views/system/log/listLog.vue'),
- meta: {
- title: '业务日志',
- auth: '/sys/log/biz/list',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/businessLog',
- },
- },
- ],
},
{
- path: '/error',
- component: Layout,
- redirect: '/error/list',
- name: 'ErrorLog',
+ path: 'errorLog',
+ name: 'ErrorList',
+ component: () => import('@/views/system/log/listErrorLog.vue'),
meta: {
title: '异常日志',
- icon: 'ep:key',
auth: '/sys/log/error/list',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/error',
},
- children: [
- {
- path: 'list',
- name: 'ErrorList',
- component: () => import('@/views/system/log/listErrorLog.vue'),
- meta: {
- title: '异常日志',
- auth: '/sys/log/error/list',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/error',
- },
- },
- ],
},
{
- path: '/loginDiary',
- component: Layout,
- redirect: '/loginDiary/list',
- name: 'loginDiaryLog',
+ path: 'loginDiary',
+ name: 'loginDiaryList',
+ component: () => import('@/views/system/log/LoginLog.vue'),
meta: {
title: '登录日志',
- icon: 'ep:key',
auth: '/sys/loginLog',
+ sidebar: true,
+ breadcrumb: true,
+ activeMenu: '/system/loginDiary',
},
- children: [
- {
- path: 'list',
- name: 'loginDiaryList',
- component: () => import('@/views/system/log/LoginLog.vue'),
- meta: {
- title: '登录日志',
- auth: '/sys/loginLog',
- sidebar: false,
- breadcrumb: false,
- activeMenu: '/loginDiary',
- },
- },
- ],
}],
},
-
]
export default routes
diff --git a/src/router/routes.ts b/src/router/routes.ts
index 6f5a7e9..ae91d6e 100644
--- a/src/router/routes.ts
+++ b/src/router/routes.ts
@@ -1,6 +1,7 @@
import { setupLayouts } from 'virtual:generated-layouts'
import generatedRoutes from 'virtual:generated-pages'
-import commonRoute from './modules/system'
+// import commonRoute from './modules/system'
+import homeRoute from './modules/home'
import type { Route } from '@/global'
import useSettingsStore from '@/store/modules/settings'
@@ -14,14 +15,6 @@
},
},
{
- path: '/index',
- name: 'index',
- component: () => import('@/views/dashboard.vue'),
- meta: {
- title: '子系统列表',
- },
- },
- {
path: '/login',
name: 'login',
component: () => import('@/views/login.vue'),
@@ -111,24 +104,13 @@
// 动态路由(异步路由、导航栏路由)
const asyncRoutes: Route.recordMainRaw[] = [
- // {
- // meta: {
- // title: '实验室环境监控系统',
- // icon: '',
- // auth: '/laboratory/index',
- // },
- // children: [
- // ...laboratoryRoute,
- // ],
- // },
{
meta: {
- title: '系统设置',
+ title: '',
icon: '',
- auth: '/system',
},
children: [
- ...commonRoute,
+ ...homeRoute,
],
},
]
diff --git a/src/views/home/alarm/count/index.vue b/src/views/home/alarm/count/index.vue
new file mode 100644
index 0000000..7b222e4
--- /dev/null
+++ b/src/views/home/alarm/count/index.vue
@@ -0,0 +1,3 @@
+
+ 报警统计
+
diff --git a/src/views/home/alarm/current/index.vue b/src/views/home/alarm/current/index.vue
new file mode 100644
index 0000000..773d91e
--- /dev/null
+++ b/src/views/home/alarm/current/index.vue
@@ -0,0 +1,3 @@
+
+ 当前报警
+
diff --git a/src/views/home/alarm/history/index.vue b/src/views/home/alarm/history/index.vue
new file mode 100644
index 0000000..94ef71e
--- /dev/null
+++ b/src/views/home/alarm/history/index.vue
@@ -0,0 +1,3 @@
+
+ 历史报警
+
diff --git a/src/views/home/dashboard/fullScreen.vue b/src/views/home/dashboard/fullScreen.vue
new file mode 100644
index 0000000..30af3fc
--- /dev/null
+++ b/src/views/home/dashboard/fullScreen.vue
@@ -0,0 +1,3 @@
+
+ 综合大屏
+
diff --git a/src/views/home/dashboard/index.vue b/src/views/home/dashboard/index.vue
new file mode 100644
index 0000000..47658b0
--- /dev/null
+++ b/src/views/home/dashboard/index.vue
@@ -0,0 +1,3 @@
+
+ 首页
+
diff --git a/src/views/home/device/count/index.vue b/src/views/home/device/count/index.vue
new file mode 100644
index 0000000..d7c2022
--- /dev/null
+++ b/src/views/home/device/count/index.vue
@@ -0,0 +1,3 @@
+
+ 设备统计
+
diff --git a/src/views/home/device/device/index.vue b/src/views/home/device/device/index.vue
new file mode 100644
index 0000000..ca77803
--- /dev/null
+++ b/src/views/home/device/device/index.vue
@@ -0,0 +1,3 @@
+
+ 设备管理
+
diff --git a/src/views/home/device/instruction/index.vue b/src/views/home/device/instruction/index.vue
new file mode 100644
index 0000000..d3ff9a2
--- /dev/null
+++ b/src/views/home/device/instruction/index.vue
@@ -0,0 +1,3 @@
+
+ 指令下发
+
diff --git a/src/views/home/device/operation/index.vue b/src/views/home/device/operation/index.vue
new file mode 100644
index 0000000..d5f177c
--- /dev/null
+++ b/src/views/home/device/operation/index.vue
@@ -0,0 +1,3 @@
+
+ 运维管理
+
diff --git a/src/views/home/device/product/index.vue b/src/views/home/device/product/index.vue
new file mode 100644
index 0000000..7fcfb61
--- /dev/null
+++ b/src/views/home/device/product/index.vue
@@ -0,0 +1,3 @@
+
+ 产品管理
+
diff --git a/src/views/home/device/type/index.vue b/src/views/home/device/type/index.vue
new file mode 100644
index 0000000..ab687f7
--- /dev/null
+++ b/src/views/home/device/type/index.vue
@@ -0,0 +1,3 @@
+
+ 设备类型管理
+
diff --git a/src/views/home/ledger/index.vue b/src/views/home/ledger/index.vue
new file mode 100644
index 0000000..52a70bf
--- /dev/null
+++ b/src/views/home/ledger/index.vue
@@ -0,0 +1,3 @@
+
+ 台账管理
+
diff --git a/src/views/home/pipeline/index.vue b/src/views/home/pipeline/index.vue
new file mode 100644
index 0000000..afa5a3a
--- /dev/null
+++ b/src/views/home/pipeline/index.vue
@@ -0,0 +1,3 @@
+
+ 管线监测
+
diff --git a/src/views/home/rule/agreement/index.vue b/src/views/home/rule/agreement/index.vue
new file mode 100644
index 0000000..4537b5e
--- /dev/null
+++ b/src/views/home/rule/agreement/index.vue
@@ -0,0 +1,3 @@
+
+ 协议管理
+
diff --git a/src/views/home/rule/alarm/index.vue b/src/views/home/rule/alarm/index.vue
new file mode 100644
index 0000000..bbd356b
--- /dev/null
+++ b/src/views/home/rule/alarm/index.vue
@@ -0,0 +1,3 @@
+
+ 报警规则管理
+
diff --git a/src/views/home/station/control/index.vue b/src/views/home/station/control/index.vue
new file mode 100644
index 0000000..00f980f
--- /dev/null
+++ b/src/views/home/station/control/index.vue
@@ -0,0 +1,3 @@
+
+ 设备控制
+
diff --git a/src/views/home/station/station/index.vue b/src/views/home/station/station/index.vue
new file mode 100644
index 0000000..6aa0c1f
--- /dev/null
+++ b/src/views/home/station/station/index.vue
@@ -0,0 +1,3 @@
+
+ 场站监测
+
diff --git a/src/views/home/station/video/index.vue b/src/views/home/station/video/index.vue
new file mode 100644
index 0000000..7e15901
--- /dev/null
+++ b/src/views/home/station/video/index.vue
@@ -0,0 +1,3 @@
+
+ 视频轮巡
+
diff --git a/src/views/home/well/index.vue b/src/views/home/well/index.vue
new file mode 100644
index 0000000..439816e
--- /dev/null
+++ b/src/views/home/well/index.vue
@@ -0,0 +1,3 @@
+
+ 闸井监测
+
diff --git a/src/views/system/tenant/list.tenant.vue b/src/views/system/tenant/list.tenant.vue
index eebf1df..87af792 100644
--- a/src/views/system/tenant/list.tenant.vue
+++ b/src/views/system/tenant/list.tenant.vue
@@ -114,53 +114,33 @@