Browse Source

ver:version1
desc:1.足压板显示

xiaoyuzhang 4 years ago
parent
commit
5e73e4e7f8

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="VcsDirectoryMappings">
4
+    <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+  </component>
6
+</project>

+ 485 - 163
.idea/workspace.xml

@@ -1,7 +1,27 @@
1
 <?xml version="1.0" encoding="UTF-8"?>
1
 <?xml version="1.0" encoding="UTF-8"?>
2
 <project version="4">
2
 <project version="4">
3
   <component name="ChangeListManager">
3
   <component name="ChangeListManager">
4
-    <list default="true" id="9ae72f43-a1a0-4e71-8c9a-da776f48ee97" name="Default" comment="" />
4
+    <list default="true" id="9ae72f43-a1a0-4e71-8c9a-da776f48ee97" name="Default" comment="">
5
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/.idea/vcs.xml" />
6
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/renderer/components/Scan.vue" />
7
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/renderer/utils/FunctionSet.js" />
8
+      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/static/server/socketServer.js" />
9
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
10
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/package-lock.json" afterPath="$PROJECT_DIR$/package-lock.json" />
11
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/package.json" afterPath="$PROJECT_DIR$/package.json" />
12
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/index.js" afterPath="$PROJECT_DIR$/src/main/index.js" />
13
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/App.vue" afterPath="$PROJECT_DIR$/src/renderer/App.vue" />
14
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/components/LandingPage.vue" afterPath="$PROJECT_DIR$/src/renderer/components/LandingPage.vue" />
15
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/main.js" afterPath="$PROJECT_DIR$/src/renderer/main.js" />
16
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/router/index.js" afterPath="$PROJECT_DIR$/src/renderer/router/index.js" />
17
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/store/index.js" afterPath="$PROJECT_DIR$/src/renderer/store/index.js" />
18
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/renderer/store/modules/socket.js" afterPath="$PROJECT_DIR$/src/renderer/store/modules/socket.js" />
19
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/static/server/app.js" afterPath="$PROJECT_DIR$/static/server/app.js" />
20
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/static/server/bin/www.js" afterPath="$PROJECT_DIR$/static/server/bin/www.js" />
21
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/static/server/protocal/protocal.js" afterPath="$PROJECT_DIR$/static/server/protocal/protocal.js" />
22
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/static/server/protocal/sendProtocal.js" afterPath="$PROJECT_DIR$/static/server/protocal/sendProtocal.js" />
23
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/static/server/socketClient.js" afterPath="$PROJECT_DIR$/static/server/socketClient.js" />
24
+    </list>
5
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
25
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
6
     <option name="TRACKING_ENABLED" value="true" />
26
     <option name="TRACKING_ENABLED" value="true" />
7
     <option name="SHOW_DIALOG" value="false" />
27
     <option name="SHOW_DIALOG" value="false" />
@@ -10,116 +30,119 @@
10
     <option name="LAST_RESOLUTION" value="IGNORE" />
30
     <option name="LAST_RESOLUTION" value="IGNORE" />
11
   </component>
31
   </component>
12
   <component name="FileEditorManager">
32
   <component name="FileEditorManager">
13
-    <leaf>
14
-      <file leaf-file-name="package.json" pinned="false" current-in-tab="false">
15
-        <entry file="file://$PROJECT_DIR$/package.json">
16
-          <provider selected="true" editor-type-id="text-editor">
17
-            <state relative-caret-position="-14">
18
-              <caret line="36" column="33" lean-forward="false" selection-start-line="36" selection-start-column="33" selection-end-line="36" selection-end-column="33" />
19
-              <folding />
20
-            </state>
21
-          </provider>
22
-        </entry>
23
-      </file>
24
-      <file leaf-file-name="index.js" pinned="false" current-in-tab="false">
25
-        <entry file="file://$PROJECT_DIR$/src/renderer/router/index.js">
26
-          <provider selected="true" editor-type-id="text-editor">
27
-            <state relative-caret-position="0">
28
-              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
29
-              <folding>
30
-                <element signature="e#0#21#0" expanded="true" />
31
-              </folding>
32
-            </state>
33
-          </provider>
34
-        </entry>
35
-      </file>
36
-      <file leaf-file-name="SystemInformation.vue" pinned="false" current-in-tab="false">
37
-        <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage/SystemInformation.vue">
38
-          <provider selected="true" editor-type-id="text-editor">
39
-            <state relative-caret-position="357">
40
-              <caret line="33" column="27" lean-forward="false" selection-start-line="33" selection-start-column="27" selection-end-line="33" selection-end-column="27" />
41
-              <folding />
42
-            </state>
43
-          </provider>
44
-        </entry>
45
-      </file>
46
-      <file leaf-file-name="main.js" pinned="false" current-in-tab="false">
47
-        <entry file="file://$PROJECT_DIR$/src/renderer/main.js">
48
-          <provider selected="true" editor-type-id="text-editor">
49
-            <state relative-caret-position="391">
50
-              <caret line="23" column="27" lean-forward="false" selection-start-line="23" selection-start-column="27" selection-end-line="23" selection-end-column="27" />
51
-              <folding>
52
-                <element signature="e#0#21#0" expanded="true" />
53
-              </folding>
54
-            </state>
55
-          </provider>
56
-        </entry>
57
-      </file>
58
-      <file leaf-file-name="app.js" pinned="false" current-in-tab="false">
59
-        <entry file="file://$PROJECT_DIR$/static/server/app.js">
60
-          <provider selected="true" editor-type-id="text-editor">
61
-            <state relative-caret-position="340">
62
-              <caret line="20" column="28" lean-forward="false" selection-start-line="20" selection-start-column="28" selection-end-line="20" selection-end-column="28" />
63
-              <folding />
64
-            </state>
65
-          </provider>
66
-        </entry>
67
-      </file>
68
-      <file leaf-file-name="socket.js" pinned="false" current-in-tab="false">
69
-        <entry file="file://$PROJECT_DIR$/src/renderer/store/modules/socket.js">
70
-          <provider selected="true" editor-type-id="text-editor">
71
-            <state relative-caret-position="765">
72
-              <caret line="102" column="41" lean-forward="true" selection-start-line="102" selection-start-column="41" selection-end-line="102" selection-end-column="41" />
73
-              <folding />
74
-            </state>
75
-          </provider>
76
-        </entry>
77
-      </file>
78
-      <file leaf-file-name="index.js" pinned="false" current-in-tab="true">
79
-        <entry file="file://$PROJECT_DIR$/src/renderer/store/index.js">
80
-          <provider selected="true" editor-type-id="text-editor">
81
-            <state relative-caret-position="272">
82
-              <caret line="16" column="47" lean-forward="true" selection-start-line="16" selection-start-column="47" selection-end-line="16" selection-end-column="47" />
83
-              <folding>
84
-                <element signature="e#0#21#0" expanded="true" />
85
-              </folding>
86
-            </state>
87
-          </provider>
88
-        </entry>
89
-      </file>
90
-      <file leaf-file-name="global.js" pinned="false" current-in-tab="false">
91
-        <entry file="file://$PROJECT_DIR$/static/server/protocal/global.js">
92
-          <provider selected="true" editor-type-id="text-editor">
93
-            <state relative-caret-position="0">
94
-              <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
95
-              <folding />
96
-            </state>
97
-          </provider>
98
-        </entry>
99
-      </file>
100
-      <file leaf-file-name="socketClient.js" pinned="false" current-in-tab="false">
101
-        <entry file="file://$PROJECT_DIR$/static/server/socketClient.js">
102
-          <provider selected="true" editor-type-id="text-editor">
103
-            <state relative-caret-position="-125">
104
-              <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
105
-              <folding>
106
-                <element signature="e#1275#2365#0" expanded="false" />
107
-              </folding>
108
-            </state>
109
-          </provider>
110
-        </entry>
111
-      </file>
112
-      <file leaf-file-name="www.js" pinned="false" current-in-tab="false">
113
-        <entry file="file://$PROJECT_DIR$/static/server/bin/www.js">
114
-          <provider selected="true" editor-type-id="text-editor">
115
-            <state relative-caret-position="374">
116
-              <caret line="22" column="37" lean-forward="false" selection-start-line="22" selection-start-column="37" selection-end-line="22" selection-end-column="37" />
117
-              <folding />
118
-            </state>
119
-          </provider>
120
-        </entry>
121
-      </file>
122
-    </leaf>
33
+    <splitter split-orientation="horizontal" split-proportion="0.53501403">
34
+      <split-first>
35
+        <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
36
+          <file leaf-file-name="index.js" pinned="false" current-in-tab="false">
37
+            <entry file="file://$PROJECT_DIR$/src/renderer/router/index.js">
38
+              <provider selected="true" editor-type-id="text-editor">
39
+                <state relative-caret-position="306">
40
+                  <caret line="18" column="19" lean-forward="false" selection-start-line="18" selection-start-column="19" selection-end-line="18" selection-end-column="19" />
41
+                  <folding>
42
+                    <element signature="e#0#21#0" expanded="true" />
43
+                  </folding>
44
+                </state>
45
+              </provider>
46
+            </entry>
47
+          </file>
48
+          <file leaf-file-name="main.js" pinned="false" current-in-tab="false">
49
+            <entry file="file://$PROJECT_DIR$/src/renderer/main.js">
50
+              <provider selected="true" editor-type-id="text-editor">
51
+                <state relative-caret-position="335">
52
+                  <caret line="32" column="27" lean-forward="false" selection-start-line="32" selection-start-column="27" selection-end-line="32" selection-end-column="27" />
53
+                  <folding>
54
+                    <element signature="e#0#21#0" expanded="true" />
55
+                  </folding>
56
+                </state>
57
+              </provider>
58
+            </entry>
59
+          </file>
60
+          <file leaf-file-name="app.js" pinned="false" current-in-tab="false">
61
+            <entry file="file://$PROJECT_DIR$/static/server/app.js">
62
+              <provider selected="true" editor-type-id="text-editor">
63
+                <state relative-caret-position="125">
64
+                  <caret line="82" column="39" lean-forward="false" selection-start-line="82" selection-start-column="39" selection-end-line="82" selection-end-column="39" />
65
+                  <folding />
66
+                </state>
67
+              </provider>
68
+            </entry>
69
+          </file>
70
+          <file leaf-file-name="socket.js" pinned="false" current-in-tab="true">
71
+            <entry file="file://$PROJECT_DIR$/src/renderer/store/modules/socket.js">
72
+              <provider selected="true" editor-type-id="text-editor">
73
+                <state relative-caret-position="-187">
74
+                  <caret line="4" column="20" lean-forward="false" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
75
+                  <folding>
76
+                    <element signature="e#0#21#0" expanded="true" />
77
+                  </folding>
78
+                </state>
79
+              </provider>
80
+            </entry>
81
+          </file>
82
+          <file leaf-file-name="FunctionSet.js" pinned="false" current-in-tab="false">
83
+            <entry file="file://$PROJECT_DIR$/src/renderer/utils/FunctionSet.js">
84
+              <provider selected="true" editor-type-id="text-editor">
85
+                <state relative-caret-position="782">
86
+                  <caret line="46" column="22" lean-forward="false" selection-start-line="46" selection-start-column="22" selection-end-line="46" selection-end-column="22" />
87
+                  <folding />
88
+                </state>
89
+              </provider>
90
+            </entry>
91
+          </file>
92
+          <file leaf-file-name="www.js" pinned="false" current-in-tab="false">
93
+            <entry file="file://$PROJECT_DIR$/static/server/bin/www.js">
94
+              <provider selected="true" editor-type-id="text-editor">
95
+                <state relative-caret-position="204">
96
+                  <caret line="12" column="25" lean-forward="false" selection-start-line="12" selection-start-column="25" selection-end-line="12" selection-end-column="25" />
97
+                  <folding />
98
+                </state>
99
+              </provider>
100
+            </entry>
101
+          </file>
102
+        </leaf>
103
+      </split-first>
104
+      <split-second>
105
+        <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
106
+          <file leaf-file-name="LandingPage.vue" pinned="false" current-in-tab="true">
107
+            <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage.vue">
108
+              <provider selected="true" editor-type-id="text-editor">
109
+                <state relative-caret-position="306">
110
+                  <caret line="39" column="10" lean-forward="true" selection-start-line="39" selection-start-column="10" selection-end-line="39" selection-end-column="10" />
111
+                  <folding>
112
+                    <element signature="n#style#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
113
+                    <element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
114
+                    <element signature="n#style#0;n#chart#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
115
+                    <element signature="e#2134#2164#0" expanded="true" />
116
+                    <element signature="e#3266#9912#0" expanded="false" />
117
+                    <element signature="e#10290#12838#0" expanded="false" />
118
+                  </folding>
119
+                </state>
120
+              </provider>
121
+            </entry>
122
+          </file>
123
+          <file leaf-file-name="App.vue" pinned="false" current-in-tab="false">
124
+            <entry file="file://$PROJECT_DIR$/src/renderer/App.vue">
125
+              <provider selected="true" editor-type-id="text-editor">
126
+                <state relative-caret-position="153">
127
+                  <caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
128
+                  <folding />
129
+                </state>
130
+              </provider>
131
+            </entry>
132
+          </file>
133
+          <file leaf-file-name="command.js" pinned="false" current-in-tab="false">
134
+            <entry file="file://$PROJECT_DIR$/static/server/protocal/command.js">
135
+              <provider selected="true" editor-type-id="text-editor">
136
+                <state relative-caret-position="221">
137
+                  <caret line="13" column="22" lean-forward="false" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
138
+                  <folding />
139
+                </state>
140
+              </provider>
141
+            </entry>
142
+          </file>
143
+        </leaf>
144
+      </split-second>
145
+    </splitter>
123
   </component>
146
   </component>
124
   <component name="FileTemplateManagerImpl">
147
   <component name="FileTemplateManagerImpl">
125
     <option name="RECENT_TEMPLATES">
148
     <option name="RECENT_TEMPLATES">
@@ -128,18 +151,42 @@
128
       </list>
151
       </list>
129
     </option>
152
     </option>
130
   </component>
153
   </component>
154
+  <component name="FindInProjectRecents">
155
+    <findStrings>
156
+      <find>PORT</find>
157
+      <find>hasConnectCount</find>
158
+      <find>socketServer</find>
159
+      <find>asiciiToString</find>
160
+      <find>wrapper</find>
161
+    </findStrings>
162
+    <dirStrings>
163
+      <dir>E:\node\electronVueDemo</dir>
164
+    </dirStrings>
165
+  </component>
166
+  <component name="Git.Settings">
167
+    <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
168
+  </component>
131
   <component name="IdeDocumentHistory">
169
   <component name="IdeDocumentHistory">
132
     <option name="CHANGED_PATHS">
170
     <option name="CHANGED_PATHS">
133
       <list>
171
       <list>
134
         <option value="$PROJECT_DIR$/src/renderer/components/LandingPage/SystemInformation.vue" />
172
         <option value="$PROJECT_DIR$/src/renderer/components/LandingPage/SystemInformation.vue" />
135
-        <option value="$PROJECT_DIR$/src/main/index.js" />
136
         <option value="$PROJECT_DIR$/static/socketClient.js" />
173
         <option value="$PROJECT_DIR$/static/socketClient.js" />
137
-        <option value="$PROJECT_DIR$/static/server/socketClient.js" />
138
         <option value="$PROJECT_DIR$/static/server/bin/www.js" />
174
         <option value="$PROJECT_DIR$/static/server/bin/www.js" />
139
-        <option value="$PROJECT_DIR$/static/server/app.js" />
175
+        <option value="$PROJECT_DIR$/static/server/socketClient.js" />
176
+        <option value="$PROJECT_DIR$/src/renderer/router/index.js" />
177
+        <option value="$PROJECT_DIR$/src/renderer/components/Scan.vue" />
178
+        <option value="$PROJECT_DIR$/static/server/socketServer.js" />
179
+        <option value="$PROJECT_DIR$/src/renderer/store/index.js" />
180
+        <option value="$PROJECT_DIR$/static/server/protocal/sendProtocal.js" />
181
+        <option value="$PROJECT_DIR$/src/main/index.js" />
182
+        <option value="$PROJECT_DIR$/src/renderer/App.vue" />
183
+        <option value="$PROJECT_DIR$/static/server/protocal/protocal.js" />
140
         <option value="$PROJECT_DIR$/src/renderer/main.js" />
184
         <option value="$PROJECT_DIR$/src/renderer/main.js" />
185
+        <option value="$PROJECT_DIR$/src/renderer/utils/commonFunction.js" />
186
+        <option value="$PROJECT_DIR$/src/renderer/utils/FunctionSet.js" />
187
+        <option value="$PROJECT_DIR$/static/server/app.js" />
141
         <option value="$PROJECT_DIR$/src/renderer/store/modules/socket.js" />
188
         <option value="$PROJECT_DIR$/src/renderer/store/modules/socket.js" />
142
-        <option value="$PROJECT_DIR$/src/renderer/store/index.js" />
189
+        <option value="$PROJECT_DIR$/src/renderer/components/LandingPage.vue" />
143
       </list>
190
       </list>
144
     </option>
191
     </option>
145
   </component>
192
   </component>
@@ -193,6 +240,12 @@
193
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
240
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
194
               <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
241
               <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
195
             </path>
242
             </path>
243
+            <path>
244
+              <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
245
+              <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
246
+              <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
247
+              <item name="main" type="2a2b976b:PhpTreeStructureProvider$1" />
248
+            </path>
196
             <path>
249
             <path>
197
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
250
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
198
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
251
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
@@ -204,7 +257,14 @@
204
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
257
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
205
               <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
258
               <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
206
               <item name="renderer" type="2a2b976b:PhpTreeStructureProvider$1" />
259
               <item name="renderer" type="2a2b976b:PhpTreeStructureProvider$1" />
207
-              <item name="store" type="2a2b976b:PhpTreeStructureProvider$1" />
260
+              <item name="components" type="2a2b976b:PhpTreeStructureProvider$1" />
261
+            </path>
262
+            <path>
263
+              <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
264
+              <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
265
+              <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
266
+              <item name="renderer" type="2a2b976b:PhpTreeStructureProvider$1" />
267
+              <item name="router" type="2a2b976b:PhpTreeStructureProvider$1" />
208
             </path>
268
             </path>
209
             <path>
269
             <path>
210
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
270
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
@@ -212,7 +272,13 @@
212
               <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
272
               <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
213
               <item name="renderer" type="2a2b976b:PhpTreeStructureProvider$1" />
273
               <item name="renderer" type="2a2b976b:PhpTreeStructureProvider$1" />
214
               <item name="store" type="2a2b976b:PhpTreeStructureProvider$1" />
274
               <item name="store" type="2a2b976b:PhpTreeStructureProvider$1" />
215
-              <item name="modules" type="2a2b976b:PhpTreeStructureProvider$1" />
275
+            </path>
276
+            <path>
277
+              <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
278
+              <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
279
+              <item name="src" type="2a2b976b:PhpTreeStructureProvider$1" />
280
+              <item name="renderer" type="2a2b976b:PhpTreeStructureProvider$1" />
281
+              <item name="utils" type="2a2b976b:PhpTreeStructureProvider$1" />
216
             </path>
282
             </path>
217
             <path>
283
             <path>
218
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
284
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
@@ -230,12 +296,14 @@
230
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
296
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
231
               <item name="static" type="2a2b976b:PhpTreeStructureProvider$1" />
297
               <item name="static" type="2a2b976b:PhpTreeStructureProvider$1" />
232
               <item name="server" type="2a2b976b:PhpTreeStructureProvider$1" />
298
               <item name="server" type="2a2b976b:PhpTreeStructureProvider$1" />
233
-              <item name="protocal" type="2a2b976b:PhpTreeStructureProvider$1" />
299
+              <item name="bin" type="2a2b976b:PhpTreeStructureProvider$1" />
234
             </path>
300
             </path>
235
             <path>
301
             <path>
236
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
302
               <item name="electronVueDemo" type="b2602c69:ProjectViewProjectNode" />
237
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
303
               <item name="electronVueDemo" type="2a2b976b:PhpTreeStructureProvider$1" />
238
-              <item name="test" type="2a2b976b:PhpTreeStructureProvider$1" />
304
+              <item name="static" type="2a2b976b:PhpTreeStructureProvider$1" />
305
+              <item name="server" type="2a2b976b:PhpTreeStructureProvider$1" />
306
+              <item name="protocal" type="2a2b976b:PhpTreeStructureProvider$1" />
239
             </path>
307
             </path>
240
           </expand>
308
           </expand>
241
           <select />
309
           <select />
@@ -251,6 +319,9 @@
251
   </component>
319
   </component>
252
   <component name="RecentsManager">
320
   <component name="RecentsManager">
253
     <key name="CopyFile.RECENT_KEYS">
321
     <key name="CopyFile.RECENT_KEYS">
322
+      <recent name="E:\node\electronVueDemo\src\renderer\utils" />
323
+      <recent name="E:\node\electronVueDemo\src\renderer" />
324
+      <recent name="E:\node\electronVueDemo\src\renderer\components" />
254
       <recent name="E:\electronVueDemo\src\renderer\store\modules" />
325
       <recent name="E:\electronVueDemo\src\renderer\store\modules" />
255
       <recent name="E:\electronVueDemo\static\server" />
326
       <recent name="E:\electronVueDemo\static\server" />
256
     </key>
327
     </key>
@@ -292,33 +363,34 @@
292
       <option name="presentableId" value="Default" />
363
       <option name="presentableId" value="Default" />
293
       <updated>1587454790583</updated>
364
       <updated>1587454790583</updated>
294
       <workItem from="1587454791924" duration="6275000" />
365
       <workItem from="1587454791924" duration="6275000" />
366
+      <workItem from="1587463147171" duration="23027000" />
367
+      <workItem from="1587557912413" duration="25147000" />
295
     </task>
368
     </task>
296
     <servers />
369
     <servers />
297
   </component>
370
   </component>
298
   <component name="TimeTrackingManager">
371
   <component name="TimeTrackingManager">
299
-    <option name="totallyTimeSpent" value="6275000" />
372
+    <option name="totallyTimeSpent" value="54449000" />
300
   </component>
373
   </component>
301
   <component name="ToolWindowManager">
374
   <component name="ToolWindowManager">
302
     <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
375
     <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
303
-    <editor active="true" />
304
     <layout>
376
     <layout>
305
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24147122" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
377
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.23880596" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
306
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
378
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
307
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
308
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
309
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.38586956" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
310
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
311
-      <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
379
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
380
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
381
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
382
+      <window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
383
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.28944504" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
312
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
384
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
313
-      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32934782" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
385
+      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32861805" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
386
+      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
314
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
387
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
315
-      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
316
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
388
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
317
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
318
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
389
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
319
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
390
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
320
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
321
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
391
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
392
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
393
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
322
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
394
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
323
     </layout>
395
     </layout>
324
   </component>
396
   </component>
@@ -329,42 +401,151 @@
329
     <option name="myLimit" value="2678400000" />
401
     <option name="myLimit" value="2678400000" />
330
   </component>
402
   </component>
331
   <component name="XDebuggerManager">
403
   <component name="XDebuggerManager">
332
-    <breakpoint-manager />
404
+    <breakpoint-manager>
405
+      <option name="time" value="2" />
406
+    </breakpoint-manager>
333
     <watches-manager />
407
     <watches-manager />
334
   </component>
408
   </component>
335
   <component name="editorHistoryManager">
409
   <component name="editorHistoryManager">
336
-    <entry file="file://$PROJECT_DIR$/src/renderer/App.vue">
410
+    <entry file="file://$PROJECT_DIR$/src/renderer/router/index.js">
337
       <provider selected="true" editor-type-id="text-editor">
411
       <provider selected="true" editor-type-id="text-editor">
338
-        <state relative-caret-position="170">
339
-          <caret line="10" column="9" lean-forward="false" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
412
+        <state relative-caret-position="289">
413
+          <caret line="18" column="19" lean-forward="false" selection-start-line="18" selection-start-column="19" selection-end-line="18" selection-end-column="19" />
414
+          <folding>
415
+            <element signature="e#0#21#0" expanded="true" />
416
+          </folding>
417
+        </state>
418
+      </provider>
419
+    </entry>
420
+    <entry file="file://$PROJECT_DIR$/src/renderer/main.js">
421
+      <provider selected="true" editor-type-id="text-editor">
422
+        <state relative-caret-position="187">
423
+          <caret line="19" column="5" lean-forward="false" selection-start-line="19" selection-start-column="5" selection-end-line="19" selection-end-column="5" />
424
+          <folding>
425
+            <element signature="e#0#21#0" expanded="true" />
426
+          </folding>
427
+        </state>
428
+      </provider>
429
+    </entry>
430
+    <entry file="file://$PROJECT_DIR$/src/main/index.js">
431
+      <provider selected="true" editor-type-id="text-editor">
432
+        <state relative-caret-position="255">
433
+          <caret line="16" column="5" lean-forward="false" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
434
+          <folding>
435
+            <element signature="e#0#45#0" expanded="false" />
436
+          </folding>
437
+        </state>
438
+      </provider>
439
+    </entry>
440
+    <entry file="file://$PROJECT_DIR$/static/server/bin/www.js">
441
+      <provider selected="true" editor-type-id="text-editor">
442
+        <state relative-caret-position="204">
443
+          <caret line="12" column="25" lean-forward="false" selection-start-line="12" selection-start-column="25" selection-end-line="12" selection-end-column="25" />
444
+          <folding />
445
+        </state>
446
+      </provider>
447
+    </entry>
448
+    <entry file="file://$PROJECT_DIR$/static/server/app.js">
449
+      <provider selected="true" editor-type-id="text-editor">
450
+        <state relative-caret-position="1309">
451
+          <caret line="77" column="9" lean-forward="false" selection-start-line="77" selection-start-column="9" selection-end-line="77" selection-end-column="9" />
340
           <folding />
452
           <folding />
341
         </state>
453
         </state>
342
       </provider>
454
       </provider>
343
     </entry>
455
     </entry>
344
     <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage.vue">
456
     <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage.vue">
345
       <provider selected="true" editor-type-id="text-editor">
457
       <provider selected="true" editor-type-id="text-editor">
346
-        <state relative-caret-position="-561">
347
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
458
+        <state relative-caret-position="1173">
459
+          <caret line="69" column="33" lean-forward="false" selection-start-line="69" selection-start-column="33" selection-end-line="69" selection-end-column="33" />
460
+          <folding>
461
+            <element signature="n#style#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
462
+            <element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
463
+            <element signature="n#style#0;n#chart#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
464
+            <element signature="e#2134#2164#0" expanded="true" />
465
+            <element signature="e#3266#9912#0" expanded="false" />
466
+            <element signature="e#10290#12838#0" expanded="false" />
467
+          </folding>
468
+        </state>
469
+      </provider>
470
+    </entry>
471
+    <entry file="file://$PROJECT_DIR$/src/renderer/App.vue">
472
+      <provider selected="true" editor-type-id="text-editor">
473
+        <state relative-caret-position="153">
474
+          <caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
348
           <folding />
475
           <folding />
349
         </state>
476
         </state>
350
       </provider>
477
       </provider>
351
     </entry>
478
     </entry>
352
-    <entry file="file://$PROJECT_DIR$/src/main/index.js">
479
+    <entry file="file://$PROJECT_DIR$/static/server/protocal/command.js">
480
+      <provider selected="true" editor-type-id="text-editor">
481
+        <state relative-caret-position="221">
482
+          <caret line="13" column="22" lean-forward="false" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
483
+          <folding />
484
+        </state>
485
+      </provider>
486
+    </entry>
487
+    <entry file="file://$PROJECT_DIR$/static/server/protocal/protocal.js">
488
+      <provider selected="true" editor-type-id="text-editor">
489
+        <state relative-caret-position="1785">
490
+          <caret line="202" column="29" lean-forward="false" selection-start-line="202" selection-start-column="12" selection-end-line="202" selection-end-column="29" />
491
+          <folding>
492
+            <element signature="e#2946#4872#0" expanded="false" />
493
+            <element signature="e#4906#6642#0" expanded="false" />
494
+          </folding>
495
+        </state>
496
+      </provider>
497
+    </entry>
498
+    <entry file="file://$PROJECT_DIR$/package.json">
499
+      <provider selected="true" editor-type-id="text-editor">
500
+        <state relative-caret-position="612">
501
+          <caret line="36" column="33" lean-forward="false" selection-start-line="36" selection-start-column="33" selection-end-line="36" selection-end-column="33" />
502
+          <folding>
503
+            <marker date="1587622818807" expanded="true" signature="1638:1974" ph="{&quot;axios&quot;: &quot;^0.18.0&quot;...}" />
504
+          </folding>
505
+        </state>
506
+      </provider>
507
+    </entry>
508
+    <entry file="file://$PROJECT_DIR$/src/renderer/router/index.js">
509
+      <provider selected="true" editor-type-id="text-editor">
510
+        <state relative-caret-position="0">
511
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
512
+          <folding>
513
+            <element signature="e#0#21#0" expanded="true" />
514
+          </folding>
515
+        </state>
516
+      </provider>
517
+    </entry>
518
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage/SystemInformation.vue">
519
+      <provider selected="true" editor-type-id="text-editor">
520
+        <state relative-caret-position="561">
521
+          <caret line="33" column="27" lean-forward="false" selection-start-line="33" selection-start-column="27" selection-end-line="33" selection-end-column="27" />
522
+        </state>
523
+      </provider>
524
+    </entry>
525
+    <entry file="file://$PROJECT_DIR$/src/renderer/main.js">
353
       <provider selected="true" editor-type-id="text-editor">
526
       <provider selected="true" editor-type-id="text-editor">
354
         <state relative-caret-position="272">
527
         <state relative-caret-position="272">
355
-          <caret line="43" column="30" lean-forward="false" selection-start-line="43" selection-start-column="23" selection-end-line="43" selection-end-column="30" />
528
+          <caret line="23" column="27" lean-forward="false" selection-start-line="23" selection-start-column="27" selection-end-line="23" selection-end-column="27" />
356
           <folding>
529
           <folding>
357
-            <element signature="e#0#45#0" expanded="false" />
530
+            <element signature="e#0#21#0" expanded="true" />
358
           </folding>
531
           </folding>
359
         </state>
532
         </state>
360
       </provider>
533
       </provider>
361
     </entry>
534
     </entry>
362
-    <entry file="file://$PROJECT_DIR$/static/server/socketClient.js">
535
+    <entry file="file://$PROJECT_DIR$/static/server/app.js">
363
       <provider selected="true" editor-type-id="text-editor">
536
       <provider selected="true" editor-type-id="text-editor">
364
-        <state relative-caret-position="-125">
365
-          <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
537
+        <state relative-caret-position="340">
538
+          <caret line="20" column="28" lean-forward="false" selection-start-line="20" selection-start-column="28" selection-end-line="20" selection-end-column="28" />
539
+          <folding />
540
+        </state>
541
+      </provider>
542
+    </entry>
543
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/modules/socket.js">
544
+      <provider selected="true" editor-type-id="text-editor">
545
+        <state relative-caret-position="1734">
546
+          <caret line="102" column="41" lean-forward="true" selection-start-line="102" selection-start-column="41" selection-end-line="102" selection-end-column="41" />
366
           <folding>
547
           <folding>
367
-            <element signature="e#1275#2365#0" expanded="false" />
548
+            <element signature="e#0#21#0" expanded="true" />
368
           </folding>
549
           </folding>
369
         </state>
550
         </state>
370
       </provider>
551
       </provider>
@@ -373,7 +554,16 @@
373
       <provider selected="true" editor-type-id="text-editor">
554
       <provider selected="true" editor-type-id="text-editor">
374
         <state relative-caret-position="0">
555
         <state relative-caret-position="0">
375
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
556
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
376
-          <folding />
557
+        </state>
558
+      </provider>
559
+    </entry>
560
+    <entry file="file://$PROJECT_DIR$/static/server/socketClient.js">
561
+      <provider selected="true" editor-type-id="text-editor">
562
+        <state relative-caret-position="578">
563
+          <caret line="34" column="0" lean-forward="false" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
564
+          <folding>
565
+            <element signature="e#1268#2358#0" expanded="false" />
566
+          </folding>
377
         </state>
567
         </state>
378
       </provider>
568
       </provider>
379
     </entry>
569
     </entry>
@@ -385,67 +575,199 @@
385
         </state>
575
         </state>
386
       </provider>
576
       </provider>
387
     </entry>
577
     </entry>
388
-    <entry file="file://$PROJECT_DIR$/package.json">
578
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/index.js">
389
       <provider selected="true" editor-type-id="text-editor">
579
       <provider selected="true" editor-type-id="text-editor">
390
-        <state relative-caret-position="-14">
391
-          <caret line="36" column="33" lean-forward="false" selection-start-line="36" selection-start-column="33" selection-end-line="36" selection-end-column="33" />
580
+        <state relative-caret-position="221">
581
+          <caret line="16" column="47" lean-forward="true" selection-start-line="16" selection-start-column="47" selection-end-line="16" selection-end-column="47" />
392
           <folding />
582
           <folding />
393
         </state>
583
         </state>
394
       </provider>
584
       </provider>
395
     </entry>
585
     </entry>
396
-    <entry file="file://$PROJECT_DIR$/src/renderer/router/index.js">
586
+    <entry file="file://$PROJECT_DIR$/package.json">
397
       <provider selected="true" editor-type-id="text-editor">
587
       <provider selected="true" editor-type-id="text-editor">
398
         <state relative-caret-position="0">
588
         <state relative-caret-position="0">
399
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
589
+          <caret line="36" column="33" lean-forward="false" selection-start-line="36" selection-start-column="33" selection-end-line="36" selection-end-column="33" />
400
           <folding>
590
           <folding>
401
-            <element signature="e#0#21#0" expanded="true" />
591
+            <marker date="1587622818807" expanded="true" signature="1638:1974" ph="{&quot;axios&quot;: &quot;^0.18.0&quot;...}" />
402
           </folding>
592
           </folding>
403
         </state>
593
         </state>
404
       </provider>
594
       </provider>
405
     </entry>
595
     </entry>
596
+    <entry file="file://$PROJECT_DIR$/static/server/protocal/global.js">
597
+      <provider selected="true" editor-type-id="text-editor">
598
+        <state relative-caret-position="85">
599
+          <caret line="5" column="29" lean-forward="true" selection-start-line="5" selection-start-column="29" selection-end-line="5" selection-end-column="29" />
600
+        </state>
601
+      </provider>
602
+    </entry>
603
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/Scan.vue">
604
+      <provider selected="true" editor-type-id="text-editor">
605
+        <state relative-caret-position="255">
606
+          <caret line="15" column="3" lean-forward="true" selection-start-line="15" selection-start-column="3" selection-end-line="15" selection-end-column="3" />
607
+        </state>
608
+      </provider>
609
+    </entry>
406
     <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage/SystemInformation.vue">
610
     <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage/SystemInformation.vue">
407
       <provider selected="true" editor-type-id="text-editor">
611
       <provider selected="true" editor-type-id="text-editor">
408
-        <state relative-caret-position="357">
612
+        <state relative-caret-position="561">
409
           <caret line="33" column="27" lean-forward="false" selection-start-line="33" selection-start-column="27" selection-end-line="33" selection-end-column="27" />
613
           <caret line="33" column="27" lean-forward="false" selection-start-line="33" selection-start-column="27" selection-end-line="33" selection-end-column="27" />
614
+        </state>
615
+      </provider>
616
+    </entry>
617
+    <entry file="file://$PROJECT_DIR$/static/server/socketClient.js">
618
+      <provider selected="true" editor-type-id="text-editor">
619
+        <state relative-caret-position="1071">
620
+          <caret line="97" column="0" lean-forward="false" selection-start-line="97" selection-start-column="0" selection-end-line="97" selection-end-column="24" />
621
+          <folding>
622
+            <element signature="e#1268#2358#0" expanded="false" />
623
+          </folding>
624
+        </state>
625
+      </provider>
626
+    </entry>
627
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/index.js">
628
+      <provider selected="true" editor-type-id="text-editor">
629
+        <state relative-caret-position="170">
630
+          <caret line="13" column="6" lean-forward="false" selection-start-line="13" selection-start-column="6" selection-end-line="13" selection-end-column="6" />
410
           <folding />
631
           <folding />
411
         </state>
632
         </state>
412
       </provider>
633
       </provider>
413
     </entry>
634
     </entry>
414
-    <entry file="file://$PROJECT_DIR$/src/renderer/store/modules/socket.js">
635
+    <entry file="file://$PROJECT_DIR$/static/server/protocal/sendProtocal.js">
415
       <provider selected="true" editor-type-id="text-editor">
636
       <provider selected="true" editor-type-id="text-editor">
416
-        <state relative-caret-position="765">
417
-          <caret line="102" column="41" lean-forward="true" selection-start-line="102" selection-start-column="41" selection-end-line="102" selection-end-column="41" />
637
+        <state relative-caret-position="782">
638
+          <caret line="46" column="4" lean-forward="false" selection-start-line="46" selection-start-column="4" selection-end-line="46" selection-end-column="4" />
418
           <folding />
639
           <folding />
419
         </state>
640
         </state>
420
       </provider>
641
       </provider>
421
     </entry>
642
     </entry>
422
-    <entry file="file://$PROJECT_DIR$/static/server/app.js">
643
+    <entry file="file://$PROJECT_DIR$/static/server/socketServer.js">
423
       <provider selected="true" editor-type-id="text-editor">
644
       <provider selected="true" editor-type-id="text-editor">
424
-        <state relative-caret-position="340">
425
-          <caret line="20" column="28" lean-forward="false" selection-start-line="20" selection-start-column="28" selection-end-line="20" selection-end-column="28" />
645
+        <state relative-caret-position="34">
646
+          <caret line="2" column="16" lean-forward="true" selection-start-line="2" selection-start-column="16" selection-end-line="2" selection-end-column="16" />
647
+        </state>
648
+      </provider>
649
+    </entry>
650
+    <entry file="file://$PROJECT_DIR$/static/server/bin/www.js">
651
+      <provider selected="true" editor-type-id="text-editor">
652
+        <state relative-caret-position="204">
653
+          <caret line="12" column="25" lean-forward="false" selection-start-line="12" selection-start-column="25" selection-end-line="12" selection-end-column="25" />
426
           <folding />
654
           <folding />
427
         </state>
655
         </state>
428
       </provider>
656
       </provider>
429
     </entry>
657
     </entry>
658
+    <entry file="file://$PROJECT_DIR$/src/renderer/App.vue">
659
+      <provider selected="true" editor-type-id="text-editor">
660
+        <state relative-caret-position="153">
661
+          <caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
662
+          <folding />
663
+        </state>
664
+      </provider>
665
+    </entry>
666
+    <entry file="file://$PROJECT_DIR$/src/renderer/router/index.js">
667
+      <provider selected="true" editor-type-id="text-editor">
668
+        <state relative-caret-position="306">
669
+          <caret line="18" column="19" lean-forward="false" selection-start-line="18" selection-start-column="19" selection-end-line="18" selection-end-column="19" />
670
+          <folding>
671
+            <element signature="e#0#21#0" expanded="true" />
672
+          </folding>
673
+        </state>
674
+      </provider>
675
+    </entry>
676
+    <entry file="file://$PROJECT_DIR$/src/main/index.js">
677
+      <provider selected="true" editor-type-id="text-editor">
678
+        <state relative-caret-position="17">
679
+          <caret line="16" column="5" lean-forward="false" selection-start-line="16" selection-start-column="5" selection-end-line="16" selection-end-column="5" />
680
+          <folding>
681
+            <element signature="e#0#45#0" expanded="false" />
682
+          </folding>
683
+        </state>
684
+      </provider>
685
+    </entry>
430
     <entry file="file://$PROJECT_DIR$/src/renderer/main.js">
686
     <entry file="file://$PROJECT_DIR$/src/renderer/main.js">
431
       <provider selected="true" editor-type-id="text-editor">
687
       <provider selected="true" editor-type-id="text-editor">
432
-        <state relative-caret-position="391">
433
-          <caret line="23" column="27" lean-forward="false" selection-start-line="23" selection-start-column="27" selection-end-line="23" selection-end-column="27" />
688
+        <state relative-caret-position="335">
689
+          <caret line="32" column="27" lean-forward="false" selection-start-line="32" selection-start-column="27" selection-end-line="32" selection-end-column="27" />
434
           <folding>
690
           <folding>
435
             <element signature="e#0#21#0" expanded="true" />
691
             <element signature="e#0#21#0" expanded="true" />
436
           </folding>
692
           </folding>
437
         </state>
693
         </state>
438
       </provider>
694
       </provider>
439
     </entry>
695
     </entry>
440
-    <entry file="file://$PROJECT_DIR$/src/renderer/store/index.js">
696
+    <entry file="file://$PROJECT_DIR$/src/renderer/utils/rsa.js">
441
       <provider selected="true" editor-type-id="text-editor">
697
       <provider selected="true" editor-type-id="text-editor">
442
-        <state relative-caret-position="272">
443
-          <caret line="16" column="47" lean-forward="true" selection-start-line="16" selection-start-column="47" selection-end-line="16" selection-end-column="47" />
698
+        <state relative-caret-position="0">
699
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
700
+          <folding />
701
+        </state>
702
+      </provider>
703
+    </entry>
704
+    <entry file="file://$PROJECT_DIR$/src/renderer/utils/commonFunction.js">
705
+      <provider selected="true" editor-type-id="text-editor">
706
+        <state relative-caret-position="0">
707
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
708
+          <folding />
709
+        </state>
710
+      </provider>
711
+    </entry>
712
+    <entry file="file://$PROJECT_DIR$/static/server/protocal/protocal.js">
713
+      <provider selected="true" editor-type-id="text-editor">
714
+        <state relative-caret-position="190">
715
+          <caret line="226" column="2" lean-forward="false" selection-start-line="226" selection-start-column="2" selection-end-line="242" selection-end-column="5" />
716
+          <folding>
717
+            <element signature="e#2946#4872#0" expanded="false" />
718
+            <element signature="e#4906#6642#0" expanded="false" />
719
+          </folding>
720
+        </state>
721
+      </provider>
722
+    </entry>
723
+    <entry file="file://$PROJECT_DIR$/src/renderer/utils/FunctionSet.js">
724
+      <provider selected="true" editor-type-id="text-editor">
725
+        <state relative-caret-position="782">
726
+          <caret line="46" column="22" lean-forward="false" selection-start-line="46" selection-start-column="22" selection-end-line="46" selection-end-column="22" />
727
+          <folding />
728
+        </state>
729
+      </provider>
730
+    </entry>
731
+    <entry file="file://$PROJECT_DIR$/static/server/app.js">
732
+      <provider selected="true" editor-type-id="text-editor">
733
+        <state relative-caret-position="125">
734
+          <caret line="82" column="39" lean-forward="false" selection-start-line="82" selection-start-column="39" selection-end-line="82" selection-end-column="39" />
735
+          <folding />
736
+        </state>
737
+      </provider>
738
+    </entry>
739
+    <entry file="file://$PROJECT_DIR$/static/server/protocal/command.js">
740
+      <provider selected="true" editor-type-id="text-editor">
741
+        <state relative-caret-position="221">
742
+          <caret line="13" column="22" lean-forward="false" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="22" />
743
+          <folding />
744
+        </state>
745
+      </provider>
746
+    </entry>
747
+    <entry file="file://$PROJECT_DIR$/src/renderer/store/modules/socket.js">
748
+      <provider selected="true" editor-type-id="text-editor">
749
+        <state relative-caret-position="-187">
750
+          <caret line="4" column="20" lean-forward="false" selection-start-line="4" selection-start-column="20" selection-end-line="4" selection-end-column="20" />
444
           <folding>
751
           <folding>
445
             <element signature="e#0#21#0" expanded="true" />
752
             <element signature="e#0#21#0" expanded="true" />
446
           </folding>
753
           </folding>
447
         </state>
754
         </state>
448
       </provider>
755
       </provider>
449
     </entry>
756
     </entry>
757
+    <entry file="file://$PROJECT_DIR$/src/renderer/components/LandingPage.vue">
758
+      <provider selected="true" editor-type-id="text-editor">
759
+        <state relative-caret-position="306">
760
+          <caret line="39" column="10" lean-forward="true" selection-start-line="39" selection-start-column="10" selection-end-line="39" selection-end-column="10" />
761
+          <folding>
762
+            <element signature="n#style#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
763
+            <element signature="n#style#0;n#div#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
764
+            <element signature="n#style#0;n#chart#0;n#div#0;n#div#0;n#template#0;n#!!top" expanded="true" />
765
+            <element signature="e#2134#2164#0" expanded="true" />
766
+            <element signature="e#3266#9912#0" expanded="false" />
767
+            <element signature="e#10290#12838#0" expanded="false" />
768
+          </folding>
769
+        </state>
770
+      </provider>
771
+    </entry>
450
   </component>
772
   </component>
451
 </project>
773
 </project>

+ 113 - 7
package-lock.json

@@ -1127,6 +1127,14 @@
1127
       "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz",
1127
       "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz",
1128
       "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="
1128
       "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0="
1129
     },
1129
     },
1130
+    "async-validator": {
1131
+      "version": "1.8.5",
1132
+      "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.8.5.tgz",
1133
+      "integrity": "sha1-3D4I7B/Q3dtn5ghC8CwM0c7G1/A=",
1134
+      "requires": {
1135
+        "babel-runtime": "6.26.0"
1136
+      }
1137
+    },
1130
     "asynckit": {
1138
     "asynckit": {
1131
       "version": "0.4.0",
1139
       "version": "0.4.0",
1132
       "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
1140
       "resolved": "http://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz",
@@ -1458,6 +1466,11 @@
1458
       "integrity": "sha1-jaInXMwmmVVmEY9yE6v9mvchRCc=",
1466
       "integrity": "sha1-jaInXMwmmVVmEY9yE6v9mvchRCc=",
1459
       "dev": true
1467
       "dev": true
1460
     },
1468
     },
1469
+    "babel-helper-vue-jsx-merge-props": {
1470
+      "version": "2.0.3",
1471
+      "resolved": "http://registry.npm.taobao.org/babel-helper-vue-jsx-merge-props/download/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
1472
+      "integrity": "sha1-Iq69OzOQIyjlEyk6jkmSs4T58bY="
1473
+    },
1461
     "babel-helpers": {
1474
     "babel-helpers": {
1462
       "version": "6.24.1",
1475
       "version": "6.24.1",
1463
       "resolved": "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz",
1476
       "resolved": "http://registry.npm.taobao.org/babel-helpers/download/babel-helpers-6.24.1.tgz",
@@ -2265,7 +2278,6 @@
2265
       "version": "6.26.0",
2278
       "version": "6.26.0",
2266
       "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
2279
       "resolved": "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz",
2267
       "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
2280
       "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
2268
-      "dev": true,
2269
       "requires": {
2281
       "requires": {
2270
         "core-js": "2.6.11",
2282
         "core-js": "2.6.11",
2271
         "regenerator-runtime": "0.11.1"
2283
         "regenerator-runtime": "0.11.1"
@@ -4115,8 +4127,7 @@
4115
     "core-js": {
4127
     "core-js": {
4116
       "version": "2.6.11",
4128
       "version": "2.6.11",
4117
       "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz",
4129
       "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz",
4118
-      "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=",
4119
-      "dev": true
4130
+      "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw="
4120
     },
4131
     },
4121
     "core-util-is": {
4132
     "core-util-is": {
4122
       "version": "1.0.2",
4133
       "version": "1.0.2",
@@ -5021,6 +5032,14 @@
5021
         "safer-buffer": "2.1.2"
5032
         "safer-buffer": "2.1.2"
5022
       }
5033
       }
5023
     },
5034
     },
5035
+    "echarts": {
5036
+      "version": "4.7.0",
5037
+      "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.7.0.tgz",
5038
+      "integrity": "sha1-Wzh1pML5HjkpQl+rq56s5+QJiz8=",
5039
+      "requires": {
5040
+        "zrender": "4.3.0"
5041
+      }
5042
+    },
5024
     "ee-first": {
5043
     "ee-first": {
5025
       "version": "1.1.1",
5044
       "version": "1.1.1",
5026
       "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
5045
       "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
@@ -5296,6 +5315,26 @@
5296
       "integrity": "sha1-nQqS3v79p8wc+IlQWLiSeV3da0E=",
5315
       "integrity": "sha1-nQqS3v79p8wc+IlQWLiSeV3da0E=",
5297
       "dev": true
5316
       "dev": true
5298
     },
5317
     },
5318
+    "element-ui": {
5319
+      "version": "2.13.1",
5320
+      "resolved": "https://registry.npm.taobao.org/element-ui/download/element-ui-2.13.1.tgz?cache=0&sync_timestamp=1586760879922&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felement-ui%2Fdownload%2Felement-ui-2.13.1.tgz",
5321
+      "integrity": "sha1-DLGkXPJ6phxgHe++GSdArFy533w=",
5322
+      "requires": {
5323
+        "async-validator": "1.8.5",
5324
+        "babel-helper-vue-jsx-merge-props": "2.0.3",
5325
+        "deepmerge": "1.5.2",
5326
+        "normalize-wheel": "1.0.1",
5327
+        "resize-observer-polyfill": "1.5.1",
5328
+        "throttle-debounce": "1.1.0"
5329
+      },
5330
+      "dependencies": {
5331
+        "deepmerge": {
5332
+          "version": "1.5.2",
5333
+          "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz?cache=0&sync_timestamp=1572279720382&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeepmerge%2Fdownload%2Fdeepmerge-1.5.2.tgz",
5334
+          "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M="
5335
+        }
5336
+      }
5337
+    },
5299
     "elliptic": {
5338
     "elliptic": {
5300
       "version": "6.5.2",
5339
       "version": "6.5.2",
5301
       "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz",
5340
       "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz",
@@ -7633,6 +7672,11 @@
7633
         "upper-case": "1.1.3"
7672
         "upper-case": "1.1.3"
7634
       }
7673
       }
7635
     },
7674
     },
7675
+    "heatmap.js": {
7676
+      "version": "2.0.5",
7677
+      "resolved": "http://registry.npm.taobao.org/heatmap.js/download/heatmap.js-2.0.5.tgz",
7678
+      "integrity": "sha1-Rm07hlE/XUkRKknSVwCrJzAUkVM="
7679
+    },
7636
     "highlight.js": {
7680
     "highlight.js": {
7637
       "version": "9.18.1",
7681
       "version": "9.18.1",
7638
       "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz",
7682
       "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz",
@@ -9661,8 +9705,7 @@
9661
     "lodash": {
9705
     "lodash": {
9662
       "version": "4.17.15",
9706
       "version": "4.17.15",
9663
       "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz",
9707
       "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz",
9664
-      "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=",
9665
-      "dev": true
9708
+      "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg="
9666
     },
9709
     },
9667
     "lodash._arraycopy": {
9710
     "lodash._arraycopy": {
9668
       "version": "3.0.0",
9711
       "version": "3.0.0",
@@ -11064,6 +11107,11 @@
11064
         "sort-keys": "1.1.2"
11107
         "sort-keys": "1.1.2"
11065
       }
11108
       }
11066
     },
11109
     },
11110
+    "normalize-wheel": {
11111
+      "version": "1.0.1",
11112
+      "resolved": "http://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz",
11113
+      "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU="
11114
+    },
11067
     "npm-install-package": {
11115
     "npm-install-package": {
11068
       "version": "2.1.0",
11116
       "version": "2.1.0",
11069
       "resolved": "https://registry.npm.taobao.org/npm-install-package/download/npm-install-package-2.1.0.tgz",
11117
       "resolved": "https://registry.npm.taobao.org/npm-install-package/download/npm-install-package-2.1.0.tgz",
@@ -13306,8 +13354,7 @@
13306
     "regenerator-runtime": {
13354
     "regenerator-runtime": {
13307
       "version": "0.11.1",
13355
       "version": "0.11.1",
13308
       "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1584052481783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz",
13356
       "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1584052481783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz",
13309
-      "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=",
13310
-      "dev": true
13357
+      "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk="
13311
     },
13358
     },
13312
     "regenerator-transform": {
13359
     "regenerator-transform": {
13313
       "version": "0.10.1",
13360
       "version": "0.10.1",
@@ -13512,6 +13559,16 @@
13512
       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
13559
       "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
13513
       "dev": true
13560
       "dev": true
13514
     },
13561
     },
13562
+    "resize-detector": {
13563
+      "version": "0.1.10",
13564
+      "resolved": "https://registry.npm.taobao.org/resize-detector/download/resize-detector-0.1.10.tgz",
13565
+      "integrity": "sha1-HaP5YapfkUzLz9N1LVL9Rb7raSw="
13566
+    },
13567
+    "resize-observer-polyfill": {
13568
+      "version": "1.5.1",
13569
+      "resolved": "http://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
13570
+      "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
13571
+    },
13515
     "resolve": {
13572
     "resolve": {
13516
       "version": "1.16.1",
13573
       "version": "1.16.1",
13517
       "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.16.1.tgz?cache=0&sync_timestamp=1587158410035&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.16.1.tgz",
13574
       "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.16.1.tgz?cache=0&sync_timestamp=1587158410035&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.16.1.tgz",
@@ -13663,6 +13720,14 @@
13663
         "rx-lite": "4.0.8"
13720
         "rx-lite": "4.0.8"
13664
       }
13721
       }
13665
     },
13722
     },
13723
+    "rxjs": {
13724
+      "version": "5.5.12",
13725
+      "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-5.5.12.tgz",
13726
+      "integrity": "sha1-b6YbinfD15PbrycL7i9D9lLXQcw=",
13727
+      "requires": {
13728
+        "symbol-observable": "1.0.1"
13729
+      }
13730
+    },
13666
     "safe-buffer": {
13731
     "safe-buffer": {
13667
       "version": "5.1.2",
13732
       "version": "5.1.2",
13668
       "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
13733
       "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz",
@@ -15016,6 +15081,11 @@
15016
         "upper-case": "1.1.3"
15081
         "upper-case": "1.1.3"
15017
       }
15082
       }
15018
     },
15083
     },
15084
+    "symbol-observable": {
15085
+      "version": "1.0.1",
15086
+      "resolved": "http://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.1.tgz",
15087
+      "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ="
15088
+    },
15019
     "tapable": {
15089
     "tapable": {
15020
       "version": "1.1.3",
15090
       "version": "1.1.3",
15021
       "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz",
15091
       "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz",
@@ -15333,6 +15403,11 @@
15333
         "require-main-filename": "1.0.1"
15403
         "require-main-filename": "1.0.1"
15334
       }
15404
       }
15335
     },
15405
     },
15406
+    "throttle-debounce": {
15407
+      "version": "1.1.0",
15408
+      "resolved": "http://registry.npm.taobao.org/throttle-debounce/download/throttle-debounce-1.1.0.tgz",
15409
+      "integrity": "sha1-UYU9o3vmihVctugns1FKPEIuic0="
15410
+    },
15336
     "throttleit": {
15411
     "throttleit": {
15337
       "version": "0.0.2",
15412
       "version": "0.0.2",
15338
       "resolved": "http://registry.npm.taobao.org/throttleit/download/throttleit-0.0.2.tgz",
15413
       "resolved": "http://registry.npm.taobao.org/throttleit/download/throttleit-0.0.2.tgz",
@@ -16072,11 +16147,37 @@
16072
       "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz?cache=0&sync_timestamp=1587416559904&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.11.tgz",
16147
       "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz?cache=0&sync_timestamp=1587416559904&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue%2Fdownload%2Fvue-2.6.11.tgz",
16073
       "integrity": "sha1-dllNh31LEiNEBuhONSdcbVFBJcU="
16148
       "integrity": "sha1-dllNh31LEiNEBuhONSdcbVFBJcU="
16074
     },
16149
     },
16150
+    "vue-echarts": {
16151
+      "version": "5.0.0-beta.0",
16152
+      "resolved": "https://registry.npm.taobao.org/vue-echarts/download/vue-echarts-5.0.0-beta.0.tgz",
16153
+      "integrity": "sha1-Q43UsPxczqKBcJwffGMhsFNSvfQ=",
16154
+      "requires": {
16155
+        "core-js": "3.6.5",
16156
+        "lodash": "4.17.15",
16157
+        "resize-detector": "0.1.10"
16158
+      },
16159
+      "dependencies": {
16160
+        "core-js": {
16161
+          "version": "3.6.5",
16162
+          "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.5.tgz",
16163
+          "integrity": "sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo="
16164
+        }
16165
+      }
16166
+    },
16075
     "vue-electron": {
16167
     "vue-electron": {
16076
       "version": "1.0.6",
16168
       "version": "1.0.6",
16077
       "resolved": "http://registry.npm.taobao.org/vue-electron/download/vue-electron-1.0.6.tgz",
16169
       "resolved": "http://registry.npm.taobao.org/vue-electron/download/vue-electron-1.0.6.tgz",
16078
       "integrity": "sha1-55jgMYC4kzU53v4x+S5TuSQrlAY="
16170
       "integrity": "sha1-55jgMYC4kzU53v4x+S5TuSQrlAY="
16079
     },
16171
     },
16172
+    "vue-heatmapjs": {
16173
+      "version": "1.5.0-0",
16174
+      "resolved": "https://registry.npm.taobao.org/vue-heatmapjs/download/vue-heatmapjs-1.5.0-0.tgz",
16175
+      "integrity": "sha1-4sF28Qa+gF43FyJ52QaBuXmMZno=",
16176
+      "requires": {
16177
+        "heatmap.js": "2.0.5",
16178
+        "rxjs": "5.5.12"
16179
+      }
16180
+    },
16080
     "vue-hot-reload-api": {
16181
     "vue-hot-reload-api": {
16081
       "version": "2.3.4",
16182
       "version": "2.3.4",
16082
       "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&sync_timestamp=1568190386192&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz",
16183
       "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&sync_timestamp=1568190386192&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz",
@@ -17976,6 +18077,11 @@
17976
         "lodash": "4.17.15",
18077
         "lodash": "4.17.15",
17977
         "readable-stream": "2.3.7"
18078
         "readable-stream": "2.3.7"
17978
       }
18079
       }
18080
+    },
18081
+    "zrender": {
18082
+      "version": "4.3.0",
18083
+      "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fzrender%2Fdownload%2Fzrender-4.3.0.tgz",
18084
+      "integrity": "sha1-nwVhIbILuuREFNKHv2oRn/cEJmE="
17979
     }
18085
     }
17980
   }
18086
   }
17981
 }
18087
 }

+ 4 - 0
package.json

@@ -55,9 +55,13 @@
55
   },
55
   },
56
   "dependencies": {
56
   "dependencies": {
57
     "axios": "^0.18.0",
57
     "axios": "^0.18.0",
58
+    "echarts": "^4.7.0",
59
+    "element-ui": "^2.13.1",
58
     "koa": "^2.2.0",
60
     "koa": "^2.2.0",
59
     "vue": "^2.5.16",
61
     "vue": "^2.5.16",
62
+    "vue-echarts": "^5.0.0-beta.0",
60
     "vue-electron": "^1.0.6",
63
     "vue-electron": "^1.0.6",
64
+    "vue-heatmapjs": "^1.5.0-0",
61
     "vue-router": "^3.0.1",
65
     "vue-router": "^3.0.1",
62
     "vue-socket.io": "^3.0.7",
66
     "vue-socket.io": "^3.0.7",
63
     "vuex": "^3.0.1",
67
     "vuex": "^3.0.1",

+ 14 - 13
src/main/index.js

@@ -27,24 +27,25 @@ function createWindow () {
27
   mainWindow.on('closed', () => {
27
   mainWindow.on('closed', () => {
28
     mainWindow = null
28
     mainWindow = null
29
   })
29
   })
30
+  let serverpath = process.env.NODE_ENV === 'development'
31
+      ? path.join(__dirname, '..', '..', 'static', 'server', 'bin', 'www.js')
32
+      : `${app.getAppPath()}/dist/electron/static/server/bin/www`
30
 
33
 
31
-}
34
+  app.server = require("child_process")
35
+      .fork(serverpath,
36
+          [], {
37
+              stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
38
+              silent: false
39
+          })
40
+
41
+  app.server.stderr.pipe(process.stderr)
42
+  app.server.stdout.pipe(process.stdout)
32
 
43
 
33
-let serverpath = process.env.NODE_ENV === 'development'
34
-    ? path.join(__dirname, '..', '..', 'static', 'server', 'bin', 'www.js')
35
-    : `${app.getAppPath()}/dist/electron/static/server/bin/www`
44
+  console.log("backend now running on : " + app.server.pid)
36
 
45
 
37
-app.server = require("child_process")
38
-    .fork(serverpath,
39
-        [], {
40
-            stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
41
-            silent: false
42
-        })
46
+}
43
 
47
 
44
-app.server.stderr.pipe(process.stderr)
45
-app.server.stdout.pipe(process.stdout)
46
 
48
 
47
-console.log("backend now running on : " + app.server.pid)
48
 app.on('ready', createWindow)
49
 app.on('ready', createWindow)
49
 
50
 
50
 app.on('window-all-closed', () => {
51
 app.on('window-all-closed', () => {

+ 2 - 0
src/renderer/App.vue

@@ -7,6 +7,8 @@
7
 <script>
7
 <script>
8
   export default {
8
   export default {
9
     name: 'zxy'
9
     name: 'zxy'
10
+
11
+
10
   }
12
   }
11
 </script>
13
 </script>
12
 
14
 

+ 356 - 30
src/renderer/components/LandingPage.vue

@@ -1,46 +1,372 @@
1
 <template>
1
 <template>
2
   <div id="wrapper">
2
   <div id="wrapper">
3
-    <img id="logo" src="~@/assets/logo.png" alt="electron-vue">
4
-    <main>
5
-      <div class="left-side">
6
-        <span class="title">
7
-          Welcome to your new project!
8
-        </span>
9
-        <system-information></system-information>
10
-      </div>
11
-
12
-      <div class="right-side">
13
-        <div class="doc">
14
-          <div class="title">Getting Started</div>
15
-          <p>
16
-            electron-vue comes packed with detailed documentation that covers everything from
17
-            internal configurations, using the project structure, building your application,
18
-            and so much more.
19
-          </p>
20
-          <button @click="open('https://simulatedgreg.gitbooks.io/electron-vue/content/')">Read the Docs</button><br><br>
21
-        </div>
22
-        <div class="doc">
23
-          <div class="title alt">Other Documentation</div>
24
-          <button class="alt" @click="open('https://electron.atom.io/docs/')">Electron</button>
25
-          <button class="alt" @click="open('https://vuejs.org/v2/guide/')">Vue.js</button>
26
-        </div>
27
-      </div>
28
-    </main>
3
+    <!--<img id="logo" src="~@/assets/logo.png" alt="electron-vue">-->
4
+    <!--<main>-->
5
+      <!--<div class="left-side">-->
6
+        <!--<span class="title">-->
7
+          <!--Welcome to your new project!-->
8
+        <!--</span>-->
9
+        <!--<system-information></system-information>-->
10
+      <!--</div>-->
11
+
12
+      <!--<div class="right-side">-->
13
+        <!--<div class="doc">-->
14
+          <!--<div class="title">Getting Started</div>-->
15
+          <!--<p>-->
16
+            <!--electron-vue comes packed with detailed documentation that covers everything from-->
17
+            <!--internal configurations, using the project structure, building your application,-->
18
+            <!--and so much more.-->
19
+          <!--</p>-->
20
+          <!--<button @click="open('https://simulatedgreg.gitbooks.io/electron-vue/content/')">Read the Docs</button><br><br>-->
21
+        <!--</div>-->
22
+        <!--<div class="doc">-->
23
+          <!--<div class="title alt">Other Documentation</div>-->
24
+          <!--<button class="alt" @click="open('https://electron.atom.io/docs/')">Electron</button>-->
25
+          <!--<button class="alt" @click="open('https://vuejs.org/v2/guide/')">Vue.js</button>-->
26
+          <!--<el-button></el-button>-->
27
+        <!--</div>-->
28
+      <!--</div>-->
29
+    <!--</main>-->
30
+    当前连接设备数:{{hasConnectCount}} <br/>
31
+    <el-button @click="startSetZero" :disabled="hasConnectCount == 0">开始取零</el-button>
32
+    <el-button @click="stopSetZero" :disabled="hasConnectCount == 0">停止取零</el-button>
33
+    <el-button @click="startCollection" :disabled="hasConnectCount == 0">开始采集</el-button>
34
+    <el-button @click="stopCollection" :disabled="hasConnectCount == 0">停止采集</el-button>
35
+    <el-button @click="resetDevice" :disabled="hasConnectCount == 0">复位</el-button>
36
+    <br/>
37
+    <div style="width:540px;height:540px;position:relative;margin-top:30px" >
38
+      <div ref="heatsample" style="width:540px;height:540px;position:absolute;top:0;left:0" />
39
+      <chart id="heatmap" style="width:540px;height:540px;position:absolute;top:0" :options="chartOption" ref="heatmap"></chart>
40
+    </div>
29
   </div>
41
   </div>
30
 </template>
42
 </template>
31
 
43
 
32
 <script>
44
 <script>
33
-  import SystemInformation from './LandingPage/SystemInformation'
34
-
45
+  import h337 from "heatmap.js";
46
+  import {mapState, mapGetters} from "vuex";
35
   export default {
47
   export default {
36
     name: 'landing-page',
48
     name: 'landing-page',
37
-    components: { SystemInformation },
49
+    data(){
50
+        return {
51
+            chartOption: getChartOption([]),
52
+            h337:null
53
+        }
54
+    },
38
     methods: {
55
     methods: {
39
       open (link) {
56
       open (link) {
40
         this.$electron.shell.openExternal(link)
57
         this.$electron.shell.openExternal(link)
58
+      },
59
+      // 开始取零
60
+      startSetZero() {
61
+          this.$socket.emit('startSetZero','setZero')
62
+      },
63
+      // 停止取零
64
+      stopSetZero() {
65
+          this.$socket.emit('stopSetZero','setZero')
66
+      },
67
+      // 开始采集
68
+      startCollection () {
69
+          this.$socket.emit('startCollection','startCollection')
70
+      },
71
+      // 停止采集
72
+      stopCollection() {
73
+          this.$socket.emit('stopCollection','stopCollection')
74
+      },
75
+      // 复位
76
+      resetDevice() {
77
+          this.$socket.emit('resetDevice','resetDevice')
78
+          this.h337.setData({
79
+              max: 255,
80
+              data: {}
81
+          });
41
       }
82
       }
83
+
84
+    },
85
+    created() {
86
+        this.$socket.emit('syncConnectCount','resetDevice')
87
+        setTimeout(()=>{
88
+            var dst = this.$refs.heatsample;
89
+            var heatmap = h337.create({
90
+                container: dst,
91
+                radius:6,
92
+                blur:0.7,
93
+                //   gradient: gradient,
94
+                gradient:{
95
+                    "0.00000":"#0000E3",
96
+                    "0.00392":"#0000E3",
97
+                    "0.00784":"#0000E3",
98
+                    "0.01176":"#0000E3",
99
+                    "0.01569":"#0000E3",
100
+                    "0.01961":"#0000E3",
101
+                    "0.02353":"#0000E3",
102
+                    "0.02745":"#0000E3",
103
+                    "0.03137":"#0000E3",
104
+                    "0.03529":"#0000E3",
105
+                    "0.03922":"#0000E3",
106
+                    "0.04314":"#0000E3",
107
+                    "0.04706":"#0000E3",
108
+                    "0.05098":"#0000E3",
109
+                    "0.05490":"#0000E3",
110
+                    "0.05882":"#0000E3",
111
+                    "0.06275":"#0000E3",
112
+                    "0.06667":"#0000E3",
113
+                    "0.07059":"#0000E3",
114
+                    "0.07451":"#0000E3",
115
+                    "0.07843":"#0000E3",
116
+                    "0.08235":"#0000E3",
117
+                    "0.08627":"#0000E3",
118
+                    "0.09020":"#0000E3",
119
+                    "0.09412":"#0000E3",
120
+                    "0.09804":"#0000E3",
121
+                    "0.10196":"#0000E3",
122
+                    "0.10588":"#0000E3",
123
+                    "0.10980":"#0000E3",
124
+                    "0.11373":"#0000E3",
125
+                    "0.11765":"#0000E3",
126
+                    "0.12157":"#0000E3",
127
+                    "0.12549":"#0000E3",
128
+                    "0.12941":"#0000E3",
129
+                    "0.13333":"#0000E3",
130
+                    "0.13725":"#0000E3",
131
+                    "0.14118":"#0000E3",
132
+                    "0.14510":"#0000E3",
133
+                    "0.14902":"#0000E3",
134
+                    "0.15294":"#0000E3",
135
+                    "0.15686":"#0000E3",
136
+                    "0.16078":"#0000E3",
137
+                    "0.16471":"#0000E3",
138
+                    "0.16863":"#0000E3",
139
+                    "0.17255":"#0000E3",
140
+                    "0.17647":"#0000E3",
141
+                    "0.18039":"#0000E3",
142
+                    "0.18431":"#0000E3",
143
+                    "0.18824":"#0004FF",
144
+                    "0.19216":"#0004FF",
145
+                    "0.19608":"#0004FF",
146
+                    "0.20000":"#0004FF",
147
+                    "0.20392":"#0004FF",
148
+                    "0.20784":"#0004FF",
149
+                    "0.21176":"#0004FF",
150
+                    "0.21569":"#0004FF",
151
+                    "0.21961":"#0004FF",
152
+                    "0.22353":"#0004FF",
153
+                    "0.22745":"#0004FF",
154
+                    "0.23137":"#0004FF",
155
+                    "0.23529":"#0004FF",
156
+                    "0.23922":"#0004FF",
157
+                    "0.24314":"#0004FF",
158
+                    "0.24706":"#0004FF",
159
+                    "0.25098":"#0004FF",
160
+                    "0.25490":"#0004FF",
161
+                    "0.25882":"#0004FF",
162
+                    "0.26275":"#0004FF",
163
+                    "0.26667":"#0004FF",
164
+                    "0.27059":"#0004FF",
165
+                    "0.27451":"#0004FF",
166
+                    "0.27843":"#0004FF",
167
+                    "0.28235":"#0004FF",
168
+                    "0.28627":"#0004FF",
169
+                    "0.29020":"#0004FF",
170
+                    "0.29412":"#0004FF",
171
+                    "0.29804":"#0004FF",
172
+                    "0.30196":"#0004FF",
173
+                    "0.30588":"#0004FF",
174
+                    "0.30980":"#0004FF",
175
+                    "0.31373":"#0004FF",
176
+                    "0.31765":"#0004FF",
177
+                    "0.32157":"#0004FF",
178
+                    "0.32549":"#0030FF",
179
+                    "0.32941":"#0030FF",
180
+                    "0.33333":"#0030FF",
181
+                    "0.33725":"#0030FF",
182
+                    "0.34118":"#0030FF",
183
+                    "0.34510":"#0030FF",
184
+                    "0.34902":"#0030FF",
185
+                    "0.35294":"#0030FF",
186
+                    "0.35686":"#0030FF",
187
+                    "0.36078":"#0030FF",
188
+                    "0.36471":"#0030FF",
189
+                    "0.36863":"#0030FF",
190
+                    "0.37255":"#0030FF",
191
+                    "0.37647":"#0030FF",
192
+                    "0.38039":"#0030FF",
193
+                    "0.38431":"#0030FF",
194
+                    "0.38824":"#0030FF",
195
+                    "0.39216":"#0030FF",
196
+                    "0.39608":"#0030FF",
197
+                    '.40': '#007bff',
198
+                    '.41': '#028aff',
199
+                    '.42': '#0297ff',
200
+                    '.43': '#04b9ff',
201
+                    '.44': '#02ffe9',
202
+                    '.45': '#00ffab',
203
+                    '.46':'#00ff97',
204
+                    '.47': '#00ff84',
205
+                    '.48': '#00ff71',
206
+                    '.49': '#00ff5d',
207
+                    '.50': '#00ff4a',
208
+                    '.51': '#00ff38',
209
+                    '.52': '#00ff28',
210
+                    '.53': '#00ff18',
211
+                    '.54': '#00ff07',
212
+                    '.55': '#09ff00',
213
+                    '.56': '#19ff00',
214
+                    '.57': '#29ff00',
215
+                    '.58': '#39ff00',
216
+                    '.59': '#4aff00',
217
+                    '.60': '#5aff00',
218
+                    '.61': '#6aff00',
219
+                    '.62': '#7aff00',
220
+                    '.63': '#8aff00',
221
+                    '.64': '#9bff00',
222
+                    '.65': '#abff00',
223
+                    '.66': '#bbff00',
224
+                    '.67': '#cbff00',
225
+                    '.68': '#dcff00',
226
+                    '.69': '#ecff00',
227
+                    '.70': '#fcff00',
228
+                    '.71': '#fffa00',
229
+                    '.72': '#fff500',
230
+                    '.73': '#fff000',
231
+                    '.74': '#ffea00',
232
+                    '.75': '#ffe500',
233
+                    '.76': '#ffdf00',
234
+                    '.77': '#ffda00',
235
+                    '.78': '#ffd400',
236
+                    '.79': '#ffcf00',
237
+                    '.80': '#ffca00',
238
+                    '.81': '#ffc400',
239
+                    '.82': '#ffbf00',
240
+                    '.83': '#ffb900',
241
+                    '.84': '#ffb400',
242
+                    '.85': '#ffaf00',
243
+                    '.86': '#ffa900',
244
+                    '.87': '#ffa400',
245
+                    '.88': '#ff9e00',
246
+                    '.89': '#ff9900',
247
+                    '.90': '#ff9300',
248
+                    '.91': '#ff8c00',
249
+                    '.92': '#ff8400',
250
+                    '.93': '#ff7d00',
251
+                    '.94': '#ff7500',
252
+                    '.95': '#ff6d00',
253
+                    '.96': '#ff6600',
254
+                    '.97': '#ff5e00',
255
+                    '.98': '#fa5500',
256
+                    '.99': '#ff4f00',
257
+                }
258
+            });
259
+            this.h337 = heatmap;
260
+        },1000)
261
+
262
+    },
263
+    computed:{
264
+        ...mapGetters([
265
+            'hasConnectCount',
266
+            'pressureData'
267
+        ]),
268
+    },
269
+    watch:{
270
+        pressureData:function (val) {
271
+            this.h337.setData({
272
+                max: 255,
273
+                data: val
274
+            });
275
+        }
42
     }
276
     }
43
   }
277
   }
278
+  function getChartOption(data) {
279
+      let xData = [];
280
+      let yData = [];
281
+      let pointsMid = [];
282
+      let pointsMidLocal = [];
283
+      let maxPress = 0;
284
+      let maxX = 60;
285
+      let maxY = 60;
286
+      // let maxX = 37;
287
+      // let maxY = 27;
288
+      data.forEach(obj => {
289
+          let x = Number(obj.split(",")[0]);
290
+          let y = Number(obj.split(",")[1]);
291
+          let press = Number(obj.split(",")[2]);
292
+          maxPress = maxPress < press ? press : maxPress;
293
+          xData.push(x);
294
+          yData.push(y);
295
+          pointsMid.push([x, y, press]);
296
+      });
297
+      pointsMid.forEach(obj => {
298
+          pointsMidLocal.push([obj[0], maxY - obj[1], obj[2]]);
299
+      });
300
+      pointsMid = pointsMidLocal;
301
+      let heatmapOption = {
302
+          tooltip: {},
303
+          grid: {
304
+              x: 0,
305
+              y: 0,
306
+              x2: 0,
307
+              y2: 0,
308
+              show: false,
309
+              backgroundColor: "rgb(255,255,255)",
310
+              width: "100%",
311
+              height: "100%",
312
+              shadowColor: "rgb(255,255,255)",
313
+              borderColor: "rgb(255,255,255)"
314
+          },
315
+          xAxis: {
316
+              show: false,
317
+              type: "category",
318
+              data: xData,
319
+              min: 0,
320
+              max: maxX
321
+          },
322
+          yAxis: {
323
+              show: false,
324
+              type: "category",
325
+              data: yData,
326
+              min: 0,
327
+              max: maxY
328
+          },
329
+          visualMap: {
330
+              min: 0,
331
+              max: maxPress,
332
+              show: false,
333
+              calculable: true,
334
+              realtime: false,
335
+              inRange: {
336
+                  color: [
337
+                      "#313695",
338
+                      "#4575b4",
339
+                      "#74add1",
340
+                      "#abd9e9",
341
+                      "#e0f3f8",
342
+                      "#ffffbf",
343
+                      "#fee090",
344
+                      "#fdae61",
345
+                      "#f46d43",
346
+                      "#d73027",
347
+                      "#a50026"
348
+                  ]
349
+              }
350
+          },
351
+          series: [
352
+              {
353
+                  show: false,
354
+                  name: "Gaussian",
355
+                  type: "heatmap",
356
+                  data: pointsMid,
357
+                  itemStyle: {
358
+                      emphasis: {
359
+                          borderColor: "#00000000",
360
+                          borderWidth: 0
361
+                      }
362
+                  },
363
+                  progressive: 100,
364
+                  animation: false
365
+              }
366
+          ]
367
+      };
368
+      return heatmapOption;
369
+  }
44
 </script>
370
 </script>
45
 
371
 
46
 <style>
372
 <style>
@@ -61,7 +387,7 @@
61
         rgba(255, 255, 255, 1) 40%,
387
         rgba(255, 255, 255, 1) 40%,
62
         rgba(229, 229, 229, .9) 100%
388
         rgba(229, 229, 229, .9) 100%
63
       );
389
       );
64
-    height: 100vh;
390
+    height: 700px;
65
     padding: 60px 80px;
391
     padding: 60px 80px;
66
     width: 100vw;
392
     width: 100vw;
67
   }
393
   }

+ 21 - 0
src/renderer/components/Scan.vue

@@ -0,0 +1,21 @@
1
+<template>
2
+  <div id="wrapper">
3
+    <el-button>按钮</el-button>
4
+  </div>
5
+</template>
6
+
7
+<script>
8
+  export default {
9
+    name: 'scan',
10
+    components: {  },
11
+    methods: {
12
+      open (link) {
13
+        //this.$electron.shell.openExternal(link)
14
+      }
15
+    }
16
+  }
17
+</script>
18
+
19
+<style>
20
+
21
+</style>

+ 14 - 4
src/renderer/main.js

@@ -1,22 +1,31 @@
1
 import Vue from 'vue'
1
 import Vue from 'vue'
2
 import axios from 'axios'
2
 import axios from 'axios'
3
-
3
+import ElementUI from 'element-ui'
4
+import 'element-ui/lib/theme-chalk/index.css'
4
 import App from './App'
5
 import App from './App'
5
 import router from './router'
6
 import router from './router'
6
 import store from './store'
7
 import store from './store'
7
 import io from 'socket.io-client';
8
 import io from 'socket.io-client';
8
 import VueSocketio from 'vue-socket.io'
9
 import VueSocketio from 'vue-socket.io'
10
+import ECharts from 'vue-echarts/components/ECharts'
11
+import 'echarts/lib/chart/bar'
12
+import 'echarts/lib/chart/line'
13
+import 'echarts/lib/chart/scatter'
14
+import 'echarts/lib/component/tooltip'
15
+import 'echarts/lib/component/polar'
16
+import 'echarts/lib/chart/heatmap'
17
+import 'echarts/lib/component/visualMapContinuous'
9
 if (!process.env.IS_WEB) Vue.use(require('vue-electron'))
18
 if (!process.env.IS_WEB) Vue.use(require('vue-electron'))
10
 Vue.http = Vue.prototype.$http = axios
19
 Vue.http = Vue.prototype.$http = axios
11
 Vue.config.productionTip = false
20
 Vue.config.productionTip = false
12
-const SocketInstance = io.connect('http://localhost:3000', {
21
+const SocketInstance = io.connect('http://localhost:3001', {
13
     query: {
22
     query: {
14
         token: window.localStorage.getItem('auth')
23
         token: window.localStorage.getItem('auth')
15
     }
24
     }
16
 });
25
 });
17
 
26
 
18
 Vue.use(new VueSocketio({
27
 Vue.use(new VueSocketio({
19
-    debug: true,
28
+   // debug: true,
20
     connection: SocketInstance,
29
     connection: SocketInstance,
21
     vuex: {
30
     vuex: {
22
         store,
31
         store,
@@ -25,7 +34,8 @@ Vue.use(new VueSocketio({
25
     },
34
     },
26
 }),store);
35
 }),store);
27
 //Vue.use(VueSocketio, 'http://localhost:3000', store)
36
 //Vue.use(VueSocketio, 'http://localhost:3000', store)
28
-
37
+Vue.use(ElementUI)
38
+Vue.component('chart', ECharts)
29
 /* eslint-disable no-new */
39
 /* eslint-disable no-new */
30
 new Vue({
40
 new Vue({
31
   components: { App },
41
   components: { App },

+ 7 - 1
src/renderer/router/index.js

@@ -13,6 +13,12 @@ export default new Router({
13
     {
13
     {
14
       path: '*',
14
       path: '*',
15
       redirect: '/'
15
       redirect: '/'
16
-    }
16
+    },
17
+    {
18
+        path: '/',
19
+        name: 'scan',
20
+        component: require('@/components/scan').default
21
+    },
22
+
17
   ]
23
   ]
18
 })
24
 })

+ 1 - 1
src/renderer/store/index.js

@@ -11,7 +11,7 @@ export default new Vuex.Store({
11
     socket,
11
     socket,
12
   },
12
   },
13
   plugins: [
13
   plugins: [
14
-    createPersistedState(),
14
+    //createPersistedState(),
15
   //  createSharedMutations()
15
   //  createSharedMutations()
16
   ],
16
   ],
17
   strict: process.env.NODE_ENV !== 'production'
17
   strict: process.env.NODE_ENV !== 'production'

File diff suppressed because it is too large
+ 72 - 598
src/renderer/store/modules/socket.js


+ 64 - 0
src/renderer/utils/FunctionSet.js

@@ -0,0 +1,64 @@
1
+// show  Windows letter
2
+
3
+
4
+module.exports = {
5
+    // 压力值扩散方法
6
+    pressureDataProcess(a,scale,size) {
7
+        var height = 60;
8
+        var width = 60;
9
+        var newHeight = 60*scale;
10
+        var newWidth = 60*scale;
11
+        var u =0.0;
12
+        var v = 0.0;
13
+        var x = 0.0;
14
+        var y = 0.0;
15
+        var m = 0;
16
+        var n = 0;
17
+        let temp = new Array()
18
+        let rearr = []
19
+        for(let i = 0;i<newHeight;++i) {
20
+            temp[i] = new Array()
21
+            for(let j=0;j<newWidth;++j) {
22
+                y = i/scale;
23
+                x = j/scale;
24
+                m = parseInt(y);
25
+                n = parseInt(x);
26
+                v = y-m;
27
+                u = x-n;
28
+                let tt = {}
29
+                if(m<height-1 &&n<width-1){
30
+                    temp[i][j] = parseInt((1.0-v)*((1.0-u)*a[m][n]+u*a[m][n+1])
31
+                        + v*((1.0-u)*a[m+1][n] + u*a[m+1][n+1])
32
+                    )
33
+                } else {
34
+                    temp[i][j] = a[m][n]
35
+                }
36
+                tt.x = i*size
37
+                tt.y = j*size
38
+                if(temp[i][j]>0) {
39
+                    tt.value = temp[i][j]
40
+                    rearr.push(tt)
41
+                }
42
+            }
43
+        }
44
+        return rearr
45
+    },
46
+    buf2hex(buffer) {
47
+        // create a byte array (Uint8Array) that we can use to read the array buffer
48
+        const byteArray = new Uint8Array(buffer);
49
+        // for each element, we want to get its two-digit hexadecimal representation
50
+        const hexParts = [];
51
+        for(let i = 0; i < byteArray.length; i++) {
52
+            // convert value to hexadecimal
53
+            const hex = byteArray[i].toString(16);
54
+            // pad with zeros to length 2
55
+            const paddedHex = ('00' + hex).slice(-2);
56
+            // push to array
57
+            hexParts.push(paddedHex);
58
+        }
59
+
60
+        // join all the hex values of the elements into a single string
61
+        return hexParts.join('');
62
+    }
63
+
64
+}

+ 100 - 16
static/server/app.js

@@ -1,4 +1,5 @@
1
-const socketClient = require('./socketClient')
1
+//const socketClient = require('./socketClient')
2
+const socketServer = require('./socketServer')
2
 const Koa = require('koa')
3
 const Koa = require('koa')
3
 const app = new Koa()
4
 const app = new Koa()
4
 var http = require('http');
5
 var http = require('http');
@@ -8,23 +9,106 @@ io = require('socket.io').listen(server);
8
 var protocal = require('./protocal/protocal')
9
 var protocal = require('./protocal/protocal')
9
 var sendProtocal = require('./protocal/sendProtocal')
10
 var sendProtocal = require('./protocal/sendProtocal')
10
 var command = require('./protocal/command')
11
 var command = require('./protocal/command')
11
-// 为这个socket实例添加一个"data"事件处理函数
12
-socketClient.on('validData', function (data) {
13
-    var dataStrs = "";
14
-    data.forEach(function (t) {
15
-        dataStrs += t.toString(16);
12
+
13
+// socket 服务开启
14
+
15
+let socketEvent = null;
16
+var connectCount = 0;
17
+var lastBuffer = null;
18
+
19
+io.sockets.on('connection', function (socket) {
20
+    // 取零
21
+    socket.on('startSetZero', function () {
22
+         if(socketEvent!==null) {
23
+             let sendData = sendProtocal.beginSetZero();
24
+             socketEvent.write(sendData)
25
+         }
26
+    })
27
+    // 停止取零
28
+    socket.on('stopSetZero', function () {
29
+        if(socketEvent!==null) {
30
+            let sendData = sendProtocal.endSetZero();
31
+            socketEvent.write(sendData)
32
+        }
33
+    })
34
+    // 开始采集
35
+    socket.on('startCollection', function () {
36
+        if(socketEvent!==null) {
37
+            let sendData = sendProtocal.startCollection();
38
+            socketEvent.write(sendData)
39
+        }
16
     })
40
     })
41
+    // 停止采集
42
+    socket.on('stopCollection', function () {
43
+        if(socketEvent!==null) {
44
+            let sendData = sendProtocal.endCollection();
45
+            socketEvent.write(sendData)
46
+        }
47
+    })
48
+    // 复位设备
49
+    socket.on('resetDevice', function () {
50
+        if(socketEvent!==null) {
51
+            let sendData = sendProtocal.resetDevice();
52
+            socketEvent.write(sendData)
53
+        }
54
+    })
55
+    socket.on('syncConnectCount', function () {
56
+        if(connectCount !='0') {
57
+            console.log('已有初始连接' +connectCount +'个')
58
+        }
59
+        io.sockets.emit('connectCount', connectCount);
60
+    })
61
+})
62
+
63
+socketServer.on('connection',(socket)=>{
64
+    console.log('连接已建立')
65
+    socketEvent = socket
66
+    socketServer.getConnections((err, count)=>{
67
+        if(err){
68
+            console.warn(err);
69
+        } else {
70
+            console.log(`当前有${count}个连接`);
71
+            connectCount = count
72
+            io.sockets.emit('connectCount', count);
73
+        }
74
+    });
75
+    socket.on('data', (data)=>{
76
+        if (lastBuffer !== null) {
77
+            data = Buffer.concat([lastBuffer, data]);
78
+        }
79
+        let flag = 1;
80
+        while(flag){
81
+            let validNumByteArray = new Uint8Array(data.slice(1, 3));
82
+            let validNum = validNumByteArray[0]
83
+            if(data.length >validNum) {
84
+                let validateData = data.slice(0, 1 + 2 +validNum);
85
+                io.sockets.emit('pressureData',validateData);
86
+                lastBuffer = data.slice(1+2+validNum)
87
+                if(lastBuffer.length >=1+2+validNum) {
88
+                    data = lastBuffer
89
+                    continue;
90
+                }
91
+            } else if(data.length == 1+2+validNum) {
92
+                io.sockets.emit('pressureData',data);
93
+                lastBuffer = null;
94
+            } else {
95
+                lastBuffer = data;
96
+            }
97
+            flag = 0;
98
+        }
99
+        // 处理压力板发过来的数据
100
+    });
101
+    socket.on('error', (err)=>{
102
+        console.warn(err);
103
+        socket.destroy();
104
+    });
105
+    socket.on('end', ()=>{
106
+        io.sockets.emit('disConnectOneClient');
107
+        //socketServer.close();
108
+    });
109
+})
110
+
17
 
111
 
18
-    // 第二位command位转换成对应协议名
19
-    const protocalType = command[data[1]];
20
-    const json = protocal[protocalType](data);
21
-    console.log(protocalType)
22
-    if (protocalType === undefined) {
23
-        console.log('Uknown command')
24
-        return;
25
-    }
26
-    io.sockets.emit(protocalType, json);
27
-});
28
 module.exports = server
112
 module.exports = server
29
 
113
 
30
 
114
 

+ 1 - 1
static/server/bin/www.js

@@ -9,7 +9,7 @@ var debug = require('debug')('demo:server');
9
  * Get port from environment and store in Express.
9
  * Get port from environment and store in Express.
10
  */
10
  */
11
 
11
 
12
-var port = normalizePort(process.env.PORT || '3000');
12
+var port = normalizePort(process.env.PORT || '3001');
13
 // app.set('port', port);
13
 // app.set('port', port);
14
 server.listen(port);
14
 server.listen(port);
15
 server.on('error', onError);
15
 server.on('error', onError);

+ 19 - 20
static/server/protocal/protocal.js

@@ -223,26 +223,25 @@ module.exports = {
223
         return json;
223
         return json;
224
     },
224
     },
225
 
225
 
226
-    // 收集数据结束
227
-    collectionDataOver:function (data) {
228
-        let json = {};
229
-        let snLength = data[5] - 1
230
-        let sn = data.slice(6, 6 + snLength).toByteArray();
231
-        json.device = sn;
232
-        machineInfo.sn = sn;
233
-        json.status = data[6 + snLength];
234
-        console.log('collectionStatus'+json.status)
235
-        return json;
236
-    },
237
-    errorType:function(data){
238
-        let json = {};
239
-        let snLength = data[5] - 1
240
-        let sn = data.slice(6, 6 + snLength).toByteArray();
241
-        json.device = asiciiToString(sn);
242
-        machineInfo.sn = sn;
243
-        json.status = data[6 + snLength];
244
-        return json;
245
-    } 
226
+
227
+    buf2hex:function(buffer) {
228
+        // create a byte array (Uint8Array) that we can use to read the array buffer
229
+        const byteArray = new Uint8Array(buffer);
230
+        // for each element, we want to get its two-digit hexadecimal representation
231
+        const hexParts = [];
232
+        for(let i = 0; i < byteArray.length; i++) {
233
+            // convert value to hexadecimal
234
+            const hex = byteArray[i].toString(16);
235
+            // pad with zeros to length 2
236
+            const paddedHex = ('00' + hex).slice(-2);
237
+            // push to array
238
+            hexParts.push(paddedHex);
239
+        }
240
+
241
+        // join all the hex values of the elements into a single string
242
+        return hexParts.join('');
243
+    }
244
+
246
 }
245
 }
247
 // 压力值扩散方法
246
 // 压力值扩散方法
248
 function pressureDataProcess(a,scale,size) {
247
 function pressureDataProcess(a,scale,size) {

+ 44 - 64
static/server/protocal/sendProtocal.js

@@ -2,14 +2,50 @@ var machineInfo = require('./global')
2
 var checksum = require('./checksum')
2
 var checksum = require('./checksum')
3
 
3
 
4
 module.exports = {
4
 module.exports = {
5
-  conTest: function () {
6
-    let data = [];
7
-    data.push(0x3a);
8
-    data.push(0);
9
-    data.push(0);
10
-    data.push(0xc6);
11
-    return Buffer(data);
5
+  // 开始取零
6
+  beginSetZero:function () {
7
+      let data = [];
8
+      data.push(0x04);
9
+      data.push(0x00);
10
+      data.push(0x02);
11
+      data.push(0x00);
12
+      return Buffer(data);
13
+  },
14
+  // 停止取零
15
+  endSetZero:function () {
16
+      let data = [];
17
+      data.push(0x04);
18
+      data.push(0x00);
19
+      data.push(0x04);
20
+      data.push(0x00);
21
+      return Buffer(data);
22
+  },
23
+  // 开始采集
24
+  startCollection:function () {
25
+      let data = [];
26
+      data.push(0x04);
27
+      data.push(0x00);
28
+      data.push(0x03);
29
+      data.push(0x00);
30
+      return Buffer(data);
12
   },
31
   },
32
+  // 停止采集
33
+  endCollection:function () {
34
+      let data = [];
35
+      data.push(0x04);
36
+      data.push(0x00);
37
+      data.push(0x04);
38
+      data.push(0x00);
39
+      return Buffer(data);
40
+  },
41
+  // 复位
42
+  resetDevice:function () {
43
+      let data = [];
44
+      data.push(0x16);
45
+      data.push(0x00);
46
+      return Buffer(data);
47
+  },
48
+
13
   socketPressReset: function () {
49
   socketPressReset: function () {
14
     let data = [];
50
     let data = [];
15
     let snLength = machineInfo.sn.length;
51
     let snLength = machineInfo.sn.length;
@@ -22,61 +58,5 @@ module.exports = {
22
     data.push(checkSum);
58
     data.push(checkSum);
23
     return Buffer(data);
59
     return Buffer(data);
24
   },
60
   },
25
-  beginScan: function () {
26
-    let data = [];
27
-    let snLength = machineInfo.sn.length;
28
-    data.push(0x3a);
29
-    data.push(2);
30
-    data.push(snLength);
31
-    data = data.concat(machineInfo.sn);
32
-    let checkSum = checksum(data);
33
-    data.push(checkSum);
34
-    return Buffer(data);
35
-  },
36
-  stopScan: function () {
37
-    let data = [];
38
-    let snLength = machineInfo.sn.length;
39
-    data.push(0x3a);
40
-    data.push(3);
41
-    data.push(snLength);
42
-    data = data.concat(machineInfo.sn);
43
-    let checkSum = checksum(data);
44
-    data.push(checkSum);
45
-    return Buffer(data);
46
-  },
47
-  reStartScan:function () {
48
-      let data = [];
49
-      let snLength = machineInfo.sn.length;
50
-      data.push(0x3a);
51
-      data.push(5);
52
-      data.push(snLength);
53
-      data = data.concat(machineInfo.sn);
54
-      let checkSum = checksum(data);
55
-      data.push(checkSum);
56
-      return Buffer(data);
57
-  },
58
-  // 关闭软件时发送协议 通知对方关闭
59
-  closeShoesServer:function(){
60
-      let data = [];
61
-      let snLength = machineInfo.sn.length;
62
-      data.push(0x3a);
63
-      data.push(9);
64
-      data.push(snLength);
65
-      data = data.concat(machineInfo.sn);
66
-      let checkSum = checksum(data);
67
-      data.push(checkSum);
68
-      return Buffer(data);
69
-  },
70
-  // 检查相机
71
-  checkCamera:function () {
72
-      let data = [];
73
-      let snLength = machineInfo.sn.length;
74
-      data.push(0x3a);
75
-      data.push(10);
76
-      data.push(snLength);
77
-      data = data.concat(machineInfo.sn);
78
-      let checkSum = checksum(data);
79
-      data.push(checkSum);
80
-      return Buffer(data);
81
-  }
61
+
82
 }
62
 }

+ 2 - 2
static/server/socketClient.js

@@ -2,8 +2,8 @@ var net = require('net');
2
 var fs = require('fs'); // 载入fs模块
2
 var fs = require('fs'); // 载入fs模块
3
 
3
 
4
 
4
 
5
-var HOST = '192.168.2.100';
6
-var PORT = 43212;
5
+var HOST = '0.0.0.0';
6
+var PORT = 6800;
7
 
7
 
8
 // var HOST = '192.168.2.109';
8
 // var HOST = '192.168.2.109';
9
 // var PORT = 43212;
9
 // var PORT = 43212;

+ 12 - 0
static/server/socketServer.js

@@ -0,0 +1,12 @@
1
+var net = require('net');
2
+var tcpServer = net.createServer()
3
+var PORT = 6800;
4
+tcpServer.on('listening', ()=>{
5
+    console.log('开始监听');
6
+});
7
+tcpServer.on('close', ()=>{
8
+    console.log('closed');
9
+});
10
+tcpServer.listen(PORT);
11
+
12
+module.exports = tcpServer;