From 261e25074b7f35010efccb86bf82f6fe36e4b10d Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@iotlink.com>
Date: 星期三, 14 十月 2020 10:27:19 +0800
Subject: [PATCH] 添加硬件信息显示

---
 src/pages/settings/components/BasicSetting.vue |  255 ++++++++++++++++++++-------------------------------
 1 files changed, 100 insertions(+), 155 deletions(-)

diff --git a/src/pages/settings/components/BasicSetting.vue b/src/pages/settings/components/BasicSetting.vue
index ff22658..f7df2dd 100644
--- a/src/pages/settings/components/BasicSetting.vue
+++ b/src/pages/settings/components/BasicSetting.vue
@@ -5,7 +5,7 @@
       v-model="activeName"
       v-loading="loading"
       :element-loading-text="loadingText"
-      type="card"
+      type="border-card"
     >
       <!-- 鏈満淇℃伅 -->
       <el-tab-pane label="鏈満淇℃伅" name="first">
@@ -76,7 +76,7 @@
             <template slot="title">
               <b class="tree-font">璇︾粏淇℃伅</b>
             </template>
-            <el-menu-item-group class="item-group">
+            <el-menu-item-group class="item-group desc-info">
               <el-row :gutter="gutter">
                 <el-col :span="12" class="flex-box">
                   <div class="xiangqin-label">ID</div>
@@ -109,6 +109,22 @@
                 <el-col :span="12" class="flex-box">
                   <div class="xiangqin-label">纭洏涓暟</div>
                   <div class="xiangqing-info">{{sysinfo.diskCount}}</div>
+                </el-col>
+                <el-col :span="12" class="flex-box">
+                  <div class="xiangqin-label">纭洏淇℃伅</div>
+                  <div class="xiangqing-info">{{sysinfo.disks}}</div>
+                </el-col>
+                <el-col :span="12" class="flex-box">
+                  <div class="xiangqin-label">CPU</div>
+                  <div class="xiangqing-info">{{sysinfo.cpuInfo}}</div>
+                </el-col>
+                <el-col :span="12" class="flex-box">
+                  <div class="xiangqin-label">鍐呭瓨</div>
+                  <div class="xiangqing-info">{{sysinfo.mem}}</div>
+                </el-col>
+                <el-col :span="12" class="flex-box">
+                  <div class="xiangqin-label">杩愯鏃堕棿</div>
+                  <div class="xiangqing-info">{{sysinfo.uptime}}</div>
                 </el-col>
               </el-row>
             </el-menu-item-group>
@@ -159,102 +175,6 @@
             </el-menu-item-group>
           </el-submenu>
           <!-- 瀵瑰鏈嶅姟IP 鏀瑰悕涓哄閮ㄧ綉缁�(鏂皌ab)-->
-
-          <!-- 鏂囦欢闊宠棰� -->
-          <!-- <el-submenu index="4">
-            <template slot="title">
-              <b class="tree-font">鏂囦欢闊宠棰�</b>
-            </template>
-            <el-menu-item-group class="item-group">
-              <el-row :gutter="20">
-                <el-col :span="8">
-                  <div class="p5">
-                    <span class="iconfont iconpicture" style="margin-right: 5px;"></span>
-                    <span class="mr10">鍥剧墖绔彛</span>
-                    <el-input v-model="localFile.picPort" style="width:300px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
-                  </div>
-                  <div class="p5">
-                    <span class="iconfont iconshipin" style="margin-right: 5px;"></span>
-                    <span class="mr10">瑙嗛绔彛</span>
-                    <el-input v-model="localFile.videoPort" style="width:300px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
-                  </div>
-                  <div class="p5">
-                    <span class="iconfont iconyinpinx" style="margin-right: 5px;"></span>
-                    <span class="mr10">闊抽绔彛</span>
-                    <el-input v-model="localFile.audioPort" style="width:300px;" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
-                  </div>
-                </el-col>
-                <el-col :span="16">
-                  <el-table
-                    :data="localFile.fileTable"
-                    border
-                    style="width: 100%">
-                    <el-table-column
-                      type="index"
-                      label="搴忓彿"
-                      align="center"
-                      width="50">
-                    </el-table-column>
-                    <el-table-column
-                      prop="date"
-                      label="鍚嶇О"
-                      align="center"
-                      width="180">
-                    </el-table-column>
-                    <el-table-column
-                      prop="name"
-                      label="ID"
-                      align="center"
-                      width="180">
-                    </el-table-column>
-                    <el-table-column
-                      prop="name"
-                      label="IP"
-                      align="center"
-                      width="180">
-                    </el-table-column>
-                    <el-table-column
-                      prop="name"
-                      label="鍦ㄧ嚎鐘舵��"
-                      align="center"
-                      width="80">
-                    </el-table-column>
-                    <el-table-column
-                      label="绫诲埆"
-                      align="center"
-                      width="100">
-                      <template>
-                        <span class="iconfont iconpicture" style="margin-right: 5px;"></span>
-                        <span class="iconfont iconshipin" style="margin-right: 5px;"></span>
-                        <span class="iconfont iconyinpinx" style="margin-right: 5px;"></span>
-                      </template>
-                    </el-table-column>
-                    <el-table-column
-                      prop="address"
-                      align="center"
-                      label="澶囨敞">
-                      <template slot-scope="{row}">
-                        <div v-if="row.edit">
-                          <el-input :autofocus="row.edit" v-focus v-model="row.address" size="small" />
-                          <el-button size="mini" type="info" @click="handleCancel(row)">鍙栨秷</el-button>
-                          <el-button size="mini" type="primary" @click="handleSave(row)">淇濆瓨</el-button>
-                        </div>
-                        <div v-else>
-                          <span>{{ row.address }}</span>
-                          <el-button
-                            type="text"
-                            style="color: black;font-size:16px"
-                            @click="handleEdit(row)"
-                            icon="iconfont iconbianji"
-                          ></el-button>
-                        </div>
-                      </template>
-                    </el-table-column>
-                  </el-table>
-                </el-col>
-              </el-row>
-            </el-menu-item-group>
-          </el-submenu>-->
         </el-menu>
       </el-tab-pane>
 
@@ -266,12 +186,13 @@
             {{ equipmentTime }}
           </el-form-item>
 
-          <el-form-item label="鏃跺尯" prop="timezone">
+          <!-- <el-form-item label="鏃跺尯" prop="timezone">
             <el-select
               v-model="timezone"
               placeholder="璇烽�夋嫨"
               style="width: 360px; height: 32px"
               size="small"
+              @change="checkTimeZone"
             >
               <el-option
                 v-for="item in timeZoneOption"
@@ -280,7 +201,7 @@
                 :value="item.value"
               ></el-option>
             </el-select>
-          </el-form-item>
+          </el-form-item>-->
           <div style="text-align: left;padding: 10px 0px">
             <div class="time-type">NTP鏍℃椂</div>
             <div style="padding: 10px 0px;">
@@ -328,7 +249,6 @@
               placeholder="閫夋嫨鏃ユ湡鏃堕棿"
               size="small"
               value-format="yyyy-MM-dd HH:mm:ss"
-              :readonly="settimeRadio"
               :disabled="syncType === '1'"
             ></el-date-picker>
             <el-checkbox
@@ -351,35 +271,46 @@
       <el-tab-pane label="闆嗙兢绠$悊" name="third">
         <cluster-management></cluster-management>
       </el-tab-pane>
-      <el-tab-pane label="澶栭儴缃戠粶" name="fourth">
-        <div class="flex-box">
-          <label>璁剧疆澶栭儴IP</label>
-          <div style="width:300px;">
-            <ip-input :ip="ipServer.ip" @on-blur="ipServer.ip = arguments[0]"></ip-input>
-          </div>
-          <el-checkbox label="閫夌敤鏈満IP" size="small" style="margin-left: 20px"></el-checkbox>
-        </div>
-        <div class="flex-box">
-          <label>鍩熷悕</label>
-          <el-input size="small" v-model="ipServer.localhost"></el-input>
-        </div>
-        <div class="flex-box">
-          <label>鏈湴鏂囦欢绔彛</label>
-          <el-input size="small" v-model="ipServer.localFilePort"></el-input>
-        </div>
-        <div class="mt15 save-btn" style="width:460px; margin-bottom:20px; float:left;">
-          <el-button type="primary" @click="submitResource" size="small">淇濆瓨</el-button>
-        </div>
-        <div>
-          <el-table :data="ipServer.fileTable" border fit style="width: 100%">
-            <el-table-column type="index" label="搴忓彿" align="center" width="50"></el-table-column>
-            <el-table-column prop="date" label="鍚嶇О" align="center"></el-table-column>
-            <el-table-column prop="name" label="ID" align="center"></el-table-column>
-            <el-table-column prop="name" label="IP" align="center"></el-table-column>
-            <el-table-column prop="name" label="鍦ㄧ嚎鐘舵��" align="center"></el-table-column>
-          </el-table>
-        </div>
-      </el-tab-pane>
+      <!-- <el-tab-pane label="澶栭儴璁块棶" name="fourth">
+        <el-menu
+          :default-openeds="openeds"
+          background-color="#fff"
+          text-color="#303133"
+          active-text-color="#409EFF"
+          style="height: 100%;"
+          class="menu-css"
+          @open="menuOpen"
+          @close="menuClose"
+        >
+          <el-submenu index="0">
+            <template slot="title">
+              <b class="tree-font">澶栭儴璁块棶璁剧疆</b>
+            </template>
+            <el-menu-item-group class="item-group">
+              <el-form :model="sysinfo" :rules="rules" ref="sysinfo" label-width="100px">
+                <div class="flex-box">
+                  <label>璁剧疆澶栭儴IP</label>
+                  <div style="width:300px;">
+                    <ip-input :ip="ipServer.ip" @on-blur="ipServer.ip = arguments[0]"></ip-input>
+                  </div>
+                  <el-checkbox label="閫夌敤鏈満IP" size="small" style="margin-left: 20px"></el-checkbox>
+                </div>
+                <div class="flex-box">
+                  <label>鍩熷悕</label>
+                  <el-input size="small" v-model="ipServer.localhost"></el-input>
+                </div>
+                <div class="flex-box">
+                  <label>鏈湴鏂囦欢绔彛</label>
+                  <el-input size="small" v-model="ipServer.localFilePort"></el-input>
+                </div>
+                <div class="mt15 mb10 save-btn">
+                  <el-button type="primary" @click="submitSysinfo" size="small">淇濆瓨</el-button>
+                </div>
+              </el-form>
+            </el-menu-item-group>
+          </el-submenu>
+        </el-menu>
+      </el-tab-pane> -->
       <el-tab-pane label="鏉冮檺绠$悊" name="user">
         <authority-management v-if="activeName === 'user'"></authority-management>
       </el-tab-pane>
@@ -529,29 +460,6 @@
         ip: "",
         localhost: "",
         localFilePort: "",
-        fileTable: [
-          {
-            date: '2016-05-02',
-            name: '鐜嬪皬铏�',
-            address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�',
-            edit: false
-          }, {
-            date: '2016-05-04',
-            name: '鐜嬪皬铏�',
-            address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�',
-            edit: false
-          }, {
-            date: '2016-05-01',
-            name: '鐜嬪皬铏�',
-            address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�',
-            edit: false
-          }, {
-            date: '2016-05-03',
-            name: '鐜嬪皬铏�',
-            address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�',
-            edit: false
-          }
-        ]
       },
       locationCity: {
         province: '',
@@ -570,6 +478,8 @@
       // this.initAlarmConf();
       this.initResourceConfig();
       this.initClockConf();
+      //this.markStartTime();
+
     });
   },
   beforeDestroy() {
@@ -590,6 +500,16 @@
           this.alarmConf.min_video_len = rsp.data.min_video_len;
           this.alarmConf.max_video_len = rsp.data.max_video_len;
 
+          if (this.sysinfo.deviceInfo) {
+            let devInfo = this.sysinfo.deviceInfo;
+
+            this.sysinfo.cpuInfo = devInfo.cpu[0].modelName;
+            this.sysinfo.disks = devInfo.disk;
+            this.sysinfo.mem = (devInfo.mem.total / 1024 / 1024 / 1024).toFixed(2) + "KB";
+            // this.sysinfo.arch = devInfo.host.kernelArch;
+            this.sysinfo.uptime = this.secondsFormat(devInfo.host.uptime);
+          }
+
           if (!this.sysinfo.server_port) {
             this.sysinfo.server_port = 7003;
           }
@@ -601,6 +521,13 @@
       }).catch(err => {
         this.loading = false;
       });
+    },
+    secondsFormat(s) {
+      var day = Math.floor(s / (24 * 3600)); // Math.floor()鍚戜笅鍙栨暣 
+      var hour = Math.floor((s - day * 24 * 3600) / 3600);
+      var minute = Math.floor((s - day * 24 * 3600 - hour * 3600) / 60);
+      var second = s - day * 24 * 3600 - hour * 3600 - minute * 60;
+      return day + "澶�" + hour + "鏃�" + minute + "鍒�" + second + "绉�";
     },
     initClockConf() {
       getClockInfo().then(rsp => {
@@ -651,6 +578,10 @@
           this.settime = this.formatTime(timestamp, 'Y-M-D h:m:s')
         }, 1000)
       }
+    },
+    markStartTime() {
+      let timestamp = new Date().getTime() / 1000;
+      this.settime = this.formatTime(timestamp, 'Y-M-D h:m:s')
     },
     submitSysinfo() {
       this.$refs["sysinfo"].validate(valid => {
@@ -720,6 +651,10 @@
           return false;
         }
       });
+    },
+    checkTimeZone(val) {
+      debugger;
+
     },
     submitClock() {
       if (this.syncType === '1') {
@@ -889,8 +824,8 @@
     // margin-left: -80px;
     .el-form-item {
       text-align: left;
-      &.is-required:not(.is-no-asterisk)>.el-form-item__label:before{
-        margin-left:-8px;
+      &.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
+        margin-left: -8px;
       }
       .el-button {
         float: right;
@@ -1039,6 +974,16 @@
     width: 300px;
   }
 }
+.desc-info {
+  margin-bottom: 14px;
+  .flex-box {
+    height: 40px;
+    line-height: 40px;
+    .xiangqin-label {
+      width: 80px;
+    }
+  }
+}
 .menu-css,
 .el-menu {
   border-right: none;

--
Gitblit v1.8.0