From b4495445fbfc616a2126587ce9eec205fc1cbe19 Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期三, 20 四月 2022 13:52:11 +0800
Subject: [PATCH] 授权时间修改

---
 public/images/diy/9.png                                                     |    0 
 src/Pool/PollData.ts                                                        |    9 
 vue.config.js                                                               |    6 
 src/views/hashrate/CameraManage/index.vue                                   |    2 
 src/views/productDetail/components/ConfirmOrder.vue                         |    3 
 src/views/personalCenter/components/SubAccount.vue                          |   45 +-
 src/views/hashrate/index.vue                                                |   14 
 src/views/productDetail/components/Function.vue                             |    3 
 src/views/search/index.vue                                                  |    2 
 src/components/giantTree/zTree/ztree.vue                                    |   36 +-
 src/views/index/components/commendContent.vue                               |    4 
 src/views/equipmentManagement/equipmentList/components/FormList.vue         |    6 
 src/views/equipmentManagement/components/Banner.vue                         |    8 
 public/images/diy/2.png                                                     |    0 
 public/images/search/数据查看.png                                               |    0 
 src/views/productDetail/components/PayCard.vue                              |    4 
 src/components/wasmPlayer/index.vue                                         |    6 
 src/views/index/components/userCard.vue                                     |   12 
 src/router/index.js                                                         |   10 
 public/images/diy/3.png                                                     |    0 
 public/images/diy/1_open.png                                                |    0 
 public/images/diy/open.png                                                  |    0 
 src/views/equipmentManagement/equipmentDetail/components/FormArea.vue       |    4 
 src/views/login/components/loginForm.vue                                    |    3 
 src/views/hashrate/HashManage/components/EquipmentForm.vue                  |   43 +-
 src/views/equipmentManagement/index.vue                                     |   14 
 public/images/diy/4.png                                                     |    0 
 src/api/timeRule.ts                                                         |    8 
 public/images/diy/close.png                                                 |    0 
 public/images/diy/5.png                                                     |    0 
 public/images/diy/working.png                                               |    0 
 src/components/wasmPlayer/wasm/player.js                                    |  223 ++++++-------
 src/views/search/components/Flow.vue                                        |   68 ++++
 src/views/trialCenter/components/SdkItem.vue                                |    6 
 public/images/diy/6.png                                                     |    0 
 public/images/search/开通统计查询.png                                             |    0 
 public/images/diy/1_close.png                                               |    0 
 src/components/Price.vue                                                    |   27 +
 src/views/search/components/LeftNav.vue                                     |    6 
 src/views/search/components/giantTree/zTree/ztree.vue                       |    2 
 public/images/diy/unfold.png                                                |    0 
 src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue   |    9 
 src/views/search/components/Banner.vue                                      |   55 +++
 src/api/user.ts                                                             |    8 
 src/views/search/searchOpen.vue                                             |   50 +++
 public/images/diy/7.png                                                     |    0 
 src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue |   15 
 src/api/product.ts                                                          |    6 
 public/images/diy/fold.png                                                  |    0 
 public/images/diy/camera.png                                                |    0 
 public/images/search/数据实时监控.png                                             |    0 
 src/views/manageCenter/index.vue                                            |   27 +
 public/images/search/录像查看.png                                               |    0 
 src/views/hashrate/components/Banner.vue                                    |    8 
 public/libs/wasmPlayer/turbo.js                                             |  182 +++++-----
 public/images/diy/8.png                                                     |    0 
 56 files changed, 615 insertions(+), 319 deletions(-)

diff --git a/src/components/giantTree/zTree/img/diy/1_close.png b/public/images/diy/1_close.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/1_close.png
rename to public/images/diy/1_close.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/1_open.png b/public/images/diy/1_open.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/1_open.png
rename to public/images/diy/1_open.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/2.png b/public/images/diy/2.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/2.png
rename to public/images/diy/2.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/3.png b/public/images/diy/3.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/3.png
rename to public/images/diy/3.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/4.png b/public/images/diy/4.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/4.png
rename to public/images/diy/4.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/5.png b/public/images/diy/5.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/5.png
rename to public/images/diy/5.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/6.png b/public/images/diy/6.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/6.png
rename to public/images/diy/6.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/7.png b/public/images/diy/7.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/7.png
rename to public/images/diy/7.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/8.png b/public/images/diy/8.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/8.png
rename to public/images/diy/8.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/9.png b/public/images/diy/9.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/9.png
rename to public/images/diy/9.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/camera.png b/public/images/diy/camera.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/camera.png
rename to public/images/diy/camera.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/close.png b/public/images/diy/close.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/close.png
rename to public/images/diy/close.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/fold.png b/public/images/diy/fold.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/fold.png
rename to public/images/diy/fold.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/open.png b/public/images/diy/open.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/open.png
rename to public/images/diy/open.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/unfold.png b/public/images/diy/unfold.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/unfold.png
rename to public/images/diy/unfold.png
Binary files differ
diff --git a/src/components/giantTree/zTree/img/diy/working.png b/public/images/diy/working.png
similarity index 100%
rename from src/components/giantTree/zTree/img/diy/working.png
rename to public/images/diy/working.png
Binary files differ
diff --git "a/public/images/search/\345\274\200\351\200\232\347\273\237\350\256\241\346\237\245\350\257\242.png" "b/public/images/search/\345\274\200\351\200\232\347\273\237\350\256\241\346\237\245\350\257\242.png"
new file mode 100644
index 0000000..dd2e880
--- /dev/null
+++ "b/public/images/search/\345\274\200\351\200\232\347\273\237\350\256\241\346\237\245\350\257\242.png"
Binary files differ
diff --git "a/public/images/search/\345\275\225\345\203\217\346\237\245\347\234\213.png" "b/public/images/search/\345\275\225\345\203\217\346\237\245\347\234\213.png"
new file mode 100644
index 0000000..dc597c1
--- /dev/null
+++ "b/public/images/search/\345\275\225\345\203\217\346\237\245\347\234\213.png"
Binary files differ
diff --git "a/public/images/search/\346\225\260\346\215\256\345\256\236\346\227\266\347\233\221\346\216\247.png" "b/public/images/search/\346\225\260\346\215\256\345\256\236\346\227\266\347\233\221\346\216\247.png"
new file mode 100644
index 0000000..969996c
--- /dev/null
+++ "b/public/images/search/\346\225\260\346\215\256\345\256\236\346\227\266\347\233\221\346\216\247.png"
Binary files differ
diff --git "a/public/images/search/\346\225\260\346\215\256\346\237\245\347\234\213.png" "b/public/images/search/\346\225\260\346\215\256\346\237\245\347\234\213.png"
new file mode 100644
index 0000000..6c4607c
--- /dev/null
+++ "b/public/images/search/\346\225\260\346\215\256\346\237\245\347\234\213.png"
Binary files differ
diff --git a/public/libs/wasmPlayer/turbo.js b/public/libs/wasmPlayer/turbo.js
index e4ce4b4..7ba1df1 100644
--- a/public/libs/wasmPlayer/turbo.js
+++ b/public/libs/wasmPlayer/turbo.js
@@ -1,78 +1,78 @@
 Module = {
   onRuntimeInitialized: function() {
-    onWasmLoaded()
+    onWasmLoaded();
   },
-}
-importScripts('libffmpeg.js')
+};
+importScripts("libffmpeg.js");
 
-var MediaName = null
-var IsStream = true
-var FileLen = -1
+var MediaName = null;
+var IsStream = true;
+var FileLen = -1;
 
-var SocketObj //WebSocket
-var CPointer_Buffer = null
-var CPointer_Cap = 0
+var SocketObj; //WebSocket
+var CPointer_Buffer = null;
+var CPointer_Cap = 0;
 
 function onWasmLoaded() {
   DeliverVideo = Module.addFunction(function(Buf, BufLen, TimeStamp) {
-    var CPointer_Array = Module.HEAPU8.subarray(Buf, Buf + BufLen)
+    var CPointer_Array = Module.HEAPU8.subarray(Buf, Buf + BufLen);
     var message = {
-      command: 'deliver_video',
+      command: "deliver_video",
       sample: { time_stamp: TimeStamp, buf: new Uint8Array(CPointer_Array) },
-    }
-    self.postMessage(message, [message.sample.buf.buffer])
-  }, 'viii')
+    };
+    self.postMessage(message, [message.sample.buf.buffer]);
+  }, "viii");
 
   DeliverAudio = Module.addFunction(function(Buf, BufLen, TimeStamp) {
-    var CPointer_Array = Module.HEAPU8.subarray(Buf, Buf + BufLen)
+    var CPointer_Array = Module.HEAPU8.subarray(Buf, Buf + BufLen);
     var message = {
-      command: 'deliver_audio',
+      command: "deliver_audio",
       sample: { time_stamp: TimeStamp, buf: new Uint8Array(CPointer_Array) },
-    }
-    self.postMessage(message, [message.sample.buf.buffer])
-  }, 'viii')
+    };
+    self.postMessage(message, [message.sample.buf.buffer]);
+  }, "viii");
 
   GetFileLength = Module.addFunction(function() {
     if (FileLen == -1) {
-      var xhr = new XMLHttpRequest()
-      xhr.open('get', MediaName, false) //false: syn mode
-      xhr.send()
-      FileLen = xhr.getResponseHeader('Content-Length')
-      xhr.abort()
+      var xhr = new XMLHttpRequest();
+      xhr.open("get", MediaName, false); //false: syn mode
+      xhr.send();
+      FileLen = xhr.getResponseHeader("Content-Length");
+      xhr.abort();
     }
-    return FileLen
-  }, 'i')
+    return FileLen;
+  }, "i");
 
   ReadFile = Module.addFunction(function(Buf, Pos, Size) {
-    var xhr = new XMLHttpRequest()
-    xhr.open('get', MediaName, false)
-    xhr.responseType = 'arraybuffer'
-    xhr.setRequestHeader('Range', 'bytes=' + Pos + '-' + (Pos + Size - 1))
-    xhr.send()
-    Module.HEAPU8.set(new Uint8Array(xhr.response), Buf) //Uint8Array(xhr.response).length
-    xhr.abort()
-  }, 'viii')
+    var xhr = new XMLHttpRequest();
+    xhr.open("get", MediaName, false);
+    xhr.responseType = "arraybuffer";
+    xhr.setRequestHeader("Range", "bytes=" + Pos + "-" + (Pos + Size - 1));
+    xhr.send();
+    Module.HEAPU8.set(new Uint8Array(xhr.response), Buf); //Uint8Array(xhr.response).length
+    xhr.abort();
+  }, "viii");
 
   CreateVideo = Module.addFunction(function(Duration, Width, Height) {
     self.postMessage({
-      command: 'create_video',
+      command: "create_video",
       param: { duration: Duration, width: Width, height: Height },
-    })
-  }, 'viii')
+    });
+  }, "viii");
 
   CreateAudio = Module.addFunction(function(Channel, SampleRate) {
     self.postMessage({
-      command: 'create_audio',
+      command: "create_audio",
       param: { channel: Channel, sample_rate: SampleRate },
-    })
-  }, 'vii')
+    });
+  }, "vii");
 
   Notify = Module.addFunction(function(Type, Value) {
     //type 1:鎾斁澶辫触 2:鏂囦欢鎾斁鍒版湯灏�
     //console.log(Type+" "+Value);
-    if (Type == 1) self.postMessage({ command: 'play_failed' })
-    else if (Type == 2) self.postMessage({ command: 'play_end' })
-  }, 'vii')
+    if (Type == 1) self.postMessage({ command: "play_failed" });
+    else if (Type == 2) self.postMessage({ command: "play_end" });
+  }, "vii");
 
   Module._Initialize(
     DeliverVideo,
@@ -82,87 +82,87 @@
     CreateVideo,
     CreateAudio,
     Notify
-  )
+  );
 
-  self.postMessage({ command: 'initialized' })
+  self.postMessage({ command: "initialized" });
 }
 
 function OnTimer() {
-  Module._Turbo0(null, 0)
+  Module._Turbo0(null, 0);
 }
 
 function requestWebsocket(url, msg, cb_message) {
-  SocketObj = new WebSocket(url)
-  SocketObj.binaryType = 'arraybuffer'
+  SocketObj = new WebSocket(url);
+  SocketObj.binaryType = "arraybuffer";
   SocketObj.onopen = function(evt) {
-    SocketObj.send(msg)
-  }
+    SocketObj.send(msg);
+  };
   SocketObj.onerror = function(evt) {
-    console.log('Ws connect error ' + evt.data)
-  }
-  SocketObj.onmessage = cb_message
+    console.log("Ws connect error " + evt.data);
+  };
+  SocketObj.onmessage = cb_message;
   SocketObj.onclose = function() {
-    console.log('Ws closed.')
-  }
+    console.log("Ws closed.");
+  };
 }
 
 function downloadFileByWebsocket(ws, payload) {
   this.requestWebsocket(ws, payload, function(evt) {
     if (evt.data.byteLength > CPointer_Cap) {
-      if (CPointer_Buffer != null) Module._free(CPointer_Buffer)
-      CPointer_Cap = evt.data.byteLength
-      CPointer_Buffer = Module._malloc(CPointer_Cap)
+      if (CPointer_Buffer != null) Module._free(CPointer_Buffer);
+      CPointer_Cap = evt.data.byteLength;
+      CPointer_Buffer = Module._malloc(CPointer_Cap);
     }
 
-    var typedArray = new Uint8Array(evt.data)
-    Module.HEAPU8.set(typedArray, CPointer_Buffer)
+    var typedArray = new Uint8Array(evt.data);
+    Module.HEAPU8.set(typedArray, CPointer_Buffer);
     //console.log("websocket data: "+typedArray.length);
-    Module._Turbo0(CPointer_Buffer, typedArray.length)
-  })
+    Module._Turbo0(CPointer_Buffer, typedArray.length);
+  });
 }
 
 self.onmessage = function(evt) {
   switch (evt.data.command) {
-    case 'play': {
-      MediaName = evt.data.media_name
-      IsStream = evt.data.other
+    case "play": {
+      MediaName = evt.data.media_name;
+      IsStream = evt.data.other;
       if (IsStream) {
-        downloadFileByWebsocket(MediaName, evt.data.payload)
+        downloadFileByWebsocket(MediaName, evt.data.payload);
       }
 
-      Module._Play(null, !IsStream)
-      TimerID = setInterval(OnTimer, 5) //姝ゅ�艰秺灏�,娓叉煋绮惧害瓒婇珮,涓斿彲澧炲己'鍙岀嚎绋嬬紦鍐插钩婊戞満鍒�'鍙潬鎬�
-      break
+      Module._Play(null, !IsStream);
+      TimerID = setInterval(OnTimer, 5); //姝ゅ�艰秺灏�,娓叉煋绮惧害瓒婇珮,涓斿彲澧炲己'鍙岀嚎绋嬬紦鍐插钩婊戞満鍒�'鍙潬鎬�
+      break;
     }
-    case 'pause': {
-      Module._Pause()
-      clearInterval(TimerID)
-      break
+    case "pause": {
+      Module._Pause();
+      clearInterval(TimerID);
+      break;
     }
-    case 'resume': {
-      Module._Resume()
-      TimerID = setInterval(OnTimer, 5)
-      break
+    case "resume": {
+      Module._Resume();
+      TimerID = setInterval(OnTimer, 5);
+      break;
     }
-    case 'stop': {
-      Module._Stop()
-      clearInterval(TimerID)
+    case "stop": {
+      Module._Stop();
+      clearInterval(TimerID);
       if (IsStream) {
-        SocketObj.close()
+        SocketObj.close();
         if (CPointer_Buffer != null) {
-          Module._free(CPointer_Buffer)
-          CPointer_Buffer = null
-          CPointer_Cap = 0
+          Module._free(CPointer_Buffer);
+          CPointer_Buffer = null;
+          CPointer_Cap = 0;
         }
       }
-      close() //exit worker
-      break
+      close(); //exit worker
+      break;
     }
-    case 'seek': {
-      Module._Seek(evt.data.pos)
-      break
+    case "seek": {
+      Module._Seek(evt.data.pos);
+      break;
     }
     default:
-      return
+      return;
   }
-}
+};
diff --git a/src/Pool/PollData.ts b/src/Pool/PollData.ts
index da79eb0..1a50fc4 100644
--- a/src/Pool/PollData.ts
+++ b/src/Pool/PollData.ts
@@ -159,7 +159,9 @@
       res  = await clusterSysInfo({});
     }
     else {
-      res  = await devicesSysInfo({});
+      res  = await devicesSysInfo({
+        deviceId:[sessionStorage.getItem('devId')],
+      });
     }
     if (res && res.success ) {
       this.CpuUsedPercent =res.data.cpu.usedPercent.toFixed(2)
@@ -178,7 +180,10 @@
       res  = await clusterStatisticRunInfo({});
     }
     else {
-      res  = await deviceStatisticRunInfo({});
+      res  = await deviceStatisticRunInfo({
+        deviceId:[sessionStorage.getItem('devId')],
+        userId:''
+      });
     }
    
     if (res && res.success) {
diff --git a/src/api/product.ts b/src/api/product.ts
index bf26038..d605cad 100644
--- a/src/api/product.ts
+++ b/src/api/product.ts
@@ -264,7 +264,7 @@
 //鑾峰彇杞挱鍥�
 export const getIndexPics = () => {
     return request({
-        url: `/saas/api-i/saasIndex/getIndexPics`,
+        url: `/cloud/api-i/saasIndex/getIndexPics`,
         method: 'get',
     })
 }
@@ -281,7 +281,7 @@
 //鑾峰彇鎺ㄨ崘绠楁硶
 export const getIndexModelRecommend = (data: any) => {
     return request({
-        url: `/saas/api-i/saasIndex/getIndexModelRecommend`,
+        url: `/cloud/api-i/saasIndex/getIndexModelRecommend`,
         method: 'post',
         data,
     })
@@ -290,7 +290,7 @@
 //鑾峰彇棣栭〉妯″潡
 export const getModelList = () => {
     return request({
-        url: `/saas/api-i/saasIndex/getModelList`,
+        url: `/cloud/api-i/saasIndex/getModelList`,
         method: 'get',
     })
 }
diff --git a/src/api/timeRule.ts b/src/api/timeRule.ts
index ef5da6d..87798f7 100644
--- a/src/api/timeRule.ts
+++ b/src/api/timeRule.ts
@@ -9,15 +9,15 @@
 
 export const deleteTimeRule = (query: any) => {
   return request({
-    url: "/data/api-v/cameraTimerule/delete",
-    method: "get",
-    params: query
+    url: "/saas/api-s/cameraTimerule/delete",
+    method: "delete",
+    data: query
   });
 };
 
 export const saveTimeRule = (params: any) => {
   return request({
-    url: "/data/api-v/cameraTimerule/save",
+    url: "/saas/api-s/cameraTimerule/save",
     method: "post",
     data: params
   });
diff --git a/src/api/user.ts b/src/api/user.ts
index ced0a13..c187723 100644
--- a/src/api/user.ts
+++ b/src/api/user.ts
@@ -100,3 +100,11 @@
     data: params
   });
 };
+
+export const enableMenu = (params: any) => {
+  return request({
+    url: "/saas/api-u/menu/enableMenu",
+    method: "post",
+    data: params
+  });
+};
diff --git a/src/components/Price.vue b/src/components/Price.vue
index 9d641b5..5078dc4 100644
--- a/src/components/Price.vue
+++ b/src/components/Price.vue
@@ -1,6 +1,6 @@
 
 <template>
-  <div class="Price" v-if="priceNew">
+  <div class="Price">
     锟�<span class="newPrice">{{ priceN1 }}</span
     >{{ priceN2 }}/骞�
     <span class="iconSave" v-if="showIcon">鐪�</span>
@@ -11,7 +11,9 @@
 <script>
 export default {
   props: {
-    priceNew: {},
+    priceNew: {
+      default: 0,
+    },
     showIcon: {
       default: false,
     },
@@ -42,6 +44,27 @@
       this.priceO2 = ".00";
     }
   },
+
+  watch: {
+    priceNew() {
+      const priceO = (this.priceNew * 1.2 + "").split(".");
+      const priceN = (this.priceNew + "").split(".");
+      if (priceN.length > 1) {
+        this.priceN1 = priceN[0];
+        this.priceN2 = "." + priceN[1];
+      } else {
+        this.priceN1 = priceN[0];
+        this.priceN2 = ".00";
+      }
+      if (priceO.length > 1) {
+        this.priceO1 = priceO[0];
+        this.priceO2 = "." + priceO[1];
+      } else {
+        this.priceO1 = priceO[0];
+        this.priceO2 = ".00";
+      }
+    },
+  },
 };
 </script>
 
diff --git a/src/components/giantTree/zTree/ztree.vue b/src/components/giantTree/zTree/ztree.vue
index 88db186..c66a40c 100644
--- a/src/components/giantTree/zTree/ztree.vue
+++ b/src/components/giantTree/zTree/ztree.vue
@@ -411,7 +411,7 @@
   padding: 0 0 0 18px;
 }
 .ztree li ul.line {
-  /* background: url(./img/line_conn.gif) 0 0 repeat-y; */
+  /* background: url(/images/line_conn.gif) 0 0 repeat-y; */
   background: url(data:image/gif;base64,R0lGODlhCQACAIAAAMzMzP///yH5BAEAAAEALAAAAAAJAAIAAAIEjI9pUAA7)
     0 0 repeat-y;
 }
@@ -502,8 +502,8 @@
   background-color: transparent;
   background-repeat: no-repeat;
   background-attachment: scroll;
-  /* background-image: url("./img/zTreeStandard.png"); */
-  /* *background-image: url("./img/zTreeStandard.gif"); */
+  /* background-image: url("/images/zTreeStandard.png"); */
+  /* *background-image: url("/images/zTreeStandard.gif"); */
 
   background-image: url(data:image/png;base64,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);
   *background-image: url(data:image/gif;base64,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);
@@ -581,57 +581,57 @@
   height: 18px;
 }
 .ztree li span.button.root_open {
-  background-image: url("./img/diy/unfold.png");
+  background-image: url("/images/diy/unfold.png");
   background-position: center 5px;
 
   margin-right: 8px;
 }
 .ztree li span.button.root_close {
-  background-image: url("./img/diy/fold.png");
+  background-image: url("/images/diy/fold.png");
   background-position: center 5px;
   margin-right: 8px;
 }
 .ztree li span.button.roots_open {
-  background-image: url("./img/diy/unfold.png");
+  background-image: url("/images/diy/unfold.png");
   background-position: center 5px;
 
   margin-right: 8px;
 }
 .ztree li span.button.roots_close {
-  background-image: url("./img/diy/fold.png");
+  background-image: url("/images/diy/fold.png");
   background-position: center 5px;
   margin-right: 8px;
 }
 .ztree li span.button.center_open {
-  background-image: url("./img/diy/unfold.png");
+  background-image: url("/images/diy/unfold.png");
   background-position: center 5px;
 
   margin-right: 8px;
 }
 .ztree li span.button.center_close {
-  background-image: url("./img/diy/fold.png");
+  background-image: url("/images/diy/fold.png");
   background-position: center 5px;
   margin-right: 8px;
 }
 .ztree li span.button.bottom_open {
-  background-image: url("./img/diy/unfold.png");
+  background-image: url("/images/diy/unfold.png");
   background-position: center 5px;
 
   margin-right: 8px;
 }
 .ztree li span.button.bottom_close {
-  background-image: url("./img/diy/fold.png");
+  background-image: url("/images/diy/fold.png");
   background-position: center 5px;
   margin-right: 8px;
 }
 .ztree li span.button.noline_open {
-  background-image: url("./img/diy/unfold.png");
+  background-image: url("/images/diy/unfold.png");
   background-position: center 5px;
 
   margin-right: 8px;
 }
 .ztree li span.button.noline_close {
-  background-image: url("./img/diy/fold.png");
+  background-image: url("/images/diy/fold.png");
   background-position: center 5px;
   margin-right: 8px;
 }
@@ -655,11 +655,11 @@
   margin-right: 2px;
   vertical-align: top;
   *vertical-align: middle;
-  background-image: url("./img/diy/open.png");
+  background-image: url("/images/diy/open.png");
 }
 .ztree li span.button.ico_close {
   margin-right: 2px;
-  background-image: url("./img/diy/close.png");
+  background-image: url("/images/diy/close.png");
   vertical-align: top;
   *vertical-align: middle;
 }
@@ -684,7 +684,7 @@
 
 .ztree li span.button.ico_loading {
   margin-right: 2px;
-  /* background: url(./img/loading.gif) no-repeat scroll 0 0 transparent; */
+  /* background: url(/images/loading.gif) no-repeat scroll 0 0 transparent; */
   background: url(data:image/gif;base64,R0lGODlhEAAQAKIGAMLY8YSx5HOm4Mjc88/g9Ofw+v///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFCgAGACwAAAAAEAAQAAADMGi6RbUwGjKIXCAA016PgRBElAVlG/RdLOO0X9nK61W39qvqiwz5Ls/rRqrggsdkAgAh+QQFCgAGACwCAAAABwAFAAADD2hqELAmiFBIYY4MAutdCQAh+QQFCgAGACwGAAAABwAFAAADD1hU1kaDOKMYCGAGEeYFCQAh+QQFCgAGACwKAAIABQAHAAADEFhUZjSkKdZqBQG0IELDQAIAIfkEBQoABgAsCgAGAAUABwAAAxBoVlRKgyjmlAIBqCDCzUoCACH5BAUKAAYALAYACgAHAAUAAAMPaGpFtYYMAgJgLogA610JACH5BAUKAAYALAIACgAHAAUAAAMPCAHWFiI4o1ghZZJB5i0JACH5BAUKAAYALAAABgAFAAcAAAMQCAFmIaEp1motpDQySMNFAgA7)
     no-repeat scroll 0 0 transparent;
   vertical-align: top;
@@ -709,8 +709,8 @@
   background-repeat: no-repeat;
   background-attachment: scroll;
   background-position: -110px -80px;
-  /* background-image: url("./img/zTreeStandard.png"); */
-  /* *background-image: url("./img/zTreeStandard.gif"); */
+  /* background-image: url("/images/zTreeStandard.png"); */
+  /* *background-image: url("/images/zTreeStandard.gif"); */
   background-image: url(data:image/png;base64,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);
   *background-image: url(data:image/gif;base64,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);
 }
diff --git a/src/components/wasmPlayer/index.vue b/src/components/wasmPlayer/index.vue
index f5de5c1..9f43bdf 100644
--- a/src/components/wasmPlayer/index.vue
+++ b/src/components/wasmPlayer/index.vue
@@ -460,6 +460,12 @@
 
       this.videoLoading = true;
       if (this.player.hPlayer == 0) {
+        console.log(url);
+        console.log(this.$refs.playCanvas);
+        console.log(this.isStream);
+        console.log(this.$refs.timeTrack);
+        console.log(this.$refs.timeLabel);
+        console.log(payload);
         this.player.play(
           url,
           this.$refs.playCanvas,
diff --git a/src/components/wasmPlayer/wasm/player.js b/src/components/wasmPlayer/wasm/player.js
index 307117f..71c7aac 100644
--- a/src/components/wasmPlayer/wasm/player.js
+++ b/src/components/wasmPlayer/wasm/player.js
@@ -1,27 +1,27 @@
-import { PCMPlayer } from './pcm-player'
-import { WebGLPlayer } from './webgl'
+import { PCMPlayer } from "./pcm-player";
+import { WebGLPlayer } from "./webgl";
 
 export function Player() {
-  this.hPlayer = 0
-  this.PlayOrPause = 0
-  this.MediaName = null
-  this.isStream = false
-  this.canvas = null
-  this.timeLabel = null
-  this.timeTrack = null
-  this.CurPos = 0
-  this.displayDuration = '00:00:00'
+  this.hPlayer = 0;
+  this.PlayOrPause = 0;
+  this.MediaName = null;
+  this.isStream = false;
+  this.canvas = null;
+  this.timeLabel = null;
+  this.timeTrack = null;
+  this.CurPos = 0;
+  this.displayDuration = "00:00:00";
 
-  this.pcmPlayer = null
-  this.webglPlayer = null
+  this.pcmPlayer = null;
+  this.webglPlayer = null;
 
-  this.trackTimer = null
-  this.loop = false
-  this.preload = true
-  this.preloadFlag = 0
+  this.trackTimer = null;
+  this.loop = false;
+  this.preload = true;
+  this.preloadFlag = 0;
   this.statusCallback = (stat) => {
-    console.log(stat)
-  }
+    console.log(stat);
+  };
 }
 
 Player.prototype.play = function(
@@ -32,181 +32,180 @@
   timeLabel,
   payload
 ) {
-  if (this.hPlayer != 0) return
+  if (this.hPlayer != 0) return;
 
-  this.MediaName = url
+  this.MediaName = url;
 
-  this.isStream = isStream
+  this.isStream = isStream;
 
-  this.canvas = canvas //hWnd
+  this.canvas = canvas; //hWnd
 
-  this.timeTrack = timeTrack
-  this.timeLabel = timeLabel
+  this.timeTrack = timeTrack;
+  this.timeLabel = timeLabel;
 
-  var This = this
+  var This = this;
   this.timeTrack.oninput = function() {
-    This.seek(This.timeTrack.value)
-  }
+    This.seek(This.timeTrack.value);
+  };
 
-  this.TurboWorker = new Worker('/libs/wasmPlayer/turbo.js')
-  this.hPlayer = 1
-  this.PlayOrPause = 1
+  this.TurboWorker = new Worker("/libs/wasmPlayer/turbo.js");
+  this.hPlayer = 1;
+  this.PlayOrPause = 1;
 
   this.TurboWorker.onmessage = function(evt) {
     switch (evt.data.command) {
-      case 'initialized': {
+      case "initialized": {
         This.TurboWorker.postMessage({
-          command: 'play',
+          command: "play",
           media_name: url,
           other: isStream,
           payload: payload,
-        })
-        break
+        });
+        break;
       }
-      case 'create_video': {
-        This.VideoParam = evt.data.param //{duration:xxx,width:xxx,height:xxx}
-        This.webglPlayer = new WebGLPlayer(This.canvas)
+      case "create_video": {
+        This.VideoParam = evt.data.param; //{duration:xxx,width:xxx,height:xxx}
+        This.webglPlayer = new WebGLPlayer(This.canvas);
         if (This.timeTrack) {
-          This.timeTrack.min = 0
-          This.timeTrack.max = This.VideoParam.duration
-          This.timeTrack.value = 0
+          This.timeTrack.min = 0;
+          This.timeTrack.max = This.VideoParam.duration;
+          This.timeTrack.value = 0;
           This.displayDuration = This.formatTime(
             This.VideoParam.duration / 1000
-          )
+          );
         }
-        This.startTrackTimer()
+        This.startTrackTimer();
 
-        This.statusCallback(0)
-        break
+        This.statusCallback(0);
+        break;
       }
-      case 'create_audio': {
-        This.AudioParam = evt.data.param //{channel:Channel,sample_rate:SampleRate}
+      case "create_audio": {
+        This.AudioParam = evt.data.param; //{channel:Channel,sample_rate:SampleRate}
         This.pcmPlayer = new PCMPlayer({
-          encoding: '16bitInt',
+          encoding: "16bitInt",
           channels: This.AudioParam.channel,
           sampleRate: This.AudioParam.sample_rate,
           flushingTime: 5000,
-        })
+        });
 
-        This.statusCallback(1)
-        break
+        This.statusCallback(1);
+        break;
       }
-      case 'deliver_video': {
+      case "deliver_video": {
         if (!This.isStream && This.preload && This.preloadFlag == 0) {
-          This.preloadFlag = 1
-          This.pause()
-          This.statusCallback(0)
+          This.preloadFlag = 1;
+          This.pause();
+          This.statusCallback(0);
         }
 
         //sample:{time_stamp:xxx,data:xxx}
-        This.CurPos = evt.data.sample.time_stamp
+        This.CurPos = evt.data.sample.time_stamp;
         This.webglPlayer.renderFrame(
           evt.data.sample.buf,
           This.VideoParam.width,
           This.VideoParam.height
-        )
-        break
+        );
+        break;
       }
-      case 'deliver_audio': {
+      case "deliver_audio": {
         //sample:{time_stamp:xxx,data:xxx}
-        This.pcmPlayer.play(evt.data.sample.buf)
-        break
+        This.pcmPlayer.play(evt.data.sample.buf);
+        break;
       }
-      case 'play_failed': {
-        This.statusCallback(-1)
-        This.stop()
-        break
+      case "play_failed": {
+        This.statusCallback(-1);
+        This.stop();
+        break;
       }
-      case 'play_end': {
+      case "play_end": {
         if (This.loop) {
-          This.seek(0)
+          This.seek(0);
         }
-        break
+        break;
       }
 
       default:
-        return
+        return;
     }
-  }
-}
+  };
+};
 
 Player.prototype.pause = function() {
-  if (this.hPlayer == 0 || this.PlayOrPause == 0) return
-  this.PlayOrPause = 0
-  this.TurboWorker.postMessage({ command: 'pause' })
-}
+  if (this.hPlayer == 0 || this.PlayOrPause == 0) return;
+  this.PlayOrPause = 0;
+  this.TurboWorker.postMessage({ command: "pause" });
+};
 
 Player.prototype.resume = function() {
-  if (this.hPlayer == 0 || this.PlayOrPause == 1) return
-  this.PlayOrPause = 1
-  this.TurboWorker.postMessage({ command: 'resume' })
-}
+  if (this.hPlayer == 0 || this.PlayOrPause == 1) return;
+  this.PlayOrPause = 1;
+  this.TurboWorker.postMessage({ command: "resume" });
+};
 
 Player.prototype.stop = function() {
-  if (this.hPlayer == 0) return
-  this.hPlayer = 0
-  this.TurboWorker.postMessage({ command: 'stop' })
-  this.stopTrackTimer()
+  if (this.hPlayer == 0) return;
+  this.hPlayer = 0;
+  this.TurboWorker.postMessage({ command: "stop" });
+  this.stopTrackTimer();
   if (this.pcmPlayer) {
-    this.pcmPlayer.destroy()
-    this.pcmPlayer = null
+    this.pcmPlayer.destroy();
+    this.pcmPlayer = null;
   }
   //webglPlayer?
-}
+};
 
 Player.prototype.seek = function(ms) {
-  if (this.hPlayer == 0) return
-  this.TurboWorker.postMessage({ command: 'seek', pos: ms })
+  if (this.hPlayer == 0) return;
+  this.TurboWorker.postMessage({ command: "seek", pos: ms });
 
   if (this.pcmPlayer != null) {
-    this.pcmPlayer.destroy()
+    this.pcmPlayer.destroy();
     this.pcmPlayer = new PCMPlayer({
-      encoding: '16bitInt',
+      encoding: "16bitInt",
       channels: this.AudioParam.channel,
       sampleRate: this.AudioParam.sample_rate,
       flushingTime: 5000,
-    })
+    });
   }
-}
+};
 
 Player.prototype.fullscreen = function() {
-  if (this.webglPlayer) this.webglPlayer.fullscreen()
-}
+  if (this.webglPlayer) this.webglPlayer.fullscreen();
+};
 
 Player.prototype.exitfullscreen = function() {
-  if (this.webglPlayer) this.webglPlayer.exitfullscreen()
-}
-
+  if (this.webglPlayer) this.webglPlayer.exitfullscreen();
+};
 
 Player.prototype.startTrackTimer = function() {
-  var This = this
+  var This = this;
   this.trackTimer = setInterval(function() {
-    if (This.timeTrack) This.timeTrack.value = This.CurPos
+    if (This.timeTrack) This.timeTrack.value = This.CurPos;
 
     if (This.timeLabel)
       This.timeLabel.innerHTML =
-        This.formatTime(This.CurPos / 1000) + '/' + This.displayDuration
-  }, 500)
-}
+        This.formatTime(This.CurPos / 1000) + "/" + This.displayDuration;
+  }, 500);
+};
 
 Player.prototype.stopTrackTimer = function() {
   if (this.trackTimer != null) {
-    clearInterval(this.trackTimer)
-    this.trackTimer = null
+    clearInterval(this.trackTimer);
+    this.trackTimer = null;
   }
-}
+};
 
 Player.prototype.formatTime = function(s) {
   var h =
     Math.floor(s / 3600) < 10
-      ? '0' + Math.floor(s / 3600)
-      : Math.floor(s / 3600)
+      ? "0" + Math.floor(s / 3600)
+      : Math.floor(s / 3600);
   var m =
     Math.floor((s / 60) % 60) < 10
-      ? '0' + Math.floor((s / 60) % 60)
-      : Math.floor((s / 60) % 60)
+      ? "0" + Math.floor((s / 60) % 60)
+      : Math.floor((s / 60) % 60);
   var s =
-    Math.floor(s % 60) < 10 ? '0' + Math.floor(s % 60) : Math.floor(s % 60)
+    Math.floor(s % 60) < 10 ? "0" + Math.floor(s % 60) : Math.floor(s % 60);
 
-  return h + ':' + m + ':' + s
-}
+  return h + ":" + m + ":" + s;
+};
diff --git a/src/router/index.js b/src/router/index.js
index 989b613..05fb9d6 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -45,9 +45,7 @@
     path: "/personalCenter",
     name: "personalCenter",
     component: () =>
-      import(
-        /* webpackChunkName: "about" */ "../views/personalCenter"
-      ),
+      import(/* webpackChunkName: "about" */ "../views/personalCenter"),
   },
   {
     path: "/equipmentDetail",
@@ -71,6 +69,12 @@
     component: () => import(/* webpackChunkName: "about" */ "../views/search"),
   },
   {
+    path: "/searchOpen",
+    name: "searchOpen",
+    component: () =>
+      import(/* webpackChunkName: "about" */ "../views/search/searchOpen"),
+  },
+  {
     path: "/product",
     name: "product",
     component: () => import(/* webpackChunkName: "about" */ "../views/product"),
diff --git a/src/views/equipmentManagement/components/Banner.vue b/src/views/equipmentManagement/components/Banner.vue
index 0cd4200..2627dbf 100644
--- a/src/views/equipmentManagement/components/Banner.vue
+++ b/src/views/equipmentManagement/components/Banner.vue
@@ -11,9 +11,15 @@
 </template>
 
 <script>
+import { enableMenu } from "@/api/user";
+
 export default {
   methods: {
-    jump() {
+    async jump() {
+      await enableMenu({
+        userId: JSON.parse(sessionStorage.getItem("userInfo")).id,
+        menuId: "deviceMng",
+      });
       this.$router.push("/equipmentList");
     },
   },
diff --git a/src/views/equipmentManagement/equipmentDetail/components/FormArea.vue b/src/views/equipmentManagement/equipmentDetail/components/FormArea.vue
index e89f41a..a973aea 100644
--- a/src/views/equipmentManagement/equipmentDetail/components/FormArea.vue
+++ b/src/views/equipmentManagement/equipmentDetail/components/FormArea.vue
@@ -4,7 +4,7 @@
     <div class="formAlgorithm">
       <div class="formHead">
         绠楁硶鍗曞厓<span class="des"
-          >姝e湪杩涜{{ data.algos.length }}涓畻娉曞崟鍏�</span
+          >姝e湪杩涜{{ data.algos && data.algos.length }}涓畻娉曞崟鍏�</span
         >
       </div>
       <el-table :data="data.algos" stripe style="width: 100%">
@@ -38,7 +38,7 @@
     <div class="formApplication">
       <div class="formHead">
         搴旂敤鍗曞厓<span class="des"
-          >姝e湪杩涜{{ data.apps.length }}涓簲鐢ㄥ崟鍏�</span
+          >姝e湪杩涜{{ data.algos && data.apps.length }}涓簲鐢ㄥ崟鍏�</span
         >
       </div>
       <el-table :data="data.apps" stripe style="width: 100%">
diff --git a/src/views/equipmentManagement/equipmentList/components/FormList.vue b/src/views/equipmentManagement/equipmentList/components/FormList.vue
index 2185910..01bd855 100644
--- a/src/views/equipmentManagement/equipmentList/components/FormList.vue
+++ b/src/views/equipmentManagement/equipmentList/components/FormList.vue
@@ -260,15 +260,15 @@
       let param = {
         page: this.page,
         size: this.size,
-        // startTime: this.searchTime[0],
-        // endTime: this.searchTime[1],
+        startTime: this.searchTime[0],
+        endTime: this.searchTime[1],
+        clusterId: this.cluster,
         inputText: this.inputText,
       };
       findDevList(param)
         .then((res) => {
           this.dataList = res.data.list;
           //鏃堕棿鍒嗚鏄剧ず
-
           this.dataList.forEach((item) => {
             item.installTime = item.installTime.split(" ");
             item.firstUseTime = item.firstUseTime.split(" ");
diff --git a/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue b/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue
index 90bd0e4..a417afa 100644
--- a/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue
+++ b/src/views/equipmentManagement/equipmentList/components/JoinClusterBox.vue
@@ -97,14 +97,6 @@
         <div class="search" @click="searchCluster">鎼滅储闆嗙兢</div>
       </el-form-item>
 
-      <el-form-item prop="ip" label="闆嗙兢IP">
-        <ip-input
-          :ip="formData2.virtualIp"
-          :on-blur="onClusterIpBlur"
-          class="ip-input-comp"
-        ></ip-input>
-      </el-form-item>
-
       <div class="clusterList" v-if="showClusterList">
         <div
           class="clusterItem"
@@ -242,7 +234,6 @@
       let res = await joinCluster({
         clusterId: this.formData2.clusterId,
         password: this.formData2.password,
-        virtualIp: this.formData2.virtualIp,
         nodeIps: [this.formData2.nodeIps],
         nodeId: this.equipment.devId,
       });
diff --git a/src/views/equipmentManagement/index.vue b/src/views/equipmentManagement/index.vue
index dc9469b..dd75b8c 100644
--- a/src/views/equipmentManagement/index.vue
+++ b/src/views/equipmentManagement/index.vue
@@ -19,6 +19,20 @@
     Flow,
     Footer,
   },
+  created() {
+    this.checkpermission();
+  },
+  methods: {
+    checkpermission() {
+      const userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+      const val = userInfo.permissions.find((item) => {
+        return item == "deviceMng";
+      });
+      if (val) {
+        this.$router.push("/equipmentList");
+      }
+    },
+  },
 };
 </script>
 
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue
index 74bf857..7990282 100644
--- a/src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue
+++ b/src/views/hashrate/CameraManage/CameraRules/components/LinkageCameraBox.vue
@@ -16,7 +16,7 @@
         </div>
 
         <div class="body">
-          <div class="row">
+          <div class="row" v-if="camera.analytics">
             <div class="label">澶勭悊鏂瑰紡:</div>
             <div
               class="button pollingBtn"
@@ -120,19 +120,21 @@
 
     //瀹炴椂銆佽疆璇㈠垏鎹�
     changePoll(row, index) {
-      if (!this.cameraArr[index].analytics) {
-        return;
-      }
-
       //鍒ゆ柇鏄柊澧炶繕鏄洿鏂�
+      console.log(this.cameraArr[index]);
+
       if (
         this.cameraArr[index].cameraId &&
         this.cameraArr[index].cameraId !== undefined
       ) {
+        console.log(1);
         if (this.PollData.RealTimeSum < this.PollData.channelTotal) {
           if (row) {
+            console.log(2);
             this.cameraArr[index].dealWay = true;
           } else {
+            console.log(3);
+
             this.cameraArr[index].dealWay = false;
           }
           changeRunType({
@@ -188,9 +190,10 @@
         const rsp = await getCameraInfo(id);
         if (rsp.success) {
           this.cameraArr.push({
+            cameraId: rsp.data.id,
             cameraName: rsp.data.name ? rsp.data.name : "",
             analytics: rsp.data.runType !== -1 ? true : false,
-            dealWay: rsp.data.runType !== 1 ? true : false,
+            dealWay: rsp.data.runType == 1 ? true : false,
             camearInfo: {
               resolutionWidth: rsp.data.resolutionWidth,
               resolutionHeight: rsp.data.resolutionHeight,
diff --git a/src/views/hashrate/CameraManage/index.vue b/src/views/hashrate/CameraManage/index.vue
index 9fba6ac..8e4bb27 100644
--- a/src/views/hashrate/CameraManage/index.vue
+++ b/src/views/hashrate/CameraManage/index.vue
@@ -135,6 +135,8 @@
   beforeDestroy() {
     clearInterval(this.intervalTimer);
     //this.TreeDataPool.treeActiveName = "camera";
+    sessionStorage.removeItem("devId");
+    sessionStorage.removeItem("clusterId");
   },
   mounted() {
     this.$nextTick(() => {
diff --git a/src/views/hashrate/HashManage/components/EquipmentForm.vue b/src/views/hashrate/HashManage/components/EquipmentForm.vue
index 5522d29..bbf7174 100644
--- a/src/views/hashrate/HashManage/components/EquipmentForm.vue
+++ b/src/views/hashrate/HashManage/components/EquipmentForm.vue
@@ -83,10 +83,10 @@
         </el-table-column>
         <el-table-column label="瀹炴椂/杞" align="center" width="100px">
           <template slot-scope="scope">
-            <span v-if="scope.row.runType === -1">-</span>
+            <span v-if="scope.row.runType == -1">-</span>
             <toggle-button
               v-else
-              :value="scope.row.runType === 1"
+              :value="scope.row.runType == 1"
               :width="60"
               :labels="{ checked: '瀹炴椂', unchecked: '杞' }"
               :color="{
@@ -126,6 +126,8 @@
 <script>
 import SettingBox from "./SettingBox";
 import { getCameraByPage } from "@/api/clusterManage";
+import { changeRunType } from "@/api/pollConfig";
+
 export default {
   props: {
     id: {},
@@ -185,25 +187,26 @@
       this.$emit("hiddenList");
     },
     pollSwitch(row) {
-      changeRunType({ camera_ids: [row.id], run_type: row.run_type ^ 1 }).then(
-        (rsp) => {
-          if (rsp && rsp.success) {
-            this.$notify({
-              type: "success",
-              message: "閰嶇疆鎴愬姛",
-            });
-
-            row.run_type = row.run_type ^ 1;
-          } else {
-            this.$notify({
-              type: "error",
-              message: "閰嶇疆澶辫触",
-            });
-          }
-
-          // this.PollData.fetchPollList();
+      row.runType = row.runType ^ 1;
+      changeRunType({
+        camera_ids: [row.id],
+        run_type: row.runType ^ 1,
+        clusterId: row.clusterId,
+      }).then((rsp) => {
+        if (rsp && rsp.success) {
+          this.$notify({
+            type: "success",
+            message: "閰嶇疆鎴愬姛",
+          });
+        } else {
+          this.$notify({
+            type: "error",
+            message: "閰嶇疆澶辫触",
+          });
         }
-      );
+
+        // this.PollData.fetchPollList();
+      });
     },
   },
   filters: {
diff --git a/src/views/hashrate/components/Banner.vue b/src/views/hashrate/components/Banner.vue
index d0a84f6..63fb6a8 100644
--- a/src/views/hashrate/components/Banner.vue
+++ b/src/views/hashrate/components/Banner.vue
@@ -11,9 +11,15 @@
 </template>
 
 <script>
+import { enableMenu } from "@/api/user";
+
 export default {
   methods: {
-    jump() {
+    async jump() {
+      await enableMenu({
+        userId: JSON.parse(sessionStorage.getItem("userInfo")).id,
+        menuId: "analysisMng",
+      });
       this.$router.push("/hashrateDetail");
     },
   },
diff --git a/src/views/hashrate/index.vue b/src/views/hashrate/index.vue
index c516729..dd7568f 100644
--- a/src/views/hashrate/index.vue
+++ b/src/views/hashrate/index.vue
@@ -20,6 +20,20 @@
     Flow,
     Footer,
   },
+  created() {
+    this.checkpermission();
+  },
+  methods: {
+    checkpermission() {
+      const userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+      const val = userInfo.permissions.find((item) => {
+        return item == "analysisMng";
+      });
+      if (val) {
+        this.$router.push("/hashrateDetail");
+      }
+    },
+  },
 };
 </script>
 
diff --git a/src/views/index/components/commendContent.vue b/src/views/index/components/commendContent.vue
index c0f8693..42c45dc 100644
--- a/src/views/index/components/commendContent.vue
+++ b/src/views/index/components/commendContent.vue
@@ -10,8 +10,8 @@
     >
       <img :src="'/httpImage/' + item.logoUrl" alt="" />
       <div class="title">{{ item.productName }}</div>
-      <div class="des limitoRow2">{{ item.description }}</div>
-      <price :priceNew="item.priceBase"></price>
+      <div class="des limitRow2">{{ item.description }}</div>
+      <price :priceNew="item.priceBase ? item.priceBase : 0"></price>
       <div class="button" @click="buyProduct(item.productName)">绔嬪嵆璐拱</div>
     </div>
   </div>
diff --git a/src/views/index/components/userCard.vue b/src/views/index/components/userCard.vue
index 59ed19c..c7eb57c 100644
--- a/src/views/index/components/userCard.vue
+++ b/src/views/index/components/userCard.vue
@@ -4,7 +4,12 @@
       <img src="/images/index/榛樿澶村儚-01.png" alt="" />
     </div>
     <div class="notification" v-if="!userInfo">
-      Hi!璇� <span class="login">鐧诲綍</span>鎴�<span class="register">娉ㄥ唽</span>
+      Hi!璇�
+      <span class="login" @click="jump('/login')">鐧诲綍</span>鎴�<span
+        class="register"
+        @click="jump('/register')"
+        >娉ㄥ唽</span
+      >
     </div>
     <div class="des" v-if="!userInfo">鐧诲綍鍚庢煡鐪嬩釜浜哄伐鍏锋爮</div>
     <div class="userName" v-else>{{ userInfo.username }}</div>
@@ -49,6 +54,11 @@
       userInfo: null, //鐢ㄦ埛淇℃伅
     };
   },
+  methods: {
+    jump(url) {
+      this.$router.push(url);
+    },
+  },
 };
 </script>
 
diff --git a/src/views/login/components/loginForm.vue b/src/views/login/components/loginForm.vue
index 627f100..1681e3c 100644
--- a/src/views/login/components/loginForm.vue
+++ b/src/views/login/components/loginForm.vue
@@ -279,10 +279,9 @@
           getMenuPermission().then((rep) => {
             data.userInfo.permissions = rep.data.permissions;
             sessionStorage.setItem("userInfo", JSON.stringify(data.userInfo));
+            this.$router.push("/");
           });
           this.loading.close();
-
-          this.$router.push("/");
         })
         .catch((err) => {
           this.loading.close();
diff --git a/src/views/manageCenter/index.vue b/src/views/manageCenter/index.vue
index 88843ea..b5e1305 100644
--- a/src/views/manageCenter/index.vue
+++ b/src/views/manageCenter/index.vue
@@ -19,7 +19,7 @@
             class="productItem"
             v-for="(item, index) in productList"
             :key="index"
-            @click="jump(item.path)"
+            @click="jump(item)"
           >
             <img :src="item.icon" alt="" />
             <div class="name">{{ item.name }}</div>
@@ -270,19 +270,25 @@
         {
           name: "璁惧绠$悊",
           icon: "/images/manageCenter/璁惧绠$悊.png",
-          path: "/equipmentManagement",
+          openPath: "/equipmentManagement",
+          path: "/equipmentList",
+          permission: "deviceMng",
         },
 
         {
           name: "绠楀姏绠$悊",
           icon: "/images/manageCenter/绠楀姏绠$悊.png",
-          path: "/hashrate",
+          openPath: "/hashrate",
+          path: "/hashrateDetail",
+          permission: "analysisMng",
         },
 
         {
           name: "缁熻鏌ヨ",
           icon: "/images/manageCenter/绠楀姏绠$悊.png",
-          path: "/",
+          openPath: "/searchOpen",
+          path: "/search",
+          permission: "statisticMng",
         },
       ],
       timeList: [
@@ -851,8 +857,17 @@
       let myChart = echarts.init(pieDom);
       myChart.setOption(this.pieOption);
     },
-    jump(path) {
-      this.$router.push(path);
+    jump(route) {
+      const userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+
+      const val = userInfo.permissions.find((item) => {
+        return item == route.permission;
+      });
+      if (val) {
+        this.$router.push(route.path);
+      } else if (!userInfo.parentId) {
+        this.$router.push(route.openPath);
+      }
     },
     refrash() {},
     handleSizeChange() {},
diff --git a/src/views/personalCenter/components/SubAccount.vue b/src/views/personalCenter/components/SubAccount.vue
index 8be3ee9..46f5518 100644
--- a/src/views/personalCenter/components/SubAccount.vue
+++ b/src/views/personalCenter/components/SubAccount.vue
@@ -69,10 +69,9 @@
             <span>{{ scope.row.userType == 1 ? "涓汉" : "鍏徃" }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱" > </el-table-column>
-        <el-table-column prop="dataNames" label="鏉冮檺">
-
+        <el-table-column prop="authDuration" label="鎺堟潈鏃堕暱">
         </el-table-column>
+        <el-table-column prop="dataNames" label="鏉冮檺"> </el-table-column>
 
         <el-table-column label="鐘舵��">
           <template slot-scope="scope">
@@ -171,8 +170,9 @@
           style="width: 350px"
           placeholder="璇烽�夋嫨鎺堟潈鏃堕暱"
         >
-          <el-option label="涓�骞�" value="涓�骞�"></el-option>
-          <el-option label="涓ゅ勾" value="涓ゅ勾"></el-option>
+          <el-option label="涓�骞�" :value="1"></el-option>
+          <el-option label="涓ゅ勾" :value="2"></el-option>
+          <el-option label="涓夊勾" :value="3"></el-option>
         </el-select>
       </el-form-item>
 
@@ -228,17 +228,15 @@
 </template>
 
 <script>
-import { findUserList, saveSubUser, getMenu, getDataTree} from "@/api/user";
+import { findUserList, saveSubUser, getMenu, getDataTree } from "@/api/user";
 import { getAreas, getDic } from "@/api/login";
 
 import Steps from "./Steps";
 import StepsCard from "./StepCard";
-import TreeBox from "./TreeBox";
 export default {
   components: {
     Steps,
     StepsCard,
-    TreeBox,
   },
   data() {
     return {
@@ -278,24 +276,29 @@
       dataList: [],
       isShowAdd: false, //鏄惁灞曠ず鏂板寮圭獥
       isShowUnbind: false, //鏄惁灞曠ず瑙g粦寮圭獥
-      isShowRelate: false,isEditing: false,
+      isShowRelate: false,
+      isEditing: false,
       unbindId: "",
       durationArr: [
         {
-          value: "涓�骞�",
+          value: 1,
           label: "涓�骞�",
         },
         {
-          value: "涓ゅ勾",
+          value: 2,
           label: "涓ゅ勾",
+        },
+        {
+          value: 3,
+          label: "涓夊勾",
         },
       ], //鎵�灞為泦缇や笅鎷夋
       timeLength: null, //閫変腑鐨勬巿鏉冩椂闀�
       showQuit: false, //灞曠ず閫�鍑洪泦缇ょ殑寮圭獥
       showJoin: false, //灞曠ず鍔犲叆闆嗙兢鐨勫脊绐�
       activeEquipment: null, //澶勭悊涓殑璁惧
-      checkedData:[],
-      checkedMenu:[],
+      checkedData: [],
+      checkedMenu: [],
       ruleForm: {
         id: "",
         username: "",
@@ -358,7 +361,7 @@
     },
     editUser(row) {
       this.isShowAdd = true;
-      this.isEditing = true
+      this.isEditing = true;
       this.ruleForm.id = row.id;
       this.ruleForm.username = row.username;
       this.ruleForm.userType = row.userType;
@@ -367,9 +370,9 @@
       this.ruleForm.email = row.email;
       this.ruleForm.isChangePwd = row.isChangePwd;
       this.ruleForm.industryId = row.industryId;
-      this.ruleForm.areaId =row.areaId ;
-      debugger
-      this.ruleForm.address  = [ row.provinceId,row.areaId]
+      this.ruleForm.areaId = row.areaId;
+      debugger;
+      this.ruleForm.address = [row.provinceId, row.areaId];
       this.ruleForm.provinceId = row.provinceId;
       this.ruleForm.authDuration = row.authDuration;
       this.checkedMenu = row.menuIds;
@@ -404,7 +407,7 @@
       this.ruleForm.menuIds = this.$refs.treeMenus.getCheckedKeys();
       this.ruleForm.dataIds = this.$refs.treeData.getCheckedKeys();
       let json = {
-        id: this.isEditing? this.ruleForm.id:"",
+        id: this.isEditing ? this.ruleForm.id : "",
         username: this.ruleForm.username,
         password: this.ruleForm.password,
         isChangePwd: this.ruleForm.isChangePwd,
@@ -417,7 +420,7 @@
         menuIds: this.ruleForm.menuIds,
         dataIds: this.ruleForm.dataIds,
       };
-      debugger
+      debugger;
       saveSubUser(json).then((res) => {
         debugger;
       });
@@ -435,7 +438,7 @@
     },
     goback() {
       this.isShowAdd = false;
-      this.isEditing =false
+      this.isEditing = false;
       this.isShowRelate = false;
       this.activeIndex = 0;
     },
@@ -773,7 +776,7 @@
 
     .option {
       margin-right: 10px;
-         font-size: 14px;
+      font-size: 14px;
       color: rgb(0, 101, 255);
       cursor: pointer;
     }
diff --git a/src/views/productDetail/components/ConfirmOrder.vue b/src/views/productDetail/components/ConfirmOrder.vue
index 6c2d2da..23226d8 100644
--- a/src/views/productDetail/components/ConfirmOrder.vue
+++ b/src/views/productDetail/components/ConfirmOrder.vue
@@ -218,9 +218,10 @@
       if (this.orderInfo.orderMoney == 0) {
         resumePay({ orderId, payMethod: 5 }).then((res) => {
           if (res.success) {
+            this.$router.push("/trialCenter");
             this.$notify({
               type: "success",
-              message: "鍏嶈垂璇曠敤",
+              message: "鎴愬姛璇曠敤",
               duration: 2500,
               offset: 57,
             });
diff --git a/src/views/productDetail/components/Function.vue b/src/views/productDetail/components/Function.vue
index 1f8fe4b..58664e3 100644
--- a/src/views/productDetail/components/Function.vue
+++ b/src/views/productDetail/components/Function.vue
@@ -88,7 +88,8 @@
     flex-wrap: wrap;
 
     .sceneItem {
-      width: 600px;
+      width: 599px;
+      margin-bottom: 20px;
 
       .sceneTitle {
         margin-bottom: 10px;
diff --git a/src/views/productDetail/components/PayCard.vue b/src/views/productDetail/components/PayCard.vue
index 54b97c4..182540f 100644
--- a/src/views/productDetail/components/PayCard.vue
+++ b/src/views/productDetail/components/PayCard.vue
@@ -300,7 +300,9 @@
 
       <div class="btns">
         <div class="button addCar">鍔犲叆璐墿杞�</div>
-        <div class="button pay" @click="confirmNow">绔嬪嵆璐拱</div>
+        <div class="button pay" @click="confirmNow">
+          {{ data.priceBase ? "绔嬪嵆璐拱" : "鍏嶈垂璇曠敤" }}
+        </div>
       </div>
     </div>
 
diff --git a/src/views/search/components/Banner.vue b/src/views/search/components/Banner.vue
new file mode 100644
index 0000000..9a3248b
--- /dev/null
+++ b/src/views/search/components/Banner.vue
@@ -0,0 +1,55 @@
+<template>
+  <div class="Banner">
+    <div class="heart">
+      <div class="title">缁熻鏌ヨ</div>
+      <div class="des">缁熻鏌ヨ鏀寔瀵规墍鏈夎澶囪繎3涓湀鏁版嵁杩涜缁熶竴鏌ヨ銆�</div>
+      <div class="button" @click="jump">绔嬪嵆寮�閫�</div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { enableMenu } from "@/api/user";
+
+export default {
+  methods: {
+    async jump() {
+      console.log(JSON.parse(sessionStorage.getItem("userInfo")).id);
+      await enableMenu({
+        userId: JSON.parse(sessionStorage.getItem("userInfo")).id,
+        menuId: "statisticMng",
+      });
+      this.$router.push("/search");
+    },
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.Banner {
+  overflow: hidden;
+  height: 480px;
+  background-image: url("/images/hashrate/banner.png");
+  color: #fff;
+
+  .title {
+    margin: 122px 0 10px 0;
+    font-size: 48px;
+  }
+
+  .des {
+    margin-bottom: 82px;
+    width: 560px;
+    font-size: 16px;
+    line-height: 24px;
+  }
+
+  .button {
+    width: 160px;
+    height: 56px;
+    background: #0065ff;
+    text-align: center;
+    line-height: 56px;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/search/components/Flow.vue b/src/views/search/components/Flow.vue
new file mode 100644
index 0000000..3d82ef5
--- /dev/null
+++ b/src/views/search/components/Flow.vue
@@ -0,0 +1,68 @@
+<template>
+  <div class="Flow heart">
+    <div class="title">绠楀姏绠$悊鐨勪娇鐢ㄦ祦绋�</div>
+
+    <div class="flowList">
+      <div class="flowItem" v-for="(item, index) in flowList" :key="index">
+        <img :src="item.img" alt="" />
+        <div class="flowTitle">{{ item.title }}</div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      flowList: [
+        {
+          img: "/images/search/寮�閫氱粺璁℃煡璇�.png",
+          title: "寮�閫氱粺璁℃煡璇�",
+        },
+        { img: "/images/search/鏁版嵁鏌ョ湅.png", title: "鏁版嵁鏌ョ湅" },
+        {
+          img: "/images/search/褰曞儚鏌ョ湅.png",
+          title: "褰曞儚鏌ョ湅",
+        },
+        {
+          img: "/images/search/鏁版嵁瀹炴椂鐩戞帶.png",
+          title: "鏁版嵁瀹炴椂鐩戞帶",
+        },
+      ],
+    };
+  },
+};
+</script>
+
+<style scoped lang="scss">
+.Flow {
+  overflow: hidden;
+  height: 540px;
+  text-align: center;
+
+  .title {
+    margin: 60px 0;
+    font-size: 28px;
+    color: #3d3d3d;
+  }
+
+  .flowList {
+    display: flex;
+
+    .flowItem {
+      width: 260px;
+      margin-right: 80px;
+
+      &:last-child {
+        margin-right: 0;
+      }
+
+      .flowTitle {
+        margin-top: 20px;
+        font-size: 16px;
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/search/components/LeftNav.vue b/src/views/search/components/LeftNav.vue
index 54f263c..3fd4403 100644
--- a/src/views/search/components/LeftNav.vue
+++ b/src/views/search/components/LeftNav.vue
@@ -939,14 +939,14 @@
   }
 }
 .area-add {
-  left: 100px;
+  // left: 100px;
 }
 .camera-add {
-  left: 128px;
+  // left: 128px;
 }
 
 .import-btn {
-  left: 156px;
+  //  left: 156px;
 }
 .tree-font {
   font-family: PingFangSC-Medium;
diff --git a/src/views/search/components/giantTree/zTree/ztree.vue b/src/views/search/components/giantTree/zTree/ztree.vue
index 6ec0d4e..10b94fc 100644
--- a/src/views/search/components/giantTree/zTree/ztree.vue
+++ b/src/views/search/components/giantTree/zTree/ztree.vue
@@ -569,13 +569,11 @@
 
 .ztree li span.button.ico_open {
   margin-right: 2px;
-  background-position: -110px -16px;
   vertical-align: top;
   *vertical-align: middle;
 }
 .ztree li span.button.ico_close {
   margin-right: 2px;
-  background-position: -110px 0;
   vertical-align: top;
   *vertical-align: middle;
 }
diff --git a/src/views/search/index.vue b/src/views/search/index.vue
index 43a99f3..addbb62 100644
--- a/src/views/search/index.vue
+++ b/src/views/search/index.vue
@@ -53,7 +53,7 @@
   height: calc(100vh - 130px);
 }
 .left-tree-box .el-tabs--border-card .el-tabs__header {
-  display: block !important;
+  display: block;
   margin-bottom: 10px;
 }
 .column {
diff --git a/src/views/search/searchOpen.vue b/src/views/search/searchOpen.vue
new file mode 100644
index 0000000..261719b
--- /dev/null
+++ b/src/views/search/searchOpen.vue
@@ -0,0 +1,50 @@
+<template>
+  <div class="searchOpen">
+    <IndexHeader></IndexHeader>
+    <Banner></Banner>
+    <Flow></Flow>
+    <Footer></Footer>
+  </div>
+</template>
+
+<script>
+import IndexHeader from "@/components/IndexHeader";
+import Banner from "@/views/search/components/Banner";
+import Flow from "@/views/search/components/Flow";
+import Footer from "@/components/Footer";
+
+export default {
+  components: {
+    IndexHeader,
+    Banner,
+    Flow,
+    Footer,
+  },
+  created() {
+    this.checkpermission();
+  },
+  methods: {
+    checkpermission() {
+      const userInfo = JSON.parse(sessionStorage.getItem("userInfo"));
+      const val = userInfo.permissions.find((item) => {
+        return item == "statisticMng";
+      });
+      if (val) {
+        this.$router.push("/search");
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.IndexHeader {
+  ::v-deep .header {
+    position: fixed;
+    z-index: 2;
+    top: 0;
+    right: 0;
+    left: 0;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/trialCenter/components/SdkItem.vue b/src/views/trialCenter/components/SdkItem.vue
index adf0be5..ebba2ba 100644
--- a/src/views/trialCenter/components/SdkItem.vue
+++ b/src/views/trialCenter/components/SdkItem.vue
@@ -4,7 +4,7 @@
       <img :src="'/httpImage/' + sdk.logoUrl" alt="" />
     </div>
     <div class="title">{{ sdk.productName }}</div>
-    <div class="des limitoRow2">
+    <div class="des limitRow2">
       {{ sdk.description }}
     </div>
     <div class="button" @click="buyProduct(sdk.productName)">绔嬪嵆璇曠敤</div>
@@ -35,6 +35,7 @@
   height: 280px;
   background-color: #fff;
   text-align: center;
+  position: relative;
   .icon img {
     margin-top: 20px;
     width: 96px;
@@ -55,6 +56,9 @@
   }
 
   .button {
+    position: absolute;
+    left: 0;
+    bottom: 10px;
     width: 100%;
     height: 40px;
     box-shadow: 0px 2px 8px rgba(0, 43, 106, 0.12);
diff --git a/vue.config.js b/vue.config.js
index bed67fb..703743d 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -29,6 +29,12 @@
 
         changeOrigin: true, //寮�鍚唬鐞�
       },
+
+      "/ws": {
+        target: "http://192.168.20.189:7009",
+        // ws: true,
+        changeOrigin: true,
+      },
     },
   },
 };

--
Gitblit v1.8.0