初次提交

This commit is contained in:
2025-06-30 10:17:15 +08:00
commit 5446088524
989 changed files with 365987 additions and 0 deletions

155
src/router/index.js Normal file
View File

@ -0,0 +1,155 @@
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
/* Layout */
import Layout from '@/layout'
/* Router Modules */
import systemRouter from './modules/system' // 系统管理
import alarmRouter from './modules/alarm' // 告警中心
import remoteControlRouter from './modules/remote-control'
import surveillanceRouter from './modules/surveillance' // 实时监视
import strategicRouter from './modules/strategic-management' // 策略管理
import revenueRouter from './modules/revenue-management' // 收益管理
import operationalInspectionRouter from './modules/operational-inspection' // 巡检中心
/**
* Note: sub-menu only appear when route children.length >= 1
* Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
*
* hidden: true if set true, item will not show in the sidebar(default is false)
* alwaysShow: true if set true, will always show the root menu
* if not set alwaysShow, when item has more than one children route,
* it will becomes nested mode, otherwise not show the root menu
* redirect: noRedirect if set noRedirect will no redirect in the breadcrumb
* name:'router-name' the name is used by <keep-alive> (must set!!!)
* meta : {
roles: ['admin','editor'] control the page roles (you can set multiple roles)
title: 'title' the name show in sidebar and breadcrumb (recommend set)
icon: 'svg-name'/'el-icon-x' the icon show in the sidebar
noCache: true if set true, the page will no be cached(default is false)
affix: true if set true, the tag will affix in the tags-view
breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)
activeMenu: '/example/list' if set path, the sidebar will highlight the path you set
}
*/
/**
* constantRoutes
* a base page that does not have permission requirements
* all roles can be accessed
*/
export const constantRoutes = [
/** when your routing map is too long, you can split it into small modules **/
systemRouter,
alarmRouter,
remoteControlRouter,
surveillanceRouter,
strategicRouter,
revenueRouter,
operationalInspectionRouter,
{
path: '/',
redirect: '/login',
component: () => import('@/views/login/index'),
hidden: true
},
{
path: '/login',
component: () => import('@/views/login/index'),
hidden: true
},
{
path: '/family',
component: () => import('@/views/family/index'),
hidden: true
},
{
path: '/auth-redirect',
component: () => import('@/views/login/auth-redirect'),
hidden: true
},
{
path: '/404',
component: () => import('@/views/error-page/404'),
hidden: true
},
{
path: '/401',
component: () => import('@/views/error-page/401'),
hidden: true
},
{
path: '/new-screen-zz',
component: () => import('@/views/new-screen-zz/index.vue'),
name: 'new-screen-zz',
meta: { title: '管控大屏' }
},
{
path: '/dashboard-test',
component: Layout,
children: [
{
path: 'dashboard-test',
component: () => import('@/views/dashboardtest/index.vue'),
name: 'dashboard-test',
meta: { title: 'dashboard-test', icon: 'dashboard', affix: true }
}
]
},
{ path: '*', redirect: '/404', hidden: true }
]
/**
* asyncRoutes
* the routes that need to be dynamically loaded based on user roles
*/
export const asyncRoutes = [
/** when your routing map is too long, you can split it into small modules **/
systemRouter,
{
path: '/error',
component: Layout,
redirect: 'noRedirect',
name: 'ErrorPages',
meta: {
title: 'errorPages',
icon: '404'
},
children: [
{
path: '401',
component: () => import('@/views/error-page/401'),
name: 'Page401',
meta: { title: 'page401', noCache: true }
},
{
path: '404',
component: () => import('@/views/error-page/404'),
name: 'Page404',
meta: { title: 'page404', noCache: true }
}
]
},
// 404 page must be placed at the end !!!
{ path: '*', redirect: '/404', hidden: true }
]
const createRouter = () =>
new Router({
// mode: 'history', // require service support
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})
const router = createRouter()
export function resetRouter() {
const newRouter = createRouter()
router.matcher = newRouter.matcher // reset router
}
export default router

View File

@ -0,0 +1,37 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const alarmRouter = {
path: '/alarm',
component: Layout,
redirect: 'noRedirect',
name: 'Alarm',
meta: {
title: 'warnCenter',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'realtime',
component: () => import('@/views/alarm/realtime/index.vue'),
name: 'realtime',
meta: { title: 'realTimeWarn' }
},
{
path: 'history',
component: () => import('@/views/alarm/history/index.vue'),
name: 'history',
meta: { title: 'historyWarn' }
},
{
path: 'alarm-definition',
component: () => import('@/views/alarm/alarm-definition/index.vue'),
name: 'alarm-definition',
meta: { title: '告警定义' }
}
]
}
export default alarmRouter

View File

@ -0,0 +1,74 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const operationalInspectionRouter = {
path: '/operational-inspection',
component: Layout,
redirect: 'noRedirect',
name: 'operational-inspection',
meta: {
title: '巡检中心',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'activiti-definition',
component: () =>
import('@/views/operational-inspection/activiti-definition/index.vue'),
name: 'activiti-definition',
meta: { title: '流程定义' }
},
{
path: 'activiti-temp',
component: () =>
import('@/views/operational-inspection/activiti-temp/index.vue'),
name: 'activiti-definition',
meta: { title: '流程模板' }
},
{
path: 'task',
component: () =>
import('@/views/operational-inspection/task/index.vue'),
name: 'task',
meta: { title: '代办任务' }
},
{
path: 'add-task',
component: () => import('@/views/operational-inspection/add-task/index.vue'),
name: 'add-task',
meta: { title: '新增' }
},
{
path: 'all-task-detail',
component: () => import('@/views/operational-inspection/add-task/detail.vue'),
name: 'all-task-detail',
meta: { title: '详情' }
},
{
path: 'message-config',
component: () => import('@/views/operational-inspection/message-config/index.vue'),
name: 'message-config',
meta: { title: '消息配置' }
},
{
path: 'user-message-config',
component: () => import('@/views/operational-inspection/user-message-config/index.vue'),
name: 'user-message-config',
meta: { title: '用户消息' }
},
{
path: 'information-entry',
component: () => import('@/views/operational-inspection/information-entry/index.vue'),
name: 'information-entry',
meta: { title: '信息录入' }
},
{
path: 'repair-records',
component: () => import('@/views/operational-inspection/repair-records/index.vue'),
name: 'repair-records',
meta: { title: '维修记录' }
}
]
}
export default operationalInspectionRouter

View File

@ -0,0 +1,38 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const remoteControlRouter = {
path: '/remote-control',
component: Layout,
redirect: 'noRedirect',
name: 'remote-control',
meta: {
title: 'remote-control',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'issue-order',
component: () => import('@/views/remote-control/issue-order/index.vue'),
name: 'issue-order',
meta: { title: '命令下发' }
},
{
path: 'intergrated-cabinet',
component: () => import('@/views/remote-control/intergrated-cabinet/index.vue'),
name: 'intergrated-cabinet',
meta: { title: '一体柜' }
},
{
path: 'file-service',
component: () => import('@/views/remote-control/file-service/index.vue'),
name: 'file-service',
meta: { title: '文件服务' }
}
]
}
export default remoteControlRouter

View File

@ -0,0 +1,41 @@
import Layout from '@/layout'
const revenueRouter = {
path: '/revenue-management',
component: Layout,
redirect: 'noRedirect',
name: 'revenueManagement',
meta: {
title: '收益管理',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'price-configuration',
component: () => import('@/views/revenue-management/price-configuration/index.vue'),
name: 'price-configuration',
meta: { title: '收益配置' }
},
{
path: 'earnings-statement',
component: () => import('@/views/revenue-management/earnings-statement/index.vue'),
name: 'earnings-statement',
meta: { title: '收益报表' }
},
{
path: 'proxy-price-region',
component: () => import('@/views/revenue-management/proxy-price-region/index.vue'),
name: 'proxy-price-region',
meta: { title: 'proxy-price-region' }
},
{
path: 'proxy-price',
component: () => import('@/views/revenue-management/proxy-price/index.vue'),
name: 'proxy-price',
meta: { title: 'proxy-price' }
}
]
}
export default revenueRouter

View File

@ -0,0 +1,48 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const strategicRouter = {
path: '/strategic-management',
component: Layout,
redirect: 'noRedirect',
name: 'strategic',
meta: {
title: 'strategic',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'electricity-curve',
component: () => import('@/views/strategic-management/electricity-curve/index.vue'),
name: 'electricity-curve',
meta: { title: 'electricity-curve' }
},
{
path: 'plan-curve',
component: () => import('@/views/strategic-management/plan-curve/index.vue'),
name: 'plan-curve',
meta: { title: 'plan-curve' }
},
{
path: 'plan-curve-issue',
component: () => import('@/views/strategic-management/plan-curve-issue/index.vue'),
name: 'plan-curve-issue',
meta: { title: 'plan-curve-issue' }
},
{
path: 'strategy',
component: () => import('@/views/strategic-management/strategy/index.vue'),
name: 'strategy',
meta: { title: 'strategy' }
},
{
path: 'history-plan-curve',
component: () => import('@/views/strategic-management/history-plan-curve/index.vue'),
name: 'history-plan-curve',
meta: { title: '曲线下发历史' }
}
]
}
export default strategicRouter

View File

@ -0,0 +1,48 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const surveillanceRouter = {
path: '/surveillance',
component: Layout,
redirect: 'noRedirect',
name: 'surveillance',
meta: {
title: '实时监视',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'battery-analysis',
component: () => import('@/views/surveillance/battery-analysis/index.vue'),
name: 'battery-analysis',
meta: { title: '历史曲线' }
},
{
path: 'energy-storage',
component: () => import('@/views/surveillance/energy-storage/index.vue'),
name: 'energy-storage',
meta: { title: '储能单元' }
},
{
path: 'standard-215-device-list',
component: () => import('@/views/surveillance/standard-215-device-list/index.vue'),
name: 'standard-215-device-list',
meta: { title: '标准215kW设备列表' }
},
{
path: 'charge-discharge-data',
component: () => import('@/views/surveillance/charge-discharge-data/index.vue'),
name: 'charge-discharge-data',
meta: { title: '充放电数据' }
},
{
path: 'earnings-glance',
component: () => import('@/views/surveillance/earnings-glance/index.vue'),
name: 'earnings-glance',
meta: { title: '收益概览' }
}
]
}
export default surveillanceRouter

View File

@ -0,0 +1,152 @@
/** When your routing table is too long, you can split it into small modules**/
import Layout from '@/layout'
const systemRouter = {
path: '/system',
component: Layout,
redirect: 'noRedirect',
name: 'System',
meta: {
title: 'system',
icon: 'el-icon-s-tools'
},
children: [
{
path: 'dictionary',
component: () => import('@/views/system/dictionary/index.vue'),
name: 'dictionary',
meta: { title: 'dictionary' }
},
{
path: 'role',
component: () => import('@/views/system/role/index.vue'),
name: 'role',
meta: { title: 'role' }
},
{
path: 'menu',
component: () => import('@/views/system/menu/index.vue'),
name: 'menu',
meta: { title: 'menu' }
},
{
path: 'user',
component: () => import('@/views/system/user/index.vue'),
name: 'user',
meta: { title: 'user' }
},
{
path: 'org',
component: () => import('@/views/system/org/index.vue'),
name: 'org',
meta: { title: 'org' }
},
{
path: 'log',
component: () => import('@/views/system/log/index.vue'),
name: 'log',
meta: { title: 'log' }
},
{
path: 'post',
component: () => import('@/views/system/post/index.vue'),
name: 'post',
meta: { title: '岗位' }
},
{
path: 'department',
component: () => import('@/views/system/department/index.vue'),
name: 'department',
meta: { title: '电站管理' }
},
{
path: 'equipment',
component: () => import('@/views/system/equipment/index.vue'),
name: 'equipment',
meta: { title: '设备管理' }
},
{
path: 'alarm-configuration',
component: () => import('@/views/system/alarm-configuration/index.vue'),
name: 'alarm-configuration',
meta: { title: '告警配置' }
},
{
path: 'ems-equipment',
component: () => import('@/views/system/ems-equipment/index.vue'),
name: 'ems-equipment',
meta: { title: 'EMS设备' }
},
{
path: 'ems-model',
component: () => import('@/views/system/ems-model/index.vue'),
name: 'ems-model',
meta: { title: 'EMS模型' }
},
{
path: 'equipment-model-relevancy',
component: () => import('@/views/system/equipment-model-relevancy/index.vue'),
name: 'equipment-model-relevancy',
meta: { title: '模型-设备关联管理' }
},
{
path: 'equip-model',
component: () => import('@/views/system/equip-model/index.vue'),
name: 'equip-model',
meta: { title: '设备模型管理' }
},
{
path: 'station-role',
component: () => import('@/views/system/station-role/index.vue'),
name: 'station-role',
meta: { title: '电站角色管理' }
},
{
path: 'model-type',
component: () => import('@/views/system/model-type/index.vue'),
name: 'model-type',
meta: { title: '模型类型配置' }
},
{
path: 'virtual-device-col',
component: () => import('@/views/system/virtual-device-col/index.vue'),
name: 'virtual-device-col',
meta: { title: '虚拟设备点表配置' }
},
{
path: 'synchronize-virtual-configuration',
component: () => import('@/views/system/synchronize-virtual-configuration/index.vue'),
name: 'synchronize-virtual-configuration',
meta: { title: '同步虚拟配置' }
},
{
path: 'offset-setting',
component: () => import('@/views/system/offset-setting/index.vue'),
name: 'offset-setting',
meta: { title: '偏移量设置' }
},
{
path: 'device-upgrade',
component: () => import('@/views/system/device-upgrade/index.vue'),
name: 'device-upgrade',
meta: { title: '设备升级' }
},
{
path: 'sms-configuration',
component: () => import('@/views/system/sms-configuration/index.vue'),
name: 'sms-configuration',
meta: { title: '短信配置' }
},
{
path: 'site-configuration',
component: () => import('@/views/system/site-configuration/index.vue'),
name: 'site-configuration',
meta: { title: '一键同步' }
}
]
}
export default systemRouter