From 52ad37fba37a1ae72f124106627227a09836be5b Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期五, 25 三月 2022 15:36:31 +0800
Subject: [PATCH] 初稿

---
 src/components/canvas/Dialog.vue                                            | 1485 +++++++++
 src/Pool/PollData.ts                                                        |    3 
 src/mixins.js                                                               |    1 
 src/views/hashrate/CameraManage/index.vue                                   |  103 
 src/Pool/VideoRuleData.ts                                                   |    3 
 src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue       |  311 +
 src/views/hashrate/HashManage/components/SettingBox.vue                     |    0 
 src/components/CameraLeft.vue                                               |    0 
 src/views/hashrate/AlgManage/index.vue                                      |    2 
 src/views/hashrate/HashManage/components/ClusterCard.vue                    |    0 
 public/fonts/iconfont.woff                                                  |    0 
 src/components/giantTree/zTree/ztree.vue                                    |    3 
 src/views/hashrate/CameraManage/CameraRules/components/CameraBox.vue        |  305 +
 src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue       |  504 +++
 public/images/hashrate/未配置算法空页面.png                                         |    0 
 src/store/index.js                                                          |    4 
 src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue     |  158 
 public/fonts/iconfont.js                                                    |    2 
 src/views/hashrate/CameraManage/CameraInfo/index.vue                        |   89 
 src/views/hashrate/CameraManage/CameraRules/components/scene/Editor.vue     | 1687 ++++++++++
 src/views/hashrate/CameraManage/CameraRules/components/TimeSliderItem.vue   |  246 +
 src/views/hashrate/HashManage/components/EquipmentForm.vue                  |    2 
 src/views/hashrate/CameraManage/CameraRules/components/SceneRule.vue        |  568 +++
 src/views/hashrate/CameraManage/CameraRules/components/SdkBox.vue           |   91 
 src/components/canvas/index.vue                                             |  656 ++++
 public/images/hashrate/独立场景空页面.png                                          |    0 
 src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue    |  971 ++++++
 src/plugin/drag.js                                                          |   31 
 src/views/hashrate/HashManage/index.vue                                     |    4 
 public/fonts/iconfont.json                                                  |   56 
 src/components/subComponents/SystemInfo.vue                                 |  265 -
 public/images/hashrate/联动场景空页面.png                                          |    0 
 src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue         |  380 ++
 public/fonts/demo_index.html                                                |  190 
 public/fonts/iconfont.woff2                                                 |    0 
 public/fonts/iconfont.css                                                   |   38 
 public/fonts/iconfont.ttf                                                   |    0 
 src/views/hashrate/HashManage/components/ClusterList.vue                    |    4 
 public/images/hashrate/联动场景摄像机空页面.png                                       |    0 
 src/views/hashrate/hashrateDetail/index.vue                                 |    6 
 src/views/hashrate/CameraManage/CameraInfo/components/CameraInfoEditor.vue  |    0 
 src/main.ts                                                                 |    7 
 src/views/hashrate/CameraManage/CameraRules/components/scene/SlideScene.vue |  286 +
 src/views/hashrate/HashManage/components/HashCard.vue                       |    2 
 test.html                                                                   |   10 
 package.json                                                                |    1 
 src/views/hashrate/CameraManage/CameraRules/index.vue                       |  970 ++++++
 src/views/hashrate/AlgManage/components/AlgCard.vue                         |    0 
 src/App.vue                                                                 |   97 
 49 files changed, 9,099 insertions(+), 442 deletions(-)

diff --git a/package.json b/package.json
index e13c10b..a9c13bf 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
     "echarts-liquidfill": "^2.0.5",
     "element-ui": "^2.11.1",
     "jquery": "^3.6.0",
+    "jsplumb": "^2.15.6",
     "less": "^3.10.2",
     "less-loader": "^5.0.0",
     "lib-flexible": "^0.3.2",
diff --git a/public/fonts/demo_index.html b/public/fonts/demo_index.html
index 939bd63..19df8ac 100644
--- a/public/fonts/demo_index.html
+++ b/public/fonts/demo_index.html
@@ -55,6 +55,36 @@
           <ul class="icon_lists dib-box">
           
             <li class="dib">
+              <span class="icon iconfont">&#xe628;</span>
+                <div class="name">0鎾斁@1x</div>
+                <div class="code-name">&amp;#xe628;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe62b;</span>
+                <div class="name">0鏆傚仠@1x</div>
+                <div class="code-name">&amp;#xe62b;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe64e;</span>
+                <div class="name">绠楀姏绠$悊_鏁版嵁娴佽浆-09</div>
+                <div class="code-name">&amp;#xe64e;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe64f;</span>
+                <div class="name">绠楀姏绠$悊_妯℃澘鍔╂墜-09</div>
+                <div class="code-name">&amp;#xe64f;</div>
+              </li>
+          
+            <li class="dib">
+              <span class="icon iconfont">&#xe650;</span>
+                <div class="name">绠楀姏绠$悊_绠楁硶浜嬩欢-09</div>
+                <div class="code-name">&amp;#xe650;</div>
+              </li>
+          
+            <li class="dib">
               <span class="icon iconfont">&#xe64c;</span>
                 <div class="name">鎽勫儚鏈虹鐞�0_GB28181-18</div>
                 <div class="code-name">&amp;#xe64c;</div>
@@ -229,12 +259,6 @@
               </li>
           
             <li class="dib">
-              <span class="icon iconfont">&#xe628;</span>
-                <div class="name">绠楀姏绠$悊_妯℃澘鍔╂墜-09</div>
-                <div class="code-name">&amp;#xe628;</div>
-              </li>
-          
-            <li class="dib">
               <span class="icon iconfont">&#xe629;</span>
                 <div class="name">绠楀姏绠$悊_绛夊緟杞澶勭悊-18</div>
                 <div class="code-name">&amp;#xe629;</div>
@@ -247,12 +271,6 @@
               </li>
           
             <li class="dib">
-              <span class="icon iconfont">&#xe62b;</span>
-                <div class="name">绠楀姏绠$悊_绠楁硶浜嬩欢-09</div>
-                <div class="code-name">&amp;#xe62b;</div>
-              </li>
-          
-            <li class="dib">
               <span class="icon iconfont">&#xe62c;</span>
                 <div class="name">绠楀姏绠$悊_杩斿洖-18</div>
                 <div class="code-name">&amp;#xe62c;</div>
@@ -262,12 +280,6 @@
               <span class="icon iconfont">&#xe62d;</span>
                 <div class="name">绠楀姏绠$悊_绠楁硶涓嶅叏-18</div>
                 <div class="code-name">&amp;#xe62d;</div>
-              </li>
-          
-            <li class="dib">
-              <span class="icon iconfont">&#xe62e;</span>
-                <div class="name">绠楀姏绠$悊_鏁版嵁娴佽浆-09</div>
-                <div class="code-name">&amp;#xe62e;</div>
               </li>
           
             <li class="dib">
@@ -540,9 +552,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1646298804790') format('woff2'),
-       url('iconfont.woff?t=1646298804790') format('woff'),
-       url('iconfont.ttf?t=1646298804790') format('truetype');
+  src: url('iconfont.woff2?t=1647933810375') format('woff2'),
+       url('iconfont.woff?t=1647933810375') format('woff'),
+       url('iconfont.ttf?t=1647933810375') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">绗簩姝ワ細瀹氫箟浣跨敤 iconfont 鐨勬牱寮�</h3>
@@ -567,6 +579,51 @@
       </div>
       <div class="content font-class">
         <ul class="icon_lists dib-box">
+          
+          <li class="dib">
+            <span class="icon iconfont icon-a-0bofang1x"></span>
+            <div class="name">
+              0鎾斁@1x
+            </div>
+            <div class="code-name">.icon-a-0bofang1x
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-a-0zanting1x"></span>
+            <div class="name">
+              0鏆傚仠@1x
+            </div>
+            <div class="code-name">.icon-a-0zanting1x
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-suanliguanli_shujuliuzhuan-091"></span>
+            <div class="name">
+              绠楀姏绠$悊_鏁版嵁娴佽浆-09
+            </div>
+            <div class="code-name">.icon-suanliguanli_shujuliuzhuan-091
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-suanliguanli_mobanzhushou-091"></span>
+            <div class="name">
+              绠楀姏绠$悊_妯℃澘鍔╂墜-09
+            </div>
+            <div class="code-name">.icon-suanliguanli_mobanzhushou-091
+            </div>
+          </li>
+          
+          <li class="dib">
+            <span class="icon iconfont icon-suanliguanli_suanfashijian-091"></span>
+            <div class="name">
+              绠楀姏绠$悊_绠楁硶浜嬩欢-09
+            </div>
+            <div class="code-name">.icon-suanliguanli_suanfashijian-091
+            </div>
+          </li>
           
           <li class="dib">
             <span class="icon iconfont icon-shexiangjiguanli0_GB28181-18"></span>
@@ -830,15 +887,6 @@
           </li>
           
           <li class="dib">
-            <span class="icon iconfont icon-suanliguanli_mobanzhushou-09"></span>
-            <div class="name">
-              绠楀姏绠$悊_妯℃澘鍔╂墜-09
-            </div>
-            <div class="code-name">.icon-suanliguanli_mobanzhushou-09
-            </div>
-          </li>
-          
-          <li class="dib">
             <span class="icon iconfont icon-suanliguanli_dengdailunxunchuli-18"></span>
             <div class="name">
               绠楀姏绠$悊_绛夊緟杞澶勭悊-18
@@ -857,15 +905,6 @@
           </li>
           
           <li class="dib">
-            <span class="icon iconfont icon-suanliguanli_suanfashijian-09"></span>
-            <div class="name">
-              绠楀姏绠$悊_绠楁硶浜嬩欢-09
-            </div>
-            <div class="code-name">.icon-suanliguanli_suanfashijian-09
-            </div>
-          </li>
-          
-          <li class="dib">
             <span class="icon iconfont icon-suanliguanli_fanhui-18"></span>
             <div class="name">
               绠楀姏绠$悊_杩斿洖-18
@@ -880,15 +919,6 @@
               绠楀姏绠$悊_绠楁硶涓嶅叏-18
             </div>
             <div class="code-name">.icon-suanliguanli_suanfabuquan-18
-            </div>
-          </li>
-          
-          <li class="dib">
-            <span class="icon iconfont icon-suanliguanli_shujuliuzhuan-09"></span>
-            <div class="name">
-              绠楀姏绠$悊_鏁版嵁娴佽浆-09
-            </div>
-            <div class="code-name">.icon-suanliguanli_shujuliuzhuan-09
             </div>
           </li>
           
@@ -1299,6 +1329,46 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-a-0bofang1x"></use>
+                </svg>
+                <div class="name">0鎾斁@1x</div>
+                <div class="code-name">#icon-a-0bofang1x</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-a-0zanting1x"></use>
+                </svg>
+                <div class="name">0鏆傚仠@1x</div>
+                <div class="code-name">#icon-a-0zanting1x</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-suanliguanli_shujuliuzhuan-091"></use>
+                </svg>
+                <div class="name">绠楀姏绠$悊_鏁版嵁娴佽浆-09</div>
+                <div class="code-name">#icon-suanliguanli_shujuliuzhuan-091</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-suanliguanli_mobanzhushou-091"></use>
+                </svg>
+                <div class="name">绠楀姏绠$悊_妯℃澘鍔╂墜-09</div>
+                <div class="code-name">#icon-suanliguanli_mobanzhushou-091</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#icon-suanliguanli_suanfashijian-091"></use>
+                </svg>
+                <div class="name">绠楀姏绠$悊_绠楁硶浜嬩欢-09</div>
+                <div class="code-name">#icon-suanliguanli_suanfashijian-091</div>
+            </li>
+          
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-shexiangjiguanli0_GB28181-18"></use>
                 </svg>
                 <div class="name">鎽勫儚鏈虹鐞�0_GB28181-18</div>
@@ -1531,14 +1601,6 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
-                  <use xlink:href="#icon-suanliguanli_mobanzhushou-09"></use>
-                </svg>
-                <div class="name">绠楀姏绠$悊_妯℃澘鍔╂墜-09</div>
-                <div class="code-name">#icon-suanliguanli_mobanzhushou-09</div>
-            </li>
-          
-            <li class="dib">
-                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-suanliguanli_dengdailunxunchuli-18"></use>
                 </svg>
                 <div class="name">绠楀姏绠$悊_绛夊緟杞澶勭悊-18</div>
@@ -1555,14 +1617,6 @@
           
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
-                  <use xlink:href="#icon-suanliguanli_suanfashijian-09"></use>
-                </svg>
-                <div class="name">绠楀姏绠$悊_绠楁硶浜嬩欢-09</div>
-                <div class="code-name">#icon-suanliguanli_suanfashijian-09</div>
-            </li>
-          
-            <li class="dib">
-                <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-suanliguanli_fanhui-18"></use>
                 </svg>
                 <div class="name">绠楀姏绠$悊_杩斿洖-18</div>
@@ -1575,14 +1629,6 @@
                 </svg>
                 <div class="name">绠楀姏绠$悊_绠楁硶涓嶅叏-18</div>
                 <div class="code-name">#icon-suanliguanli_suanfabuquan-18</div>
-            </li>
-          
-            <li class="dib">
-                <svg class="icon svg-icon" aria-hidden="true">
-                  <use xlink:href="#icon-suanliguanli_shujuliuzhuan-09"></use>
-                </svg>
-                <div class="name">绠楀姏绠$悊_鏁版嵁娴佽浆-09</div>
-                <div class="code-name">#icon-suanliguanli_shujuliuzhuan-09</div>
             </li>
           
             <li class="dib">
diff --git a/public/fonts/iconfont.css b/public/fonts/iconfont.css
index 3ada8b3..9e4cf9b 100644
--- a/public/fonts/iconfont.css
+++ b/public/fonts/iconfont.css
@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 3024843 */
-  src: url('iconfont.woff2?t=1646298804790') format('woff2'),
-       url('iconfont.woff?t=1646298804790') format('woff'),
-       url('iconfont.ttf?t=1646298804790') format('truetype');
+  src: url('iconfont.woff2?t=1647933810375') format('woff2'),
+       url('iconfont.woff?t=1647933810375') format('woff'),
+       url('iconfont.ttf?t=1647933810375') format('truetype');
 }
 
 .iconfont {
@@ -11,6 +11,26 @@
   font-style: normal;
   -webkit-font-smoothing: antialiased;
   -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-a-0bofang1x:before {
+  content: "\e628";
+}
+
+.icon-a-0zanting1x:before {
+  content: "\e62b";
+}
+
+.icon-suanliguanli_shujuliuzhuan-091:before {
+  content: "\e64e";
+}
+
+.icon-suanliguanli_mobanzhushou-091:before {
+  content: "\e64f";
+}
+
+.icon-suanliguanli_suanfashijian-091:before {
+  content: "\e650";
 }
 
 .icon-shexiangjiguanli0_GB28181-18:before {
@@ -129,10 +149,6 @@
   content: "\e627";
 }
 
-.icon-suanliguanli_mobanzhushou-09:before {
-  content: "\e628";
-}
-
 .icon-suanliguanli_dengdailunxunchuli-18:before {
   content: "\e629";
 }
@@ -141,20 +157,12 @@
   content: "\e62a";
 }
 
-.icon-suanliguanli_suanfashijian-09:before {
-  content: "\e62b";
-}
-
 .icon-suanliguanli_fanhui-18:before {
   content: "\e62c";
 }
 
 .icon-suanliguanli_suanfabuquan-18:before {
   content: "\e62d";
-}
-
-.icon-suanliguanli_shujuliuzhuan-09:before {
-  content: "\e62e";
 }
 
 .icon-suanliguanli_dakaifenxikaiguan-18:before {
diff --git a/public/fonts/iconfont.js b/public/fonts/iconfont.js
index ada0c33..151080f 100644
--- a/public/fonts/iconfont.js
+++ b/public/fonts/iconfont.js
@@ -1 +1 @@
-!function(c){var l,h,i,a,t,s='<svg><symbol id="icon-shexiangjiguanli0_GB28181-18" viewBox="0 0 1024 1024"><path d="M967.111111 483.555556c-5.688889-102.4-45.511111-193.422222-108.088889-267.377778-79.644444-91.022222-187.733333-147.911111-312.888889-159.288889H477.866667c-125.155556 11.377778-233.244444 68.266667-312.888889 159.288889C102.4 290.133333 62.577778 381.155556 56.888889 483.555556v56.888888c5.688889 108.088889 51.2 204.8 119.466667 278.755556 73.955556 79.644444 182.044444 136.533333 301.511111 142.222222h68.266666c130.844444-11.377778 250.311111-73.955556 324.266667-170.666666 56.888889-68.266667 91.022222-159.288889 96.711111-256v-51.2z m-153.6-233.244445c56.888889 62.577778 85.333333 147.911111 91.022222 233.244445h-170.666666c0-62.577778-11.377778-119.466667-34.133334-176.355556 45.511111-17.066667 79.644444-34.133333 113.777778-56.888889z m-159.288889 443.733333c-34.133333-5.688889-73.955556-11.377778-113.777778-11.377777-56.888889 0-113.777778 11.377778-164.977777 22.755555-17.066667-51.2-28.444444-108.088889-34.133334-164.977778h341.333334c-5.688889 51.2-11.377778 102.4-28.444445 153.6z m-290.133333 187.733334c-17.066667-5.688889-28.444444-11.377778-39.822222-22.755556-5.688889 0-5.688889-5.688889-11.377778-5.688889-17.066667-11.377778-28.444444-17.066667-39.822222-28.444444h-5.688889c22.755556-17.066667 51.2-34.133333 79.644444-45.511111 22.755556 39.822222 45.511111 79.644444 73.955556 119.466666l-51.2-17.066666h-5.688889z m-22.755556-398.222222c0-56.888889 11.377778-108.088889 28.444445-159.288889 45.511111 11.377778 96.711111 17.066667 142.222222 17.066666s96.711111-5.688889 136.533333-17.066666c17.066667 51.2 28.444444 102.4 28.444445 159.288889H341.333333z m318.577778-341.333334c5.688889 0 5.688889 0 11.377778 5.688889 11.377778 5.688889 28.444444 11.377778 45.511111 22.755556 0 0 5.688889 0 5.688889 5.688889 17.066667 11.377778 28.444444 22.755556 45.511111 34.133333l5.688889 5.688889c-28.444444 17.066667-56.888889 34.133333-85.333333 45.511111-22.755556-45.511111-45.511111-91.022222-79.644445-130.844445h5.688889c11.377778 0 28.444444 5.688889 45.511111 11.377778zM517.688889 113.777778c45.511111 45.511111 79.644444 96.711111 108.088889 153.6-34.133333 11.377778-73.955556 17.066667-113.777778 17.066666s-79.644444-5.688889-119.466667-17.066666C420.977778 210.488889 455.111111 159.288889 500.622222 113.777778H517.688889zM341.333333 250.311111c-34.133333-11.377778-62.577778-22.755556-85.333333-39.822222l5.688889-5.688889c11.377778-11.377778 22.755556-22.755556 39.822222-28.444444 0 0 5.688889 0 5.688889-5.688889 17.066667-11.377778 34.133333-17.066667 45.511111-22.755556 5.688889 0 5.688889 0 11.377778-5.688889l51.2-17.066666h5.688889c-34.133333 39.822222-56.888889 79.644444-79.644445 125.155555 0 5.688889 0 5.688889 0 0z m-130.844444 0c39.822222 17.066667 73.955556 39.822222 108.088889 51.2-17.066667 56.888889-28.444444 113.777778-34.133334 176.355556H113.777778c11.377778-79.644444 39.822222-159.288889 96.711111-227.555556z m11.377778 534.755556C159.288889 716.8 119.466667 631.466667 113.777778 540.444444h170.666666c5.688889 68.266667 17.066667 130.844444 39.822223 187.733334-34.133333 17.066667-68.266667 34.133333-102.4 56.888889z m284.444444 125.155555c-45.511111-45.511111-79.644444-96.711111-102.4-147.911111 39.822222-17.066667 85.333333-22.755556 136.533333-22.755555 28.444444 0 62.577778 5.688889 91.022223 11.377777-28.444444 56.888889-62.577778 113.777778-108.088889 159.288889H506.311111z m182.044445-147.911111c34.133333 11.377778 62.577778 22.755556 91.022222 39.822222l-5.688889 5.688889c-17.066667 11.377778-28.444444 22.755556-45.511111 34.133334 0 0-5.688889 0-5.688889 5.688888-17.066667 11.377778-34.133333 17.066667-45.511111 28.444445-5.688889 0-5.688889 5.688889-11.377778 5.688889-17.066667 5.688889-34.133333 11.377778-56.888889 17.066666h-5.688889c34.133333-39.822222 62.577778-85.333333 85.333334-136.533333z m136.533333-5.688889c0 5.688889 0 5.688889 0 0-39.822222-17.066667-73.955556-34.133333-119.466667-51.2 17.066667-51.2 28.444444-108.088889 28.444445-170.666666h170.666666c0 85.333333-28.444444 159.288889-79.644444 221.866666z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_tupian-18" viewBox="0 0 1024 1024"><path d="M796.444444 113.777778H227.555556c-62.577778 0-113.777778 51.2-113.777778 113.777778v568.888888c0 62.577778 51.2 113.777778 113.777778 113.777778h568.888888c62.577778 0 113.777778-51.2 113.777778-113.777778V227.555556c0-62.577778-51.2-113.777778-113.777778-113.777778zM227.555556 853.333333c-28.444444 0-56.888889-28.444444-56.888889-56.888889v-159.288888c17.066667-5.688889 39.822222-11.377778 56.888889-11.377778 62.577778 0 119.466667 34.133333 147.911111 85.333333-17.066667 45.511111-28.444444 91.022222-34.133334 142.222222H227.555556z m625.777777-56.888889c0 28.444444-28.444444 56.888889-56.888889 56.888889H403.911111c5.688889-51.2 17.066667-96.711111 34.133333-142.222222C512 546.133333 665.6 420.977778 853.333333 398.222222v398.222222z m-449.422222-142.222222C364.088889 603.022222 295.822222 568.888889 227.555556 568.888889c-17.066667 0-39.822222 0-56.888889 5.688889V227.555556c0-28.444444 28.444444-56.888889 56.888889-56.888889h568.888888c28.444444 0 56.888889 28.444444 56.888889 56.888889v113.777777c-199.111111 22.755556-364.088889 142.222222-449.422222 312.888889z" fill="#666666" ></path><path d="M341.333333 227.555556c-62.577778 0-113.777778 51.2-113.777777 113.777777s51.2 113.777778 113.777777 113.777778 113.777778-51.2 113.777778-113.777778-51.2-113.777778-113.777778-113.777777z m0 170.666666c-28.444444 0-56.888889-28.444444-56.888889-56.888889s28.444444-56.888889 56.888889-56.888889 56.888889 28.444444 56.888889 56.888889-28.444444 56.888889-56.888889 56.888889z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_shouqi_v" viewBox="0 0 1024 1024"><path d="M768 192c38.4 0 64 25.6 64 64v512c0 38.4-25.6 64-64 64H256c-38.4 0-64-25.6-64-64V256c0-38.4 25.6-64 64-64h512m0-64H256c-70.4 0-128 57.6-128 128v512c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128V256c0-70.4-57.6-128-128-128z" fill="#D4D6D9" ></path><path d="M768 448H256v128h512V448z" fill="#D4D6D9" ></path></symbol><symbol id="icon-shexiangjiguanli0_dakai_v" viewBox="0 0 1024 1024"><path d="M768 192c38.4 0 64 25.6 64 64v512c0 38.4-25.6 64-64 64H256c-38.4 0-64-25.6-64-64V256c0-38.4 25.6-64 64-64h512m0-64H256c-70.4 0-128 57.6-128 128v512c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128V256c0-70.4-57.6-128-128-128z" fill="#D4D6D9" ></path><path d="M768 448H256v128h512V448z" fill="#D4D6D9" ></path><path d="M576 768V256H448v512h128z" fill="#D4D6D9" ></path></symbol><symbol id="icon-shexiangjiguanli0_shexiangji1-18" viewBox="0 0 1024 1024"><path d="M910.222222 312.888889c-5.688889 0-17.066667 0-22.755555 5.688889l-91.022223 39.822222V284.444444c0-62.577778-51.2-113.777778-113.777777-113.777777H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777777v455.111112c0 62.577778 51.2 113.777778 113.777778 113.777777h512c62.577778 0 113.777778-51.2 113.777777-113.777777v-73.955556l91.022223 39.822222c5.688889 5.688889 17.066667 5.688889 22.755555 5.688889 28.444444 0 56.888889-22.755556 56.888889-56.888889v-284.444444c0-34.133333-28.444444-56.888889-56.888889-56.888889zM739.555556 739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888888H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888h512c34.133333 0 56.888889 22.755556 56.888889 56.888888v455.111112z m170.666666-85.333334l-113.777778-45.511111V415.288889l113.777778-45.511111v284.444444z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_shexiangjizhengzaifenxi-18" viewBox="0 0 1024 1024"><path d="M910.222222 312.888889c-5.688889 0-17.066667 0-22.755555 5.688889l-91.022223 39.822222V284.444444c0-62.577778-51.2-113.777778-113.777777-113.777777H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777777v455.111112c0 62.577778 51.2 113.777778 113.777778 113.777777h512c62.577778 0 113.777778-51.2 113.777777-113.777777v-73.955556l91.022223 39.822222c5.688889 5.688889 17.066667 5.688889 22.755555 5.688889 28.444444 0 56.888889-22.755556 56.888889-56.888889v-284.444444c0-34.133333-28.444444-56.888889-56.888889-56.888889zM739.555556 739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888888H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888h512c34.133333 0 56.888889 22.755556 56.888889 56.888888v455.111112z m170.666666-85.333334l-113.777778-45.511111V415.288889l113.777778-45.511111v284.444444z" fill="#0065FF" ></path><path d="M403.911111 603.022222H301.511111L284.444444 682.666667H199.111111l108.088889-341.333334h96.711111L512 682.666667H420.977778l-17.066667-79.644445z m-17.066667-62.577778L381.155556 512c-11.377778-34.133333-17.066667-73.955556-28.444445-108.088889-11.377778 34.133333-17.066667 73.955556-28.444444 108.088889l-5.688889 28.444444h68.266666zM546.133333 341.333333H625.777778v341.333334H546.133333V341.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shexiangjiguanli0_wenjianjiaguanbi-18" viewBox="0 0 1024 1024"><path d="M375.466667 170.666667L455.111111 250.311111c22.755556 22.755556 51.2 34.133333 79.644445 34.133333H853.333333v568.888889H170.666667V170.666667h204.8z m0-56.888889H170.666667c-34.133333 0-56.888889 22.755556-56.888889 56.888889v682.666666c0 34.133333 22.755556 56.888889 56.888889 56.888889h682.666666c34.133333 0 56.888889-22.755556 56.888889-56.888889V284.444444c0-34.133333-22.755556-56.888889-56.888889-56.888888H534.755556c-17.066667 0-28.444444-5.688889-39.822223-17.066667L415.288889 130.844444c-11.377778-11.377778-22.755556-17.066667-39.822222-17.066666z" fill="#666666" ></path><path d="M284.444444 398.222222h455.111112v56.888889H284.444444z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_shexiangji2-18" viewBox="0 0 1024 1024"><path d="M910.222222 312.888889c-5.688889 0-17.066667 0-22.755555 5.688889l-91.022223 39.822222V284.444444c0-62.577778-51.2-113.777778-113.777777-113.777777H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777777v455.111112c0 62.577778 51.2 113.777778 113.777778 113.777777h512c62.577778 0 113.777778-51.2 113.777777-113.777777v-73.955556l91.022223 39.822222c5.688889 5.688889 17.066667 5.688889 22.755555 5.688889 28.444444 0 56.888889-22.755556 56.888889-56.888889v-284.444444c0-34.133333-28.444444-56.888889-56.888889-56.888889zM739.555556 739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888888H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888h512c34.133333 0 56.888889 22.755556 56.888889 56.888888v455.111112z m170.666666-85.333334l-113.777778-45.511111V415.288889l113.777778-45.511111v284.444444z" fill="#666666" ></path><path d="M284.444444 398.222222h284.444445v227.555556H284.444444z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_wenjianjiadakai-18" viewBox="0 0 1024 1024"><path d="M910.222222 398.222222h-56.888889V341.333333c0-28.444444-28.444444-56.888889-56.888889-56.888889H534.755556c-17.066667 0-28.444444-5.688889-39.822223-17.066666L415.288889 187.733333c-11.377778-11.377778-28.444444-17.066667-39.822222-17.066666H113.777778c-34.133333 0-56.888889 28.444444-56.888889 56.888889v568.888888c0 28.444444 28.444444 56.888889 56.888889 56.888889h711.111111c28.444444 0 51.2-17.066667 56.888889-45.511111l85.333333-341.333333c5.688889-34.133333-22.755556-68.266667-56.888889-68.266667zM113.777778 227.555556h261.688889L455.111111 307.2c22.755556 22.755556 51.2 34.133333 79.644445 34.133333H796.444444v56.888889H233.244444c-28.444444 0-51.2 17.066667-56.888888 45.511111L113.777778 688.355556V227.555556z m739.555555 455.111111l-28.444444 113.777777H147.911111l85.333333-341.333333H910.222222l-56.888889 227.555556z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_tianjiaquyu_v" viewBox="0 0 1024 1024"><path d="M512 64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z m0 832c-211.2 0-384-172.8-384-384s172.8-384 384-384 384 172.8 384 384-172.8 384-384 384z" fill="#666666" ></path><path d="M576 256H448v192H256v128h192v192h128V576h192V448H576z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_tianjiashebei_v" viewBox="0 0 1024 1024"><path d="M832 128c38.4 0 64 25.6 64 64v128c0 38.4-25.6 64-64 64H192c-38.4 0-64-25.6-64-64V192c0-38.4 25.6-64 64-64h640m0-64H192c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h640c70.4 0 128-57.6 128-128V192c0-70.4-57.6-128-128-128zM832 640c38.4 0 64 25.6 64 64v128c0 38.4-25.6 64-64 64H192c-38.4 0-64-25.6-64-64v-128c0-38.4 25.6-64 64-64h640m0-64H192c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h640c70.4 0 128-57.6 128-128v-128c0-70.4-57.6-128-128-128z" fill="#666666" ></path><path d="M256 704c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64zM256 192c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64zM768 704H576c-38.4 0-64 25.6-64 64s25.6 64 64 64h192c38.4 0 64-25.6 64-64s-25.6-64-64-64zM768 192H576c-38.4 0-64 25.6-64 64s25.6 64 64 64h192c38.4 0 64-25.6 64-64s-25.6-64-64-64z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_daorushebei_v" viewBox="0 0 1024 1024"><path d="M896 256V192c0-70.4-57.6-128-128-128H256c-70.4 0-128 57.6-128 128v640c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128v-64h-64v64c0 32-32 64-64 64H256c-32 0-64-32-64-64V192c0-32 32-64 64-64h512c32 0 64 32 64 64v64h64z" fill="#666666" ></path><path d="M384 480h512v64H384z" fill="#666666" ></path><path d="M409.6 512l198.4-198.4-44.8-44.8-198.4 198.4L320 512l44.8 44.8 198.4 198.4 44.8-44.8z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_xiugai_v" viewBox="0 0 1024 1024"><path d="M665.6 204.8l89.6 89.6L217.6 832H128v-89.6zM797.76 251.456L707.2 160.96 797.76 70.4l90.496 90.496zM64 896h896v64H64z" fill="#666666" ></path></symbol><symbol id="icon-shebeiguanli_0tuichujiqun-09" viewBox="0 0 1024 1024"><path d="M704 768v68.266667L896 725.333333l-192-110.933333V682.666667h-170.666667v85.333333zM384 597.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666666H213.333333c-25.6 0-42.666667-17.066667-42.666666-42.666666v-170.666667c0-25.6 17.066667-42.666667 42.666666-42.666667h170.666667m0-42.666666H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333v-170.666667c0-46.933333-38.4-85.333333-85.333333-85.333333zM597.333333 170.666667c25.6 0 42.666667 17.066667 42.666667 42.666666v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666667h-170.666666c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6 17.066667-42.666667 42.666667-42.666666h170.666666m0-42.666667h-170.666666c-46.933333 0-85.333333 38.4-85.333334 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333334 85.333333h170.666666c46.933333 0 85.333333-38.4 85.333334-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333334-85.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0shouqi-09" viewBox="0 0 1024 1024"><path d="M512 392.533333l230.4 302.933334h46.933333L512 332.8l-277.333333 362.666667h46.933333L512 392.533333" fill="#0065FF" ></path><path d="M512 128c213.333333 0 384 170.666667 384 384s-170.666667 384-384 384-384-170.666667-384-384 170.666667-384 384-384m0-42.666667C277.333333 85.333333 85.333333 277.333333 85.333333 512s192 426.666667 426.666667 426.666667 426.666667-192 426.666667-426.666667S746.666667 85.333333 512 85.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0chakanshebei-09" viewBox="0 0 1024 1024"><path d="M320 298.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333 21.333333-8.533333 21.333333-21.333333-8.533333-21.333333-21.333333-21.333333zM704 298.666667h-298.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h298.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333zM320 469.333333c-12.8 0-21.333333 8.533333-21.333333 21.333334s8.533333 21.333333 21.333333 21.333333 21.333333-8.533333 21.333333-21.333333-8.533333-21.333333-21.333333-21.333334zM704 469.333333h-298.666667c-12.8 0-21.333333 8.533333-21.333333 21.333334s8.533333 21.333333 21.333333 21.333333h298.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333334zM657.066667 657.066667c46.933333 0 85.333333 38.4 85.333333 85.333333s-38.4 85.333333-85.333333 85.333333-85.333333-38.4-85.333334-85.333333 38.4-85.333333 85.333334-85.333333m0-42.666667c-72.533333 0-128 55.466667-128 128s55.466667 128 128 128 128-55.466667 128-128-55.466667-128-128-128z" fill="#0065FF" ></path><path d="M733.866667 789.333333l-29.866667 29.866667 119.466667 119.466667 29.866666-29.866667-119.466666-119.466667zM768 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h256c12.8 0 21.333333-8.533333 21.333333-21.333334s-8.533333-21.333333-21.333333-21.333333H256c-25.6 0-42.666667-17.066667-42.666667-42.666667V170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667h512c25.6 0 42.666667 17.066667 42.666667 42.666667v426.666666c0 12.8 8.533333 21.333333 21.333333 21.333334s21.333333-8.533333 21.333333-21.333334V170.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0shenqingtianjiashebei-09" viewBox="0 0 1024 1024"><path d="M512 128c213.333333 0 384 170.666667 384 384s-170.666667 384-384 384-384-170.666667-384-384 170.666667-384 384-384m0-42.666667C277.333333 85.333333 85.333333 277.333333 85.333333 512s192 426.666667 426.666667 426.666667 426.666667-192 426.666667-426.666667S746.666667 85.333333 512 85.333333z" fill="#0065FF" ></path><path d="M512 298.666667v426.666666V298.666667m0-42.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667v426.666666c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V298.666667c0-25.6-17.066667-42.666667-42.666667-42.666667z" fill="#0065FF" ></path><path d="M725.333333 469.333333H298.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h426.666666c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0jiarujiqun-09" viewBox="0 0 1024 1024"><path d="M725.333333 682.666667v-68.266667L533.333333 725.333333l192 110.933334V768h170.666667v-85.333333zM384 597.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666666H213.333333c-25.6 0-42.666667-17.066667-42.666666-42.666666v-170.666667c0-25.6 17.066667-42.666667 42.666666-42.666667h170.666667m0-42.666666H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333v-170.666667c0-46.933333-38.4-85.333333-85.333333-85.333333zM384 170.666667c25.6 0 42.666667 17.066667 42.666667 42.666666v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666667H213.333333c-25.6 0-42.666667-17.066667-42.666666-42.666667V213.333333c0-25.6 17.066667-42.666667 42.666666-42.666666h170.666667m0-42.666667H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333333-85.333333zM810.666667 170.666667c25.6 0 42.666667 17.066667 42.666666 42.666666v170.666667c0 25.6-17.066667 42.666667-42.666666 42.666667h-170.666667c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6 17.066667-42.666667 42.666667-42.666666h170.666667m0-42.666667h-170.666667c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli0_duobianxing_10" viewBox="0 0 1024 1024"><path d="M512 166.4l371.2 272-140.8 438.4H281.6L140.8 435.2 512 166.4m0-80L64 412.8l169.6 528h553.6L960 412.8 512 86.4z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_zhixian_10" viewBox="0 0 1024 1024"><path d="M808.416 170.336l45.248 45.248-640.32 640.32-45.28-45.216z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_jiantou_10" viewBox="0 0 1024 1024"><path d="M886.4 137.6l-272 92.8 67.2 67.2-544 544 44.8 44.8 544-544 67.2 67.2z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_qiehuandaocizhuangtaihoukexuanzhongyihuatuxing_10" viewBox="0 0 1024 1024"><path d="M368 438.4z" fill="#3D3D3D" ></path><path d="M896 128h-128v64h64v128h64V128z m-192 0h-128v64h128V128z m-192 0h-128v64h128V128z m-192 0H128v128h64V192h128V128z m-128 192H128v128h64v-128z m0 192H128v128h64v-128z m0 192H128v192h128v-64H192v-128z m256 128h-128v64h128v-64z m192 0h-128v64h128v-64z m192 0h-128v64h128v-64z m64-64h-64v128h64v-128z m0-192h-64v128h64v-128z m0-192h-64v128h64v-128zM384 320c35.2 0 64 28.8 64 64s-28.8 64-64 64-64-28.8-64-64 28.8-64 64-64m0-32c-54.4 0-96 41.6-96 96s41.6 96 96 96 96-41.6 96-96-41.6-96-96-96z" fill="#666666" ></path><path d="M393.6 393.6L528 800l67.2-204.8 204.8-67.2z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_qingkongsuoyouyihuatuxing_10" viewBox="0 0 1024 1024"><path d="M928 368H608v-192c0-54.4-41.6-96-96-96s-96 41.6-96 96v192H96v192h64v384h704v-384h64v-192z m-448-192c0-19.2 12.8-32 32-32s32 12.8 32 32v192h-64v-192z m320 704h-96v-192h-64v192h-96v-192h-64v192h-96v-192h-64v192H224v-320h576v320z m64-384H160v-64h704v64z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_xuanzhongtuxingzaibianjizhonghui_10" viewBox="0 0 1024 1024"><path d="M460.8 656l-96 3.2 3.2-96 300.8-300.8 92.8 92.8zM806.784 128l90.496 90.496-90.496 90.528-90.528-90.528z" fill="#666666" ></path><path d="M832 608v224H192V192h224V128H128v768h768v-288h-64z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_chexiaoshangyibu_10" viewBox="0 0 1024 1024"><path d="M656 272H320v-128l-256 160 256 160v-128h336c131.2 0 240 108.8 240 240s-108.8 240-240 240H64v64h592c166.4 0 304-137.6 304-304s-137.6-304-304-304z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_juxing_10" viewBox="0 0 1024 1024"><path d="M896 256v512H128V256h768m64-64H64v640h896V192z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_xianxuanzhongtuxingzaishanchusvg_10" viewBox="0 0 1024 1024"><path d="M880 224H704V144c0-25.6-22.4-48-48-48h-288c-25.6 0-48 22.4-48 48V224H144C118.4 224 96 246.4 96 272S118.4 320 144 320H192v560c0 25.6 22.4 48 48 48h544c25.6 0 48-22.4 48-48V320h48c25.6 0 48-22.4 48-48S905.6 224 880 224zM384 160h256v64h-256V160z m384 704H256V320h512v544z" fill="#666666" ></path><path d="M384 448c-19.2 0-32 12.8-32 32v224c0 19.2 12.8 32 32 32s32-12.8 32-32v-224c0-19.2-12.8-32-32-32zM512 448c-19.2 0-32 12.8-32 32v224c0 19.2 12.8 32 32 32s32-12.8 32-32v-224c0-19.2-12.8-32-32-32zM640 448c-19.2 0-32 12.8-32 32v96c0 19.2 12.8 32 32 32s32-12.8 32-32v-96c0-19.2-12.8-32-32-32z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_xiugai-09" viewBox="0 0 1024 1024"><path d="M251.733333 789.333333l-128 4.266667 4.266667-128 401.066667-401.066667 119.466666 123.733334zM712.832 85.76l120.704 120.704-120.704 120.661333-120.661333-120.661333zM85.333333 853.333333h853.333334v85.333334H85.333333z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_xinzeng_v" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#0065FF" ></path><path d="M256 448h512v128H256z" fill="#0065FF" ></path><path d="M576 256v512H448V256z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli_mobanzhushou-09" viewBox="0 0 1024 1024"><path d="M853.333333 1024H170.666667c-93.866667 0-170.666667-76.8-170.666667-170.666667V170.666667c0-93.866667 76.8-170.666667 170.666667-170.666667h682.666666c93.866667 0 170.666667 76.8 170.666667 170.666667v682.666666c0 93.866667-76.8 170.666667-170.666667 170.666667z" fill="#0065FF" ></path><path d="M213.333333 213.333333h597.333334v128H213.333333zM554.666667 426.666667h256v384h-256zM213.333333 426.666667h256v128H213.333333zM213.333333 640h256v170.666667H213.333333z" fill="#FFFFFF" ></path></symbol><symbol id="icon-suanliguanli_dengdailunxunchuli-18" viewBox="0 0 1024 1024"><path d="M739.555556 113.777778c34.133333 0 56.888889 22.755556 56.888888 56.888889v91.022222l-187.733333 227.555555c-11.377778 11.377778-11.377778 28.444444 0 34.133334l187.733333 227.555555V853.333333c0 34.133333-22.755556 56.888889-56.888888 56.888889H284.444444c-34.133333 0-56.888889-22.755556-56.888888-56.888889v-91.022222l187.733333-227.555555c11.377778-11.377778 11.377778-28.444444 0-34.133334L227.555556 261.688889V170.666667c0-34.133333 22.755556-56.888889 56.888888-56.888889h455.111112m0-56.888889H284.444444c-62.577778 0-113.777778 51.2-113.777777 113.777778v91.022222c0 11.377778 5.688889 28.444444 11.377777 34.133333L341.333333 494.933333c11.377778 11.377778 11.377778 28.444444 0 34.133334l-159.288889 193.422222c-5.688889 11.377778-11.377778 22.755556-11.377777 39.822222V853.333333c0 62.577778 51.2 113.777778 113.777777 113.777778h455.111112c62.577778 0 113.777778-51.2 113.777777-113.777778v-91.022222c0-11.377778-5.688889-28.444444-11.377777-34.133333L682.666667 529.066667c-11.377778-11.377778-11.377778-28.444444 0-34.133334l159.288889-193.422222c5.688889-11.377778 11.377778-22.755556 11.377777-39.822222V170.666667c0-62.577778-51.2-113.777778-113.777777-113.777778z" fill="#666666" ></path><path d="M739.555556 796.444444H284.444444v56.888889h455.111112v-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_shanchu_v" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#FF4B33" ></path><path d="M256 448h512v128H256z" fill="#FF4B33" ></path></symbol><symbol id="icon-suanliguanli_suanfashijian-09" viewBox="0 0 1024 1024"><path d="M853.333333 1024H170.666667c-93.866667 0-170.666667-76.8-170.666667-170.666667V170.666667c0-93.866667 76.8-170.666667 170.666667-170.666667h682.666666c93.866667 0 170.666667 76.8 170.666667 170.666667v682.666666c0 93.866667-76.8 170.666667-170.666667 170.666667z" fill="#0065FF" ></path><path d="M362.666667 213.333333H315.733333v102.4H213.333333v46.933334h102.4v102.4h46.933334V362.666667h102.4V315.733333H362.666667V213.333333zM810.666667 669.866667h-251.733334v46.933333H810.666667v-46.933333zM708.096 285.738667l30.165333 30.165333-422.4 422.357333-30.122666-30.165333z" fill="#FFFFFF" ></path></symbol><symbol id="icon-suanliguanli_fanhui-18" viewBox="0 0 1024 1024"><path d="M910.222222 455.111111H250.311111L455.111111 250.311111c22.755556-22.755556 22.755556-56.888889 0-79.644444-22.755556-22.755556-56.888889-22.755556-79.644444 0L73.955556 472.177778c-22.755556 22.755556-22.755556 56.888889 0 79.644444L375.466667 853.333333c22.755556 22.755556 56.888889 22.755556 79.644444 0 22.755556-22.755556 22.755556-56.888889 0-79.644444L250.311111 568.888889H910.222222c34.133333 0 56.888889-22.755556 56.888889-56.888889s-28.444444-56.888889-56.888889-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_suanfabuquan-18" viewBox="0 0 1024 1024"><path d="M113.777778 170.666667v682.666666c0 62.577778 51.2 113.777778 113.777778 113.777778h284.444444v-56.888889H227.555556c-34.133333 0-56.888889-22.755556-56.888889-56.888889V170.666667c0-34.133333 22.755556-56.888889 56.888889-56.888889h568.888888c34.133333 0 56.888889 22.755556 56.888889 56.888889v398.222222h56.888889V170.666667c0-62.577778-51.2-113.777778-113.777778-113.777778H227.555556c-62.577778 0-113.777778 51.2-113.777778 113.777778z" fill="#666666" ></path><path d="M768 227.555556h-512c-17.066667 0-28.444444 11.377778-28.444444 28.444444s11.377778 28.444444 28.444444 28.444444h512c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444444zM768 398.222222h-512c-17.066667 0-28.444444 11.377778-28.444444 28.444445s11.377778 28.444444 28.444444 28.444444h512c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444445zM631.466667 659.911111c-5.688889 0-17.066667 0-22.755556 5.688889-11.377778 11.377778-11.377778 28.444444 0 39.822222l238.933333 238.933334c5.688889 5.688889 11.377778 5.688889 22.755556 5.688888s17.066667 0 22.755556-5.688888c11.377778-11.377778 11.377778-28.444444 0-39.822223l-238.933334-238.933333c-11.377778-5.688889-17.066667-5.688889-22.755555-5.688889z" fill="#666666" ></path><path d="M870.4 659.911111c-5.688889 0-17.066667 0-22.755556 5.688889l-238.933333 238.933333c-11.377778 11.377778-11.377778 28.444444 0 39.822223 5.688889 5.688889 11.377778 5.688889 22.755556 5.688888 5.688889 0 17.066667 0 22.755555-5.688888l238.933334-238.933334c11.377778-11.377778 11.377778-28.444444 0-39.822222-11.377778-5.688889-17.066667-5.688889-22.755556-5.688889z" fill="#666666" ></path><path d="M483.555556 568.888889h-227.555556c-17.066667 0-28.444444 11.377778-28.444444 28.444444s11.377778 28.444444 28.444444 28.444445h227.555556c17.066667 0 28.444444-11.377778 28.444444-28.444445s-11.377778-28.444444-28.444444-28.444444z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_shujuliuzhuan-09" viewBox="0 0 1024 1024"><path d="M853.333333 1024H170.666667c-93.866667 0-170.666667-76.8-170.666667-170.666667V170.666667c0-93.866667 76.8-170.666667 170.666667-170.666667h682.666666c93.866667 0 170.666667 76.8 170.666667 170.666667v682.666666c0 93.866667-76.8 170.666667-170.666667 170.666667z" fill="#0065FF" ></path><path d="M307.2 290.133333m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#FFFFFF" ></path><path d="M750.933333 354.133333m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#FFFFFF" ></path><path d="M529.066667 686.933333c-4.266667 0-12.8-4.266667-12.8-8.533333L290.133333 298.666667c-4.266667-8.533333 0-17.066667 8.533334-21.333334 8.533333-4.266667 17.066667 0 21.333333 4.266667l209.066667 358.4 209.066666-298.666667c4.266667-8.533333 12.8-8.533333 21.333334-4.266666 8.533333 8.533333 8.533333 17.066667 4.266666 25.6l-221.866666 315.733333c-4.266667 4.266667-8.533333 8.533333-12.8 8.533333z" fill="#FFFFFF" ></path><path d="M716.8 733.866667m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#FFFFFF" ></path><path d="M273.066667 669.866667m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#FFFFFF" ></path><path d="M716.8 750.933333c-4.266667 0-12.8-4.266667-12.8-8.533333L494.933333 384l-209.066666 298.666667c-4.266667 8.533333-12.8 8.533333-21.333334 4.266666-8.533333-8.533333-8.533333-17.066667-4.266666-25.6l221.866666-315.733333c4.266667-4.266667 8.533333-8.533333 12.8-8.533333 4.266667 0 8.533333 4.266667 12.8 8.533333l221.866667 379.733333c4.266667 8.533333 0 17.066667-4.266667 21.333334 0 4.266667-4.266667 4.266667-8.533333 4.266666z" fill="#FFFFFF" ></path></symbol><symbol id="icon-suanliguanli_dakaifenxikaiguan-18" viewBox="0 0 1024 1024"><path d="M853.333333 170.666667c34.133333 0 56.888889 22.755556 56.888889 56.888889v398.222222c0 34.133333-22.755556 56.888889-56.888889 56.888889H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888889V227.555556c0-34.133333 22.755556-56.888889 56.888889-56.888889h682.666666m0-56.888889H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777778v398.222222c0 62.577778 51.2 113.777778 113.777778 113.777778h682.666666c62.577778 0 113.777778-51.2 113.777778-113.777778V227.555556c0-62.577778-51.2-113.777778-113.777778-113.777778zM938.666667 853.333333h-853.333334c-17.066667 0-28.444444 11.377778-28.444444 28.444445s11.377778 28.444444 28.444444 28.444444h853.333334c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444445z" fill="#666666" ></path><path d="M199.111111 597.333333c-5.688889 0-11.377778 0-17.066667-5.688889-11.377778-11.377778-17.066667-28.444444-5.688888-39.822222l170.666666-227.555555c5.688889-5.688889 11.377778-11.377778 17.066667-11.377778s17.066667 0 22.755555 5.688889l261.688889 204.8 153.6-256c5.688889-11.377778 22.755556-17.066667 39.822223-11.377778 11.377778 11.377778 17.066667 28.444444 5.688888 45.511111l-170.666666 284.444445c-5.688889 5.688889-11.377778 11.377778-17.066667 11.377777-5.688889 0-17.066667 0-22.755555-5.688889L375.466667 381.155556l-153.6 204.8c-5.688889 5.688889-11.377778 11.377778-22.755556 11.377777z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_yinguzhangweichuli-18" viewBox="0 0 1024 1024"><path d="M512 312.888889v227.555555-227.555555m0-56.888889c-34.133333 0-56.888889 22.755556-56.888889 56.888889v227.555555c0 34.133333 22.755556 56.888889 56.888889 56.888889s56.888889-22.755556 56.888889-56.888889v-227.555555c0-34.133333-22.755556-56.888889-56.888889-56.888889zM512 654.222222c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888889 56.888889-22.755556 56.888889-56.888889-22.755556-56.888889-56.888889-56.888889z" fill="#666666" ></path><path d="M512 113.777778c11.377778 0 34.133333 0 51.2 28.444444l324.266667 568.888889c17.066667 28.444444 5.688889 45.511111 0 56.888889-5.688889 5.688889-17.066667 28.444444-51.2 28.444444H187.733333c-28.444444 0-45.511111-17.066667-51.2-28.444444-5.688889-5.688889-17.066667-28.444444 0-56.888889l324.266667-568.888889c17.066667-22.755556 39.822222-28.444444 51.2-28.444444m0-56.888889c-39.822222 0-79.644444 22.755556-96.711111 56.888889L91.022222 682.666667c-45.511111 73.955556 11.377778 170.666667 96.711111 170.666666h648.533334c85.333333 0 142.222222-96.711111 96.711111-170.666666L608.711111 113.777778c-17.066667-34.133333-56.888889-56.888889-96.711111-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_yinweizhiyuanyinweichuli-18" viewBox="0 0 1024 1024"><path d="M512 113.777778c221.866667 0 398.222222 176.355556 398.222222 398.222222s-176.355556 398.222222-398.222222 398.222222-398.222222-176.355556-398.222222-398.222222 176.355556-398.222222 398.222222-398.222222m0-56.888889C261.688889 56.888889 56.888889 261.688889 56.888889 512s204.8 455.111111 455.111111 455.111111 455.111111-204.8 455.111111-455.111111-204.8-455.111111-455.111111-455.111111z" fill="#666666" ></path><path d="M512 284.444444v284.444445-284.444445m0-56.888888c-34.133333 0-56.888889 22.755556-56.888889 56.888888v284.444445c0 34.133333 22.755556 56.888889 56.888889 56.888889s56.888889-22.755556 56.888889-56.888889V284.444444c0-34.133333-22.755556-56.888889-56.888889-56.888888zM512 682.666667c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888888 56.888889-22.755556 56.888889-56.888888-22.755556-56.888889-56.888889-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_zhengzaifenxi-18" viewBox="0 0 1024 1024"><path d="M512 56.888889C261.688889 56.888889 56.888889 261.688889 56.888889 512s204.8 455.111111 455.111111 455.111111v-56.888889c-221.866667 0-398.222222-176.355556-398.222222-398.222222s176.355556-398.222222 398.222222-398.222222 398.222222 176.355556 398.222222 398.222222h56.888889c0-250.311111-204.8-455.111111-455.111111-455.111111z" fill="#666666" ></path><path d="M483.555556 568.888889c-17.066667 0-28.444444-11.377778-28.444445-28.444445v-284.444444c0-17.066667 11.377778-28.444444 28.444445-28.444444s28.444444 11.377778 28.444444 28.444444v284.444444c0 17.066667-11.377778 28.444444-28.444444 28.444445zM597.333333 967.111111c-17.066667 0-28.444444-11.377778-28.444444-28.444444v-227.555556c0-17.066667 11.377778-28.444444 28.444444-28.444444s28.444444 11.377778 28.444445 28.444444v227.555556c0 17.066667-11.377778 28.444444-28.444445 28.444444zM768 967.111111c-17.066667 0-28.444444-11.377778-28.444444-28.444444v-170.666667c0-17.066667 11.377778-28.444444 28.444444-28.444444s28.444444 11.377778 28.444444 28.444444v170.666667c0 17.066667-11.377778 28.444444-28.444444 28.444444zM938.666667 967.111111c-17.066667 0-28.444444-11.377778-28.444445-28.444444v-113.777778c0-17.066667 11.377778-28.444444 28.444445-28.444445s28.444444 11.377778 28.444444 28.444445v113.777778c0 17.066667-11.377778 28.444444-28.444444 28.444444z" fill="#666666" ></path><path d="M455.111111 540.444444c0-17.066667 11.377778-28.444444 28.444445-28.444444h170.666666c17.066667 0 28.444444 11.377778 28.444445 28.444444s-11.377778 28.444444-28.444445 28.444445h-170.666666c-17.066667 0-28.444444-11.377778-28.444445-28.444445z" fill="#666666" ></path></symbol><symbol id="icon-querenmima-09" viewBox="0 0 1024 1024"><path d="M648.533333 622.933333l-149.333333 149.333334c-8.533333 8.533333-21.333333 8.533333-29.866667 0-8.533333-8.533333-8.533333-21.333333 0-29.866667l149.333334-149.333333c8.533333-8.533333 21.333333-8.533333 29.866666 0 8.533333 8.533333 8.533333 21.333333 0 29.866666z" fill="#999999" ></path><path d="M405.333333 652.8l89.6 89.6c8.533333 8.533333 8.533333 21.333333 0 29.866667-8.533333 8.533333-21.333333 8.533333-29.866666 0L375.466667 682.666667c-8.533333-8.533333-8.533333-21.333333 0-29.866667 8.533333-8.533333 21.333333-8.533333 29.866666 0zM512 85.333333C392.533333 85.333333 298.666667 179.2 298.666667 298.666667v128h42.666666V298.666667c0-93.866667 76.8-170.666667 170.666667-170.666667s170.666667 76.8 170.666667 170.666667v128h42.666666V298.666667c0-119.466667-93.866667-213.333333-213.333333-213.333334z" fill="#999999" ></path><path d="M768 469.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v341.333333c0 25.6-17.066667 42.666667-42.666667 42.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667v-341.333333c0-25.6 17.066667-42.666667 42.666667-42.666667h512m0-42.666666H256c-46.933333 0-85.333333 38.4-85.333333 85.333333v341.333333c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334v-341.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z" fill="#999999" ></path></symbol><symbol id="icon-xiazai_10" viewBox="0 0 1024 1024"><path d="M752 896h-480c-9.6 0-16-6.4-16-16s6.4-16 16-16h480c9.6 0 16 6.4 16 16s-6.4 16-16 16zM656 617.6l-128 128V368c0-9.6-6.4-16-16-16s-16 6.4-16 16v377.6l-128-128c-6.4-6.4-16-6.4-22.4 0s-6.4 16 0 22.4l156.8 156.8s3.2 3.2 6.4 3.2c3.2 3.2 9.6 3.2 12.8 0 3.2 0 3.2-3.2 6.4-3.2l156.8-156.8c6.4-6.4 6.4-16 0-22.4s-22.4-6.4-28.8 0z" fill="#497EF4" ></path><path d="M512 160c105.6 0 198.4 67.2 230.4 169.6l6.4 25.6 25.6-3.2H784c80 0 144 64 144 144S864 640 784 640v32c96 0 176-80 176-176S880 320 784 320h-12.8C736 208 633.6 128 512 128c-115.2 0-214.4 73.6-256 176h-16C144 304 64 384 64 480s80 176 176 176v-32C160 624 96 560 96 480s64-144 144-144h12.8l25.6 3.2 9.6-22.4C323.2 224 412.8 160 512 160" fill="#497EF4" ></path><path d="M240 640m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#497EF4" ></path><path d="M784 656m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#497EF4" ></path></symbol><symbol id="icon-shebeiguanli_zhongqishebei-18" viewBox="0 0 1024 1024"><path d="M517.688889 56.888889h-11.377778c-34.133333 0-56.888889 22.755556-56.888889 56.888889v472.177778c0 34.133333 22.755556 56.888889 56.888889 56.888888h17.066667c34.133333 0 56.888889-22.755556 56.888889-56.888888V113.777778c-5.688889-34.133333-28.444444-56.888889-62.577778-56.888889z" fill="#FFFFFF" ></path><path d="M967.111111 512c0 159.288889-79.644444 301.511111-204.8 381.155556-34.133333 22.755556-73.955556 45.511111-119.466667 56.888888-39.822222 11.377778-85.333333 17.066667-130.844444 17.066667s-91.022222-5.688889-130.844444-17.066667c-39.822222-11.377778-79.644444-28.444444-119.466667-56.888888C136.533333 813.511111 56.888889 671.288889 56.888889 512s79.644444-301.511111 204.8-381.155556l22.755555 51.2C182.044444 256 113.777778 375.466667 113.777778 512s68.266667 256 170.666666 329.955556c34.133333 22.755556 73.955556 45.511111 119.466667 56.888888 34.133333 5.688889 73.955556 11.377778 108.088889 11.377778 39.822222 0 73.955556-5.688889 108.088889-17.066666 45.511111-11.377778 85.333333-28.444444 119.466667-56.888889 102.4-73.955556 170.666667-193.422222 170.666666-329.955556s-68.266667-256-170.666666-329.955555l22.755555-51.2C887.466667 210.488889 967.111111 352.711111 967.111111 512z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_zhongqishezhi-18" viewBox="0 0 1024 1024"><path d="M512 403.911111c62.577778 0 108.088889 51.2 108.088889 108.088889S568.888889 620.088889 512 620.088889 403.911111 574.577778 403.911111 512 449.422222 403.911111 512 403.911111m0-56.888889C420.977778 347.022222 347.022222 420.977778 347.022222 512s73.955556 164.977778 164.977778 164.977778 164.977778-73.955556 164.977778-164.977778S603.022222 347.022222 512 347.022222z" fill="#0065FF" ></path><path d="M512 113.777778c17.066667 0 28.444444 11.377778 28.444444 28.444444V238.933333l45.511112 11.377778c22.755556 5.688889 51.2 17.066667 68.266666 28.444445l39.822222 22.755555 28.444445-28.444444 34.133333-34.133334c5.688889-5.688889 17.066667-5.688889 17.066667-5.688889s11.377778 0 17.066667 5.688889c5.688889 5.688889 5.688889 17.066667 5.688888 17.066667 0 5.688889 0 11.377778-5.688888 17.066667l-34.133334 34.133333-28.444444 28.444444 22.755555 39.822223c11.377778 22.755556 22.755556 45.511111 28.444445 68.266666l11.377778 45.511111H887.466667c11.377778-5.688889 22.755556 5.688889 22.755555 22.755556 0 17.066667-11.377778 28.444444-28.444444 28.444444H785.066667l-11.377778 45.511112c-5.688889 22.755556-17.066667 51.2-28.444445 68.266666l-22.755555 39.822222 28.444444 28.444445 34.133334 34.133333c11.377778 11.377778 11.377778 28.444444 0 34.133334-5.688889 5.688889-17.066667 5.688889-17.066667 5.688888s-11.377778 0-17.066667-5.688888l-34.133333-34.133334-28.444444-28.444444-39.822223 22.755555c-22.755556 11.377778-45.511111 22.755556-68.266666 28.444445l-45.511111 11.377778V887.466667c5.688889 11.377778-5.688889 22.755556-22.755556 22.755555s-28.444444-11.377778-28.444444-28.444444V785.066667l-45.511112-11.377778c-22.755556-5.688889-51.2-17.066667-68.266666-28.444445l-39.822222-22.755555-28.444445 28.444444-34.133333 34.133334c-5.688889 5.688889-17.066667 5.688889-17.066667 5.688889s-11.377778 0-17.066667-5.688889c-11.377778-11.377778-11.377778-28.444444 0-34.133334l34.133334-34.133333 28.444444-28.444444-22.755555-39.822223c-11.377778-22.755556-22.755556-45.511111-28.444445-68.266666l-11.377778-39.822223H142.222222c-17.066667 0-28.444444-11.377778-28.444444-28.444444s11.377778-28.444444 28.444444-28.444444H238.933333l11.377778-45.511112c5.688889-22.755556 17.066667-51.2 28.444445-68.266666l22.755555-39.822222-34.133333-28.444445-34.133334-34.133333c-11.377778-5.688889-11.377778-17.066667-11.377777-17.066667 0-5.688889 0-11.377778 5.688889-17.066667 5.688889-5.688889 17.066667-5.688889 17.066666-5.688888s11.377778 0 17.066667 5.688888l34.133333 34.133334 28.444445 28.444444 39.822222-22.755555c22.755556-11.377778 45.511111-22.755556 68.266667-28.444445l45.511111-11.377778V142.222222c5.688889-17.066667 17.066667-28.444444 34.133333-28.444444m0-56.888889c-45.511111 0-85.333333 39.822222-85.333333 85.333333v51.2c-28.444444 5.688889-56.888889 17.066667-85.333334 34.133334l-34.133333-39.822223c-17.066667-17.066667-39.822222-22.755556-56.888889-22.755555s-39.822222 5.688889-56.888889 22.755555c-34.133333 34.133333-34.133333 85.333333 0 119.466667L227.555556 341.333333c-17.066667 28.444444-28.444444 56.888889-34.133334 85.333334h-51.2C96.711111 426.666667 56.888889 466.488889 56.888889 512s39.822222 85.333333 85.333333 85.333333h51.2c5.688889 28.444444 17.066667 56.888889 34.133334 85.333334l-34.133334 34.133333c-34.133333 34.133333-34.133333 85.333333 0 119.466667 17.066667 17.066667 39.822222 22.755556 56.888889 22.755555 22.755556 0 39.822222-5.688889 56.888889-22.755555L341.333333 796.444444c28.444444 17.066667 56.888889 28.444444 85.333334 34.133334v51.2c0 45.511111 39.822222 85.333333 85.333333 85.333333s85.333333-39.822222 85.333333-85.333333v-51.2c28.444444-5.688889 56.888889-17.066667 85.333334-34.133334l34.133333 34.133334c17.066667 17.066667 39.822222 22.755556 56.888889 22.755555s39.822222-5.688889 56.888889-22.755555c34.133333-34.133333 34.133333-85.333333 0-119.466667L796.444444 682.666667c17.066667-28.444444 28.444444-56.888889 34.133334-85.333334h51.2c45.511111 0 85.333333-39.822222 85.333333-85.333333s-39.822222-85.333333-85.333333-85.333333h-51.2c-5.688889-28.444444-17.066667-56.888889-34.133334-85.333334l34.133334-34.133333c34.133333-34.133333 34.133333-85.333333 0-119.466667-17.066667-17.066667-39.822222-22.755556-56.888889-22.755555s-39.822222 5.688889-56.888889 22.755555L682.666667 227.555556c-28.444444-17.066667-56.888889-28.444444-85.333334-34.133334v-51.2C597.333333 96.711111 557.511111 56.888889 512 56.888889z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_suanfaxiangqing-09" viewBox="0 0 1024 1024"><path d="M768 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h341.333333l256-256V170.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z m-170.666667 793.6V725.333333c0-25.6 17.066667-42.666667 42.666667-42.666666h153.6L597.333333 878.933333z m42.666667-238.933333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667V170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667h512c25.6 0 42.666667 17.066667 42.666667 42.666667v469.333333h-170.666667z" fill="#0065FF" ></path><path d="M379.733333 413.866667l-132.266666 64c-8.533333 4.266667-12.8 12.8-12.8 21.333333v8.533333c0 8.533333 4.266667 17.066667 12.8 21.333334l132.266666 64h8.533334c4.266667 0 8.533333 0 12.8-4.266667 4.266667-4.266667 8.533333-12.8 8.533333-17.066667V554.666667c0-8.533333-4.266667-17.066667-12.8-21.333334l-81.066667-38.4 81.066667-38.4c8.533333-4.266667 12.8-12.8 12.8-21.333333V426.666667c0-8.533333-4.266667-12.8-8.533333-17.066667-4.266667 0-12.8 0-21.333334 4.266667zM567.466667 354.133333H554.666667c-8.533333 0-17.066667 4.266667-21.333334 12.8l-98.133333 243.2c-4.266667 8.533333 0 12.8 4.266667 21.333334 4.266667 4.266667 8.533333 8.533333 17.066666 8.533333h12.8c8.533333 0 17.066667-4.266667 21.333334-12.8L584.533333 384c4.266667-8.533333 0-12.8-4.266666-21.333333 0-4.266667-8.533333-8.533333-12.8-8.533334zM776.533333 473.6l-132.266666-64c-8.533333-4.266667-12.8-4.266667-21.333334 0-4.266667 4.266667-8.533333 12.8-8.533333 17.066667v8.533333c0 8.533333 4.266667 17.066667 12.8 21.333333l81.066667 38.4-81.066667 38.4c-8.533333 4.266667-12.8 12.8-12.8 21.333334v8.533333c0 8.533333 4.266667 12.8 8.533333 17.066667 4.266667 4.266667 8.533333 4.266667 12.8 4.266666h8.533334l132.266666-64c8.533333-4.266667 12.8-12.8 12.8-21.333333v-8.533333c0-4.266667-4.266667-12.8-12.8-17.066667z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_xiangyou_kedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#E5E5E5" ></path><path d="M425.6 224c9.6 0 16 3.2 22.4 9.6l220.8 220.8c16 16 25.6 35.2 25.6 57.6s-9.6 44.8-25.6 57.6L448 790.4c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l220.8-220.8c3.2-3.2 6.4-9.6 6.4-12.8s-3.2-9.6-6.4-12.8l-220.8-220.8c-12.8-12.8-12.8-32 0-44.8 6.4-6.4 16-9.6 22.4-9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_xiangyou_bukedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F5F5F5" ></path><path d="M425.6 224c9.6 0 16 3.2 22.4 9.6l220.8 220.8c16 16 25.6 35.2 25.6 57.6s-9.6 44.8-25.6 57.6L448 790.4c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l220.8-220.8c3.2-3.2 6.4-9.6 6.4-12.8s-3.2-9.6-6.4-12.8l-220.8-220.8c-12.8-12.8-12.8-32 0-44.8 6.4-6.4 16-9.6 22.4-9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_daochu-18" viewBox="0 0 1024 1024"><path d="M881.777778 540.444444h-568.888889c-17.066667 0-28.444444-11.377778-28.444445-28.444444s11.377778-28.444444 28.444445-28.444444h568.888889c17.066667 0 28.444444 11.377778 28.444444 28.444444s-11.377778 28.444444-28.444444 28.444444z" fill="#0065FF" ></path><path d="M859.022222 534.755556l-164.977778-164.977778c-11.377778-11.377778-11.377778-28.444444 0-39.822222 11.377778-11.377778 28.444444-11.377778 39.822223 0l164.977777 164.977777c11.377778 11.377778 11.377778 28.444444 0 39.822223-5.688889 5.688889-28.444444 5.688889-39.822222 0z" fill="#0065FF" ></path><path d="M699.733333 654.222222l164.977778-164.977778c11.377778-11.377778 28.444444-11.377778 39.822222 0 11.377778 11.377778 11.377778 28.444444 0 39.822223l-164.977777 170.666666c-11.377778 11.377778-28.444444 11.377778-39.822223 0-11.377778-11.377778-11.377778-34.133333 0-45.511111z" fill="#0065FF" ></path><path d="M739.555556 227.555556c0-28.444444-28.444444-56.888889-56.888889-56.888889H227.555556c-28.444444 0-56.888889 28.444444-56.888889 56.888889v568.888888c0 28.444444 28.444444 56.888889 56.888889 56.888889h455.111111c28.444444 0 56.888889-28.444444 56.888889-56.888889h56.888888c0 62.577778-51.2 113.777778-113.777777 113.777778H227.555556c-62.577778 0-113.777778-51.2-113.777778-113.777778V227.555556c0-62.577778 51.2-113.777778 113.777778-113.777778h455.111111c62.577778 0 113.777778 51.2 113.777777 113.777778h-56.888888z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_jiebangshebei_button-18" viewBox="0 0 1024 1024"><path d="M449.422222 290.133333m-28.444444 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M733.866667 574.577778m-28.444445 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M290.133333 449.422222m-28.444444 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M574.577778 733.866667m-28.444445 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M273.066667 312.888889L187.733333 233.244444c-11.377778-11.377778-11.377778-28.444444 0-39.822222 11.377778-11.377778 28.444444-11.377778 39.822223 0l79.644444 79.644445c11.377778 11.377778 11.377778 28.444444 0 39.822222-5.688889 11.377778-22.755556 11.377778-34.133333 0zM335.644444 216.177778v-113.777778c0-17.066667 11.377778-28.444444 28.444445-28.444444s28.444444 11.377778 28.444444 28.444444v113.777778c0 17.066667-11.377778 28.444444-28.444444 28.444444s-28.444444-11.377778-28.444445-28.444444zM216.177778 335.644444h-113.777778c-17.066667 0-28.444444 11.377778-28.444444 28.444445s11.377778 28.444444 28.444444 28.444444h113.777778c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444445zM711.111111 750.933333l79.644445 79.644445c11.377778 11.377778 28.444444 11.377778 39.822222 0 11.377778-11.377778 11.377778-28.444444 0-39.822222l-79.644445-79.644445c-11.377778-11.377778-28.444444-11.377778-39.822222 0-11.377778 11.377778-11.377778 28.444444 0 39.822222zM807.822222 688.355556h113.777778c17.066667 0 28.444444-11.377778 28.444444-28.444445s-11.377778-28.444444-28.444444-28.444444h-113.777778c-17.066667 0-28.444444 11.377778-28.444444 28.444444s11.377778 28.444444 28.444444 28.444445zM688.355556 807.822222v113.777778c0 17.066667-11.377778 28.444444-28.444445 28.444444s-28.444444-11.377778-28.444444-28.444444v-113.777778c0-17.066667 11.377778-28.444444 28.444444-28.444444s28.444444 11.377778 28.444445 28.444444zM432.355556 836.266667c-68.266667 68.266667-176.355556 68.266667-238.933334 0-68.266667-68.266667-68.266667-176.355556 0-238.933334l119.466667-119.466666-39.822222-45.511111-125.155556 119.466666c-91.022222 91.022222-91.022222 233.244444 0 324.266667 91.022222 91.022222 233.244444 91.022222 324.266667 0l119.466666-119.466667-39.822222-39.822222-119.466666 119.466667z m443.733333-688.355556C785.066667 56.888889 642.844444 56.888889 551.822222 147.911111L432.355556 273.066667l39.822222 39.822222 119.466666-119.466667c68.266667-68.266667 176.355556-68.266667 238.933334 0 68.266667 68.266667 68.266667 176.355556 0 238.933334l-119.466667 119.466666 39.822222 39.822222 119.466667-119.466666c91.022222-91.022222 91.022222-233.244444 5.688889-324.266667z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_tianjiashebei-18" viewBox="0 0 1024 1024"><path d="M512 938.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888889v-739.555556c0-34.133333 22.755556-56.888889 56.888889-56.888889s56.888889 22.755556 56.888889 56.888889v739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888889z" fill="#FFFFFF" ></path><path d="M85.333333 512c0-34.133333 22.755556-56.888889 56.888889-56.888889h739.555556c34.133333 0 56.888889 22.755556 56.888889 56.888889s-22.755556 56.888889-56.888889 56.888889h-739.555556c-34.133333 0-56.888889-22.755556-56.888889-56.888889z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_jiebangshebei_biaoge-09" viewBox="0 0 1024 1024"><path d="M465.066667 345.6m-21.333334 0a21.333333 21.333333 0 1 0 42.666667 0 21.333333 21.333333 0 1 0-42.666667 0Z" fill="#0065FF" ></path><path d="M678.4 558.933333m-21.333333 0a21.333333 21.333333 0 1 0 42.666666 0 21.333333 21.333333 0 1 0-42.666666 0Z" fill="#0065FF" ></path><path d="M345.6 465.066667m-21.333333 0a21.333333 21.333333 0 1 0 42.666666 0 21.333333 21.333333 0 1 0-42.666666 0Z" fill="#0065FF" ></path><path d="M558.933333 678.4m-21.333333 0a21.333333 21.333333 0 1 0 42.666667 0 21.333333 21.333333 0 1 0-42.666667 0Z" fill="#0065FF" ></path><path d="M362.666667 844.8c-51.2 51.2-132.266667 51.2-179.2 0-51.2-51.2-51.2-132.266667 0-179.2l179.2-179.2-29.866667-29.866667-179.2 179.2C85.333333 704 85.333333 810.666667 153.6 878.933333c34.133333 34.133333 76.8 51.2 119.466667 51.2 42.666667 0 89.6-17.066667 119.466666-51.2l179.2-179.2-29.866666-29.866666-179.2 174.933333z m512-695.466667c-68.266667-68.266667-174.933333-68.266667-243.2 0l-179.2 179.2 29.866666 29.866667 179.2-179.2c51.2-51.2 132.266667-51.2 179.2 0 51.2 51.2 51.2 132.266667 0 179.2l-179.2 179.2 29.866667 29.866667 179.2-179.2c68.266667-64 68.266667-170.666667 4.266667-238.933334zM332.8 362.666667L209.066667 238.933333c-8.533333-8.533333-8.533333-21.333333 0-29.866666 8.533333-8.533333 21.333333-8.533333 29.866666 0l119.466667 119.466666c8.533333 8.533333 8.533333 21.333333 0 29.866667-4.266667 12.8-17.066667 12.8-25.6 4.266667zM388.266667 281.6v-170.666667c0-12.8 8.533333-21.333333 21.333333-21.333333s21.333333 8.533333 21.333333 21.333333v170.666667c0 12.8-8.533333 21.333333-21.333333 21.333333s-21.333333-8.533333-21.333333-21.333333zM281.6 388.266667h-170.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h170.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333zM661.333333 691.2l119.466667 119.466667c8.533333 8.533333 21.333333 8.533333 29.866667 0 8.533333-8.533333 8.533333-21.333333 0-29.866667l-119.466667-119.466667c-8.533333-8.533333-21.333333-8.533333-29.866667 0-8.533333 8.533333-8.533333 21.333333 0 29.866667zM742.4 635.733333h170.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333h-170.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333zM635.733333 742.4v170.666667c0 12.8-8.533333 21.333333-21.333333 21.333333s-21.333333-8.533333-21.333333-21.333333v-170.666667c0-12.8 8.533333-21.333333 21.333333-21.333333s21.333333 8.533333 21.333333 21.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_xiangzuo_bukedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F5F5F5" ></path><path d="M598.4 800c-9.6 0-16-3.2-22.4-9.6l-220.8-220.8c-16-16-25.6-35.2-25.6-57.6s9.6-44.8 25.6-57.6L576 233.6c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8l-220.8 220.8c-3.2 3.2-6.4 9.6-6.4 12.8s3.2 9.6 6.4 12.8l220.8 220.8c12.8 12.8 12.8 32 0 44.8-6.4 6.4-16 9.6-22.4 9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_shebeixiangqing-09-09" viewBox="0 0 1024 1024"><path d="M682.666667 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512V170.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z m42.666666 810.666667H256c-21.333333 0-42.666667-21.333333-42.666667-42.666667V170.666667c0-21.333333 21.333333-42.666667 42.666667-42.666667h426.666667c21.333333 0 42.666667 21.333333 42.666666 42.666667v725.333333z" fill="#0065FF" ></path><path d="M768 341.333333h-42.666667v42.666667h42.666667c21.333333 0 42.666667 21.333333 42.666667 42.666667v426.666666c0 21.333333-21.333333 42.666667-42.666667 42.666667H268.8c12.8 25.6 42.666667 42.666667 72.533333 42.666667h426.666667c46.933333 0 85.333333-38.4 85.333333-85.333334V426.666667c0-46.933333-38.4-85.333333-85.333333-85.333334zM554.666667 256c25.6 0 42.666667 17.066667 42.666666 42.666667v42.666666c0 25.6-17.066667 42.666667-42.666666 42.666667H384c-25.6 0-42.666667-17.066667-42.666667-42.666667V298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667h170.666667m0-42.666667H384c-46.933333 0-85.333333 38.4-85.333333 85.333334v42.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333334V298.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z" fill="#0065FF" ></path><path d="M618.666667 554.666667h-298.666667c-12.8 0-21.333333-8.533333-21.333333-21.333334s8.533333-21.333333 21.333333-21.333333h298.666667c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333334zM618.666667 682.666667h-298.666667c-12.8 0-21.333333-8.533333-21.333333-21.333334s8.533333-21.333333 21.333333-21.333333h298.666667c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333334zM448 810.666667h-128c-12.8 0-21.333333-8.533333-21.333333-21.333334s8.533333-21.333333 21.333333-21.333333h128c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333334z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_xiangyou_xuanfu_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#0065FF" ></path><path d="M425.6 224c9.6 0 16 3.2 22.4 9.6l220.8 220.8c16 16 25.6 35.2 25.6 57.6s-9.6 44.8-25.6 57.6L448 790.4c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l220.8-220.8c3.2-3.2 6.4-9.6 6.4-12.8s-3.2-9.6-6.4-12.8l-220.8-220.8c-12.8-12.8-12.8-32 0-44.8 6.4-6.4 16-9.6 22.4-9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_tuichuquanping-08" viewBox="0 0 1024 1024"><path d="M877.714286 1024H146.285714c-80.457143 0-146.285714-65.828571-146.285714-146.285714V146.285714c0-80.457143 65.828571-146.285714 146.285714-146.285714h731.428572c80.457143 0 146.285714 65.828571 146.285714 146.285714v731.428572c0 80.457143-65.828571 146.285714-146.285714 146.285714z" fill="#0065FF" ></path><path d="M190.171429 190.171429c7.314286-7.314286 18.285714-7.314286 25.6 0l179.2 179.2c7.314286 7.314286 7.314286 18.285714 0 25.6-7.314286 7.314286-18.285714 7.314286-25.6 0L190.171429 215.771429c-7.314286-7.314286-7.314286-18.285714 0-25.6z" fill="#FFFFFF" ></path><path d="M402.285714 384c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M384 402.285714c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714zM833.828571 833.828571c-7.314286 7.314286-18.285714 7.314286-25.6 0l-179.2-179.2c-7.314286-7.314286-7.314286-18.285714 0-25.6 7.314286-7.314286 18.285714-7.314286 25.6 0l179.2 179.2c7.314286 7.314286 7.314286 18.285714 0 25.6z" fill="#FFFFFF" ></path><path d="M621.714286 640c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M640 621.714286c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M190.171429 833.828571c-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0 7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0z" fill="#FFFFFF" ></path><path d="M384 621.714286c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M402.285714 640c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M833.828571 190.171429c7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0z" fill="#FFFFFF" ></path><path d="M640 402.285714c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M621.714286 384c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_xiangzuo_kedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#E5E5E5" ></path><path d="M598.4 800c-9.6 0-16-3.2-22.4-9.6l-220.8-220.8c-16-16-25.6-35.2-25.6-57.6s9.6-44.8 25.6-57.6L576 233.6c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8l-220.8 220.8c-3.2 3.2-6.4 9.6-6.4 12.8s3.2 9.6 6.4 12.8l220.8 220.8c12.8 12.8 12.8 32 0 44.8-6.4 6.4-16 9.6-22.4 9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_xiangzuo_xuanfu_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#0065FF" ></path><path d="M598.4 800c-9.6 0-16-3.2-22.4-9.6l-220.8-220.8c-16-16-25.6-35.2-25.6-57.6s9.6-44.8 25.6-57.6L576 233.6c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8l-220.8 220.8c-3.2 3.2-6.4 9.6-6.4 12.8s3.2 9.6 6.4 12.8l220.8 220.8c12.8 12.8 12.8 32 0 44.8-6.4 6.4-16 9.6-22.4 9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_quanping-08" viewBox="0 0 1024 1024"><path d="M877.714286 1024H146.285714c-80.457143 0-146.285714-65.828571-146.285714-146.285714V146.285714c0-80.457143 65.828571-146.285714 146.285714-146.285714h731.428572c80.457143 0 146.285714 65.828571 146.285714 146.285714v731.428572c0 80.457143-65.828571 146.285714-146.285714 146.285714z" fill="#0065FF" ></path><path d="M394.971429 394.971429c-7.314286 7.314286-18.285714 7.314286-25.6 0l-182.857143-179.2c-3.657143-7.314286-3.657143-21.942857 0-29.257143 7.314286-3.657143 21.942857-3.657143 29.257143 0l179.2 179.2c7.314286 10.971429 7.314286 21.942857 0 29.257143z" fill="#FFFFFF" ></path><path d="M182.857143 201.142857c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M201.142857 182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714zM629.028571 629.028571c7.314286-7.314286 18.285714-7.314286 25.6 0l179.2 179.2c7.314286 7.314286 7.314286 18.285714 0 25.6-7.314286 7.314286-18.285714 7.314286-25.6 0l-179.2-179.2c-7.314286-7.314286-7.314286-18.285714 0-25.6z" fill="#FFFFFF" ></path><path d="M841.142857 822.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M822.857143 841.142857c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M394.971429 629.028571c7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0z" fill="#FFFFFF" ></path><path d="M201.142857 841.142857c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M182.857143 822.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M629.028571 394.971429c-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0 7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0z" fill="#FFFFFF" ></path><path d="M822.857143 182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M841.142857 201.142857c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path></symbol><symbol id="icon-jianyifankui-09" viewBox="0 0 1024 1024"><path d="M832 320c-12.8 0-21.333333 8.533333-21.333333 21.333333v512c0 21.333333-21.333333 42.666667-42.666667 42.666667H256c-21.333333 0-42.666667-21.333333-42.666667-42.666667V170.666667c0-21.333333 21.333333-42.666667 42.666667-42.666667h341.333333c12.8 0 21.333333-8.533333 21.333334-21.333333S610.133333 85.333333 597.333333 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V341.333333c0-12.8-8.533333-21.333333-21.333333-21.333333z" fill="#3D3D3D" ></path><path d="M576 362.666667c8.533333 8.533333 21.333333 8.533333 29.866667 0l243.2-243.2c8.533333-8.533333 8.533333-21.333333 0-29.866667-8.533333-8.533333-21.333333-8.533333-29.866667 0l-243.2 243.2c-8.533333 8.533333-8.533333 21.333333 0 29.866667zM725.333333 576c0-12.8-8.533333-21.333333-21.333333-21.333333h-384c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h384c12.8 0 21.333333-8.533333 21.333333-21.333333zM320 682.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h298.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333h-298.666667z" fill="#3D3D3D" ></path></symbol><symbol id="icon-shouqianzixundianhua-09" viewBox="0 0 1024 1024"><path d="M341.333333 183.466667c38.4 42.666667 68.266667 93.866667 89.6 149.333333-21.333333 12.8-42.666667 29.866667-59.733333 46.933333 0 4.266667-4.266667 8.533333-8.533333 17.066667l-25.6 25.6 21.333333 29.866667c29.866667 38.4 59.733333 76.8 98.133333 110.933333 34.133333 34.133333 72.533333 68.266667 110.933334 98.133333l29.866666 21.333334 29.866667-25.6 12.8-12.8c17.066667-17.066667 34.133333-38.4 46.933333-59.733334 55.466667 21.333333 106.666667 51.2 149.333334 89.6-8.533333 21.333333-17.066667 38.4-29.866667 55.466667-12.8 21.333333-29.866667 42.666667-51.2 64-17.066667 17.066667-34.133333 29.866667-51.2 42.666667-81.066667-34.133333-162.133333-76.8-230.4-132.266667-12.8-8.533333-25.6-17.066667-34.133333-29.866667-17.066667-12.8-34.133333-29.866667-51.2-46.933333-17.066667-17.066667-34.133333-34.133333-46.933334-51.2-8.533333-12.8-21.333333-21.333333-29.866666-34.133333C260.266667 473.6 213.333333 396.8 179.2 315.733333c12.8-17.066667 25.6-34.133333 42.666667-51.2 21.333333-21.333333 42.666667-38.4 64-51.2 17.066667-12.8 38.4-21.333333 55.466666-29.866666M354.133333 128c-29.866667 12.8-64 25.6-93.866666 46.933333-25.6 12.8-46.933333 34.133333-68.266667 55.466667C166.4 256 145.066667 281.6 128 307.2c34.133333 93.866667 85.333333 183.466667 149.333333 268.8 8.533333 12.8 21.333333 25.6 29.866667 38.4 17.066667 17.066667 29.866667 34.133333 51.2 51.2l51.2 51.2c12.8 12.8 25.6 21.333333 38.4 29.866667 81.066667 64 170.666667 115.2 268.8 149.333333 29.866667-17.066667 55.466667-38.4 76.8-64 21.333333-21.333333 42.666667-46.933333 59.733333-72.533333 17.066667-29.866667 34.133333-59.733333 46.933334-93.866667-64-64-140.8-110.933333-221.866667-132.266667-17.066667 29.866667-34.133333 59.733333-59.733333 81.066667l-8.533334 8.533333a1118.677333 1118.677333 0 0 1-200.533333-200.533333c4.266667-4.266667 4.266667-8.533333 8.533333-8.533333 25.6-25.6 51.2-46.933333 81.066667-59.733334-34.133333-81.066667-76.8-157.866667-145.066667-226.133333z" fill="#3D3D3D" ></path></symbol><symbol id="icon-huidaodingbu-18" viewBox="0 0 1024 1024"><path d="M853.333333 682.666667c-17.066667 0-28.444444-5.688889-39.822222-17.066667L512 364.088889l-301.511111 301.511111c-22.755556 22.755556-56.888889 22.755556-79.644445 0s-22.755556-56.888889 0-79.644444l341.333334-341.333334c22.755556-22.755556 56.888889-22.755556 79.644444 0l341.333334 341.333334c22.755556 22.755556 22.755556 56.888889 0 79.644444-11.377778 11.377778-22.755556 17.066667-39.822223 17.066667z" fill="#666666" ></path></symbol><symbol id="icon-lianxiwomen-18" viewBox="0 0 1024 1024"><path d="M796.444444 199.111111c34.133333 0 56.888889 22.755556 56.888889 56.888889v398.222222c0 34.133333-22.755556 56.888889-56.888889 56.888889H489.244444l-17.066666 17.066667L398.222222 802.133333l-73.955555-73.955555-17.066667-17.066667H227.555556c-34.133333 0-56.888889-22.755556-56.888889-56.888889v-398.222222c0-34.133333 22.755556-56.888889 56.888889-56.888889h568.888888m0-56.888889H227.555556c-62.577778 0-113.777778 51.2-113.777778 113.777778v398.222222c0 62.577778 51.2 113.777778 113.777778 113.777778h62.577777l113.777778 113.777778 113.777778-113.777778h284.444444c62.577778 0 113.777778-51.2 113.777778-113.777778v-398.222222c-5.688889-62.577778-56.888889-113.777778-119.466667-113.777778z" fill="#666666" ></path><path d="M284.444444 369.777778c-34.133333 0-56.888889 22.755556-56.888888 56.888889s22.755556 56.888889 56.888888 56.888889 56.888889-22.755556 56.888889-56.888889-22.755556-56.888889-56.888889-56.888889zM512 369.777778c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888889 56.888889-22.755556 56.888889-56.888889-22.755556-56.888889-56.888889-56.888889zM739.555556 369.777778c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888889 56.888889-22.755556 56.888888-56.888889-22.755556-56.888889-56.888888-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-guanbi_v" viewBox="0 0 1024 1024"><path d="M131.84 222.4L222.336 131.84 892.16 801.6l-90.56 90.56z" fill="#0065FF" ></path><path d="M801.6 131.84l90.56 90.496L222.4 892.16 131.84 801.6z" fill="#0065FF" ></path></symbol><symbol id="icon-morentouxiang-01" viewBox="0 0 1024 1024"><path d="M1024 512c0 117.028571-39.497143 225.28-105.325714 311.588571C825.051429 945.005714 677.302857 1024 512 1024c-160.914286 0-304.274286-74.605714-397.897143-190.171429C42.422857 746.057143 0 633.417143 0 512 0 229.668571 229.668571 0 512 0s512 229.668571 512 512z" fill="#BBBBBB" ></path><path d="M918.674286 823.588571C825.051429 945.005714 677.302857 1024 512 1024c-160.914286 0-304.274286-74.605714-397.897143-190.171429 36.571429-65.828571 105.325714-111.177143 185.782857-112.64 59.977143 55.588571 138.971429 86.308571 219.428572 86.308572 81.92 0 160.914286-30.72 219.428571-86.308572 73.142857 1.462857 140.434286 39.497143 179.931429 102.4zM512 157.988571c155.062857 0 280.868571 125.805714 280.868571 280.868572S667.062857 719.725714 512 719.725714 231.131429 593.92 231.131429 438.857143c0-153.6 125.805714-280.868571 280.868571-280.868572z" fill="#888888" ></path></symbol><symbol id="icon-tedian_v-08" viewBox="0 0 1024 1024"><path d="M512 113.371429c186.514286 0 336.457143 149.942857 336.457143 336.457142 0 69.485714-21.942857 138.971429-62.171429 197.485715l-14.628571 18.285714 10.971428 21.942857 58.514286 102.4-65.828571-14.628571-29.257143-7.314286-10.971429 29.257143-21.942857 62.171428-47.542857-80.457142-14.628571-25.6-29.257143 10.971428c-36.571429 14.628571-73.142857 18.285714-113.371429 18.285714s-76.8-7.314286-113.371428-18.285714l-29.257143-10.971428-14.628572 25.6-47.542857 80.457142-21.942857-62.171428-3.657143-29.257143-32.914286 7.314286-62.171428 10.971428 58.514286-102.4 10.971428-21.942857-14.628571-18.285714c-40.228571-58.514286-62.171429-124.342857-62.171429-197.485714 0-182.857143 149.942857-332.8 336.457143-332.8m0-36.571429C307.2 76.8 138.971429 241.371429 138.971429 449.828571c0 80.457143 25.6 157.257143 69.485714 219.428572L109.714286 837.485714l142.628571-29.257143 47.542857 138.971429 87.771429-149.942857c40.228571 14.628571 80.457143 21.942857 124.342857 21.942857s87.771429-7.314286 124.342857-21.942857l87.771429 149.942857 47.542857-138.971429 142.628571 29.257143-98.742857-171.885714c43.885714-62.171429 69.485714-135.314286 69.485714-219.428571 0-204.8-168.228571-369.371429-373.028571-369.371429z" fill="#0065FF" ></path><path d="M512 113.371429c186.514286 0 336.457143 149.942857 336.457143 336.457142 0 69.485714-21.942857 138.971429-62.171429 197.485715-40.228571 54.857143-95.085714 98.742857-160.914285 120.685714-36.571429 14.628571-73.142857 18.285714-113.371429 18.285714s-76.8-7.314286-113.371429-18.285714c-62.171429-21.942857-120.685714-65.828571-160.914285-120.685714-40.228571-58.514286-62.171429-124.342857-62.171429-197.485715 0-186.514286 149.942857-336.457143 336.457143-336.457142m0-36.571429C307.2 76.8 138.971429 241.371429 138.971429 449.828571c0 80.457143 25.6 157.257143 69.485714 219.428572 43.885714 62.171429 106.057143 106.057143 175.542857 131.657143 40.228571 14.628571 80.457143 21.942857 124.342857 21.942857s87.771429-7.314286 124.342857-21.942857c73.142857-25.6 131.657143-73.142857 175.542857-131.657143 43.885714-62.171429 69.485714-135.314286 69.485715-219.428572 7.314286-208.457143-160.914286-373.028571-365.714286-373.028571z" fill="#0065FF" ></path><path d="M512 288.914286l43.885714 91.428571 7.314286 18.285714 21.942857 3.657143 102.4 14.628572-73.142857 73.142857-14.628571 14.628571 3.657142 18.285715 18.285715 98.742857-91.428572-47.542857-18.285714-7.314286-18.285714 7.314286L402.285714 621.714286l18.285715-102.4 3.657142-18.285715-14.628571-14.628571-73.142857-73.142857L438.857143 402.285714l18.285714-3.657143 7.314286-18.285714L512 288.914286m0-80.457143L435.2 365.714286l-175.542857 25.6 128 124.342857-29.257143 175.542857 157.257143-84.114286 157.257143 84.114286-29.257143-175.542857 128-124.342857-182.857143-25.6L512 208.457143z" fill="#0065FF" ></path></symbol><symbol id="icon-duigou" viewBox="0 0 1024 1024"><path d="M147.2 467.2l268.8 268.8c25.6 25.6 25.6 64 0 89.6-25.6 25.6-64 25.6-89.6 0L57.6 556.8c-25.6-25.6-25.6-64 0-89.6 25.6-25.6 70.4-25.6 89.6 0z" fill="#0065FF" ></path><path d="M966.4 288L422.4 832c-25.6 25.6-64 25.6-89.6 0-25.6-25.6-25.6-64 0-89.6l544-544c25.6-25.6 64-25.6 89.6 0 25.6 19.2 25.6 64 0 89.6z" fill="#0065FF" ></path></symbol><symbol id="icon-peizhi-08" viewBox="0 0 1024 1024"><path d="M512 402.285714c62.171429 0 109.714286 47.542857 109.714286 109.714286s-47.542857 109.714286-109.714286 109.714286-109.714286-47.542857-109.714286-109.714286 47.542857-109.714286 109.714286-109.714286m0-36.571428c-80.457143 0-146.285714 65.828571-146.285714 146.285714s65.828571 146.285714 146.285714 146.285714 146.285714-65.828571 146.285714-146.285714-65.828571-146.285714-146.285714-146.285714z" fill="#0065FF" ></path><path d="M512 146.285714c21.942857 0 36.571429 14.628571 36.571429 36.571429v73.142857l29.257142 7.314286c21.942857 7.314286 43.885714 14.628571 62.171429 29.257143l25.6 14.628571 18.285714-18.285714 32.914286-32.914286c7.314286-7.314286 14.628571-10.971429 25.6-10.971429s18.285714 3.657143 25.6 10.971429c7.314286 7.314286 10.971429 14.628571 10.971429 25.6s-3.657143 18.285714-10.971429 25.6l-32.914286 32.914286-18.285714 18.285714 14.628571 25.6c10.971429 21.942857 21.942857 43.885714 25.6 65.828571l10.971429 25.6h73.142857c21.942857 0 36.571429 14.628571 36.571429 36.571429s-14.628571 36.571429-36.571429 36.571429h-73.142857l-7.314286 29.257142c-7.314286 21.942857-14.628571 43.885714-25.6 65.828572l-14.628571 25.6 18.285714 18.285714 32.914286 32.914286c14.628571 14.628571 14.628571 36.571429 0 51.2-7.314286 7.314286-14.628571 10.971429-25.6 10.971428-10.971429 0-18.285714-3.657143-25.6-10.971428l-32.914286-32.914286-18.285714-18.285714-29.257143 10.971428c-21.942857 10.971429-43.885714 21.942857-65.828571 25.6l-25.6 10.971429v73.142857c0 21.942857-14.628571 36.571429-36.571429 36.571429s-36.571429-14.628571-36.571429-36.571429v-73.142857l-29.257142-7.314286c-21.942857-7.314286-43.885714-14.628571-65.828572-25.6l-25.6-14.628571-18.285714 18.285714-32.914286 32.914286c-7.314286 7.314286-14.628571 10.971429-25.6 10.971428-10.971429 0-18.285714-3.657143-25.6-10.971428-14.628571-14.628571-14.628571-36.571429 0-51.2l32.914286-32.914286 18.285714-18.285714-10.971428-29.257143c-10.971429-21.942857-21.942857-43.885714-25.6-65.828571L256 548.571429H182.857143c-21.942857 0-36.571429-14.628571-36.571429-36.571429s14.628571-36.571429 36.571429-36.571429h73.142857l7.314286-29.257142c7.314286-21.942857 14.628571-43.885714 29.257143-62.171429l14.628571-25.6-21.942857-21.942857-32.914286-32.914286c-7.314286-3.657143-10.971429-14.628571-10.971428-25.6s3.657143-18.285714 10.971428-25.6c7.314286-7.314286 14.628571-10.971429 25.6-10.971428s18.285714 3.657143 25.6 10.971428l32.914286 32.914286 18.285714 18.285714 29.257143-10.971428c21.942857-10.971429 43.885714-21.942857 65.828571-25.6L475.428571 256V182.857143c0-21.942857 14.628571-36.571429 36.571429-36.571429m0-36.571428c-40.228571 0-73.142857 32.914286-73.142857 73.142857v47.542857c-25.6 7.314286-51.2 18.285714-76.8 32.914286l-29.257143-36.571429c-14.628571-14.628571-36.571429-21.942857-54.857143-21.942857s-36.571429 7.314286-51.2 21.942857c-29.257143 29.257143-29.257143 73.142857 0 102.4l32.914286 32.914286c-14.628571 21.942857-25.6 47.542857-32.914286 76.8H182.857143c-40.228571 0-73.142857 32.914286-73.142857 73.142857s32.914286 73.142857 73.142857 73.142857h47.542857c7.314286 25.6 18.285714 51.2 32.914286 76.8l-32.914286 32.914286c-29.257143 29.257143-29.257143 73.142857 0 102.4 14.628571 14.628571 32.914286 21.942857 51.2 21.942857 18.285714 0 36.571429-7.314286 51.2-21.942857l32.914286-32.914286c21.942857 14.628571 47.542857 25.6 76.8 32.914286V841.142857c0 40.228571 32.914286 73.142857 73.142857 73.142857s73.142857-32.914286 73.142857-73.142857v-47.542857c25.6-7.314286 51.2-18.285714 76.8-32.914286l32.914286 32.914286c14.628571 14.628571 32.914286 21.942857 51.2 21.942857 18.285714 0 36.571429-7.314286 51.2-21.942857 29.257143-29.257143 29.257143-73.142857 0-102.4L768 658.285714c14.628571-21.942857 25.6-47.542857 32.914286-76.8H841.142857c40.228571 0 73.142857-32.914286 73.142857-73.142857s-32.914286-73.142857-73.142857-73.142857h-47.542857c-7.314286-25.6-18.285714-51.2-32.914286-76.8l32.914286-32.914286c29.257143-29.257143 29.257143-73.142857 0-102.4-14.628571-14.628571-32.914286-21.942857-51.2-21.942857s-36.571429 7.314286-51.2 21.942857L658.285714 256c-21.942857-14.628571-47.542857-25.6-76.8-32.914286V182.857143c3.657143-40.228571-29.257143-73.142857-69.485714-73.142857z" fill="#0065FF" ></path></symbol><symbol id="icon-dengluxinxicuowutishi" viewBox="0 0 1024 1024"><path d="M512 512m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#FF4B33" ></path><path d="M256 448h512v128H256z" fill="#FFFFFF" ></path></symbol><symbol id="icon-weishimingrenzheng" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#999999" ></path><path d="M448 512V320c0-38.4 25.6-64 64-64s64 25.6 64 64v192c0 38.4-25.6 64-64 64s-64-25.6-64-64z" fill="#999999" ></path><path d="M512 704m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#999999" ></path></symbol><symbol id="icon-shoujihao" viewBox="0 0 1024 1024"><path d="M640 128c72.533333 0 128 55.466667 128 128v512c0 72.533333-55.466667 128-128 128H384c-72.533333 0-128-55.466667-128-128V256c0-72.533333 55.466667-128 128-128h256m0-42.666667H384C290.133333 85.333333 213.333333 162.133333 213.333333 256v512c0 93.866667 76.8 170.666667 170.666667 170.666667h256c93.866667 0 170.666667-76.8 170.666667-170.666667V256c0-93.866667-76.8-170.666667-170.666667-170.666667z" fill="#999999" ></path><path d="M618.666667 768h-213.333334c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333334h213.333334c12.8 0 21.333333-8.533333 21.333333-21.333334s-8.533333-21.333333-21.333333-21.333333zM640 128H384c0 46.933333 38.4 85.333333 85.333333 85.333333h85.333334c46.933333 0 85.333333-38.4 85.333333-85.333333z" fill="#999999" ></path></symbol><symbol id="icon-zhanghao" viewBox="0 0 1024 1024"><path d="M512 170.666667c106.666667 0 192 85.333333 192 192S618.666667 554.666667 512 554.666667s-192-85.333333-192-192S405.333333 170.666667 512 170.666667m0-42.666667C384 128 277.333333 234.666667 277.333333 362.666667S384 597.333333 512 597.333333s234.666667-106.666667 234.666667-234.666666S640 128 512 128z" fill="#999999" ></path><path d="M512 554.666667c-196.266667 0-362.666667 149.333333-379.733333 341.333333h42.666666c21.333333-166.4 166.4-298.666667 337.066667-298.666667s315.733333 132.266667 337.066667 298.666667h42.666666c-17.066667-192-183.466667-341.333333-379.733333-341.333333z" fill="#999999" ></path></symbol><symbol id="icon-yanzhengma" viewBox="0 0 1024 1024"><path d="M768 213.333333c72.533333 0 128 55.466667 128 128v341.333334c0 72.533333-55.466667 128-128 128H256c-72.533333 0-128-55.466667-128-128V341.333333c0-72.533333 55.466667-128 128-128h512m0-42.666666H256C162.133333 170.666667 85.333333 247.466667 85.333333 341.333333v341.333334c0 93.866667 76.8 170.666667 170.666667 170.666666h512c93.866667 0 170.666667-76.8 170.666667-170.666666V341.333333c0-93.866667-76.8-170.666667-170.666667-170.666666z" fill="#999999" ></path><path d="M298.666667 469.333333c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667 42.666667-17.066667 42.666666-42.666667-17.066667-42.666667-42.666666-42.666667zM512 469.333333c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667 42.666667-17.066667 42.666667-42.666667-17.066667-42.666667-42.666667-42.666667zM725.333333 469.333333c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666667 42.666667-17.066667 42.666667-42.666667-17.066667-42.666667-42.666667-42.666667z" fill="#999999" ></path></symbol><symbol id="icon-yishimingrenzheng" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#36B24A" ></path><path d="M780.8 377.6l-313.6 313.6c-12.8 12.8-32 12.8-44.8 0-12.8-12.8-12.8-32 0-44.8l313.6-313.6c12.8-12.8 32-12.8 44.8 0 12.8 12.8 12.8 32 0 44.8z" fill="#36B24A" ></path><path d="M288 467.2l179.2 179.2c12.8 12.8 12.8 32 0 44.8-12.8 12.8-32 12.8-44.8 0L243.2 512c-12.8-12.8-12.8-32 0-44.8 12.8-12.8 32-12.8 44.8 0z" fill="#36B24A" ></path></symbol><symbol id="icon-huanyipi" viewBox="0 0 1024 1024"><path d="M960 448V64l-128 128c-83.2-83.2-192-128-320-128-115.2 0-211.2 38.4-294.4 108.8C121.6 256 64 377.6 64 512c0 32 0 57.6 6.4 83.2C115.2 806.4 294.4 960 512 960c115.2 0 217.6-38.4 294.4-108.8l-147.2-51.2c-44.8 19.2-96 32-147.2 32-128 0-236.8-76.8-288-185.6C204.8 608 192 563.2 192 512c0-128 70.4-236.8 179.2-288C409.6 204.8 460.8 192 512 192c89.6 0 166.4 38.4 224 96L576 448h384z" fill="#999999" ></path></symbol><symbol id="icon-sousuo" viewBox="0 0 1024 1024"><path d="M492.8 108.8c-128 0-249.6 57.6-326.4 179.2-76.8 121.6-76.8 281.6 0 403.2 76.8 121.6 204.8 179.2 326.4 179.2 76.8 0 153.6-25.6 224-70.4l96 96c25.6 25.6 64 25.6 89.6 0 25.6-25.6 25.6-64 0-89.6l-96-96c108.8-147.2 96-358.4-38.4-492.8-76.8-70.4-179.2-108.8-275.2-108.8z m0 640c-70.4 0-134.4-25.6-179.2-76.8-102.4-102.4-102.4-262.4 0-364.8 51.2-51.2 115.2-76.8 179.2-76.8 70.4 0 134.4 25.6 179.2 76.8 102.4 102.4 102.4 262.4 0 364.8-44.8 51.2-115.2 76.8-179.2 76.8z" fill="#0065FF" ></path></symbol><symbol id="icon-mima" viewBox="0 0 1024 1024"><path d="M661.333333 725.333333h-298.666666c-12.8 0-21.333333-8.533333-21.333334-21.333333s8.533333-21.333333 21.333334-21.333333h298.666666c12.8 0 21.333333 8.533333 21.333334 21.333333s-8.533333 21.333333-21.333334 21.333333zM512 85.333333C392.533333 85.333333 298.666667 179.2 298.666667 298.666667v128h42.666666V298.666667c0-93.866667 76.8-170.666667 170.666667-170.666667s170.666667 76.8 170.666667 170.666667v128h42.666666V298.666667c0-119.466667-93.866667-213.333333-213.333333-213.333334z" fill="#999999" ></path><path d="M768 469.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v341.333333c0 25.6-17.066667 42.666667-42.666667 42.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667v-341.333333c0-25.6 17.066667-42.666667 42.666667-42.666667h512m0-42.666666H256c-46.933333 0-85.333333 38.4-85.333333 85.333333v341.333333c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334v-341.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z" fill="#999999" ></path></symbol><symbol id="icon-guanbichakanmima" viewBox="0 0 1024 1024"><path d="M512 153.6c-72.533333 0-140.8 17.066667-200.533333 51.2l29.866666 29.866667c51.2-25.6 106.666667-38.4 170.666667-38.4 179.2 0 332.8 123.733333 375.466667 298.666666-17.066667 72.533333-51.2 132.266667-102.4 183.466667l29.866666 29.866667c55.466667-59.733333 98.133333-132.266667 115.2-213.333334-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z m0 640c-179.2 0-332.8-123.733333-375.466667-298.666667 17.066667-72.533333 51.2-132.266667 102.4-183.466666l-29.866666-29.866667c-55.466667 55.466667-98.133333 132.266667-115.2 213.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333334 72.533333 0 140.8-17.066667 200.533333-51.2l-29.866666-34.133334c-51.2 25.6-110.933333 42.666667-170.666667 42.666667z" fill="#999999" ></path><path d="M512 153.6c-72.533333 0-140.8 17.066667-200.533333 51.2l29.866666 29.866667c51.2-25.6 106.666667-38.4 170.666667-38.4 179.2 0 332.8 123.733333 375.466667 298.666666-17.066667 72.533333-51.2 132.266667-102.4 183.466667l29.866666 29.866667c55.466667-59.733333 98.133333-132.266667 115.2-213.333334-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z m0 640c-179.2 0-332.8-123.733333-375.466667-298.666667 17.066667-72.533333 51.2-132.266667 102.4-183.466666l-29.866666-29.866667c-55.466667 55.466667-98.133333 132.266667-115.2 213.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333334 72.533333 0 140.8-17.066667 200.533333-51.2l-29.866666-34.133334c-51.2 25.6-110.933333 42.666667-170.666667 42.666667z" fill="#999999" ></path><path d="M512 366.933333c-12.8 0-21.333333 0-34.133333 4.266667l38.4 38.4c42.666667 4.266667 76.8 38.4 81.066666 81.066667l38.4 38.4c4.266667-8.533333 4.266667-21.333333 4.266667-34.133334 0-72.533333-55.466667-128-128-128z m-85.333333 132.266667l-38.4-38.4c-4.266667 8.533333-4.266667 21.333333-4.266667 34.133333 0 72.533333 55.466667 128 128 128 12.8 0 21.333333 0 34.133333-4.266666l-38.4-38.4c-42.666667-4.266667-76.8-38.4-81.066666-81.066667zM178.133333 190.08l30.165334-30.165333 681.813333 681.813333-30.165333 30.208z" fill="#999999" ></path></symbol><symbol id="icon-chakanmima" viewBox="0 0 1024 1024"><path d="M512 213.333333c179.2 0 332.8 123.733333 375.466667 298.666667-38.4 174.933333-196.266667 298.666667-375.466667 298.666667s-332.8-123.733333-375.466667-298.666667c42.666667-174.933333 196.266667-298.666667 375.466667-298.666667m0-42.666666c-204.8 0-379.733333 145.066667-418.133333 341.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333333s379.733333-145.066667 418.133333-341.333333c-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z" fill="#999999" ></path><path d="M512 213.333333c179.2 0 332.8 123.733333 375.466667 298.666667-38.4 174.933333-196.266667 298.666667-375.466667 298.666667s-332.8-123.733333-375.466667-298.666667c42.666667-174.933333 196.266667-298.666667 375.466667-298.666667m0-42.666666c-204.8 0-379.733333 145.066667-418.133333 341.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333333s379.733333-145.066667 418.133333-341.333333c-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z" fill="#999999" ></path><path d="M512 426.666667c46.933333 0 85.333333 38.4 85.333333 85.333333s-38.4 85.333333-85.333333 85.333333-85.333333-38.4-85.333333-85.333333 38.4-85.333333 85.333333-85.333333m0-42.666667c-72.533333 0-128 55.466667-128 128s55.466667 128 128 128 128-55.466667 128-128-55.466667-128-128-128z" fill="#999999" ></path></symbol></svg>',o=(o=document.getElementsByTagName("script"))[o.length-1].getAttribute("data-injectcss"),p=function(c,l){l.parentNode.insertBefore(c,l)};if(o&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(c){console&&console.log(c)}}function F(){t||(t=!0,i())}function n(){try{a.documentElement.doScroll("left")}catch(c){return void setTimeout(n,50)}F()}l=function(){var c,l=document.createElement("div");l.innerHTML=s,s=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?p(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(h=function(){document.removeEventListener("DOMContentLoaded",h,!1),l()},document.addEventListener("DOMContentLoaded",h,!1)):document.attachEvent&&(i=l,a=c.document,t=!1,n(),a.onreadystatechange=function(){"complete"==a.readyState&&(a.onreadystatechange=null,F())})}(window);
\ No newline at end of file
+!function(c){var l,i,h,a,s,t='<svg><symbol id="icon-a-0bofang1x" viewBox="0 0 1024 1024"><path d="M960 512A448 448 0 1 1 64 512a448 448 0 0 1 896 0z m-64 0q0-159.04-112.448-271.552Q671.04 128 512 128 352.96 128 240.448 240.448 128 352.96 128 512q0 159.04 112.448 271.552Q352.96 896 512 896q159.04 0 271.552-112.448Q896 671.04 896 512z m-512 192l320-192-320-192v384z" fill="#0065FF" ></path></symbol><symbol id="icon-a-0zanting1x" viewBox="0 0 1024 1024"><path d="M960 512A448 448 0 1 1 64 512a448 448 0 0 1 896 0z m-64 0q0-159.04-112.448-271.552Q671.04 128 512 128 352.96 128 240.448 240.448 128 352.96 128 512q0 159.04 112.448 271.552Q352.96 896 512 896q159.04 0 271.552-112.448Q896 671.04 896 512zM384 320h64v384H384V320z m192 0h64v384H576V320z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli_shujuliuzhuan-091" viewBox="0 0 1024 1024"><path d="M430.933333 473.6l98.133334 166.4 64-89.6L494.933333 384z" fill="#0065FF" ></path><path d="M853.333333 0H170.666667C76.8 0 0 76.8 0 170.666667v682.666666c0 93.866667 76.8 170.666667 170.666667 170.666667h682.666666c93.866667 0 170.666667-76.8 170.666667-170.666667V170.666667c0-93.866667-76.8-170.666667-170.666667-170.666667z m-102.4 418.133333c-8.533333 0-17.066667 0-21.333333-4.266666L631.466667 554.666667l72.533333 119.466666c4.266667 0 12.8-4.266667 17.066667-4.266666 34.133333 0 64 29.866667 64 64s-29.866667 64-64 64-64-29.866667-64-64c0-17.066667 8.533333-34.133333 17.066666-46.933334l-64-106.666666-68.266666 98.133333c-4.266667 4.266667-8.533333 8.533333-12.8 8.533333-4.266667 0-8.533333-4.266667-12.8-8.533333l-102.4-174.933333-89.6 128c8.533333 12.8 17.066667 25.6 17.066666 42.666666 0 34.133333-29.866667 64-64 64S213.333333 708.266667 213.333333 674.133333s29.866667-64 64-64c8.533333 0 17.066667 0 21.333334 4.266667l98.133333-140.8-72.533333-123.733333c-4.266667 0-12.8 4.266667-17.066667 4.266666-34.133333 0-64-29.866667-64-64s29.866667-64 64-64 64 29.866667 64 64c0 17.066667-8.533333 34.133333-17.066667 46.933334l64 106.666666 68.266667-98.133333c4.266667-4.266667 8.533333-8.533333 12.8-8.533333 4.266667 0 8.533333 4.266667 12.8 8.533333l102.4 174.933333 89.6-128c-8.533333-12.8-17.066667-25.6-17.066667-42.666666 0-34.133333 29.866667-64 64-64s64 29.866667 64 64-29.866667 68.266667-64 68.266666z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli_mobanzhushou-091" viewBox="0 0 1024 1024"><path d="M853.333333 0H170.666667C76.8 0 0 76.8 0 170.666667v682.666666c0 93.866667 76.8 170.666667 170.666667 170.666667h682.666666c93.866667 0 170.666667-76.8 170.666667-170.666667V170.666667c0-93.866667-76.8-170.666667-170.666667-170.666667z m-384 810.666667H213.333333v-170.666667h256v170.666667z m0-256H213.333333v-128h256v128z m341.333334 256h-256v-384h256v384z m0-469.333334H213.333333V213.333333h597.333334v128z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli_suanfashijian-091" viewBox="0 0 1024 1024"><path d="M853.333333 0H170.666667C76.8 0 0 76.8 0 170.666667v682.666666c0 93.866667 76.8 170.666667 170.666667 170.666667h682.666666c93.866667 0 170.666667-76.8 170.666667-170.666667V170.666667c0-93.866667-76.8-170.666667-170.666667-170.666667zM128 341.333333V256h128V128h85.333333v128h128v85.333333H341.333333v128H256V341.333333H128z m46.933333 473.6l640-640 29.866667 29.866667-640 640-29.866667-29.866667zM896 810.666667h-341.333333v-85.333334h341.333333v85.333334z" fill="#0065FF" ></path></symbol><symbol id="icon-shexiangjiguanli0_GB28181-18" viewBox="0 0 1024 1024"><path d="M967.111111 483.555556c-5.688889-102.4-45.511111-193.422222-108.088889-267.377778-79.644444-91.022222-187.733333-147.911111-312.888889-159.288889H477.866667c-125.155556 11.377778-233.244444 68.266667-312.888889 159.288889C102.4 290.133333 62.577778 381.155556 56.888889 483.555556v56.888888c5.688889 108.088889 51.2 204.8 119.466667 278.755556 73.955556 79.644444 182.044444 136.533333 301.511111 142.222222h68.266666c130.844444-11.377778 250.311111-73.955556 324.266667-170.666666 56.888889-68.266667 91.022222-159.288889 96.711111-256v-51.2z m-153.6-233.244445c56.888889 62.577778 85.333333 147.911111 91.022222 233.244445h-170.666666c0-62.577778-11.377778-119.466667-34.133334-176.355556 45.511111-17.066667 79.644444-34.133333 113.777778-56.888889z m-159.288889 443.733333c-34.133333-5.688889-73.955556-11.377778-113.777778-11.377777-56.888889 0-113.777778 11.377778-164.977777 22.755555-17.066667-51.2-28.444444-108.088889-34.133334-164.977778h341.333334c-5.688889 51.2-11.377778 102.4-28.444445 153.6z m-290.133333 187.733334c-17.066667-5.688889-28.444444-11.377778-39.822222-22.755556-5.688889 0-5.688889-5.688889-11.377778-5.688889-17.066667-11.377778-28.444444-17.066667-39.822222-28.444444h-5.688889c22.755556-17.066667 51.2-34.133333 79.644444-45.511111 22.755556 39.822222 45.511111 79.644444 73.955556 119.466666l-51.2-17.066666h-5.688889z m-22.755556-398.222222c0-56.888889 11.377778-108.088889 28.444445-159.288889 45.511111 11.377778 96.711111 17.066667 142.222222 17.066666s96.711111-5.688889 136.533333-17.066666c17.066667 51.2 28.444444 102.4 28.444445 159.288889H341.333333z m318.577778-341.333334c5.688889 0 5.688889 0 11.377778 5.688889 11.377778 5.688889 28.444444 11.377778 45.511111 22.755556 0 0 5.688889 0 5.688889 5.688889 17.066667 11.377778 28.444444 22.755556 45.511111 34.133333l5.688889 5.688889c-28.444444 17.066667-56.888889 34.133333-85.333333 45.511111-22.755556-45.511111-45.511111-91.022222-79.644445-130.844445h5.688889c11.377778 0 28.444444 5.688889 45.511111 11.377778zM517.688889 113.777778c45.511111 45.511111 79.644444 96.711111 108.088889 153.6-34.133333 11.377778-73.955556 17.066667-113.777778 17.066666s-79.644444-5.688889-119.466667-17.066666C420.977778 210.488889 455.111111 159.288889 500.622222 113.777778H517.688889zM341.333333 250.311111c-34.133333-11.377778-62.577778-22.755556-85.333333-39.822222l5.688889-5.688889c11.377778-11.377778 22.755556-22.755556 39.822222-28.444444 0 0 5.688889 0 5.688889-5.688889 17.066667-11.377778 34.133333-17.066667 45.511111-22.755556 5.688889 0 5.688889 0 11.377778-5.688889l51.2-17.066666h5.688889c-34.133333 39.822222-56.888889 79.644444-79.644445 125.155555 0 5.688889 0 5.688889 0 0z m-130.844444 0c39.822222 17.066667 73.955556 39.822222 108.088889 51.2-17.066667 56.888889-28.444444 113.777778-34.133334 176.355556H113.777778c11.377778-79.644444 39.822222-159.288889 96.711111-227.555556z m11.377778 534.755556C159.288889 716.8 119.466667 631.466667 113.777778 540.444444h170.666666c5.688889 68.266667 17.066667 130.844444 39.822223 187.733334-34.133333 17.066667-68.266667 34.133333-102.4 56.888889z m284.444444 125.155555c-45.511111-45.511111-79.644444-96.711111-102.4-147.911111 39.822222-17.066667 85.333333-22.755556 136.533333-22.755555 28.444444 0 62.577778 5.688889 91.022223 11.377777-28.444444 56.888889-62.577778 113.777778-108.088889 159.288889H506.311111z m182.044445-147.911111c34.133333 11.377778 62.577778 22.755556 91.022222 39.822222l-5.688889 5.688889c-17.066667 11.377778-28.444444 22.755556-45.511111 34.133334 0 0-5.688889 0-5.688889 5.688888-17.066667 11.377778-34.133333 17.066667-45.511111 28.444445-5.688889 0-5.688889 5.688889-11.377778 5.688889-17.066667 5.688889-34.133333 11.377778-56.888889 17.066666h-5.688889c34.133333-39.822222 62.577778-85.333333 85.333334-136.533333z m136.533333-5.688889c0 5.688889 0 5.688889 0 0-39.822222-17.066667-73.955556-34.133333-119.466667-51.2 17.066667-51.2 28.444444-108.088889 28.444445-170.666666h170.666666c0 85.333333-28.444444 159.288889-79.644444 221.866666z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_tupian-18" viewBox="0 0 1024 1024"><path d="M796.444444 113.777778H227.555556c-62.577778 0-113.777778 51.2-113.777778 113.777778v568.888888c0 62.577778 51.2 113.777778 113.777778 113.777778h568.888888c62.577778 0 113.777778-51.2 113.777778-113.777778V227.555556c0-62.577778-51.2-113.777778-113.777778-113.777778zM227.555556 853.333333c-28.444444 0-56.888889-28.444444-56.888889-56.888889v-159.288888c17.066667-5.688889 39.822222-11.377778 56.888889-11.377778 62.577778 0 119.466667 34.133333 147.911111 85.333333-17.066667 45.511111-28.444444 91.022222-34.133334 142.222222H227.555556z m625.777777-56.888889c0 28.444444-28.444444 56.888889-56.888889 56.888889H403.911111c5.688889-51.2 17.066667-96.711111 34.133333-142.222222C512 546.133333 665.6 420.977778 853.333333 398.222222v398.222222z m-449.422222-142.222222C364.088889 603.022222 295.822222 568.888889 227.555556 568.888889c-17.066667 0-39.822222 0-56.888889 5.688889V227.555556c0-28.444444 28.444444-56.888889 56.888889-56.888889h568.888888c28.444444 0 56.888889 28.444444 56.888889 56.888889v113.777777c-199.111111 22.755556-364.088889 142.222222-449.422222 312.888889z" fill="#666666" ></path><path d="M341.333333 227.555556c-62.577778 0-113.777778 51.2-113.777777 113.777777s51.2 113.777778 113.777777 113.777778 113.777778-51.2 113.777778-113.777778-51.2-113.777778-113.777778-113.777777z m0 170.666666c-28.444444 0-56.888889-28.444444-56.888889-56.888889s28.444444-56.888889 56.888889-56.888889 56.888889 28.444444 56.888889 56.888889-28.444444 56.888889-56.888889 56.888889z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_shouqi_v" viewBox="0 0 1024 1024"><path d="M768 192c38.4 0 64 25.6 64 64v512c0 38.4-25.6 64-64 64H256c-38.4 0-64-25.6-64-64V256c0-38.4 25.6-64 64-64h512m0-64H256c-70.4 0-128 57.6-128 128v512c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128V256c0-70.4-57.6-128-128-128z" fill="#D4D6D9" ></path><path d="M768 448H256v128h512V448z" fill="#D4D6D9" ></path></symbol><symbol id="icon-shexiangjiguanli0_dakai_v" viewBox="0 0 1024 1024"><path d="M768 192c38.4 0 64 25.6 64 64v512c0 38.4-25.6 64-64 64H256c-38.4 0-64-25.6-64-64V256c0-38.4 25.6-64 64-64h512m0-64H256c-70.4 0-128 57.6-128 128v512c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128V256c0-70.4-57.6-128-128-128z" fill="#D4D6D9" ></path><path d="M768 448H256v128h512V448z" fill="#D4D6D9" ></path><path d="M576 768V256H448v512h128z" fill="#D4D6D9" ></path></symbol><symbol id="icon-shexiangjiguanli0_shexiangji1-18" viewBox="0 0 1024 1024"><path d="M910.222222 312.888889c-5.688889 0-17.066667 0-22.755555 5.688889l-91.022223 39.822222V284.444444c0-62.577778-51.2-113.777778-113.777777-113.777777H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777777v455.111112c0 62.577778 51.2 113.777778 113.777778 113.777777h512c62.577778 0 113.777778-51.2 113.777777-113.777777v-73.955556l91.022223 39.822222c5.688889 5.688889 17.066667 5.688889 22.755555 5.688889 28.444444 0 56.888889-22.755556 56.888889-56.888889v-284.444444c0-34.133333-28.444444-56.888889-56.888889-56.888889zM739.555556 739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888888H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888h512c34.133333 0 56.888889 22.755556 56.888889 56.888888v455.111112z m170.666666-85.333334l-113.777778-45.511111V415.288889l113.777778-45.511111v284.444444z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_shexiangjizhengzaifenxi-18" viewBox="0 0 1024 1024"><path d="M910.222222 312.888889c-5.688889 0-17.066667 0-22.755555 5.688889l-91.022223 39.822222V284.444444c0-62.577778-51.2-113.777778-113.777777-113.777777H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777777v455.111112c0 62.577778 51.2 113.777778 113.777778 113.777777h512c62.577778 0 113.777778-51.2 113.777777-113.777777v-73.955556l91.022223 39.822222c5.688889 5.688889 17.066667 5.688889 22.755555 5.688889 28.444444 0 56.888889-22.755556 56.888889-56.888889v-284.444444c0-34.133333-28.444444-56.888889-56.888889-56.888889zM739.555556 739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888888H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888h512c34.133333 0 56.888889 22.755556 56.888889 56.888888v455.111112z m170.666666-85.333334l-113.777778-45.511111V415.288889l113.777778-45.511111v284.444444z" fill="#0065FF" ></path><path d="M403.911111 603.022222H301.511111L284.444444 682.666667H199.111111l108.088889-341.333334h96.711111L512 682.666667H420.977778l-17.066667-79.644445z m-17.066667-62.577778L381.155556 512c-11.377778-34.133333-17.066667-73.955556-28.444445-108.088889-11.377778 34.133333-17.066667 73.955556-28.444444 108.088889l-5.688889 28.444444h68.266666zM546.133333 341.333333H625.777778v341.333334H546.133333V341.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shexiangjiguanli0_wenjianjiaguanbi-18" viewBox="0 0 1024 1024"><path d="M375.466667 170.666667L455.111111 250.311111c22.755556 22.755556 51.2 34.133333 79.644445 34.133333H853.333333v568.888889H170.666667V170.666667h204.8z m0-56.888889H170.666667c-34.133333 0-56.888889 22.755556-56.888889 56.888889v682.666666c0 34.133333 22.755556 56.888889 56.888889 56.888889h682.666666c34.133333 0 56.888889-22.755556 56.888889-56.888889V284.444444c0-34.133333-22.755556-56.888889-56.888889-56.888888H534.755556c-17.066667 0-28.444444-5.688889-39.822223-17.066667L415.288889 130.844444c-11.377778-11.377778-22.755556-17.066667-39.822222-17.066666z" fill="#666666" ></path><path d="M284.444444 398.222222h455.111112v56.888889H284.444444z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_shexiangji2-18" viewBox="0 0 1024 1024"><path d="M910.222222 312.888889c-5.688889 0-17.066667 0-22.755555 5.688889l-91.022223 39.822222V284.444444c0-62.577778-51.2-113.777778-113.777777-113.777777H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777777v455.111112c0 62.577778 51.2 113.777778 113.777778 113.777777h512c62.577778 0 113.777778-51.2 113.777777-113.777777v-73.955556l91.022223 39.822222c5.688889 5.688889 17.066667 5.688889 22.755555 5.688889 28.444444 0 56.888889-22.755556 56.888889-56.888889v-284.444444c0-34.133333-28.444444-56.888889-56.888889-56.888889zM739.555556 739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888888H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888888V284.444444c0-34.133333 22.755556-56.888889 56.888889-56.888888h512c34.133333 0 56.888889 22.755556 56.888889 56.888888v455.111112z m170.666666-85.333334l-113.777778-45.511111V415.288889l113.777778-45.511111v284.444444z" fill="#666666" ></path><path d="M284.444444 398.222222h284.444445v227.555556H284.444444z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli0_wenjianjiadakai-18" viewBox="0 0 1024 1024"><path d="M910.222222 398.222222h-56.888889V341.333333c0-28.444444-28.444444-56.888889-56.888889-56.888889H534.755556c-17.066667 0-28.444444-5.688889-39.822223-17.066666L415.288889 187.733333c-11.377778-11.377778-28.444444-17.066667-39.822222-17.066666H113.777778c-34.133333 0-56.888889 28.444444-56.888889 56.888889v568.888888c0 28.444444 28.444444 56.888889 56.888889 56.888889h711.111111c28.444444 0 51.2-17.066667 56.888889-45.511111l85.333333-341.333333c5.688889-34.133333-22.755556-68.266667-56.888889-68.266667zM113.777778 227.555556h261.688889L455.111111 307.2c22.755556 22.755556 51.2 34.133333 79.644445 34.133333H796.444444v56.888889H233.244444c-28.444444 0-51.2 17.066667-56.888888 45.511111L113.777778 688.355556V227.555556z m739.555555 455.111111l-28.444444 113.777777H147.911111l85.333333-341.333333H910.222222l-56.888889 227.555556z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_tianjiaquyu_v" viewBox="0 0 1024 1024"><path d="M512 64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z m0 832c-211.2 0-384-172.8-384-384s172.8-384 384-384 384 172.8 384 384-172.8 384-384 384z" fill="#666666" ></path><path d="M576 256H448v192H256v128h192v192h128V576h192V448H576z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_tianjiashebei_v" viewBox="0 0 1024 1024"><path d="M832 128c38.4 0 64 25.6 64 64v128c0 38.4-25.6 64-64 64H192c-38.4 0-64-25.6-64-64V192c0-38.4 25.6-64 64-64h640m0-64H192c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h640c70.4 0 128-57.6 128-128V192c0-70.4-57.6-128-128-128zM832 640c38.4 0 64 25.6 64 64v128c0 38.4-25.6 64-64 64H192c-38.4 0-64-25.6-64-64v-128c0-38.4 25.6-64 64-64h640m0-64H192c-70.4 0-128 57.6-128 128v128c0 70.4 57.6 128 128 128h640c70.4 0 128-57.6 128-128v-128c0-70.4-57.6-128-128-128z" fill="#666666" ></path><path d="M256 704c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64zM256 192c-38.4 0-64 25.6-64 64s25.6 64 64 64 64-25.6 64-64-25.6-64-64-64zM768 704H576c-38.4 0-64 25.6-64 64s25.6 64 64 64h192c38.4 0 64-25.6 64-64s-25.6-64-64-64zM768 192H576c-38.4 0-64 25.6-64 64s25.6 64 64 64h192c38.4 0 64-25.6 64-64s-25.6-64-64-64z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_daorushebei_v" viewBox="0 0 1024 1024"><path d="M896 256V192c0-70.4-57.6-128-128-128H256c-70.4 0-128 57.6-128 128v640c0 70.4 57.6 128 128 128h512c70.4 0 128-57.6 128-128v-64h-64v64c0 32-32 64-64 64H256c-32 0-64-32-64-64V192c0-32 32-64 64-64h512c32 0 64 32 64 64v64h64z" fill="#666666" ></path><path d="M384 480h512v64H384z" fill="#666666" ></path><path d="M409.6 512l198.4-198.4-44.8-44.8-198.4 198.4L320 512l44.8 44.8 198.4 198.4 44.8-44.8z" fill="#666666" ></path></symbol><symbol id="icon-shexiangjiguanli_xiugai_v" viewBox="0 0 1024 1024"><path d="M665.6 204.8l89.6 89.6L217.6 832H128v-89.6zM797.76 251.456L707.2 160.96 797.76 70.4l90.496 90.496zM64 896h896v64H64z" fill="#666666" ></path></symbol><symbol id="icon-shebeiguanli_0tuichujiqun-09" viewBox="0 0 1024 1024"><path d="M704 768v68.266667L896 725.333333l-192-110.933333V682.666667h-170.666667v85.333333zM384 597.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666666H213.333333c-25.6 0-42.666667-17.066667-42.666666-42.666666v-170.666667c0-25.6 17.066667-42.666667 42.666666-42.666667h170.666667m0-42.666666H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333v-170.666667c0-46.933333-38.4-85.333333-85.333333-85.333333zM597.333333 170.666667c25.6 0 42.666667 17.066667 42.666667 42.666666v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666667h-170.666666c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6 17.066667-42.666667 42.666667-42.666666h170.666666m0-42.666667h-170.666666c-46.933333 0-85.333333 38.4-85.333334 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333334 85.333333h170.666666c46.933333 0 85.333333-38.4 85.333334-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333334-85.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0shouqi-09" viewBox="0 0 1024 1024"><path d="M512 392.533333l230.4 302.933334h46.933333L512 332.8l-277.333333 362.666667h46.933333L512 392.533333" fill="#0065FF" ></path><path d="M512 128c213.333333 0 384 170.666667 384 384s-170.666667 384-384 384-384-170.666667-384-384 170.666667-384 384-384m0-42.666667C277.333333 85.333333 85.333333 277.333333 85.333333 512s192 426.666667 426.666667 426.666667 426.666667-192 426.666667-426.666667S746.666667 85.333333 512 85.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0chakanshebei-09" viewBox="0 0 1024 1024"><path d="M320 298.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333 21.333333-8.533333 21.333333-21.333333-8.533333-21.333333-21.333333-21.333333zM704 298.666667h-298.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h298.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333zM320 469.333333c-12.8 0-21.333333 8.533333-21.333333 21.333334s8.533333 21.333333 21.333333 21.333333 21.333333-8.533333 21.333333-21.333333-8.533333-21.333333-21.333333-21.333334zM704 469.333333h-298.666667c-12.8 0-21.333333 8.533333-21.333333 21.333334s8.533333 21.333333 21.333333 21.333333h298.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333334zM657.066667 657.066667c46.933333 0 85.333333 38.4 85.333333 85.333333s-38.4 85.333333-85.333333 85.333333-85.333333-38.4-85.333334-85.333333 38.4-85.333333 85.333334-85.333333m0-42.666667c-72.533333 0-128 55.466667-128 128s55.466667 128 128 128 128-55.466667 128-128-55.466667-128-128-128z" fill="#0065FF" ></path><path d="M733.866667 789.333333l-29.866667 29.866667 119.466667 119.466667 29.866666-29.866667-119.466666-119.466667zM768 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h256c12.8 0 21.333333-8.533333 21.333333-21.333334s-8.533333-21.333333-21.333333-21.333333H256c-25.6 0-42.666667-17.066667-42.666667-42.666667V170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667h512c25.6 0 42.666667 17.066667 42.666667 42.666667v426.666666c0 12.8 8.533333 21.333333 21.333333 21.333334s21.333333-8.533333 21.333333-21.333334V170.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0shenqingtianjiashebei-09" viewBox="0 0 1024 1024"><path d="M512 128c213.333333 0 384 170.666667 384 384s-170.666667 384-384 384-384-170.666667-384-384 170.666667-384 384-384m0-42.666667C277.333333 85.333333 85.333333 277.333333 85.333333 512s192 426.666667 426.666667 426.666667 426.666667-192 426.666667-426.666667S746.666667 85.333333 512 85.333333z" fill="#0065FF" ></path><path d="M512 298.666667v426.666666V298.666667m0-42.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667v426.666666c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667V298.666667c0-25.6-17.066667-42.666667-42.666667-42.666667z" fill="#0065FF" ></path><path d="M725.333333 469.333333H298.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h426.666666c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_0jiarujiqun-09" viewBox="0 0 1024 1024"><path d="M725.333333 682.666667v-68.266667L533.333333 725.333333l192 110.933334V768h170.666667v-85.333333zM384 597.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666666H213.333333c-25.6 0-42.666667-17.066667-42.666666-42.666666v-170.666667c0-25.6 17.066667-42.666667 42.666666-42.666667h170.666667m0-42.666666H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333v-170.666667c0-46.933333-38.4-85.333333-85.333333-85.333333zM384 170.666667c25.6 0 42.666667 17.066667 42.666667 42.666666v170.666667c0 25.6-17.066667 42.666667-42.666667 42.666667H213.333333c-25.6 0-42.666667-17.066667-42.666666-42.666667V213.333333c0-25.6 17.066667-42.666667 42.666666-42.666666h170.666667m0-42.666667H213.333333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333333-85.333333zM810.666667 170.666667c25.6 0 42.666667 17.066667 42.666666 42.666666v170.666667c0 25.6-17.066667 42.666667-42.666666 42.666667h-170.666667c-25.6 0-42.666667-17.066667-42.666667-42.666667V213.333333c0-25.6 17.066667-42.666667 42.666667-42.666666h170.666667m0-42.666667h-170.666667c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667c0 46.933333 38.4 85.333333 85.333333 85.333333h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333333V213.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli0_duobianxing_10" viewBox="0 0 1024 1024"><path d="M512 166.4l371.2 272-140.8 438.4H281.6L140.8 435.2 512 166.4m0-80L64 412.8l169.6 528h553.6L960 412.8 512 86.4z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_zhixian_10" viewBox="0 0 1024 1024"><path d="M808.416 170.336l45.248 45.248-640.32 640.32-45.28-45.216z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_jiantou_10" viewBox="0 0 1024 1024"><path d="M886.4 137.6l-272 92.8 67.2 67.2-544 544 44.8 44.8 544-544 67.2 67.2z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_qiehuandaocizhuangtaihoukexuanzhongyihuatuxing_10" viewBox="0 0 1024 1024"><path d="M368 438.4z" fill="#3D3D3D" ></path><path d="M896 128h-128v64h64v128h64V128z m-192 0h-128v64h128V128z m-192 0h-128v64h128V128z m-192 0H128v128h64V192h128V128z m-128 192H128v128h64v-128z m0 192H128v128h64v-128z m0 192H128v192h128v-64H192v-128z m256 128h-128v64h128v-64z m192 0h-128v64h128v-64z m192 0h-128v64h128v-64z m64-64h-64v128h64v-128z m0-192h-64v128h64v-128z m0-192h-64v128h64v-128zM384 320c35.2 0 64 28.8 64 64s-28.8 64-64 64-64-28.8-64-64 28.8-64 64-64m0-32c-54.4 0-96 41.6-96 96s41.6 96 96 96 96-41.6 96-96-41.6-96-96-96z" fill="#666666" ></path><path d="M393.6 393.6L528 800l67.2-204.8 204.8-67.2z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_qingkongsuoyouyihuatuxing_10" viewBox="0 0 1024 1024"><path d="M928 368H608v-192c0-54.4-41.6-96-96-96s-96 41.6-96 96v192H96v192h64v384h704v-384h64v-192z m-448-192c0-19.2 12.8-32 32-32s32 12.8 32 32v192h-64v-192z m320 704h-96v-192h-64v192h-96v-192h-64v192h-96v-192h-64v192H224v-320h576v320z m64-384H160v-64h704v64z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_xuanzhongtuxingzaibianjizhonghui_10" viewBox="0 0 1024 1024"><path d="M460.8 656l-96 3.2 3.2-96 300.8-300.8 92.8 92.8zM806.784 128l90.496 90.496-90.496 90.528-90.528-90.528z" fill="#666666" ></path><path d="M832 608v224H192V192h224V128H128v768h768v-288h-64z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_chexiaoshangyibu_10" viewBox="0 0 1024 1024"><path d="M656 272H320v-128l-256 160 256 160v-128h336c131.2 0 240 108.8 240 240s-108.8 240-240 240H64v64h592c166.4 0 304-137.6 304-304s-137.6-304-304-304z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_juxing_10" viewBox="0 0 1024 1024"><path d="M896 256v512H128V256h768m64-64H64v640h896V192z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli0_xianxuanzhongtuxingzaishanchusvg_10" viewBox="0 0 1024 1024"><path d="M880 224H704V144c0-25.6-22.4-48-48-48h-288c-25.6 0-48 22.4-48 48V224H144C118.4 224 96 246.4 96 272S118.4 320 144 320H192v560c0 25.6 22.4 48 48 48h544c25.6 0 48-22.4 48-48V320h48c25.6 0 48-22.4 48-48S905.6 224 880 224zM384 160h256v64h-256V160z m384 704H256V320h512v544z" fill="#666666" ></path><path d="M384 448c-19.2 0-32 12.8-32 32v224c0 19.2 12.8 32 32 32s32-12.8 32-32v-224c0-19.2-12.8-32-32-32zM512 448c-19.2 0-32 12.8-32 32v224c0 19.2 12.8 32 32 32s32-12.8 32-32v-224c0-19.2-12.8-32-32-32zM640 448c-19.2 0-32 12.8-32 32v96c0 19.2 12.8 32 32 32s32-12.8 32-32v-96c0-19.2-12.8-32-32-32z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_xiugai-09" viewBox="0 0 1024 1024"><path d="M251.733333 789.333333l-128 4.266667 4.266667-128 401.066667-401.066667 119.466666 123.733334zM712.832 85.76l120.704 120.704-120.704 120.661333-120.661333-120.661333zM85.333333 853.333333h853.333334v85.333334H85.333333z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_xinzeng_v" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#0065FF" ></path><path d="M256 448h512v128H256z" fill="#0065FF" ></path><path d="M576 256v512H448V256z" fill="#0065FF" ></path></symbol><symbol id="icon-suanliguanli_dengdailunxunchuli-18" viewBox="0 0 1024 1024"><path d="M739.555556 113.777778c34.133333 0 56.888889 22.755556 56.888888 56.888889v91.022222l-187.733333 227.555555c-11.377778 11.377778-11.377778 28.444444 0 34.133334l187.733333 227.555555V853.333333c0 34.133333-22.755556 56.888889-56.888888 56.888889H284.444444c-34.133333 0-56.888889-22.755556-56.888888-56.888889v-91.022222l187.733333-227.555555c11.377778-11.377778 11.377778-28.444444 0-34.133334L227.555556 261.688889V170.666667c0-34.133333 22.755556-56.888889 56.888888-56.888889h455.111112m0-56.888889H284.444444c-62.577778 0-113.777778 51.2-113.777777 113.777778v91.022222c0 11.377778 5.688889 28.444444 11.377777 34.133333L341.333333 494.933333c11.377778 11.377778 11.377778 28.444444 0 34.133334l-159.288889 193.422222c-5.688889 11.377778-11.377778 22.755556-11.377777 39.822222V853.333333c0 62.577778 51.2 113.777778 113.777777 113.777778h455.111112c62.577778 0 113.777778-51.2 113.777777-113.777778v-91.022222c0-11.377778-5.688889-28.444444-11.377777-34.133333L682.666667 529.066667c-11.377778-11.377778-11.377778-28.444444 0-34.133334l159.288889-193.422222c5.688889-11.377778 11.377778-22.755556 11.377777-39.822222V170.666667c0-62.577778-51.2-113.777778-113.777777-113.777778z" fill="#666666" ></path><path d="M739.555556 796.444444H284.444444v56.888889h455.111112v-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_shanchu_v" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#FF4B33" ></path><path d="M256 448h512v128H256z" fill="#FF4B33" ></path></symbol><symbol id="icon-suanliguanli_fanhui-18" viewBox="0 0 1024 1024"><path d="M910.222222 455.111111H250.311111L455.111111 250.311111c22.755556-22.755556 22.755556-56.888889 0-79.644444-22.755556-22.755556-56.888889-22.755556-79.644444 0L73.955556 472.177778c-22.755556 22.755556-22.755556 56.888889 0 79.644444L375.466667 853.333333c22.755556 22.755556 56.888889 22.755556 79.644444 0 22.755556-22.755556 22.755556-56.888889 0-79.644444L250.311111 568.888889H910.222222c34.133333 0 56.888889-22.755556 56.888889-56.888889s-28.444444-56.888889-56.888889-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_suanfabuquan-18" viewBox="0 0 1024 1024"><path d="M113.777778 170.666667v682.666666c0 62.577778 51.2 113.777778 113.777778 113.777778h284.444444v-56.888889H227.555556c-34.133333 0-56.888889-22.755556-56.888889-56.888889V170.666667c0-34.133333 22.755556-56.888889 56.888889-56.888889h568.888888c34.133333 0 56.888889 22.755556 56.888889 56.888889v398.222222h56.888889V170.666667c0-62.577778-51.2-113.777778-113.777778-113.777778H227.555556c-62.577778 0-113.777778 51.2-113.777778 113.777778z" fill="#666666" ></path><path d="M768 227.555556h-512c-17.066667 0-28.444444 11.377778-28.444444 28.444444s11.377778 28.444444 28.444444 28.444444h512c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444444zM768 398.222222h-512c-17.066667 0-28.444444 11.377778-28.444444 28.444445s11.377778 28.444444 28.444444 28.444444h512c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444445zM631.466667 659.911111c-5.688889 0-17.066667 0-22.755556 5.688889-11.377778 11.377778-11.377778 28.444444 0 39.822222l238.933333 238.933334c5.688889 5.688889 11.377778 5.688889 22.755556 5.688888s17.066667 0 22.755556-5.688888c11.377778-11.377778 11.377778-28.444444 0-39.822223l-238.933334-238.933333c-11.377778-5.688889-17.066667-5.688889-22.755555-5.688889z" fill="#666666" ></path><path d="M870.4 659.911111c-5.688889 0-17.066667 0-22.755556 5.688889l-238.933333 238.933333c-11.377778 11.377778-11.377778 28.444444 0 39.822223 5.688889 5.688889 11.377778 5.688889 22.755556 5.688888 5.688889 0 17.066667 0 22.755555-5.688888l238.933334-238.933334c11.377778-11.377778 11.377778-28.444444 0-39.822222-11.377778-5.688889-17.066667-5.688889-22.755556-5.688889z" fill="#666666" ></path><path d="M483.555556 568.888889h-227.555556c-17.066667 0-28.444444 11.377778-28.444444 28.444444s11.377778 28.444444 28.444444 28.444445h227.555556c17.066667 0 28.444444-11.377778 28.444444-28.444445s-11.377778-28.444444-28.444444-28.444444z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_dakaifenxikaiguan-18" viewBox="0 0 1024 1024"><path d="M853.333333 170.666667c34.133333 0 56.888889 22.755556 56.888889 56.888889v398.222222c0 34.133333-22.755556 56.888889-56.888889 56.888889H170.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888889V227.555556c0-34.133333 22.755556-56.888889 56.888889-56.888889h682.666666m0-56.888889H170.666667c-62.577778 0-113.777778 51.2-113.777778 113.777778v398.222222c0 62.577778 51.2 113.777778 113.777778 113.777778h682.666666c62.577778 0 113.777778-51.2 113.777778-113.777778V227.555556c0-62.577778-51.2-113.777778-113.777778-113.777778zM938.666667 853.333333h-853.333334c-17.066667 0-28.444444 11.377778-28.444444 28.444445s11.377778 28.444444 28.444444 28.444444h853.333334c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444445z" fill="#666666" ></path><path d="M199.111111 597.333333c-5.688889 0-11.377778 0-17.066667-5.688889-11.377778-11.377778-17.066667-28.444444-5.688888-39.822222l170.666666-227.555555c5.688889-5.688889 11.377778-11.377778 17.066667-11.377778s17.066667 0 22.755555 5.688889l261.688889 204.8 153.6-256c5.688889-11.377778 22.755556-17.066667 39.822223-11.377778 11.377778 11.377778 17.066667 28.444444 5.688888 45.511111l-170.666666 284.444445c-5.688889 5.688889-11.377778 11.377778-17.066667 11.377777-5.688889 0-17.066667 0-22.755555-5.688889L375.466667 381.155556l-153.6 204.8c-5.688889 5.688889-11.377778 11.377778-22.755556 11.377777z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_yinguzhangweichuli-18" viewBox="0 0 1024 1024"><path d="M512 312.888889v227.555555-227.555555m0-56.888889c-34.133333 0-56.888889 22.755556-56.888889 56.888889v227.555555c0 34.133333 22.755556 56.888889 56.888889 56.888889s56.888889-22.755556 56.888889-56.888889v-227.555555c0-34.133333-22.755556-56.888889-56.888889-56.888889zM512 654.222222c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888889 56.888889-22.755556 56.888889-56.888889-22.755556-56.888889-56.888889-56.888889z" fill="#666666" ></path><path d="M512 113.777778c11.377778 0 34.133333 0 51.2 28.444444l324.266667 568.888889c17.066667 28.444444 5.688889 45.511111 0 56.888889-5.688889 5.688889-17.066667 28.444444-51.2 28.444444H187.733333c-28.444444 0-45.511111-17.066667-51.2-28.444444-5.688889-5.688889-17.066667-28.444444 0-56.888889l324.266667-568.888889c17.066667-22.755556 39.822222-28.444444 51.2-28.444444m0-56.888889c-39.822222 0-79.644444 22.755556-96.711111 56.888889L91.022222 682.666667c-45.511111 73.955556 11.377778 170.666667 96.711111 170.666666h648.533334c85.333333 0 142.222222-96.711111 96.711111-170.666666L608.711111 113.777778c-17.066667-34.133333-56.888889-56.888889-96.711111-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_yinweizhiyuanyinweichuli-18" viewBox="0 0 1024 1024"><path d="M512 113.777778c221.866667 0 398.222222 176.355556 398.222222 398.222222s-176.355556 398.222222-398.222222 398.222222-398.222222-176.355556-398.222222-398.222222 176.355556-398.222222 398.222222-398.222222m0-56.888889C261.688889 56.888889 56.888889 261.688889 56.888889 512s204.8 455.111111 455.111111 455.111111 455.111111-204.8 455.111111-455.111111-204.8-455.111111-455.111111-455.111111z" fill="#666666" ></path><path d="M512 284.444444v284.444445-284.444445m0-56.888888c-34.133333 0-56.888889 22.755556-56.888889 56.888888v284.444445c0 34.133333 22.755556 56.888889 56.888889 56.888889s56.888889-22.755556 56.888889-56.888889V284.444444c0-34.133333-22.755556-56.888889-56.888889-56.888888zM512 682.666667c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888888 56.888889-22.755556 56.888889-56.888888-22.755556-56.888889-56.888889-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-suanliguanli_zhengzaifenxi-18" viewBox="0 0 1024 1024"><path d="M512 56.888889C261.688889 56.888889 56.888889 261.688889 56.888889 512s204.8 455.111111 455.111111 455.111111v-56.888889c-221.866667 0-398.222222-176.355556-398.222222-398.222222s176.355556-398.222222 398.222222-398.222222 398.222222 176.355556 398.222222 398.222222h56.888889c0-250.311111-204.8-455.111111-455.111111-455.111111z" fill="#666666" ></path><path d="M483.555556 568.888889c-17.066667 0-28.444444-11.377778-28.444445-28.444445v-284.444444c0-17.066667 11.377778-28.444444 28.444445-28.444444s28.444444 11.377778 28.444444 28.444444v284.444444c0 17.066667-11.377778 28.444444-28.444444 28.444445zM597.333333 967.111111c-17.066667 0-28.444444-11.377778-28.444444-28.444444v-227.555556c0-17.066667 11.377778-28.444444 28.444444-28.444444s28.444444 11.377778 28.444445 28.444444v227.555556c0 17.066667-11.377778 28.444444-28.444445 28.444444zM768 967.111111c-17.066667 0-28.444444-11.377778-28.444444-28.444444v-170.666667c0-17.066667 11.377778-28.444444 28.444444-28.444444s28.444444 11.377778 28.444444 28.444444v170.666667c0 17.066667-11.377778 28.444444-28.444444 28.444444zM938.666667 967.111111c-17.066667 0-28.444444-11.377778-28.444445-28.444444v-113.777778c0-17.066667 11.377778-28.444444 28.444445-28.444445s28.444444 11.377778 28.444444 28.444445v113.777778c0 17.066667-11.377778 28.444444-28.444444 28.444444z" fill="#666666" ></path><path d="M455.111111 540.444444c0-17.066667 11.377778-28.444444 28.444445-28.444444h170.666666c17.066667 0 28.444444 11.377778 28.444445 28.444444s-11.377778 28.444444-28.444445 28.444445h-170.666666c-17.066667 0-28.444444-11.377778-28.444445-28.444445z" fill="#666666" ></path></symbol><symbol id="icon-querenmima-09" viewBox="0 0 1024 1024"><path d="M648.533333 622.933333l-149.333333 149.333334c-8.533333 8.533333-21.333333 8.533333-29.866667 0-8.533333-8.533333-8.533333-21.333333 0-29.866667l149.333334-149.333333c8.533333-8.533333 21.333333-8.533333 29.866666 0 8.533333 8.533333 8.533333 21.333333 0 29.866666z" fill="#999999" ></path><path d="M405.333333 652.8l89.6 89.6c8.533333 8.533333 8.533333 21.333333 0 29.866667-8.533333 8.533333-21.333333 8.533333-29.866666 0L375.466667 682.666667c-8.533333-8.533333-8.533333-21.333333 0-29.866667 8.533333-8.533333 21.333333-8.533333 29.866666 0zM512 85.333333C392.533333 85.333333 298.666667 179.2 298.666667 298.666667v128h42.666666V298.666667c0-93.866667 76.8-170.666667 170.666667-170.666667s170.666667 76.8 170.666667 170.666667v128h42.666666V298.666667c0-119.466667-93.866667-213.333333-213.333333-213.333334z" fill="#999999" ></path><path d="M768 469.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v341.333333c0 25.6-17.066667 42.666667-42.666667 42.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667v-341.333333c0-25.6 17.066667-42.666667 42.666667-42.666667h512m0-42.666666H256c-46.933333 0-85.333333 38.4-85.333333 85.333333v341.333333c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334v-341.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z" fill="#999999" ></path></symbol><symbol id="icon-xiazai_10" viewBox="0 0 1024 1024"><path d="M752 896h-480c-9.6 0-16-6.4-16-16s6.4-16 16-16h480c9.6 0 16 6.4 16 16s-6.4 16-16 16zM656 617.6l-128 128V368c0-9.6-6.4-16-16-16s-16 6.4-16 16v377.6l-128-128c-6.4-6.4-16-6.4-22.4 0s-6.4 16 0 22.4l156.8 156.8s3.2 3.2 6.4 3.2c3.2 3.2 9.6 3.2 12.8 0 3.2 0 3.2-3.2 6.4-3.2l156.8-156.8c6.4-6.4 6.4-16 0-22.4s-22.4-6.4-28.8 0z" fill="#497EF4" ></path><path d="M512 160c105.6 0 198.4 67.2 230.4 169.6l6.4 25.6 25.6-3.2H784c80 0 144 64 144 144S864 640 784 640v32c96 0 176-80 176-176S880 320 784 320h-12.8C736 208 633.6 128 512 128c-115.2 0-214.4 73.6-256 176h-16C144 304 64 384 64 480s80 176 176 176v-32C160 624 96 560 96 480s64-144 144-144h12.8l25.6 3.2 9.6-22.4C323.2 224 412.8 160 512 160" fill="#497EF4" ></path><path d="M240 640m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#497EF4" ></path><path d="M784 656m-16 0a16 16 0 1 0 32 0 16 16 0 1 0-32 0Z" fill="#497EF4" ></path></symbol><symbol id="icon-shebeiguanli_zhongqishebei-18" viewBox="0 0 1024 1024"><path d="M517.688889 56.888889h-11.377778c-34.133333 0-56.888889 22.755556-56.888889 56.888889v472.177778c0 34.133333 22.755556 56.888889 56.888889 56.888888h17.066667c34.133333 0 56.888889-22.755556 56.888889-56.888888V113.777778c-5.688889-34.133333-28.444444-56.888889-62.577778-56.888889z" fill="#FFFFFF" ></path><path d="M967.111111 512c0 159.288889-79.644444 301.511111-204.8 381.155556-34.133333 22.755556-73.955556 45.511111-119.466667 56.888888-39.822222 11.377778-85.333333 17.066667-130.844444 17.066667s-91.022222-5.688889-130.844444-17.066667c-39.822222-11.377778-79.644444-28.444444-119.466667-56.888888C136.533333 813.511111 56.888889 671.288889 56.888889 512s79.644444-301.511111 204.8-381.155556l22.755555 51.2C182.044444 256 113.777778 375.466667 113.777778 512s68.266667 256 170.666666 329.955556c34.133333 22.755556 73.955556 45.511111 119.466667 56.888888 34.133333 5.688889 73.955556 11.377778 108.088889 11.377778 39.822222 0 73.955556-5.688889 108.088889-17.066666 45.511111-11.377778 85.333333-28.444444 119.466667-56.888889 102.4-73.955556 170.666667-193.422222 170.666666-329.955556s-68.266667-256-170.666666-329.955555l22.755555-51.2C887.466667 210.488889 967.111111 352.711111 967.111111 512z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_zhongqishezhi-18" viewBox="0 0 1024 1024"><path d="M512 403.911111c62.577778 0 108.088889 51.2 108.088889 108.088889S568.888889 620.088889 512 620.088889 403.911111 574.577778 403.911111 512 449.422222 403.911111 512 403.911111m0-56.888889C420.977778 347.022222 347.022222 420.977778 347.022222 512s73.955556 164.977778 164.977778 164.977778 164.977778-73.955556 164.977778-164.977778S603.022222 347.022222 512 347.022222z" fill="#0065FF" ></path><path d="M512 113.777778c17.066667 0 28.444444 11.377778 28.444444 28.444444V238.933333l45.511112 11.377778c22.755556 5.688889 51.2 17.066667 68.266666 28.444445l39.822222 22.755555 28.444445-28.444444 34.133333-34.133334c5.688889-5.688889 17.066667-5.688889 17.066667-5.688889s11.377778 0 17.066667 5.688889c5.688889 5.688889 5.688889 17.066667 5.688888 17.066667 0 5.688889 0 11.377778-5.688888 17.066667l-34.133334 34.133333-28.444444 28.444444 22.755555 39.822223c11.377778 22.755556 22.755556 45.511111 28.444445 68.266666l11.377778 45.511111H887.466667c11.377778-5.688889 22.755556 5.688889 22.755555 22.755556 0 17.066667-11.377778 28.444444-28.444444 28.444444H785.066667l-11.377778 45.511112c-5.688889 22.755556-17.066667 51.2-28.444445 68.266666l-22.755555 39.822222 28.444444 28.444445 34.133334 34.133333c11.377778 11.377778 11.377778 28.444444 0 34.133334-5.688889 5.688889-17.066667 5.688889-17.066667 5.688888s-11.377778 0-17.066667-5.688888l-34.133333-34.133334-28.444444-28.444444-39.822223 22.755555c-22.755556 11.377778-45.511111 22.755556-68.266666 28.444445l-45.511111 11.377778V887.466667c5.688889 11.377778-5.688889 22.755556-22.755556 22.755555s-28.444444-11.377778-28.444444-28.444444V785.066667l-45.511112-11.377778c-22.755556-5.688889-51.2-17.066667-68.266666-28.444445l-39.822222-22.755555-28.444445 28.444444-34.133333 34.133334c-5.688889 5.688889-17.066667 5.688889-17.066667 5.688889s-11.377778 0-17.066667-5.688889c-11.377778-11.377778-11.377778-28.444444 0-34.133334l34.133334-34.133333 28.444444-28.444444-22.755555-39.822223c-11.377778-22.755556-22.755556-45.511111-28.444445-68.266666l-11.377778-39.822223H142.222222c-17.066667 0-28.444444-11.377778-28.444444-28.444444s11.377778-28.444444 28.444444-28.444444H238.933333l11.377778-45.511112c5.688889-22.755556 17.066667-51.2 28.444445-68.266666l22.755555-39.822222-34.133333-28.444445-34.133334-34.133333c-11.377778-5.688889-11.377778-17.066667-11.377777-17.066667 0-5.688889 0-11.377778 5.688889-17.066667 5.688889-5.688889 17.066667-5.688889 17.066666-5.688888s11.377778 0 17.066667 5.688888l34.133333 34.133334 28.444445 28.444444 39.822222-22.755555c22.755556-11.377778 45.511111-22.755556 68.266667-28.444445l45.511111-11.377778V142.222222c5.688889-17.066667 17.066667-28.444444 34.133333-28.444444m0-56.888889c-45.511111 0-85.333333 39.822222-85.333333 85.333333v51.2c-28.444444 5.688889-56.888889 17.066667-85.333334 34.133334l-34.133333-39.822223c-17.066667-17.066667-39.822222-22.755556-56.888889-22.755555s-39.822222 5.688889-56.888889 22.755555c-34.133333 34.133333-34.133333 85.333333 0 119.466667L227.555556 341.333333c-17.066667 28.444444-28.444444 56.888889-34.133334 85.333334h-51.2C96.711111 426.666667 56.888889 466.488889 56.888889 512s39.822222 85.333333 85.333333 85.333333h51.2c5.688889 28.444444 17.066667 56.888889 34.133334 85.333334l-34.133334 34.133333c-34.133333 34.133333-34.133333 85.333333 0 119.466667 17.066667 17.066667 39.822222 22.755556 56.888889 22.755555 22.755556 0 39.822222-5.688889 56.888889-22.755555L341.333333 796.444444c28.444444 17.066667 56.888889 28.444444 85.333334 34.133334v51.2c0 45.511111 39.822222 85.333333 85.333333 85.333333s85.333333-39.822222 85.333333-85.333333v-51.2c28.444444-5.688889 56.888889-17.066667 85.333334-34.133334l34.133333 34.133334c17.066667 17.066667 39.822222 22.755556 56.888889 22.755555s39.822222-5.688889 56.888889-22.755555c34.133333-34.133333 34.133333-85.333333 0-119.466667L796.444444 682.666667c17.066667-28.444444 28.444444-56.888889 34.133334-85.333334h51.2c45.511111 0 85.333333-39.822222 85.333333-85.333333s-39.822222-85.333333-85.333333-85.333333h-51.2c-5.688889-28.444444-17.066667-56.888889-34.133334-85.333334l34.133334-34.133333c34.133333-34.133333 34.133333-85.333333 0-119.466667-17.066667-17.066667-39.822222-22.755556-56.888889-22.755555s-39.822222 5.688889-56.888889 22.755555L682.666667 227.555556c-28.444444-17.066667-56.888889-28.444444-85.333334-34.133334v-51.2C597.333333 96.711111 557.511111 56.888889 512 56.888889z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_suanfaxiangqing-09" viewBox="0 0 1024 1024"><path d="M768 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h341.333333l256-256V170.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z m-170.666667 793.6V725.333333c0-25.6 17.066667-42.666667 42.666667-42.666666h153.6L597.333333 878.933333z m42.666667-238.933333c-46.933333 0-85.333333 38.4-85.333333 85.333333v170.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667V170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667h512c25.6 0 42.666667 17.066667 42.666667 42.666667v469.333333h-170.666667z" fill="#0065FF" ></path><path d="M379.733333 413.866667l-132.266666 64c-8.533333 4.266667-12.8 12.8-12.8 21.333333v8.533333c0 8.533333 4.266667 17.066667 12.8 21.333334l132.266666 64h8.533334c4.266667 0 8.533333 0 12.8-4.266667 4.266667-4.266667 8.533333-12.8 8.533333-17.066667V554.666667c0-8.533333-4.266667-17.066667-12.8-21.333334l-81.066667-38.4 81.066667-38.4c8.533333-4.266667 12.8-12.8 12.8-21.333333V426.666667c0-8.533333-4.266667-12.8-8.533333-17.066667-4.266667 0-12.8 0-21.333334 4.266667zM567.466667 354.133333H554.666667c-8.533333 0-17.066667 4.266667-21.333334 12.8l-98.133333 243.2c-4.266667 8.533333 0 12.8 4.266667 21.333334 4.266667 4.266667 8.533333 8.533333 17.066666 8.533333h12.8c8.533333 0 17.066667-4.266667 21.333334-12.8L584.533333 384c4.266667-8.533333 0-12.8-4.266666-21.333333 0-4.266667-8.533333-8.533333-12.8-8.533334zM776.533333 473.6l-132.266666-64c-8.533333-4.266667-12.8-4.266667-21.333334 0-4.266667 4.266667-8.533333 12.8-8.533333 17.066667v8.533333c0 8.533333 4.266667 17.066667 12.8 21.333333l81.066667 38.4-81.066667 38.4c-8.533333 4.266667-12.8 12.8-12.8 21.333334v8.533333c0 8.533333 4.266667 12.8 8.533333 17.066667 4.266667 4.266667 8.533333 4.266667 12.8 4.266666h8.533334l132.266666-64c8.533333-4.266667 12.8-12.8 12.8-21.333333v-8.533333c0-4.266667-4.266667-12.8-12.8-17.066667z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_xiangyou_kedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#E5E5E5" ></path><path d="M425.6 224c9.6 0 16 3.2 22.4 9.6l220.8 220.8c16 16 25.6 35.2 25.6 57.6s-9.6 44.8-25.6 57.6L448 790.4c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l220.8-220.8c3.2-3.2 6.4-9.6 6.4-12.8s-3.2-9.6-6.4-12.8l-220.8-220.8c-12.8-12.8-12.8-32 0-44.8 6.4-6.4 16-9.6 22.4-9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_xiangyou_bukedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F5F5F5" ></path><path d="M425.6 224c9.6 0 16 3.2 22.4 9.6l220.8 220.8c16 16 25.6 35.2 25.6 57.6s-9.6 44.8-25.6 57.6L448 790.4c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l220.8-220.8c3.2-3.2 6.4-9.6 6.4-12.8s-3.2-9.6-6.4-12.8l-220.8-220.8c-12.8-12.8-12.8-32 0-44.8 6.4-6.4 16-9.6 22.4-9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_daochu-18" viewBox="0 0 1024 1024"><path d="M881.777778 540.444444h-568.888889c-17.066667 0-28.444444-11.377778-28.444445-28.444444s11.377778-28.444444 28.444445-28.444444h568.888889c17.066667 0 28.444444 11.377778 28.444444 28.444444s-11.377778 28.444444-28.444444 28.444444z" fill="#0065FF" ></path><path d="M859.022222 534.755556l-164.977778-164.977778c-11.377778-11.377778-11.377778-28.444444 0-39.822222 11.377778-11.377778 28.444444-11.377778 39.822223 0l164.977777 164.977777c11.377778 11.377778 11.377778 28.444444 0 39.822223-5.688889 5.688889-28.444444 5.688889-39.822222 0z" fill="#0065FF" ></path><path d="M699.733333 654.222222l164.977778-164.977778c11.377778-11.377778 28.444444-11.377778 39.822222 0 11.377778 11.377778 11.377778 28.444444 0 39.822223l-164.977777 170.666666c-11.377778 11.377778-28.444444 11.377778-39.822223 0-11.377778-11.377778-11.377778-34.133333 0-45.511111z" fill="#0065FF" ></path><path d="M739.555556 227.555556c0-28.444444-28.444444-56.888889-56.888889-56.888889H227.555556c-28.444444 0-56.888889 28.444444-56.888889 56.888889v568.888888c0 28.444444 28.444444 56.888889 56.888889 56.888889h455.111111c28.444444 0 56.888889-28.444444 56.888889-56.888889h56.888888c0 62.577778-51.2 113.777778-113.777777 113.777778H227.555556c-62.577778 0-113.777778-51.2-113.777778-113.777778V227.555556c0-62.577778 51.2-113.777778 113.777778-113.777778h455.111111c62.577778 0 113.777778 51.2 113.777777 113.777778h-56.888888z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_jiebangshebei_button-18" viewBox="0 0 1024 1024"><path d="M449.422222 290.133333m-28.444444 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M733.866667 574.577778m-28.444445 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M290.133333 449.422222m-28.444444 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M574.577778 733.866667m-28.444445 0a28.444444 28.444444 0 1 0 56.888889 0 28.444444 28.444444 0 1 0-56.888889 0Z" fill="#0065FF" ></path><path d="M273.066667 312.888889L187.733333 233.244444c-11.377778-11.377778-11.377778-28.444444 0-39.822222 11.377778-11.377778 28.444444-11.377778 39.822223 0l79.644444 79.644445c11.377778 11.377778 11.377778 28.444444 0 39.822222-5.688889 11.377778-22.755556 11.377778-34.133333 0zM335.644444 216.177778v-113.777778c0-17.066667 11.377778-28.444444 28.444445-28.444444s28.444444 11.377778 28.444444 28.444444v113.777778c0 17.066667-11.377778 28.444444-28.444444 28.444444s-28.444444-11.377778-28.444445-28.444444zM216.177778 335.644444h-113.777778c-17.066667 0-28.444444 11.377778-28.444444 28.444445s11.377778 28.444444 28.444444 28.444444h113.777778c17.066667 0 28.444444-11.377778 28.444444-28.444444s-11.377778-28.444444-28.444444-28.444445zM711.111111 750.933333l79.644445 79.644445c11.377778 11.377778 28.444444 11.377778 39.822222 0 11.377778-11.377778 11.377778-28.444444 0-39.822222l-79.644445-79.644445c-11.377778-11.377778-28.444444-11.377778-39.822222 0-11.377778 11.377778-11.377778 28.444444 0 39.822222zM807.822222 688.355556h113.777778c17.066667 0 28.444444-11.377778 28.444444-28.444445s-11.377778-28.444444-28.444444-28.444444h-113.777778c-17.066667 0-28.444444 11.377778-28.444444 28.444444s11.377778 28.444444 28.444444 28.444445zM688.355556 807.822222v113.777778c0 17.066667-11.377778 28.444444-28.444445 28.444444s-28.444444-11.377778-28.444444-28.444444v-113.777778c0-17.066667 11.377778-28.444444 28.444444-28.444444s28.444444 11.377778 28.444445 28.444444zM432.355556 836.266667c-68.266667 68.266667-176.355556 68.266667-238.933334 0-68.266667-68.266667-68.266667-176.355556 0-238.933334l119.466667-119.466666-39.822222-45.511111-125.155556 119.466666c-91.022222 91.022222-91.022222 233.244444 0 324.266667 91.022222 91.022222 233.244444 91.022222 324.266667 0l119.466666-119.466667-39.822222-39.822222-119.466666 119.466667z m443.733333-688.355556C785.066667 56.888889 642.844444 56.888889 551.822222 147.911111L432.355556 273.066667l39.822222 39.822222 119.466666-119.466667c68.266667-68.266667 176.355556-68.266667 238.933334 0 68.266667 68.266667 68.266667 176.355556 0 238.933334l-119.466667 119.466666 39.822222 39.822222 119.466667-119.466666c91.022222-91.022222 91.022222-233.244444 5.688889-324.266667z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_tianjiashebei-18" viewBox="0 0 1024 1024"><path d="M512 938.666667c-34.133333 0-56.888889-22.755556-56.888889-56.888889v-739.555556c0-34.133333 22.755556-56.888889 56.888889-56.888889s56.888889 22.755556 56.888889 56.888889v739.555556c0 34.133333-22.755556 56.888889-56.888889 56.888889z" fill="#FFFFFF" ></path><path d="M85.333333 512c0-34.133333 22.755556-56.888889 56.888889-56.888889h739.555556c34.133333 0 56.888889 22.755556 56.888889 56.888889s-22.755556 56.888889-56.888889 56.888889h-739.555556c-34.133333 0-56.888889-22.755556-56.888889-56.888889z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_jiebangshebei_biaoge-09" viewBox="0 0 1024 1024"><path d="M465.066667 345.6m-21.333334 0a21.333333 21.333333 0 1 0 42.666667 0 21.333333 21.333333 0 1 0-42.666667 0Z" fill="#0065FF" ></path><path d="M678.4 558.933333m-21.333333 0a21.333333 21.333333 0 1 0 42.666666 0 21.333333 21.333333 0 1 0-42.666666 0Z" fill="#0065FF" ></path><path d="M345.6 465.066667m-21.333333 0a21.333333 21.333333 0 1 0 42.666666 0 21.333333 21.333333 0 1 0-42.666666 0Z" fill="#0065FF" ></path><path d="M558.933333 678.4m-21.333333 0a21.333333 21.333333 0 1 0 42.666667 0 21.333333 21.333333 0 1 0-42.666667 0Z" fill="#0065FF" ></path><path d="M362.666667 844.8c-51.2 51.2-132.266667 51.2-179.2 0-51.2-51.2-51.2-132.266667 0-179.2l179.2-179.2-29.866667-29.866667-179.2 179.2C85.333333 704 85.333333 810.666667 153.6 878.933333c34.133333 34.133333 76.8 51.2 119.466667 51.2 42.666667 0 89.6-17.066667 119.466666-51.2l179.2-179.2-29.866666-29.866666-179.2 174.933333z m512-695.466667c-68.266667-68.266667-174.933333-68.266667-243.2 0l-179.2 179.2 29.866666 29.866667 179.2-179.2c51.2-51.2 132.266667-51.2 179.2 0 51.2 51.2 51.2 132.266667 0 179.2l-179.2 179.2 29.866667 29.866667 179.2-179.2c68.266667-64 68.266667-170.666667 4.266667-238.933334zM332.8 362.666667L209.066667 238.933333c-8.533333-8.533333-8.533333-21.333333 0-29.866666 8.533333-8.533333 21.333333-8.533333 29.866666 0l119.466667 119.466666c8.533333 8.533333 8.533333 21.333333 0 29.866667-4.266667 12.8-17.066667 12.8-25.6 4.266667zM388.266667 281.6v-170.666667c0-12.8 8.533333-21.333333 21.333333-21.333333s21.333333 8.533333 21.333333 21.333333v170.666667c0 12.8-8.533333 21.333333-21.333333 21.333333s-21.333333-8.533333-21.333333-21.333333zM281.6 388.266667h-170.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h170.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333zM661.333333 691.2l119.466667 119.466667c8.533333 8.533333 21.333333 8.533333 29.866667 0 8.533333-8.533333 8.533333-21.333333 0-29.866667l-119.466667-119.466667c-8.533333-8.533333-21.333333-8.533333-29.866667 0-8.533333 8.533333-8.533333 21.333333 0 29.866667zM742.4 635.733333h170.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333h-170.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333zM635.733333 742.4v170.666667c0 12.8-8.533333 21.333333-21.333333 21.333333s-21.333333-8.533333-21.333333-21.333333v-170.666667c0-12.8 8.533333-21.333333 21.333333-21.333333s21.333333 8.533333 21.333333 21.333333z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_xiangzuo_bukedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#F5F5F5" ></path><path d="M598.4 800c-9.6 0-16-3.2-22.4-9.6l-220.8-220.8c-16-16-25.6-35.2-25.6-57.6s9.6-44.8 25.6-57.6L576 233.6c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8l-220.8 220.8c-3.2 3.2-6.4 9.6-6.4 12.8s3.2 9.6 6.4 12.8l220.8 220.8c12.8 12.8 12.8 32 0 44.8-6.4 6.4-16 9.6-22.4 9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_shebeixiangqing-09-09" viewBox="0 0 1024 1024"><path d="M682.666667 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512V170.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z m42.666666 810.666667H256c-21.333333 0-42.666667-21.333333-42.666667-42.666667V170.666667c0-21.333333 21.333333-42.666667 42.666667-42.666667h426.666667c21.333333 0 42.666667 21.333333 42.666666 42.666667v725.333333z" fill="#0065FF" ></path><path d="M768 341.333333h-42.666667v42.666667h42.666667c21.333333 0 42.666667 21.333333 42.666667 42.666667v426.666666c0 21.333333-21.333333 42.666667-42.666667 42.666667H268.8c12.8 25.6 42.666667 42.666667 72.533333 42.666667h426.666667c46.933333 0 85.333333-38.4 85.333333-85.333334V426.666667c0-46.933333-38.4-85.333333-85.333333-85.333334zM554.666667 256c25.6 0 42.666667 17.066667 42.666666 42.666667v42.666666c0 25.6-17.066667 42.666667-42.666666 42.666667H384c-25.6 0-42.666667-17.066667-42.666667-42.666667V298.666667c0-25.6 17.066667-42.666667 42.666667-42.666667h170.666667m0-42.666667H384c-46.933333 0-85.333333 38.4-85.333333 85.333334v42.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h170.666667c46.933333 0 85.333333-38.4 85.333333-85.333334V298.666667c0-46.933333-38.4-85.333333-85.333333-85.333334z" fill="#0065FF" ></path><path d="M618.666667 554.666667h-298.666667c-12.8 0-21.333333-8.533333-21.333333-21.333334s8.533333-21.333333 21.333333-21.333333h298.666667c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333334zM618.666667 682.666667h-298.666667c-12.8 0-21.333333-8.533333-21.333333-21.333334s8.533333-21.333333 21.333333-21.333333h298.666667c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333334zM448 810.666667h-128c-12.8 0-21.333333-8.533333-21.333333-21.333334s8.533333-21.333333 21.333333-21.333333h128c12.8 0 21.333333 8.533333 21.333333 21.333333s-8.533333 21.333333-21.333333 21.333334z" fill="#0065FF" ></path></symbol><symbol id="icon-shebeiguanli_xiangyou_xuanfu_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#0065FF" ></path><path d="M425.6 224c9.6 0 16 3.2 22.4 9.6l220.8 220.8c16 16 25.6 35.2 25.6 57.6s-9.6 44.8-25.6 57.6L448 790.4c-12.8 12.8-32 12.8-44.8 0s-12.8-32 0-44.8l220.8-220.8c3.2-3.2 6.4-9.6 6.4-12.8s-3.2-9.6-6.4-12.8l-220.8-220.8c-12.8-12.8-12.8-32 0-44.8 6.4-6.4 16-9.6 22.4-9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_tuichuquanping-08" viewBox="0 0 1024 1024"><path d="M877.714286 1024H146.285714c-80.457143 0-146.285714-65.828571-146.285714-146.285714V146.285714c0-80.457143 65.828571-146.285714 146.285714-146.285714h731.428572c80.457143 0 146.285714 65.828571 146.285714 146.285714v731.428572c0 80.457143-65.828571 146.285714-146.285714 146.285714z" fill="#0065FF" ></path><path d="M190.171429 190.171429c7.314286-7.314286 18.285714-7.314286 25.6 0l179.2 179.2c7.314286 7.314286 7.314286 18.285714 0 25.6-7.314286 7.314286-18.285714 7.314286-25.6 0L190.171429 215.771429c-7.314286-7.314286-7.314286-18.285714 0-25.6z" fill="#FFFFFF" ></path><path d="M402.285714 384c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M384 402.285714c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714zM833.828571 833.828571c-7.314286 7.314286-18.285714 7.314286-25.6 0l-179.2-179.2c-7.314286-7.314286-7.314286-18.285714 0-25.6 7.314286-7.314286 18.285714-7.314286 25.6 0l179.2 179.2c7.314286 7.314286 7.314286 18.285714 0 25.6z" fill="#FFFFFF" ></path><path d="M621.714286 640c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M640 621.714286c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M190.171429 833.828571c-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0 7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0z" fill="#FFFFFF" ></path><path d="M384 621.714286c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M402.285714 640c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M833.828571 190.171429c7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0z" fill="#FFFFFF" ></path><path d="M640 402.285714c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M621.714286 384c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_xiangzuo_kedianji_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#E5E5E5" ></path><path d="M598.4 800c-9.6 0-16-3.2-22.4-9.6l-220.8-220.8c-16-16-25.6-35.2-25.6-57.6s9.6-44.8 25.6-57.6L576 233.6c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8l-220.8 220.8c-3.2 3.2-6.4 9.6-6.4 12.8s3.2 9.6 6.4 12.8l220.8 220.8c12.8 12.8 12.8 32 0 44.8-6.4 6.4-16 9.6-22.4 9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_xiangzuo_xuanfu_10" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#0065FF" ></path><path d="M598.4 800c-9.6 0-16-3.2-22.4-9.6l-220.8-220.8c-16-16-25.6-35.2-25.6-57.6s9.6-44.8 25.6-57.6L576 233.6c12.8-12.8 32-12.8 44.8 0s12.8 32 0 44.8l-220.8 220.8c-3.2 3.2-6.4 9.6-6.4 12.8s3.2 9.6 6.4 12.8l220.8 220.8c12.8 12.8 12.8 32 0 44.8-6.4 6.4-16 9.6-22.4 9.6z" fill="#FFFFFF" ></path></symbol><symbol id="icon-shebeiguanli_quanping-08" viewBox="0 0 1024 1024"><path d="M877.714286 1024H146.285714c-80.457143 0-146.285714-65.828571-146.285714-146.285714V146.285714c0-80.457143 65.828571-146.285714 146.285714-146.285714h731.428572c80.457143 0 146.285714 65.828571 146.285714 146.285714v731.428572c0 80.457143-65.828571 146.285714-146.285714 146.285714z" fill="#0065FF" ></path><path d="M394.971429 394.971429c-7.314286 7.314286-18.285714 7.314286-25.6 0l-182.857143-179.2c-3.657143-7.314286-3.657143-21.942857 0-29.257143 7.314286-3.657143 21.942857-3.657143 29.257143 0l179.2 179.2c7.314286 10.971429 7.314286 21.942857 0 29.257143z" fill="#FFFFFF" ></path><path d="M182.857143 201.142857c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M201.142857 182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714zM629.028571 629.028571c7.314286-7.314286 18.285714-7.314286 25.6 0l179.2 179.2c7.314286 7.314286 7.314286 18.285714 0 25.6-7.314286 7.314286-18.285714 7.314286-25.6 0l-179.2-179.2c-7.314286-7.314286-7.314286-18.285714 0-25.6z" fill="#FFFFFF" ></path><path d="M841.142857 822.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M822.857143 841.142857c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M394.971429 629.028571c7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0z" fill="#FFFFFF" ></path><path d="M201.142857 841.142857c-10.971429 0-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714s18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714z" fill="#FFFFFF" ></path><path d="M182.857143 822.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714s-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M629.028571 394.971429c-7.314286-7.314286-7.314286-18.285714 0-25.6l179.2-179.2c7.314286-7.314286 18.285714-7.314286 25.6 0 7.314286 7.314286 7.314286 18.285714 0 25.6l-179.2 179.2c-7.314286 7.314286-18.285714 7.314286-25.6 0z" fill="#FFFFFF" ></path><path d="M822.857143 182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714v182.857143c0 10.971429-7.314286 18.285714-18.285714 18.285714s-18.285714-7.314286-18.285714-18.285714v-182.857143c0-10.971429 7.314286-18.285714 18.285714-18.285714z" fill="#FFFFFF" ></path><path d="M841.142857 201.142857c0 10.971429-7.314286 18.285714-18.285714 18.285714h-182.857143c-10.971429 0-18.285714-7.314286-18.285714-18.285714s7.314286-18.285714 18.285714-18.285714h182.857143c10.971429 0 18.285714 7.314286 18.285714 18.285714z" fill="#FFFFFF" ></path></symbol><symbol id="icon-jianyifankui-09" viewBox="0 0 1024 1024"><path d="M832 320c-12.8 0-21.333333 8.533333-21.333333 21.333333v512c0 21.333333-21.333333 42.666667-42.666667 42.666667H256c-21.333333 0-42.666667-21.333333-42.666667-42.666667V170.666667c0-21.333333 21.333333-42.666667 42.666667-42.666667h341.333333c12.8 0 21.333333-8.533333 21.333334-21.333333S610.133333 85.333333 597.333333 85.333333H256c-46.933333 0-85.333333 38.4-85.333333 85.333334v682.666666c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334V341.333333c0-12.8-8.533333-21.333333-21.333333-21.333333z" fill="#3D3D3D" ></path><path d="M576 362.666667c8.533333 8.533333 21.333333 8.533333 29.866667 0l243.2-243.2c8.533333-8.533333 8.533333-21.333333 0-29.866667-8.533333-8.533333-21.333333-8.533333-29.866667 0l-243.2 243.2c-8.533333 8.533333-8.533333 21.333333 0 29.866667zM725.333333 576c0-12.8-8.533333-21.333333-21.333333-21.333333h-384c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h384c12.8 0 21.333333-8.533333 21.333333-21.333333zM320 682.666667c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333333h298.666667c12.8 0 21.333333-8.533333 21.333333-21.333333s-8.533333-21.333333-21.333333-21.333333h-298.666667z" fill="#3D3D3D" ></path></symbol><symbol id="icon-shouqianzixundianhua-09" viewBox="0 0 1024 1024"><path d="M341.333333 183.466667c38.4 42.666667 68.266667 93.866667 89.6 149.333333-21.333333 12.8-42.666667 29.866667-59.733333 46.933333 0 4.266667-4.266667 8.533333-8.533333 17.066667l-25.6 25.6 21.333333 29.866667c29.866667 38.4 59.733333 76.8 98.133333 110.933333 34.133333 34.133333 72.533333 68.266667 110.933334 98.133333l29.866666 21.333334 29.866667-25.6 12.8-12.8c17.066667-17.066667 34.133333-38.4 46.933333-59.733334 55.466667 21.333333 106.666667 51.2 149.333334 89.6-8.533333 21.333333-17.066667 38.4-29.866667 55.466667-12.8 21.333333-29.866667 42.666667-51.2 64-17.066667 17.066667-34.133333 29.866667-51.2 42.666667-81.066667-34.133333-162.133333-76.8-230.4-132.266667-12.8-8.533333-25.6-17.066667-34.133333-29.866667-17.066667-12.8-34.133333-29.866667-51.2-46.933333-17.066667-17.066667-34.133333-34.133333-46.933334-51.2-8.533333-12.8-21.333333-21.333333-29.866666-34.133333C260.266667 473.6 213.333333 396.8 179.2 315.733333c12.8-17.066667 25.6-34.133333 42.666667-51.2 21.333333-21.333333 42.666667-38.4 64-51.2 17.066667-12.8 38.4-21.333333 55.466666-29.866666M354.133333 128c-29.866667 12.8-64 25.6-93.866666 46.933333-25.6 12.8-46.933333 34.133333-68.266667 55.466667C166.4 256 145.066667 281.6 128 307.2c34.133333 93.866667 85.333333 183.466667 149.333333 268.8 8.533333 12.8 21.333333 25.6 29.866667 38.4 17.066667 17.066667 29.866667 34.133333 51.2 51.2l51.2 51.2c12.8 12.8 25.6 21.333333 38.4 29.866667 81.066667 64 170.666667 115.2 268.8 149.333333 29.866667-17.066667 55.466667-38.4 76.8-64 21.333333-21.333333 42.666667-46.933333 59.733333-72.533333 17.066667-29.866667 34.133333-59.733333 46.933334-93.866667-64-64-140.8-110.933333-221.866667-132.266667-17.066667 29.866667-34.133333 59.733333-59.733333 81.066667l-8.533334 8.533333a1118.677333 1118.677333 0 0 1-200.533333-200.533333c4.266667-4.266667 4.266667-8.533333 8.533333-8.533333 25.6-25.6 51.2-46.933333 81.066667-59.733334-34.133333-81.066667-76.8-157.866667-145.066667-226.133333z" fill="#3D3D3D" ></path></symbol><symbol id="icon-huidaodingbu-18" viewBox="0 0 1024 1024"><path d="M853.333333 682.666667c-17.066667 0-28.444444-5.688889-39.822222-17.066667L512 364.088889l-301.511111 301.511111c-22.755556 22.755556-56.888889 22.755556-79.644445 0s-22.755556-56.888889 0-79.644444l341.333334-341.333334c22.755556-22.755556 56.888889-22.755556 79.644444 0l341.333334 341.333334c22.755556 22.755556 22.755556 56.888889 0 79.644444-11.377778 11.377778-22.755556 17.066667-39.822223 17.066667z" fill="#666666" ></path></symbol><symbol id="icon-lianxiwomen-18" viewBox="0 0 1024 1024"><path d="M796.444444 199.111111c34.133333 0 56.888889 22.755556 56.888889 56.888889v398.222222c0 34.133333-22.755556 56.888889-56.888889 56.888889H489.244444l-17.066666 17.066667L398.222222 802.133333l-73.955555-73.955555-17.066667-17.066667H227.555556c-34.133333 0-56.888889-22.755556-56.888889-56.888889v-398.222222c0-34.133333 22.755556-56.888889 56.888889-56.888889h568.888888m0-56.888889H227.555556c-62.577778 0-113.777778 51.2-113.777778 113.777778v398.222222c0 62.577778 51.2 113.777778 113.777778 113.777778h62.577777l113.777778 113.777778 113.777778-113.777778h284.444444c62.577778 0 113.777778-51.2 113.777778-113.777778v-398.222222c-5.688889-62.577778-56.888889-113.777778-119.466667-113.777778z" fill="#666666" ></path><path d="M284.444444 369.777778c-34.133333 0-56.888889 22.755556-56.888888 56.888889s22.755556 56.888889 56.888888 56.888889 56.888889-22.755556 56.888889-56.888889-22.755556-56.888889-56.888889-56.888889zM512 369.777778c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888889 56.888889-22.755556 56.888889-56.888889-22.755556-56.888889-56.888889-56.888889zM739.555556 369.777778c-34.133333 0-56.888889 22.755556-56.888889 56.888889s22.755556 56.888889 56.888889 56.888889 56.888889-22.755556 56.888888-56.888889-22.755556-56.888889-56.888888-56.888889z" fill="#666666" ></path></symbol><symbol id="icon-guanbi_v" viewBox="0 0 1024 1024"><path d="M131.84 222.4L222.336 131.84 892.16 801.6l-90.56 90.56z" fill="#0065FF" ></path><path d="M801.6 131.84l90.56 90.496L222.4 892.16 131.84 801.6z" fill="#0065FF" ></path></symbol><symbol id="icon-morentouxiang-01" viewBox="0 0 1024 1024"><path d="M1024 512c0 117.028571-39.497143 225.28-105.325714 311.588571C825.051429 945.005714 677.302857 1024 512 1024c-160.914286 0-304.274286-74.605714-397.897143-190.171429C42.422857 746.057143 0 633.417143 0 512 0 229.668571 229.668571 0 512 0s512 229.668571 512 512z" fill="#BBBBBB" ></path><path d="M918.674286 823.588571C825.051429 945.005714 677.302857 1024 512 1024c-160.914286 0-304.274286-74.605714-397.897143-190.171429 36.571429-65.828571 105.325714-111.177143 185.782857-112.64 59.977143 55.588571 138.971429 86.308571 219.428572 86.308572 81.92 0 160.914286-30.72 219.428571-86.308572 73.142857 1.462857 140.434286 39.497143 179.931429 102.4zM512 157.988571c155.062857 0 280.868571 125.805714 280.868571 280.868572S667.062857 719.725714 512 719.725714 231.131429 593.92 231.131429 438.857143c0-153.6 125.805714-280.868571 280.868571-280.868572z" fill="#888888" ></path></symbol><symbol id="icon-tedian_v-08" viewBox="0 0 1024 1024"><path d="M512 113.371429c186.514286 0 336.457143 149.942857 336.457143 336.457142 0 69.485714-21.942857 138.971429-62.171429 197.485715l-14.628571 18.285714 10.971428 21.942857 58.514286 102.4-65.828571-14.628571-29.257143-7.314286-10.971429 29.257143-21.942857 62.171428-47.542857-80.457142-14.628571-25.6-29.257143 10.971428c-36.571429 14.628571-73.142857 18.285714-113.371429 18.285714s-76.8-7.314286-113.371428-18.285714l-29.257143-10.971428-14.628572 25.6-47.542857 80.457142-21.942857-62.171428-3.657143-29.257143-32.914286 7.314286-62.171428 10.971428 58.514286-102.4 10.971428-21.942857-14.628571-18.285714c-40.228571-58.514286-62.171429-124.342857-62.171429-197.485714 0-182.857143 149.942857-332.8 336.457143-332.8m0-36.571429C307.2 76.8 138.971429 241.371429 138.971429 449.828571c0 80.457143 25.6 157.257143 69.485714 219.428572L109.714286 837.485714l142.628571-29.257143 47.542857 138.971429 87.771429-149.942857c40.228571 14.628571 80.457143 21.942857 124.342857 21.942857s87.771429-7.314286 124.342857-21.942857l87.771429 149.942857 47.542857-138.971429 142.628571 29.257143-98.742857-171.885714c43.885714-62.171429 69.485714-135.314286 69.485714-219.428571 0-204.8-168.228571-369.371429-373.028571-369.371429z" fill="#0065FF" ></path><path d="M512 113.371429c186.514286 0 336.457143 149.942857 336.457143 336.457142 0 69.485714-21.942857 138.971429-62.171429 197.485715-40.228571 54.857143-95.085714 98.742857-160.914285 120.685714-36.571429 14.628571-73.142857 18.285714-113.371429 18.285714s-76.8-7.314286-113.371429-18.285714c-62.171429-21.942857-120.685714-65.828571-160.914285-120.685714-40.228571-58.514286-62.171429-124.342857-62.171429-197.485715 0-186.514286 149.942857-336.457143 336.457143-336.457142m0-36.571429C307.2 76.8 138.971429 241.371429 138.971429 449.828571c0 80.457143 25.6 157.257143 69.485714 219.428572 43.885714 62.171429 106.057143 106.057143 175.542857 131.657143 40.228571 14.628571 80.457143 21.942857 124.342857 21.942857s87.771429-7.314286 124.342857-21.942857c73.142857-25.6 131.657143-73.142857 175.542857-131.657143 43.885714-62.171429 69.485714-135.314286 69.485715-219.428572 7.314286-208.457143-160.914286-373.028571-365.714286-373.028571z" fill="#0065FF" ></path><path d="M512 288.914286l43.885714 91.428571 7.314286 18.285714 21.942857 3.657143 102.4 14.628572-73.142857 73.142857-14.628571 14.628571 3.657142 18.285715 18.285715 98.742857-91.428572-47.542857-18.285714-7.314286-18.285714 7.314286L402.285714 621.714286l18.285715-102.4 3.657142-18.285715-14.628571-14.628571-73.142857-73.142857L438.857143 402.285714l18.285714-3.657143 7.314286-18.285714L512 288.914286m0-80.457143L435.2 365.714286l-175.542857 25.6 128 124.342857-29.257143 175.542857 157.257143-84.114286 157.257143 84.114286-29.257143-175.542857 128-124.342857-182.857143-25.6L512 208.457143z" fill="#0065FF" ></path></symbol><symbol id="icon-duigou" viewBox="0 0 1024 1024"><path d="M147.2 467.2l268.8 268.8c25.6 25.6 25.6 64 0 89.6-25.6 25.6-64 25.6-89.6 0L57.6 556.8c-25.6-25.6-25.6-64 0-89.6 25.6-25.6 70.4-25.6 89.6 0z" fill="#0065FF" ></path><path d="M966.4 288L422.4 832c-25.6 25.6-64 25.6-89.6 0-25.6-25.6-25.6-64 0-89.6l544-544c25.6-25.6 64-25.6 89.6 0 25.6 19.2 25.6 64 0 89.6z" fill="#0065FF" ></path></symbol><symbol id="icon-peizhi-08" viewBox="0 0 1024 1024"><path d="M512 402.285714c62.171429 0 109.714286 47.542857 109.714286 109.714286s-47.542857 109.714286-109.714286 109.714286-109.714286-47.542857-109.714286-109.714286 47.542857-109.714286 109.714286-109.714286m0-36.571428c-80.457143 0-146.285714 65.828571-146.285714 146.285714s65.828571 146.285714 146.285714 146.285714 146.285714-65.828571 146.285714-146.285714-65.828571-146.285714-146.285714-146.285714z" fill="#0065FF" ></path><path d="M512 146.285714c21.942857 0 36.571429 14.628571 36.571429 36.571429v73.142857l29.257142 7.314286c21.942857 7.314286 43.885714 14.628571 62.171429 29.257143l25.6 14.628571 18.285714-18.285714 32.914286-32.914286c7.314286-7.314286 14.628571-10.971429 25.6-10.971429s18.285714 3.657143 25.6 10.971429c7.314286 7.314286 10.971429 14.628571 10.971429 25.6s-3.657143 18.285714-10.971429 25.6l-32.914286 32.914286-18.285714 18.285714 14.628571 25.6c10.971429 21.942857 21.942857 43.885714 25.6 65.828571l10.971429 25.6h73.142857c21.942857 0 36.571429 14.628571 36.571429 36.571429s-14.628571 36.571429-36.571429 36.571429h-73.142857l-7.314286 29.257142c-7.314286 21.942857-14.628571 43.885714-25.6 65.828572l-14.628571 25.6 18.285714 18.285714 32.914286 32.914286c14.628571 14.628571 14.628571 36.571429 0 51.2-7.314286 7.314286-14.628571 10.971429-25.6 10.971428-10.971429 0-18.285714-3.657143-25.6-10.971428l-32.914286-32.914286-18.285714-18.285714-29.257143 10.971428c-21.942857 10.971429-43.885714 21.942857-65.828571 25.6l-25.6 10.971429v73.142857c0 21.942857-14.628571 36.571429-36.571429 36.571429s-36.571429-14.628571-36.571429-36.571429v-73.142857l-29.257142-7.314286c-21.942857-7.314286-43.885714-14.628571-65.828572-25.6l-25.6-14.628571-18.285714 18.285714-32.914286 32.914286c-7.314286 7.314286-14.628571 10.971429-25.6 10.971428-10.971429 0-18.285714-3.657143-25.6-10.971428-14.628571-14.628571-14.628571-36.571429 0-51.2l32.914286-32.914286 18.285714-18.285714-10.971428-29.257143c-10.971429-21.942857-21.942857-43.885714-25.6-65.828571L256 548.571429H182.857143c-21.942857 0-36.571429-14.628571-36.571429-36.571429s14.628571-36.571429 36.571429-36.571429h73.142857l7.314286-29.257142c7.314286-21.942857 14.628571-43.885714 29.257143-62.171429l14.628571-25.6-21.942857-21.942857-32.914286-32.914286c-7.314286-3.657143-10.971429-14.628571-10.971428-25.6s3.657143-18.285714 10.971428-25.6c7.314286-7.314286 14.628571-10.971429 25.6-10.971428s18.285714 3.657143 25.6 10.971428l32.914286 32.914286 18.285714 18.285714 29.257143-10.971428c21.942857-10.971429 43.885714-21.942857 65.828571-25.6L475.428571 256V182.857143c0-21.942857 14.628571-36.571429 36.571429-36.571429m0-36.571428c-40.228571 0-73.142857 32.914286-73.142857 73.142857v47.542857c-25.6 7.314286-51.2 18.285714-76.8 32.914286l-29.257143-36.571429c-14.628571-14.628571-36.571429-21.942857-54.857143-21.942857s-36.571429 7.314286-51.2 21.942857c-29.257143 29.257143-29.257143 73.142857 0 102.4l32.914286 32.914286c-14.628571 21.942857-25.6 47.542857-32.914286 76.8H182.857143c-40.228571 0-73.142857 32.914286-73.142857 73.142857s32.914286 73.142857 73.142857 73.142857h47.542857c7.314286 25.6 18.285714 51.2 32.914286 76.8l-32.914286 32.914286c-29.257143 29.257143-29.257143 73.142857 0 102.4 14.628571 14.628571 32.914286 21.942857 51.2 21.942857 18.285714 0 36.571429-7.314286 51.2-21.942857l32.914286-32.914286c21.942857 14.628571 47.542857 25.6 76.8 32.914286V841.142857c0 40.228571 32.914286 73.142857 73.142857 73.142857s73.142857-32.914286 73.142857-73.142857v-47.542857c25.6-7.314286 51.2-18.285714 76.8-32.914286l32.914286 32.914286c14.628571 14.628571 32.914286 21.942857 51.2 21.942857 18.285714 0 36.571429-7.314286 51.2-21.942857 29.257143-29.257143 29.257143-73.142857 0-102.4L768 658.285714c14.628571-21.942857 25.6-47.542857 32.914286-76.8H841.142857c40.228571 0 73.142857-32.914286 73.142857-73.142857s-32.914286-73.142857-73.142857-73.142857h-47.542857c-7.314286-25.6-18.285714-51.2-32.914286-76.8l32.914286-32.914286c29.257143-29.257143 29.257143-73.142857 0-102.4-14.628571-14.628571-32.914286-21.942857-51.2-21.942857s-36.571429 7.314286-51.2 21.942857L658.285714 256c-21.942857-14.628571-47.542857-25.6-76.8-32.914286V182.857143c3.657143-40.228571-29.257143-73.142857-69.485714-73.142857z" fill="#0065FF" ></path></symbol><symbol id="icon-dengluxinxicuowutishi" viewBox="0 0 1024 1024"><path d="M512 512m-448 0a448 448 0 1 0 896 0 448 448 0 1 0-896 0Z" fill="#FF4B33" ></path><path d="M256 448h512v128H256z" fill="#FFFFFF" ></path></symbol><symbol id="icon-weishimingrenzheng" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#999999" ></path><path d="M448 512V320c0-38.4 25.6-64 64-64s64 25.6 64 64v192c0 38.4-25.6 64-64 64s-64-25.6-64-64z" fill="#999999" ></path><path d="M512 704m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z" fill="#999999" ></path></symbol><symbol id="icon-shoujihao" viewBox="0 0 1024 1024"><path d="M640 128c72.533333 0 128 55.466667 128 128v512c0 72.533333-55.466667 128-128 128H384c-72.533333 0-128-55.466667-128-128V256c0-72.533333 55.466667-128 128-128h256m0-42.666667H384C290.133333 85.333333 213.333333 162.133333 213.333333 256v512c0 93.866667 76.8 170.666667 170.666667 170.666667h256c93.866667 0 170.666667-76.8 170.666667-170.666667V256c0-93.866667-76.8-170.666667-170.666667-170.666667z" fill="#999999" ></path><path d="M618.666667 768h-213.333334c-12.8 0-21.333333 8.533333-21.333333 21.333333s8.533333 21.333333 21.333333 21.333334h213.333334c12.8 0 21.333333-8.533333 21.333333-21.333334s-8.533333-21.333333-21.333333-21.333333zM640 128H384c0 46.933333 38.4 85.333333 85.333333 85.333333h85.333334c46.933333 0 85.333333-38.4 85.333333-85.333333z" fill="#999999" ></path></symbol><symbol id="icon-zhanghao" viewBox="0 0 1024 1024"><path d="M512 170.666667c106.666667 0 192 85.333333 192 192S618.666667 554.666667 512 554.666667s-192-85.333333-192-192S405.333333 170.666667 512 170.666667m0-42.666667C384 128 277.333333 234.666667 277.333333 362.666667S384 597.333333 512 597.333333s234.666667-106.666667 234.666667-234.666666S640 128 512 128z" fill="#999999" ></path><path d="M512 554.666667c-196.266667 0-362.666667 149.333333-379.733333 341.333333h42.666666c21.333333-166.4 166.4-298.666667 337.066667-298.666667s315.733333 132.266667 337.066667 298.666667h42.666666c-17.066667-192-183.466667-341.333333-379.733333-341.333333z" fill="#999999" ></path></symbol><symbol id="icon-yanzhengma" viewBox="0 0 1024 1024"><path d="M768 213.333333c72.533333 0 128 55.466667 128 128v341.333334c0 72.533333-55.466667 128-128 128H256c-72.533333 0-128-55.466667-128-128V341.333333c0-72.533333 55.466667-128 128-128h512m0-42.666666H256C162.133333 170.666667 85.333333 247.466667 85.333333 341.333333v341.333334c0 93.866667 76.8 170.666667 170.666667 170.666666h512c93.866667 0 170.666667-76.8 170.666667-170.666666V341.333333c0-93.866667-76.8-170.666667-170.666667-170.666666z" fill="#999999" ></path><path d="M298.666667 469.333333c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667 42.666667-17.066667 42.666666-42.666667-17.066667-42.666667-42.666666-42.666667zM512 469.333333c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667 42.666667-17.066667 42.666667-42.666667-17.066667-42.666667-42.666667-42.666667zM725.333333 469.333333c-25.6 0-42.666667 17.066667-42.666666 42.666667s17.066667 42.666667 42.666666 42.666667 42.666667-17.066667 42.666667-42.666667-17.066667-42.666667-42.666667-42.666667z" fill="#999999" ></path></symbol><symbol id="icon-yishimingrenzheng" viewBox="0 0 1024 1024"><path d="M512 128c211.2 0 384 172.8 384 384s-172.8 384-384 384-384-172.8-384-384 172.8-384 384-384m0-64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448-198.4-448-448-448z" fill="#36B24A" ></path><path d="M780.8 377.6l-313.6 313.6c-12.8 12.8-32 12.8-44.8 0-12.8-12.8-12.8-32 0-44.8l313.6-313.6c12.8-12.8 32-12.8 44.8 0 12.8 12.8 12.8 32 0 44.8z" fill="#36B24A" ></path><path d="M288 467.2l179.2 179.2c12.8 12.8 12.8 32 0 44.8-12.8 12.8-32 12.8-44.8 0L243.2 512c-12.8-12.8-12.8-32 0-44.8 12.8-12.8 32-12.8 44.8 0z" fill="#36B24A" ></path></symbol><symbol id="icon-huanyipi" viewBox="0 0 1024 1024"><path d="M960 448V64l-128 128c-83.2-83.2-192-128-320-128-115.2 0-211.2 38.4-294.4 108.8C121.6 256 64 377.6 64 512c0 32 0 57.6 6.4 83.2C115.2 806.4 294.4 960 512 960c115.2 0 217.6-38.4 294.4-108.8l-147.2-51.2c-44.8 19.2-96 32-147.2 32-128 0-236.8-76.8-288-185.6C204.8 608 192 563.2 192 512c0-128 70.4-236.8 179.2-288C409.6 204.8 460.8 192 512 192c89.6 0 166.4 38.4 224 96L576 448h384z" fill="#999999" ></path></symbol><symbol id="icon-sousuo" viewBox="0 0 1024 1024"><path d="M492.8 108.8c-128 0-249.6 57.6-326.4 179.2-76.8 121.6-76.8 281.6 0 403.2 76.8 121.6 204.8 179.2 326.4 179.2 76.8 0 153.6-25.6 224-70.4l96 96c25.6 25.6 64 25.6 89.6 0 25.6-25.6 25.6-64 0-89.6l-96-96c108.8-147.2 96-358.4-38.4-492.8-76.8-70.4-179.2-108.8-275.2-108.8z m0 640c-70.4 0-134.4-25.6-179.2-76.8-102.4-102.4-102.4-262.4 0-364.8 51.2-51.2 115.2-76.8 179.2-76.8 70.4 0 134.4 25.6 179.2 76.8 102.4 102.4 102.4 262.4 0 364.8-44.8 51.2-115.2 76.8-179.2 76.8z" fill="#0065FF" ></path></symbol><symbol id="icon-mima" viewBox="0 0 1024 1024"><path d="M661.333333 725.333333h-298.666666c-12.8 0-21.333333-8.533333-21.333334-21.333333s8.533333-21.333333 21.333334-21.333333h298.666666c12.8 0 21.333333 8.533333 21.333334 21.333333s-8.533333 21.333333-21.333334 21.333333zM512 85.333333C392.533333 85.333333 298.666667 179.2 298.666667 298.666667v128h42.666666V298.666667c0-93.866667 76.8-170.666667 170.666667-170.666667s170.666667 76.8 170.666667 170.666667v128h42.666666V298.666667c0-119.466667-93.866667-213.333333-213.333333-213.333334z" fill="#999999" ></path><path d="M768 469.333333c25.6 0 42.666667 17.066667 42.666667 42.666667v341.333333c0 25.6-17.066667 42.666667-42.666667 42.666667H256c-25.6 0-42.666667-17.066667-42.666667-42.666667v-341.333333c0-25.6 17.066667-42.666667 42.666667-42.666667h512m0-42.666666H256c-46.933333 0-85.333333 38.4-85.333333 85.333333v341.333333c0 46.933333 38.4 85.333333 85.333333 85.333334h512c46.933333 0 85.333333-38.4 85.333333-85.333334v-341.333333c0-46.933333-38.4-85.333333-85.333333-85.333333z" fill="#999999" ></path></symbol><symbol id="icon-guanbichakanmima" viewBox="0 0 1024 1024"><path d="M512 153.6c-72.533333 0-140.8 17.066667-200.533333 51.2l29.866666 29.866667c51.2-25.6 106.666667-38.4 170.666667-38.4 179.2 0 332.8 123.733333 375.466667 298.666666-17.066667 72.533333-51.2 132.266667-102.4 183.466667l29.866666 29.866667c55.466667-59.733333 98.133333-132.266667 115.2-213.333334-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z m0 640c-179.2 0-332.8-123.733333-375.466667-298.666667 17.066667-72.533333 51.2-132.266667 102.4-183.466666l-29.866666-29.866667c-55.466667 55.466667-98.133333 132.266667-115.2 213.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333334 72.533333 0 140.8-17.066667 200.533333-51.2l-29.866666-34.133334c-51.2 25.6-110.933333 42.666667-170.666667 42.666667z" fill="#999999" ></path><path d="M512 153.6c-72.533333 0-140.8 17.066667-200.533333 51.2l29.866666 29.866667c51.2-25.6 106.666667-38.4 170.666667-38.4 179.2 0 332.8 123.733333 375.466667 298.666666-17.066667 72.533333-51.2 132.266667-102.4 183.466667l29.866666 29.866667c55.466667-59.733333 98.133333-132.266667 115.2-213.333334-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z m0 640c-179.2 0-332.8-123.733333-375.466667-298.666667 17.066667-72.533333 51.2-132.266667 102.4-183.466666l-29.866666-29.866667c-55.466667 55.466667-98.133333 132.266667-115.2 213.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333334 72.533333 0 140.8-17.066667 200.533333-51.2l-29.866666-34.133334c-51.2 25.6-110.933333 42.666667-170.666667 42.666667z" fill="#999999" ></path><path d="M512 366.933333c-12.8 0-21.333333 0-34.133333 4.266667l38.4 38.4c42.666667 4.266667 76.8 38.4 81.066666 81.066667l38.4 38.4c4.266667-8.533333 4.266667-21.333333 4.266667-34.133334 0-72.533333-55.466667-128-128-128z m-85.333333 132.266667l-38.4-38.4c-4.266667 8.533333-4.266667 21.333333-4.266667 34.133333 0 72.533333 55.466667 128 128 128 12.8 0 21.333333 0 34.133333-4.266666l-38.4-38.4c-42.666667-4.266667-76.8-38.4-81.066666-81.066667zM178.133333 190.08l30.165334-30.165333 681.813333 681.813333-30.165333 30.208z" fill="#999999" ></path></symbol><symbol id="icon-chakanmima" viewBox="0 0 1024 1024"><path d="M512 213.333333c179.2 0 332.8 123.733333 375.466667 298.666667-38.4 174.933333-196.266667 298.666667-375.466667 298.666667s-332.8-123.733333-375.466667-298.666667c42.666667-174.933333 196.266667-298.666667 375.466667-298.666667m0-42.666666c-204.8 0-379.733333 145.066667-418.133333 341.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333333s379.733333-145.066667 418.133333-341.333333c-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z" fill="#999999" ></path><path d="M512 213.333333c179.2 0 332.8 123.733333 375.466667 298.666667-38.4 174.933333-196.266667 298.666667-375.466667 298.666667s-332.8-123.733333-375.466667-298.666667c42.666667-174.933333 196.266667-298.666667 375.466667-298.666667m0-42.666666c-204.8 0-379.733333 145.066667-418.133333 341.333333 38.4 196.266667 213.333333 341.333333 418.133333 341.333333s379.733333-145.066667 418.133333-341.333333c-38.4-196.266667-213.333333-341.333333-418.133333-341.333333z" fill="#999999" ></path><path d="M512 426.666667c46.933333 0 85.333333 38.4 85.333333 85.333333s-38.4 85.333333-85.333333 85.333333-85.333333-38.4-85.333333-85.333333 38.4-85.333333 85.333333-85.333333m0-42.666667c-72.533333 0-128 55.466667-128 128s55.466667 128 128 128 128-55.466667 128-128-55.466667-128-128-128z" fill="#999999" ></path></symbol></svg>',o=(o=document.getElementsByTagName("script"))[o.length-1].getAttribute("data-injectcss"),p=function(c,l){l.parentNode.insertBefore(c,l)};if(o&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(c){console&&console.log(c)}}function n(){s||(s=!0,h())}function v(){try{a.documentElement.doScroll("left")}catch(c){return void setTimeout(v,50)}n()}l=function(){var c,l=document.createElement("div");l.innerHTML=t,t=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?p(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),l()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(h=l,a=c.document,s=!1,v(),a.onreadystatechange=function(){"complete"==a.readyState&&(a.onreadystatechange=null,n())})}(window);
\ No newline at end of file
diff --git a/public/fonts/iconfont.json b/public/fonts/iconfont.json
index efabd5d..1c1a845 100644
--- a/public/fonts/iconfont.json
+++ b/public/fonts/iconfont.json
@@ -6,6 +6,41 @@
   "description": "",
   "glyphs": [
     {
+      "icon_id": "28382606",
+      "name": "0鎾斁@1x",
+      "font_class": "a-0bofang1x",
+      "unicode": "e628",
+      "unicode_decimal": 58920
+    },
+    {
+      "icon_id": "28382607",
+      "name": "0鏆傚仠@1x",
+      "font_class": "a-0zanting1x",
+      "unicode": "e62b",
+      "unicode_decimal": 58923
+    },
+    {
+      "icon_id": "28273242",
+      "name": "绠楀姏绠$悊_鏁版嵁娴佽浆-09",
+      "font_class": "suanliguanli_shujuliuzhuan-091",
+      "unicode": "e64e",
+      "unicode_decimal": 58958
+    },
+    {
+      "icon_id": "28273243",
+      "name": "绠楀姏绠$悊_妯℃澘鍔╂墜-09",
+      "font_class": "suanliguanli_mobanzhushou-091",
+      "unicode": "e64f",
+      "unicode_decimal": 58959
+    },
+    {
+      "icon_id": "28273244",
+      "name": "绠楀姏绠$悊_绠楁硶浜嬩欢-09",
+      "font_class": "suanliguanli_suanfashijian-091",
+      "unicode": "e650",
+      "unicode_decimal": 58960
+    },
+    {
       "icon_id": "28005203",
       "name": "鎽勫儚鏈虹鐞�0_GB28181-18",
       "font_class": "shexiangjiguanli0_GB28181-18",
@@ -209,13 +244,6 @@
       "unicode_decimal": 58919
     },
     {
-      "icon_id": "27624683",
-      "name": "绠楀姏绠$悊_妯℃澘鍔╂墜-09",
-      "font_class": "suanliguanli_mobanzhushou-09",
-      "unicode": "e628",
-      "unicode_decimal": 58920
-    },
-    {
       "icon_id": "27624684",
       "name": "绠楀姏绠$悊_绛夊緟杞澶勭悊-18",
       "font_class": "suanliguanli_dengdailunxunchuli-18",
@@ -230,13 +258,6 @@
       "unicode_decimal": 58922
     },
     {
-      "icon_id": "27624686",
-      "name": "绠楀姏绠$悊_绠楁硶浜嬩欢-09",
-      "font_class": "suanliguanli_suanfashijian-09",
-      "unicode": "e62b",
-      "unicode_decimal": 58923
-    },
-    {
       "icon_id": "27624687",
       "name": "绠楀姏绠$悊_杩斿洖-18",
       "font_class": "suanliguanli_fanhui-18",
@@ -249,13 +270,6 @@
       "font_class": "suanliguanli_suanfabuquan-18",
       "unicode": "e62d",
       "unicode_decimal": 58925
-    },
-    {
-      "icon_id": "27624689",
-      "name": "绠楀姏绠$悊_鏁版嵁娴佽浆-09",
-      "font_class": "suanliguanli_shujuliuzhuan-09",
-      "unicode": "e62e",
-      "unicode_decimal": 58926
     },
     {
       "icon_id": "27624690",
diff --git a/public/fonts/iconfont.ttf b/public/fonts/iconfont.ttf
index 00608cc..ce56a73 100644
--- a/public/fonts/iconfont.ttf
+++ b/public/fonts/iconfont.ttf
Binary files differ
diff --git a/public/fonts/iconfont.woff b/public/fonts/iconfont.woff
index 7aa2f18..14c3ee6 100644
--- a/public/fonts/iconfont.woff
+++ b/public/fonts/iconfont.woff
Binary files differ
diff --git a/public/fonts/iconfont.woff2 b/public/fonts/iconfont.woff2
index 92db9fa..5d94b1e 100644
--- a/public/fonts/iconfont.woff2
+++ b/public/fonts/iconfont.woff2
Binary files differ
diff --git "a/public/images/hashrate/\346\234\252\351\205\215\347\275\256\347\256\227\346\263\225\347\251\272\351\241\265\351\235\242.png" "b/public/images/hashrate/\346\234\252\351\205\215\347\275\256\347\256\227\346\263\225\347\251\272\351\241\265\351\235\242.png"
new file mode 100644
index 0000000..490ba6c
--- /dev/null
+++ "b/public/images/hashrate/\346\234\252\351\205\215\347\275\256\347\256\227\346\263\225\347\251\272\351\241\265\351\235\242.png"
Binary files differ
diff --git "a/public/images/hashrate/\347\213\254\347\253\213\345\234\272\346\231\257\347\251\272\351\241\265\351\235\242.png" "b/public/images/hashrate/\347\213\254\347\253\213\345\234\272\346\231\257\347\251\272\351\241\265\351\235\242.png"
new file mode 100644
index 0000000..6609c50
--- /dev/null
+++ "b/public/images/hashrate/\347\213\254\347\253\213\345\234\272\346\231\257\347\251\272\351\241\265\351\235\242.png"
Binary files differ
diff --git "a/public/images/hashrate/\350\201\224\345\212\250\345\234\272\346\231\257\346\221\204\345\203\217\346\234\272\347\251\272\351\241\265\351\235\242.png" "b/public/images/hashrate/\350\201\224\345\212\250\345\234\272\346\231\257\346\221\204\345\203\217\346\234\272\347\251\272\351\241\265\351\235\242.png"
new file mode 100644
index 0000000..fbc6d18
--- /dev/null
+++ "b/public/images/hashrate/\350\201\224\345\212\250\345\234\272\346\231\257\346\221\204\345\203\217\346\234\272\347\251\272\351\241\265\351\235\242.png"
Binary files differ
diff --git "a/public/images/hashrate/\350\201\224\345\212\250\345\234\272\346\231\257\347\251\272\351\241\265\351\235\242.png" "b/public/images/hashrate/\350\201\224\345\212\250\345\234\272\346\231\257\347\251\272\351\241\265\351\235\242.png"
new file mode 100644
index 0000000..ece0b91
--- /dev/null
+++ "b/public/images/hashrate/\350\201\224\345\212\250\345\234\272\346\231\257\347\251\272\351\241\265\351\235\242.png"
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 47218a6..08aa945 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -8,7 +8,7 @@
 export default {};
 </script>
 
-<style>
+<style lang="scss" >
 @import "./assets/css/common.css";
 
 * {
@@ -56,4 +56,99 @@
   border-bottom: none;
   display: block;
 }
+
+.el-input {
+  .el-input__inner {
+    width: 100%;
+    color: #3d3d3d;
+    border-radius: 0;
+    border-color: #c0c5cc;
+    &::-webkit-input-placeholder {
+      color: #999999;
+    }
+
+    &:focus {
+      border-color: #0065ff;
+    }
+  }
+}
+
+.el-select {
+  width: 100%;
+
+  input.el-input__inner:focus {
+    border-color: #0065ff;
+  }
+
+  .el-input.is-focus input.el-input__inner {
+    border-color: #0065ff;
+  }
+
+  input {
+    border-radius: 0;
+    height: 32px;
+  }
+}
+
+.el-textarea {
+  textarea {
+    border: 1px solid #c0c5cc;
+    border-radius: 0;
+
+    &:focus {
+      border-color: #0065ff;
+    }
+  }
+}
+
+.h32 {
+  height: 32px;
+  line-height: 32px;
+
+  ::v-deep input {
+    height: 32px;
+  }
+
+  .el-icon-arrow-up {
+    line-height: 32px;
+  }
+
+  ::v-deep .el-icon-arrow-up {
+    height: 32px;
+  }
+}
+
+.scroll {
+  /*婊氬姩鏉″ 闀�,婊氬姩鏉℃暣浣撻儴鍒嗭紝鍏朵腑鐨勫睘鎬ф湁width,height,background,border绛夈��*/
+
+  &::-webkit-scrollbar {
+    width: 6px;
+  }
+
+  /*婊氬姩鏉$殑婊戣建鑳屾櫙棰滆壊,鍙互鐢╠isplay:none璁╁叾涓嶆樉绀猴紝涔熷彲浠ユ坊鍔犺儗鏅浘鐗囷紝棰滆壊鏀瑰彉鏄剧ず鏁堟灉銆�*/
+
+  &::-webkit-scrollbar-track {
+    display: none;
+  }
+
+  /* 婊戝潡棰滆壊 */
+
+  &::-webkit-scrollbar-thumb {
+    background-color: #e9ebee;
+
+    border-radius: 3px;
+  }
+
+  /*婊氬姩鏉′袱绔殑鎸夐挳銆傚彲浠ョ敤display:none璁╁叾涓嶆樉绀猴紝涔熷彲浠ユ坊鍔犺儗鏅浘鐗囷紝棰滆壊鏀瑰彉鏄剧ず鏁堟灉銆�*/
+
+  &::-webkit-scrollbar-button {
+    display: none;
+  }
+
+  /* 妯悜婊氬姩鏉″拰绾靛悜婊氬姩鏉$浉浜ゅ灏栬鐨勯鑹� */
+
+  &::-webkit-scrollbar-corner {
+    background-color: black;
+  }
+}
 </style>
diff --git a/src/Pool/PollData.ts b/src/Pool/PollData.ts
index 3ecfc8d..e30b8ad 100644
--- a/src/Pool/PollData.ts
+++ b/src/Pool/PollData.ts
@@ -176,6 +176,9 @@
       }
       this.barCharts = [this.DiskUsePercent,this.CpuUsedPercent,this.GpuUsedPercent,this.MemUsedPercent]
     }
+
+    console.log(this);
+    
   }
 
   public async statisticTaskInfo() {
diff --git a/src/Pool/VideoRuleData.ts b/src/Pool/VideoRuleData.ts
index 5824a73..59e7d8f 100644
--- a/src/Pool/VideoRuleData.ts
+++ b/src/Pool/VideoRuleData.ts
@@ -68,6 +68,7 @@
   public async update() {
     await this.getInfo();
     await this.getSceneRule();
+    
     await this.getPolygon();
   }
 
@@ -146,5 +147,7 @@
       this.dealWay = rsp.data.cameraInfo.run_type === 1 ? true : false
       this.runServerName = rsp.data.cameraInfo.runServerName
     }
+  
+    
   }
 }
diff --git a/src/views/hashrate/components/CameraLeft.vue b/src/components/CameraLeft.vue
similarity index 100%
rename from src/views/hashrate/components/CameraLeft.vue
rename to src/components/CameraLeft.vue
diff --git a/src/components/canvas/Dialog.vue b/src/components/canvas/Dialog.vue
new file mode 100644
index 0000000..2eb48d8
--- /dev/null
+++ b/src/components/canvas/Dialog.vue
@@ -0,0 +1,1485 @@
+<template>
+  <div>
+    <div class="remark">
+      <el-input
+        ref="remarksName"
+        v-model="delCursor.remarksName"
+        size="mini"
+        placeholder="鍥惧舰澶囨敞"
+        @change="changeName"
+      ></el-input>
+    </div>
+
+    <div class="body">
+      <div class="canvasArea">
+        <canvas
+          id="canvasDialog"
+          ref="canvasDialog"
+          width="1042"
+          height="586"
+          :style="`position:static;background:url(${snapshot_url}) 0% 0%/1042px 586px no-repeat;`"
+        ></canvas>
+        <p
+          style="
+            position: absolute;
+            width: 350px;
+            left: 80px;
+            top: 90px;
+            color: white;
+            font-size: 1.5rem;
+          "
+          :style="disabled ? `display:block;` : `display:none;`"
+        >
+          鎵归噺閰嶇疆鏂瑰紡涓嶅厑璁哥粯鍒跺尯鍩燂紝璇烽�夋嫨鎽勫儚鏈鸿繘琛屽尯鍩熺粯鍒�
+        </p>
+      </div>
+
+      <div class="control">
+        <el-tooltip
+          content="鍒囨崲鍒版鐘舵�佸悗鍙�変腑宸茬敾鍥惧舰"
+          placement="left"
+          popper-class="atooltip"
+        >
+          <el-button
+            class="btn"
+            @click="changeType('0')"
+            :disabled="disableSelect"
+            :class="{ selectedBtn: type == '0' }"
+          >
+            <i class="iconfont">&#xe636;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="鐩寸嚎"
+          placement="left"
+          popper-class="atooltip"
+          :class="{ selectedBtn: type == '1' }"
+        >
+          <el-button
+            class="btn"
+            @click="changeType('1')"
+            :disabled="disableLine"
+          >
+            <i class="iconfont">&#xe634;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="鐭╁舰"
+          placement="left"
+          popper-class="atooltip"
+          :class="{ selectedBtn: type == '2' }"
+        >
+          <el-button
+            class="btn"
+            @click="changeType('2')"
+            :disabled="disableRect"
+          >
+            <i class="iconfont">&#xe63a;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="绠ご"
+          placement="left"
+          popper-class="atooltip"
+          :class="{ selectedBtn: type == '4' }"
+        >
+          <el-button
+            class="btn"
+            @click="changeType('4')"
+            :disabled="disableArrow"
+          >
+            <i class="iconfont">&#xe635;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="澶氳竟褰細鍙屽嚮缁撴潫缁樺埗"
+          placement="left"
+          popper-class="atooltip"
+          :class="{ selectedBtn: type == '5' }"
+        >
+          <el-button
+            @click="changeType('5')"
+            class="btn"
+            :disabled="disablePolygon"
+          >
+            <i class="iconfont">&#xe633;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="閫変腑鍥惧舰鍐嶇紪杈戦噸缁橈紝閲嶇粯鐨勫浘褰繚鐣欎箣鍓嶇殑鍚嶇О"
+          placement="left"
+          popper-class="atooltip"
+        >
+          <el-button class="btn" @click="edit()" :disabled="disableSelect">
+            <i class="iconfont">&#xe638;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="鍏堥�変腑鍥惧舰锛屽啀鍒犻櫎"
+          placement="left"
+          popper-class="atooltip"
+        >
+          <el-button class="btn" @click="del()" :disabled="disableSelect">
+            <i class="iconfont">&#xe63b;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="娓呯┖鎵�鏈夊凡鐢诲浘褰紝姝ゆ搷浣滀笉鍙挙閿�"
+          placement="left"
+          popper-class="atooltip"
+        >
+          <el-button class="btn" @click="clear()" :disabled="disableSelect">
+            <i class="iconfont">&#xe637;</i>
+          </el-button>
+        </el-tooltip>
+        <el-tooltip
+          content="鎾ら攢涓婁竴姝ユ搷浣�"
+          placement="left"
+          popper-class="atooltip"
+        >
+          <el-button
+            class="btn"
+            @click="del()"
+            :disabled="disableSelect"
+            style="border: 0px"
+          >
+            <i class="iconfont">&#xe639;</i>
+          </el-button>
+          <!-- <span
+            class="iconfont iconfanhui1"
+            @click="undo"
+            :disabled="disableSelect"
+            style="position:absolute;left:25px;top:400px;font-size:2rem;cursor:pointer"
+          ></span>-->
+        </el-tooltip>
+      </div>
+
+      <!-- <el-button type="default" @click="undo()">鎾ら攢</el-button> -->
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  name: "canvasDialog",
+  data() {
+    return {
+      backImg: require("../../assets/img/baseimg.png"),
+      url: "", // canvas鍥剧墖鐨勪簩杩涘埗鏍煎紡杞负dataURL鏍煎紡
+      type: "0", // 缁樺浘鐘舵�� '0'涓洪�変腑鍒犻櫎锛�'1'涓虹敾绾匡紝鈥�2鈥欎负鐢荤煩褰紝鈥�4鈥欎负鐢荤澶达紝鈥�5鈥欎负鐢诲杈瑰舰
+      points: [], // 璁板綍缁樺埗澶氳竟褰㈡椂鐨勫悇鐐瑰潗鏍囷紝缁樺埗澶氳竟褰㈡椂鐢变簬涓嶆槸涓�绗斿畬鎴愶紝浠ユ暟缁勬暟鎹仛濮嬬粓闂悎鐨勫浘褰紝鍙屽嚮鍚庡綍鎴愬揩鐓э紝鎶婃暟缁勫唴瀹硅浆绉诲埌鏈�缁堟暟鎹腑锛岀劧鍚庢竻绌烘暟缁�
+      pointsUndo: [], // 鎾ら攢澶氳竟褰㈡椂淇濊瘉瀹炴椂鍙樺寲锛屼笉闇�瑕乵ove涔嬪悗鎵嶈兘鍝嶅簲杩囨潵銆傚叾鍊间负points杩炴帴浜嗙Щ鍔ㄥ潗鏍囧悗鐨勬暟缁�
+      delCursor: { type: -1, index: -1, remarksName: "", id: "" }, // 鍒犻櫎鎴栬�呬慨鏀规父鏍囷紝璁板綍浜嗙偣鍑婚�変腑鐨勫厓绱犵殑绫诲瀷鍜屾墍鍦ㄦ暟缁勭殑绱㈠紩浠ヤ究鍒犻櫎
+      editObj: {},
+      lineIndex: 0, // 鐢熸垚鍥惧舰澶囨敞鎵�鐢ㄧ殑绱㈠紩锛屼緷娆�++
+      rectIndex: 0,
+      arrowIndex: 0,
+      polygonIndex: 0,
+      disableSelect: false,
+      disableLine: false,
+      disableRect: false,
+      disableArrow: false,
+      disablePolygon: false,
+      canvasData: {
+        // 鏈�缁堜紶閫掔粰鍚庡彴鐨勬暟鎹�
+        line: [],
+        rect: [], // {id:'uuid', name: '鐭╁舰1', location: [{ x: 20, y: 30 }, { x: 20, y: 60 }, { x: 100, y: 60 }, { x: 100, y: 30 }] }
+        arrow: [],
+        polygon: [],
+      },
+      // canvasData: this.canvasDataToChild, // 鏈�缁堣緭鍑虹殑鐢诲竷鍧愭爣鏁版嵁
+      originX: null, // 褰撳墠鐐瑰嚮鐐箈
+      originY: null, // 褰撳墠鐐瑰嚮鐐箉
+      canvasPic: new Image(), // 鎾ら攢鐢ㄧ殑鍥剧墖
+      flag: false, // 鏄惁寮�鍚粯鍒�
+      canvasHistory: [], // 鍘嗗彶鏁版嵁锛屼互渚涙挙閿�浣跨敤
+      step: -1, // 璁板綍绱㈠紩锛屼互渚涙挙閿�浣跨敤
+      c: null,
+      ctx: null,
+      inputWidth: 80,
+      oldName: "", // 鐢ㄦ潵鏆傚瓨鏇存敼涔嬪墠鐨剅emarksName,鏂逛究鏀捐繘鎾ら攢闃熷垪閲�
+    };
+  },
+  mounted() {
+    this.init();
+  },
+  watch: {
+    delCursor: {
+      handler(newVal, oldVal) {
+        if (newVal.remarksName) {
+          this.inputWidth = newVal.remarksName.length * 20;
+        }
+        this.oldName = oldVal.remarksName;
+      },
+      deep: true,
+    },
+    snapshot_url: {
+      handler(newVal, oldVal) {
+        if (newVal !== oldVal) {
+          // console.log(newVal, 'canvasDialog')
+        }
+      },
+    },
+    canvasDataToChild: {
+      handler(newVal, oldVal) {
+        // console.log(newVal, '鎵撳紑缁樺埗鍚庢帴鏀跺埌鐨勬暟鎹�')
+        this.canvasHistory.length = 0;
+        this.step = -1;
+        this.canvasData = JSON.parse(JSON.stringify(this.canvasDataToChild));
+        this.clickSelect(this.canvasData);
+        this.indexInit();
+        // 鍏堝綍涓揩鐓э紝涓嶇劧涓�鐢荤嚎灏辨病浜�
+        this.step++;
+        this.canvasHistory.push({
+          type: 0,
+          src: this.c.toDataURL("image/png"),
+        });
+      },
+      deep: true,
+    },
+    // canvasDataToChild: function(newVal, oldVal) {
+    //   this.init()
+    // }
+  },
+  methods: {
+    // 鍒濆鍖栧嚱鏁�
+    init() {
+      //this.c = document.querySelector("#canvasDialog");
+      this.c = this.$refs["canvasDialog"];
+      this.ctx = this.c.getContext("2d");
+      this.drawCanvasInit();
+      this.canvasData = JSON.parse(JSON.stringify(this.canvasDataToChild));
+      this.clickSelect(this.canvasData);
+      this.indexInit();
+      // 鍏堝綍涓揩鐓э紝涓嶇劧涓�鐢荤嚎灏辨病浜�
+      this.step++;
+      this.canvasHistory.push({
+        type: 0,
+        src: this.c.toDataURL("image/png"),
+      });
+      this.delCursor = { type: -1, index: -1, remarksName: "", id: "" };
+
+      console.log("鐢诲竷鍒濆鍖�");
+    },
+    // 鍙栨秷鐢诲竷娓呴櫎鐘舵�佸嚱鏁�
+    cancel() {
+      this.changeType("0");
+      this.undisabled();
+      //this.delCursor = {}
+      this.delCursor = { type: -1, index: -1, remarksName: "", id: "" };
+      this.canvasHistory.length = 0;
+      this.step = -1;
+      this.canvasData = JSON.parse(JSON.stringify(this.canvasDataToChild));
+      this.clickSelect(this.canvasData);
+      this.indexInit();
+      // 鍏堝綍涓揩鐓э紝涓嶇劧涓�鐢荤嚎灏辨病浜�
+      this.step++;
+      this.canvasHistory.push({
+        type: 0,
+        src: this.c.toDataURL("image/png"),
+      });
+    },
+    // 涓荤洃鍚祦绋�
+    drawCanvasInit() {
+      window.addEventListener("keydown", (e) => {
+        let keyID = e.keyCode ? e.keyCode : e.which;
+        if (keyID === 82) {
+          // r閿�
+          this.undo();
+        }
+      });
+      this.c.addEventListener("mousedown", (e) => {
+        if (this.type !== "0") {
+          this.flag = true;
+          this.originX = e.offsetX; // 榧犳爣钀戒笅鏃剁殑X
+          this.originY = e.offsetY; // 榧犳爣钀戒笅鏃剁殑Y
+          if (this.type === "5") {
+            // 缁樺埗澶氳竟褰�
+            this.points.push({
+              x: this.originX,
+              y: this.originY,
+            });
+          }
+        } else {
+          this.clickSelect(e);
+        }
+      });
+      this.c.addEventListener("mousemove", (e) => {
+        switch (this.type) {
+          case "1":
+            this.drawLine(e);
+            break;
+          case "2":
+            this.drawRect(e);
+            break;
+          case "4":
+            this.drawArrow(e);
+            break;
+          case "5":
+            this.drawPolygon(e);
+            break;
+        }
+      });
+      this.c.addEventListener("mouseup", (e) => {
+        switch (this.type) {
+          case "1":
+            // 鐩寸嚎
+            this.lineMouseUp(e);
+            break;
+          case "2":
+            // 鐭╁舰
+            this.rectMouseUp(e);
+            break;
+          case "4":
+            // 绠ご
+            this.arrowMouseUp(e);
+            break;
+        }
+      });
+      this.c.addEventListener("dblclick", (e) => {
+        if (this.type === "5") {
+          // 缁樺埗澶氳竟褰�
+          this.polygonDblclick(e);
+        }
+      });
+    },
+    // 娓呴櫎鐢诲竷鍑芥暟
+    clear() {
+      // console.log("娓呴櫎");
+      this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+      // 娓呯┖淇濆瓨鐨勭姸鎬�
+      this.url = "";
+      this.canvasData.line.length = 0;
+      this.canvasData.rect.length = 0;
+      this.canvasData.arrow.length = 0;
+      this.canvasData.polygon.length = 0;
+      this.canvasHistory.length = 0;
+
+      this.indexInit();
+      this.freedEdit();
+      this.delCursor = {};
+      this.step = -1;
+    },
+    // 淇敼鍥惧舰鍚嶇О
+    changeName() {
+      if (this.delCursor.remarksName.length <= 6) {
+        switch (this.delCursor.type) {
+          case "1":
+            this.oldName = this.canvasData.line[this.delCursor.index].name;
+            this.canvasData.line[this.delCursor.index].name =
+              this.delCursor.remarksName;
+            break;
+          case "2":
+            this.oldName = this.canvasData.rect[this.delCursor.index].name;
+            this.canvasData.rect[this.delCursor.index].name =
+              this.delCursor.remarksName;
+            break;
+          case "4":
+            this.oldName = this.canvasData.arrow[this.delCursor.index].name;
+            this.canvasData.arrow[this.delCursor.index].name =
+              this.delCursor.remarksName;
+            break;
+          case "5":
+            this.oldName = this.canvasData.polygon[this.delCursor.index].name;
+            this.canvasData.polygon[this.delCursor.index].name =
+              this.delCursor.remarksName;
+            break;
+        }
+        this.clickSelect();
+        this.step++;
+        this.canvasHistory.push({
+          type: this.delCursor.type,
+          src: this.c.toDataURL("image/png"),
+          index: this.delCursor.index,
+          name: this.oldName,
+        });
+      } else {
+        this.$notify({
+          type: "warning",
+          message: "鍛藉悕闀垮害涓嶈兘瓒呰繃6涓瓧锛�",
+        });
+        switch (this.delCursor.type) {
+          case "1":
+            this.delCursor.remarksName =
+              this.canvasData.line[this.delCursor.index].name;
+            break;
+          case "2":
+            this.delCursor.remarksName =
+              this.canvasData.rect[this.delCursor.index].name;
+            break;
+          case "4":
+            this.delCursor.remarksName =
+              this.canvasData.arrow[this.delCursor.index].name;
+            break;
+          case "5":
+            this.delCursor.remarksName =
+              this.canvasData.polygon[this.delCursor.indexhhhhhhhhhhh].name;
+            break;
+        }
+      }
+    },
+    // 宸︿笂瑙掕緭鍏ユ澶卞幓鐒︾偣鍚庝繚瀛樹竴寮犲揩鐓т互浣滄挙閿�涔嬬敤
+    saveUrl() {
+      // console.log("淇濆瓨涓�寮犲揩鐓�");
+      let delEle = {};
+      this.clickSelect();
+      this.step++;
+      this.canvasHistory.push({
+        type: this.delCursor.type,
+        src: this.c.toDataURL("image/png"),
+        index: this.delCursor.index,
+        data: delEle,
+      });
+    },
+    // 鍒犻櫎鍏冪礌
+    del() {
+      let delEle = {};
+      switch (this.delCursor.type) {
+        case "1":
+          delEle = this.canvasData.line[this.delCursor.index];
+          this.canvasData.line.splice(this.delCursor.index, 1);
+          break;
+        case "2":
+          delEle = this.canvasData.rect[this.delCursor.index];
+          this.canvasData.rect.splice(this.delCursor.index, 1);
+          break;
+        case "4":
+          delEle = this.canvasData.arrow[this.delCursor.index];
+          this.canvasData.arrow.splice(this.delCursor.index, 1);
+          break;
+        case "5":
+          delEle = this.canvasData.polygon[this.delCursor.index];
+          this.canvasData.polygon.splice(this.delCursor.index, 1);
+          break;
+      }
+      this.clickSelect();
+      this.step++;
+      this.canvasHistory.push({
+        type: this.delCursor.type,
+        src: this.c.toDataURL("image/png"),
+        index: this.delCursor.index,
+        deleteLength: 0, // 鍒犻櫎鐨勮瘽deleteLength涓�0
+        data: delEle,
+      });
+      // console.log(this.canvasHistory, "鍒犻櫎涔嬪悗鐨勬挙閿�闃熷垪");
+    },
+    edit() {
+      let delEle = {};
+      switch (this.delCursor.type) {
+        case "1":
+          delEle = {
+            id: this.canvasData.line[this.delCursor.index].id,
+            name: this.canvasData.line[this.delCursor.index].name,
+            location: this.canvasData.line[this.delCursor.index].location,
+          };
+          // this.canvasData.line.splice(this.delCursor.index, 1);
+          this.canvasData.line[this.delCursor.index].location = [
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+          ];
+          break;
+        case "2":
+          delEle = {
+            id: this.canvasData.rect[this.delCursor.index].id,
+            name: this.canvasData.rect[this.delCursor.index].name,
+            location: this.canvasData.rect[this.delCursor.index].location,
+          };
+          // this.canvasData.rect.splice(this.delCursor.index, 1);
+          this.canvasData.rect[this.delCursor.index].location = [
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+          ];
+          break;
+        case "4":
+          delEle = {
+            id: this.canvasData.arrow[this.delCursor.index].id,
+            name: this.canvasData.arrow[this.delCursor.index].name,
+            location: this.canvasData.arrow[this.delCursor.index].location,
+          };
+          // this.canvasData.arrow.splice(this.delCursor.index, 1);
+          this.canvasData.arrow[this.delCursor.index].location = [
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+          ];
+          break;
+        case "5":
+          delEle = {
+            id: this.canvasData.polygon[this.delCursor.index].id,
+            name: this.canvasData.polygon[this.delCursor.index].name,
+            location: this.canvasData.polygon[this.delCursor.index].location,
+          };
+          // this.canvasData.polygon.splice(this.delCursor.index, 1);
+          this.canvasData.polygon[this.delCursor.index].location = [
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+            { x: delEle.location[0].x, y: delEle.location[0].y },
+          ];
+          break;
+      }
+      this.clickSelect();
+      this.step++;
+      this.canvasHistory.push({
+        type: this.delCursor.type,
+        src: this.c.toDataURL("image/png"),
+        index: this.delCursor.index,
+        deleteLength: 1, // 缂栬緫鐨勮瘽deleteLength涓�1
+        data: delEle,
+      });
+      this.editObj = {
+        id: this.delCursor.id,
+        type: this.delCursor.type,
+        index: this.delCursor.index,
+        remarksName: this.delCursor.remarksName,
+      };
+      this.disabledOthers(this.delCursor.type);
+      // 鍒囨崲褰撳墠鐘舵��
+      this.changeType(this.delCursor.type);
+      this.$notify({
+        type: "warning",
+        message: "宸叉摝闄ゆ棫鐨勫尯鍩燂紝璇风洿鎺ョ粯鍒跺尯鍩�",
+      });
+    },
+    // 鐐瑰嚮閫変腑鍙樿壊 灏嗗綋鍓嶉〉闈㈡墍鏈夎矾寰勯噸缁樺垽鏂綋鍓嶉紶鏍囩殑鍧愭爣鍦ㄥ摢涓浘褰㈠唴 濡傛灉涓嶄紶鍧愭爣鍙傛暟灏辨槸鍥炴樉鐨勬柟娉�
+    clickSelect(e) {
+      this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+      // console.log("褰撳墠鏁版嵁锛�",this.canvasData)
+      this.ctx.lineWidth = "2";
+      let _this = this; // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
+      _this.canvasData.line.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(v.location[0].x, v.location[0].y);
+        _this.ctx.lineTo(v.location[1].x, v.location[1].y);
+        _this.ctx.stroke();
+        _this.showRemarks(v.location[0].x, v.location[0].y, v.name, false);
+        _this.c.style.cursor = "pointer";
+        if (e && _this.minDistance(e.offsetX, e.offsetY, v.location, 10)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+          // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "1";
+          _this.delCursor.index = i;
+          _this.delCursor.remarksName = v.name;
+          _this.delCursor.id = v.id;
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(v.location[0].x, v.location[0].y);
+          _this.ctx.lineTo(v.location[1].x, v.location[1].y);
+          _this.ctx.stroke();
+          _this.showRemarks(v.location[0].x, v.location[0].y, v.name, true);
+          _this.c.style.cursor = "pointer";
+        }
+      });
+      _this.canvasData.rect.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(v.location[0].x, v.location[0].y);
+        _this.ctx.lineTo(v.location[1].x, v.location[1].y);
+        _this.ctx.lineTo(v.location[2].x, v.location[2].y);
+        _this.ctx.lineTo(v.location[3].x, v.location[3].y);
+        _this.ctx.lineTo(v.location[0].x, v.location[0].y);
+        _this.ctx.stroke();
+        _this.showRemarks(v.location[0].x, v.location[0].y, v.name, false);
+        _this.c.style.cursor = "pointer";
+        if (e && _this.minDistance(e.offsetX, e.offsetY, v.location, 10)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "2";
+          _this.delCursor.index = i;
+          _this.delCursor.remarksName = v.name;
+          _this.delCursor.id = v.id;
+          // console.log("褰撳墠閫変腑鍏冪礌锛�",_this.delCursor)
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(v.location[0].x, v.location[0].y);
+          _this.ctx.lineTo(v.location[1].x, v.location[1].y);
+          _this.ctx.lineTo(v.location[2].x, v.location[2].y);
+          _this.ctx.lineTo(v.location[3].x, v.location[3].y);
+          _this.ctx.lineTo(v.location[0].x, v.location[0].y);
+          _this.ctx.stroke();
+          _this.showRemarks(v.location[0].x, v.location[0].y, v.name, true);
+          _this.selectedId = v.id;
+          _this.c.style.cursor = "pointer";
+        }
+      });
+      _this.canvasData.arrow.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        // _this.ctx.beginPath()
+        // _this.ctx.moveTo(v.location[0].x, v.location[0].y)
+        // _this.ctx.lineTo(v.location[1].x, v.location[1].y)
+        // _this.ctx.stroke()
+        _this.drawArrowUtil(
+          _this.ctx,
+          v.location[0].x,
+          v.location[0].y,
+          v.location[1].x,
+          v.location[1].y,
+          20,
+          _this.twoPointDistance(
+            { x: v.location[0].x, y: v.location[0].y },
+            { x: v.location[1].x, y: v.location[1].y }
+          ) * 0.1,
+          2,
+          "yellow"
+        ); // 缁樺埗鏂规硶
+        _this.showRemarks(v.location[0].x, v.location[0].y, v.name, false);
+        //_this.c.style.cursor = "pointer";
+        if (e && _this.minDistance(e.offsetX, e.offsetY, v.location, 10)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�  && _this.ctx.isPointInPath(e.offsetX, e.offsetY)
+          // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "4";
+          _this.delCursor.index = i;
+          _this.delCursor.remarksName = v.name;
+          _this.delCursor.id = v.id;
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          //   _this.ctx.beginPath()
+          //   _this.ctx.moveTo(v.location[0].x, v.location[0].y)
+          //   _this.ctx.lineTo(v.location[1].x, v.location[1].y)
+          //   _this.ctx.stroke()
+          _this.drawArrowUtil(
+            _this.ctx,
+            v.location[0].x,
+            v.location[0].y,
+            v.location[1].x,
+            v.location[1].y,
+            20,
+            _this.twoPointDistance(
+              { x: v.location[0].x, y: v.location[0].y },
+              { x: v.location[1].x, y: v.location[1].y }
+            ) * 0.1,
+            2,
+            "red"
+          ); // 缁樺埗鏂规硶
+          _this.showRemarks(v.location[0].x, v.location[0].y, v.name, true);
+          _this.c.style.cursor = "pointer";
+        }
+      });
+      _this.canvasData.polygon.forEach(function (v, i) {
+        if (v.location.length !== 0) {
+          _this.ctx.strokeStyle = "yellow";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(v.location[0].x, v.location[0].y);
+          for (let i = 1; i < v.location.length; i++) {
+            _this.ctx.lineTo(v.location[i].x, v.location[i].y);
+          }
+          _this.ctx.closePath();
+          _this.ctx.stroke();
+          _this.showRemarks(v.location[0].x, v.location[0].y, v.name, false);
+          _this.c.style.cursor = "pointer";
+          if (e && _this.minDistance(e.offsetX, e.offsetY, v.location, 10)) {
+            // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+            // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
+            // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+            _this.type = "0";
+            _this.delCursor.type = "5";
+            _this.delCursor.index = i;
+            _this.delCursor.remarksName = v.name;
+            _this.delCursor.id = v.id;
+            // 灏嗗綋鍓嶅厓绱犳爣绾�
+            _this.ctx.strokeStyle = "red";
+            _this.ctx.beginPath();
+            _this.ctx.moveTo(v.location[0].x, v.location[0].y);
+            for (let i = 1; i < v.location.length; i++) {
+              _this.ctx.lineTo(v.location[i].x, v.location[i].y);
+            }
+            _this.ctx.closePath();
+            _this.ctx.stroke();
+            _this.showRemarks(v.location[0].x, v.location[0].y, v.name, true);
+            _this.c.style.cursor = "pointer";
+          }
+        }
+      });
+      // console.log("鍒氶�変腑鐨勫浘褰細",_this.delCursor)
+    },
+    // 鎾ら攢
+    undo() {
+      if (this.type === "5" && this.flag) {
+        // 姝e湪鐢诲杈瑰舰锛屾殏瀛樻暟缁勯噷鏈夊潗鏍囨暟鎹紝鍙竴姝ヤ竴姝ユ挙閿�
+        if (this.points.length > 0) {
+          if (this.points.length === 1) {
+            this.type = "0"; // 涓嶅垏鎹㈡垚鈥�0鈥欐妸澶氳竟褰㈡挙閿�涔嬪悗鏃犳硶缁х画鎾ら攢鍏朵粬鍥惧舰
+            this.flag = false;
+            this.originX = null;
+            this.originY = null;
+          }
+          this.points.pop();
+          this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+          this.loadImage();
+          this.pointsUndo.splice(this.pointsUndo.length - 2, 1);
+          this.drawPolygonUtil(this.pointsUndo);
+        }
+      } else {
+        // 澶氳竟褰㈠凡缁忓畬鎴愭垨鑰呮槸鍦ㄧ敾鍒殑鍥惧舰
+        if (this.step >= 0) {
+          if (this.canvasHistory[this.step].data !== undefined) {
+            // 缂栬緫鍒犻櫎姝ラ鐨勬挙閿�   涔嬪墠鍒犻櫎鐨勬暟鎹師璺鍥炲幓
+            switch (this.canvasHistory[this.step].type) {
+              case "1":
+                this.canvasData.line.splice(
+                  this.canvasHistory[this.step].index,
+                  this.canvasHistory[this.step].deleteLength,
+                  this.canvasHistory[this.step].data
+                );
+                break;
+              case "2":
+                this.canvasData.rect.splice(
+                  this.canvasHistory[this.step].index,
+                  this.canvasHistory[this.step].deleteLength,
+                  this.canvasHistory[this.step].data
+                );
+                break;
+              case "4":
+                this.canvasData.arrow.splice(
+                  this.canvasHistory[this.step].index,
+                  this.canvasHistory[this.step].deleteLength,
+                  this.canvasHistory[this.step].data
+                );
+                break;
+              case "5":
+                this.canvasData.polygon.splice(
+                  this.canvasHistory[this.step].index,
+                  this.canvasHistory[this.step].deleteLength,
+                  this.canvasHistory[this.step].data
+                );
+                break;
+            }
+            this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+            let canvasPic = new Image();
+            canvasPic.src = this.canvasHistory[this.step - 1].src;
+            let ctx = this.ctx;
+            canvasPic.addEventListener("load", function () {
+              ctx.drawImage(canvasPic, 0, 0);
+            });
+            this.step--;
+          } else if (this.canvasHistory[this.step].name !== undefined) {
+            // 淇敼鍥惧舰澶囨敞鐨勬挙閿�
+            switch (this.canvasHistory[this.step].type) {
+              case "1":
+                this.canvasData.line[this.canvasHistory[this.step].index].name =
+                  this.canvasHistory[this.step].name;
+                break;
+              case "2":
+                this.canvasData.rect[this.canvasHistory[this.step].index].name =
+                  this.canvasHistory[this.step].name;
+                break;
+              case "4":
+                this.canvasData.arrow[
+                  this.canvasHistory[this.step].index
+                ].name = this.canvasHistory[this.step].name;
+                break;
+              case "5":
+                this.canvasData.polygon[
+                  this.canvasHistory[this.step].index
+                ].name = this.canvasHistory[this.step].name;
+                break;
+            }
+            this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+            let canvasPic = new Image();
+            canvasPic.src = this.canvasHistory[this.step - 1].src;
+            let ctx = this.ctx;
+            canvasPic.addEventListener("load", function () {
+              ctx.drawImage(canvasPic, 0, 0);
+            });
+            this.step--;
+          } else {
+            // 姝e父鐨勬挙閿�
+            this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+            let canvasPic = new Image();
+            if (this.step > 0) {
+              canvasPic.src = this.canvasHistory[this.step - 1].src;
+            }
+            // 涓嶇煡涓轰綍鐩存帴浼犺繘鍘籺his.ctx浼氭槸undefind锛屾墍浠ュ湪澶栭潰杞瓨涓�涓�
+            let ctx = this.ctx;
+            canvasPic.addEventListener("load", function () {
+              ctx.drawImage(canvasPic, 0, 0);
+            });
+            // 鎾ら攢鏈�缁堟暟鎹�
+            switch (this.canvasHistory[this.step].type) {
+              case "1":
+                this.canvasData.line.pop();
+                break;
+              case 2:
+                this.canvasData.rect.pop();
+                break;
+              case 4:
+                this.canvasData.arrow.pop();
+                break;
+              case 5:
+                this.canvasData.polygon.pop();
+                this.points.length = 0;
+                break;
+              case 0:
+                // 灏嗗洖鏄炬暟鎹竻绌猴紝鐩稿綋浜庢竻绌洪〉闈�
+                // console.log("鎾ら攢鍘熷鏁版嵁");
+                this.clear();
+                break;
+            }
+            this.step--;
+          }
+        } else {
+          this.$notify({
+            type: "warning",
+            message: "涓嶈兘鍐嶇户缁挙閿�浜�",
+          });
+        }
+      }
+      // console.log("鎾ら攢锛�",this.canvasData);
+    },
+    disabledOthers(type) {
+      console.log("褰撳墠type:", type);
+      switch (type) {
+        case "1":
+          this.disableLine = false;
+          this.disableRect = true;
+          this.disableArrow = true;
+          this.disablePolygon = true;
+          this.disableSelect = true;
+          break;
+        case "2":
+          this.disableLine = true;
+          this.disableRect = false;
+          this.disableArrow = true;
+          this.disablePolygon = true;
+          this.disableSelect = true;
+          break;
+        case "4":
+          this.disableLine = true;
+          this.disableRect = true;
+          this.disableArrow = false;
+          this.disablePolygon = true;
+          this.disableSelect = true;
+          break;
+        case "5":
+          this.disableLine = true;
+          this.disableRect = true;
+          this.disableArrow = true;
+          this.disablePolygon = false;
+          this.disableSelect = true;
+          break;
+      }
+      console.log("绂佺敤鐩寸嚎锛�", this.disableLine);
+      console.log("绂佺敤鐭╁舰锛�", this.disableRect);
+      console.log("绂佺敤绠ご锛�", this.disableArrow);
+      console.log("绂佺敤澶氳竟褰細", this.disablePolygon);
+    },
+    undisabled() {
+      this.disableLine = false;
+      this.disableRect = false;
+      this.disableArrow = false;
+      this.disablePolygon = false;
+      this.disableSelect = false;
+    },
+    // 鍒锋柊搴曞浘
+    refresh() {
+      this.$emit("refresh");
+      // this.$notify({
+      //   type: 'success',
+      //   message: '搴曞浘宸插埛鏂�'
+      // })
+    },
+    // 绠ご缁樺埗鍑芥暟
+    drawArrowUtil(ctx, fromX, fromY, toX, toY, theta, headlen, width, color) {
+      // ctx锛欳anvas缁樺浘鐜
+      // fromX, fromY锛氳捣鐐瑰潗鏍囷紙涔熷彲浠ユ崲鎴恜1锛屽彧涓嶈繃瀹冩槸涓�涓暟缁勶級
+      // toX, toY锛氱粓鐐瑰潗鏍� (涔熷彲浠ユ崲鎴恜2锛屽彧涓嶈繃瀹冩槸涓�涓暟缁�)
+      // theta锛氫笁瑙掓枩杈逛竴鐩寸嚎澶硅
+      // headlen锛氫笁瑙掓枩杈归暱搴�
+      // width锛氱澶寸嚎瀹藉害
+      // color锛氱澶撮鑹�
+
+      theta = typeof theta !== "undefined" ? theta : 30;
+      headlen = typeof theta !== "undefined" ? headlen : 10;
+      width = typeof width !== "undefined" ? width : 1;
+      // color = typeof color !== 'undefined' ? color : 'yellow'
+      // 璁$畻鍚勮搴﹀拰瀵瑰簲鐨凱2,P3鍧愭爣
+
+      let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI;
+      let angle1 = ((angle + theta) * Math.PI) / 180;
+      let angle2 = ((angle - theta) * Math.PI) / 180;
+      let topX = headlen * Math.cos(angle1);
+      let topY = headlen * Math.sin(angle1);
+      let botX = headlen * Math.cos(angle2);
+      let botY = headlen * Math.sin(angle2);
+
+      ctx.save();
+      ctx.beginPath();
+      let arrowX = fromX - topX;
+      let arrowY = fromY - topY;
+      ctx.moveTo(arrowX, arrowY);
+      ctx.moveTo(fromX, fromY);
+      ctx.lineTo(toX, toY);
+      arrowX = toX + topX;
+      arrowY = toY + topY;
+      ctx.moveTo(arrowX, arrowY);
+      ctx.lineTo(toX, toY);
+      arrowX = toX + botX;
+      arrowY = toY + botY;
+      ctx.lineTo(arrowX, arrowY);
+      ctx.strokeStyle = color;
+      ctx.lineWidth = width;
+      ctx.stroke();
+      ctx.restore();
+    },
+    // 鑾峰彇鐩稿鍧愭爣(鏆備笉鐢�)
+    getLocation(x, y, c) {
+      let bbox = c.getBoundingClientRect();
+      return {
+        x: (x - bbox.left) * (c.width / bbox.width),
+        y: (y - bbox.top) * (c.height / bbox.height),
+        /*
+          * 姝ゅ涓嶇敤涓嬮潰涓よ鏄负浜嗛槻姝娇鐢–SS鍜孞S鏀瑰彉浜哻anvas鐨勯珮瀹戒箣鍚庢槸琛ㄩ潰绉媺澶ц�屽疄闄�
+          * 鏄剧ず鍍忕礌涓嶅彉鑰岄�犳垚鐨勫潗鏍囪幏鍙栦笉鍑嗙殑鎯呭喌
+          x: (x - bbox.left),
+          y: (y - bbox.top)
+        */
+      };
+    },
+    // 鐢熸垚鍥惧舰澶囨敞
+    remarks(x, y, type) {
+      this.ctx.moveTo(x, y - 20);
+      this.ctx.fillStyle = "green"; // 璁剧疆濉厖棰滆壊涓虹豢鑹�
+      this.ctx.font = '20px "寰蒋闆呴粦"'; // 璁剧疆瀛椾綋
+      this.ctx.textBaseline = "bottom"; // 璁剧疆瀛椾綋搴曠嚎瀵归綈缁樺埗鍩虹嚎
+      this.ctx.textAlign = "left"; // 璁剧疆瀛椾綋瀵归綈鐨勬柟寮�
+      let name = "";
+      switch (type) {
+        case "1":
+          this.lineIndex++;
+          name = "鐩寸嚎" + this.lineIndex;
+          break;
+        case "2":
+          this.rectIndex++;
+          name = "鐭╁舰" + this.rectIndex;
+          break;
+        case "4":
+          this.arrowIndex++;
+          name = "绠ご" + this.arrowIndex;
+          break;
+        case "5":
+          this.polygonIndex++;
+          name = "澶氳竟褰�" + this.polygonIndex;
+          break;
+      }
+      this.ctx.fillText(name, x, y - 20); // 濉厖鏂囧瓧
+      return name;
+    },
+    // 鍥炴樉鍥惧舰澶囨敞
+    showRemarks(x, y, remarks, isHightlight) {
+      this.ctx.moveTo(x, y - 20);
+      if (isHightlight) {
+        this.ctx.fillStyle = "#8ae22e"; // 璁剧疆濉厖棰滆壊涓虹豢鑹�
+      } else {
+        this.ctx.fillStyle = "green"; // 璁剧疆濉厖棰滆壊涓虹豢鑹�
+      }
+      this.ctx.font = '20px "寰蒋闆呴粦"'; // 璁剧疆瀛椾綋
+      this.ctx.textBaseline = "bottom"; // 璁剧疆瀛椾綋搴曠嚎瀵归綈缁樺埗鍩虹嚎
+      this.ctx.textAlign = "left"; // 璁剧疆瀛椾綋瀵归綈鐨勬柟寮�
+      this.ctx.fillText(remarks, x, y - 20); // 濉厖鏂囧瓧
+    },
+    // 閲嶇幇淇濆瓨鐢婚潰
+    loadImage() {
+      if (this.step > -1) {
+        let img = new Image();
+        img.src = this.canvasHistory[this.step].src;
+        this.ctx.drawImage(img, 0, 0, this.c.width, this.c.height);
+      }
+    },
+    // 鍒囨崲鐢荤嚎绫诲瀷
+    changeType(num) {
+      if (num === "0") {
+        this.c.style.cursor = "pointer";
+      } else {
+        this.c.style.cursor = "crosshair";
+      }
+      this.type = num;
+    },
+    // 缁樺埗澶氳竟褰㈡柟娉�
+    drawPolygonUtil(points) {
+      this.ctx.strokeStyle = "yellow";
+      this.ctx.lineWidth = 2;
+      this.ctx.beginPath();
+      this.ctx.moveTo(points[0].x, points[0].y);
+      for (let i = 1; i < points.length; i++) {
+        this.ctx.lineTo(points[i].x, points[i].y);
+      }
+      this.ctx.closePath();
+      this.ctx.stroke();
+    },
+    // 鐢荤洿绾跨Щ鍔ㄥ嚱鏁�
+    drawLine(e) {
+      if (this.flag) {
+        this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+        this.loadImage();
+        this.ctx.beginPath();
+        this.ctx.strokeStyle = "yellow";
+        this.c.style.cursor = "default";
+        this.ctx.lineWidth = 2;
+        this.ctx.moveTo(this.originX, this.originY);
+        this.ctx.lineTo(e.offsetX, e.offsetY);
+        this.ctx.stroke(); // 缁樺埗
+      }
+    },
+    // 鐢荤煩褰㈢Щ鍔ㄥ嚱鏁�
+    drawRect(e) {
+      if (this.flag) {
+        this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+        this.loadImage();
+        this.ctx.beginPath();
+        this.ctx.strokeStyle = "yellow";
+        this.ctx.lineWidth = 2;
+        this.ctx.strokeRect(
+          this.originX,
+          this.originY,
+          e.offsetX - this.originX,
+          e.offsetY - this.originY
+        ); // 缁樺埗鏂规硶
+      }
+    },
+    // 鐢荤澶寸Щ鍔ㄥ嚱鏁�
+    drawArrow(e) {
+      if (this.flag) {
+        this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+        this.loadImage();
+        this.ctx.lineWidth = 2;
+        this.drawArrowUtil(
+          this.ctx,
+          this.originX,
+          this.originY,
+          e.offsetX,
+          e.offsetY,
+          20,
+          this.twoPointDistance(
+            { x: this.originX, y: this.originY },
+            { x: e.offsetX, y: e.offsetY }
+          ) * 0.1,
+          2,
+          "yellow"
+        ); // 缁樺埗鏂规硶
+      }
+    },
+    twoPointDistance(p1, p2) {
+      let dep = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
+      return dep;
+    },
+    // 鐢诲杈瑰舰绉诲姩鍑芥暟
+    drawPolygon(e) {
+      if (this.flag) {
+        this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+        this.loadImage();
+        this.pointsUndo = this.points.concat({
+          x: e.offsetX,
+          y: e.offsetY,
+        });
+        this.drawPolygonUtil(
+          this.points.concat({
+            // concat杩斿洖杩炴帴鍚庣殑鏁扮粍锛屽師鏁扮粍涓嶅彉锛岀浉褰撲簬鎶婄Щ鍔ㄧ殑鍧愭爣浣滀负涓�涓櫄鍋囩殑鍧愭爣杩藉姞鍦ㄥ悗闈�,缁濓紒
+            x: e.offsetX,
+            y: e.offsetY,
+          })
+        );
+      }
+    },
+    // 鐢荤洿绾挎姮璧�
+    lineMouseUp(e) {
+      if (
+        Math.abs(this.originX - e.offsetX) < 5 &&
+        Math.abs(this.originY - e.offsetY) < 5
+      ) {
+        this.flag = false;
+        return;
+      }
+      this.flag = false;
+      let Id;
+      let fileName;
+      let coordinate = [];
+      coordinate.push({
+        x: this.originX,
+        y: this.originY,
+      });
+      coordinate.push({
+        x: e.offsetX,
+        y: e.offsetY,
+      });
+      // console.log("line鐨別ditObj:",this.editObj)
+      if (this.editObj.id == undefined) {
+        Id = this.getUuid();
+        fileName = this.remarks(this.originX, this.originY, "1");
+        this.canvasData.line.push({
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      } else {
+        Id = this.editObj.id;
+        fileName = this.editObj.remarksName;
+        this.canvasData.line.splice(this.delCursor.index, 1, {
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      }
+      this.clickSelect();
+      this.undisabled();
+      this.c.style.cursor = "crosshair";
+      // 灏嗗綋鍓嶅垰鐢诲畬鐨勫浘褰㈠姞鍏ュ垹鏀规父鏍囷紝鍙互灏嗗垰鐢诲畬鐨勫浘褰㈠悕绉版樉绀哄湪宸︿笂瑙�
+      this.delCursor = {
+        id: this.getUuid(),
+        remarksName: fileName,
+        type: "1",
+        index: this.lineIndex - 1,
+      };
+      this.url = this.c.toDataURL(); // 姣忔 mouseup 閮戒繚瀛樹竴娆$敾甯冪姸鎬�
+      this.step++;
+      this.canvasHistory.length = this.step; // 鎴柇鏁扮粍
+      this.canvasHistory.push({ type: 1, src: this.c.toDataURL("image/png") }); // 灏嗗揩鐓т繚瀛樺埌鍘嗗彶璁板綍涓互渚涙挙閿�涔嬬敤
+      // this.changeType('0')
+      this.freedEdit();
+    },
+    // 鐢荤煩褰㈡姮璧�
+    rectMouseUp(e) {
+      if (
+        Math.abs(this.originX - e.offsetX) < 5 &&
+        Math.abs(this.originY - e.offsetY) < 5
+      ) {
+        this.flag = false;
+        return;
+      }
+      this.flag = false;
+      let coordinate = [];
+      // 閫嗘椂閽堢畻鍑虹煩褰㈠洓瑙掑潗鏍�
+      coordinate.push({
+        x: this.originX,
+        y: this.originY,
+      });
+      coordinate.push({
+        x: this.originX,
+        y: e.offsetY,
+      });
+      coordinate.push({
+        x: e.offsetX,
+        y: e.offsetY,
+      });
+      coordinate.push({
+        x: e.offsetX,
+        y: this.originY,
+      });
+      let Id;
+      let fileName;
+      // console.log("rect鐨別ditObj:",this.editObj)
+      if (this.editObj.id == undefined) {
+        Id = this.getUuid();
+        fileName = this.remarks(this.originX, this.originY, "2");
+        this.canvasData.rect.push({
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      } else {
+        Id = this.editObj.id;
+        fileName = this.editObj.remarksName;
+
+        this.canvasData.rect.splice(this.delCursor.index, 1, {
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      }
+      this.clickSelect();
+      this.undisabled();
+      this.c.style.cursor = "crosshair";
+      this.delCursor = {
+        id: Id,
+        remarksName: fileName,
+        type: "2",
+        index: this.rectIndex - 1,
+      };
+      // console.log("鍒氱敾瀹岀殑鐭╁舰鏍囧織锛�",this.delCursor)
+      this.url = this.c.toDataURL(); // 姣忔 mouseup 閮戒繚瀛樹竴娆$敾甯冪姸鎬�
+      this.step++;
+      this.canvasHistory.length = this.step; // 鎴柇鏁扮粍
+      this.canvasHistory.push({ type: 2, src: this.c.toDataURL("image/png") }); // 灏嗗揩鐓т繚瀛樺埌鍘嗗彶璁板綍涓互渚涙挙閿�涔嬬敤
+
+      this.freedEdit();
+    },
+    // 鐢荤澶存椂鎶捣
+    arrowMouseUp(e) {
+      if (
+        Math.abs(this.originX - e.offsetX) < 5 &&
+        Math.abs(this.originY - e.offsetY) < 5
+      ) {
+        this.flag = false;
+        return;
+      }
+      this.flag = false;
+      let Id;
+      let fileName;
+      let coordinate = [];
+      coordinate.push({
+        x: this.originX,
+        y: this.originY,
+      });
+      coordinate.push({
+        x: e.offsetX,
+        y: e.offsetY,
+      });
+      // console.log("arrow鐨別ditObj:",this.editObj)
+      if (this.editObj.id == undefined) {
+        Id = this.getUuid();
+        fileName = this.remarks(this.originX, this.originY, "4");
+        this.canvasData.arrow.push({
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      } else {
+        Id = this.editObj.id;
+        fileName = this.editObj.remarksName;
+        this.canvasData.arrow.splice(this.delCursor.index, 1, {
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      }
+      this.clickSelect();
+      this.undisabled();
+      this.c.style.cursor = "crosshair";
+      // 灏嗗綋鍓嶅垰鐢诲畬鐨勫浘褰㈠姞鍏ュ垹鏀规父鏍囷紝鍙互灏嗗垰鐢诲畬鐨勫浘褰㈠悕绉版樉绀哄湪宸︿笂瑙�
+      this.delCursor = {
+        id: this.getUuid(),
+        remarksName: fileName,
+        type: "4",
+        index: this.arrowIndex - 1,
+      };
+      this.url = this.c.toDataURL(); // 姣忔 mouseup 閮戒繚瀛樹竴娆$敾甯冪姸鎬�
+      this.step++;
+      this.canvasHistory.length = this.step; // 鎴柇鏁扮粍
+      this.canvasHistory.push({ type: 4, src: this.c.toDataURL("image/png") }); // 灏嗗揩鐓т繚瀛樺埌鍘嗗彶璁板綍涓互渚涙挙閿�涔嬬敤
+      // this.changeType('0')
+      this.freedEdit();
+    },
+    // 鐢诲杈瑰舰缁撴潫鏃跺弻鍑�
+    polygonDblclick(e) {
+      this.flag = false;
+      this.points.pop(); // 鍙屽嚮涔嬪悗澶氫竴涓偣鐨勯噸澶嶅潗鏍囷紝闇�瑕佸垹闄�
+      let Id;
+      let fileName;
+      let coordinate = [];
+      this.points.map((item, index) => {
+        coordinate.push(item);
+      });
+      // console.log("polygon鐨別ditObj:",this.editObj)
+      if (this.editObj.id == undefined) {
+        Id = this.getUuid();
+        fileName = this.remarks(this.points[0].x, this.points[0].y, "5");
+        this.canvasData.polygon.push({
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      } else {
+        Id = this.editObj.id;
+        fileName = this.editObj.remarksName;
+        this.canvasData.polygon.splice(this.delCursor.index, 1, {
+          id: Id,
+          name: fileName,
+          location: coordinate,
+        });
+      }
+      this.clickSelect();
+      this.undisabled();
+      this.c.style.cursor = "crosshair";
+      this.points.length = 0;
+      // 灏嗗綋鍓嶅垰鐢诲畬鐨勫浘褰㈠姞鍏ュ垹鏀规父鏍囷紝鍙互灏嗗垰鐢诲畬鐨勫浘褰㈠悕绉版樉绀哄湪宸︿笂瑙�
+      this.delCursor = {
+        id: this.getUuid(),
+        remarksName: fileName,
+        type: "5",
+        index: this.polygonIndex - 1,
+      };
+      this.url = this.c.toDataURL();
+      this.step++;
+      this.canvasHistory.length = this.step; // 鎴柇鏁扮粍
+      this.canvasHistory.push({ type: 5, src: this.c.toDataURL("image/png") }); // 灏嗗揩鐓т繚瀛樺埌鍘嗗彶璁板綍涓互渚涙挙閿�涔嬬敤
+      // this.changeType('0')
+      // console.log("鎬绘暟鎹細",this.canvasData)
+      this.freedEdit();
+    },
+    // 閲婃斁缂栬緫鐘舵��
+    freedEdit() {
+      this.editObj = {};
+    },
+    // 鍥炴樉鍘嗗彶鏁版嵁鏃惰绠椾竴涓嬪洖鏄剧殑姣忕鍏冪礌鐨勬暟閲忎互渚跨敓鎴愬浘褰㈡敞瑙f椂鑾峰緱姝g‘鐨勫紑澶�
+    indexInit() {
+      this.lineIndex = this.canvasData.line.length;
+      this.rectIndex = this.canvasData.rect.length;
+      this.arrowIndex = this.canvasData.arrow.length;
+      //鎺掗櫎this.canvasData.polygon鍏ㄩ儴鍖哄煙(鍏ㄩ儴鍖哄煙鐨刬d灏辨槸鎽勫儚鏈虹殑id)
+
+      let filterPolygonArr = this.canvasData.polygon.filter(
+        (item) => item.id != this.TreeDataPool.selectedNode.id
+      );
+      this.polygonIndex = filterPolygonArr.length;
+    },
+    // 鐢熸垚uuid
+    getUuid() {
+      let originStr = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
+      let originChar = "0123456789abcdef";
+      let len = originChar.length;
+      return originStr.replace(/x/g, function (match) {
+        return originChar.charAt(Math.floor(Math.random() * len));
+      });
+    },
+    // 鍒ゆ柇涓�涓偣鏄惁绂讳竴涓浘褰㈢殑鏈�灏忚窛绂讳负n鍍忕礌浠ュ唴
+    minDistance(x, y, locations, n) {
+      let flag = false;
+      for (let i = 0; i < locations.length; i++) {
+        if (i == locations.length - 1) {
+          if (
+            this.point2Line(
+              x,
+              y,
+              locations[i].x,
+              locations[i].y,
+              locations[0].x,
+              locations[0].y
+            ) < n
+          ) {
+            flag = true;
+          }
+        } else {
+          if (
+            this.point2Line(
+              x,
+              y,
+              locations[i].x,
+              locations[i].y,
+              locations[i + 1].x,
+              locations[i + 1].y
+            ) < n
+          ) {
+            flag = true;
+          }
+        }
+      }
+      return flag;
+    },
+    point2Line(x, y, x1, y1, x2, y2) {
+      let cross = (x2 - x1) * (x - x1) + (y2 - y1) * (y - y1); // |AB| * |AC|*cos(x)
+      if (cross <= 0)
+        return Math.sqrt((x - x1) * (x - x1) + (y - y1) * (y - y1) + 0.0);
+      let d2 = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); // |AB|
+      if (cross >= d2)
+        return Math.sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2) + 0.0);
+
+      let r = cross / d2;
+      let px = x1 + (x2 - x1) * r; // C鍦� AB涓婄殑鍨傝冻鐐癸紙px锛宲y锛�
+      let py = y1 + (y2 - y1) * r;
+      return Math.sqrt((x - px) * (x - px) + (y - py) * (y - py) + 0.0); //涓ょ偣闂磋窛绂诲叕寮�
+    },
+  },
+  props: {
+    isGB28181: {
+      default: false,
+      type: Boolean,
+    },
+    // isShowDrawArrow: {
+    //   default: false,
+    //   type: Boolean
+    // },
+    disabled: {
+      default: false,
+      type: Boolean,
+    },
+    canvasDataToChild: {
+      default: () => {
+        return {
+          line: [],
+          rect: [],
+          arrow: [],
+          polygon: [],
+        };
+      },
+      type: Object,
+    },
+    snapshot_url: {
+      type: String,
+      default: "",
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.header {
+  margin-top: 56px;
+  border-bottom: 1px solid #e9ebee;
+}
+
+.remark {
+  .el-input ::v-deep {
+    margin-left: 950px;
+    width: 160px;
+    height: 32px;
+    .el-input__inner {
+      padding: 0 10px;
+      color: #3d3d3d;
+      border-radius: 0;
+      border-color: #c0c5cc;
+      &::-webkit-input-placeholder {
+        color: #999999;
+      }
+
+      &:focus {
+        border-color: #0065ff;
+      }
+    }
+  }
+}
+
+.body {
+  display: flex;
+  justify-content: space-between;
+  margin-top: 20px;
+  border-bottom: 1px solid #e9ebee;
+
+  .btn {
+    text-align: center;
+    margin-left: 20px;
+    margin-bottom: 20px;
+    padding: 0;
+    width: 48px;
+    height: 48px;
+    border: 1px solid #c0c5cc;
+    border-radius: 0;
+
+    .iconfont {
+      font-size: 32px;
+    }
+
+    &:hover {
+      background: rgba($color: #0065ff, $alpha: 0.5);
+
+      .iconfont {
+        color: #0065ff;
+      }
+    }
+
+    &:focus,
+    &.selectedBtn {
+      background: rgba($color: #0065ff, $alpha: 0.5);
+      border: 2px solid #0065ff;
+
+      .iconfont {
+        color: #0065ff;
+      }
+    }
+  }
+}
+</style>
diff --git a/src/components/canvas/index.vue b/src/components/canvas/index.vue
new file mode 100644
index 0000000..b7266ef
--- /dev/null
+++ b/src/components/canvas/index.vue
@@ -0,0 +1,656 @@
+<template>
+  <div
+    class="s-cavas"
+    :style="{ width: canvasWidth + 'px', height: canvasHeight + 'px' }"
+  >
+    <canvas
+      ref="myCanvas"
+      :width="canvasWidth"
+      :height="canvasHeight"
+      :style="`background:url(${canvasBg}) center / ${canvasWidth}px ${canvasHeight}px no-repeat; background-size: contain;`"
+    ></canvas>
+
+    <el-tooltip
+      content="鍒锋柊搴曞浘"
+      placement="bottom"
+      popper-class="atooltip"
+      v-if="isShowRefresh"
+    >
+      <span class="iconfont icongengxin" @click="refresh">&#xe606;</span>
+    </el-tooltip>
+    <p class="tip" :style="disabled ? `display:block;` : `display:none;`">
+      鎵归噺閰嶇疆鏂瑰紡涓嶅厑璁哥粯鍒跺尯鍩燂紝璇烽�夋嫨鎽勫儚鏈鸿繘琛屽尯鍩熺粯鍒�
+    </p>
+    <el-dialog
+      :visible.sync="visible"
+      width="1150px"
+      append-to-body
+      :before-close="cancelFunc"
+    >
+      <canvas-dialog
+        ref="bigCanvas"
+        :canvasDataToChild="canvasData"
+        :snapshot_url="canvasBg"
+        @refresh="refresh"
+      ></canvas-dialog>
+      <span slot="footer" class="dialog-footer">
+        <div class="cancel button" @click="cancelFunc">鍙栨秷</div>
+        <div class="submit button" @click="handleOk">淇濆瓨</div>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import canvasDialog from "./Dialog";
+import { updateSnapshot } from "@/api/camera";
+export default {
+  name: "myCanvas",
+  components: {
+    canvasDialog,
+  },
+  props: {
+    divId: {
+      default: "my-canvas",
+      type: String,
+    },
+    isGB28181: {
+      default: false,
+      type: Boolean,
+    },
+    isShowRefresh: {
+      default: true,
+      type: Boolean,
+    },
+    sourceType: {
+      default: 1,
+      type: Number,
+    },
+    isShowDrawArrow: {
+      default: false,
+      type: Boolean,
+    },
+    disabled: {
+      default: false,
+      type: Boolean,
+    },
+    canvasDataShow: {
+      default: () => {
+        return { line: [], rect: [], arrow: [], polygon: [] };
+      },
+      type: Object,
+    },
+    currentCameraId: {
+      type: String,
+      default: "",
+    },
+    snapshot_url: {
+      type: String,
+      default: "",
+    },
+    isLink: {
+      type: Boolean,
+      default: false,
+    },
+    loading: {
+      type: Boolean,
+      default: false,
+    },
+    canvasWidth: {
+      type: Number,
+      default: 576,
+    },
+    canvasHeight: {
+      type: Number,
+      default: 324,
+    },
+    showProportion: {
+      type: Number,
+      default: 1.666,
+    },
+  },
+  computed: {
+    canvasBg() {
+      if (this.snapshot_url) {
+        // 鏁版嵁鏍堣嚜鍔ㄤ笂浼犲鐞�
+        if (this.snapshot_url.indexOf("/opt/vasystem") == 0) {
+          return this.snapshot_url.replace("/opt/vasystem", "");
+        }
+
+        if (this.sourceType == 2) {
+          return `${this.snapshot_url}`;
+        } else {
+          return `/httpImage/${this.snapshot_url}`;
+        }
+      } else {
+        return this.blackImg;
+      }
+    },
+  },
+  data() {
+    return {
+      blackImg: require("../../assets/img/baseimg.png"),
+      canvasData: {
+        line: [],
+        rect: [],
+        arrow: [],
+        polygon: [],
+      }, // 鏈�缁堣緭鍑虹殑鐢诲竷鍧愭爣鏁版嵁
+      canvasPic: new Image(), // 鎾ら攢鐢ㄧ殑鍥剧墖
+      canvasHistory: [], // 鍘嗗彶鏁版嵁锛屼互渚涙挙閿�浣跨敤
+      step: -1, // 璁板綍绱㈠紩锛屼互渚涙挙閿�浣跨敤
+      c: null,
+      ctx: null,
+      visible: false,
+      baseImg: undefined,
+      //showProportion: 1.666
+    };
+  },
+  watch: {
+    loading: {
+      handler(newVal, oldVal) {
+        // console.log(newVal,'loading')
+        if (newVal) {
+          this.baseImg = "";
+          this.refresh();
+        }
+      },
+      deep: true,
+    },
+    canvasDataShow: {
+      handler(newVal, oldVal) {
+        // console.log(newVal, "canvasDataShow newVal");
+        this.canvasData.line = newVal.line;
+        this.canvasData.rect = newVal.rect;
+        this.canvasData.arrow = newVal.arrow;
+        this.canvasData.polygon = newVal.polygon;
+        this.clickSelect(this.canvasData);
+      },
+      deep: true,
+    },
+  },
+  mounted() {
+    this.$nextTick(() => {
+      // this.c = document.querySelector("#" + this.divId);
+      this.c = this.$refs.myCanvas;
+      this.ctx = this.c.getContext("2d");
+      this.canvasData = JSON.parse(JSON.stringify(this.canvasDataShow));
+      this.clickSelect(this.canvasData);
+    });
+  },
+  methods: {
+    // 鑾峰彇canvas搴曞浘
+    async getCanvasPic() {
+      // this.$emit('changeBaseImg',this.currentCameraId)
+      this.$emit("changeLoading", true);
+      if (this.currentCameraId) {
+        let _this = this;
+        await updateSnapshot(this.currentCameraId)
+          .then((res) => {
+            if (res.data.cameraId === _this.currentCameraId) {
+              this.baseImg = res.data.snapshotUrl;
+              this.$emit(
+                "refresh",
+                res.data.snapshotUrl,
+                _this.currentCameraId
+              );
+              this.$forceUpdate();
+              this.$notify({
+                type: "success",
+                message: "搴曞浘宸插埛鏂�",
+              });
+            }
+          })
+          .catch((err) => {
+            this.$notify({
+              type: "error",
+              message: "搴曞浘鍒锋柊澶辫触",
+            });
+          });
+        this.$emit("changeLoading", false);
+      }
+    },
+    showModal() {
+      // console.log(this.canvasData, "鐐瑰嚮缁樺埗鐨勬椂鍊欎紶閫掕繃鍘荤殑鏁版嵁");
+      this.visible = true;
+      this.$nextTick(() => {
+        // this.$refs.bigCanvas.delCursor = {}
+      });
+    },
+    cancelFunc() {
+      this.visible = false;
+      this.$refs.bigCanvas.cancel();
+      // console.log("鍏抽棴浜�");
+    },
+    handleOk() {
+      // 鍒ゆ柇鍥惧舰鐨勫悕瀛楁槸鍚﹂噸澶�
+      // console.log("ok");
+      this.$refs.bigCanvas.changeType("0");
+      let repeatName = this.isRepeat();
+      if (repeatName !== "") {
+        this.$notify({
+          type: "error",
+          message: repeatName + "鍥惧舰鍚嶇О閲嶅锛岃鏇存锛�",
+        });
+        return;
+      }
+      this.$notify({
+        type: "success",
+        message: "宸蹭繚瀛樼粯鍒讹紒",
+      });
+      // 姣忔淇濆瓨鍏抽棴妯℃�佺獥鏃堕兘瑕佹妸妯℃�佺獥鐨勬暟鎹啓鍒扮埗缁勪欢閲屾潵
+      this.canvasData = this.$refs.bigCanvas.canvasData;
+      // 椤轰究鐢╁埌鏇村灞傚幓
+      this.$emit("fromCanvas", this.$refs.bigCanvas.canvasData);
+      // console.log("浣犲ソ", this.canvasData);
+
+      this.clickSelect(this.canvasData);
+      this.visible = false;
+    },
+    // 鍥炴樉cavas鏁版嵁
+    // 鐐瑰嚮閫変腑鍙樿壊 灏嗗綋鍓嶉〉闈㈡墍鏈夎矾寰勯噸缁樺垽鏂綋鍓嶉紶鏍囩殑鍧愭爣鍦ㄥ摢涓浘褰㈠唴 濡傛灉涓嶄紶鍧愭爣鍙傛暟灏辨槸鍥炴樉鐨勬柟娉�
+    clickSelect(e) {
+      this.ctx.clearRect(0, 0, this.c.width, this.c.height);
+      let _this = this; // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
+      _this.canvasData.line.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[1].x / _this.showProportion,
+          v.location[1].y / _this.showProportion
+        );
+        _this.ctx.stroke();
+        _this.showRemarks(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
+        if (e && _this.ctx.isPointInStroke(e.offsetX, e.offsetY)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+          // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "1";
+          _this.delCursor.index = i;
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[1].x / _this.showProportion,
+            v.location[1].y / _this.showProportion
+          );
+          _this.ctx.stroke();
+          _this.showRemarks(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
+        }
+      });
+      _this.canvasData.rect.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[1].x / _this.showProportion,
+          v.location[1].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[2].x / _this.showProportion,
+          v.location[2].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[3].x / _this.showProportion,
+          v.location[3].y / _this.showProportion
+        );
+        _this.ctx.lineTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        _this.ctx.stroke();
+        _this.showRemarks(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
+        if (e && _this.ctx.isPointInPath(e.offsetX, e.offsetY)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "2";
+          _this.delCursor.index = i;
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[1].x / _this.showProportion,
+            v.location[1].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[2].x / _this.showProportion,
+            v.location[2].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[3].x / _this.showProportion,
+            v.location[3].y / _this.showProportion
+          );
+          _this.ctx.lineTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          _this.ctx.stroke();
+          _this.showRemarks(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
+        }
+      });
+      _this.canvasData.arrow.forEach(function (v, i) {
+        _this.ctx.strokeStyle = "yellow";
+        // _this.ctx.beginPath()
+        // _this.ctx.moveTo(v.location[0].x / 2, v.location[0].y / 2)
+        // _this.ctx.lineTo(v.location[1].x / 2, v.location[1].y / 2)
+        // _this.ctx.stroke()
+        _this.drawArrow(
+          _this.ctx,
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.location[1].x / _this.showProportion,
+          v.location[1].y / _this.showProportion,
+          20,
+          30,
+          "yellow"
+        ); // 缁樺埗鏂规硶
+        _this.showRemarks(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
+        if (e && _this.ctx.isPointInStroke(e.offsetX, e.offsetY)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+          // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "4";
+          _this.delCursor.index = i;
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          //   _this.ctx.beginPath()
+          //   _this.ctx.moveTo(v.location[0].x / _this.showProportion, v.location[0].y / _this.showProportion)
+          //   _this.ctx.lineTo(v.location[1].x / _this.showProportion, v.location[1].y / _this.showProportion)
+          //   _this.ctx.stroke()
+          _this.drawArrow(
+            _this.ctx,
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.location[1].x / _this.showProportion,
+            v.location[1].y / _this.showProportion,
+            20,
+            30,
+            "red"
+          ); // 缁樺埗鏂规硶
+          _this.showRemarks(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
+        }
+      });
+      _this.canvasData.polygon.forEach(function (v, i) {
+        if (v.location.length === 0) {
+          return;
+        }
+        _this.ctx.strokeStyle = "yellow";
+        _this.ctx.beginPath();
+        _this.ctx.moveTo(
+          v.location[0].x / _this.showProportion,
+          v.location[0].y / _this.showProportion
+        );
+        for (let i = 1; i < v.location.length; i++) {
+          _this.ctx.lineTo(
+            v.location[i].x / _this.showProportion,
+            v.location[i].y / _this.showProportion
+          );
+        }
+        _this.ctx.closePath();
+        _this.ctx.stroke();
+        _this.showRemarks(
+          v.location[v.location.length - 1].x / _this.showProportion,
+          v.location[v.location.length - 1].y / _this.showProportion,
+          v.name
+        );
+        _this.c.style.cursor = "default";
+        if (e && _this.ctx.isPointInPath(e.offsetX, e.offsetY)) {
+          // 濡傛灉浼犲叆浜嗕簨浠跺潗鏍囷紝灏辩敤isPointInStroke鍒ゆ柇涓�涓�
+          // 濡傛灉褰撳墠鐜瑕嗙洊浜嗚鍧愭爣锛屽氨灏嗗浘褰㈢殑index鏀惧埌鏁扮粍閲�
+          // 褰撻紶鏍囩Щ鍏ヤ箣鍚庡皢褰撳墠鐨勬ā寮忓垏鎹负閫変腑妯″紡
+          _this.type = "0";
+          _this.delCursor.type = "5";
+          _this.delCursor.index = i;
+          // 灏嗗綋鍓嶅厓绱犳爣绾�
+          _this.ctx.strokeStyle = "red";
+          _this.ctx.beginPath();
+          _this.ctx.moveTo(
+            v.location[0].x / _this.showProportion,
+            v.location[0].y / _this.showProportion
+          );
+          for (let i = 1; i < v.location.length; i++) {
+            _this.ctx.lineTo(
+              v.location[i].x / _this.showProportion,
+              v.location[i].y / _this.showProportion
+            );
+          }
+          _this.ctx.closePath();
+          _this.ctx.stroke();
+          _this.showRemarks(
+            v.location[v.location.length - 1].x / _this.showProportion,
+            v.location[v.location.length - 1].y / _this.showProportion,
+            v.name
+          );
+          _this.c.style.cursor = "pointer";
+        }
+      });
+    },
+    // 鍥炴樉鍥惧舰澶囨敞
+    showRemarks(x, y, remarks) {
+      this.ctx.moveTo(x, y - 10); // 鍥犱负鏀惧ぇ涔嬪悗鏄痽-20锛屾墍浠ョ缉灏忕増鐨勪负y-10
+      this.ctx.fillStyle = "green"; // 璁剧疆濉厖棰滆壊涓虹豢鑹�
+      this.ctx.font = '10px "寰蒋闆呴粦"'; // 璁剧疆瀛椾綋
+      this.ctx.textBaseline = "bottom"; // 璁剧疆瀛椾綋搴曠嚎瀵归綈缁樺埗鍩虹嚎
+      this.ctx.textAlign = "left"; // 璁剧疆瀛椾綋瀵归綈鐨勬柟寮�
+      this.ctx.fillText(remarks, x, y - 10); // 濉厖鏂囧瓧
+    },
+    // 绠ご缁樺埗鍑芥暟
+    drawArrow(ctx, fromX, fromY, toX, toY, theta, headlen, width, color) {
+      // ctx锛欳anvas缁樺浘鐜
+      // fromX, fromY锛氳捣鐐瑰潗鏍囷紙涔熷彲浠ユ崲鎴恜1锛屽彧涓嶈繃瀹冩槸涓�涓暟缁勶級
+      // toX, toY锛氱粓鐐瑰潗鏍� (涔熷彲浠ユ崲鎴恜2锛屽彧涓嶈繃瀹冩槸涓�涓暟缁�)
+      // theta锛氫笁瑙掓枩杈逛竴鐩寸嚎澶硅
+      // headlen锛氫笁瑙掓枩杈归暱搴�
+      // width锛氱澶寸嚎瀹藉害
+      // color锛氱澶撮鑹�
+      theta = typeof theta !== "undefined" ? theta : 30;
+      headlen = typeof theta !== "undefined" ? headlen : 10;
+      width = typeof width !== "undefined" ? width : 1;
+      color = typeof color !== "undefined" ? color : "yellow";
+      // 璁$畻鍚勮搴﹀拰瀵瑰簲鐨凱2,P3鍧愭爣
+      let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI;
+      let angle1 = ((angle + theta) * Math.PI) / 180;
+      let angle2 = ((angle - theta) * Math.PI) / 180;
+      let topX = headlen * Math.cos(angle1);
+      let topY = headlen * Math.sin(angle1);
+      let botX = headlen * Math.cos(angle2);
+      let botY = headlen * Math.sin(angle2);
+
+      ctx.save();
+      ctx.beginPath();
+      let arrowX = fromX - topX;
+      let arrowY = fromY - topY;
+      ctx.moveTo(arrowX, arrowY);
+      ctx.moveTo(fromX, fromY);
+      ctx.lineTo(toX, toY);
+      arrowX = toX + topX;
+      arrowY = toY + topY;
+      ctx.moveTo(arrowX, arrowY);
+      ctx.lineTo(toX, toY);
+      arrowX = toX + botX;
+      arrowY = toY + botY;
+      ctx.lineTo(arrowX, arrowY);
+      ctx.strokeStyle = color;
+      ctx.lineWidth = width;
+      ctx.stroke();
+      ctx.restore();
+    },
+    async refresh() {
+      // console.log(this.loading,'鍒锋柊搴曞浘',this.snapshot_url)
+      if (!this.currentCameraId) {
+        return false;
+      }
+      // await this.$emit('changeLoading', true)
+      this.getCanvasPic();
+    },
+    // 鍒ゆ柇鍥惧舰鍚嶇О鏄惁閲嶅
+    isRepeat() {
+      let _this = this; // 闆嗗悎涓亶鍘嗛渶瑕佸皢this杞瓨涓�涓嬩娇鐢�
+      let nameArray = [];
+      for (const v of _this.$refs.bigCanvas.canvasData.line) {
+        for (const item of nameArray) {
+          if (v.name === item) {
+            return v.name;
+          }
+        }
+        nameArray.push(v.name);
+      }
+      for (const v of _this.$refs.bigCanvas.canvasData.arrow) {
+        for (const item of nameArray) {
+          if (v.name === item) {
+            return v.name;
+          }
+        }
+        nameArray.push(v.name);
+      }
+      for (const v of _this.$refs.bigCanvas.canvasData.rect) {
+        for (const item of nameArray) {
+          if (v.name === item) {
+            return v.name;
+          }
+        }
+        nameArray.push(v.name);
+      }
+      for (const v of _this.$refs.bigCanvas.canvasData.polygon) {
+        for (const item of nameArray) {
+          if (v.name === item) {
+            return v.name;
+          }
+        }
+        nameArray.push(v.name);
+      }
+      return "";
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+canvas {
+  position: absolute;
+  top: 0;
+  left: 0;
+}
+.s-cavas {
+  // width: 576px;
+  // height: 324px;
+  margin-top: 10px;
+  position: relative;
+  overflow: auto;
+  @media screen {
+  }
+  .tip {
+    position: absolute;
+    width: 350px;
+    left: 80px;
+    top: 90px;
+    color: white;
+    font-size: 1.5rem;
+  }
+  span {
+    position: relative;
+    left: 265px;
+    top: 6px;
+    font-size: 2.5rem;
+    cursor: pointer;
+    color: #3d68e1;
+  }
+
+  .icongengxin {
+    font-size: 24px;
+    left: 525px;
+    top: 12px;
+  }
+}
+.img-icon {
+  width: 600px;
+  height: 480px;
+  background-size: cover;
+  /* 鎶戝埗閫変腑 */
+  -moz-user-select: none;
+  -webkit-user-select: none;
+  user-select: none;
+}
+
+.el-dialog__wrapper ::v-deep {
+  .el-dialog__header {
+    padding: 0;
+    height: 56px;
+    border-bottom: 1px solid #e9ebee;
+  }
+
+  .el-dialog__body {
+    padding: 20px 20px 10px 20px;
+  }
+
+  .dialog-footer {
+    display: flex;
+    justify-content: end;
+    text-align: center;
+    line-height: 32px;
+    font-size: 14px;
+
+    .cancel {
+      margin-right: 10px;
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0065ff;
+      color: #0065ff;
+    }
+
+    .submit {
+      width: 60px;
+      height: 32px;
+      color: #fff;
+      background-color: #0065ff;
+      border: 1px solid #0065ff;
+    }
+  }
+}
+</style>
diff --git a/src/components/giantTree/zTree/ztree.vue b/src/components/giantTree/zTree/ztree.vue
index 2512eee..409932c 100644
--- a/src/components/giantTree/zTree/ztree.vue
+++ b/src/components/giantTree/zTree/ztree.vue
@@ -488,9 +488,6 @@
 .ztree li i.danger {
   color: #f7493c;
 }
-.ztree li span.running {
-  color: #3d68e1;
-}
 
 .ztree li span.button {
   line-height: 0;
diff --git a/src/components/subComponents/SystemInfo.vue b/src/components/subComponents/SystemInfo.vue
index 6fa2b5f..caf8c84 100644
--- a/src/components/subComponents/SystemInfo.vue
+++ b/src/components/subComponents/SystemInfo.vue
@@ -1,214 +1,89 @@
 <template>
-  <div :class="showClass">
-    <div class="card-box" :style="`width:${borderWidth};min-width:456px`" >
-      <ul>
-        <li style="max-width:30px;" v-if="ShowLocalVedio">
-          <div class="total-box">
-            <div style="width:100%;margin-top:28px;">
-              <div class="top-text">
-                <em>{{"鎬荤畻鍔�"}}</em>
-              </div>
-              <div class="mid-text">
-                <em>{{` ${PollData.channelTotal}`}}</em>
-              </div>
-            </div>
-          </div>
-        </li>
-        <li style="max-width:120px" v-if="showRealPoll">
-          <DataStackCard
-            style="width:95%"
-            title="瀹炴椂绠楀姏"
-            fourTip="鏁呴殰瀵艰嚧鏈鐞�"
-            fourIcon="iconicon-test21"
-            :total="`${PollData.RealTimeValidCount}璺痐"
-            :ValidCount="`${PollData.RealTimeSum}璺痐"
-            :InValidCount="`${PollData.RealTimeInvalid}璺痐"
-            :RunningCount="`${PollData.RealTimeRun}璺痐"
-            :NoDeal="`${PollData.RealTimeNoDeal}璺痐"
-          />
-        </li>
-        <li style="max-width:120px" v-if="showRealPoll">
-          <DataStackCard
-            title="杞绠楀姏"
-            fourTip="绛夊緟杞澶勭悊"
-            fourIcon="iconicon-test2"
-            style="width:95%"
-            :total="`${PollData.PollValidCount}璺痐"
-            :ValidCount="`${PollData.PollSum}璺痐"
-            :InValidCount="`${PollData.PollInvalid}璺痐"
-            :RunningCount="`${PollData.PollRun}璺痐"
-            :NoDeal="`${PollData.PollNoDeal}璺痐"
-          />
-        </li>
-        <li style="max-width:120px" v-if="ShowLocalVedio">
-          <!-- <local-vedio-card
-            title="鏈湴绠楀姏"
-            style="width:95%"
-            :total="`${PollData.localVideo}閫氶亾`"
-            :success="`${PollData.PollRun}璺痐"
-            :warning="`${PollData.PollInvalid}璺痐"
-          />-->
-          <DataStackCard
-            title="鏁版嵁鏍堢畻鍔�"
-            style="width:95%"
-            fourTip="鏈煡鍘熷洜瀵艰嚧鏈鐞�"
-            fourIcon="iconicon-test5"
-            :total="`${PollData.stackChannelCount}璺痐"
-            :ValidCount="`${PollData.stackTotal}璺痐"
-            :InValidCount="`${PollData.stackInvalidCount}璺痐"
-            :RunningCount="`${PollData.stackRunningCount}璺痐"
-            :NoDeal="`${PollData.stackNoDeal}璺痐"
-          ></DataStackCard>
-        </li>
-      </ul>
+  <div
+    class="chart"
+    v-if="PollData.barCharts && PollData.barCharts.length !== 0"
+  >
+    <!-- 鍐呭瓨杩涘害鏉� -->
+    <div class="row">
+      <div class="label">鍐呭瓨</div>
+      <el-progress
+        :percentage="PollData.barCharts[3]"
+        :stroke-width="stroke"
+        :show-text="false"
+      ></el-progress>
+      <div class="number">{{ PollData.barCharts[3] }}%</div>
     </div>
-    <!-- <div :class="marginTop" :style="`width:${liquidWidth};`">
-      <ul>
-        <li>
-          <liquid-fill-chart title="鍐呭瓨" :value="PollData.MemUsedPercent" :size="75" />
-        </li>
-        <li>
-          <liquid-fill-chart title="绠楀姏" :value="PollData.GpuUsedPercent" :size="75" />
-        </li>
-        <li>
-          <liquid-fill-chart title="CPU" :value="PollData.CpuUsedPercent" :size="75" />
-        </li> 
-      </ul>
-    </div>-->
-    <div class="eCharts-box" v-if="PollData.barCharts.length>0">
-      <eChartsBar ref="cpuMeneryCharts" :xAxisData="PollData.barCharts"></eChartsBar>
+    <!-- 绠楀姏杩涘害鏉� -->
+    <div class="row">
+      <div class="label">绠楀姏</div>
+      <el-progress
+        :percentage="PollData.barCharts[2]"
+        :stroke-width="stroke"
+        :show-text="false"
+      ></el-progress>
+      <div class="number">{{ PollData.barCharts[2] }}%</div>
+    </div>
+    <!-- CPU杩涘害鏉� -->
+    <div class="row">
+      <div class="label">CPU</div>
+      <el-progress
+        :percentage="PollData.barCharts[1]"
+        :stroke-width="stroke"
+        :show-text="false"
+      ></el-progress>
+      <div class="number">{{ PollData.barCharts[1] }}%</div>
+    </div>
+    <!-- 纭洏杩涘害鏉� -->
+    <div class="row">
+      <div class="label">纭洏</div>
+      <el-progress
+        :percentage="PollData.barCharts[0]"
+        :stroke-width="stroke"
+        :show-text="false"
+      ></el-progress>
+      <div class="number">{{ PollData.barCharts[0] }}%</div>
     </div>
   </div>
 </template>
 
 <script>
-import DataStackCard from "@/components/subComponents/DataStackCard"
-import eChartsBar from '@/components/subComponents/eChartsBar'
-
 export default {
   name: "SystemInfo",
-  components: {
-    DataStackCard,
-    eChartsBar,
-  },
   props: {
-    showTask: {
-      type: Boolean,
-      default: false
-    },
-    showClass: {
-      type: String,
-      default: 'sysinfo-box flex-box'
-    },
-    ShowLocalVedio: {
-      type: Boolean,
-      default: false
-    },
-    showRealPoll: {
-      type: Boolean,
-      default: true
-    },
-    marginTop: {
-      type: String,
-      default: 'ma'
-    },
-    borderWidth: {
-      type: String,
-      default: '64%'
-    },
-    liquidWidth: {
-      type: String,
-      default: '30%'
-    }
+    stroke: {},
   },
-  methods: {
-    initCpuCharts() {
-      this.$forceUpdate();
-    }
-  },
-  mounted(){
-    console.log(this.PollData);
-    // console.log('PollData.RealTimeValidCount',this.PollData.RealTimeValidCount)
-  }
-}
+};
 </script>
-<style lang="scss">
-.sysinfo-box {
-  height: 100%;
-  .card-box {
-    width: 50%;
-    float: left;
-    @media screen and (min-width: 1280px) and (max-width: 1440px) {
-      width: 65%;
+<style lang="scss" scoped>
+.chart {
+  .row {
+    margin-bottom: 30px;
+    display: flex;
+    height: 24px;
+    .label {
+      width: 48px;
     }
-    @media screen and (max-width: 1279px) {
-      width: 70%;
-    }
-    .total-box {
-      height: 120px;
-      width: 100%;
-      display: inline-block;
-      margin: 10px 5px;
-      background: #ffffff;
-      border: 1px solid #e2e2e2;
-      box-shadow: 0 5px 12px 0 rgba(0, 0, 0, 0.07);
-      border-radius: 4px;
-      cursor: pointer;
-      .top-text {
-        line-height: 30px;
-        font-family: PingFangSC-Medium;
-        font-size: 14px;
-        color: #222222;
+
+    .el-progress ::v-deep {
+      flex: 1;
+      border-radius: 15px;
+      .el-progress-bar__inner {
+        background: linear-gradient(
+          270deg,
+          #0065ff 0%,
+          rgba(0, 101, 255, 0.25) 100%
+        );
       }
-      .mid-text {
-        margin-bottom: 18px;
-        font-family: PingFangSC-Medium;
-        font-size: 18px;
-        color: #ff7733;
-      }
-      .bottom-text {
-        position: relative;
-        top: 3px;
-        left: 1px;
-        color: #666666;
-        font-size: 13px;
-      }
-      em {
-        font-weight: 700;
+
+      .el-progress-bar__outer {
+        background-color: #d4e3fa;
       }
     }
-    ul{
-      padding-left: 0;
-    }
-  }
-  .eCharts-box {
-    width: 46%;
-    float: left;
-    box-sizing: border-box;
-    height: 100%;
-    padding-left: 10px;
-    //margin-left: 10px;
-    // @media screen and (min-width: 1280px) and (max-width: 1440px) {
-    //   width: 35%;
-    // }
-    // @media screen and (max-width: 1279px) {
-    //   width: 30%;
-    // }
-  }
-  .chart-box {
-    float: left;
-    width: 50%;
-    margin-top: 20px;
-    margin-left: 20px;
-  }
-  ul {
-    list-style: none;
-    display: table;
-    width: 100%;
-    li {
-      display: table-cell;
-      text-align: center;
-      vertical-align: top;
+
+    .number {
+      margin-left: 20px;
+      font-size: 14px;
+      color: #0065ff;
     }
   }
 }
diff --git a/src/main.ts b/src/main.ts
index 49fe5f3..0c3a871 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -9,11 +9,18 @@
 import "vue-photo-preview/dist/skin.css";
 import * as VueWindow from "@hscmap/vue-window";
 
+import VueAwesomeSwiper from "vue-awesome-swiper";
+import "swiper/dist/css/swiper.css";
+
+
+
 Vue.prototype.$moment = moment; //璧嬪�间娇鐢�
 Vue.config.productionTip = false;
 Vue.mixin(Mixin);
 Vue.use(preview);
 Vue.use(VueWindow);
+Vue.use(VueAwesomeSwiper as any);
+
 
 export default Vue.prototype.bus = new Vue({
   router,
diff --git a/src/mixins.js b/src/mixins.js
index 1f11715..19e3f0d 100644
--- a/src/mixins.js
+++ b/src/mixins.js
@@ -7,6 +7,7 @@
 import DataPool from "@/Pool/PollData";
 import VideoManageData from "@/Pool/VideoManageData";
 import TaskMange from "@/Pool/TaskMange";
+import drag from "@/plugin/drag";
 
 /* eslint-disable */
 const onlyVideoPhotoData = new VideoPhotoData();
diff --git a/src/plugin/drag.js b/src/plugin/drag.js
new file mode 100644
index 0000000..b931220
--- /dev/null
+++ b/src/plugin/drag.js
@@ -0,0 +1,31 @@
+import Vue from "vue";
+//浣跨敤Vue.directive()瀹氫箟涓�涓叏灞�鎸囦护
+//1.鍙傛暟涓�锛氭寚浠ょ殑鍚嶇О锛屽畾涔夋椂鎸囦护鍓嶉潰涓嶉渶瑕佸啓v-
+//2.鍙傛暟浜岋細鏄竴涓璞★紝璇ュ璞′腑鏈夌浉鍏崇殑鎿嶄綔鍑芥暟
+//3.鍦ㄨ皟鐢ㄧ殑鏃跺�欏繀椤诲啓v-
+const drag = Vue.directive("drag", {
+  //1.鎸囦护缁戝畾鍒板厓绱犱笂鍥炵珛鍒绘墽琛宐ind鍑芥暟锛屽彧鎵ц涓�娆�
+  //2.姣忎釜鍑芥暟涓涓�涓弬鏁版案杩滄槸el锛岃〃绀虹粦瀹氭寚浠ょ殑鍏冪礌锛宔l鍙傛暟鏄師鐢焜s瀵硅薄
+  //3.閫氳繃el.focus()鏄棤娉曡幏鍙栫劍鐐圭殑锛屽洜涓哄彧鏈夋彃鍏OM鍚庢墠鐢熸晥
+  bind: function(el) {},
+  //inserted琛ㄧず涓�涓厓绱狅紝鎻掑叆鍒癉OM涓細鎵цinserted鍑芥暟锛屽彧瑙﹀彂涓�娆�
+  inserted: function(el) {
+    el.onmousedown = function(e) {
+      if (e.target.tagName == "IMG") {
+        return;
+      }
+      var disx = e.pageX - el.offsetLeft;
+      var disy = e.pageY - el.offsetTop;
+      document.onmousemove = function(e) {
+        el.style.left = e.pageX - disx + "px";
+        el.style.top = e.pageY - disy + "px";
+      };
+      document.onmouseup = function() {
+        document.onmousemove = document.onmouseup = null;
+      };
+    };
+  },
+  //褰揤Node鏇存柊鐨勬椂鍊欎細鎵цupdated锛屽彲浠ヨЕ鍙戝娆�
+  updated: function(el) {},
+});
+export default drag;
diff --git a/src/store/index.js b/src/store/index.js
index 0369187..2b4c5a9 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -6,11 +6,15 @@
 export default new Vuex.Store({
   state: {
     productPay: {},
+    newSdk: {},
   },
   mutations: {
     addProductPay(state, productPay) {
       state.productPay = productPay;
     },
+    setNewSdk(state, sdk) {
+      state.newSdk = sdk;
+    },
   },
   actions: {},
   modules: {},
diff --git a/src/views/hashrate/components/AlgCard.vue b/src/views/hashrate/AlgManage/components/AlgCard.vue
similarity index 100%
rename from src/views/hashrate/components/AlgCard.vue
rename to src/views/hashrate/AlgManage/components/AlgCard.vue
diff --git a/src/views/hashrate/components/AlgManage.vue b/src/views/hashrate/AlgManage/index.vue
similarity index 98%
rename from src/views/hashrate/components/AlgManage.vue
rename to src/views/hashrate/AlgManage/index.vue
index 9a61450..f5c226d 100644
--- a/src/views/hashrate/components/AlgManage.vue
+++ b/src/views/hashrate/AlgManage/index.vue
@@ -94,7 +94,7 @@
 </template>
 
 <script>
-import Card from "@/views/hashrate/components/AlgCard";
+import Card from "./components/AlgCard";
 export default {
   components: {
     Card,
diff --git a/src/views/hashrate/components/CameraInfoEditor.vue b/src/views/hashrate/CameraManage/CameraInfo/components/CameraInfoEditor.vue
similarity index 100%
rename from src/views/hashrate/components/CameraInfoEditor.vue
rename to src/views/hashrate/CameraManage/CameraInfo/components/CameraInfoEditor.vue
diff --git a/src/views/hashrate/components/CameraInfo.vue b/src/views/hashrate/CameraManage/CameraInfo/index.vue
similarity index 92%
rename from src/views/hashrate/components/CameraInfo.vue
rename to src/views/hashrate/CameraManage/CameraInfo/index.vue
index f81fb22..b4d7ca1 100644
--- a/src/views/hashrate/components/CameraInfo.vue
+++ b/src/views/hashrate/CameraManage/CameraInfo/index.vue
@@ -118,6 +118,24 @@
           </el-form-item>
         </div>
 
+        <div class="row">
+          <el-form-item label="鎵�灞為泦缇�">
+            <el-select
+              v-model="form.cluster"
+              placeholder="璇烽�夋嫨鎵�灞為泦缇�"
+              size="small"
+              class="clusterSelect"
+            >
+              <el-option
+                v-for="item in clusterList"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+
         <!-- 娣诲姞浼犳劅鍣� -->
         <CameraInfoEditor
           ref="cameraEditor"
@@ -188,51 +206,10 @@
           </div>
         </div>
 
-        <div
-          class="chart"
+        <sysinfo
+          :stroke="24"
           v-if="PollData.barCharts && PollData.barCharts.length !== 0"
-        >
-          <!-- 鍐呭瓨杩涘害鏉� -->
-          <div class="row">
-            <div class="label">鍐呭瓨</div>
-            <el-progress
-              :percentage="PollData.barCharts[3]"
-              :stroke-width="24"
-              :show-text="false"
-            ></el-progress>
-            <div class="number">{{ PollData.barCharts[3] }}%</div>
-          </div>
-          <!-- 绠楀姏杩涘害鏉� -->
-          <div class="row">
-            <div class="label">绠楀姏</div>
-            <el-progress
-              :percentage="PollData.barCharts[2]"
-              :stroke-width="24"
-              :show-text="false"
-            ></el-progress>
-            <div class="number">{{ PollData.barCharts[2] }}%</div>
-          </div>
-          <!-- CPU杩涘害鏉� -->
-          <div class="row">
-            <div class="label">CPU</div>
-            <el-progress
-              :percentage="PollData.barCharts[1]"
-              :stroke-width="24"
-              :show-text="false"
-            ></el-progress>
-            <div class="number">{{ PollData.barCharts[1] }}%</div>
-          </div>
-          <!-- 纭洏杩涘害鏉� -->
-          <div class="row">
-            <div class="label">纭洏</div>
-            <el-progress
-              :percentage="PollData.barCharts[0]"
-              :stroke-width="24"
-              :show-text="false"
-            ></el-progress>
-            <div class="number">{{ PollData.barCharts[0] }}%</div>
-          </div>
-        </div>
+        />
       </div>
 
       <div class="camera">
@@ -282,13 +259,15 @@
 import { getSoundList } from "@/api/event";
 
 import WasmPlayer from "@/components/wasmPlayer";
-import CameraInfoEditor from "./CameraInfoEditor";
+import CameraInfoEditor from "./components/CameraInfoEditor";
+import Sysinfo from "@/components/subComponents/SystemInfo";
 
 export default {
   name: "CameraInfo",
   components: {
     WasmPlayer,
     CameraInfoEditor,
+    Sysinfo,
   },
   props: {
     cameraList: {
@@ -325,6 +304,16 @@
       //浼犳劅鍣ㄥ垪琛�
       sensors: [],
       voice: null,
+      clusterList: [
+        {
+          label: "闆嗙兢1",
+          value: 0,
+        },
+        {
+          label: "闆嗙兢2",
+          value: 1,
+        },
+      ],
     };
   },
   computed: {
@@ -748,7 +737,7 @@
     }
   }
 
-  @media screen and (max-width: 1440px) {
+  @media screen and (max-width: 1600px) {
     .cameraBody {
       display: block;
 
@@ -756,6 +745,10 @@
         margin-right: 0;
         margin-bottom: 24px;
       }
+    }
+
+    .camera {
+      height: auto !important;
     }
   }
 
@@ -829,6 +822,10 @@
       }
     }
 
+    .clusterSelect.el-select {
+      width: 360px;
+    }
+
     .el-switch ::v-deep {
       height: 32px;
       .el-switch__core {
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue
new file mode 100644
index 0000000..1ed8212
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/AddRuleBox.vue
@@ -0,0 +1,311 @@
+<template>
+  <div class="AddBox">
+    <div class="title">
+      {{ editData.type ? "淇敼" : "娣诲姞"
+      }}{{ type === "separate" ? "鐙珛" : "鑱斿姩" }}鍦烘櫙
+    </div>
+
+    <div class="close iconfont" @click="close">&#xe60f;</div>
+
+    <el-form :model="ruleForm">
+      <div class="label">鍦烘櫙鍚嶇О</div>
+      <el-form-item>
+        <el-input
+          class="h32"
+          v-model="ruleForm.scene_name"
+          placeholder="璇疯緭鍏�"
+        ></el-input>
+      </el-form-item>
+
+      <div class="label">浜嬩欢绛夌骇</div>
+      <el-form-item>
+        <el-select
+          class="h32"
+          v-model="ruleForm.alarm_level"
+          placeholder="璇烽�夋嫨"
+        >
+          <el-option
+            v-for="item in eventLevel"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <div class="label">鏃堕棿娈�</div>
+      <el-form-item>
+        <el-select
+          class="h32 left"
+          v-model="ruleForm.time_rule_id"
+          placeholder="璇烽�夋嫨"
+        >
+          <el-option
+            v-for="item in VideoManageData.TimeRules"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+
+        <i class="iconfont" @click="showTimeSlider = true">&#xe63f;</i>
+      </el-form-item>
+
+      <div class="label">鍦烘櫙鎻忚堪</div>
+      <el-form-item>
+        <el-input
+          class="h32"
+          v-model="ruleForm.desc"
+          type="textarea"
+        ></el-input>
+      </el-form-item>
+
+      <div class="label">浜嬩欢澹伴煶</div>
+      <el-form-item>
+        <el-select
+          v-model="ruleForm.voice"
+          placeholder="璇烽�夋嫨"
+          value-key="id"
+          @change="selSound"
+          class="h32 left"
+        >
+          <el-option
+            v-for="item in soundList"
+            :key="item.id"
+            :label="item.name"
+            :value="item"
+          ></el-option>
+        </el-select>
+        <span @click="togglePlayer" v-show="ruleForm.voiceId.length">
+          <i v-if="togglePlay" class="iconfont">&#xe628;</i>
+          <i v-else class="iconfont">&#xe62b;</i>
+        </span>
+      </el-form-item>
+    </el-form>
+
+    <div class="btns">
+      <div class="confirmBtn button" @click="save">淇濆瓨</div>
+      <div class="cancelBtn button" @click="close">鍙栨秷</div>
+    </div>
+
+    <TimeSlider
+      v-if="showTimeSlider"
+      @close="showTimeSlider = false"
+    ></TimeSlider>
+  </div>
+</template>
+
+<script>
+import { getSoundList } from "@/api/event";
+import TimeSlider from "@/views/hashrate/CameraManage/CameraRules/components/TimeSlider";
+
+export default {
+  props: {
+    type: {
+      type: String,
+    },
+    editData: {},
+  },
+  components: {
+    TimeSlider,
+  },
+  mounted() {
+    this.getSounds();
+    this.eventAudio.addEventListener("ended", () => {
+      this.togglePlay = true;
+    });
+    if (this.editData.type) {
+      this.initEditData();
+    }
+  },
+  data() {
+    return {
+      ruleForm: {
+        alarm_level: 1,
+        scene_name: "",
+        desc: "",
+        template_id: "",
+        time_rule_id: "",
+        voice: {},
+        voiceId: "",
+      },
+      eventLevel: [
+        {
+          label: "涓�绾�",
+          value: 1,
+        },
+        {
+          label: "浜岀骇",
+          value: 2,
+        },
+        {
+          label: "涓夌骇",
+          value: 3,
+        },
+        {
+          label: "鍥涚骇",
+          value: 4,
+        },
+        {
+          label: "浜旂骇",
+          value: 5,
+        },
+      ],
+      soundPath: "",
+      togglePlay: true,
+      eventAudio: new Audio(),
+      soundList: [],
+      showTimeSlider: false,
+    };
+  },
+
+  methods: {
+    //缂栬緫鏃跺洖濉暟鎹�
+    initEditData() {
+      this.ruleForm = {
+        alarm_level: this.editData.rule.alarm_level,
+        scene_name: this.editData.rule.scene_name,
+        desc: this.editData.rule.desc,
+        template_id: this.editData.rule.template_id,
+        time_rule_id: this.editData.rule.time_rule_id,
+        voice: this.editData.rule.voice,
+        voiceId: this.editData.rule.voiceId,
+        index: this.editData.index,
+      };
+    },
+    getSounds() {
+      let _this = this;
+      getSoundList()
+        .then((res) => {
+          if (res.success) {
+            _this.soundList = [{ id: "", name: "绌�", path: "" }].concat(
+              res.data
+            );
+          }
+        })
+        .catch((e) => console.log(e));
+    },
+    selSound(sound) {
+      this.soundPath = sound.path;
+      this.ruleForm.voiceId = sound.id;
+      this.togglePlay = true;
+      this.eventAudio.pause();
+      this.$forceUpdate();
+      // this.eventAudio.
+    },
+    togglePlayer() {
+      if (!this.soundPath) {
+        this.$notify({
+          type: "info",
+          message: "璇峰厛閫夋嫨涓�涓0闊�!",
+        });
+        return false;
+      }
+      this.eventAudio.src = this.soundPath;
+      if (this.togglePlay) {
+        this.eventAudio.play();
+        this.togglePlay = false;
+      } else {
+        this.eventAudio.pause();
+        this.togglePlay = true;
+      }
+    },
+    close() {
+      this.$emit("close");
+    },
+    save() {
+      this.$emit("save", {
+        action: this.editData.type ? "edit" : "add",
+        data: this.ruleForm,
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.AddBox {
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  right: 0;
+  width: 400px;
+  background-color: #fff;
+  box-shadow: 0px 2px 16px 0px rgba(0, 43, 106, 0.25);
+
+  z-index: 2;
+
+  .title {
+    box-sizing: border-box;
+    padding: 20px;
+    height: 64px;
+    border-bottom: 1px solid #e9ebee;
+    font-size: 18px;
+    font-weight: 700;
+  }
+
+  .close {
+    position: absolute;
+    top: 20px;
+    right: 20px;
+    font-size: 12px;
+    color: #666;
+    cursor: pointer;
+  }
+
+  .el-form {
+    box-sizing: border-box;
+    padding: 0 20px;
+
+    .label {
+      margin-top: 30px;
+      margin-bottom: 6px;
+      font-size: 14px;
+      color: #666;
+    }
+
+    .left ::v-deep {
+      margin-right: 10px;
+      width: 334px;
+    }
+
+    .iconfont {
+      color: #0065ff;
+      font-size: 16px;
+      cursor: pointer;
+    }
+  }
+
+  .btns {
+    position: absolute;
+    display: flex;
+    align-items: center;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    height: 72px;
+    border-top: 1px solid #e9ebee;
+    text-align: center;
+    line-height: 32px;
+
+    .cancelBtn {
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0064ff;
+      font-size: 14px;
+      color: #0064ff;
+    }
+
+    .confirmBtn {
+      margin-left: 20px;
+      margin-right: 10px;
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0064ff;
+      font-size: 14px;
+      color: #fff;
+      background-color: #0064ff;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/CameraBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/CameraBox.vue
new file mode 100644
index 0000000..6420fe4
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/CameraBox.vue
@@ -0,0 +1,305 @@
+<template>
+  <div class="CameraBox">
+    <div v-if="camera.cameraId">
+      <div class="header">
+        <i class="iconfont">&#xe646;</i>
+        <div class="name">{{ camera.cameraName }}</div>
+        <el-switch
+          v-model="camera.analytics"
+          @change="pollEnable"
+          active-color="#D4E3FA"
+          inactive-color="#E9EBEE"
+          :width="56"
+        >
+        </el-switch>
+      </div>
+
+      <div class="body">
+        <div class="row">
+          <div class="label">澶勭悊鏂瑰紡:</div>
+          <div
+            class="button pollingBtn"
+            :class="{ active: camera.analytics && !camera.dealWay }"
+            @click="changePoll(false)"
+          >
+            杞
+          </div>
+          <div
+            class="button realtimeBtn"
+            :class="{ active: camera.analytics && camera.dealWay }"
+            @click="changePoll(true)"
+          >
+            瀹炴椂
+          </div>
+        </div>
+        <div class="row">
+          <div class="label">鍒嗚鲸鐜�:</div>
+          <div class="data">
+            {{
+              camera.camearInfo.resolution_width == 0 ||
+              camera.camearInfo.resolution_height == 0
+                ? "鏈満鍒嗚鲸鐜�"
+                : `${camera.camearInfo.resolution_width} * ${camera.camearInfo.resolution_height}`
+            }}
+          </div>
+        </div>
+      </div>
+
+      <div class="footer">
+        <div class="button addModel">娣诲姞鍒版ā鏉�</div>
+        <div class="button addRule" @click="addRule">娣诲姞鏂板満鏅�</div>
+      </div>
+    </div>
+
+    <div class="empty" v-else>鏆傛湭鑾峰緱鎽勫儚鏈轰俊鎭�</div>
+  </div>
+</template>
+
+<script>
+import { changeRunType } from "@/api/pollConfig";
+
+export default {
+  props: {
+    camera: {
+      type: Object,
+    },
+  },
+
+  data() {
+    return {};
+  },
+  methods: {
+    //鏄惁杩涜瑙嗛鍒嗘瀽澶勭悊
+    pollEnable(row) {
+      let val = 0;
+      if (row) {
+        if (this.PollData.RealTimeSum < this.PollData.channelTotal) {
+          this.camera.dealWay = true;
+          val = 1;
+        } else {
+          this.camera.dealWay = false;
+          val = 0;
+        }
+      } else {
+        this.camera.dealWay = false;
+        val = -1;
+      }
+      if (this.camera.cameraId && this.camera.cameraId !== undefined) {
+        changeRunType({
+          camera_ids: [this.camera.cameraId],
+          run_type: val,
+        }).then((rsp) => {
+          if (rsp && rsp.success) {
+            this.$notify({
+              type: "success",
+              message: "閰嶇疆鎴愬姛",
+            });
+          } else {
+            this.$notify({
+              type: "error",
+              message: "閰嶇疆澶辫触",
+            });
+          }
+          this.TreeDataPool.fetchTreeData();
+        });
+      }
+      //    this.PollData.statisticTaskInfo();
+    },
+
+    //瀹炴椂銆佽疆璇㈠垏鎹�
+    changePoll(row) {
+      //鍒ゆ柇鏄柊澧炶繕鏄洿鏂�
+      if (this.camera.cameraId && this.camera.cameraId !== undefined) {
+        if (this.PollData.RealTimeSum < this.PollData.channelTotal) {
+          if (row) {
+            this.camera.dealWay = true;
+          } else {
+            this.camera.dealWay = false;
+          }
+          debugger;
+          changeRunType({
+            camera_ids: [this.camera.cameraId],
+            run_type: this.camera.dealWay ? 1 : 0,
+          }).then((rsp) => {
+            if (rsp && rsp.success) {
+              this.$notify({
+                type: "success",
+                message: "閰嶇疆鎴愬姛",
+              });
+            } else {
+              this.$notify({
+                type: "error",
+                message: "閰嶇疆澶辫触",
+              });
+            }
+          });
+        } else {
+          if (this.camera.dealWay) {
+            this.camera.dealWay = false;
+            changeRunType({
+              camera_ids: [this.camera.cameraId],
+              run_type: this.camera.dealWay ? 1 : 0,
+            }).then((rsp) => {
+              if (rsp && rsp.success) {
+                this.$notify({
+                  type: "success",
+                  message: "閰嶇疆鎴愬姛",
+                });
+              } else {
+                this.$notify({
+                  type: "error",
+                  message: "閰嶇疆澶辫触",
+                });
+              }
+            });
+          }
+        }
+        this.TreeDataPool.fetchTreeData();
+        //    this.PollData.statisticTaskInfo();
+      }
+    },
+
+    // 鏄剧ず鏂板寮圭獥
+    addRule() {
+      this.$emit("addSeparateRule");
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.CameraBox {
+  width: 236px;
+  height: 198px;
+  border-radius: 5px;
+  background-color: #fff;
+  filter: drop-shadow(0px 2px 16px rgba(0, 43, 106, 0.25));
+
+  .header {
+    display: flex;
+    box-sizing: border-box;
+    padding: 0 10px;
+    height: 44px;
+    background: #f0f5fa;
+    align-items: center;
+
+    i {
+      font-size: 18px;
+      margin-right: 6px;
+      color: #0065ff;
+    }
+
+    .name {
+      width: 136px;
+      font-size: 14px;
+      color: #5f5f5f;
+    }
+
+    .el-switch ::v-deep {
+      height: 24px;
+      .el-switch__core {
+        height: 24px;
+        border-radius: 16px;
+      }
+      .el-switch__core::after {
+        margin-top: 2px;
+        margin-left: 3px;
+        width: 16px;
+        height: 16px;
+        background: #999999;
+      }
+    }
+    .el-switch.is-checked ::v-deep {
+      .el-switch__core::after {
+        margin-left: -20px;
+
+        background-color: #0065ff;
+      }
+    }
+  }
+
+  .body {
+    box-sizing: border-box;
+    padding: 0 10px 20px 10px;
+    border-bottom: 1px solid #e9ebee;
+    .row {
+      margin-top: 20px;
+      display: flex;
+      align-items: center;
+
+      .label {
+        width: 70px;
+        font-size: 12px;
+        color: #666;
+      }
+
+      .button {
+        position: relative;
+        width: 73px;
+        height: 24px;
+        text-align: center;
+        border: 1px solid #c0c5cc;
+        font-size: 12px;
+        color: #999;
+        border-radius: 5px;
+        line-height: 24px;
+
+        &.pollingBtn {
+          &.active {
+            z-index: 1;
+            background: #ff6a00;
+            border: 1px solid #ff6a00;
+            color: #fff;
+          }
+        }
+
+        &.realtimeBtn {
+          margin-left: -5px;
+          background-color: #fff;
+
+          &.active {
+            z-index: 1;
+            background: #0065ff;
+            border: 1px solid #0065ff;
+            color: #fff;
+          }
+        }
+      }
+    }
+  }
+
+  .footer {
+    box-sizing: border-box;
+    padding: 10px;
+    display: flex;
+    align-items: center;
+
+    .addModel {
+      margin-right: 10px;
+      width: 102px;
+      height: 32px;
+      text-align: center;
+      line-height: 32px;
+      border: 1px solid #0065ff;
+      color: #0065ff;
+    }
+
+    .addRule {
+      width: 102px;
+      height: 32px;
+      text-align: center;
+      line-height: 32px;
+      border: 1px solid #0065ff;
+      background-color: #0065ff;
+      color: #fff;
+    }
+  }
+}
+
+.empty {
+  box-sizing: border-box;
+  padding-top: 80px;
+  text-align: center;
+  color: #ccc;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue b/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue
new file mode 100644
index 0000000..3b3fd76
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/HashrateCard.vue
@@ -0,0 +1,158 @@
+<template>
+  <div class="HashrateCard">
+    <div class="hashrate">
+      <img :src="`/images/hashrate/${title}.png`" alt="" />
+      <div class="hashrateContent">
+        <div class="label">{{ title }}</div>
+        <div class="data">
+          <span class="number">{{ total }}</span
+          >璺�
+        </div>
+      </div>
+    </div>
+    <div class="detail">
+      <div class="detailItem">
+        <div class="label">
+          <span class="iconfont">&#xe62f;</span>
+        </div>
+        <div class="data">
+          <span class="number">{{ ValidCount }}</span
+          >璺�
+        </div>
+      </div>
+      <div class="detailItem">
+        <div class="label"><span class="iconfont">&#xe62d;</span></div>
+        <div class="data">
+          <span class="number">{{ InValidCount }}</span
+          >璺�
+        </div>
+      </div>
+      <div class="detailItem">
+        <div class="label"><span class="iconfont">&#xe632;</span></div>
+        <div class="data">
+          <span class="number">{{ RunningCount }}</span
+          >璺�
+        </div>
+      </div>
+      <div class="detailItem">
+        <div class="label">
+          <span class="iconfont">&#xe631;</span>
+        </div>
+        <div class="data">
+          <span class="number">{{ NoDeal }}</span
+          >璺�
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    title: { type: String, default: "" },
+    total: { type: String, default: "" },
+    ValidCount: { type: String, default: "" },
+    InValidCount: { type: String, default: "" },
+    RunningCount: { type: String, default: "" },
+    NoDeal: { type: String, default: "" },
+  },
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.HashrateCard {
+  overflow: hidden;
+  height: 146px;
+  background-color: #fff;
+  display: flex;
+  justify-content: space-between;
+
+  .hashrate {
+    margin-left: 30px;
+    margin-right: 30px;
+    margin-top: 47px;
+    display: flex;
+    justify-content: center;
+
+    img {
+      margin-right: 10px;
+      width: 48px;
+      height: 48px;
+    }
+
+    .hashrateContent {
+      .label {
+        margin-bottom: 4px;
+        font-size: 14px;
+      }
+
+      .data {
+        font-size: 12px;
+        font-weight: 700;
+        .number {
+          font-size: 24px;
+        }
+      }
+    }
+  }
+
+  .detail {
+    box-sizing: border-box;
+    padding: 20px 20px 20px 0px;
+    flex: 1;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    .detailItem {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      padding-top: 6px;
+      overflow: hidden;
+      box-sizing: border-box;
+      width: 50%;
+      height: 50%;
+      text-align: center;
+
+      .label {
+        font-size: 12px;
+        color: #666;
+        overflow: hidden;
+        white-space: nowrap;
+        text-overflow: ellipsis;
+        span {
+          vertical-align: -8px;
+          margin-right: 5px;
+          font-size: 18px;
+        }
+      }
+
+      .data {
+        margin-top: 4px;
+        font-size: 12px;
+        font-weight: 700;
+        .number {
+          font-size: 24px;
+        }
+      }
+
+      &:nth-child(1) {
+        border-right: 1px solid #e9ebee;
+        border-bottom: 1px solid #e9ebee;
+      }
+
+      &:nth-child(2) {
+        border-bottom: 1px solid #e9ebee;
+      }
+
+      &:nth-child(3) {
+        border-right: 1px solid #e9ebee;
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue b/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue
new file mode 100644
index 0000000..8ef23dc
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/RuleItem.vue
@@ -0,0 +1,380 @@
+<template>
+  <div class="RuleItem">
+    <div class="ruleInfo">
+      <div class="title">鍦烘櫙淇℃伅</div>
+      <div class="content">
+        <div class="header">
+          <div class="name">{{ rule.scene_name }}</div>
+          <i class="iconfont edit" @click="edit">&#xe626;</i>
+        </div>
+        <div class="des">
+          <div class="desItem">
+            <i class="iconfont">&#xe611;</i>{{ eventName }}
+          </div>
+          <div class="desItem">
+            <i class="iconfont">&#xe611;</i>{{ timeName }}
+          </div>
+          <div class="desItem" v-if="rule.desc">
+            <i class="iconfont">&#xe611;</i>{{ rule.desc }}
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="strategy">
+      <div class="title">閰嶇疆绛栫暐</div>
+      <div class="content">
+        <template v-if="rule.rules && rule.rules.length > 0">
+          <div
+            class="strategyItem"
+            v-for="(item, index) in rule.rules"
+            :key="index"
+          >
+            <div class="relation" v-if="item.rule_with_pre">
+              <el-select v-model="item.rule_with_pre" placeholder="閫夊叧绯�">
+                <el-option
+                  v-for="item in sdkConnects"
+                  :value="item.value"
+                  :title="item.name"
+                  :label="item.name"
+                  :key="item.id"
+                ></el-option>
+              </el-select>
+            </div>
+            <div class="imgBox">
+              <img :src="item.icon_blob" alt="" />
+              <div class="mask">
+                <div class="mask_del">
+                  <i class="iconfont">&#xe63b;</i>
+                </div>
+                <div class="mask_edit">
+                  <i class="iconfont">&#xe638;</i>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <div
+            class="addBox"
+            @dragover="dragover($event)"
+            @drop="drop"
+            v-if="showAddBox"
+          >
+            璇锋嫋鍔ㄥ埌姝ゅ
+          </div>
+        </template>
+
+        <div class="empty" @dragover="dragover($event)" @drop="drop" v-else>
+          <img src="/images/hashrate/鏈厤缃畻娉曠┖椤甸潰.png" alt="" />
+          <div class="des">
+            鏆傛湭閰嶇疆绛栫暐锛岀偣鍑讳笂鏂规搷浣滈潰鏉挎寜閽紝浠庢搷浣滈潰鏉挎嫋鍒扮畻娉曞埌姝ゅ锛屽嵆鍙厤缃�
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="control">
+      <div class="title">鍦烘櫙鎿嶄綔</div>
+      <div class="content">
+        <div class="btns">
+          <div class="button cancel" @click="backToOrigin">鍙栨秷</div>
+          <div class="button submit">淇濆瓨</div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+
+<script>
+import bus from "@/plugin/bus";
+import { logout } from "@/api/login";
+export default {
+  props: {
+    rule: {},
+  },
+  created() {
+    this.originRule = JSON.parse(JSON.stringify(this.rule));
+    this.getSdkConnection();
+    bus.$on("addSdk", () => {
+      if (this.rule.rules.length < 4) {
+        this.showAddBox = true;
+      }
+    });
+
+    bus.$on("dragleave", () => {
+      this.showAddBox = false;
+    });
+  },
+  data() {
+    return {
+      sdkConnects: [],
+      btnDisabled: true, //鎸夐挳绂佺敤
+      newSdk: null,
+      eventLevel: [
+        {
+          label: "涓�绾�",
+          value: 1,
+        },
+        {
+          label: "浜岀骇",
+          value: 2,
+        },
+        {
+          label: "涓夌骇",
+          value: 3,
+        },
+        {
+          label: "鍥涚骇",
+          value: 4,
+        },
+        {
+          label: "浜旂骇",
+          value: 5,
+        },
+      ],
+      showAddBox: false,
+      originRule: {},
+    };
+  },
+  computed: {
+    timeName() {
+      const res = this.VideoManageData.TimeRules.filter((item) => {
+        return item.id === this.rule.time_rule_id;
+      });
+      return res[0].name;
+    },
+    eventName() {
+      const res = this.eventLevel.filter((item) => {
+        return item.value == this.rule.alarm_level;
+      });
+      return res[0].label;
+    },
+  },
+  methods: {
+    getSdkConnection() {
+      this.sdkConnects = this.VideoManageData.Dictionary[
+        "RULECOMPUTEBETWEEN"
+      ].map((r) => {
+        return {
+          name: r.name,
+          value: r.value,
+        };
+      });
+    },
+    //闃绘榛樿琛屼负,鍏佽瀛樻斁鎷栨嫿
+    dragover(e) {
+      e.preventDefault();
+    },
+    drop() {
+      this.newSdk = this.$store.state.newSdk;
+      //   this.$store.commit("setNewSdk", {});
+      this.$emit("addSdk");
+      bus.$emit("dragleave");
+    },
+    edit() {
+      this.$emit("edit");
+    },
+    backToOrigin() {
+      this.$emit("backToOrigin", this.originRule);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.RuleItem {
+  overflow: hidden;
+  display: flex;
+  margin-left: 60px;
+  margin-bottom: 20px;
+  width: 1220px;
+  height: 198px;
+  border: 1px solid #c0c5cc;
+  border-radius: 5px;
+
+  .ruleInfo {
+    width: 374px;
+
+    .header {
+      display: flex;
+      margin-bottom: 6px;
+      justify-content: space-between;
+      align-items: center;
+
+      .name {
+        font-size: 14px;
+        font-weight: 700;
+      }
+
+      .edit {
+        margin-right: 20px;
+        font-size: 24px;
+        cursor: pointer;
+      }
+    }
+
+    .desItem {
+      margin-top: 7px;
+      .iconfont {
+        margin-right: 10px;
+        font-size: 16px;
+        vertical-align: middle;
+      }
+    }
+  }
+
+  .strategy {
+    flex: 1;
+
+    .content {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      .strategyItem {
+        display: flex;
+        align-items: center;
+
+        .imgBox {
+          position: relative;
+          img {
+            width: 60px;
+            height: 60px;
+          }
+          .mask {
+            display: none;
+            position: absolute;
+            width: 60px;
+            height: 60px;
+            top: 0;
+            left: 0;
+            line-height: 60px;
+            text-align: center;
+
+            .mask_del {
+              flex: 1;
+              background: rgba(0, 0, 0, 0.5);
+            }
+
+            .mask_edit {
+              flex: 1;
+              background: rgba(0, 0, 0, 0.3);
+            }
+
+            .iconfont {
+              color: #fff;
+              font-size: 16px;
+              cursor: pointer;
+            }
+          }
+
+          &:hover .mask {
+            display: flex;
+          }
+        }
+
+        .el-select {
+          margin: 0 20px;
+          width: 95px;
+          height: 24px;
+
+          ::v-deep input:focus {
+            border-color: #0065ff;
+          }
+
+          ::v-deep .el-input.is-focus .el-input__inner {
+            border-color: #0065ff;
+          }
+
+          ::v-deep input {
+            border-radius: 0;
+            height: 24px;
+          }
+
+          ::v-deep .el-input__icon {
+            line-height: 24px;
+          }
+        }
+      }
+
+      .addBox {
+        box-sizing: border-box;
+        padding: 12px 5px;
+        margin-left: 175px;
+        width: 60px;
+        height: 60px;
+        background: #eff4f9;
+        border-radius: 5px;
+        border: 1px dashed #c0c5cc;
+        line-height: 18px;
+        text-align: center;
+        color: #666666;
+      }
+
+      .empty {
+        text-align: center;
+        img {
+          margin-bottom: 2px;
+          height: 100px;
+        }
+        .des {
+          font-weight: 700;
+          color: #666;
+        }
+      }
+    }
+  }
+
+  .control {
+    width: 128px;
+
+    .btns {
+      display: flex;
+      margin-top: 68px;
+      text-align: center;
+      line-height: 24px;
+
+      .cancel {
+        margin-right: 10px;
+        width: 40px;
+        height: 24px;
+        border: 1px solid #0065ff;
+        color: #0065ff;
+      }
+
+      .submit {
+        width: 40px;
+        height: 24px;
+        color: #fff;
+        background-color: #0065ff;
+        border: 1px solid #0065ff;
+      }
+
+      &.disabled .cancel {
+        color: #999999;
+        border-color: #999999;
+        cursor: not-allowed;
+      }
+      &.disabled .submit {
+        border-color: #999999;
+        background-color: #999999;
+        cursor: not-allowed;
+      }
+    }
+  }
+
+  .title {
+    box-sizing: border-box;
+    padding-left: 20px;
+    height: 38px;
+    color: #666;
+    font-weight: 700;
+    line-height: 38px;
+    background: #f0f5fa;
+  }
+
+  .content {
+    height: 140px;
+    margin: 10px 0 10px 20px;
+    border-right: 1px solid #e9ebee;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SceneRule.vue b/src/views/hashrate/CameraManage/CameraRules/components/SceneRule.vue
new file mode 100644
index 0000000..20e04c1
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/SceneRule.vue
@@ -0,0 +1,568 @@
+<template>
+  <div class="scene-edit-container">
+    <div class="scene-title">
+      <b style="font-size: 14px; line-height: 18px">鍦烘櫙</b>
+      <el-button
+        type="primary"
+        size="mini"
+        @click="handleCreate"
+        style="margin-left: 90%"
+        v-show="!editScene"
+        >+ 娣诲姞鍦烘櫙</el-button
+      >
+    </div>
+
+    <el-form ref="form" label-width="80px" v-show="editScene">
+      <div class="flex-form">
+        <div class="left">
+          <el-form-item label="鍦烘櫙鍚嶇О">
+            <el-input
+              v-model="sceneForm.scene_name"
+              size="mini"
+              maxlength="15"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="浜嬩欢绛夌骇">
+            <el-select
+              v-model="sceneForm.alarm_level"
+              placeholder="璇烽�夋嫨"
+              size="mini"
+              style="width: 250px"
+            >
+              <el-option label="涓�绾�" :value="1"></el-option>
+              <el-option label="浜岀骇" :value="2"></el-option>
+              <el-option label="涓夌骇" :value="3"></el-option>
+              <el-option label="鍥涚骇" :value="4"></el-option>
+              <el-option label="浜旂骇" :value="5"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="鏃堕棿娈�">
+            <el-select
+              v-model="sceneForm.time_rule_id"
+              placeholder="璇烽�夋嫨"
+              size="mini"
+            >
+              <el-option
+                v-for="item in VideoManageData.TimeRules"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </div>
+        <div class="right">
+          <el-form-item label="鍦烘櫙鎻忚堪">
+            <el-input
+              v-model="sceneForm.desc"
+              type="textarea"
+              size="mini"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="浜嬩欢澹伴煶">
+            <el-select
+              v-model="sceneForm.voice"
+              placeholder="绌�"
+              size="small"
+              value-key="id"
+              @change="selSound"
+            >
+              <el-option
+                v-for="item in soundList"
+                :key="item.id"
+                :label="item.name"
+                :value="item"
+              ></el-option>
+            </el-select>
+            <span
+              @click="togglePlayer"
+              style="cursor: pointer; margin-left: 20px"
+              v-show="sceneForm.voiceId.length"
+            >
+              <i
+                v-if="togglePlay"
+                class="el-icon-video-play"
+                style="font-size: 26px; vertical-align: middle; color: #409eff"
+              ></i>
+              <i
+                v-else
+                class="el-icon-video-pause"
+                style="font-size: 26px; vertical-align: middle; color: #409eff"
+              ></i>
+            </span>
+          </el-form-item>
+        </div>
+      </div>
+
+      <scene-editor
+        ref="sceneEditor"
+        :isLinkRule="linkRule"
+        :Cameras="seletedCameras"
+        :ruleList="templateRules"
+        @sdkNameChange="getSceneName"
+      ></scene-editor>
+
+      <el-form-item style="width: 60%; min-width: 1048px">
+        <el-button size="mini" @click="editScene = false">鍙栨秷</el-button>
+        <el-button type="primary" size="mini" @click="saveSceneRule"
+          >淇濆瓨</el-button
+        >
+      </el-form-item>
+    </el-form>
+
+    <!-- 瑙勫垯鍒楄〃 -->
+    <div class="edit-rule-table" v-show="!editScene">
+      <div class="task-rules-table-box">
+        <el-table
+          :data="tableRuleList"
+          border
+          style="width: 100%"
+          :cell-style="cellStyle"
+          :header-cell-style="{ background: '#f8f8f8', color: '#222222' }"
+        >
+          <el-table-column
+            label="搴忓彿"
+            type="index"
+            align="center"
+          ></el-table-column>
+          <el-table-column
+            label="鍦烘櫙鍚嶇О"
+            prop="scene_name"
+            align="center"
+            show-overflow-tooltip
+          ></el-table-column>
+          <el-table-column
+            label="绛栫暐"
+            prop="group_text"
+            align="center"
+            min-width="350px"
+          >
+            <template slot-scope="scope">
+              <span v-html="scope.row.group_text"></span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鏃堕棿娈�"
+            prop="time_name"
+            align="center"
+          ></el-table-column>
+          <el-table-column
+            label="鎻忚堪"
+            prop="desc"
+            align="center"
+            min-width="120"
+          ></el-table-column>
+          <!-- <el-table-column label="鐘舵��" align="center" width="90">
+            <template slot-scope="scope">
+              <el-switch v-model="scope.row.defence_state" @change="updateDefence(scope.row)"></el-switch>
+            </template>
+          </el-table-column>-->
+          <el-table-column label="浜嬩欢澹伴煶" align="center">
+            <template slot-scope="scope">
+              <span>{{ getSoundById(scope.row.voiceId) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="浜嬩欢绛夌骇" align="center">
+            <template slot-scope="scope">
+              <span>{{ scope.row.alarm_level | alarmLevel }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="鎿嶄綔" fixed="right" align="center">
+            <template slot-scope="scope">
+              <el-tooltip
+                content="缂栬緫"
+                :hide-after="700"
+                placement="top"
+                popper-class="atooltip"
+              >
+                <i
+                  class="iconfont iconbianji1 btn-icon"
+                  style="font-size: 28px"
+                  @click="handleEdit(scope.row)"
+                ></i>
+              </el-tooltip>
+              <el-tooltip
+                content="鍒犻櫎"
+                :hide-after="700"
+                placement="top"
+                popper-class="atooltipgroup_"
+              >
+                <i
+                  class="iconfont iconshanchu4 btn-icon"
+                  style="font-size: 28px; color: red"
+                  @click="handleDelScene(scope.row)"
+                ></i>
+              </el-tooltip>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { saveCameraScene, deleteCameraScene } from "@/api/scene";
+import RuleEditor from "@/components/subComponents/RuleEditor";
+import SceneEditor from "./scene/Editor";
+import { getSoundList } from "@/api/event";
+
+export default {
+  name: "SceneRuleEditor",
+  components: {
+    SceneEditor,
+  },
+  props: {
+    seletedCameras: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    tableRuleList: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    onSaveScene: {
+      type: Function,
+      default: () => false,
+    },
+    linkRule: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  filters: {
+    alarmLevel(level) {
+      switch (level) {
+        case 1:
+          return "涓�绾�";
+        case 2:
+          return "浜岀骇";
+        case 3:
+          return "涓夌骇";
+        case 4:
+          return "鍥涚骇";
+        case 5:
+          return "浜旂骇";
+      }
+    },
+  },
+  watch: {
+    tableRuleList(n, o) {
+      this.editScene = false;
+    },
+  },
+  mounted() {
+    // window.addEventListener('resize', this.windowSizeChange)
+    this.getSounds();
+    this.eventAudio.addEventListener("ended", () => {
+      this.togglePlay = true;
+    });
+  },
+  data() {
+    return {
+      editScene: false,
+      sceneTemplates: [],
+      sceneForm: {
+        alarm_level: 1,
+        enable: true,
+        scene_name: "",
+        desc: "",
+        template_id: "",
+        time_rule_id: "",
+        voice: {},
+        voiceId: "",
+      },
+      templateSdks: [],
+      templateRules: "",
+      ruleList: [],
+      sceneNameStore: [],
+      eventAudio: new Audio(),
+      soundList: [],
+      togglePlay: true,
+    };
+  },
+  methods: {
+    getSoundById(id) {
+      if (id) {
+        let sound = this.soundList.find((item) => item.id == id);
+        return sound.name;
+      } else {
+        return "";
+      }
+    },
+    getSounds() {
+      let _this = this;
+      getSoundList()
+        .then((res) => {
+          if (res.success) {
+            //_this.soundList = [{ id: "", name: "绌�", path: "" }].concat(res.data.list)
+            _this.soundList = [{ id: "", name: "绌�", path: "" }].concat(
+              res.data
+            );
+          }
+        })
+        .catch((e) => console.log(e));
+    },
+    selSound(sound) {
+      this.soundPath = sound.path;
+      this.sceneForm.voiceId = sound.id;
+      this.togglePlay = true;
+      this.eventAudio.pause();
+      this.$forceUpdate();
+      // this.eventAudio.
+    },
+    togglePlayer() {
+      if (!this.soundPath) {
+        this.$notify({
+          type: "info",
+          message: "璇峰厛閫夋嫨涓�涓0闊�!",
+        });
+        return false;
+      }
+      debugger;
+      this.eventAudio.src = this.soundPath;
+      if (this.togglePlay) {
+        this.eventAudio.play();
+        this.togglePlay = false;
+      } else {
+        this.eventAudio.pause();
+        this.togglePlay = true;
+      }
+      // this.togglePlay = !this.togglePlay
+    },
+    bubbleSort(arr) {
+      for (var i = arr.length - 1; i > 0; i--) {
+        for (var j = 0; j < i; j++) {
+          if (arr[j] > arr[j + 1]) {
+            let temp = arr[j];
+            arr[j] = arr[j + 1];
+            arr[j + 1] = temp;
+          }
+        }
+      }
+      return arr;
+    },
+    getSceneName(sdk_name) {
+      this.sceneNameStore.push(sdk_name);
+
+      if (!this.sceneForm.scene_name.trim()) {
+        this.sceneForm.scene_name = sdk_name;
+      }
+    },
+    cleanForm() {
+      this.sceneForm = {
+        alarm_level: 1,
+        enable: true,
+        scene_name: "",
+        desc: "",
+        template_id: "",
+        time_rule_id: "",
+        voice: {},
+        voiceId: "",
+      };
+      this.$refs.sceneEditor.cleanRule();
+      this.$refs.sceneEditor.getSdkConnection();
+    },
+    handleCreate() {
+      if (this.linkRule && this.TreeDataPool.selectedNodes.length < 2) {
+        this.$notify({
+          type: "warning",
+          message: "璇烽�夋嫨鑷冲皯2涓憚鍍忔満!",
+        });
+        return false;
+      } else if (
+        !this.linkRule &&
+        this.TreeDataPool.treeActiveName != "dataStack" &&
+        this.TreeDataPool.selectedNodes.length < 1
+      ) {
+        this.$notify({
+          type: "warning",
+          message: `璇烽�夋嫨1涓憚鍍忔満!`,
+        });
+        return false;
+      } else if (
+        this.TreeDataPool.treeActiveName == "dataStack" &&
+        !this.DataStackPool.selectedDir.id
+      ) {
+        this.$notify({
+          type: "warning",
+          message: `璇峰厛閫夋嫨鏁版嵁鏍堟枃浠跺す!`,
+        });
+        return false;
+      }
+      this.editScene = true;
+      this.cleanForm();
+
+      //鍒濆鍖栧満鏅悕绉�
+      var pattern = /^鍦烘櫙\s*\d+\s*$/;
+      var tempArr = [];
+      this.tableRuleList.forEach((scene) => {
+        if (pattern.test(scene.scene_name)) {
+          tempArr.push(Number(scene.scene_name.substring(2).trim()));
+        }
+      });
+      let latest =
+        tempArr.length > 0
+          ? this.bubbleSort(tempArr)[tempArr.length - 1] + 1
+          : 1;
+
+      this.sceneForm.scene_name = "鍦烘櫙" + latest;
+      //鍒濆鍖栨椂闂存
+      this.sceneForm.time_rule_id = this.VideoManageData.TimeRules[0].id;
+    },
+    handleEdit(scene) {
+      this.sceneForm = scene;
+      this.sceneForm.voice = this.soundList.find((o) => o.id === scene.voiceId);
+
+      this.editScene = true;
+      let selectedTpl = {};
+      this.sceneTemplates.forEach((t) => {
+        if (t.id == this.sceneForm.template_id) {
+          selectedTpl = t;
+        }
+      });
+      this.templateSdks = selectedTpl.sdks;
+
+      this.templateRules = JSON.stringify(scene.rules);
+      this.$refs.sceneEditor.editHandle(this.templateRules);
+    },
+
+    validateForm() {
+      if (!this.sceneForm.scene_name.trim()) {
+        this.$notify({
+          type: "warning",
+          message: "鍦烘櫙鍚嶄笉鑳戒负绌�",
+        });
+        return false;
+      } else if (!this.sceneForm.alarm_level) {
+        this.$notify({
+          type: "warning",
+          message: "浜嬩欢绛夌骇涓嶈兘涓虹┖",
+        });
+        return false;
+      } else if (!this.sceneForm.time_rule_id) {
+        this.$notify({
+          type: "warning",
+          message: "鏃堕棿娈典笉鑳戒负绌�",
+        });
+        return false;
+      }
+      return true;
+    },
+    saveSceneRule() {
+      if (!this.validateForm()) {
+        return;
+      }
+      let editorResp = this.$refs.sceneEditor.submitRule();
+      this.sceneForm.rules = editorResp.rules;
+      this.sceneForm.id = editorResp.id;
+      this.sceneForm.group_text = editorResp.text;
+
+      this.onSaveScene(this.sceneForm);
+    },
+    handleDelScene(groupRule) {
+      let _this = this;
+      this.$confirm("鎻愮ず锛氬垹闄ゅ悗锛岃鏉¤鍒欏皢澶辨晥锛屾槸鍚﹀垹闄わ紵", {
+        center: true,
+        cancelButtonClass: "comfirm-class-cancle",
+        confirmButtonClass: "comfirm-class-sure",
+      })
+        .then(() => {
+          deleteCameraScene(groupRule.id).then((res) => {
+            this.$emit("delete-rule");
+            if (res && res.success) {
+              this.$notify({
+                type: "success",
+                message: "鍒犻櫎鎴愬姛",
+              });
+              _this.$root.$children[0].$children[0].querySearchAsync("camera");
+            } else {
+              this.$notify({
+                type: "error",
+                message: "鍒犻櫎澶辫触锛�",
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    cellStyle(obj) {
+      if (obj.column.label == "绛栫暐" || obj.column.label == "浜嬩欢澹伴煶") {
+        return "text-align:left;padding-left:8px;";
+      }
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+.scene-edit-container {
+  .scene-title {
+    height: 30px;
+    text-align: left;
+    margin: 10px 0px;
+  }
+  .flex-form {
+    display: flex;
+    width: 80%;
+    padding-left: 25px;
+    .left,
+    .right {
+      width: 43.3%;
+      min-width: 550px;
+      .el-form-item {
+        margin-bottom: 16px;
+      }
+      .el-form-item__label {
+        text-align: left;
+      }
+      .el-form-item__content {
+        text-align: left;
+        .el-input,
+        .el-select {
+          width: 400px !important;
+        }
+      }
+      textarea {
+        height: 92px;
+      }
+    }
+    .right {
+      padding-top: 6px;
+    }
+  }
+  .edit-rule-table {
+    .task-rules-table-box {
+      width: 98%;
+      padding: 0px;
+      box-sizing: border-box;
+    }
+    .el-form-item {
+      width: calc(100% - 30px);
+    }
+    .el-input__inner {
+      border: 0px !important;
+      border-radius: 2px;
+      padding: 0 22px;
+      background-color: transparent;
+    }
+
+    .el-input__suffix {
+      right: 8px;
+    }
+    span {
+      cursor: pointer;
+    }
+    .cell {
+      padding-left: 0 !important;
+      i {
+        outline: none !important;
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SdkBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/SdkBox.vue
new file mode 100644
index 0000000..1269354
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/SdkBox.vue
@@ -0,0 +1,91 @@
+<template>
+  <div class="SdkBox" v-drag>
+    <div class="title">绠楁硶浜嬩欢</div>
+    <div class="close iconfont" @click="close()">&#xe60f;</div>
+
+    <div class="sdkList scroll">
+      <img
+        v-for="(item, index) in this.TaskMange.list1"
+        :key="index"
+        :src="item.iconBlob"
+        alt=""
+        draggable="true"
+        @dragstart="dragstart(item)"
+        @dragend="dragleave"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+import bus from "@/plugin/bus";
+export default {
+  mounted() {
+    this.TaskMange.findAllSdk({ installed: true });
+  },
+  methods: {
+    close() {
+      this.$emit("close");
+    },
+    dragstart(data) {
+      this.$store.commit("setNewSdk", data);
+      bus.$emit("addSdk");
+      console.log(data);
+    },
+    dragleave() {
+      bus.$emit("dragleave");
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.SdkBox {
+  position: fixed;
+  top: 192px;
+  right: 44px;
+  width: 240px;
+  height: 534px;
+  background-color: #fff;
+  box-shadow: 0px 2px 16px 0px rgba(0, 43, 106, 0.25);
+  z-index: 2;
+
+  .title {
+    box-sizing: border-box;
+    padding: 20px;
+    height: 64px;
+    border-bottom: 1px solid #e9ebee;
+    font-size: 18px;
+    font-weight: 700;
+  }
+
+  .close {
+    position: absolute;
+    top: 20px;
+    right: 20px;
+    font-size: 12px;
+    color: #666;
+    cursor: pointer;
+  }
+
+  .sdkList {
+    overflow-y: auto;
+    box-sizing: border-box;
+    padding: 30px 10px 30px 20px;
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+    height: 470px;
+
+    img {
+      margin-bottom: 10px;
+      width: 60px;
+      height: 60px;
+
+      &:hover {
+        filter: drop-shadow(0px 4px 12px rgba(0, 51, 128, 0.18));
+      }
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
new file mode 100644
index 0000000..a5ec2ac
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox.vue
@@ -0,0 +1,971 @@
+<template>
+  <div class="SdkSettingBox">
+    <div class="title">閰嶇疆绠楁硶</div>
+    <div class="close iconfont" @click="close()">&#xe60f;</div>
+
+    <div class="content scroll">
+      <div class="top_line">
+        <div class="label">閫夋嫨鍖哄煙</div>
+        <el-select
+          v-model="sdkItem.polygonObj"
+          v-if="!isTemplate"
+          value-key="polygonId"
+          placeholder="閫夋嫨鍖哄煙"
+          @change="selectPolygonOption(sdkItem)"
+          class="h32"
+        >
+          <el-option
+            v-for="subitem in allPolygonData"
+            :key="subitem.id"
+            :label="subitem.name"
+            :value="subitem"
+            :title="subitem.name"
+          ></el-option>
+        </el-select>
+      </div>
+
+      <div v-for="(arg, index) in sdkItem.defaultArg" :key="arg.sort">
+        <div class="argums-item" v-show="arg.config.isShow">
+          <div class="arg-name">
+            <el-select
+              class="h32"
+              v-model="arg.name"
+              size="mini"
+              :disabled="true"
+            >
+              <el-option
+                :label="arg.name"
+                :title="arg.name"
+                :value="arg"
+              ></el-option>
+            </el-select>
+          </div>
+          <div class="operator-name">
+            <el-select
+              :disabled="arg.operators.length == 1"
+              v-model="arg.operator"
+              size="mini"
+              class="h32"
+            >
+              <el-option
+                v-for="operator in arg.operators"
+                :key="operator.operator"
+                :value="operator.operator"
+                :label="operator.name"
+                :title="operator.name"
+              ></el-option>
+            </el-select>
+          </div>
+          <div class="arg-val">
+            <div class="arg-content" v-if="arg.operator == 'range'">
+              <el-input
+                class="range-min"
+                v-model="arg.min"
+                @input="forceUpdate"
+                @blur="validateArgVal(arg, $event)"
+              ></el-input>
+              <span class="devide"></span>
+              <el-input
+                class="range-max"
+                v-model="arg.max"
+                @input="forceUpdate"
+                @blur="validateArgVal(arg, $event)"
+              ></el-input>
+              <span class="font">{{ arg.unit }}</span>
+            </div>
+            <div v-else class="arg-content">
+              <el-select
+                v-if="arg.type == 'option'"
+                v-model="arg.sdk_arg_value"
+                :multiple="arg.config.isMulti"
+                :class="{ multiple: arg.config.isMulti }"
+                @change="forceUpdate"
+                collapse-tags
+                size="mini"
+                class="h32"
+              >
+                <el-option
+                  v-for="one in arg.valueOptions"
+                  :key="one.value"
+                  :value="one.value"
+                  :label="one.name"
+                  :title="one.name"
+                ></el-option>
+              </el-select>
+
+              <el-input
+                v-if="arg.type == 'value'"
+                v-model="arg.sdk_arg_value"
+                :placeholder="arg.default_value ? arg.default_value : ''"
+                size="mini"
+                @input="forceUpdate"
+                @blur="validateArgVal(arg, $event)"
+              ></el-input>
+              <span class="font">{{ arg.unit }}</span>
+            </div>
+          </div>
+          <div
+            class="optional"
+            v-if="
+              sdkItem.initAddOptional && index == sdkItem.defaultArg.length - 1
+            "
+          >
+            <span class="btn" @click="addOptionalArg()">
+              <i class="iconfont addBtn">&#xe627;</i>
+            </span>
+          </div>
+        </div>
+      </div>
+
+      <div
+        class="argums-item optional-line"
+        v-for="optArgItem in sdkItem.optArg"
+        :key="optArgItem.sort"
+      >
+        <div class="arg-name">
+          <el-input
+            v-if="sdkItem.optNames.length == 1"
+            v-model="sdkItem.optNames[0].name"
+            size="mini"
+            :disabled="true"
+          ></el-input>
+          <el-select
+            v-if="sdkItem.optNames.length > 1"
+            v-model="optArgItem.name"
+            size="mini"
+            @change="selOptionalArg(optArgItem)"
+            class="h32"
+          >
+            <el-option
+              v-for="optName in sdkItem.optNames"
+              :disabled="optName.isSelected"
+              :key="optName.sort"
+              :label="optName.name"
+              :title="optName.name"
+              :value="optName.name"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="operator-name">
+          <el-select
+            :disabled="optArgItem.operators.length == 1"
+            v-model="optArgItem.operator"
+            size="mini"
+            class="h32"
+          >
+            <el-option
+              v-for="operatorItem in optArgItem.operators"
+              :key="operatorItem.operator"
+              :value="operatorItem.operator"
+              :label="operatorItem.name"
+              :title="operatorItem.name"
+            ></el-option>
+          </el-select>
+        </div>
+        <div class="arg-val">
+          <el-select
+            v-if="optArgItem.type == 'option'"
+            v-model="optArgItem.sdk_arg_value"
+            :multiple="optArgItem.config.isMulti"
+            collapse-tags
+            @change="forceUpdate"
+            size="mini"
+            class="h32"
+          >
+            <el-option
+              v-for="one in optArgItem.valueOptions"
+              :key="one.value"
+              :value="one.value"
+              :label="one.name"
+              :title="one.name"
+            ></el-option>
+          </el-select>
+          <el-input
+            v-if="optArgItem.type == 'value'"
+            v-model="optArgItem.sdk_arg_value"
+            size="mini"
+            @blur="($event) => validateArgVal(optArgItem, $event)"
+            @input="forceUpdate"
+          ></el-input>
+          <span class="font">{{ optArgItem.unit }}</span>
+        </div>
+        <div class="optional">
+          <span
+            class="btn"
+            @click="addOptionalArg()"
+            v-show="sdkItem.isAddable"
+          >
+            <i class="iconfont addBtn">&#xe627;</i>
+          </span>
+          <span class="btn" @click="delOptionalArg(optArgItem)">
+            <i class="iconfont delBtn">&#xe62a;</i>
+          </span>
+        </div>
+      </div>
+    </div>
+
+    <div class="btns">
+      <div class="cancelBtn button" @click="close">鍙栨秷</div>
+      <div class="confirmBtn button" @click="save">娣诲姞</div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    Cameras: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    isTemplate: {
+      type: Boolean,
+      default: false,
+    },
+    isLinkRule: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  created() {
+    this.initOption();
+    this.initPolygon();
+  },
+  data() {
+    return {
+      sdkItem: {
+        polygonObj: {},
+        is_save_anyhow: true,
+        isSpread: true,
+        argDef: [],
+        initAddOptional: false,
+        defaultArg: [],
+        optionalArg: [],
+        optArg: [],
+        optNames: [],
+        isAddable: true,
+      },
+      allPolygonData: [],
+    };
+  },
+  methods: {
+    selectPolygonOption(rule) {
+      rule.polygon_id = rule.polygonObj.polygonId
+        ? rule.polygonObj.polygonId
+        : rule.polygon_id;
+      rule.camera_id = rule.polygonObj.cameraId
+        ? rule.polygonObj.cameraId
+        : rule.camera_id;
+      rule.group_id = this.group_id;
+    },
+    close() {
+      this.$emit("close");
+    },
+    initOption() {
+      let sdkItem = this.$store.state.newSdk;
+      sdkItem.argDef = JSON.parse(sdkItem.argDef);
+      //鍙栧嚭榛樿鍙傛暟
+      sdkItem.defaultArg = sdkItem.argDef.filter(
+        (arg) => !arg.config.isOptional
+      );
+      //璧嬮粯璁perator/鍊�
+      sdkItem.defaultArg.forEach((arg) => {
+        if (arg.operators.length == 1) {
+          this.$set(arg, "operator", arg.operators[0].operator);
+
+          if (arg.operators[0].operator == "range") {
+            //鍖洪棿鍊肩殑澶勭悊
+          }
+        }
+
+        if (arg.type == "option") {
+          this.setOptArgValueOptions(arg);
+        }
+        if (arg.default_value) {
+          this.$set(arg, "sdk_arg_value", arg.default_value);
+        }
+      });
+      sdkItem.defaultArg;
+      //鍙栧嚭鍙�夊弬鏁�
+      sdkItem.optionalArg = sdkItem.argDef.filter(
+        (arg) => arg.config.isOptional
+      );
+      sdkItem.optNames = sdkItem.optionalArg.map((arg) => ({
+        name: arg.name,
+        sort: arg.sort,
+        isSelected: false,
+      }));
+
+      sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false;
+      sdkItem.optArg = [];
+
+      this.sdkItem = sdkItem;
+    },
+    initPolygon() {
+      let polygon = [];
+      let cameras = [...this.Cameras];
+
+      for (let i = 0; i < cameras.length; i++) {
+        let polyOpt = cameras[i].polygonData.map((p) => {
+          return {
+            defence_state: p.defence_state,
+            polygonId: p.id,
+            name: this.isLinkRule
+              ? cameras[i].cameraName + ":" + p.name
+              : p.name,
+
+            cameraId: cameras[i].cameraId,
+          };
+        });
+        polygon = polygon.concat(polyOpt);
+
+        this.allPolygonData = polygon;
+      }
+    },
+
+    validateArgVal(sdkArgItem, e) {
+      console.log(sdkArgItem);
+      if (
+        typeof sdkArgItem.sdk_arg_value == "string" &&
+        sdkArgItem.sdk_arg_value == ""
+      ) {
+        this.$notify({
+          type: "warning",
+          message: "鍙傛暟璁惧畾鍊间笉鑳戒负绌�!",
+        });
+        sdkArgItem.valid = false;
+
+        return false;
+      }
+      //杈撳叆闈炴暟瀛�
+
+      //鑼冨洿鏄惁鍚堟硶
+      if (sdkArgItem.range) {
+        let leftHand = sdkArgItem.range.substr(0, 1);
+        let rightHand = sdkArgItem.range.substr(sdkArgItem.range.length - 1, 1);
+        let reg = /.*(\d+),(\d+).*/;
+        let res = sdkArgItem.range.match(reg);
+        let min = Number(res[1]),
+          max = Number(res[2]);
+
+        //鍒ゆ柇闈炲尯闂寸被
+        if (sdkArgItem.sdk_arg_value && sdkArgItem.operator != "range") {
+          if (leftHand == "(" && rightHand == ")") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) <= min ||
+              Number(sdkArgItem.sdk_arg_value) >= max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == ")") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) < min ||
+              Number(sdkArgItem.sdk_arg_value) >= max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "(" && rightHand == "]") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) <= min ||
+              Number(sdkArgItem.sdk_arg_value) > max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == "]") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) < min ||
+              Number(sdkArgItem.sdk_arg_value) > max
+            ) {
+              sdkArgItem.valid = false;
+              this.showErrorColor(e);
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          }
+        } else if (sdkArgItem.min || sdkArgItem.max) {
+          //鍒ゆ柇鍖洪棿绫�
+          if (leftHand == "(" && rightHand == ")") {
+            if (
+              Number(sdkArgItem.min) <= min ||
+              Number(sdkArgItem.min) >= max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == ")") {
+            if (Number(sdkArgItem.min) < min || Number(sdkArgItem.max) >= max) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "(" && rightHand == "]") {
+            if (Number(sdkArgItem.min) <= min || Number(sdkArgItem.max) > max) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == "]") {
+            if (
+              Number(sdkArgItem.min) < min ||
+              Number(sdkArgItem.max) > max ||
+              Number(sdkArgItem.min) > max ||
+              Number(sdkArgItem.max) < min
+            ) {
+              sdkArgItem.valid = false;
+              //    this.showErrorColor(e);
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          }
+        }
+      }
+      e.currentTarget.style.borderColor = "";
+      return true;
+    },
+
+    addOptionalArg() {
+      this.sdkItem.initAddOptional = false;
+      this.sdkItem.optArg.forEach((arg) => {
+        this.sdkItem.optNames.forEach((name) => {
+          if (arg.sort == name.sort) {
+            name.isSelected = true;
+          }
+        });
+      }); //鎵惧埌鍙�塻dkItem.optNames鐨勭涓�涓搴旂殑sdkItem.optionalArg聽push鍒皊dkItem.optArg
+      let oneNotSelected = this.sdkItem.optNames.find(
+        (name) => !name.isSelected
+      );
+      if (oneNotSelected) {
+        oneNotSelected.isSelected = true;
+      }
+
+      let argTemp = this.sdkItem.optionalArg.find((arg) => {
+        return arg.sort == oneNotSelected.sort;
+      });
+
+      let copyArgTemp = JSON.parse(JSON.stringify(argTemp));
+      if (copyArgTemp.type == "option") {
+        this.setOptArgValueOptions(copyArgTemp);
+      }
+      //榛樿閫変腑绗竴涓猳perator
+      //if (copyArgTemp.operators.length == 1) {
+      this.$set(copyArgTemp, "operator", copyArgTemp.operators[0].operator);
+      //}
+
+      if (copyArgTemp.default_value) {
+        this.$set(copyArgTemp, "sdk_arg_value", copyArgTemp.default_value);
+      }
+
+      this.sdkItem.optArg.push(copyArgTemp);
+      this.$forceUpdate();
+
+      if (this.sdkItem.optArg.length < this.sdkItem.optionalArg.length) {
+        this.sdkItem.isAddable = true;
+      } else {
+        this.sdkItem.isAddable = false;
+      }
+    },
+
+    selOptionalArg(optArgItem) {
+      let newSort = 0;
+      this.sdkItem.optNames.forEach((name) => {
+        if (name.name == optArgItem.name) {
+          //鏂板垏鎹㈢殑鍙傛暟鍚�
+          name.isSelected = true;
+          newSort = name.sort;
+        } else if (name.sort == optArgItem.sort) {
+          //鍒囨崲鍓嶇殑鍙傛暟鍚�
+          name.isSelected = false;
+        }
+      });
+      //鏍规嵁鏂扮殑鍙傛暟sort鎵惧埌鍏跺搴旈厤缃璞�
+      let argObj = this.sdkItem.optionalArg.find((arg) => arg.sort == newSort);
+      if (argObj.type == "option") {
+        this.setOptArgValueOptions(argObj);
+      }
+      //榛樿閫変腑绗竴涓猳perator
+      //if (argObj.operators.length == 1) {
+      this.$set(argObj, "operator", argObj.operators[0].operator);
+      //}
+      //鏇挎崲鏂扮殑鍙傛暟閰嶇疆瀵硅薄
+      this.sdkItem.optArg.forEach((arg, index) => {
+        if (arg.sort == optArgItem.sort) {
+          this.$set(
+            this.sdkItem.optArg,
+            index,
+            JSON.parse(JSON.stringify(argObj))
+          );
+        }
+      });
+    },
+
+    delOptionalArg(optArgItem) {
+      let index = this.sdkItem.optArg.findIndex(
+        (arg) => arg.sort == optArgItem.sort
+      );
+      this.sdkItem.optArg.splice(index, 1);
+      this.sdkItem.optNames.forEach((name) => {
+        if (name.sort == optArgItem.sort) {
+          name.isSelected = false;
+        }
+      });
+      this.sdkItem.initAddOptional =
+        this.sdkItem.optArg.length == 0 ? true : false;
+      if (this.sdkItem.optArg.length < this.sdkItem.optionalArg.length) {
+        this.sdkItem.isAddable = true;
+      } else {
+        this.sdkItem.isAddable = false;
+      }
+      this.$forceUpdate();
+    },
+
+    setOptArgValueOptions(optArg) {
+      let alias = optArg.alias;
+      optArg.valueOptions = this.VideoManageData.Dictionary[alias].map((r) => {
+        return {
+          name: r.name,
+          value: r.value,
+        };
+      });
+    },
+
+    forceUpdate() {
+      console.log(1);
+      this.$forceUpdate();
+    },
+
+    save() {
+      let warn = false;
+
+      //澶嶅埗绠楁硶鏃舵娴嬪尯鍩熶笉鑳戒负绌�
+      if (!this.sdkItem.polygon_id) {
+        console.log(1);
+        warn = true;
+      }
+
+      //澶勭悊鏈睍绀虹殑鍙傛暟鐨勫��
+      this.sdkItem.defaultArg.forEach((arg) => {
+        if (!arg.config.isShow) {
+          arg.sdk_arg_value = arg.default_value;
+        }
+      });
+      //琛ㄥ崟鎻愪氦鍓嶆牎楠�:鎵�鏈夌畻娉曠殑鍙傛暟鍊间笉鑳戒负绌�,(鏈塺ange鐨�,瑕佸湪range鑼冨洿鍐�)澶辩劍鏃舵牎楠�
+      let defaultArgFlag = this.sdkItem.defaultArg.find((arg) => {
+        if (arg.sdk_arg_value instanceof Array) {
+          if (arg.sdk_arg_value.length == 0) {
+            return arg;
+          }
+        } else if (!arg.sdk_arg_value) {
+          return arg;
+        }
+      });
+      if (defaultArgFlag) {
+        warn = true;
+      }
+      //鏌ユ壘鍙�夊弬鏁板�兼槸鍚﹂兘璁剧疆(澶氶�夊�间负鏁扮粍绫诲瀷)
+      let optionalArgFlag = this.sdkItem.optArg.find((arg) => {
+        if (arg.sdk_arg_value instanceof Array) {
+          if (arg.sdk_arg_value.length == 0) {
+            return arg;
+          }
+        } else {
+          //鍖洪棿绫诲弬鏁板�兼渶灏�,鏈�澶у�兼槸鍚﹂兘璁剧疆
+          if (arg.operator == "range") {
+            if (!arg.min.trim() && arg.max.trim()) {
+              return arg;
+            }
+          }
+          if (!arg.sdk_arg_value) {
+            return arg;
+          }
+        }
+      });
+
+      if (optionalArgFlag) {
+        warn = true;
+      }
+
+      //鏍¢獙鍖洪棿宸︿晶鍊兼槸鍚﹀皬浜庡彸渚у��
+      let rangeArg = this.sdkItem.defaultArg.find(
+        (arg) => arg.operator == "range"
+      );
+      if (rangeArg) {
+        if (Number(rangeArg.max) <= Number(rangeArg.min)) {
+          warn = true;
+        }
+      }
+
+      if (warn) {
+        this.$notify({
+          type: "error",
+          message: "绠楁硶鍙傛暟鏈夎,璇峰畬鍠勫悗鍐嶄繚瀛�",
+        });
+        return false;
+      }
+
+      console.log(this.sdkItem);
+
+      let tempObj = {
+        sdk_id: this.sdkItem.id,
+        camera_id: this.sdkItem.camera_id,
+        group_id: "",
+        is_save_anyhow: this.sdkItem.is_save_anyhow,
+        polygon_id: this.sdkItem.polygon_id,
+        rule_with_pre: this.sdkItem.rule_with_pre,
+        sdk_set: [],
+      };
+
+      let defaultArgs = this.sdkItem.defaultArg.map((arg) => ({
+        operator: arg.operator,
+        operator_type: arg.type,
+        sdk_arg_alias: arg.alias,
+        sdk_arg_value: arg.sdk_arg_value,
+        sort: arg.sort,
+      }));
+
+      let defaultArgDesc = "( ";
+      this.sdkItem.defaultArg.forEach((arg) => {
+        //涓嶆樉绀洪殣钘忕殑鍙傛暟閰嶇疆
+        if (!arg.config.isShow) {
+          return;
+        }
+        let val = "";
+        //澶勭悊涓嬫媺閫夊�肩被鍨�
+        if (arg.type == "option") {
+          if (arg.sdk_arg_value instanceof Array) {
+            //澶氶�夊��
+            let multiNames = "";
+            arg.sdk_arg_value.forEach((val) => {
+              let opV = arg.valueOptions.find((opt) => opt.value == val);
+              multiNames += opV.name + " ";
+            });
+            val = multiNames;
+          } else {
+            let res = arg.valueOptions.find(
+              (opt) => opt.value == arg.sdk_arg_value
+            );
+            val = res.name;
+          }
+        }
+        if (arg.operator == "range") {
+          let valRange = "";
+
+          valRange = arg.sdk_arg_value.replace(",", "-");
+          defaultArgDesc += `${arg.name}${arg.operators[0].name}${valRange}${
+            arg.unit || ""
+          }, `;
+        } else {
+          defaultArgDesc += `${arg.name}${arg.operators[0].name}${
+            arg.type == "option" ? val : arg.sdk_arg_value
+          }${arg.unit || ""}, `;
+        }
+      });
+      defaultArgDesc = defaultArgDesc.substring(0, defaultArgDesc.length - 2);
+
+      //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-3)+defaultArgDesc.substring(defaultArgDesc.length-1,defaultArgDesc.length);
+      //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-1);
+
+      //澶勭悊鍙�夐」鍙傛暟
+
+      let optArgs = this.sdkItem.optArg.map((arg) => ({
+        operator: arg.operator,
+        operator_type: arg.type,
+        sdk_arg_alias: arg.alias,
+        sdk_arg_value: arg.sdk_arg_value,
+        sort: arg.sort,
+      }));
+      //灏嗗閫夐」鐨勫�兼嫾鎴愬瓧绗︿覆
+      optArgs.forEach((one) => {
+        if (one.sdk_arg_value instanceof Array) {
+          one.sdk_arg_value = one.sdk_arg_value.join();
+        }
+      });
+      let optArgDesc = " ";
+      this.sdkItem.optArg.forEach((arg) => {
+        let val = "";
+        let valRange = "";
+
+        //澶勭悊涓嬫媺閫夊�肩被鍨�
+        if (arg.type == "option") {
+          if (arg.sdk_arg_value instanceof Array) {
+            //澶氶�夊��
+            let multiNames = "";
+            arg.sdk_arg_value.forEach((val) => {
+              let opV = arg.valueOptions.find((opt) => opt.value == val);
+              multiNames += opV.name + " ";
+            });
+            val = multiNames;
+          } else {
+            let res = arg.valueOptions.find(
+              (opt) => opt.value == arg.sdk_arg_value
+            );
+
+            val = res.name;
+          }
+        }
+
+        let operatorSelected = arg.operators.find(
+          (opr) => opr.operator == arg.operator
+        );
+        optArgDesc += `,${arg.name}${operatorSelected.name}${
+          arg.type == "option" ? val : arg.sdk_arg_value
+        }${arg.unit || ""}, `;
+      });
+      //灏嗗閫夐」鐨勫�兼嫾鎴愬瓧绗︿覆
+      defaultArgs.forEach((one) => {
+        if (one.sdk_arg_value instanceof Array) {
+          one.sdk_arg_value = one.sdk_arg_value.join();
+        }
+      });
+      optArgDesc =
+        optArgDesc.substring(0, optArgDesc.length - 2) +
+        optArgDesc.substring(optArgDesc.length - 1, optArgDesc.length);
+      optArgDesc += ")";
+      tempObj.sdk_set = defaultArgs.concat(optArgs);
+      tempObj.icon_blob = this.$store.state.newSdk.iconBlob;
+
+      this.$emit("getNewSdk", tempObj);
+    },
+  },
+  watch: {
+    sdkItem: {
+      handler(newVal) {
+        let rangeOne = newVal.defaultArg.find(
+          (arg) => arg.operators[0].operator == "range"
+        );
+        if (rangeOne) {
+          if (
+            rangeOne.min &&
+            rangeOne.max &&
+            rangeOne.min.trim() &&
+            rangeOne.max.trim()
+          ) {
+            rangeOne.sdk_arg_value = rangeOne.min + "|" + rangeOne.max;
+          } else {
+            rangeOne.sdk_arg_value = false;
+          }
+        }
+      },
+      deep: true,
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.SdkSettingBox {
+  position: fixed;
+  top: 50%;
+  right: 50%;
+  margin-top: -312px;
+  margin-right: -331px;
+  width: 662px;
+  height: 624px;
+  background-color: #fff;
+  box-shadow: 0px 2px 16px 0px rgba(0, 43, 106, 0.25);
+  z-index: 2;
+
+  .title {
+    box-sizing: border-box;
+    padding: 20px;
+    height: 64px;
+    border-bottom: 1px solid #e9ebee;
+    font-size: 18px;
+    font-weight: 700;
+  }
+
+  .close {
+    position: absolute;
+    top: 20px;
+    right: 20px;
+    font-size: 12px;
+    color: #666;
+    cursor: pointer;
+  }
+
+  .content {
+    overflow: auto;
+    margin: 0 20px;
+    height: 490px;
+    border-bottom: 1px solid #e9ebee;
+
+    .el-select.multiple.h32 {
+      width: 162px;
+    }
+
+    .top_line {
+      margin: 30px 0;
+      display: flex;
+      align-items: center;
+
+      .label {
+        margin-right: 20px;
+        font-size: 14px;
+        color: #666666;
+      }
+
+      .el-select {
+        width: 284px;
+      }
+    }
+
+    .argums-item {
+      margin-bottom: 24px;
+      display: flex;
+
+      .arg-name {
+        margin-right: 20px;
+        width: 240px;
+      }
+
+      .operator-name {
+        margin-right: 20px;
+        width: 100px;
+      }
+
+      .font {
+        margin-left: 4px;
+        margin-right: 9px;
+      }
+
+      .addBtn {
+        line-height: 32px;
+        font-size: 16px;
+        margin-left: 8px;
+        color: #0064ff;
+        cursor: pointer;
+      }
+
+      .delBtn {
+        line-height: 32px;
+        font-size: 16px;
+        margin-left: 8px;
+        color: rgb(255, 75, 51);
+        cursor: pointer;
+      }
+    }
+
+    .arg-val {
+      display: flex;
+      align-items: center;
+      .arg-content {
+        display: flex;
+        align-items: center;
+
+        .devide {
+          display: inline-block;
+          width: 8px;
+          height: 1px;
+          background: #c5c5c5;
+          vertical-align: top;
+          margin: 0 8px;
+        }
+      }
+
+      .el-input ::v-deep {
+        width: 50px;
+        height: 32px;
+
+        input {
+          width: 50px;
+          height: 32px;
+        }
+      }
+
+      .el-select {
+        width: 68px;
+      }
+
+      .font {
+        margin-left: 4px;
+        margin-right: 9px;
+      }
+    }
+
+    .el-select,
+    .el-input {
+      ::v-deep input {
+        border-radius: 3px;
+      }
+    }
+
+    .el-select ::v-deep .el-input.is-disabled {
+      .el-input__inner {
+        background-color: #e9ebee;
+        border: 1px solid #c0c5cc;
+      }
+    }
+  }
+
+  .btns {
+    position: absolute;
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    height: 72px;
+    text-align: center;
+    line-height: 32px;
+
+    .cancelBtn {
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0064ff;
+      font-size: 14px;
+      color: #0064ff;
+    }
+
+    .confirmBtn {
+      margin-left: 10px;
+      margin-right: 20px;
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0064ff;
+      font-size: 14px;
+      color: #fff;
+      background-color: #0064ff;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue b/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue
new file mode 100644
index 0000000..166d1cc
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/TimeSlider.vue
@@ -0,0 +1,504 @@
+<template>
+  <div class="sub-time-box" v-if="false">
+    <div class="btn-control">
+      <div class="el-tabs-edit">
+        <span
+          v-if="!editSlider"
+          class="add-btn"
+          @click="handleTabsEdit('', 'edit')"
+        >
+          <i class="el-icon-edit"></i>
+          缂栬緫
+        </span>
+        <span v-else class="add-btn" @click="handleTabsEdit('', 'lock')">
+          <i class="el-icon-lock"></i>
+          閿佸畾
+        </span>
+      </div>
+      <div class="el-tabs-add">
+        <span class="add-btn" @click="handleTabsEdit('', 'add')">
+          <i class="iconfont iconhebingxingzhuang"></i>
+          鏂板
+        </span>
+      </div>
+    </div>
+    <el-tabs
+      v-model="activeTab"
+      type="border-card"
+      editable
+      @edit="handleTabsEdit"
+    >
+      <el-tab-pane
+        v-for="item in VideoManageData.TimeRules"
+        :key="item.id"
+        :name="item.id"
+      >
+        <span slot="label" @click="tabClick(item)" style="width: 100px">{{
+          item.name
+        }}</span>
+        <multi-range-slider
+          :timeData="JSON.parse(item.time_rule)"
+          :mainId="`${item.id}_${type}`"
+          :itemId="item.id"
+          :itemName="item.name"
+          :edit="editSlider"
+          @range-update="updateTimeRule"
+        ></multi-range-slider>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+
+  <div class="TimeSlider" v-else>
+    <div class="title">鏃堕棿娈�</div>
+    <div class="close iconfont" @click="close()">&#xe60f;</div>
+
+    <div class="swiperArea">
+      <swiper :options="swiperOption">
+        <swiper-slide
+          v-for="item in VideoManageData.TimeRules"
+          :key="item.id"
+          :class="{ active: activeTabObj.id === item.id }"
+        >
+          <div class="tab" @click="chooseTab(item)">
+            {{ item.name }}
+          </div>
+          <div class="iconfont del" @click="handleTabsEdit(item.id, 'remove')">
+            &#xe60f;
+          </div>
+        </swiper-slide>
+      </swiper>
+      <div class="swiper-pre-border">
+        <div class="icon-btn" slot="button-prev">
+          <i class="iconfont">&#xe618;</i>
+        </div>
+      </div>
+      <div class="swiper-next-border">
+        <div class="icon-btn" slot="button-next">
+          <i class="iconfont">&#xe623;</i>
+        </div>
+      </div>
+    </div>
+    <div class="control">
+      <div class="button editBtn" @click="edit = !edit">
+        {{ edit ? "閿佸畾" : "缂栬緫" }}
+      </div>
+      <div class="button addBtn" @click="handleTabsEdit('', 'add')">
+        鏂板鏃堕棿娈�
+      </div>
+    </div>
+
+    <div class="sliderArea" v-if="activeTabObj">
+      <TimeSliderItem
+        v-for="(item, index) in activeTabObj.time_rule"
+        :key="index"
+        :Timedata="item"
+        v-model="item.time_range"
+        :day="item.day - 1"
+        :edit="edit"
+      >
+      </TimeSliderItem>
+    </div>
+
+    <div class="btns">
+      <div class="cancelBtn button" @click="close">鍙栨秷</div>
+      <div class="confirmBtn button" @click="save">纭畾</div>
+    </div>
+  </div>
+</template>
+
+<script>
+import TimeSliderItem from "@/views/hashrate/CameraManage/CameraRules/components/TimeSliderItem";
+import MultiRangeSlider from "@/components/subComponents/MultiRangeSlider";
+import { saveTimeRule, deleteTimeRule } from "@/api/timeRule";
+
+export default {
+  name: "TimeSlider",
+  components: {
+    MultiRangeSlider,
+    TimeSliderItem,
+  },
+  props: {
+    type: {
+      default: "",
+      type: String,
+    },
+  },
+  data() {
+    return {
+      activeTabObj: {},
+      edit: false,
+
+      editSlider: false,
+      activeTab: "",
+      activeIndex: 0,
+      cavasLength: 800,
+      allDay: [
+        { day: 1, time_range: [{ start: "00:00", end: "24:00" }] },
+        { day: 2, time_range: [{ start: "00:00", end: "24:00" }] },
+        { day: 3, time_range: [{ start: "00:00", end: "24:00" }] },
+        { day: 4, time_range: [{ start: "00:00", end: "24:00" }] },
+        { day: 5, time_range: [{ start: "00:00", end: "24:00" }] },
+        { day: 6, time_range: [{ start: "00:00", end: "24:00" }] },
+        { day: 7, time_range: [{ start: "00:00", end: "24:00" }] },
+      ],
+      isAdding: false,
+      swiperOption: {
+        slidesPerView: 6,
+        spaceBetween: 0,
+        pagination: {
+          el: ".swiper-pagination",
+          clickable: true,
+        },
+        navigation: {
+          nextEl: ".swiper-next-border",
+          prevEl: ".swiper-pre-border",
+        },
+        observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+        observeParents: true, //淇敼swiper鐨勭埗鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+      },
+    };
+  },
+  created() {
+    this.activeTabObj = this.VideoManageData.TimeRules && {
+      id: this.VideoManageData.TimeRules[0].id,
+      name: this.VideoManageData.TimeRules[0].name,
+      time_rule: JSON.parse(this.VideoManageData.TimeRules[0].time_rule),
+    };
+  },
+  methods: {
+    chooseTab(data) {
+      this.activeTabObj = {};
+
+      this.$nextTick(() => {
+        this.activeTabObj = {
+          id: data.id,
+          name: data.name,
+          time_rule: JSON.parse(data.time_rule),
+        };
+      });
+    },
+
+    handleTabsEdit(tabId, action) {
+      let tabs = this.VideoManageData.TimeRules;
+      if (action === "add") {
+        if (this.isAdding) {
+          return;
+        } else {
+          this.isAdding = true;
+          let newRule = {
+            id: "",
+            name: "鏃堕棿娈�" + this.VideoManageData.TimeRules.length,
+            time_rule: this.allDay,
+          };
+          this.activeTabObj = {};
+          saveTimeRule(newRule)
+            .then(async (rsp) => {
+              if (rsp && rsp.success) {
+                this.$notify({
+                  type: "success",
+                  message: "鏂板鎴愬姛",
+                });
+                await this.VideoManageData.getTimeRule();
+                this.activeTabObj = {};
+                this.activeTabObj = {
+                  id: this.VideoManageData.TimeRules[
+                    this.VideoManageData.TimeRules.length - 1
+                  ].id,
+                  name: this.VideoManageData.TimeRules[
+                    this.VideoManageData.TimeRules.length - 1
+                  ].name,
+                  time_rule: JSON.parse(
+                    this.VideoManageData.TimeRules[
+                      this.VideoManageData.TimeRules.length - 1
+                    ].time_rule
+                  ),
+                };
+              }
+              this.isAdding = false;
+            })
+            .catch(() => {
+              this.$notify({
+                type: "warning",
+                message: rsp.msg,
+              });
+              this.isAdding = false;
+            });
+        }
+      }
+      if (action === "remove") {
+        if (this.VideoManageData.TimeRules.length == 1) {
+          this.$notify({
+            title: "璀﹀憡",
+            message: "姝ゆ椂闂存姝e湪浣跨敤涓紝鏃犳硶鍒犻櫎锛�",
+            type: "warning",
+          });
+
+          return;
+        }
+
+        this.$confirm(
+          "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鍒�, 鎵�鍏宠仈鐨勪换鍔″皢浼氬け鏁堬紝鏄惁缁х画?",
+          {
+            center: true,
+            confirmButtonText: "纭畾",
+            cancelButtonText: "鍙栨秷",
+          }
+        )
+          .then(() => {
+            deleteTimeRule({ id: tabId }).then((rsp) => {
+              if (rsp && rsp.success) {
+                this.VideoManageData.getTimeRule();
+                // this.VideoManageData.TimeRules.splice(2, 1)
+                this.activeTab = this.VideoManageData.TimeRules[0].id;
+                this.$notify({
+                  type: "success",
+                  message: "鍒犻櫎鎴愬姛!",
+                });
+              }
+            });
+          })
+          .catch(() => {});
+      }
+      if (action == "edit") {
+        this.editSlider = true;
+      }
+      if (action == "lock") {
+        this.editSlider = false;
+      }
+    },
+    windowSizeChange() {
+      let timeSlideWidth = document.querySelector(".sub-time-box").clientWidth;
+      this.cavasLength = timeSlideWidth;
+      console.log("鏃堕棿缁勪欢瀹藉害锛�", timeSlideWidth);
+    },
+    updateTimeRule(rule) {
+      saveTimeRule(rule)
+        .then(async (rsp) => {
+          if (rsp && rsp.success) {
+            await this.VideoManageData.getTimeRule();
+            this.isAdding = false;
+            this.activeTab = rsp.data.id;
+          } else {
+            this.isAdding = false;
+          }
+        })
+        .catch(() => {
+          this.isAdding = false;
+        });
+    },
+    tabClick(item) {
+      if (this.activeTab === item.id) {
+        this.$prompt("", "淇敼鍚嶇О", {
+          confirmButtonText: "纭畾",
+          cancelButtonText: "鍙栨秷",
+          inputValue: item.name,
+          inputPattern: /^[\S]{1,16}$/,
+          inputErrorMessage: "鍚嶇О涓嶈兘鍖呭惈绌烘牸",
+        })
+          .then(({ value }) => {
+            this.updateTimeRule({
+              id: item.id,
+              name: value,
+              time_rule: JSON.parse(item.time_rule),
+            });
+            this.$notify({
+              type: "success",
+              message: "鏃堕棿瑙勫垯鍚嶇О淇敼鎴愬姛",
+            });
+          })
+          .catch(() => {});
+      }
+    },
+    close() {
+      this.$emit("close");
+    },
+    save() {
+      saveTimeRule(this.activeTabObj)
+        .then(async (rsp) => {
+          if (rsp && rsp.success) {
+            this.$notify({
+              type: "success",
+              message: "淇濆瓨鎴愬姛",
+            });
+            await this.VideoManageData.getTimeRule();
+          }
+          this.isAdding = false;
+        })
+        .catch(() => {
+          this.$notify({
+            type: "warning",
+            message: rsp.msg,
+          });
+          this.isAdding = false;
+        });
+    },
+  },
+};
+</script>
+<style lang='scss' scoped>
+.TimeSlider {
+  position: relative;
+  position: fixed;
+  top: 50%;
+  left: 50%;
+  margin-top: -430px;
+  margin-left: -400px;
+  width: 800px;
+  height: 860px;
+  background-color: #fff;
+  z-index: 2;
+
+  .title {
+    box-sizing: border-box;
+    padding: 20px;
+    height: 64px;
+    border-bottom: 1px solid #e9ebee;
+    font-size: 18px;
+    font-weight: 700;
+  }
+
+  .close {
+    position: absolute;
+    top: 20px;
+    right: 20px;
+    font-size: 12px;
+    color: #666;
+    cursor: pointer;
+  }
+
+  .control {
+    box-sizing: border-box;
+    padding: 0 20px;
+    margin-top: 20px;
+    display: flex;
+    justify-content: end;
+    text-align: center;
+    line-height: 32px;
+    font-size: 14px;
+
+    .editBtn {
+      margin-right: 10px;
+      width: 60px;
+      height: 32px;
+      color: #fff;
+      background: #0064ff;
+    }
+
+    .addBtn {
+      box-sizing: border-box;
+      width: 102px;
+      height: 32px;
+      color: #0064ff;
+      border: 1px solid #0064ff;
+    }
+  }
+
+  .swiperArea {
+    position: relative;
+    margin: 20px 60px;
+
+    .swiper-slide {
+      display: flex;
+      align-items: center;
+      height: 46px;
+      border-bottom: 1px solid #e9ebee;
+
+      &.active {
+        .tab {
+          color: #0064ff;
+        }
+        border-bottom: 2px solid #0064ff;
+      }
+
+      .tab {
+        margin: 0 12px 0 24px;
+        font-size: 14px;
+        color: #666;
+        cursor: pointer;
+      }
+
+      .iconfont {
+        font-size: 12px;
+        color: #dbdbdb;
+      }
+    }
+
+    .swiper-pre-border {
+      position: absolute;
+      padding-bottom: 13px;
+      padding-right: 18px;
+      top: 16px;
+      left: -34px;
+      cursor: pointer;
+      border-bottom: 1px solid #e9ebee;
+
+      i {
+        font-size: 16px;
+        color: rgb(229, 229, 229);
+      }
+    }
+
+    .swiper-next-border {
+      position: absolute;
+      top: 16px;
+      right: -34px;
+      padding-bottom: 13px;
+      padding-left: 18px;
+      cursor: pointer;
+      border-bottom: 1px solid #e9ebee;
+
+      i {
+        font-size: 16px;
+        color: rgb(229, 229, 229);
+      }
+    }
+
+    .swiper-button-disabled {
+      cursor: not-allowed;
+      i {
+        color: rgb(245, 245, 245);
+      }
+    }
+
+    .del {
+      cursor: pointer;
+    }
+  }
+
+  .btns {
+    position: absolute;
+    display: flex;
+    justify-content: end;
+    align-items: center;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    height: 72px;
+    border-top: 1px solid #e9ebee;
+    text-align: center;
+    line-height: 32px;
+
+    .cancelBtn {
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0064ff;
+      font-size: 14px;
+      color: #0064ff;
+    }
+
+    .confirmBtn {
+      margin-left: 10px;
+      margin-right: 20px;
+      width: 60px;
+      height: 32px;
+      border: 1px solid #0064ff;
+      font-size: 14px;
+      color: #fff;
+      background-color: #0064ff;
+    }
+  }
+}
+</style>
+
+<style lang="scss">
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/TimeSliderItem.vue b/src/views/hashrate/CameraManage/CameraRules/components/TimeSliderItem.vue
new file mode 100644
index 0000000..6e3b2b4
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/TimeSliderItem.vue
@@ -0,0 +1,246 @@
+<template>
+  <div class="TimeSliderItem">
+    <div class="week">{{ weekArr[day] }}</div>
+    <el-slider
+      v-model="minuteRange"
+      range
+      :max="1439"
+      :format-tooltip="transToTime"
+      height="40"
+      :marks="marks"
+      :disabled="!edit"
+      @change="sliderChange"
+    >
+    </el-slider>
+    <div class="label">寮�濮�</div>
+    <el-time-picker
+      v-model="timeRange[0]"
+      placeholder=""
+      align="center"
+      format="HH:mm"
+      value-format="HH:mm"
+      @change="pickChange"
+      :disabled="!edit"
+      popper-class="timePick"
+    >
+    </el-time-picker>
+    <div class="label">缁撴潫</div>
+    <el-time-picker
+      v-model="timeRange[1]"
+      placeholder=""
+      align="center"
+      format="HH:mm"
+      value-format="HH:mm"
+      @change="pickChange"
+      :disabled="!edit"
+      popper-class="timePick"
+    >
+    </el-time-picker>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    Timedata: {},
+    day: {},
+    edit: {},
+  },
+  model: {
+    prop: "Timedata",
+    event: "updateTime",
+  },
+
+  created() {
+    this.initTime();
+  },
+  data() {
+    return {
+      minuteRange: [0, 0],
+      timeRange: ["00:00", "23:59"],
+      weekArr: [
+        "鏄熸湡涓�",
+        "鏄熸湡浜�",
+        "鏄熸湡涓�",
+        "鏄熸湡鍥�",
+        "鏄熸湡浜�",
+        "鏄熸湡鍏�",
+        "鏄熸湡鏃�",
+      ],
+      marks: {
+        0: "0",
+        360: "6",
+        720: "12",
+        1080: "18",
+        1439: "24",
+      },
+    };
+  },
+  methods: {
+    initTime() {
+      if (this.Timedata[0].end === "24:00") {
+        this.Timedata[0].end = "23:59";
+      }
+
+      let start = this.transToMiunte(this.Timedata[0].start);
+      let end = this.transToMiunte(this.Timedata[0].end);
+
+      this.timeRange = [this.Timedata[0].start, this.Timedata[0].end];
+      this.minuteRange = [start, end];
+    },
+    //鍒嗛挓鏁拌浆鏃堕棿
+    transToTime(value) {
+      let minute = parseInt(value % 60);
+      let hour = parseInt(value / 60);
+
+      if (minute < 10) {
+        minute = "0" + minute;
+      }
+      if (hour < 10) {
+        hour = "0" + hour;
+      }
+      let result = hour + ":" + minute;
+      return result;
+    },
+    //鏃堕棿杞垎閽熸暟
+    transToMiunte(arr) {
+      let hour = +arr.split(":")[0];
+      let minute = +arr.split(":")[1];
+      return hour * 60 + minute;
+    },
+    //婊戝姩缁勪欢鍥炶皟
+    sliderChange(value) {
+      let start = this.transToTime(value[0]);
+      let end = this.transToTime(value[1]);
+      this.timeRange = [start, end];
+
+      this.$emit("updateTime", [
+        {
+          start: this.timeRange[0],
+          end: this.timeRange[1],
+        },
+      ]);
+    },
+    pickChange() {
+      let start = this.transToMiunte(this.timeRange[0]);
+      let end = this.transToMiunte(this.timeRange[1]);
+      this.minuteRange = [start, end];
+
+      this.$emit("updateTime", [
+        {
+          start: this.timeRange[0],
+          end: this.timeRange[1],
+        },
+      ]);
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.TimeSliderItem {
+  margin-top: 44px;
+  box-sizing: border-box;
+  display: flex;
+  padding: 0 20px;
+  font-size: 14px;
+
+  .week {
+    margin-right: 10px;
+  }
+
+  .el-slider ::v-deep {
+    flex: 1;
+
+    .el-tooltip {
+      visibility: hidden;
+      margin-top: 14px;
+    }
+
+    .el-slider__stop {
+      display: none;
+    }
+
+    .el-slider__marks-text {
+      margin-top: 21px;
+      font-size: 12px;
+    }
+
+    .el-slider__runway {
+      margin: 0 0;
+      height: 20px;
+      border-radius: 0;
+      background: #e9ebee;
+
+      .el-slider__bar {
+        height: 100%;
+        background-color: #0064ff;
+        border-radius: 0;
+      }
+    }
+  }
+
+  .label {
+    margin-left: 14px;
+    margin-right: 6px;
+    color: #666;
+  }
+
+  .el-date-editor ::v-deep {
+    box-sizing: border-box;
+    margin-top: -5px;
+    width: 67px;
+    height: 32px;
+
+    .el-input__icon,
+    .el-input__suffix {
+      display: none;
+    }
+
+    input {
+      box-sizing: border-box;
+      height: 32px;
+      padding: 6px 10px;
+      font-size: 14px;
+      color: #3d3d3d;
+      border: 1px solid #c0c5cc;
+    }
+  }
+}
+</style>
+
+<style lang="scss"  >
+.timePick {
+  margin-top: 0;
+  width: 120px;
+
+  .popper__arrow {
+    display: none;
+  }
+
+  .el-time-panel__content::after,
+  .el-time-panel__content::before {
+    border: none;
+  }
+
+  .el-time-spinner__item.active {
+    color: #0064ff;
+  }
+
+  .el-time-panel__footer {
+    .cancel {
+      line-height: 18px;
+      color: #0064ff;
+      border: 1px solid #0064ff;
+    }
+
+    .confirm {
+      margin-right: 14px;
+      color: #fff;
+      line-height: 18px;
+      background-color: #0064ff;
+      border: 1px solid #0064ff;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/scene/Editor.vue b/src/views/hashrate/CameraManage/CameraRules/components/scene/Editor.vue
new file mode 100644
index 0000000..db5aba2
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/scene/Editor.vue
@@ -0,0 +1,1687 @@
+<template>
+  <div class="edit-rules-box">
+    <p style="padding: 0">
+      <b style="font-size: 14px; line-height: 28px">绛栫暐閰嶇疆</b>
+    </p>
+    <div class="sub-rules-box">
+      <div style="text-align: left">
+        <div class="sdk-group">
+          <transition-group name="fade" mode="out-in" appear>
+            <div
+              class="config-item"
+              :class="{ init: index == 0 }"
+              v-cloak
+              v-for="(sdkItem, index) in sdkGroup"
+              :key="index"
+            >
+              <div class="connection" v-if="index !== 0">
+                <el-select
+                  v-model="sdkItem.rule_with_pre"
+                  size="mini"
+                  placeholder="閫夊叧绯�"
+                  @change="selConnection(sdkItem)"
+                >
+                  <el-option
+                    :value="item.value"
+                    :title="item.name"
+                    :label="item.name"
+                    v-for="item in sdkConnects"
+                    :key="item.id"
+                  ></el-option>
+                  <!-- <el-option value="&&" title="and/涓�" label="and/涓�"></el-option>
+                  <el-option value="||" title="or/鎴�" label="or/鎴�"></el-option>
+                  <el-option value="=>" title="鈥�>/瑙﹀彂" label="鈥�>/瑙﹀彂"></el-option>-->
+                </el-select>
+                <el-checkbox
+                  v-show="
+                    sdkItem.rule_with_pre == '=>' ||
+                    sdkItem.rule_with_pre == '!=>'
+                  "
+                  v-model="sdkItem.is_save_anyhow"
+                  style="margin-left: 30px"
+                  >淇濆瓨杩囩▼鏁版嵁</el-checkbox
+                >
+              </div>
+
+              <div class="top-line">
+                <div class="left">
+                  <div class="init-sdk">
+                    <el-select
+                      v-model="sdkItem.sdkObj"
+                      value-key="id"
+                      placeholder="閫夋嫨绠楁硶"
+                      size="mini"
+                      @change="selectSDKOption(sdkItem, true, index)"
+                    >
+                      <el-option
+                        v-for="item in TaskMange.list1"
+                        :key="item.id"
+                        :label="item.sdk_name"
+                        :value="item"
+                        :title="item.sdk_name"
+                        v-show="!item.del_flag"
+                      ></el-option>
+                    </el-select>
+                  </div>
+                  <div class="init-polygon">
+                    <el-select
+                      v-model="sdkItem.polygonObj"
+                      v-if="!isTemplate"
+                      value-key="polygonId"
+                      placeholder="閫夋嫨鍖哄煙"
+                      size="mini"
+                      @change="selectPolygonOption(sdkItem)"
+                    >
+                      <el-option
+                        v-for="subitem in allPolygonData"
+                        :key="subitem.id"
+                        :label="subitem.name"
+                        :value="subitem"
+                        :title="subitem.name"
+                      ></el-option>
+                    </el-select>
+                  </div>
+                </div>
+                <div class="right">
+                  <span
+                    class="del"
+                    v-show="!hideDel"
+                    @click="delConfigItem(index)"
+                  >
+                    <i class="iconfont iconshanchu"></i>
+                  </span>
+                  <span class="collapse" @click="collapseLine(index)">
+                    <i
+                      :class="
+                        sdkItem.isSpread
+                          ? 'el-icon-arrow-up'
+                          : 'el-icon-arrow-down'
+                      "
+                    ></i>
+                  </span>
+                </div>
+              </div>
+
+              <div class="argums derive-line" v-show="sdkItem.isSpread">
+                <div v-for="(arg, index) in sdkItem.defaultArg" :key="arg.sort">
+                  <div class="argums-item" v-show="arg.config.isShow">
+                    <div class="arg-name">
+                      <el-select
+                        v-model="arg.name"
+                        size="mini"
+                        :disabled="true"
+                      >
+                        <el-option
+                          :label="arg.name"
+                          :title="arg.name"
+                          :value="arg"
+                        ></el-option>
+                      </el-select>
+                    </div>
+                    <div class="operator-name">
+                      <el-select
+                        :disabled="arg.operators.length == 1"
+                        v-model="arg.operator"
+                        size="mini"
+                        @change="selOperator(sdkItem)"
+                      >
+                        <el-option
+                          v-for="operator in arg.operators"
+                          :key="operator.operator"
+                          :value="operator.operator"
+                          :label="operator.name"
+                          :title="operator.name"
+                        ></el-option>
+                      </el-select>
+                    </div>
+                    <div class="arg-val">
+                      <div v-if="arg.operator == 'range'">
+                        <el-input
+                          class="range-min"
+                          v-model="arg.min"
+                          @blur="validateArgVal(arg, $event)"
+                        ></el-input>
+                        <span class="devide"></span>
+                        <el-input
+                          class="range-max"
+                          v-model="arg.max"
+                          @blur="validateArgVal(arg, $event)"
+                        ></el-input>
+                        <span>{{ arg.unit }}</span>
+                      </div>
+                      <div v-else>
+                        <el-select
+                          v-if="arg.type == 'option'"
+                          v-model="arg.sdk_arg_value"
+                          :multiple="arg.config.isMulti"
+                          collapse-tags
+                          size="mini"
+                        >
+                          <el-option
+                            v-for="one in arg.valueOptions"
+                            :key="one.value"
+                            :value="one.value"
+                            :label="one.name"
+                            :title="one.name"
+                          ></el-option>
+                        </el-select>
+
+                        <el-input
+                          v-if="arg.type == 'value'"
+                          v-model="arg.sdk_arg_value"
+                          :placeholder="
+                            arg.default_value ? arg.default_value : ''
+                          "
+                          size="mini"
+                          :style="{ borderColor: tipColor }"
+                          @blur="validateArgVal(arg, $event)"
+                        ></el-input>
+                        <span>{{ arg.unit }}</span>
+                      </div>
+                    </div>
+                    <div
+                      class="optional"
+                      v-if="
+                        sdkItem.initAddOptional &&
+                        index == sdkItem.defaultArg.length - 1
+                      "
+                    >
+                      <span class="btn" @click="addOptionalArg(sdkItem)">
+                        <i
+                          class="iconfont iconhebingxingzhuang"
+                          style="font-size: 16px"
+                        ></i>
+                      </span>
+                    </div>
+                  </div>
+                </div>
+                <div
+                  class="argums-item optional-line"
+                  v-for="optArgItem in sdkItem.optArg"
+                  :key="optArgItem.sort"
+                >
+                  <div class="arg-name">
+                    <el-input
+                      v-if="sdkItem.optNames.length == 1"
+                      v-model="sdkItem.optNames[0].name"
+                      size="mini"
+                      :disabled="true"
+                    ></el-input>
+                    <el-select
+                      v-if="sdkItem.optNames.length > 1"
+                      v-model="optArgItem.name"
+                      size="mini"
+                      @change="selOptionalArg(sdkItem, optArgItem)"
+                    >
+                      <el-option
+                        v-for="optName in sdkItem.optNames"
+                        :disabled="optName.isSelected"
+                        :key="optName.sort"
+                        :label="optName.name"
+                        :title="optName.name"
+                        :value="optName.name"
+                      ></el-option>
+                    </el-select>
+                  </div>
+                  <div class="operator-name">
+                    <el-select
+                      :disabled="optArgItem.operators.length == 1"
+                      v-model="optArgItem.operator"
+                      size="mini"
+                      @change="selOperator(optArgItem)"
+                    >
+                      <el-option
+                        v-for="operatorItem in optArgItem.operators"
+                        :key="operatorItem.operator"
+                        :value="operatorItem.operator"
+                        :label="operatorItem.name"
+                        :title="operatorItem.name"
+                      ></el-option>
+                    </el-select>
+                  </div>
+                  <div class="arg-val">
+                    <el-select
+                      v-if="optArgItem.type == 'option'"
+                      v-model="optArgItem.sdk_arg_value"
+                      :multiple="optArgItem.config.isMulti"
+                      collapse-tags
+                      size="mini"
+                    >
+                      <el-option
+                        v-for="one in optArgItem.valueOptions"
+                        :key="one.value"
+                        :value="one.value"
+                        :label="one.name"
+                        :title="one.name"
+                      ></el-option>
+                    </el-select>
+                    <el-input
+                      v-if="optArgItem.type == 'value'"
+                      v-model="optArgItem.sdk_arg_value"
+                      size="mini"
+                      @blur="($event) => validateArgVal(optArgItem, $event)"
+                    ></el-input>
+                    <span>{{ optArgItem.unit }}</span>
+                  </div>
+                  <div class="optional">
+                    <span
+                      class="btn"
+                      @click="addOptionalArg(sdkItem)"
+                      v-show="sdkItem.isAddable"
+                    >
+                      <i
+                        class="iconfont iconhebingxingzhuang"
+                        style="font-size: 16px"
+                      ></i>
+                    </span>
+                    <span
+                      class="btn"
+                      @click="delOptionalArg(sdkItem, optArgItem)"
+                    >
+                      <i
+                        class="iconfont iconshanchu11"
+                        style="font-size: 16px"
+                      ></i>
+                    </span>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </transition-group>
+        </div>
+        <div class="btn-add" v-show="isAdd && this.sdkGroup.length < 4">
+          <el-button size="mini" @click="addSdkItem">+ 娣诲姞绠楁硶</el-button>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import {
+  deleteCameraRules,
+  updateRuleDefence,
+  updateAlarmLevel,
+} from "@/api/camera";
+
+export default {
+  name: "SceneRuleEditor",
+  props: {
+    Cameras: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    isTemplate: {
+      type: Boolean,
+      default: false,
+    },
+    isLinkRule: {
+      type: Boolean,
+      default: false,
+    },
+    includeSdks: {
+      type: Array,
+    },
+    ruleList: {
+      type: String,
+      default: "",
+    },
+    onSubmitRule: {
+      type: Function,
+      default: () => false,
+    },
+  },
+
+  watch: {
+    Cameras: {
+      handler(n, o) {
+        let polygon = [];
+        let cameras = [...n];
+
+        for (let i = 0; i < cameras.length; i++) {
+          let polyOpt = cameras[i].polygonData.map((p) => {
+            return {
+              defence_state: p.defence_state,
+              polygonId: p.id,
+              name: this.isLinkRule
+                ? cameras[i].cameraName + ":" + p.name
+                : p.name,
+
+              cameraId: cameras[i].cameraId,
+            };
+          });
+          polygon = polygon.concat(polyOpt);
+
+          this.allPolygonData = polygon;
+          //娣诲姞鍦烘櫙鍒濆鍖栧尯鍩熼�夐」涓�'鍏ㄩ儴鍖哄煙'
+          // if (polygon.length > 0 && this.ruleList == '') {
+          //   this.polygonObj = polygon[0]
+          //   this.sdkGroup[0].polygonObj = JSON.parse(
+          //     JSON.stringify(this.polygonObj)
+          //   )
+
+          //   this.selectPolygonOption(this.sdkGroup[0])
+          // }
+        }
+      },
+      deep: true,
+    },
+    sdkGroup: {
+      handler(newV, oldV) {
+        if (newV) {
+          newV.forEach((sdk) => {
+            let rangeOne = sdk.defaultArg.find(
+              (arg) => arg.operators[0].operator == "range"
+            );
+            if (rangeOne) {
+              if (rangeOne.min.trim() && rangeOne.max.trim()) {
+                rangeOne.sdk_arg_value = rangeOne.min + "|" + rangeOne.max;
+              } else {
+                rangeOne.sdk_arg_value = false;
+              }
+            }
+          });
+          let res = newV.find((item) => {
+            return JSON.stringify(item.sdkObj) == "{}";
+          });
+          if (!res) {
+            this.isAdd = true;
+            this.hideDel = false;
+          } else {
+            this.isAdd = false;
+            if (this.sdkGroup.length == 1) {
+              this.hideDel = true;
+            } else {
+              this.hideDel = false;
+            }
+          }
+        }
+      },
+      deep: true,
+    },
+  },
+  mounted() {
+    this.TaskMange.findAllSdk({ installed: true });
+
+    //this.editHandle(this.ruleList)
+  },
+  data() {
+    return {
+      hideDel: true,
+      allPolygonData: [],
+      group_id: "",
+      baseSdkItem: {
+        sdkObj: {},
+        polygonObj: {},
+        is_save_anyhow: true,
+        rule_with_pre: "",
+        isSpread: true,
+        argDef: [],
+        initAddOptional: false,
+        defaultArg: [],
+        optionalArg: [],
+        optArg: [],
+        optNames: [],
+        isAddable: true,
+      },
+      sdkGroup: [
+        {
+          sdkObj: {},
+          polygonObj: {},
+          is_save_anyhow: true,
+          isSpread: true,
+          argDef: [],
+          initAddOptional: false,
+          defaultArg: [],
+          optionalArg: [],
+          optArg: [],
+          optNames: [],
+          isAddable: true,
+        },
+      ],
+      polygonObj: {},
+      isSpread: true,
+      isAdd: false,
+      tipColor: "yellow",
+      tasksTable: {},
+      groupRules: [],
+      sdksOption: [],
+      baseRule: {
+        camera_id: "",
+        id: "",
+        operator: "",
+        operator_type: "",
+        polygon_id: "",
+        rule_with_pre: "",
+        sdk_id: "",
+        sdk_arg_alias: "",
+        sdk_arg_value: "",
+        sdk_arg_defaultValue: "",
+        select_time_rule: "",
+        sdk_arg_type: "",
+        // task_id: "",
+
+        polygonObj: {},
+        taskObj: "",
+
+        sdkObj: {},
+        argObj: {},
+        operatorObj: {},
+        valueObj: {},
+
+        sdksOptions: [],
+        argsOptions: [],
+        argType: "",
+        computeOptions: [],
+        valueOptions: [],
+
+        sdkDesc: "",
+        argDesc: "",
+        operatorDesc: "",
+        typeDesc: "",
+        valueDesc: "",
+
+        unit: "",
+        value: "",
+        valid: true,
+      },
+    };
+  },
+  methods: {
+    getSdkConnection() {
+      this.sdkConnects = this.VideoManageData.Dictionary[
+        "RULECOMPUTEBETWEEN"
+      ].map((r) => {
+        return {
+          name: r.name,
+          value: r.value,
+        };
+      });
+    },
+    selConnection(sdkItem) {},
+    addSdkItem() {
+      let itemTemp = JSON.parse(JSON.stringify(this.baseSdkItem));
+      //鍒濆鍖栧尯鍩�
+      itemTemp.polygonObj = JSON.parse(JSON.stringify(this.allPolygonData[0]));
+      this.selectPolygonOption(itemTemp);
+      this.sdkGroup.push(itemTemp);
+    },
+    delConfigItem(index) {
+      // if(index != 0){
+      //   this.sdkGroup.splice(index,1);
+      // }else{
+      //   //this.sdkGroup[0] = JSON.parse(JSON.stringify(this.baseSdkItem));
+      //   this.sdkGroup.splice(0,1,JSON.parse(JSON.stringify(this.baseSdkItem)));
+      // }
+
+      //鍒犻櫎閫昏緫锛氬綋鍙湁涓�涓畻娉曟椂锛屽垹闄や細鍥炲埌鍒濆鐘舵�侊紱鏈夊涓畻娉曟椂锛屽垹闄ゆ棦绉婚櫎鏁翠釜绠楁硶椤�
+      if (this.sdkGroup.length == 1) {
+        let itemTemp = JSON.parse(JSON.stringify(this.baseSdkItem));
+        itemTemp.polygonObj = JSON.parse(
+          JSON.stringify(this.allPolygonData[0])
+        );
+        this.selectPolygonOption(itemTemp);
+        this.sdkGroup.splice(index, 1, itemTemp);
+      } else {
+        if (
+          this.sdkGroup[index + 1] &&
+          this.sdkGroup[index + 1].rule_with_pre
+        ) {
+          this.sdkGroup[index + 1].rule_with_pre = "";
+        }
+
+        this.sdkGroup.splice(index, 1);
+      }
+    },
+    collapseLine(index) {
+      // let one = this.sdkGroup.find(sdk=>{
+      //   return sdk.sdk_id == sdkId;
+      // });
+
+      this.sdkGroup[index].isSpread = !this.sdkGroup[index].isSpread;
+    },
+    addOptionalArg(sdkItem) {
+      sdkItem.initAddOptional = false;
+      sdkItem.optArg.forEach((arg) => {
+        sdkItem.optNames.forEach((name) => {
+          if (arg.sort == name.sort) {
+            name.isSelected = true;
+          }
+        });
+      }); //鎵惧埌鍙�塻dkItem.optNames鐨勭涓�涓搴旂殑sdkItem.optionalArg聽push鍒皊dkItem.optArg
+      let oneNotSelected = sdkItem.optNames.find((name) => !name.isSelected);
+      if (oneNotSelected) {
+        oneNotSelected.isSelected = true;
+      }
+
+      let argTemp = sdkItem.optionalArg.find((arg) => {
+        return arg.sort == oneNotSelected.sort;
+      });
+
+      let copyArgTemp = JSON.parse(JSON.stringify(argTemp));
+      if (copyArgTemp.type == "option") {
+        // let alias = copyArgTemp.alias;
+        // console.log( this.VideoManageData.Dictionary[alias])
+        // copyArgTemp.valueOptions = this.VideoManageData.Dictionary[alias].map(r => {
+        //   return {
+        //     name: r.name,
+        //     value: r.value
+        //   }
+        // })
+
+        this.setOptArgValueOptions(copyArgTemp);
+      }
+      //榛樿閫変腑绗竴涓猳perator
+      //if (copyArgTemp.operators.length == 1) {
+      this.$set(copyArgTemp, "operator", copyArgTemp.operators[0].operator);
+      //}
+
+      if (copyArgTemp.default_value) {
+        this.$set(copyArgTemp, "sdk_arg_value", copyArgTemp.default_value);
+      }
+      sdkItem.optArg.push(copyArgTemp);
+      if (sdkItem.optArg.length < sdkItem.optionalArg.length) {
+        sdkItem.isAddable = true;
+      } else {
+        sdkItem.isAddable = false;
+      }
+    },
+    delOptionalArg(sdkItem, optArgItem) {
+      let index = sdkItem.optArg.findIndex(
+        (arg) => arg.sort == optArgItem.sort
+      );
+      sdkItem.optArg.splice(index, 1);
+      sdkItem.optNames.forEach((name) => {
+        if (name.sort == optArgItem.sort) {
+          name.isSelected = false;
+        }
+      });
+      sdkItem.initAddOptional = sdkItem.optArg.length == 0 ? true : false;
+      if (sdkItem.optArg.length < sdkItem.optionalArg.length) {
+        sdkItem.isAddable = true;
+      } else {
+        sdkItem.isAddable = false;
+      }
+    },
+    selOptionalArg(sdkItem, optArgItem) {
+      let newSort = 0;
+      sdkItem.optNames.forEach((name) => {
+        if (name.name == optArgItem.name) {
+          //鏂板垏鎹㈢殑鍙傛暟鍚�
+          name.isSelected = true;
+          newSort = name.sort;
+        } else if (name.sort == optArgItem.sort) {
+          //鍒囨崲鍓嶇殑鍙傛暟鍚�
+          name.isSelected = false;
+        }
+      });
+      //鏍规嵁鏂扮殑鍙傛暟sort鎵惧埌鍏跺搴旈厤缃璞�
+      let argObj = sdkItem.optionalArg.find((arg) => arg.sort == newSort);
+      if (argObj.type == "option") {
+        this.setOptArgValueOptions(argObj);
+      }
+      //榛樿閫変腑绗竴涓猳perator
+      //if (argObj.operators.length == 1) {
+      this.$set(argObj, "operator", argObj.operators[0].operator);
+      //}
+      //鏇挎崲鏂扮殑鍙傛暟閰嶇疆瀵硅薄
+      sdkItem.optArg.forEach((arg, index) => {
+        if (arg.sort == optArgItem.sort) {
+          this.$set(sdkItem.optArg, index, JSON.parse(JSON.stringify(argObj)));
+        }
+      });
+    },
+    setOptArgValueOptions(optArg) {
+      let alias = optArg.alias;
+      optArg.valueOptions = this.VideoManageData.Dictionary[alias].map((r) => {
+        return {
+          name: r.name,
+          value: r.value,
+        };
+      });
+    },
+    validateArgVal(sdkArgItem, e) {
+      if (
+        typeof sdkArgItem.sdk_arg_value == "string" &&
+        sdkArgItem.sdk_arg_value == ""
+      ) {
+        this.$notify({
+          type: "warning",
+          message: "鍙傛暟璁惧畾鍊间笉鑳戒负绌�!",
+        });
+        sdkArgItem.valid = false;
+
+        return false;
+      }
+      //杈撳叆闈炴暟瀛�
+
+      //鑼冨洿鏄惁鍚堟硶
+      if (sdkArgItem.range) {
+        let leftHand = sdkArgItem.range.substr(0, 1);
+        let rightHand = sdkArgItem.range.substr(sdkArgItem.range.length - 1, 1);
+        let reg = /.*(\d+),(\d+).*/;
+        let res = sdkArgItem.range.match(reg);
+        let min = Number(res[1]),
+          max = Number(res[2]);
+
+        //鍒ゆ柇闈炲尯闂寸被
+        if (sdkArgItem.sdk_arg_value && sdkArgItem.operator != "range") {
+          if (leftHand == "(" && rightHand == ")") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) <= min ||
+              Number(sdkArgItem.sdk_arg_value) >= max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == ")") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) < min ||
+              Number(sdkArgItem.sdk_arg_value) >= max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "(" && rightHand == "]") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) <= min ||
+              Number(sdkArgItem.sdk_arg_value) > max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == "]") {
+            if (
+              Number(sdkArgItem.sdk_arg_value) < min ||
+              Number(sdkArgItem.sdk_arg_value) > max
+            ) {
+              sdkArgItem.valid = false;
+              this.showErrorColor(e);
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          }
+        } else if (sdkArgItem.min || sdkArgItem.max) {
+          //鍒ゆ柇鍖洪棿绫�
+          if (leftHand == "(" && rightHand == ")") {
+            if (
+              Number(sdkArgItem.min) <= min ||
+              Number(sdkArgItem.min) >= max
+            ) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == ")") {
+            if (Number(sdkArgItem.min) < min || Number(sdkArgItem.max) >= max) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "(" && rightHand == "]") {
+            if (Number(sdkArgItem.min) <= min || Number(sdkArgItem.max) > max) {
+              sdkArgItem.valid = false;
+
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          } else if (leftHand == "[" && rightHand == "]") {
+            if (
+              Number(sdkArgItem.min) < min ||
+              Number(sdkArgItem.max) > max ||
+              Number(sdkArgItem.min) > max ||
+              Number(sdkArgItem.max) < min
+            ) {
+              sdkArgItem.valid = false;
+              this.showErrorColor(e);
+              this.$notify({
+                type: "warning",
+                message: `鍙傛暟鍖洪棿璁惧畾鍊奸』澶т簬绛変簬${min},灏忎簬绛変簬${max}`,
+              });
+              return false;
+            }
+          }
+        }
+      }
+      e.currentTarget.style.borderColor = "";
+      return true;
+    },
+    showErrorColor(e) {
+      this.$nextTick(() => {
+        e.currentTarget.style.borderColor = "red";
+      });
+    },
+    setSdksOptions(rule) {
+      rule.sdksOptions = this.includeSdks;
+    },
+    setOperator(rule) {
+      rule.operator = rule.operatorObj.value;
+      rule.operatorDesc = rule.operatorObj.name;
+    },
+    setValue(rule) {
+      rule.valid = true;
+
+      if (rule.operator_type === "option") {
+        rule.sdk_arg_value = rule.valueObj.value ? rule.valueObj.value : "";
+        rule.typeDesc = "琚�夐」";
+        rule.valueDesc = rule.valueObj.name ? rule.valueObj.name : "";
+      } else {
+        rule.typeDesc = "鍊�";
+        rule.valueDesc = rule.sdk_arg_value;
+      }
+      this.valideArgValue(rule);
+    },
+    selectPolygonOption(rule) {
+      rule.polygon_id = rule.polygonObj.polygonId
+        ? rule.polygonObj.polygonId
+        : rule.polygon_id;
+      rule.camera_id = rule.polygonObj.cameraId
+        ? rule.polygonObj.cameraId
+        : rule.camera_id;
+      rule.group_id = this.group_id;
+    },
+    //閫夋嫨绠楁硶 resetArgs涓簍rue鏄坊鍔犱负false鏄垵濮嬪寲缂栬緫
+    selectSDKOption(sdkItem, resetArgs) {
+      //sdkItem.sdk_id = sdkItem.sdkObj.id;
+      if (resetArgs) {
+        sdkItem.argDef = JSON.parse(sdkItem.sdkObj.argDef);
+        //鍙栧嚭榛樿鍙傛暟
+        sdkItem.defaultArg = sdkItem.argDef.filter(
+          (arg) => !arg.config.isOptional
+        );
+        //璧嬮粯璁perator/鍊�
+        sdkItem.defaultArg.forEach((arg) => {
+          if (arg.operators.length == 1) {
+            this.$set(arg, "operator", arg.operators[0].operator);
+
+            if (arg.operators[0].operator == "range") {
+              //鍖洪棿鍊肩殑澶勭悊
+              //this.$set(arg, 'sdk_arg_value', arg.min+','+arg.max)
+              //this.$set(arg, 'sdk_arg_value', arg.range.substring(1,arg.range.length-1));
+            }
+          }
+
+          if (arg.type == "option") {
+            this.setOptArgValueOptions(arg);
+          }
+          if (arg.default_value) {
+            //arg.sdk_arg_value = arg.default_value
+            this.$set(arg, "sdk_arg_value", arg.default_value);
+          }
+        });
+        sdkItem.defaultArg;
+        //鍙栧嚭鍙�夊弬鏁�
+        sdkItem.optionalArg = sdkItem.argDef.filter(
+          (arg) => arg.config.isOptional
+        );
+        sdkItem.optNames = sdkItem.optionalArg.map((arg) => ({
+          name: arg.name,
+          sort: arg.sort,
+          isSelected: false,
+        }));
+
+        sdkItem.initAddOptional = sdkItem.optionalArg.length > 0 ? true : false;
+        sdkItem.optArg = [];
+      }
+
+      //娣诲姞鍦烘櫙鏃�,濡傛灉鍦烘櫙鍚嶇О涓虹┖,灏卞皢閫夋嫨鐨勭涓�涓畻娉曞悕鍚屾鍒板満鏅悕绉�
+      if (this.sdkGroup[0] && resetArgs) {
+        this.$emit("sdkNameChange", this.sdkGroup[0].sdkObj.sdk_name);
+      }
+
+      // 閫夐」鍒囨崲鏃堕渶瑕佸埛鏂癮rg鑿滃崟椤�
+      this.selectArgTypeOption(sdkItem, resetArgs);
+    },
+
+    selectArgTypeOption(rule, resetAlias) {
+      if (rule.sdk_arg_type == "") {
+        return;
+      }
+
+      if (resetAlias) {
+        rule.sdk_arg_alias = "";
+      }
+
+      rule.argsOptions = rule.sdkObj.args;
+
+      rule.argObj = {};
+    },
+    //閫夋嫨绠楁硶閰嶇疆
+    selOperator(rule) {},
+    selectArgsOption(rule, resetArgValue) {
+      // rule.operator_type = "";
+      // console.log(rule, '閫夋嫨绠楁硶鍙傛暟')
+      rule.sdk_arg_alias = rule.argObj.alias;
+      rule.argDesc = rule.argObj.name;
+      rule.sdk_arg_defaultValue = rule.argObj.default_value;
+      rule.unit = rule.argObj.unit ? rule.argObj.unit : "";
+      //rule.default_value = rule.argObj.default_value ? Number(rule.argObj.default_value) : 0;
+
+      //console.log("缃俊搴︾殑榛樿鍊间负",rule.sdk_arg_defaultValue)
+      // 淇濆瓨鍊肩被鍨�
+      rule.argType = rule.argObj.type;
+      if (rule.argType === "option") {
+        rule.operator_type = "option";
+        // 璁剧疆榛樿鏉′欢鍊�
+        this.VideoManageData.Dictionary.RULECOMPUTE.forEach((opt) => {
+          if (opt.value == "==") {
+            rule.operatorObj = opt;
+          }
+        });
+
+        this.setOperator(rule);
+
+        this.selectValueOption(rule);
+      } else {
+        // 璁剧疆榛樿鏉′欢鍊�
+        rule.operator_type = "value";
+        if (resetArgValue) {
+          rule.sdk_arg_value = "";
+
+          this.VideoManageData.Dictionary.RULECOMPUTE.forEach((opt) => {
+            if (opt.value == ">=") {
+              rule.operatorObj = opt;
+            }
+          });
+        } else {
+          // 缂栬緫瑙勫垯鍖归厤
+          this.VideoManageData.Dictionary.RULECOMPUTE.forEach((opt) => {
+            if (opt.value == rule.operator) {
+              rule.operatorObj = opt;
+            }
+          });
+        }
+        this.setOperator(rule);
+      }
+    },
+    selectValueOption(rule) {
+      if (rule.sdk_arg_alias === "time_rule") {
+        rule.valueOptions = this.VideoManageData.TimeRules.map((r) => {
+          return {
+            name: r.name,
+            value: r.id,
+          };
+        });
+      } else if (rule.sdk_arg_alias === "compareBase") {
+        rule.valueOptions = this.VideoManageData.TagList.map((r) => {
+          return {
+            name: r.tableName,
+            value: r.id,
+          };
+        });
+      } else {
+        let ops = this.VideoManageData.Dictionary[rule.sdk_arg_alias];
+        if (ops && ops instanceof Array) {
+          rule.valueOptions = ops.map((r) => {
+            return {
+              name: r.name,
+              value: r.value,
+            };
+          });
+        }
+      }
+    },
+
+    valideArgValue(rule) {
+      if (rule.sdk_arg_value == "") {
+        this.$notify({
+          type: "warning",
+          message: "鍙傛暟璁惧畾鍊间笉鑳戒负绌�!",
+        });
+        rule.valid = false;
+        return false;
+      }
+
+      if (rule.argObj && rule.argObj.range) {
+        // 濡傛灉璁剧疆浜嗙畻娉曢粯璁ゅ�硷紝鍒欏垽鏂笉鑳藉皬浜庤鍊�
+        if (rule.argObj.default_value) {
+          if (
+            parseInt(rule.sdk_arg_value) < parseInt(rule.sdk_arg_defaultValue)
+          ) {
+            rule.valid = false;
+            this.$notify({
+              type: "warning",
+              message:
+                "鍙傛暟璁惧畾鍊间笉鑳藉皬浜庣畻娉曞弬鏁伴粯璁ゅ�� " + rule.sdk_arg_defaultValue,
+            });
+            rule.valueDesc = rule.sdk_arg_value = rule.argObj.default_value;
+            rule.valid = false;
+            return false;
+          }
+        }
+
+        // let re = /(?<=,).*?(?=]|\))/
+        let re = /.*,(\d+)/;
+        let max = rule.argObj.range.match(re)[1];
+        // console.log(max,'鑾峰彇鑼冨洿鏈�澶у��')
+        if (Number(rule.sdk_arg_value) > Number(max)) {
+          rule.valid = false;
+          this.$notify({
+            type: "warning",
+            message: "鍙傛暟璁惧畾鍊间笉鑳藉ぇ浜�" + max,
+          });
+          return false;
+        }
+      }
+
+      return true;
+    },
+    parataxis(rule_with_pre) {
+      let relation = "";
+      this.VideoManageData.Dictionary.RULECOMPUTEBETWEEN.forEach((pre) => {
+        if (pre.value === rule_with_pre) {
+          relation = pre.name;
+        }
+      });
+
+      return relation;
+    },
+
+    generatDescription() {
+      let desc = "";
+      this.groupRules.forEach((r, index) => {
+        // console.log(r,index,'鎷兼帴')
+        if (index === 0) {
+          desc += r.sdkDesc + r.argDesc + r.operatorDesc + r.valueDesc + r.unit;
+        } else {
+          desc +=
+            "&nbsp;&nbsp;&nbsp;" +
+            this.parataxis(r.rule_with_pre) +
+            "&nbsp;&nbsp;&nbsp;" +
+            r.sdkDesc +
+            r.argDesc +
+            r.operatorDesc +
+            r.valueDesc +
+            r.unit;
+        }
+      });
+      // console.log(desc,'鎷兼帴')
+      return desc;
+    },
+    createRule() {
+      if (!this.isTemplate && this.Cameras.length > 0) {
+        // 鏈�変腑鎽勫儚鏈烘垨鑰呮湭閫変腑鎽勫儚鏈轰换鍔★紝涓嶆墽琛屽垱寤�
+        if (!this.Cameras[0].cameraId) return false;
+      }
+      this.group_id = "";
+      //this.addRule(0);
+    },
+
+    //娓呯┖閰嶇疆骞跺垵濮嬪寲
+    cleanRule() {
+      this.group_id = "";
+      this.sdkGroup.splice(0, this.sdkGroup.length);
+      this.addSdkItem();
+    },
+    addRule(index) {
+      let newRule = JSON.parse(JSON.stringify(this.baseRule));
+      newRule.sdksOptions = this.includeSdks;
+      if (!this.isLinkRule) {
+        // 璁剧疆榛樿鍏ㄩ儴鍖哄煙
+        // if (!this.isTemplate) {
+        //   newRule.polygonObj = this.allPolygonData[0];
+        //   this.selectPolygonOption(newRule)
+        // }
+        // 璁剧疆绠楁硶
+        // newRule.sdksOptions = this.includeSdks;
+        // 璁剧疆榛樿绠楁硶
+        // newRule.sdkObj = newRule.sdksOptions[0]
+        // this.selectSDKOption(newRule, false)
+        // newRule.sdk_arg_type = "target"
+        // this.selectArgTypeOption(newRule, true)
+      }
+
+      // this.groupRules.push(newRule);
+      // 鎻掑叆鍒版寚瀹氫綅缃�
+      this.groupRules.splice(index + 1, 0, newRule);
+    },
+    editHandle(ruleTxt) {
+      this.getSdkConnection();
+      // if (ruleTxt.length < 1) {
+      //   return
+      // }
+      let ruleInfo = JSON.parse(ruleTxt);
+
+      this.editRule(ruleInfo);
+      // 濡傛灉鏄仈鍔ㄤ换鍔�, 鏌ヨ鑱斿姩鎽勫儚鏈哄垪琛�, 灏嗘爲閫変腑鐨勫垪琛ㄦ洿鏀逛负璇ユ潯瑙勫垯鎵�闇�瑕佺殑鎽勫儚鏈�, 骞跺浠藉綋鍓嶇殑閫変腑鐘舵��, 瑙勫垯淇濆瓨鍚庢仮澶�
+      // if (this.isLinkRule) {
+      //   this.VideoRuleData.treeSelectedNodesBackupOnEditLinkRule = [...this.TreeDataPool.selectedNodes]
+      //   this.VideoRuleData.editLinkRuleRow = { ...ruleInfo }
+
+      //   this.TreeDataPool.selectedNodes = ruleInfo.group_rules.map(r => {
+      //     return r.camera_id
+      //   })
+      //   this.$nextTick(() => {
+      //     setTimeout(() => {
+      //       this.editRule(ruleInfo)
+      //     }, 1000)
+      //   })
+      // } else {
+      //   this.editRule(ruleInfo)
+      // }
+    },
+    editRule(ruleGroup) {
+      this.sdkGroup = [];
+      this.group_id = "";
+
+      ruleGroup.forEach((rule) => {
+        let tempObj = {};
+
+        if (rule.group_id && rule.group_id != "") {
+          this.group_id = rule.group_id;
+        }
+
+        // 濉厖鍖哄煙閫夐」鍒楄〃
+        this.allPolygonData.forEach((p) => {
+          if (p.polygonId === rule.polygon_id) {
+            rule.polygonObj = p;
+          }
+        });
+
+        if (!rule.polygonObj) {
+          rule.polygonObj = {
+            cameraId: rule.camera_id,
+            defence_state: 1,
+            name: "鏈煡鍖哄煙",
+            polygonId: rule.polygon_id,
+          };
+        }
+
+        // 璁剧疆鍖哄煙
+        this.selectPolygonOption(rule);
+
+        //绠楁硶瀵硅薄,绠楁硶鍙傛暟閰嶇疆鏁扮粍,(鐢ㄤ簬鏁版嵁澶勭悊鐨�)榛樿鍙傛暟鏁扮粍, 鍙�夊弬鏁版暟缁�, 宸查厤缃殑鍙�夊弬鏁版暟缁�, (鐢ㄤ簬鍘婚噸鍒ゆ柇)瀛樻斁鍙�夊弬鏁板悕鐨勬暟缁�
+        let sdkObj = {},
+          argDef = [],
+          defaultArg = [],
+          optionalArg = [],
+          optArg = [],
+          optNames = [];
+
+        sdkObj = this.TaskMange.list1.find((sdk) => sdk.id == rule.sdk_id);
+
+        argDef = JSON.parse(sdkObj.argDef);
+
+        defaultArg = argDef.filter((arg) => !arg.config.isOptional);
+        optionalArg = argDef.filter((arg) => arg.config.isOptional);
+
+        rule.sdk_set.forEach((arg) => {
+          let optItem = optionalArg.find((oarg) => {
+            if (oarg.sort == arg.sort) {
+              return oarg;
+            }
+          });
+          if (optItem) {
+            //if (optItem.operators.length > 1) {
+            optItem.operator = arg.operator;
+            //this.selOperator(optItem)
+            //}
+
+            //璧嬪��
+            optItem.sdk_arg_value = arg.sdk_arg_value;
+            //if(arg.sdk_arg_value.indexOf(',')>0){
+            //鍒ゆ柇鏄惁鏄閫夊�肩被鍨嬬殑鍙傛暟
+            let isMultiOne = optionalArg.find(
+              (oarg) => oarg.sort == optItem.sort && optItem.config.isMulti
+            );
+            if (isMultiOne) {
+              optItem.sdk_arg_value = arg.sdk_arg_value.split(",");
+            }
+
+            if (optItem.type == "option") {
+              this.setOptArgValueOptions(optItem);
+            }
+            if (optItem.alias == "bForceSend") {
+            }
+            //鍦╬ush涔嬪墠,闇�瑕佸垽鏂槸鍚﹂厤缃簡杩欎釜鍙�夐」  鍦╯dk_set閰嶇疆鏁扮粍閲�,
+
+            optArg.push(optItem);
+          } else {
+            defaultArg.forEach((d) => {
+              if (d.sort == arg.sort) {
+                if (arg.sdk_arg_value.indexOf("|") > 0) {
+                  //鍖洪棿鍊�
+                  d.min = arg.sdk_arg_value.split("|")[0];
+                  d.max = arg.sdk_arg_value.split("|")[1];
+                  d.operator = "range";
+                  //} else if(arg.sdk_arg_value.indexOf(',') > 0){
+                } else if (arg.operator_type == "option") {
+                  //澶氶�夌被鍨嬬殑鍊�
+                  d.sdk_arg_value = arg.sdk_arg_value.split(",");
+                  this.setOptArgValueOptions(d);
+                } else {
+                  d.sdk_arg_value = arg.sdk_arg_value;
+                }
+                d.operator = arg.operator;
+              }
+            });
+          }
+        });
+        optNames = optionalArg.map((arg) => ({
+          name: arg.name,
+          sort: arg.sort,
+          isSelected: false,
+        }));
+
+        tempObj = {
+          sdkObj,
+          polygonObj: rule.polygonObj,
+          rule_with_pre: rule.rule_with_pre,
+          is_save_anyhow: rule.is_save_anyhow,
+          isSpread: true,
+          argDef,
+          initAddOptional: false,
+          optionalArg,
+          optArg,
+          defaultArg,
+          optNames,
+          isAddable: true,
+          camera_id: rule.camera_id,
+          polygon_id: rule.polygon_id,
+        };
+        //鍥炴樉鏄惁鏄剧ず娣诲姞鍙�夊弬鏁�
+        tempObj.initAddOptional =
+          tempObj.optArg.length == 0 && tempObj.optionalArg.length > 0
+            ? true
+            : false;
+        //鍥炴樉鏄惁鏄剧ず鍙�夊弬鏁版坊鍔犳寜閽�
+        if (tempObj.optArg.length < tempObj.optionalArg.length) {
+          tempObj.isAddable = true;
+        } else {
+          tempObj.isAddable = false;
+        }
+        //this.selectSDKOption(tempObj, false)
+
+        this.sdkGroup.push(tempObj);
+        //璁剧疆绠楁硶
+      });
+      //this.$nextTick(() => {})
+    },
+    delRule(rule) {
+      this.$confirm("鎻愮ず锛氬垹闄ゅ悗锛岃鏉¤鍒欏皢澶辨晥锛屾槸鍚﹀垹闄わ紵", {
+        center: true,
+        cancelButtonClass: "comfirm-class-cancle",
+        confirmButtonClass: "comfirm-class-sure",
+      })
+        .then(() => {
+          deleteCameraRules({ groupId: rule.group_id }).then((res) => {
+            if (res && res.success) {
+              this.$notify({
+                type: "success",
+                message: "鍒犻櫎鎴愬姛",
+              });
+              this.$emit("delete-rule");
+            } else {
+              this.$notify({
+                type: "error",
+                message: "鍒犻櫎澶辫触锛�",
+              });
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    submitRule() {
+      let groupRule = { rules: [] };
+
+      let group_text = "";
+      let validateFlag = false;
+
+      if (this.isTemplate) {
+        groupRule.rules = this.groupRules.map((r) => {
+          return {
+            sdk_id: r.sdk_id,
+            sdk_arg_alias: r.sdk_arg_alias,
+            operator: r.operator,
+            operator_type: r.operator_type,
+            sdk_arg_value: r.sdk_arg_value,
+            sort: 1,
+            rule_with_pre: r.rule_with_pre,
+          };
+        });
+      } else {
+        //鏍¢獙蹇呭~椤�
+        let undefinished = this.sdkGroup.some((sdk, index) => {
+          //娌℃湁閰嶇疆绠楁硶
+          if (Object.keys(sdk.sdkObj).length == 0) {
+            return sdk;
+          }
+          //澶嶅埗绠楁硶鏃舵娴嬪尯鍩熶笉鑳戒负绌�
+          if (!sdk.polygon_id) {
+            return sdk;
+          }
+
+          //澶氫簬涓ら」绠楁硶鏃�,绠楁硶鍏崇郴涓嶈兘涓虹┖
+          if (sdk.rule_with_pre === "" && index != 0) {
+            return sdk;
+          }
+
+          //澶勭悊鏈睍绀虹殑鍙傛暟鐨勫��
+          sdk.defaultArg.forEach((arg) => {
+            if (!arg.config.isShow) {
+              arg.sdk_arg_value = arg.default_value;
+            }
+          });
+          //琛ㄥ崟鎻愪氦鍓嶆牎楠�:鎵�鏈夌畻娉曠殑鍙傛暟鍊间笉鑳戒负绌�,(鏈塺ange鐨�,瑕佸湪range鑼冨洿鍐�)澶辩劍鏃舵牎楠�
+          let defaultArgFlag = sdk.defaultArg.find((arg) => {
+            if (arg.sdk_arg_value instanceof Array) {
+              if (arg.sdk_arg_value.length == 0) {
+                return arg;
+              }
+            } else if (!arg.sdk_arg_value) {
+              return arg;
+            }
+          });
+          if (defaultArgFlag) {
+            return sdk;
+          }
+          //鏌ユ壘鍙�夊弬鏁板�兼槸鍚﹂兘璁剧疆(澶氶�夊�间负鏁扮粍绫诲瀷)
+          let optionalArgFlag = sdk.optArg.find((arg) => {
+            if (arg.sdk_arg_value instanceof Array) {
+              if (arg.sdk_arg_value.length == 0) {
+                return arg;
+              }
+            } else {
+              //鍖洪棿绫诲弬鏁板�兼渶灏�,鏈�澶у�兼槸鍚﹂兘璁剧疆
+              if (arg.operator == "range") {
+                if (!arg.min.trim() && arg.max.trim()) {
+                  return arg;
+                }
+              }
+              if (!arg.sdk_arg_value) {
+                return arg;
+              }
+            }
+          });
+
+          if (optionalArgFlag) {
+            return sdk;
+          }
+        });
+
+        if (undefinished) {
+          this.$notify({
+            type: "error",
+            message: "绠楁硶鍙傛暟鏈畬鍠�,璇峰畬鍠勫悗鍐嶄繚瀛�",
+          });
+          return false;
+        }
+        //鏍¢獙鍖洪棿宸︿晶鍊兼槸鍚﹀皬浜庡彸渚у��
+        let illegalRange = this.sdkGroup.some((sdk, index) => {
+          let rangeArg = sdk.defaultArg.find((arg) => arg.operator == "range");
+          if (rangeArg) {
+            if (Number(rangeArg.max) <= Number(rangeArg.min)) {
+              return sdk;
+            }
+          }
+        });
+        if (illegalRange) {
+          this.$notify({
+            type: "error",
+            message: "鍖洪棿宸︿晶涓嶈兘澶т簬鎴栫瓑浜庡尯闂村彸渚х殑鍊�",
+          });
+          return false;
+        }
+        //鏍¢獙鑻ョ畻娉曞叧绯讳负瑙﹀彂,鍒欑畻娉曞悕涓嶈兘閲�
+        let sameSdk = this.sdkGroup.some((sdk, index) => {
+          if (
+            sdk.index != 0 &&
+            (sdk.rule_with_pre == "=>" || sdk.rule_with_pre == "!=>")
+          ) {
+            if (sdk.sdkObj.id == this.sdkGroup[index - 1].sdkObj.id) {
+              return sdk;
+            }
+          }
+        });
+
+        if (sameSdk) {
+          this.$notify({
+            type: "error",
+            message: "绠楁硶鍏崇郴涓鸿Е鍙戞椂,绠楁硶鍚嶄笉鑳介噸澶�",
+          });
+          return false;
+        }
+
+        if (!validateFlag && !sameSdk) {
+          validateFlag = true;
+        }
+
+        this.sdkGroup.forEach((sdk) => {
+          let tempObj = {
+            sdk_id: sdk.sdkObj.id,
+            camera_id: sdk.camera_id,
+            group_id: "",
+            is_save_anyhow: sdk.is_save_anyhow,
+            polygon_id: sdk.polygon_id,
+            rule_with_pre: sdk.rule_with_pre,
+            sdk_set: [],
+          };
+
+          let defaultArgs = sdk.defaultArg.map((arg) => ({
+            operator: arg.operator,
+            operator_type: arg.type,
+            sdk_arg_alias: arg.alias,
+            sdk_arg_value: arg.sdk_arg_value,
+            sort: arg.sort,
+          }));
+
+          let defaultArgDesc = "( ";
+          sdk.defaultArg.forEach((arg) => {
+            //涓嶆樉绀洪殣钘忕殑鍙傛暟閰嶇疆
+            if (!arg.config.isShow) {
+              return;
+            }
+            let val = "";
+            //澶勭悊涓嬫媺閫夊�肩被鍨�
+            if (arg.type == "option") {
+              if (arg.sdk_arg_value instanceof Array) {
+                //澶氶�夊��
+                let multiNames = "";
+                arg.sdk_arg_value.forEach((val) => {
+                  let opV = arg.valueOptions.find((opt) => opt.value == val);
+                  multiNames += opV.name + " ";
+                });
+                val = multiNames;
+              } else {
+                let res = arg.valueOptions.find(
+                  (opt) => opt.value == arg.sdk_arg_value
+                );
+                val = res.name;
+              }
+            }
+            if (arg.operator == "range") {
+              let valRange = "";
+
+              valRange = arg.sdk_arg_value.replace(",", "-");
+              defaultArgDesc += `${arg.name}${
+                arg.operators[0].name
+              }${valRange}${arg.unit || ""}, `;
+            } else {
+              defaultArgDesc += `${arg.name}${arg.operators[0].name}${
+                arg.type == "option" ? val : arg.sdk_arg_value
+              }${arg.unit || ""}, `;
+            }
+          });
+          defaultArgDesc = defaultArgDesc.substring(
+            0,
+            defaultArgDesc.length - 2
+          );
+
+          //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-3)+defaultArgDesc.substring(defaultArgDesc.length-1,defaultArgDesc.length);
+          //defaultArgDesc = defaultArgDesc.substring(0,defaultArgDesc.length-1);
+
+          //澶勭悊鍙�夐」鍙傛暟
+
+          let optArgs = sdk.optArg.map((arg) => ({
+            operator: arg.operator,
+            operator_type: arg.type,
+            sdk_arg_alias: arg.alias,
+            sdk_arg_value: arg.sdk_arg_value,
+            sort: arg.sort,
+          }));
+          //灏嗗閫夐」鐨勫�兼嫾鎴愬瓧绗︿覆
+          optArgs.forEach((one) => {
+            if (one.sdk_arg_value instanceof Array) {
+              one.sdk_arg_value = one.sdk_arg_value.join();
+            }
+          });
+          let optArgDesc = " ";
+          sdk.optArg.forEach((arg) => {
+            let val = "";
+            let valRange = "";
+
+            //澶勭悊涓嬫媺閫夊�肩被鍨�
+            if (arg.type == "option") {
+              if (arg.sdk_arg_value instanceof Array) {
+                //澶氶�夊��
+                let multiNames = "";
+                arg.sdk_arg_value.forEach((val) => {
+                  let opV = arg.valueOptions.find((opt) => opt.value == val);
+                  multiNames += opV.name + " ";
+                });
+                val = multiNames;
+              } else {
+                let res = arg.valueOptions.find(
+                  (opt) => opt.value == arg.sdk_arg_value
+                );
+
+                val = res.name;
+              }
+            }
+
+            let operatorSelected = arg.operators.find(
+              (opr) => opr.operator == arg.operator
+            );
+            optArgDesc += `,${arg.name}${operatorSelected.name}${
+              arg.type == "option" ? val : arg.sdk_arg_value
+            }${arg.unit || ""}, `;
+          });
+          //灏嗗閫夐」鐨勫�兼嫾鎴愬瓧绗︿覆
+          defaultArgs.forEach((one) => {
+            if (one.sdk_arg_value instanceof Array) {
+              one.sdk_arg_value = one.sdk_arg_value.join();
+            }
+          });
+          optArgDesc =
+            optArgDesc.substring(0, optArgDesc.length - 2) +
+            optArgDesc.substring(optArgDesc.length - 1, optArgDesc.length);
+          optArgDesc += ")";
+          tempObj.sdk_set = defaultArgs.concat(optArgs);
+
+          groupRule.rules.push(tempObj);
+
+          let rule_with_pre = "";
+          if (sdk.rule_with_pre) {
+            switch (sdk.rule_with_pre) {
+              case "&&":
+                rule_with_pre = " and ";
+                break;
+              case "||":
+                rule_with_pre = " or ";
+                break;
+              case "=>":
+                rule_with_pre = " -> ";
+                break;
+              case "!=>":
+                rule_with_pre = " !-> ";
+                break;
+              default:
+                rule_with_pre = "";
+            }
+          }
+          group_text += `${
+            rule_with_pre ? "<br/>" + rule_with_pre + "<br/>" : ""
+          } <span style="background-color:RGB(183,183,183);">${
+            sdk.sdkObj.sdk_name
+          }</span>  ${sdk.polygonObj.name}  ${defaultArgDesc}${optArgDesc}`;
+
+          if (
+            group_text.charAt(group_text.length - 3) == "," &&
+            group_text.charAt(group_text.length - 2) == " " &&
+            group_text.charAt(group_text.length - 1) == ")"
+          ) {
+            group_text =
+              group_text.substring(0, group_text.length - 3) +
+              group_text.substring(group_text.length - 2, group_text.length);
+          }
+        });
+      }
+
+      groupRule.text = group_text;
+      groupRule.id = this.group_id;
+      return groupRule;
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+body {
+  font-size: 12px;
+}
+.edit-rules-box {
+  width: 100%;
+  padding: 0px;
+  box-sizing: border-box;
+  .sub-rules-box {
+    width: 71%;
+    min-width: 1127.4px;
+    min-height: 50px;
+    border-top: 1px solid #eee;
+    padding-top: 7px;
+
+    box-sizing: border-box;
+    padding-bottom: 38px;
+    .task-rules-button {
+      text-align: right;
+      margin: 15px;
+    }
+    .config-item {
+      background: #f8f9f8;
+      padding: 15px 25px;
+      margin-bottom: 52px;
+      position: relative;
+      .el-select {
+        width: 225px !important;
+      }
+      .init-sdk {
+        margin-right: 30px;
+      }
+      .connection {
+        background: #fff;
+        position: absolute;
+        width: 100%;
+        top: -40px;
+      }
+      .top-line {
+        height: 30px;
+        .left {
+          float: left;
+          display: flex;
+        }
+        .right {
+          float: right;
+          cursor: pointer;
+          .del {
+            margin-right: 10px;
+            color: rgb(231, 76, 60);
+          }
+          .collapse {
+            font-size: 13px;
+            display: inline-block;
+            padding: 5px;
+            cursor: pointer;
+          }
+        }
+      }
+      .argums {
+        position: relative;
+        // width: calc(100% - 25px);
+        // top: 43px;
+        // left: 0;
+        // padding-left: 25px;
+        // background: #f8f9f8;
+        .argums-item {
+          display: flex;
+          align-items: center;
+          margin: 7px 0;
+          .arg-name,
+          .operator-name {
+            margin-right: 30px;
+          }
+          .arg-val {
+            width: 245px;
+            span {
+              margin-left: 6px;
+            }
+            .range-min,
+            .range-max {
+              width: 88px;
+              .el-input__inner {
+                height: 28px;
+              }
+            }
+            .devide {
+              display: inline-block;
+              width: 30px;
+              height: 1px;
+              background: #c5c5c5;
+              vertical-align: top;
+              margin: 14px 10px 0;
+            }
+          }
+        }
+        .el-input {
+          width: 225px;
+        }
+      }
+    }
+    .btn-add {
+      margin: 0 25px 15px;
+      margin-top: -38px;
+      .el-button {
+        width: 370px;
+        cursor: pointer;
+      }
+    }
+  }
+
+  .el-button--text {
+    text-decoration: unset;
+  }
+  .el-input.is-disabled .el-input__inner {
+    background: #fafafa;
+    color: #606266;
+  }
+  p {
+    text-align: left;
+    // padding: 10px;
+    box-sizing: border-box;
+  }
+
+  .task-blank {
+    float: left;
+    font-family: PingFangSC-Regular;
+    font-size: 12px;
+    color: #cccccc;
+    margin-top: 5px;
+  }
+
+  .btn {
+    cursor: pointer;
+    color: #3d68e1;
+    margin-left: 10px;
+    font-size: 14px;
+  }
+}
+</style>
diff --git a/src/views/hashrate/CameraManage/CameraRules/components/scene/SlideScene.vue b/src/views/hashrate/CameraManage/CameraRules/components/scene/SlideScene.vue
new file mode 100644
index 0000000..20878a5
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/components/scene/SlideScene.vue
@@ -0,0 +1,286 @@
+<template>
+  <div class="swiper-box" v-if="sceneData">
+    <p class="task-tip" v-if="sceneData.length == 0">鏆傛棤鍦烘櫙锛岃寮�濮嬪垱寤�</p>
+    <div class="swiperArea">
+      <swiper
+        ref="sceneSwiper"
+        v-if="sceneData.length >= 1"
+        :options="swiperOption"
+        class="swiper-box-container"
+      >
+        <swiper-slide v-for="item in sceneData" :key="item.id + 's'">
+          <div class="wrap-box">
+            <div class="inner" v-if="item.rules">
+              <div class="scenario-icon">
+                <div class="single" v-if="item.rules.length == 1">
+                  <!-- <svg class="icon" aria-hidden="true" style="font-size:4rem;">
+                    <use :xlink:href="`#${item.rules[0].icon}`" />
+                  </svg>-->
+                  <img
+                    class="baseImg"
+                    :src="
+                      item.rules[0].icon_blob &&
+                      item.rules[0].icon_blob.indexOf(',') > 0
+                        ? item.rules[0].icon_blob
+                        : `data:image/png;base64,${item.rules[0].icon_blob}`
+                    "
+                    alt
+                  />
+                </div>
+                <div class="double" v-else-if="item.rules.length == 2">
+                  <!-- <svg class="icon" aria-hidden="true" style="font-size:2rem;">
+                    <use :xlink:href="`#${rule.icon}`" />
+                  </svg>-->
+                  <img
+                    class="baseImg"
+                    v-for="(rule, index) in item.rules"
+                    :key="index"
+                    :src="
+                      item.rules[index].icon_blob &&
+                      item.rules[index].icon_blob.indexOf(',') > 0
+                        ? item.rules[index].icon_blob
+                        : `data:image/png;base64,${rule.icon_blob}`
+                    "
+                    alt
+                  />
+                </div>
+                <div class="third" v-else-if="item.rules.length == 3">
+                  <!-- <svg class="icon" aria-hidden="true" style="font-size:2rem;">
+                    <use :xlink:href="`#${rule.icon}`" />
+                  </svg>-->
+                  <img
+                    v-for="(rule, index) in item.rules"
+                    :key="'t' + index"
+                    class="baseImg"
+                    :src="
+                      item.rules[index].icon_blob &&
+                      item.rules[index].icon_blob.indexOf(',') > 0
+                        ? item.rules[index].icon_blob
+                        : `data:image/png;base64,${rule.icon_blob}`
+                    "
+                    alt
+                  />
+                </div>
+                <div class="four" v-else-if="item.rules.length == 4">
+                  <!-- <svg class="icon" aria-hidden="true" style="font-size:2rem;">
+                    <use :xlink:href="`#${rule.icon}`" />
+                  </svg>-->
+                  <img
+                    v-for="(rule, index) in item.rules"
+                    :key="'f' + index"
+                    class="baseImg"
+                    :src="
+                      item.rules[index].icon_blob &&
+                      item.rules[index].icon_blob.indexOf(',') > 0
+                        ? item.rules[index].icon_blob
+                        : `data:image/png;base64,${rule.icon_blob}`
+                    "
+                    alt
+                  />
+                </div>
+              </div>
+              <div class="scenario-name">{{ item.scene_name }}</div>
+            </div>
+          </div>
+        </swiper-slide>
+      </swiper>
+    </div>
+
+    <div class="swiper-pre-border" v-show="sceneData.length > 4">
+      <div class="icon-btn" slot="button-prev">
+        <i class="iconfont">&#xe618;</i>
+      </div>
+    </div>
+    <div class="swiper-next-border" v-show="sceneData.length > 4">
+      <div class="icon-btn" slot="button-next">
+        <i class="iconfont">&#xe623;</i>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["sceneData"],
+
+  data() {
+    return {
+      swiperOption: {
+        slidesPerView: 4,
+        spaceBetween: 20,
+        pagination: {
+          el: ".swiper-pagination",
+          clickable: true,
+        },
+        navigation: {
+          nextEl: ".swiper-next-border",
+          prevEl: ".swiper-pre-border",
+        },
+        observer: true, //淇敼swiper鑷繁鎴栧瓙鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+        observeParents: true, //淇敼swiper鐨勭埗鍏冪礌鏃讹紝鑷姩鍒濆鍖杝wiper
+      },
+      mySwiper: {},
+    };
+  },
+};
+</script>
+
+<style lang="scss">
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+.task-tip {
+  font-family: PingFangSC-Regular;
+  font-size: 12px;
+  color: #cccccc;
+  margin-top: 10%;
+}
+.wrap-box {
+  width: 100%;
+  height: 100%;
+  display: inline-block;
+  .inner {
+    height: 100%;
+    box-sizing: border-box;
+    position: relative;
+    font-size: 14px;
+    transition: all 1s;
+    background: #ffffff;
+    border: 1px solid #e9ebee;
+    border-radius: 5px;
+    margin: auto;
+
+    .scenario-icon {
+      .single,
+      .double,
+      .third,
+      .four {
+        width: 100%;
+        position: relative;
+        display: flex;
+        flex-wrap: wrap;
+        justify-content: center;
+      }
+      .single {
+        margin-top: 20px;
+        text-align: center;
+
+        img {
+          width: 70px;
+          height: 70px;
+        }
+      }
+      .double {
+        margin-top: 35px;
+        display: flex;
+
+        img {
+          width: 40px;
+          height: 40px;
+
+          &:nth-child(1) {
+            margin-right: 10px;
+          }
+        }
+      }
+      .third {
+        margin-top: 20px;
+        display: flex;
+        flex-wrap: wrap;
+        justify-content: center;
+        img {
+          width: 30px;
+          height: 30px;
+
+          &:nth-child(1) {
+            margin-right: 10px;
+          }
+
+          &:nth-child(3) {
+            margin-top: 10px;
+          }
+        }
+      }
+      .four {
+        margin-top: 20px;
+        display: flex;
+        flex-wrap: wrap;
+        justify-content: center;
+        img {
+          width: 30px;
+          height: 30px;
+
+          &:nth-child(1) {
+            margin-right: 10px;
+          }
+
+          &:nth-child(3) {
+            margin-right: 10px;
+            margin-top: 10px;
+          }
+
+          &:nth-child(4) {
+            margin-top: 10px;
+          }
+        }
+      }
+    }
+    .scenario-name {
+      width: 100%;
+      font-size: 12px;
+      color: #5f5f5f;
+      text-align: center;
+      position: absolute;
+      bottom: 20px;
+      left: 0;
+      word-break: break-all;
+    }
+  }
+}
+
+.swiper-box {
+  position: relative;
+  .swiperArea {
+    margin: 0 54px;
+  }
+
+  .swiper-slide {
+    height: 150px;
+  }
+
+  .swiper-pre-border {
+    position: absolute;
+    bottom: 75px;
+    left: 0px;
+    cursor: pointer;
+
+    i {
+      font-size: 32px;
+      color: rgb(229, 229, 229);
+    }
+  }
+
+  .swiper-next-border {
+    position: absolute;
+    bottom: 75px;
+    right: 0px;
+    cursor: pointer;
+
+    i {
+      font-size: 32px;
+      color: rgb(229, 229, 229);
+    }
+  }
+
+  .swiper-button-disabled {
+    cursor: not-allowed;
+    i {
+      color: rgb(245, 245, 245);
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/hashrate/CameraManage/CameraRules/index.vue b/src/views/hashrate/CameraManage/CameraRules/index.vue
new file mode 100644
index 0000000..2b05257
--- /dev/null
+++ b/src/views/hashrate/CameraManage/CameraRules/index.vue
@@ -0,0 +1,970 @@
+<template>
+  <div class="s-separate-rules">
+    <div class="top">
+      <div class="left">
+        <div class="left-top">
+          <!-- 鍦烘櫙鍙婅鍒� -->
+          <div class="left-top-left">
+            <div class="title">鍦烘櫙</div>
+            <slide-scene :sceneData="Camera.rules"></slide-scene>
+          </div>
+
+          <!-- 绠楀姏淇℃伅杩涘害鏉� -->
+          <div class="left-top-middle">
+            <div class="title">绠楀姏淇℃伅</div>
+            <sysinfo :stroke="20" v-if="showSysInfo" />
+          </div>
+        </div>
+        <div class="left-bottom">
+          <!-- 瀹炴椂绠楀姏淇℃伅 -->
+          <HashrateCard
+            class="left-bottom-left"
+            title="瀹炴椂绠楀姏"
+            :total="`${PollData.RealTimeValidCount}`"
+            :ValidCount="`${PollData.RealTimeSum}`"
+            :InValidCount="`${PollData.RealTimeInvalid}`"
+            :RunningCount="`${PollData.RealTimeRun}`"
+            :NoDeal="`${PollData.RealTimeNoDeal}`"
+          ></HashrateCard>
+
+          <!-- 杞绠楀姏淇℃伅 -->
+          <HashrateCard
+            class="left-bottom-middle"
+            title="杞绠楀姏"
+            :total="`${PollData.PollValidCount}`"
+            :ValidCount="`${PollData.PollSum}`"
+            :InValidCount="`${PollData.PollInvalid}`"
+            :RunningCount="`${PollData.PollRun}`"
+            :NoDeal="`${PollData.PollNoDeal}`"
+          ></HashrateCard>
+        </div>
+      </div>
+
+      <!-- 缁樺埗鍖哄煙canvas -->
+      <div class="right">
+        <div class="title">缁樺埗鍖哄煙</div>
+        <div class="button draw" @click="drawBaseImg">缁樺埗鍖哄煙</div>
+        <polygon-canvas
+          class="cavas"
+          ref="canvas"
+          v-if="showCanvas"
+          v-loading="loading"
+          element-loading-text="鍒锋柊涓紝璇风◢绛�..."
+          element-loading-background="rgba(0, 0, 0, 0.8)"
+          :isShowDrawArrow="false"
+          :disabled="false"
+          :snapshot_url="Camera.baseImg"
+          :canvasDataShow="Camera.canvasData"
+          :currentCameraId="Camera.cameraId"
+          :loading="Camera.loading"
+          :canvasWidth="canvasWidth"
+          :canvasHeight="canvasHeight"
+          @fromCanvas="getCanvasData"
+          @changeLoading="changeLoading"
+          @refresh="refresh"
+        ></polygon-canvas>
+      </div>
+    </div>
+
+    <!-- 鐙珛鍦烘櫙鍖哄煙 -->
+    <div class="SeparateRules">
+      <div class="title">鐙珛鍦烘櫙</div>
+      <div class="control">
+        <i class="iconfont" @click="showSdkBox = true">&#xe650;</i>
+        <i class="iconfont">&#xe64e;</i>
+        <i class="iconfont">&#xe64f;</i>
+      </div>
+
+      <div class="content">
+        <!-- 鎽勫儚鏈� -->
+        <CameraBox
+          :camera="Camera"
+          id="separate_camera"
+          @addSeparateRule="addSeparateRule"
+        ></CameraBox>
+
+        <!-- 鍦烘櫙鍖哄煙 -->
+        <div class="RuleArea">
+          <template v-if="SeparateRules.length > 0">
+            <RuleItem
+              v-for="(item, index) in SeparateRules"
+              :key="index"
+              :rule="item"
+              :id="'rule_' + index"
+              @edit="editSeparateRules(item, index)"
+              @addSdk="addSdk('separate', index)"
+              @backToOrigin="backToOrigin($event, item)"
+            ></RuleItem>
+          </template>
+
+          <div class="empty" v-else>
+            <img src="/images/hashrate/鐙珛鍦烘櫙绌洪〉闈�.png" alt="" />
+            <div class="des">鏆傛棤鐙珛鍦烘櫙</div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <!-- 娣诲姞鍦烘櫙寮圭獥 -->
+    <AddRuleBox
+      :type="ruleType"
+      :editData="editData"
+      v-if="showAddBox"
+      @close="showAddBox = false"
+      @save="getNewRule"
+    ></AddRuleBox>
+
+    <SdkBox v-if="showSdkBox" @close="showSdkBox = false"> </SdkBox>
+
+    <SdkSettingBox
+      v-if="showSdkSettingBox"
+      @close="showSdkSettingBox = false"
+      @getNewSdk="getNewSdk"
+      :Cameras="[Camera]"
+    ></SdkSettingBox>
+
+    <!-- 閬僵灞� -->
+    <div class="mask" v-if="showAddBox || showSdkSettingBox"></div>
+
+    <div class="bottom" style="display: none">
+      <div class="devide"></div>
+      <div class="bottom-right">
+        <div class="draw-and-time-box">
+          <div class="draw-box">
+            <div class="draw-box-title">
+              <b style="font-size: 14px">缁樺埗鍖哄煙</b>
+              <span
+                class="el-dropdown-link"
+                @click="drawBaseImg"
+                style="position: relative; top: 5px; cursor: pointer"
+              >
+                <i class="iconfont iconbianji1" style="font-size: 28px"></i>
+              </span>
+            </div>
+            <div style="width: 590px; height: 16px">
+              <!--  <b style="font-size: 14px">{{
+                Camera.camearInfo.alias
+                  ? Camera.camearInfo.alias
+                  : Camera.camearInfo.name
+              }}</b> -->
+            </div>
+            <div class="img-box">
+              <template v-if="TreeDataPool.treeActiveName == 'camera'">
+                <polygon-canvas
+                  class="cavas"
+                  ref="canvas"
+                  v-if="showCanvas"
+                  v-loading="loading"
+                  element-loading-text="鍒锋柊涓紝璇风◢绛�..."
+                  element-loading-background="rgba(0, 0, 0, 0.8)"
+                  :isShowDrawArrow="false"
+                  :disabled="false"
+                  :snapshot_url="Camera.baseImg"
+                  :canvasDataShow="Camera.canvasData"
+                  :currentCameraId="Camera.cameraId"
+                  :loading="Camera.loading"
+                  :canvasWidth="canvasWidth"
+                  :canvasHeight="canvasHeight"
+                  @fromCanvas="getCanvasData"
+                  @changeLoading="changeLoading"
+                  @refresh="refresh"
+                ></polygon-canvas>
+              </template>
+              <template v-else>
+                <div style="width: 100%" v-loading="getStackFileLoading">
+                  <swiper
+                    ref="swiper"
+                    :auto-update="true"
+                    :options="canvasSwiperOption"
+                    @slideChange="swiperSlideChange"
+                    class="swiper-box-container2"
+                    style="width: 100%"
+                  >
+                    <swiper-slide
+                      v-for="(data, index) in swipercanvasData"
+                      :key="index"
+                    >
+                      <div>
+                        <b
+                          class="video-title"
+                          style="font-size: 14px; margin-top: -10px"
+                          >{{ data.name }}</b
+                        >
+                        <polygon-canvas
+                          class="cavas"
+                          ref="canvas"
+                          v-if="showCanvas"
+                          v-loading="loading"
+                          element-loading-text="鍒锋柊涓紝璇风◢绛�..."
+                          element-loading-background="rgba(0, 0, 0, 0.8)"
+                          :isShowDrawArrow="false"
+                          :isShowRefresh="false"
+                          :sourceType="data.type"
+                          :disabled="false"
+                          :snapshot_url="data.baseImg"
+                          :canvasDataShow="Camera.canvasData"
+                          :currentCameraId="data.stackId"
+                          :loading="data.loading"
+                          :canvasWidth="canvasWidth"
+                          :canvasHeight="canvasHeight"
+                          @fromCanvas="getCanvasData"
+                          @changeLoading="changeLoading"
+                        ></polygon-canvas>
+                      </div>
+                    </swiper-slide>
+                  </swiper>
+                  <div
+                    class="swiper-local-prev"
+                    v-show="swipercanvasData.length > 1"
+                    @click="prevClick"
+                  >
+                    <div class="icon-btn" slot="button-prev">
+                      <i class="iconfont iconzuo"></i>
+                    </div>
+                  </div>
+                  <div
+                    class="swiper-local-next"
+                    v-show="swipercanvasData.length > 1"
+                    @click="nextClick"
+                  >
+                    <div class="icon-btn" slot="button-next">
+                      <i class="iconfont iconyou1"></i>
+                    </div>
+                  </div>
+                </div>
+              </template>
+            </div>
+          </div>
+          <div style="float: left; width: calc(10% - 90px); height: 100%"></div>
+          <div
+            class="time-box"
+            style="
+              width: calc(90% + 90px - 576px);
+              overflow-x: auto;
+              overflow-y: hidden;
+            "
+          >
+            <p style="text-align: left; padding: 10px; box-sizing: border-box">
+              <b style="font-size: 14px">鏃堕棿娈�</b>
+            </p>
+            <time-slider ref="timeSlider" :type="'sep'" />
+          </div>
+        </div>
+
+        <scene-rule
+          :seletedCameras="[Camera]"
+          :tableRuleList="Camera.rules"
+          :onSaveScene="saveSceneRule"
+          @delete-rule="delScenRule"
+        ></scene-rule>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { jsPlumb } from "jsplumb";
+
+import { savePolygon } from "@/api/polygon";
+
+import { pasteRules } from "@/api/task";
+
+import { saveCameraScene, getLinkSceneRule } from "@/api/scene";
+
+import { changeRunType } from "@/api/pollConfig";
+import { findAllFileByStackId } from "@/api/localVedio";
+import VideoRuleData from "@/Pool/VideoRuleData";
+
+import TimeSlider from "./components/TimeSlider";
+import polygonCanvas from "@/components/canvas";
+import Sysinfo from "@/components/subComponents/SystemInfo";
+import SceneRule from "./components/SceneRule";
+import SlideScene from "./components/scene/SlideScene";
+import HashrateCard from "@/views/hashrate/CameraManage/CameraRules/components/HashrateCard";
+import CameraBox from "@/views/hashrate/CameraManage/CameraRules/components/CameraBox";
+import RuleItem from "@/views/hashrate/CameraManage/CameraRules/components/RuleItem";
+import AddRuleBox from "@/views/hashrate/CameraManage/CameraRules/components/AddRuleBox";
+import SdkBox from "@/views/hashrate/CameraManage/CameraRules/components/SdkBox";
+import SdkSettingBox from "@/views/hashrate/CameraManage/CameraRules/components/SdkSettingBox";
+
+export default {
+  components: {
+    TimeSlider,
+    polygonCanvas,
+    Sysinfo,
+    SceneRule,
+    SlideScene,
+    HashrateCard,
+    CameraBox,
+    RuleItem,
+    AddRuleBox,
+    SdkBox,
+    SdkSettingBox,
+  },
+  directives: {
+    focus: {
+      inserted: function (el) {
+        el.querySelector("input").focus();
+      },
+    },
+  },
+  computed: {
+    cameraType() {
+      return this.TreeDataPool.treeActiveName === "camera"
+        ? "camera"
+        : "dataStack";
+    },
+    selectedCameraIds() {
+      return this.TreeDataPool.selectedNodes;
+    },
+  },
+  data() {
+    return {
+      loading: false,
+      Camera: new VideoRuleData(),
+      Carmeras: [],
+      runType: -1,
+      getStackFileLoading: false,
+      canvasSwiperOption: {
+        grabCursor: true,
+        pagination: {
+          el: ".swiper-pagination",
+          type: "fraction",
+        },
+        navigation: {
+          nextEl: ".swiper-local-next",
+          prevEl: ".swiper-local-prev",
+        },
+      },
+      plumbIns: null,
+      showAddBox: false,
+      ruleType: "",
+      showSdkBox: false,
+      showSdkSettingBox: false,
+      editData: {},
+      addData: {},
+      // swiperOption: {
+      //   slidesPerView: 5,
+      //   spaceBetween: 8,
+      //   pagination: {
+      //     el: ".swiper-pagination",
+      //     clickable: true
+      //   },
+      //   navigation: {
+      //     nextEl: ".swiper-next-border",
+      //     prevEl: ".swiper-pre-border"
+      //   }
+      // },
+      tableRuleList: [],
+      SeparateRules: [], //鐙珛鍦烘櫙
+      cameraId: "",
+      showSysInfo: false,
+      showCanvas: true,
+      canvasWidth: 568,
+      canvasHeight: 320,
+      stackId: "",
+      swiperIndex: 0,
+      swipercanvasData: [],
+      stackFilesPage: 1,
+      stackFilesSize: 5,
+    };
+  },
+  created() {
+    document.querySelector("html").style["min-width"] = "1920px";
+    // 鍒濆鍖栬繛绾垮彉閲�
+    this.plumbIns = jsPlumb.getInstance();
+  },
+  mounted() {
+    this.PollData.statistics();
+  },
+  destroyed() {
+    document.querySelector("html").style["min-width"] = "1280px";
+  },
+  watch: {
+    "Camera.cameraId": {
+      handler(n, o) {
+        if (n) {
+          if (this.TreeDataPool.treeActiveName == "dataStack") {
+            this.stackFilesPage = 1;
+            this.stackFilesSize = 5;
+            this.stackId = n;
+            if (this.stackId) {
+              this.swipercanvasData = [];
+              this.getStackFiles();
+            }
+          }
+        }
+      },
+    },
+  },
+  methods: {
+    prevClick() {
+      if (this.swiperIndex == 0) {
+        if (this.stackFilesPage > 1) {
+          this.stackFilesPage--;
+          this.getStackFiles(true);
+        } else {
+          this.$message({
+            type: "info",
+            message: "褰撳墠宸叉槸绗竴椤�",
+          });
+        }
+      }
+    },
+    nextClick() {
+      if (this.swiperIndex == this.swipercanvasData.length - 1) {
+        this.stackFilesPage++;
+        this.getStackFiles(true);
+      }
+    },
+    getStackFiles(onClick = false) {
+      this.getStackFileLoading = true;
+      let _this = this;
+      findAllFileByStackId({
+        name: "",
+        stackId: this.stackId,
+        page: this.stackFilesPage,
+        size: this.stackFilesSize,
+        type: 0,
+      })
+        .then((res) => {
+          if (res && res.success) {
+            if (res.data.dataList.length > 0) {
+              this.swipercanvasData = [];
+              this.swipercanvasData = res.data.dataList.map((item) => {
+                return {
+                  name: item.name,
+                  stackId: item.stack_id,
+                  baseImg:
+                    item.type == 2
+                      ? `/files/${item.path.substr(
+                          item.path.lastIndexOf("/") + 1
+                        )}`
+                      : item.snapshot_url,
+                  type: item.type,
+                  id: item.id,
+                  loading: false,
+                };
+              });
+              this.swiperIndex = 0;
+              this.$refs.swiper.swiper.activeIndex = 0;
+            } else {
+              if (onClick) {
+                this.$message({
+                  type: "warning",
+                  message: "宸叉棤鏇村鏁版嵁!",
+                });
+              }
+            }
+          } else {
+            this.$message({
+              type: "error",
+              message: "鏁版嵁璇锋眰澶辫触,璇风◢鍚庨噸璇�!",
+            });
+          }
+          this.getStackFileLoading = false;
+        })
+        .catch((e) => {
+          this.getStackFileLoading = false;
+        });
+    },
+    swiperSlideChange() {
+      this.swiperIndex = this.$refs.swiper.swiper.activeIndex;
+    },
+
+    drawBaseImg() {
+      if (Array.isArray(this.$refs.canvas)) {
+        if (this.$refs.canvas.length > 0) {
+          this.$refs.canvas[0].showModal();
+        }
+      } else {
+        this.$refs.canvas.showModal();
+      }
+    },
+    getCanvasData(data) {
+      let polyon = { ...data };
+      polyon.camera_id = this.Camera.cameraId;
+      savePolygon(polyon).then((rsp) => {
+        this.Camera.getPolygon();
+        //this.Camera.getCameraTask();
+      });
+    },
+    refresh(url) {
+      this.Camera.baseImg = url;
+    },
+    // 鍒濆鍖栨憚鍍忔満淇℃伅锛岀埗缁勪欢璋冪敤
+    async initCameraData(id) {
+      //鑾峰彇鐙珛鍦烘櫙
+      let newCamera = new VideoRuleData();
+      if (id && id !== "") {
+        this.loading = false;
+        newCamera.cameraId = id;
+        await newCamera.update();
+      }
+
+      this.Camera = newCamera;
+      this.SeparateRules = this.Camera.rules;
+
+      this.$nextTick(() => {
+        this.connectLine();
+      });
+
+      this.$refs.timeSlider.activeTab = this.VideoManageData.TimeRules[0].id;
+      this.showSysInfo = true;
+      // 鍒ゆ柇姝e湪鎵ц瀹炴椂鎴栬�呰疆璇换鍔�
+      this.PollData.CameraList.forEach((element) => {
+        if (element.id === newCamera.cameraId) {
+          this.runType = element.run_type;
+        }
+      });
+
+      // 鑾峰彇娣峰悎鍦烘櫙
+      this.showRules(id);
+    },
+
+    // 鑾峰彇娣峰悎鍦烘櫙
+    showRules(id) {
+      let rules = [];
+
+      //澶氶�夋憚鍍忔満妯″紡
+      if (this.selectedCameraIds.length && this.TreeDataPool.multiple) {
+        getLinkSceneRule({ cameraIds: this.selectedCameraIds })
+          .then((rsp) => {
+            if (rsp && rsp.success) {
+              rules = rsp.data;
+              // 缁熶竴瑙勫垯缂栬緫鐨勬暟鎹粨鏋�
+              for (let i = 0; i < rules.length; i++) {
+                rules[i].group_rules = rules[i].rules;
+              }
+            }
+          })
+          .catch(() => {});
+
+        //鍗曢�夋憚鍍忔満妯″紡
+      } else if (id) {
+        getLinkSceneRule({ cameraIds: [id] })
+          .then((rsp) => {
+            if (rsp && rsp.success) {
+              rules = rsp.data;
+              // 缁熶竴瑙勫垯缂栬緫鐨勬暟鎹粨鏋�
+              for (let i = 0; i < rules.length; i++) {
+                rules[i].group_rules = rules[i].rules;
+              }
+
+              this.$set(this.Camera, "rules", this.Camera.rules.concat(rules));
+            }
+          })
+          .catch(() => {});
+      }
+    },
+
+    saveSceneRule(groupRule) {
+      const payload = { ...groupRule };
+      payload.cameraIds = [this.Camera.cameraId];
+      let _this = this;
+      saveCameraScene(payload).then((rsp) => {
+        if (rsp && rsp.success) {
+          this.Camera.update();
+          this.$notify({
+            type: "success",
+            message: "绛栫暐淇濆瓨鎴愬姛锛�",
+          });
+          //鍒锋柊宸︿晶鏍�
+
+          _this.$root.$children[0].$children[0].querySearchAsync("camera");
+        }
+      });
+    },
+    delScenRule() {
+      this.Camera.update();
+    },
+    changeLoading(params) {
+      this.loading = params;
+    },
+    //鏄惁杩涜瑙嗛鍒嗘瀽澶勭悊
+    pollEnable(row) {
+      let val = 0;
+      if (row) {
+        if (this.PollData.RealTimeSum < this.PollData.channelTotal) {
+          this.Camera.dealWay = true;
+          val = 1;
+        } else {
+          this.Camera.dealWay = false;
+          val = 0;
+        }
+      } else {
+        this.Camera.dealWay = false;
+        val = -1;
+      }
+      if (this.Camera.cameraId && this.Camera.cameraId !== undefined) {
+        debugger;
+        changeRunType({
+          camera_ids: [this.Camera.cameraId],
+          run_type: val,
+        }).then((rsp) => {
+          if (rsp && rsp.success) {
+            this.$notify({
+              type: "success",
+              message: "閰嶇疆鎴愬姛",
+            });
+          } else {
+            this.$notify({
+              type: "error",
+              message: "閰嶇疆澶辫触",
+            });
+          }
+          this.TreeDataPool.fetchTreeData();
+        });
+      }
+      this.PollData.statisticTaskInfo();
+    },
+    //瀹炴椂銆佽疆璇㈠垏鎹�
+    changePoll(row) {
+      //鍒ゆ柇鏄柊澧炶繕鏄洿鏂�
+      debugger;
+      if (this.Camera.cameraId && this.Camera.cameraId !== undefined) {
+        if (this.PollData.RealTimeSum < this.PollData.channelTotal) {
+          if (row.value) {
+            this.Camera.dealWay = true;
+          } else {
+            this.Camera.dealWay = false;
+          }
+          debugger;
+          changeRunType({
+            camera_ids: [this.Camera.cameraId],
+            run_type: this.Camera.dealWay ? 1 : 0,
+          }).then((rsp) => {
+            if (rsp && rsp.success) {
+              this.$notify({
+                type: "success",
+                message: "閰嶇疆鎴愬姛",
+              });
+            } else {
+              this.$notify({
+                type: "error",
+                message: "閰嶇疆澶辫触",
+              });
+            }
+          });
+        } else {
+          if (this.Camera.dealWay) {
+            this.Camera.dealWay = false;
+            debugger;
+            changeRunType({
+              camera_ids: [this.Camera.cameraId],
+              run_type: this.Camera.dealWay ? 1 : 0,
+            }).then((rsp) => {
+              if (rsp && rsp.success) {
+                this.$notify({
+                  type: "success",
+                  message: "閰嶇疆鎴愬姛",
+                });
+              } else {
+                this.$notify({
+                  type: "error",
+                  message: "閰嶇疆澶辫触",
+                });
+              }
+            });
+          }
+        }
+        this.TreeDataPool.fetchTreeData();
+        this.PollData.statisticTaskInfo();
+      }
+    },
+    //澶嶅埗
+    ctrlC() {
+      this.TreeDataPool.ctrlCameraId = this.Camera.cameraId;
+      this.TreeDataPool.ctrlCameraName = this.Camera.cameraName;
+      this.$notify({
+        type: "success",
+        message: "澶嶅埗绠楁硶鎴愬姛锛�",
+      });
+    },
+    ctrlV() {
+      if (this.Camera.cameraId === this.TreeDataPool.ctrlCameraId) {
+        this.$notify({
+          type: "warning",
+          message: "涓嶈兘绮樿创鏈憚鍍忔満鐨勭畻娉曞埌鏈憚鍍忔満锛�",
+        });
+        return false;
+      }
+      pasteRules({
+        sourceId: this.TreeDataPool.ctrlCameraId,
+        targetIds: [this.Camera.cameraId],
+      })
+        .then((res) => {
+          if (res && res.success) {
+            this.$notify({
+              type: "success",
+              message: "绮樿创绠楁硶鎴愬姛锛�",
+            });
+            this.initCameraData(this.Camera.cameraId);
+          } else {
+            this.$notify({
+              type: "error",
+              message: "绮樿创绠楁硶澶辫触锛�",
+            });
+          }
+        })
+        .catch((err) => {
+          this.$notify({
+            type: "error",
+            message: "绮樿创绠楁硶澶辫触锛�",
+          });
+        });
+    },
+
+    //杩炴帴鐙珛鍦烘櫙杩炵嚎
+    connectLine() {
+      //娓呴櫎涔嬪墠鐨勮繛绾�
+      this.plumbIns.deleteEveryConnection();
+
+      for (let index = 0; index < this.SeparateRules.length; index++) {
+        this.plumbIns.connect({
+          // 瀵瑰簲涓婅堪鍩烘湰姒傚康
+          source: "separate_camera",
+          target: `rule_${index}`,
+          anchor: ["Left", "Right"],
+          connector: index === 0 ? ["Straight"] : ["Bezier", { curviness: 60 }],
+          endpoints: [["Blank", { cssClass: "sourcePoint" }], "Blank"],
+          overlays: [["Arrow", { width: 8, length: 8, location: 1 }]], // overlay
+          // 娣诲姞鏍峰紡
+          paintStyle: { stroke: "#0065FF", strokeWidth: 2 }, // connector
+          endpointStyle: {
+            fill: "#fff",
+            outlineStroke: "#0065FF",
+          }, // endpoint
+        });
+      }
+    },
+
+    //娣诲姞鐙珛鍦烘櫙
+    addSeparateRule() {
+      this.ruleType = "separate";
+      this.showAddBox = true;
+    },
+
+    //鍥炲~鏂扮殑鐙珛鍦烘櫙
+    getNewRule(newRule) {
+      if (newRule.action === "add") {
+        this.SeparateRules.push(newRule.data);
+        this.showAddBox = false;
+        this.$nextTick(() => {
+          this.connectLine();
+        });
+      } else if (newRule.action === "edit") {
+        this.SeparateRules[newRule.data.index].alarm_level =
+          newRule.data.alarm_level;
+        this.SeparateRules[newRule.data.index].scene_name =
+          newRule.data.scene_name;
+        this.SeparateRules[newRule.data.index].desc = newRule.data.desc;
+        this.SeparateRules[newRule.data.index].template_id =
+          newRule.data.template_id;
+        this.SeparateRules[newRule.data.index].time_rule_id =
+          newRule.data.time_rule_id;
+        this.SeparateRules[newRule.data.index].voiceId = newRule.data.voiceId;
+        this.showAddBox = false;
+      }
+    },
+
+    //淇敼鐙珛鍦烘櫙
+    editSeparateRules(item, index) {
+      this.editData = {
+        type: "separate",
+        rule: item,
+        index,
+      };
+      this.addSeparateRule();
+    },
+
+    //娣诲姞绠楁硶
+    addSdk(type, index) {
+      this.addData = {
+        type,
+        index,
+      };
+      this.showSdkBox = false;
+      this.showSdkSettingBox = true;
+    },
+
+    //娣诲姞绠楁硶鍥炶皟
+    getNewSdk(newRule) {
+      if (this.addData.type === "separate") {
+        if (this.SeparateRules[this.addData.index].rules.length > 0) {
+          newRule.rule_with_pre = "&&";
+        }
+        this.SeparateRules[this.addData.index].rules.push(newRule);
+      }
+      this.addData = {};
+    },
+
+    backToOrigin(e, item) {
+      e = item;
+      console.log(e);
+      this.$forceUpdate();
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.s-separate-rules {
+  overflow-x: auto;
+  box-sizing: border-box;
+  padding: 13px 0 20px;
+
+  .title {
+    box-sizing: border-box;
+    margin-bottom: 20px;
+    padding-left: 10px;
+    border-left: 4px solid #0065ff;
+    font-size: 16px;
+    font-weight: 700;
+  }
+
+  .top {
+    display: flex;
+
+    .left-top {
+      display: flex;
+      margin-bottom: 24px;
+
+      .left-top-left {
+        box-sizing: border-box;
+        padding: 20px;
+        width: 608px;
+        height: 232px;
+        margin-right: 24px;
+        background-color: #fff;
+      }
+
+      .left-top-middle {
+        box-sizing: border-box;
+        padding: 20px;
+        flex: 1;
+        width: 292px;
+        height: 232px;
+        background-color: #fff;
+
+        .chart ::v-deep {
+          .row {
+            margin-bottom: 20px;
+          }
+        }
+      }
+    }
+
+    .left-bottom {
+      display: flex;
+
+      .left-bottom-left {
+        width: 450px;
+        height: 146px;
+        box-sizing: border-box;
+        margin-right: 24px;
+        background-color: #fff;
+      }
+
+      .left-bottom-middle {
+        flex: 1;
+        background-color: #fff;
+      }
+    }
+
+    .right {
+      position: relative;
+      box-sizing: border-box;
+      margin-left: 24px;
+      padding: 20px;
+      background: #fff;
+      flex: 1;
+
+      .draw {
+        position: absolute;
+        top: 20px;
+        right: 20px;
+        width: 64px;
+        height: 24px;
+        color: #fff;
+        text-align: center;
+        line-height: 24px;
+        font-size: 12px;
+        background-color: #0065ff;
+      }
+    }
+  }
+
+  .SeparateRules {
+    position: relative;
+    box-sizing: border-box;
+    padding: 20px;
+    margin: 24px 0;
+    background: rgba($color: #fff, $alpha: 0.9);
+
+    .control {
+      position: absolute;
+      display: flex;
+      justify-content: end;
+      top: 20px;
+      right: 20px;
+
+      i {
+        margin-left: 10px;
+        font-size: 24px;
+        color: #0065ff;
+        cursor: pointer;
+
+        &:hover {
+          color: rgb(0, 51, 255);
+        }
+      }
+    }
+
+    .content {
+      display: flex;
+      margin-top: 10px;
+
+      .empty {
+        margin-left: 60px;
+        width: 1220px;
+        height: 198px;
+        border: 1px solid #c0c5cc;
+        border-radius: 5px;
+        text-align: center;
+        background: #f0f5fa;
+        img {
+          margin-top: 14px;
+          width: 250px;
+          height: 150px;
+        }
+
+        .des {
+          margin-top: 2px;
+          color: #666;
+        }
+      }
+    }
+
+    ::v-deep .sourcePoint {
+      margin-top: -4px;
+      margin-left: -6px;
+      width: 4px !important;
+      height: 4px !important;
+      border-radius: 50%;
+      border: 2px solid #0065ff;
+    }
+  }
+
+  .mask {
+    position: absolute;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    background: #000000;
+    opacity: 0.2;
+    z-index: 1;
+  }
+}
+</style>
diff --git a/src/views/hashrate/components/CameraManage.vue b/src/views/hashrate/CameraManage/index.vue
similarity index 64%
rename from src/views/hashrate/components/CameraManage.vue
rename to src/views/hashrate/CameraManage/index.vue
index 397955c..8d6b11b 100644
--- a/src/views/hashrate/components/CameraManage.vue
+++ b/src/views/hashrate/CameraManage/index.vue
@@ -19,14 +19,14 @@
           <div
             class="tab"
             :class="{ active: activeTab === '淇℃伅缁存姢' }"
-            @click="activeTab = '淇℃伅缁存姢'"
+            @click="handleClick('淇℃伅缁存姢')"
           >
             淇℃伅缁存姢
           </div>
           <div
             class="tab"
             :class="{ active: activeTab === '鍦烘櫙閰嶇疆' }"
-            @click="activeTab = '鍦烘櫙閰嶇疆'"
+            @click="handleClick('鍦烘櫙閰嶇疆')"
           >
             鍦烘櫙閰嶇疆
           </div>
@@ -34,22 +34,28 @@
 
         <CameraInfo
           ref="cameraInfo"
-          v-if="activeTab === '淇℃伅缁存姢'"
+          v-show="activeTab === '淇℃伅缁存姢'"
         ></CameraInfo>
+        <CameraRules
+          v-show="activeTab === '鍦烘櫙閰嶇疆'"
+          ref="sepRule"
+        ></CameraRules>
       </div>
     </div>
   </div>
 </template>
 
 <script>
-import CameraLeft from "@/views/hashrate/components/CameraLeft";
-import CameraInfo from "@/views/hashrate/components/CameraInfo";
+import CameraLeft from "@/components/CameraLeft";
+import CameraInfo from "./CameraInfo";
+import CameraRules from "./CameraRules";
 
 import bus from "@/plugin/bus";
 export default {
   components: {
     CameraLeft,
     CameraInfo,
+    CameraRules,
   },
 
   data() {
@@ -66,58 +72,30 @@
         },
       ],
       cluster: "",
-      activeName: "camera-info",
-      buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [],
       intervalTimer: null,
       leftWith: 0,
       screenHeight: 0,
     };
   },
+
   destroyed() {
     this.TreeDataPool.readonly = true;
   },
-  computed: {
-    isAdmin() {
-      if (
-        sessionStorage.getItem("userInfo") &&
-        sessionStorage.getItem("userInfo") !== ""
-      ) {
-        let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username;
-        return loginName === "superadmin" || loginName === "basic";
-      }
 
-      return false;
-    },
-    firstLabeName() {
-      return this.TreeDataPool.treeActiveName === "camera"
-        ? "鎽勫儚鏈轰俊鎭�"
-        : "鏁版嵁鏍堜俊鎭�";
-    },
-  },
   watch: {
-    // 鏁版嵁鏍堜笉鏄剧ず鑱斿姩瑙勫垯锛岄槻姝㈠湪閫変腑鑱斿姩瑙勫垯tab涓垏鎹㈠埌鏁版嵁鏍�
-    "TreeDataPool.treeActiveName": function (val) {
-      if (val === "dataStack" && this.activeName === "linkage-rule") {
-        this.activeName = "camera-info";
-      }
-    },
     "TreeDataPool.selectedNode": function (node) {
-      console.log("00000000000000");
-      if (this.activeName == "camera-info") {
-        console.log("111111111111111");
+      if (this.activeTab == "淇℃伅缁存姢") {
         if (this.TreeDataPool.treeActiveName == "camera") {
-          console.log("2222222222222");
           this.$refs.cameraInfo.selectCamera(node);
         }
-      } else if (this.activeName === "separate-rule") {
-        this.$refs.sepRule.Camera = {};
+      } else if (this.activeTab === "鍦烘櫙閰嶇疆") {
         this.$refs.sepRule.initCameraData(node.id);
       }
     },
     "TreeDataPool.selectedNodes": {
       handler(nodes) {
-        if (this.activeName == "linkage-rule") {
-          this.$refs.linkRule.initCameraData();
+        if (this.activeTab == "鍦烘櫙閰嶇疆") {
+          // this.$refs.sepRule.initCameraData();
         }
       },
       deep: true,
@@ -128,9 +106,9 @@
           return;
         }
         this.$nextTick(() => {
-          if (this.activeName == "camera-info") {
-            this.$refs.dataStackInfo.selectDir(node);
-          } else if (this.activeName == "separate-rule" && node.length !== 0) {
+          if (this.activeTab == "淇℃伅缁存姢") {
+            //   this.$refs.dataStackInfo.selectDir(node);
+          } else if (this.activeTab == "鍦烘櫙閰嶇疆" && node.length !== 0) {
             this.$refs.sepRule.initCameraData(node.id);
           }
         });
@@ -141,22 +119,6 @@
   created() {
     this.PollData.statistics();
     this.TreeDataPool.readonly = false;
-
-    if (this.TreeDataPool.treeActiveName == "camera") {
-      if (this.isShow("cameraAccess:cameraInfo")) {
-        this.activeName = "camera-info";
-      } else if (this.isShow("cameraAccess:selfRule")) {
-        this.activeName = "separate-rule";
-      } else if (this.isShow("cameraAccess:linkRule")) {
-        this.activeName = "linkage-rule";
-      }
-    } else {
-      if (this.isShow("dataStack:cameraInfo")) {
-        this.activeName = "camera-info";
-      } else if (this.isShow("dataStack:selfRule")) {
-        this.activeName = "separate-rule";
-      }
-    }
 
     //  this.TreeDataPool.readonly = true;
     //this.TreeDataPool.gbReadonly = true;
@@ -187,46 +149,36 @@
     }, 10000);
   },
   methods: {
-    isShow(authority) {
-      return (
-        this.isAdmin || this.buttonAuthority.indexOf("," + authority + ",") > -1
-      );
-    },
     handAddDevice(node) {
       let _this = this;
       setTimeout(() => {
         _this.$refs.cameraInfo.addDevice(node);
-        _this.activeName = "camera-info";
+        _this.activeTab = "淇℃伅缁存姢";
       }, 100);
     },
     handAddDIr(node) {
       let _this = this;
       setTimeout(() => {
         _this.$refs.dataStackInfo.addDir(node);
-        _this.activeName = "camera-info";
+        _this.activeTab = "淇℃伅缁存姢";
       }, 100);
     },
-    handleClick(tab, event) {
-      console.log(this.TreeDataPool);
-      this.TreeDataPool.multiple = tab.name === "linkage-rule";
-      if (tab.name === "camera-info") {
+    handleClick(tab) {
+      //杩欎釜鎺у埗鏄惁澶氶��
+      //    this.TreeDataPool.multiple = tab.name === "鍦烘櫙閰嶇疆";
+      this.activeTab = tab;
+      if (tab === "淇℃伅缁存姢") {
         if (this.TreeDataPool.treeActiveName == "camera") {
           this.$refs.cameraInfo.selectCamera(this.TreeDataPool.selectedNode);
         } else if (this.TreeDataPool.treeActiveName == "dataStack") {
           this.$refs.dataStackInfo.selectDir(this.DataStackPool.selectedDir);
         }
-      } else if (tab.name === "separate-rule") {
+      } else if (tab === "鍦烘櫙閰嶇疆") {
         if (this.TreeDataPool.treeActiveName == "camera") {
           this.$refs.sepRule.initCameraData(this.TreeDataPool.selectedNode.id);
         } else if (this.TreeDataPool.treeActiveName == "dataStack") {
           this.$refs.sepRule.initCameraData(this.DataStackPool.selectedDir.id);
         }
-      } else if (this.activeName == "linkage-rule") {
-        this.$refs.linkRule.initCameraData();
-      } else if (this.activeName == "poll-setting") {
-        this.$nextTick(() => {
-          this.$refs.pullSetting.initLineChart();
-        });
       }
     },
   },
@@ -279,6 +231,7 @@
   }
 
   .content {
+    box-sizing: border-box;
     margin-bottom: 60px;
     display: flex;
     align-items: stretch;
diff --git a/src/views/hashrate/components/ClusterCard.vue b/src/views/hashrate/HashManage/components/ClusterCard.vue
similarity index 100%
rename from src/views/hashrate/components/ClusterCard.vue
rename to src/views/hashrate/HashManage/components/ClusterCard.vue
diff --git a/src/views/hashrate/components/ClusterList.vue b/src/views/hashrate/HashManage/components/ClusterList.vue
similarity index 96%
rename from src/views/hashrate/components/ClusterList.vue
rename to src/views/hashrate/HashManage/components/ClusterList.vue
index 8f75bd6..0770a99 100644
--- a/src/views/hashrate/components/ClusterList.vue
+++ b/src/views/hashrate/HashManage/components/ClusterList.vue
@@ -32,8 +32,8 @@
 </template>
 
 <script>
-import ClusterCard from "@/views/hashrate/components/ClusterCard";
-import EquipmentForm from "@/views/hashrate/components/EquipmentForm";
+import ClusterCard from "./ClusterCard";
+import EquipmentForm from "./EquipmentForm";
 export default {
   mounted() {
     this.getEmptyElement();
diff --git a/src/views/hashrate/components/EquipmentForm.vue b/src/views/hashrate/HashManage/components/EquipmentForm.vue
similarity index 99%
rename from src/views/hashrate/components/EquipmentForm.vue
rename to src/views/hashrate/HashManage/components/EquipmentForm.vue
index 09ca6b8..9740c0a 100644
--- a/src/views/hashrate/components/EquipmentForm.vue
+++ b/src/views/hashrate/HashManage/components/EquipmentForm.vue
@@ -107,7 +107,7 @@
 </template>
 
 <script>
-import SettingBox from "@/views/hashrate/components/SettingBox";
+import SettingBox from "./SettingBox";
 export default {
   components: {
     SettingBox,
diff --git a/src/views/hashrate/components/HashCard.vue b/src/views/hashrate/HashManage/components/HashCard.vue
similarity index 98%
rename from src/views/hashrate/components/HashCard.vue
rename to src/views/hashrate/HashManage/components/HashCard.vue
index aae20a1..2d3ff33 100644
--- a/src/views/hashrate/components/HashCard.vue
+++ b/src/views/hashrate/HashManage/components/HashCard.vue
@@ -85,7 +85,7 @@
     flex-wrap: wrap;
     align-items: center;
     .detailItem {
-      margin-top: 6px;
+      padding-top: 6px;
       overflow: hidden;
       box-sizing: border-box;
       width: 50%;
diff --git a/src/views/hashrate/components/SettingBox.vue b/src/views/hashrate/HashManage/components/SettingBox.vue
similarity index 100%
rename from src/views/hashrate/components/SettingBox.vue
rename to src/views/hashrate/HashManage/components/SettingBox.vue
diff --git a/src/views/hashrate/components/HashManage.vue b/src/views/hashrate/HashManage/index.vue
similarity index 96%
rename from src/views/hashrate/components/HashManage.vue
rename to src/views/hashrate/HashManage/index.vue
index f51dcfa..a1caf5e 100644
--- a/src/views/hashrate/components/HashManage.vue
+++ b/src/views/hashrate/HashManage/index.vue
@@ -75,8 +75,8 @@
 </template>
 
 <script>
-import HashCard from "@/views/hashrate/components/HashCard";
-import ClusterList from "@/views/hashrate/components/ClusterList";
+import HashCard from "./components/HashCard";
+import ClusterList from "./components/ClusterList";
 export default {
   components: {
     HashCard,
diff --git a/src/views/hashrate/hashrateDetail/index.vue b/src/views/hashrate/hashrateDetail/index.vue
index bbe5c9d..b4806b0 100644
--- a/src/views/hashrate/hashrateDetail/index.vue
+++ b/src/views/hashrate/hashrateDetail/index.vue
@@ -35,9 +35,9 @@
 
 <script>
 import IndexHeader from "@/components/IndexHeader";
-import AlgManage from "@/views/hashrate/components/AlgManage";
-import HashManage from "@/views/hashrate/components/HashManage";
-import CameraManage from "@/views/hashrate/components/CameraManage";
+import AlgManage from "@/views/hashrate/AlgManage";
+import HashManage from "@/views/hashrate/HashManage";
+import CameraManage from "@/views/hashrate/CameraManage";
 import Footer from "@/components/Footer";
 export default {
   components: {
diff --git a/test.html b/test.html
index ef3dad8..0140930 100644
--- a/test.html
+++ b/test.html
@@ -21,15 +21,19 @@
     margin: 1px;
     flex-grow: 1  ;
     flex-shrink:  0 ;
-    min-width: 90px;
+    width: 90px;
     background-color: pink;
+}
+
+img {
+    width: 100%;
 }
 </style>
 <body>
 
     <div class="box">
-        <div class="child"></div>
-        
+     
+
     </div>
     
     <script>

--
Gitblit v1.8.0