From fa1c7589a74d3f48d74a7a9ee98ac57335b4502a Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期四, 28 九月 2023 18:50:57 +0800
Subject: [PATCH] 油烟

---
 src/assets/icons/svg/smoke.svg             |    1 
 src/views/smoke/cockpit/index.vue          |   13 
 src/views/smoke/realTime/index.vue         |   13 
 src/views/smoke/judgment/index.vue         |   13 
 src/views/smoke/report/index.vue           |   13 
 src/router/index.js                        |  826 ++++++++++++++++++-----------------
 src/views/smoke/alarm/index.vue            |   13 
 src/views/smoke/index.vue                  |    3 
 src/views/layout/components/Menu/index.vue |  445 ++++++++++---------
 9 files changed, 728 insertions(+), 612 deletions(-)

diff --git a/src/assets/icons/svg/smoke.svg b/src/assets/icons/svg/smoke.svg
new file mode 100644
index 0000000..8917dd9
--- /dev/null
+++ b/src/assets/icons/svg/smoke.svg
@@ -0,0 +1 @@
+<?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>
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index de2ed93..7b58a45 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,436 +2,462 @@
 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({
@@ -443,4 +469,4 @@
 router.push = function push(location) {
   return originalPush.call(this, location).catch(err => err);
 }
-export default router
+export default router
\ No newline at end of file
diff --git a/src/views/layout/components/Menu/index.vue b/src/views/layout/components/Menu/index.vue
index 8e7e3f1..a37cdcd 100644
--- a/src/views/layout/components/Menu/index.vue
+++ b/src/views/layout/components/Menu/index.vue
@@ -1,69 +1,88 @@
 <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>
@@ -71,167 +90,169 @@
 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>
diff --git a/src/views/smoke/alarm/index.vue b/src/views/smoke/alarm/index.vue
new file mode 100644
index 0000000..bd189c7
--- /dev/null
+++ b/src/views/smoke/alarm/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <div>鎶ヨ娑堟伅</div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/cockpit/index.vue b/src/views/smoke/cockpit/index.vue
new file mode 100644
index 0000000..6b89f78
--- /dev/null
+++ b/src/views/smoke/cockpit/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <div>娌圭儫椹鹃┒鑸�</div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/index.vue b/src/views/smoke/index.vue
new file mode 100644
index 0000000..2785996
--- /dev/null
+++ b/src/views/smoke/index.vue
@@ -0,0 +1,3 @@
+<template>
+    <router-view></router-view>
+</template>
diff --git a/src/views/smoke/judgment/index.vue b/src/views/smoke/judgment/index.vue
new file mode 100644
index 0000000..9278ea7
--- /dev/null
+++ b/src/views/smoke/judgment/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <div>棰勮鐮斿垽</div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/realTime/index.vue b/src/views/smoke/realTime/index.vue
new file mode 100644
index 0000000..2f1c154
--- /dev/null
+++ b/src/views/smoke/realTime/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <div>瀹炴椂绠$悊</div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file
diff --git a/src/views/smoke/report/index.vue b/src/views/smoke/report/index.vue
new file mode 100644
index 0000000..ddfb58b
--- /dev/null
+++ b/src/views/smoke/report/index.vue
@@ -0,0 +1,13 @@
+<template>
+  <div>缁熻鎶ヨ〃</div>
+</template>
+
+<script>
+export default {
+
+}
+</script>
+
+<style>
+
+</style>
\ No newline at end of file

--
Gitblit v1.8.0