| New file |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1695708028269" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8683" width="16" style="padding:5px" height="16" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M512 878.933333a366.933333 366.933333 0 1 1 0-733.866666 366.933333 366.933333 0 0 1 0 733.866666z m0 59.733334c235.648 0 426.666667-191.018667 426.666667-426.666667S747.648 85.333333 512 85.333333 85.333333 276.352 85.333333 512s191.018667 426.666667 426.666667 426.666667z" fill="#ffffff" p-id="8684"></path><path d="M584.576 429.994667l98.346667-105.642667a259.84 259.84 0 0 1 84.053333 213.973333h-1.365333l-144.298667-4.138666c-3.413333 18.645333-11.52 35.669333-23.04 49.834666l109.696 94.250667a263.424 263.424 0 0 1-198.656 89.514667l-0.213333 0.213333c-4.821333 0-9.472-0.213333-14.250667-0.426667h-0.682667v-142.762666a113.152 113.152 0 0 1-52.522666-21.674667 12.032 12.032 0 0 1 0.554666 0.554667l0.512 0.554666-101.717333 109.226667a258.688 258.688 0 0 1-84.736-198.997333L256 514.261333v-0.298666c0.256-4.906667 0.469333-9.557333 0.938667-14.464h1.365333l139.008 4.010666a110.933333 110.933333 0 0 1 29.141333-64.853333L318.293333 345.770667a264.533333 264.533333 0 0 1 213.76-89.258667v147.754667c19.925333 3.882667 37.888 13.013333 52.565334 25.770666z m-74.538667 11.349333c-40.661333 0-73.514667 32.469333-73.514666 72.704 0 40.192 32.853333 72.661333 73.514666 72.661333a72.96 72.96 0 0 0 73.472-72.661333c0-40.234667-32.853333-72.704-73.472-72.704z" fill="#ffffff" p-id="8685"></path></svg> |
| | |
| | | import VueRouter from 'vue-router' |
| | | Vue.use(VueRouter) |
| | | const routes = [{ |
| | | path: "/", |
| | | name: 'index', |
| | | redirect: '/home' |
| | | }, |
| | | { |
| | | path: '/home', |
| | | name: 'home', |
| | | component: () => import('@/views/layout'), |
| | | meta: { |
| | | needLogin: true, |
| | | path: "/", |
| | | name: 'index', |
| | | redirect: '/home' |
| | | }, |
| | | children: [{ |
| | | path: 'system', |
| | | name: 'system', |
| | | component: () => import('@/views/systemSetting'), |
| | | { |
| | | path: '/home', |
| | | name: 'home', |
| | | component: () => import('@/views/layout'), |
| | | meta: { |
| | | needLogin: true, |
| | | }, |
| | | children: [{ |
| | | path: 'userSetting', |
| | | name: 'userSetting', |
| | | component: () => import('@/views/systemSetting/baseSetting'), |
| | | children: [{ |
| | | path: "user", |
| | | name: "user", |
| | | component: () => import('@/views/systemSetting/baseSetting/user') |
| | | path: 'system', |
| | | name: 'system', |
| | | component: () => import('@/views/systemSetting'), |
| | | children: [{ |
| | | path: 'userSetting', |
| | | name: 'userSetting', |
| | | component: () => import('@/views/systemSetting/baseSetting'), |
| | | children: [{ |
| | | path: "user", |
| | | name: "user", |
| | | component: () => import('@/views/systemSetting/baseSetting/user') |
| | | }, |
| | | { |
| | | path: 'role', |
| | | name: 'role', |
| | | component: () => import('@/views/systemSetting/baseSetting/role') |
| | | }, |
| | | { |
| | | path: 'department', |
| | | name: 'department', |
| | | component: () => import('@/views/systemSetting/baseSetting/department') |
| | | }, |
| | | |
| | | ] |
| | | }, |
| | | { |
| | | path: 'platform', |
| | | name: 'platform', |
| | | component: () => import('@/views/systemSetting/platform'), |
| | | children: [{ |
| | | path: 'portalSetting', |
| | | name: 'portalSetting', |
| | | component: () => import('@/views/systemSetting/platform/portalSetting') |
| | | }, |
| | | { |
| | | path: 'otherInterface', |
| | | name: 'otherInterface', |
| | | component: () => import('@/views/systemSetting/platform/otherInterface') |
| | | }, |
| | | { |
| | | path: 'mySetting', |
| | | name: 'mySetting', |
| | | component: () => import('@/views/systemSetting/platform/mySetting') |
| | | }, |
| | | { |
| | | path: 'cockpitManage', |
| | | name: 'cockpitManage', |
| | | component: () => import('@/views/systemSetting/platform/cockpitManage') |
| | | }, |
| | | { |
| | | path: 'externalLinks', //外部链接 |
| | | name: 'externalLinks', |
| | | component: () => import('@/views/systemSetting/platform/externalLinks') |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'device', |
| | | name: 'device', |
| | | component: () => import('@/views/systemSetting/device'), |
| | | children: [{ |
| | | path: 'bayonet', |
| | | name: 'bayonet', |
| | | component: () => import('@/views/systemSetting/device/bayonet') |
| | | }, |
| | | { |
| | | path: 'grid', |
| | | name: 'grid', |
| | | component: () => import('@/views/systemSetting/device/grid'), |
| | | }, |
| | | { |
| | | path: 'point', |
| | | name: 'point', |
| | | component: () => import('@/views/systemSetting/device/point'), |
| | | meta: { |
| | | keepAlive: false // 不需要被缓存 |
| | | } |
| | | }, |
| | | { |
| | | path: 'handheldTerminal', |
| | | name: 'handheldTerminal', |
| | | component: () => import('@/views/systemSetting/device/handheldTerminal'), |
| | | }, |
| | | { |
| | | path: 'loudspeaker', |
| | | name: 'loudspeaker', |
| | | component: () => import('@/views/systemSetting/device/loudspeaker'), |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'role', |
| | | name: 'role', |
| | | component: () => import('@/views/systemSetting/baseSetting/role') |
| | | path: 'smoke', |
| | | name: 'smoke', |
| | | component: () => import('@/views/smoke'), |
| | | children: [{ |
| | | path: 'smokeRealTime', |
| | | name: 'smokeRealTime', |
| | | component: () => import('@/views/smoke/realTime') |
| | | }, { |
| | | path: 'smokeJudgment', |
| | | name: 'smokeJudgment', |
| | | component: () => import('@/views/smoke/judgment') |
| | | },{ |
| | | path: 'smokeAlarm', |
| | | name: 'smokeAlarm', |
| | | component: () => import('@/views/smoke/alarm') |
| | | },{ |
| | | path: 'smokeReport', |
| | | name: 'smokeReport', |
| | | component: () => import('@/views/smoke/report') |
| | | },{ |
| | | path: 'smokecCockpit', |
| | | name: 'smokecCockpit', |
| | | component: () => import('@/views/smoke/cockpit') |
| | | }] |
| | | }, |
| | | { |
| | | path: 'department', |
| | | name: 'department', |
| | | component: () => import('@/views/systemSetting/baseSetting/department') |
| | | path: "operate", |
| | | name: 'operate', |
| | | component: () => import('@/views/operate'), |
| | | children: [{ |
| | | path: 'baseSetting', |
| | | name: 'baseSetting', |
| | | component: () => import('@/views/operate/baseSetting'), |
| | | children: [{ |
| | | path: "violation", |
| | | name: 'violation', |
| | | component: () => import('@/views/operate/baseSetting/violation'), |
| | | }, |
| | | { |
| | | path: "illegalBuild", |
| | | name: 'illegalBuild', |
| | | component: () => import('@/views/operate/baseSetting/illegalBuild'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: 'casepool', |
| | | name: 'casepool', |
| | | component: () => import('@/views/operate/disposal'), |
| | | children: [{ |
| | | path: 'pool', |
| | | name: 'pool', |
| | | component: () => import('@/views/operate/disposal/casepool/pool'), |
| | | }, |
| | | { |
| | | path: 'escalation', |
| | | name: 'escalation', |
| | | component: () => import('@/views/operate/disposal/casepool/escalation'), |
| | | }, |
| | | { |
| | | path: 'dispatch', |
| | | name: 'dispatch', |
| | | component: () => import('@/views/operate/disposal/casepool/dispatch'), |
| | | }, |
| | | { |
| | | path: 'notDeal', |
| | | name: 'notDeal', |
| | | component: () => import('@/views/operate/disposal/casepool/notDeal'), |
| | | }, |
| | | { |
| | | path: 'learn', |
| | | name: 'learn', |
| | | component: () => import('@/views/operate/disposal/casepool/learn'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: "fivepack", |
| | | name: 'fivepack', |
| | | component: () => import('@/views/operate/fivepack'), |
| | | children: [{ |
| | | path: "shop", |
| | | name: 'shop', |
| | | component: () => import('@/views/operate/fivepack/shop'), |
| | | }, |
| | | { |
| | | path: "threepackage", |
| | | name: 'threepackage', |
| | | component: () => import('@/views/operate/fivepack/threepack'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'myWait', |
| | | name: 'myWait', |
| | | component: () => import('@/views/operate/myWait'), |
| | | }, |
| | | { |
| | | path: 'images', |
| | | name: 'images', |
| | | component: () => import('@/views/operate/images'), |
| | | }, |
| | | { |
| | | path: 'viewEvent', |
| | | name: 'viewEvent', |
| | | component: () => import('@/views/operate/viewEvent'), |
| | | }, |
| | | { |
| | | path: 'rectification', |
| | | name: 'rectification', |
| | | component: () => import('@/views/operate/rectification'), |
| | | children: [{ |
| | | path: "taskList", |
| | | name: 'taskList', |
| | | component: () => import('@/views/operate/rectification/taskList'), |
| | | }, |
| | | { |
| | | path: "surveyList", |
| | | name: 'surveyList', |
| | | component: () => import('@/views/operate/rectification/surveyList'), |
| | | }, |
| | | { |
| | | path: "renovationList", |
| | | name: 'renovationList', |
| | | component: () => import('@/views/operate/rectification/renovationList'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'lawEnforcement', |
| | | name: 'lawEnforcement', |
| | | component: () => import('@/views/operate/lawEnforcement') |
| | | }, |
| | | { |
| | | path: 'management', |
| | | name: 'management', |
| | | component: () => import('@/views/operate/management'), |
| | | redirect: '/home/operate/management/myIndex', |
| | | children: [{ |
| | | path: 'myIndex', |
| | | name: 'myIndex', |
| | | component: () => import('@/views/operate/management/myIndex'), |
| | | }, |
| | | { |
| | | path: 'managementMessage', |
| | | name: 'managementMessage', |
| | | component: () => import('@/views/operate/management/message'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'car', |
| | | name: 'car', |
| | | component: () => import('@/views/operate/car'), |
| | | children: [{ |
| | | path: 'carIndex', |
| | | name: 'carIndex', |
| | | component: () => import('@/views/operate/car/myIndex'), |
| | | }, |
| | | { |
| | | path: 'lawTrajectory', |
| | | name: 'lawTrajectory', |
| | | component: () => import('@/views/operate/car/lawCar'), |
| | | }, |
| | | { |
| | | path: 'soilTrajectory', |
| | | name: 'soilTrajectory', |
| | | component: () => import('@/views/operate/car/soilCar'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'message', |
| | | name: 'message', |
| | | component: () => import('@/views/operate/message'), |
| | | children: [{ |
| | | path: 'messageIndex', |
| | | name: 'messageIndex', |
| | | component: () => import('@/views/operate/message/myIndex'), |
| | | }, |
| | | { |
| | | path: 'mycontrol', |
| | | name: 'mycontrol', |
| | | component: () => import('@/views/operate/message/mycontrol'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: 'log', |
| | | name: 'log', |
| | | component: () => import('@/views/operate/log'), |
| | | }, |
| | | { |
| | | path: 'sms', |
| | | name: 'sms', |
| | | component: () => import('@/views/operate/sms'), |
| | | children: [{ |
| | | path: 'smsIndex', |
| | | name: 'smsIndex', |
| | | component: () => import('@/views/operate/sms/smsIndex'), |
| | | }, |
| | | { |
| | | path: 'smsTemplate', |
| | | name: 'smsTemplate', |
| | | component: () => import('@/views/operate/sms/smsTemplate'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: "videoControl", |
| | | name: 'videoControl', |
| | | component: () => import('@/views/operate/video') |
| | | }, |
| | | { |
| | | path: 'viewEvent', |
| | | name: 'viewEvent', |
| | | component: () => import('@/views/operate/viewEvent'), |
| | | }, |
| | | { |
| | | path: 'images', |
| | | name: 'images', |
| | | component: () => import('@/views/operate/images'), |
| | | }, |
| | | { |
| | | path: 'writManagement', |
| | | name: 'writManagement', |
| | | component: () => import('@/views/operate/writManager'), |
| | | // redirect: '/home/operate/writManager/writ', |
| | | children: [{ |
| | | path: 'writTemplate', |
| | | name: 'writTemplate', |
| | | component: () => import('@/views/operate/writManager/writTemplate'), |
| | | }, |
| | | { |
| | | path: 'writ', |
| | | name: 'writ', |
| | | component: () => import('@/views/operate/writManager/writ'), |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | ] |
| | | }, |
| | | { |
| | | path: 'platform', |
| | | name: 'platform', |
| | | component: () => import('@/views/systemSetting/platform'), |
| | | children: [{ |
| | | path: 'portalSetting', |
| | | name: 'portalSetting', |
| | | component: () => import('@/views/systemSetting/platform/portalSetting') |
| | | }, |
| | | { |
| | | path: 'otherInterface', |
| | | name: 'otherInterface', |
| | | component: () => import('@/views/systemSetting/platform/otherInterface') |
| | | }, |
| | | { |
| | | path: 'mySetting', |
| | | name: 'mySetting', |
| | | component: () => import('@/views/systemSetting/platform/mySetting') |
| | | }, |
| | | { |
| | | path: 'cockpitManage', |
| | | name: 'cockpitManage', |
| | | component: () => import('@/views/systemSetting/platform/cockpitManage') |
| | | }, |
| | | { |
| | | path: 'externalLinks', //外部链接 |
| | | name: 'externalLinks', |
| | | component: () => import('@/views/systemSetting/platform/externalLinks') |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'device', |
| | | name: 'device', |
| | | component: () => import('@/views/systemSetting/device'), |
| | | children: [{ |
| | | path: 'bayonet', |
| | | name: 'bayonet', |
| | | component: () => import('@/views/systemSetting/device/bayonet') |
| | | }, |
| | | { |
| | | path: 'grid', |
| | | name: 'grid', |
| | | component: () => import('@/views/systemSetting/device/grid'), |
| | | }, |
| | | { |
| | | path: 'point', |
| | | name: 'point', |
| | | component: () => import('@/views/systemSetting/device/point'), |
| | | path: "video", |
| | | name: 'video', |
| | | component: () => import('@/views/video'), |
| | | meta: { |
| | | keepAlive: false // 不需要被缓存 |
| | | } |
| | | }, |
| | | |
| | | { |
| | | path: 'handheldTerminal', |
| | | name: 'handheldTerminal', |
| | | component: () => import('@/views/systemSetting/device/handheldTerminal'), |
| | | path: "lampblack", |
| | | name: 'lampblack', |
| | | component: () => import('@/views/lampblack') |
| | | }, |
| | | { |
| | | path: 'loudspeaker', |
| | | name: 'loudspeaker', |
| | | component: () => import('@/views/systemSetting/device/loudspeaker'), |
| | | path: "law", |
| | | name: 'law', |
| | | component: () => import('@/views/law') |
| | | }, |
| | | { |
| | | path: "intellect", |
| | | name: 'intellect', |
| | | component: () => import('@/views/intellect') |
| | | }, |
| | | { |
| | | path: "info", |
| | | name: 'info', |
| | | component: () => import('@/views/info') |
| | | }, |
| | | |
| | | // 智能巡查 |
| | | { |
| | | path: 'studyJudge', // 预警研判 |
| | | name: 'studyJudge', |
| | | component: () => import('@/views/intelligentPatrol/studyJudge/tablePage'), |
| | | }, |
| | | { |
| | | path: 'illegalSearch', // 违规检索 |
| | | name: 'illegalSearch', |
| | | component: () => import('@/views/intelligentPatrol/illegalSearch'), |
| | | }, |
| | | { |
| | | path: 'trendAnalysis', // 趋势分析 |
| | | name: 'trendAnalysis', |
| | | component: () => import('@/views/intelligentPatrol/trendAnalysis'), |
| | | }, |
| | | { |
| | | path: 'runReport', // 运行报告 |
| | | name: 'runReport', |
| | | component: () => import('@/views/intelligentPatrol/runReport'), |
| | | }, |
| | | // 违法统计 |
| | | { |
| | | path: 'typeStatistics', // 按违规类型统计 |
| | | name: 'typeStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/type'), |
| | | }, |
| | | { |
| | | path: 'pointStatistics', //按点位统计 |
| | | name: 'pointStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/point'), |
| | | }, |
| | | { |
| | | path: 'timeStatistics', //按时间统计 |
| | | name: 'timeStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/time'), |
| | | }, |
| | | { |
| | | path: 'areaStatistics', //按区域统计 |
| | | name: 'areaStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/area'), |
| | | }, |
| | | { |
| | | path: 'shopStatistics', //门前三包统计 |
| | | name: 'shopStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/shop'), |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: "operate", |
| | | name: 'operate', |
| | | component: () => import('@/views/operate'), |
| | | children: [{ |
| | | path: 'baseSetting', |
| | | name: 'baseSetting', |
| | | component: () => import('@/views/operate/baseSetting'), |
| | | children: [{ |
| | | path: "violation", |
| | | name: 'violation', |
| | | component: () => import('@/views/operate/baseSetting/violation'), |
| | | }, |
| | | { |
| | | path: "illegalBuild", |
| | | name: 'illegalBuild', |
| | | component: () => import('@/views/operate/baseSetting/illegalBuild'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: 'casepool', |
| | | name: 'casepool', |
| | | component: () => import('@/views/operate/disposal'), |
| | | children: [{ |
| | | path: 'pool', |
| | | name: 'pool', |
| | | component: () => import('@/views/operate/disposal/casepool/pool'), |
| | | }, |
| | | { |
| | | path: 'escalation', |
| | | name: 'escalation', |
| | | component: () => import('@/views/operate/disposal/casepool/escalation'), |
| | | }, |
| | | { |
| | | path: 'dispatch', |
| | | name: 'dispatch', |
| | | component: () => import('@/views/operate/disposal/casepool/dispatch'), |
| | | }, |
| | | { |
| | | path: 'notDeal', |
| | | name: 'notDeal', |
| | | component: () => import('@/views/operate/disposal/casepool/notDeal'), |
| | | }, |
| | | { |
| | | path: 'learn', |
| | | name: 'learn', |
| | | component: () => import('@/views/operate/disposal/casepool/learn'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: "fivepack", |
| | | name: 'fivepack', |
| | | component: () => import('@/views/operate/fivepack'), |
| | | children: [{ |
| | | path: "shop", |
| | | name: 'shop', |
| | | component: () => import('@/views/operate/fivepack/shop'), |
| | | }, |
| | | { |
| | | path: "threepackage", |
| | | name: 'threepackage', |
| | | component: () => import('@/views/operate/fivepack/threepack'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'myWait', |
| | | name: 'myWait', |
| | | component: () => import('@/views/operate/myWait'), |
| | | }, |
| | | { |
| | | path: 'images', |
| | | name: 'images', |
| | | component: () => import('@/views/operate/images'), |
| | | }, |
| | | { |
| | | path: 'viewEvent', |
| | | name: 'viewEvent', |
| | | component: () => import('@/views/operate/viewEvent'), |
| | | }, |
| | | { |
| | | path: 'rectification', |
| | | name: 'rectification', |
| | | component: () => import('@/views/operate/rectification'), |
| | | children: [{ |
| | | path: "taskList", |
| | | name: 'taskList', |
| | | component: () => import('@/views/operate/rectification/taskList'), |
| | | }, |
| | | { |
| | | path: "surveyList", |
| | | name: 'surveyList', |
| | | component: () => import('@/views/operate/rectification/surveyList'), |
| | | }, |
| | | { |
| | | path: "renovationList", |
| | | name: 'renovationList', |
| | | component: () => import('@/views/operate/rectification/renovationList'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'lawEnforcement', |
| | | name: 'lawEnforcement', |
| | | component: () => import('@/views/operate/lawEnforcement') |
| | | }, |
| | | { |
| | | path: 'management', |
| | | name: 'management', |
| | | component: () => import('@/views/operate/management'), |
| | | redirect: '/home/operate/management/myIndex', |
| | | children: [{ |
| | | path: 'myIndex', |
| | | name: 'myIndex', |
| | | component: () => import('@/views/operate/management/myIndex'), |
| | | }, |
| | | { |
| | | path: 'managementMessage', |
| | | name: 'managementMessage', |
| | | component: () => import('@/views/operate/management/message'), |
| | | }] |
| | | }, |
| | | { |
| | | path: 'car', |
| | | name: 'car', |
| | | component: () => import('@/views/operate/car'), |
| | | children: [{ |
| | | path: 'carIndex', |
| | | name: 'carIndex', |
| | | component: () => import('@/views/operate/car/myIndex'), |
| | | }, |
| | | { |
| | | path: 'lawTrajectory', |
| | | name: 'lawTrajectory', |
| | | component: () => import('@/views/operate/car/lawCar'), |
| | | }, |
| | | { |
| | | path: 'soilTrajectory', |
| | | name: 'soilTrajectory', |
| | | component: () => import('@/views/operate/car/soilCar'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'message', |
| | | name: 'message', |
| | | component: () => import('@/views/operate/message'), |
| | | children: [{ |
| | | path: 'messageIndex', |
| | | name: 'messageIndex', |
| | | component: () => import('@/views/operate/message/myIndex'), |
| | | }, |
| | | { |
| | | path: 'mycontrol', |
| | | name: 'mycontrol', |
| | | component: () => import('@/views/operate/message/mycontrol'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: 'log', |
| | | name: 'log', |
| | | component: () => import('@/views/operate/log'), |
| | | }, |
| | | { |
| | | path: 'sms', |
| | | name: 'sms', |
| | | component: () => import('@/views/operate/sms'), |
| | | children: [ |
| | | { |
| | | path: 'smsIndex', |
| | | name: 'smsIndex', |
| | | component: () => import('@/views/operate/sms/smsIndex'), |
| | | }, |
| | | { |
| | | path: 'smsTemplate', |
| | | name: 'smsTemplate', |
| | | component: () => import('@/views/operate/sms/smsTemplate'), |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: "videoControl", |
| | | name: 'videoControl', |
| | | component: () => import('@/views/operate/video') |
| | | }, |
| | | { |
| | | path: 'viewEvent', |
| | | name: 'viewEvent', |
| | | component: () => import('@/views/operate/viewEvent'), |
| | | }, |
| | | { |
| | | path: 'images', |
| | | name: 'images', |
| | | component: () => import('@/views/operate/images'), |
| | | }, |
| | | { |
| | | path: 'writManagement', |
| | | name: 'writManagement', |
| | | component: () => import('@/views/operate/writManager'), |
| | | // redirect: '/home/operate/writManager/writ', |
| | | children: [ |
| | | { |
| | | path: 'writTemplate', |
| | | name: 'writTemplate', |
| | | component: () => import('@/views/operate/writManager/writTemplate'), |
| | | }, |
| | | { |
| | | path: 'writ', |
| | | name: 'writ', |
| | | component: () => import('@/views/operate/writManager/writ'), |
| | | } |
| | | ] |
| | | }] |
| | | }, |
| | | |
| | | { |
| | | path: "video", |
| | | name: 'video', |
| | | component: () => import('@/views/video'), |
| | | meta: { |
| | | keepAlive: false // 不需要被缓存 |
| | | } |
| | | }, |
| | | |
| | | { |
| | | path: "lampblack", |
| | | name: 'lampblack', |
| | | component: () => import('@/views/lampblack') |
| | | path: '/login', |
| | | name: 'login', |
| | | component: () => import('@/views/login') |
| | | }, |
| | | { |
| | | path: "law", |
| | | name: 'law', |
| | | component: () => import('@/views/law') |
| | | path: '/screen', |
| | | name: 'screen', |
| | | component: () => import('@/views/screen') |
| | | }, |
| | | { |
| | | path: "intellect", |
| | | name: 'intellect', |
| | | component: () => import('@/views/intellect') |
| | | path: '/404', |
| | | name: "404", |
| | | component: () => import('@/views/info/NotFound'), |
| | | }, |
| | | { |
| | | path: "info", |
| | | name: 'info', |
| | | component: () => import('@/views/info') |
| | | }, |
| | | |
| | | // 智能巡查 |
| | | { |
| | | path: 'studyJudge', // 预警研判 |
| | | name: 'studyJudge', |
| | | component: () => import('@/views/intelligentPatrol/studyJudge/tablePage'), |
| | | path: '/fail', |
| | | name: "/fail", |
| | | component: () => import('@/views/info/Fail'), |
| | | }, |
| | | { |
| | | path: 'illegalSearch', // 违规检索 |
| | | name: 'illegalSearch', |
| | | component: () => import('@/views/intelligentPatrol/illegalSearch'), |
| | | path: '/success', |
| | | name: "/success", |
| | | component: () => import('@/views/info/Success'), |
| | | }, |
| | | { |
| | | path: 'trendAnalysis', // 趋势分析 |
| | | name: 'trendAnalysis', |
| | | component: () => import('@/views/intelligentPatrol/trendAnalysis'), |
| | | }, |
| | | { |
| | | path: 'runReport', // 运行报告 |
| | | name: 'runReport', |
| | | component: () => import('@/views/intelligentPatrol/runReport'), |
| | | }, |
| | | // 违法统计 |
| | | { |
| | | path: 'typeStatistics', // 按违规类型统计 |
| | | name: 'typeStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/type'), |
| | | }, |
| | | { |
| | | path: 'pointStatistics', //按点位统计 |
| | | name: 'pointStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/point'), |
| | | }, |
| | | { |
| | | path: 'timeStatistics', //按时间统计 |
| | | name: 'timeStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/time'), |
| | | }, |
| | | { |
| | | path: 'areaStatistics', //按区域统计 |
| | | name: 'areaStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/area'), |
| | | }, |
| | | { |
| | | path: 'shopStatistics', //门前三包统计 |
| | | name: 'shopStatistics', |
| | | component: () => import('@/views/intelligentPatrol/statistics/unlawful/shop'), |
| | | path: '*', |
| | | redirect: '/404' |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/login', |
| | | name: 'login', |
| | | component: () => import('@/views/login') |
| | | }, |
| | | { |
| | | path: '/screen', |
| | | name: 'screen', |
| | | component: () => import('@/views/screen') |
| | | }, |
| | | { |
| | | path: '/404', |
| | | name: "404", |
| | | component: () => import('@/views/info/NotFound'), |
| | | }, |
| | | { |
| | | path: '/fail', |
| | | name: "/fail", |
| | | component: () => import('@/views/info/Fail'), |
| | | }, |
| | | { |
| | | path: '/success', |
| | | name: "/success", |
| | | component: () => import('@/views/info/Success'), |
| | | }, |
| | | { |
| | | path: '*', |
| | | redirect: '/404' |
| | | } |
| | | ] |
| | | |
| | | const router = new VueRouter({ |
| | |
| | | router.push = function push(location) { |
| | | return originalPush.call(this, location).catch(err => err); |
| | | } |
| | | export default router |
| | | export default router |
| | |
| | | <template> |
| | | <div> |
| | | <!-- 侧边导航栏 --> |
| | | <el-aside width="200px"> |
| | | <h2 class="siderbar-title" @click="toHome()">遂昌执法平台</h2> |
| | | <el-scrollbar> |
| | | <!-- 路由 --> |
| | | <el-menu router |
| | | class="el-menu-vertical" |
| | | :default-active="$route.path.name" |
| | | @select="handleSelect"> |
| | | <el-submenu |
| | | :index="String(menu.id)" |
| | | v-for="menu in menuList" |
| | | :key="menu.id" |
| | | class="firstMenu" |
| | | > |
| | | <template slot="title"> |
| | | <span slot="prefix" class="icon-padding fisrtSpan"> |
| | | <svg-icon class="icon-title" :icon-class="menu.icon"></svg-icon> |
| | | </span> |
| | | <span class="fisrtSpan">{{ menu.title }}</span> |
| | | </template> |
| | | <template v-if="menu.menuVoArrayList.length > 0"> |
| | | <template v-for="secondMenu in menu.menuVoArrayList"> |
| | | <el-submenu |
| | | :key="secondMenu.id" |
| | | v-if="secondMenu.menuVoArrayList.length > 0" |
| | | :index="secondMenu.url ? secondMenu.url : secondMenu.id.toString()" |
| | | class="secondMenu" |
| | | :class="secondMenu.menuVoArrayList.length > 0?'is-Active':'none-Active'" |
| | | <div> |
| | | <!-- 侧边导航栏 --> |
| | | <el-aside width="200px"> |
| | | <h2 class="siderbar-title" @click="toHome()">遂昌执法平台</h2> |
| | | <el-scrollbar> |
| | | <!-- 路由 --> |
| | | <el-menu |
| | | router |
| | | class="el-menu-vertical" |
| | | :default-active="$route.path.name" |
| | | @select="handleSelect" |
| | | > |
| | | <template slot="title"> |
| | | <span class="secondSpan">{{ secondMenu.title }}</span> |
| | | </template> |
| | | <el-menu-item |
| | | v-for="thirdMenu in secondMenu.menuVoArrayList" |
| | | :key="thirdMenu.id" |
| | | :index="`${thirdMenu.id}`" |
| | | :route="{ name: thirdMenu.url }" |
| | | v-if="thirdMenu.id!='65'" |
| | | <el-submenu |
| | | :index="String(menu.id)" |
| | | v-for="menu in menuList" |
| | | :key="menu.id" |
| | | class="firstMenu" |
| | | > |
| | | <template> |
| | | {{thirdMenu.title }} |
| | | </template></el-menu-item |
| | | > |
| | | </el-submenu> |
| | | <el-menu-item |
| | | v-else |
| | | :index="`${secondMenu.id}`" |
| | | :route="{ name: secondMenu.url }" |
| | | >{{ secondMenu.title }}</el-menu-item> |
| | | </template> |
| | | </template> |
| | | <el-menu-item |
| | | v-else |
| | | :key="menu.id" |
| | | :index="`${menu.id}`" |
| | | :route="{ name: menu.url }" |
| | | >{{ menu.title }}</el-menu-item |
| | | > |
| | | </el-submenu> |
| | | </el-menu> |
| | | </el-scrollbar> |
| | | </el-aside> |
| | | </div> |
| | | <template slot="title"> |
| | | <span slot="prefix" class="icon-padding fisrtSpan"> |
| | | <svg-icon |
| | | class="icon-title" |
| | | v-bind:class="menu.icon" |
| | | :icon-class="menu.icon" |
| | | ></svg-icon> |
| | | </span> |
| | | <span class="fisrtSpan">{{ menu.title }}</span> |
| | | </template> |
| | | <template v-if="menu.menuVoArrayList.length > 0"> |
| | | <template |
| | | v-for="secondMenu in menu.menuVoArrayList" |
| | | > |
| | | <el-submenu |
| | | :key="secondMenu.id" |
| | | v-if="secondMenu.menuVoArrayList.length > 0" |
| | | :index=" |
| | | secondMenu.url |
| | | ? secondMenu.url |
| | | : secondMenu.id.toString() |
| | | " |
| | | class="secondMenu" |
| | | :class=" |
| | | secondMenu.menuVoArrayList.length > 0 |
| | | ? 'is-Active' |
| | | : 'none-Active' |
| | | " |
| | | > |
| | | <template slot="title"> |
| | | <span class="secondSpan">{{ |
| | | secondMenu.title |
| | | }}</span> |
| | | </template> |
| | | <el-menu-item |
| | | v-for="thirdMenu in secondMenu.menuVoArrayList" |
| | | :key="thirdMenu.id" |
| | | :index="`${thirdMenu.id}`" |
| | | :route="{ name: thirdMenu.url }" |
| | | v-if="thirdMenu.id != '65'" |
| | | > |
| | | <template> |
| | | {{ thirdMenu.title }} |
| | | </template></el-menu-item |
| | | > |
| | | </el-submenu> |
| | | <el-menu-item |
| | | v-else |
| | | :index="`${secondMenu.id}`" |
| | | :route="{ name: secondMenu.url }" |
| | | >{{ secondMenu.title }}</el-menu-item |
| | | > |
| | | </template> |
| | | </template> |
| | | <el-menu-item |
| | | v-else |
| | | :key="menu.id" |
| | | :index="`${menu.id}`" |
| | | :route="{ name: menu.url }" |
| | | >{{ menu.title }}</el-menu-item |
| | | > |
| | | </el-submenu> |
| | | </el-menu> |
| | | </el-scrollbar> |
| | | </el-aside> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | import router from "@/router"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | menuList: [], |
| | | isActive:'' |
| | | }; |
| | | }, |
| | | created() { |
| | | this.loadMenu(); |
| | | }, |
| | | watch: { |
| | | $route(){ |
| | | this.handleSelect(this.$route.fullPath) |
| | | } |
| | | }, |
| | | methods: { |
| | | handleSelect(path){ |
| | | this.isActive = path |
| | | data() { |
| | | return { |
| | | menuList: [], |
| | | isActive: '' |
| | | }; |
| | | }, |
| | | loadMenu() { |
| | | const userName = sessionStorage.getItem('name'); |
| | | users.getMenu({ name: userName }) |
| | | .then(res => { |
| | | // console.log(res) |
| | | // debugger |
| | | this.menuList = res.menus; |
| | | sessionStorage.setItem('user', JSON.stringify(res)); |
| | | }) |
| | | .catch(err => this.$message.error(err)) |
| | | created() { |
| | | this.loadMenu(); |
| | | }, |
| | | toHome(){ |
| | | router.push("/home") |
| | | } |
| | | }, |
| | | watch: { |
| | | $route() { |
| | | this.handleSelect(this.$route.fullPath) |
| | | } |
| | | }, |
| | | methods: { |
| | | handleSelect(path) { |
| | | this.isActive = path |
| | | }, |
| | | loadMenu() { |
| | | const userName = sessionStorage.getItem('name'); |
| | | users.getMenu({ name: userName }) |
| | | .then(res => { |
| | | // console.log(res) |
| | | // debugger |
| | | this.menuList = res.menus; |
| | | sessionStorage.setItem('user', JSON.stringify(res)); |
| | | }) |
| | | .catch(err => this.$message.error(err)) |
| | | }, |
| | | toHome() { |
| | | router.push("/home") |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scpoed> |
| | | .icon-padding { |
| | | padding-right: 10px; |
| | | .icon-title{ |
| | | width: 36px; |
| | | height: 36px; |
| | | } |
| | | padding-right: 10px; |
| | | .icon-title { |
| | | width: 36px; |
| | | height: 36px; |
| | | } |
| | | } |
| | | .smoke { |
| | | padding: 5px; |
| | | } |
| | | .el-aside { |
| | | background: #313350; |
| | | color: #e9eef3; |
| | | text-align: center; |
| | | box-sizing: border-box; |
| | | position: relative; |
| | | // 固定标题 |
| | | .siderbar-title { |
| | | position: fixed; |
| | | background: #313350; |
| | | color: #e9eef3; |
| | | text-align: center; |
| | | margin: 0; |
| | | font-size: 26px; |
| | | width: 200px; |
| | | line-height: 66px; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 999; |
| | | cursor: pointer; |
| | | } |
| | | .el-scrollbar { |
| | | height: calc(100vh - 66px); |
| | | margin-top: 66px; |
| | | box-sizing: border-box; |
| | | .el-menu { |
| | | background: linear-gradient(#313350, #0f2b56); |
| | | border: 0; |
| | | font-size: 16px; |
| | | .is-opened{ |
| | | .fisrtSpan{ |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | .firstMenu { |
| | | background: #313350; |
| | | text-align: left; |
| | | //border-bottom:1px solid #ccc ; |
| | | &:hover > .el-submenu__title { |
| | | background-color: #092c4a; |
| | | } |
| | | &:hover .fisrtSpan { |
| | | color: #22d3eb; |
| | | } |
| | | span, |
| | | span { |
| | | color: #e9eef3; |
| | | font-size: 16px; |
| | | } |
| | | .el-menu{ |
| | | .is-active { |
| | | background-color: #409EFF; |
| | | color: #fff; |
| | | } |
| | | .is-Active{ |
| | | background-color: #092c4a; |
| | | color: #fff; |
| | | } |
| | | } |
| | | .el-menu-item { |
| | | color: #e9eef3; |
| | | background-color: #313350; |
| | | font-size: 16px; |
| | | // border-bottom: 0.5px solid #7c7979; |
| | | } |
| | | .el-menu-item:hover { |
| | | background-color: #409EFF; |
| | | color: #22d3eb; |
| | | } |
| | | .is-opened{ |
| | | .secondSpan{ |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | .secondMenu{ |
| | | //border-bottom:1px solid #ccc ; |
| | | .is-active { |
| | | background-color: #409EFF; |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | } |
| | | .secondMenu { |
| | | |
| | | &:hover > .el-submenu__title { |
| | | background-color: #092c4a; |
| | | } |
| | | .secondSpan{ |
| | | } |
| | | &:hover .secondSpan { |
| | | color: #22d3eb; |
| | | } |
| | | .is-opened{ |
| | | .el-submenu__title{ |
| | | background-color: #fff; |
| | | } |
| | | } |
| | | .is-active { |
| | | background-color: #409EFF; |
| | | color: #fff; |
| | | } |
| | | } |
| | | .thirdMenu { |
| | | &:hover > .el-submenu__title { |
| | | background-color: #092c4a; |
| | | } |
| | | |
| | | &:hover .thirdSpan { |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | |
| | | .is-active { |
| | | background-color: #092c4a; |
| | | } |
| | | position: relative; |
| | | // 固定标题 |
| | | .siderbar-title { |
| | | position: fixed; |
| | | text-align: center; |
| | | margin: 0; |
| | | font-size: 26px; |
| | | width: 200px; |
| | | line-height: 66px; |
| | | top: 0; |
| | | left: 0; |
| | | z-index: 999; |
| | | cursor: pointer; |
| | | } |
| | | .el-scrollbar__wrap { |
| | | overflow-x: hidden; |
| | | .el-scrollbar { |
| | | height: calc(100vh - 66px); |
| | | margin-top: 66px; |
| | | box-sizing: border-box; |
| | | .el-menu { |
| | | background: linear-gradient(#313350, #0f2b56); |
| | | border: 0; |
| | | font-size: 16px; |
| | | .is-opened { |
| | | .fisrtSpan { |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | .firstMenu { |
| | | background: #313350; |
| | | text-align: left; |
| | | //border-bottom:1px solid #ccc ; |
| | | &:hover > .el-submenu__title { |
| | | background-color: #092c4a; |
| | | } |
| | | &:hover .fisrtSpan { |
| | | color: #22d3eb; |
| | | } |
| | | span, |
| | | span { |
| | | color: #e9eef3; |
| | | font-size: 16px; |
| | | } |
| | | .el-menu { |
| | | .is-active { |
| | | background-color: #409eff; |
| | | color: #fff; |
| | | } |
| | | .is-Active { |
| | | background-color: #092c4a; |
| | | color: #fff; |
| | | } |
| | | } |
| | | .el-menu-item { |
| | | color: #e9eef3; |
| | | background-color: #313350; |
| | | font-size: 16px; |
| | | // border-bottom: 0.5px solid #7c7979; |
| | | } |
| | | .el-menu-item:hover { |
| | | background-color: #409eff; |
| | | color: #22d3eb; |
| | | } |
| | | .is-opened { |
| | | .secondSpan { |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | .secondMenu { |
| | | //border-bottom:1px solid #ccc ; |
| | | .is-active { |
| | | background-color: #409eff; |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | } |
| | | .secondMenu { |
| | | &:hover > .el-submenu__title { |
| | | background-color: #092c4a; |
| | | } |
| | | .secondSpan { |
| | | } |
| | | &:hover .secondSpan { |
| | | color: #22d3eb; |
| | | } |
| | | .is-opened { |
| | | .el-submenu__title { |
| | | background-color: #fff; |
| | | } |
| | | } |
| | | .is-active { |
| | | background-color: #409eff; |
| | | color: #fff; |
| | | } |
| | | } |
| | | .thirdMenu { |
| | | &:hover > .el-submenu__title { |
| | | background-color: #092c4a; |
| | | } |
| | | |
| | | &:hover .thirdSpan { |
| | | color: #22d3eb; |
| | | } |
| | | } |
| | | |
| | | .is-active { |
| | | background-color: #092c4a; |
| | | } |
| | | } |
| | | .el-scrollbar__wrap { |
| | | overflow-x: hidden; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div>报警消息</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div>油烟驾驶舱</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <router-view></router-view> |
| | | </template> |
| New file |
| | |
| | | <template> |
| | | <div>预警研判</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div>实时管理</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
| New file |
| | |
| | | <template> |
| | | <div>统计报表</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |