From 2cb264ec2b7c7dd9798d1821927104fad35bd063 Mon Sep 17 00:00:00 2001
From: ZZJ <10913410+zzj2100@user.noreply.gitee.com>
Date: 星期二, 28 六月 2022 14:47:43 +0800
Subject: [PATCH] 系统设置自适应

---
 src/pages/analysisPower/index/App.vue |  361 +++++++++++++++++++++++++++++++-------------------
 1 files changed, 223 insertions(+), 138 deletions(-)

diff --git a/src/pages/analysisPower/index/App.vue b/src/pages/analysisPower/index/App.vue
index e5b7ce9..18819bb 100644
--- a/src/pages/analysisPower/index/App.vue
+++ b/src/pages/analysisPower/index/App.vue
@@ -16,13 +16,18 @@
       </div>
     </div>
 
-    <div class="bottom" :style="{'height':strethTable?'calc(100% - 30px)':'calc(100% - 220px)'}">
-      <div style="width: 100%;height: 10px;background-color: #E9EBF2;"></div>
+    <div
+      class="bottom"
+      :style="{
+        height: strethTable ? 'calc(100% - 30px)' : 'calc(100% - 220px)',
+      }"
+    >
+      <div style="width: 100%; height: 10px; background-color: #e9ebf2"></div>
       <div class="content">
         <div class="toolBar">
           <el-input
             size="small"
-            style="width: 180px;"
+            style="width: 180px"
             placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"
             prefix-icon="el-icon-search"
             clearable
@@ -31,50 +36,72 @@
           <el-button
             size="small"
             type="primary"
-            style="margin-left: 20px; margin-right: 50px;"
+            style="margin-left: 20px; margin-right: 50px"
             @click="pollSeach"
-          >鎼滅储</el-button>
+            >鎼滅储</el-button
+          >
           <div class="tip">
             <span>
               杞鏃堕棿 :
-              <b>{{PollData.Config.poll_period}}</b>鍒嗛挓
+              <b>{{ PollData.Config.poll_period }}</b
+              >鍒嗛挓
             </span>
             <span>
               杞鍛ㄦ湡 :
-              <b>{{pollCycle}}</b>鍒嗛挓
+              <b>{{ pollCycle }}</b
+              >鍒嗛挓
             </span>
             <span>
               杞寮�鍏� :
-              <b>{{PollData.Enabled | switchText}}</b>
+              <b>{{ PollData.Enabled | switchText }}</b>
             </span>
           </div>
-          <span :class="stretchStyle" @click="strethTable = !strethTable"></span>
+          <span
+            :class="stretchStyle"
+            @click="strethTable = !strethTable"
+          ></span>
 
           <el-button
             size="small"
             type="primary"
-            style="float:right"
+            style="float: right"
             @click="openDrawer"
             v-if="showSetting"
-          >璁剧疆</el-button>
+            >璁剧疆</el-button
+          >
         </div>
 
         <el-table
-          :header-cell-style="{background:'#F8F8F8', color: '#222222'}"
+          :header-cell-style="{ background: '#F8F8F8', color: '#222222' }"
           height="93%"
           :data="PollData.CameraList"
           border
           :cell-style="cellStyle"
         >
-          <el-table-column label="搴忓彿" type="index" align="center" width="60px"></el-table-column>
-          <el-table-column label="鎽勫儚鏈哄悕绉�" align="center" show-overflow-tooltip>
+          <el-table-column
+            label="搴忓彿"
+            type="index"
+            align="center"
+            width="60px"
+          ></el-table-column>
+          <el-table-column
+            label="鎽勫儚鏈哄悕绉�"
+            align="center"
+            show-overflow-tooltip
+          >
             <template slot-scope="scope">
-              <span
-                :style="scope.row.is_running ? `color:#3d68e1` : '' "
-              >{{scope.row.alias !== '' ? scope.row.alias: scope.row.name}}</span>
+              <span :style="scope.row.is_running ? `color:#3d68e1` : ''">{{
+                scope.row.alias !== "" ? scope.row.alias : scope.row.name
+              }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="鎽勫儚鏈哄湴鍧�" prop="addr" align="center" show-overflow-tooltip sortable></el-table-column>
+          <el-table-column
+            label="鎽勫儚鏈哄湴鍧�"
+            prop="addr"
+            align="center"
+            show-overflow-tooltip
+            sortable
+          ></el-table-column>
           <el-table-column
             label="鎽勫儚鏈篒P"
             prop="ip"
@@ -85,39 +112,59 @@
           ></el-table-column>
           <el-table-column label="鎽勫儚鏈虹被鍨�" align="center" width="120px">
             <template slot-scope="scope">
-              <span>{{scope.row.run_type | cameraType}}</span>
+              <span>{{ scope.row.run_type | cameraType }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="鎵ц绠楁硶" align="center" show-overflow-tooltip>
+          <el-table-column
+            label="鎵ц绠楁硶"
+            align="center"
+            show-overflow-tooltip
+          >
             <template slot-scope="scope">
-              <span v-if="scope.row.run_type === -1 ">-</span>
-              <span v-else-if="scope.row.tasks != null ">{{scope.row.tasks | taskList}}</span>
+              <span v-if="scope.row.run_type === -1">-</span>
+              <span v-else-if="scope.row.tasks != null">{{
+                scope.row.tasks | taskList
+              }}</span>
               <span v-else>-</span>
             </template>
           </el-table-column>
-          <el-table-column label="杩愯璁惧" align="center" width="160px" sortable>
+          <el-table-column
+            label="杩愯璁惧"
+            align="center"
+            width="160px"
+            sortable
+          >
             <template slot-scope="scope">
-              <span v-if="scope.row.run_type === -1 ">-</span>
-              <span v-else>{{scope.row.runServerName}}</span>
+              <span v-if="scope.row.run_type === -1">-</span>
+              <span v-else>{{ scope.row.runServerName }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="鐘舵��" align="center" show-overflow-tooltip width="100px">
+          <el-table-column
+            label="鐘舵��"
+            align="center"
+            show-overflow-tooltip
+            width="100px"
+          >
             <template slot-scope="scope">
-              <span v-if="scope.row.status === -1 ">-</span>
-              <span v-else-if="scope.row.status === 2">{{"澶勭悊涓�"}}</span>
-              <span v-else-if="scope.row.status === 1">{{"绛夊緟澶勭悊"}}</span>
-              <span v-else-if="scope.row.status === 0">{{"瑙勫垯涓嶅叏"}}</span>
+              <span v-if="scope.row.status === -1">-</span>
+              <span v-else-if="scope.row.status === 2">{{ "澶勭悊涓�" }}</span>
+              <span v-else-if="scope.row.status === 1">{{ "绛夊緟澶勭悊" }}</span>
+              <span v-else-if="scope.row.status === 0">{{ "瑙勫垯涓嶅叏" }}</span>
             </template>
           </el-table-column>
           <el-table-column label="瀹炴椂/杞" align="center" width="100px">
             <template slot-scope="scope">
-              <span v-if="scope.row.run_type === -1 ">-</span>
+              <span v-if="scope.row.run_type === -1">-</span>
               <toggle-button
                 v-else
                 :value="scope.row.run_type === 1"
                 :width="60"
-                :labels="{checked: '瀹炴椂', unchecked: '杞'}"
-                :color="{checked: '#4D88FF', unchecked: '#FF7733', disabled: '#CCCCCC'}"
+                :labels="{ checked: '瀹炴椂', unchecked: '杞' }"
+                :color="{
+                  checked: '#4D88FF',
+                  unchecked: '#FF7733',
+                  disabled: '#CCCCCC',
+                }"
                 :sync="true"
                 @change="pollSwitch(scope.row)"
               />
@@ -137,29 +184,34 @@
       :before-close="closeDrawer"
     >
       <div class="dawer_details">
-        <span>鎬荤畻鍔� {{formData.totalChanle}} 閫氶亾</span>
-        <span style="margin-left:20px">瀹炴椂绠楀姏 {{formData.realTime}} 閫氶亾</span>
+        <span>鎬荤畻鍔� {{ formData.totalChanle }} 閫氶亾</span>
+        <span style="margin-left: 20px"
+          >瀹炴椂绠楀姏 {{ formData.realTime }} 閫氶亾</span
+        >
       </div>
       <div class="e-drawer_rate">
         <div class="rate">
           <label>杞鏃堕棿</label>
           <el-input-number
             size="small"
-            style="width: 60px;margin-left:25px"
+            style="width: 60px; margin-left: 25px"
             v-model.number="formData.pollPeriod"
             :controls="false"
-            :min="0"
+            :min="1"
             :max="60 * 24 * 1"
           ></el-input-number>
           <span>鍒嗛挓</span>
 
           <label>杞寮�鍏�</label>
-          <el-switch style="margin-left: 10px;" v-model="formData.pollEnable"></el-switch>
+          <el-switch
+            style="margin-left: 10px"
+            v-model="formData.pollEnable"
+          ></el-switch>
         </div>
         <div class="rate">
           <label>杞绠楀姏</label>
           <el-input-number
-            style="margin-left:25px;width:90px"
+            style="margin-left: 25px; width: 90px"
             size="small"
             v-model="formData.polling"
             @change="changePoll"
@@ -171,7 +223,7 @@
         <div class="rate">
           <label>鏁版嵁鏍堢畻鍔�</label>
           <el-input-number
-            style="margin-left:11px;width:90px"
+            style="margin-left: 11px; width: 90px"
             size="small"
             v-model="formData.dataStack"
             @change="changeStack"
@@ -184,10 +236,17 @@
         <el-button
           size="small"
           type="primary"
-          style="margin:10px 10px 0px 200px"
+          style="margin: 10px 10px 0px 200px"
           @click="saveSetting"
-        >淇濆瓨</el-button>
-        <el-button size="small" type="info" style="color:black" @click="closeDrawer">鍙栨秷</el-button>
+          >淇濆瓨</el-button
+        >
+        <el-button
+          size="small"
+          type="info"
+          style="color: black"
+          @click="closeDrawer"
+          >鍙栨秷</el-button
+        >
       </div>
     </el-drawer>
   </div>
@@ -195,9 +254,14 @@
 
 <script>
 import echarts from "echarts";
-import { changeRunType, updatePollEnable, updatePollPeriod, updateChannelCount } from "@/api/pollConfig";
+import {
+  changeRunType,
+  updatePollEnable,
+  updatePollPeriod,
+  updateChannelCount,
+} from "@/api/pollConfig";
 
-import Sysinfo from "@/components/subComponents/SystemInfo"
+import Sysinfo from "@/components/subComponents/SystemInfo";
 export default {
   name: "PollSeting",
   components: {
@@ -208,15 +272,18 @@
       return type === -1 ? "鐩戞帶鎽勫儚鏈�" : "AI鎽勫儚鏈�";
     },
     taskList(tasks) {
-      return tasks.filter(task => {
-        return task.hasRule;
-      }).map(task => {
-        return task.taskname
-      }).join(',')
+      return tasks
+        .filter((task) => {
+          return task.hasRule;
+        })
+        .map((task) => {
+          return task.taskname;
+        })
+        .join(",");
     },
     switchText(type) {
       return type ? "宸插紑鍚�" : "鏈紑鍚�";
-    }
+    },
   },
   computed: {
     maxPoll() {
@@ -227,26 +294,29 @@
     },
     stretchStyle() {
       let arry = ["iconfont", "stretch-btn"];
-      arry.push(this.strethTable ? "iconzhankai" : "iconshouqi")
+      arry.push(this.strethTable ? "iconzhankai" : "iconshouqi");
       return arry;
     },
     pollCycle() {
-      if (this.PollData.PollValidCount===0||!this.PollData.PollValidCount) {
-        return 0
+      if (this.PollData.PollValidCount === 0 || !this.PollData.PollValidCount) {
+        return 0;
       }
       let sumPollingCamera = 0;
-      this.PollData.CameraList.forEach(cam => {
+      this.PollData.CameraList.forEach((cam) => {
         if (cam.run_type === 0) {
-          sumPollingCamera++
+          sumPollingCamera++;
         }
-      })
+      });
       // 鎵�鏈夎疆璇㈢殑鎽勫儚鏈烘�绘暟 * 杞鏃堕棿 / 杞绠楀姏 - 1
-      let ret = (sumPollingCamera * this.PollData.Config.poll_period) / this.PollData.PollValidCount - 1
+      let ret =
+        (sumPollingCamera * this.PollData.Config.poll_period) /
+          this.PollData.PollValidCount -
+        1;
       if (String(ret).indexOf(".") > 0) {
-        ret = ret.toFixed(1)
+        ret = ret.toFixed(1);
       }
 
-      return ret < 0 ? 0 : ret
+      return ret < 0 ? 0 : ret;
     },
     isAdmin() {
       if (
@@ -260,8 +330,10 @@
       return false;
     },
     showSetting() {
-      return this.isAdmin || this.buttonAuthority.indexOf("analysisPower:set") > -1
-    }
+      return (
+        this.isAdmin || this.buttonAuthority.indexOf("analysisPower:set") > -1
+      );
+    },
   },
   data() {
     return {
@@ -288,10 +360,16 @@
   },
   methods: {
     ipSortMethod(a, b) {
-      if (Number(a.ip.substr(a.ip.lastIndexOf('.') + 1)) < Number(b.ip.substr(b.ip.lastIndexOf('.') + 1))) {
+      if (
+        Number(a.ip.substr(a.ip.lastIndexOf(".") + 1)) <
+        Number(b.ip.substr(b.ip.lastIndexOf(".") + 1))
+      ) {
         return -1;
       }
-      if (Number(a.ip.substr(a.ip.lastIndexOf('.') + 1)) > Number(b.ip.substr(b.ip.lastIndexOf('.') + 1))) {
+      if (
+        Number(a.ip.substr(a.ip.lastIndexOf(".") + 1)) >
+        Number(b.ip.substr(b.ip.lastIndexOf(".") + 1))
+      ) {
         return 1;
       }
       return 0;
@@ -313,34 +391,36 @@
         pollPeriod: this.PollData.Config.poll_period,
         polling: this.PollData.PollChannelTotal,
         dataStack: this.PollData.localVideo,
-      }
+      };
     },
     pollSeach() {
       this.PollData.fetchPollList();
     },
     pollEnable() {
-      updatePollEnable({ enable: this.PollData.Enabled }).then(rsp => {
+      updatePollEnable({ enable: this.PollData.Enabled }).then((rsp) => {
         this.$notify({
           type: "success",
-          message: "淇敼鎴愬姛"
+          message: "淇敼鎴愬姛",
         });
         // this.PollData.fetchPollConfig()
-      })
+      });
     },
     updateDelayTime() {
-      updatePollPeriod({ period: this.PollData.Config.poll_period }).then(rsp => {
-        if (rsp && rsp.success) {
-          this.$notify({
-            type: 'success',
-            message: '杞鏃堕棿淇敼鎴愬姛锛�'
-          })
-        } else {
-          this.$notify({
-            type: 'error',
-            message: '杞鏃堕棿淇敼澶辫触锛�'
-          })
+      updatePollPeriod({ period: this.PollData.Config.poll_period }).then(
+        (rsp) => {
+          if (rsp && rsp.success) {
+            this.$notify({
+              type: "success",
+              message: "杞鏃堕棿淇敼鎴愬姛锛�",
+            });
+          } else {
+            this.$notify({
+              type: "error",
+              message: "杞鏃堕棿淇敼澶辫触锛�",
+            });
+          }
         }
-      })
+      );
     },
     statistic() {
       this.PollData.statistics();
@@ -351,19 +431,18 @@
     },
     pollSwitch(row) {
       changeRunType({ camera_ids: [row.id], run_type: row.run_type ^ 1 }).then(
-        rsp => {
+        (rsp) => {
           if (rsp && rsp.success) {
             this.$notify({
               type: "success",
-              message: "閰嶇疆鎴愬姛"
+              message: "閰嶇疆鎴愬姛",
             });
 
-            row.run_type = row.run_type ^ 1
-
+            row.run_type = row.run_type ^ 1;
           } else {
             this.$notify({
               type: "error",
-              message: "閰嶇疆澶辫触"
+              message: "閰嶇疆澶辫触",
             });
           }
 
@@ -380,14 +459,14 @@
           trigger: "axis",
           axisPointer: {
             // 鍧愭爣杞存寚绀哄櫒锛屽潗鏍囪酱瑙﹀彂鏈夋晥
-            type: "shadow" // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow'
-          }
+            type: "shadow", // 榛樿涓虹洿绾匡紝鍙�変负锛�'line' | 'shadow'
+          },
         },
         grid: {
           top: 40,
           // bottom: '45%',
           left: 0,
-          containLabel: true
+          containLabel: true,
         },
 
         xAxis: [
@@ -398,138 +477,144 @@
               // alignWithLabel: true
             },
             axisLine: {
-              show: false
+              show: false,
             },
-            nameLocation: 'start',
+            nameLocation: "start",
             axisTick: {
-              show: false
+              show: false,
             },
             axisLabel: {
               rotate: 45,
               formatter: function (value, index) {
-                let name = ""
+                let name = "";
                 if (value.length > 2) {
-                  name = value.substring(0, 2) + '...'
+                  name = value.substring(0, 2) + "...";
                 } else {
-                  name = value
+                  name = value;
                 }
-                let text = [`{a|${name}}`]
-                return text
+                let text = [`{a|${name}}`];
+                return text;
               },
               rich: {
                 a: {
                   fontSize: 10,
-                  with: 30
-                }
-              }
-            }
-          }
+                  with: 30,
+                },
+              },
+            },
+          },
         ],
         yAxis: [
           {
             type: "value",
             show: true,
             axisLine: {
-              show: false
+              show: false,
             },
             splitLine: {
               lineStyle: {
                 type: "dotted",
-                color: ['#f1f1f1']
-              }
+                color: ["#f1f1f1"],
+              },
             },
             axisTick: {
-              show: false
-            }
-          }
+              show: false,
+            },
+          },
         ],
         series: [
           {
             name: "鏁伴噺",
             type: "bar",
             barWidth: "30%",
-            data: this.dataList
-          }
-        ]
+            data: this.dataList,
+          },
+        ],
       };
-      this.showSysInfo = true
+      this.showSysInfo = true;
       this.barChart.setOption(optionBar);
-      this.barChart.resize()
+      this.barChart.resize();
       this.$nextTick(() => {
-        this.barChart.resize()
-      })
+        this.barChart.resize();
+      });
     },
 
     //婊戝潡鏁版嵁鏇存柊鍥炶皟
     changeSlider(val) {
       // console.log(val, '婊戝潡鍊煎彉鍔�')
-      let fileChannelCount = val[val.length - 1] - val[val.length - 2]
-      let pollChannelCount = val[val.length - 2] - val[val.length - 3]
-      this.PollData.updateChannelCount(fileChannelCount, pollChannelCount)
+      let fileChannelCount = val[val.length - 1] - val[val.length - 2];
+      let pollChannelCount = val[val.length - 2] - val[val.length - 3];
+      this.PollData.updateChannelCount(fileChannelCount, pollChannelCount);
     },
 
     async saveSetting() {
-      let rsp = await updatePollEnable({ enable: this.formData.pollEnable })
+      let rsp = await updatePollEnable({ enable: this.formData.pollEnable });
       if (!rsp || !rsp.success) {
-        this.formData.pollEnable = !this.formData.pollEnable
+        this.formData.pollEnable = !this.formData.pollEnable;
         this.$notify({
           type: "error",
-          message: "杞寮�鍏冲垏鎹㈠け璐ワ紒"
+          message: "杞寮�鍏冲垏鎹㈠け璐ワ紒",
         });
-        return
+        return;
       }
 
-      rsp = await updatePollPeriod({ period: this.formData.pollPeriod })
+      rsp = await updatePollPeriod({ period: this.formData.pollPeriod });
       if (!rsp || !rsp.success) {
         this.$notify({
           type: "error",
-          message: "杞鏃堕棿淇敼澶辫触锛�"
+          message: "杞鏃堕棿淇敼澶辫触锛�",
         });
-        return
+        return;
       }
-      rsp = await updateChannelCount({ videoChannelCount: this.formData.dataStack, pollChannelCount: this.formData.polling })
+      rsp = await updateChannelCount({
+        videoChannelCount: this.formData.dataStack,
+        pollChannelCount: this.formData.polling,
+      });
       if (!rsp || !rsp.success) {
         this.$notify({
           type: "error",
-          message: "绠楀姏閰嶇疆澶辫触锛�"
+          message: "绠楀姏閰嶇疆澶辫触锛�",
         });
-        return
+        return;
       } else {
         this.$notify({
           type: "success",
-          message: "閰嶇疆淇濆瓨鎴愬姛"
+          message: "閰嶇疆淇濆瓨鎴愬姛",
         });
       }
-      this.PollData.statisticTaskInfo()
-      this.PollData.fetchPollConfig()
+      this.PollData.statisticTaskInfo();
+      this.PollData.fetchPollConfig();
     },
 
     //鐩戝惉杞绠楀姏
     changePoll(newVal, oldVal) {
       if (newVal > oldVal) {
-        this.formData.dataStack--
+        this.formData.dataStack--;
       }
       if (newVal < oldVal) {
-        this.formData.dataStack++
+        this.formData.dataStack++;
       }
       // console.log("this.formData.dataStack:"+this.formData.dataStack)
     },
     //鐩戝惉鏁版嵁鏍堢畻鍔�
     changeStack(newVal, oldVal) {
       if (newVal > oldVal) {
-        this.formData.polling--
+        this.formData.polling--;
       }
       if (newVal < oldVal) {
-        this.formData.polling++
+        this.formData.polling++;
       }
       // console.log("this.formData.polling:"+this.formData.polling)
     },
     cellStyle(obj) {
-      if (obj.column.label == '鎽勫儚鏈哄悕绉�' || obj.column.label == '鎽勫儚鏈哄湴鍧�') {
-        return 'text-align:left;padding-left:8px;'
+      if (
+        obj.column.label == "鎽勫儚鏈哄悕绉�" ||
+        obj.column.label == "鎽勫儚鏈哄湴鍧�"
+      ) {
+        return "text-align:left;padding-left:8px;";
       }
-    }
-  }
+    },
+  },
 };
 </script>
 <style lang="scss">

--
Gitblit v1.8.0