From 2ec95b3d2fd484b44d5274054bcbd78307a76ef8 Mon Sep 17 00:00:00 2001
From: mark <mark18340872469@163.com>
Date: 星期五, 30 九月 2022 14:04:12 +0800
Subject: [PATCH] 报警推送日志

---
 src/api/report.ts                              |   15 +
 src/views/dataPush/components/point.vue        |   58 +++---
 src/views/dataPush/components/alarmPush.vue    |  401 ++++++++++++++++++++++++++++++++++++++++++++
 src/views/dataPush/components/dataPush.vue     |   20 +-
 src/views/dataPush/components/point/point.scss |    0 
 src/views/dataPush/components/point/point.js   |    0 
 6 files changed, 452 insertions(+), 42 deletions(-)

diff --git a/src/api/report.ts b/src/api/report.ts
index 782d199..f949b4d 100644
--- a/src/api/report.ts
+++ b/src/api/report.ts
@@ -140,7 +140,7 @@
     params: query
   })
 }
-// 鎬诲紑鍏�
+// 鎬诲紑鍏崇殑鏀瑰彉
 export const camerasSwitch = (query: any) => {
   return request({
     url: "/api-a/v1/cameras/switch",
@@ -148,10 +148,21 @@
     params: query
   })
 }
-
+// 鎬诲紑鍏崇殑鐘舵��
 export const camerasConfig = () => {
   return request({
     url: "/api-a/v1/cameras/config",
     method: "get"
   })
 }
+/**
+ *
+ * 鎶ヨ鎺ㄩ�佹棩蹇�
+ */
+export const camerasReportLog = (query: any) => {
+  return request({
+    url: "/api-a/v1/cameras/reportLog",
+    method: "get",
+    params: query
+  })
+}
diff --git a/src/views/dataPush/components/alarmPush.vue b/src/views/dataPush/components/alarmPush.vue
new file mode 100644
index 0000000..897efc8
--- /dev/null
+++ b/src/views/dataPush/components/alarmPush.vue
@@ -0,0 +1,401 @@
+<template>
+  <div class="sub-account">
+    <div class="table-area">
+      <el-table
+        id="multipleTable"
+        ref="multipleTable"
+        :data="dataList"
+        :fit="true"
+        :default-sort="{ prop: 'createTime', order: 'descending' }"
+      >
+        <el-table-column prop="alarmDate" label="鎶ヨ鏃ユ湡" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="channelName" label="璁惧鐨勭湡瀹炴姤璀﹂�氶亾鍚嶇О" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="alarmType" label="鎶ヨ绫诲瀷" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="alarmAction" label="鎶ヨ鍔ㄤ綔" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="channelCode" label="璁惧鐨勭湡瀹炴姤璀﹂�氶亾缂栫爜" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="alarmImage" label="鎶ヨ/閿�璀﹀浘鐗噓rl" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="state" label="涓婃姤缁撴灉" show-overflow-tooltip>
+          <template slot-scope="scope">
+            <div v-if="scope.row.state == 0" class="status green">澶辫触</div>
+            <div v-else class="status">鎴愬姛</div>
+          </template>
+        </el-table-column>
+        <el-table-column prop="resultMsg" label="涓婃姤杩斿洖淇℃伅" show-overflow-tooltip></el-table-column>
+
+        <!-- <el-table-column label="鎿嶄綔" align="center" width="100px">
+          <template slot-scope="scope">
+            <span class="iconfont option" @click="editUser(scope.row)">缂栬緫</span>
+            <span class="iconfont option" style="color:red" @click="delUser(scope.row)">鍒犻櫎</span>
+          </template>
+        </el-table-column> -->
+      </el-table>
+      <div>
+        <el-pagination
+          @current-change="refrash"
+          @size-change="handleSizeChange"
+          :current-page="page"
+          :page-size="size"
+          layout="total, sizes, prev, pager, next, jumper"
+          :page-sizes="[5, 10, 15, 20, 25]"
+          :total="total"
+          background
+        ></el-pagination>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { camerasReportLog } from "@/api/report"
+
+export default {
+  data() {
+    return {
+      dataList: [],
+      page: 1,
+      size: 10, //鍒嗛〉鐩稿叧
+      total: 0 //鎬绘暟,
+    }
+  },
+  async created() {
+    this.lookUp()
+    //     GET    /api-a/v1/cameras/reportLog
+    // 鍒嗛〉鏌ヨ涓婃姤鏃ュ織
+    // alarmDate   string // 鎶ヨ鏃ユ湡
+    // channelName string // 璁惧鐨勭湡瀹炴姤璀﹂�氶亾鍚嶇О
+    // alarmType   string // 鎶ヨ绫诲瀷
+    // alarmAction string // 鎶ヨ鍔ㄤ綔
+    // channelCode string // 璁惧鐨勭湡瀹炴姤璀﹂�氶亾缂栫爜
+    // alarmImage  string // 鎶ヨ/閿�璀﹀浘鐗噓rl  A閾炬帴
+    // state       int    // 涓婃姤缁撴灉, 0 澶辫触 1 鎴愬姛
+    // resultMsg   string // 涓婃姤杩斿洖淇℃伅
+  },
+  mounted() {},
+  methods: {
+    handleSizeChange(size) {
+      this.size = size
+      this.lookUp()
+    },
+    //鍒嗛〉鍔熻兘
+    refrash(page) {
+      this.page = page
+      this.lookUp()
+    },
+
+    async lookUp() {
+      let res = await camerasReportLog({ pageIndex: this.page, pageSize: this.size })
+      this.dataList = res.data
+      this.total = res.total
+    }
+  }
+}
+</script>
+
+<style scoped lang="scss">
+.sub-account {
+  padding: 20px;
+  .head-name {
+    font-weight: 700;
+    font-size: 16px;
+    line-height: 22px;
+    color: #3d3d3d;
+    border-left: 4px solid #0065ff;
+    padding-left: 10px;
+  }
+  .add-title {
+    font-weight: 700;
+    font-size: 16px;
+    cursor: pointer;
+    line-height: 22px;
+    color: #3d3d3d;
+    margin-bottom: 30px;
+    .iconfont {
+      margin-right: 10px;
+    }
+  }
+  .add-ruleForm::v-deep {
+    .el-input__inner {
+      color: #3d3d3d;
+      border-radius: 4px;
+      border-color: #c0c5cc;
+      height: 32px;
+      line-height: 32px;
+      border-color: #c0c5cc;
+    }
+    .user-tree {
+      .el-form-item__label:before {
+        content: "*";
+        color: #f52323;
+        margin-right: 4px;
+      }
+      .el-form-item__content {
+        display: flex;
+        .tree-box {
+          .t {
+            height: 32px;
+            background: #f0f5fa;
+            border-radius: 3px 3px 0px 0px;
+            line-height: 32px;
+            text-align: center;
+            border-bottom: 1px solid #c0c5cc;
+          }
+          width: 336px;
+          height: 480px;
+          border: 1px solid #c0c5cc;
+          margin-right: 20px;
+          box-sizing: border-box;
+        }
+      }
+    }
+  }
+  .searchBtn {
+    width: 50px;
+    height: 25px;
+    line-height: 25px;
+    font-size: 14px;
+    text-align: center;
+    color: #fff;
+    background: #0065ff;
+    margin-right: 20px;
+  }
+  .right {
+    display: flex;
+  }
+  .resetBtn {
+    width: 50px;
+    height: 25px;
+    line-height: 25px;
+    font-size: 14px;
+    text-align: center;
+    color: #0065ff;
+    box-sizing: border-box;
+    border: 1px solid #0065ff;
+  }
+  .search {
+    display: flex;
+    font-size: 14px;
+    border-bottom: 1px solid #e9ebee;
+    margin-top: 30px;
+    padding-bottom: 20px;
+    .left,
+    .right,
+    .id,
+    .time,
+    .cluster {
+      display: flex;
+      align-items: center;
+      .el-select {
+        width: auto;
+      }
+    }
+
+    .id .el-input ::v-deep {
+      width: 200px;
+    }
+
+    .cluster::v-deep .el-input {
+      width: 300px;
+
+      margin-left: 10px;
+      margin-right: 20px;
+      .el-input__icon {
+        line-height: 32px;
+      }
+      input {
+        border-radius: 0;
+
+        &::-webkit-input-placeholder {
+          color: #999;
+        }
+
+        &:focus {
+          border-color: #0065ff;
+        }
+      }
+    }
+
+    .el-input ::v-deep {
+      width: 200px;
+      margin-left: 10px;
+      margin-right: 20px;
+      height: 32px;
+      line-height: 32px;
+      input {
+        border-radius: 0;
+        height: 32px;
+        line-height: 32px;
+        &::-webkit-input-placeholder {
+          color: #999;
+        }
+
+        &:focus {
+          border-color: #0065ff;
+        }
+      }
+    }
+
+    .el-date-editor {
+      width: 318px;
+      height: 40px;
+      margin-left: 10px;
+      margin-right: 20px;
+      border-radius: 0;
+
+      &::-webkit-input-placeholder {
+        color: #999;
+      }
+
+      &.is-active {
+        border-color: #0065ff;
+      }
+    }
+  }
+
+  .btns {
+    display: flex;
+    margin: 20px 0;
+    text-align: center;
+    .add {
+      margin-right: 20px;
+      width: 126px;
+      height: 32px;
+      background: #0065ff;
+      color: #fff;
+      span {
+        margin-right: 5px;
+        line-height: 32px;
+        font-size: 14px;
+      }
+    }
+
+    .export {
+      width: 126px;
+      height: 32px;
+      border: 1px solid #0065ff;
+      color: #0065ff;
+      box-sizing: border-box;
+      span {
+        margin-right: 5px;
+        line-height: 32px;
+        font-size: 14px;
+      }
+    }
+  }
+
+  .el-table ::v-deep {
+    background-color: rgb(233, 235, 238);
+    padding: 1px;
+
+    &::after {
+      display: none;
+    }
+
+    td.index .cell {
+      padding-left: 16px;
+      padding-right: 4px;
+    }
+
+    .has-gutter tr th {
+      background: #f0f3f5;
+      font-size: 16px;
+      color: #3d3d3d;
+      font-weight: 700;
+    }
+
+    td .cell {
+      color: #3d3d3d;
+    }
+
+    tr:hover > td.el-table__cell {
+      background-color: #fff;
+    }
+
+    .el-table__row--striped .el-table__cell {
+      background-color: #f0f5fa !important;
+    }
+    tr:hover > td.el-table__cell {
+      background-color: #fff;
+    }
+
+    .el-table__row--striped .el-table__cell {
+      background-color: #f0f5fa !important;
+    }
+
+    .status {
+      color: #ff4b33;
+
+      &.green {
+        color: #36b24a;
+      }
+    }
+
+    .option {
+      margin-right: 10px;
+      font-size: 14px;
+      color: rgb(0, 101, 255);
+      cursor: pointer;
+    }
+  }
+
+  .el-pagination ::v-deep {
+    margin-top: 30px;
+    text-align: center;
+    height: 24px;
+    .el-pagination__sizes {
+      margin-right: 0;
+    }
+
+    button {
+      margin: 0;
+      background-color: #fff;
+      border: 1px solid #c0c5cc;
+      border-radius: 2px;
+    }
+
+    .number {
+      background-color: #fff;
+
+      &:not(.disabled):hover {
+        color: #0065ff;
+      }
+
+      &:not(.disabled).active {
+        background-color: #0065ff;
+        color: #fff;
+      }
+    }
+
+    .el-input .el-input__inner {
+      padding-left: 0;
+
+      &:hover,
+      &:focus {
+        border-color: #0065ff;
+      }
+    }
+  }
+
+  .el-select ::v-deep {
+    .el-select__tags-text {
+      color: #3d3d3d;
+    }
+  }
+}
+</style>
+
+<style>
+.el-date-table td.start-date span,
+.el-date-table td.end-date span {
+  background-color: #0065ff;
+}
+
+.el-button--text span {
+  color: #0065ff;
+}
+
+.el-button.is-plain:hover,
+.el-button.is-plain:focus {
+  color: #0065ff;
+  border-color: #0065ff;
+}
+</style>
diff --git a/src/views/dataPush/components/dataPush.vue b/src/views/dataPush/components/dataPush.vue
index 35aca91..586205c 100644
--- a/src/views/dataPush/components/dataPush.vue
+++ b/src/views/dataPush/components/dataPush.vue
@@ -1,20 +1,18 @@
 <template>
   <div style="padding: 20px;">
     <el-tabs v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane name="first">
+      <el-tab-pane name="device">
         <span slot="label"><i class="el-icon-s-home"></i> 璁惧淇℃伅缁存姢</span>
         <device></device>
       </el-tab-pane>
-      <!-- <el-tab-pane label="璁惧淇℃伅缁存姢" name="first">
-        <device></device>
-      </el-tab-pane> -->
-      <el-tab-pane name="second">
+      <el-tab-pane name="point">
         <span slot="label"><i class="el-icon-s-platform"></i> 鐐逛綅淇℃伅缁存姢</span>
         <point></point>
       </el-tab-pane>
-      <!-- <el-tab-pane label="鐐逛綅淇℃伅缁存姢" name="second">
-        <point></point>
-      </el-tab-pane> -->
+      <el-tab-pane name="alarmPush">
+        <span slot="label"><i class="el-icon-phone"></i> 鎶ヨ鎺ㄩ�佹棩蹇�</span>
+        <alarmPush></alarmPush>
+      </el-tab-pane>
     </el-tabs>
   </div>
 </template>
@@ -22,15 +20,17 @@
 <script>
 import device from "./device.vue"
 import point from "./point.vue"
+import alarmPush from "./alarmPush.vue"
 
 export default {
   components: {
     device,
-    point
+    point,
+    alarmPush
   },
   data() {
     return {
-      activeName: "first"
+      activeName: "device"
     }
   },
   created() {},
diff --git a/src/views/dataPush/components/point.vue b/src/views/dataPush/components/point.vue
index 9b502a5..9eff25f 100644
--- a/src/views/dataPush/components/point.vue
+++ b/src/views/dataPush/components/point.vue
@@ -10,7 +10,6 @@
 
       <div class="right">
         <div class="button searchBtn" @click="checkCamerasList(1)">鎼滅储</div>
-        <!-- <div class="button resetBtn" @click="reset">閲嶇疆</div> -->
       </div>
     </div>
     <div class="btns">
@@ -19,13 +18,16 @@
         <span>娣诲姞鐐逛綅</span>
       </div>
       <div class="switchBox">
+        鎬荤偣浣嶅紑鍏�
         <el-switch
           v-model="value1"
           width="60"
+          active-color="#13ce66"
+          inactive-color="#f0f3f5"
           @change="changeAll($event)"
-          active-text="鎬荤偣浣嶅紑"
-          inactive-text="鎬荤偣浣嶅叧"
         >
+          <!-- active-text="鎬荤偣浣嶅紑"
+          inactive-text="鎬荤偣浣嶅叧" -->
         </el-switch>
       </div>
     </div>
@@ -89,7 +91,7 @@
       class="add-ruleForm"
     >
       <el-form-item label="鐐逛綅鍚嶇О" prop="CameraName">
-        <el-select style="width: 350px" v-model="ruleForm.CameraName" placeholder="璇烽�夋嫨">
+        <el-select filterable style="width: 350px" v-model="ruleForm.CameraName" placeholder="璇烽�夋嫨">
           <el-option v-for="item in cameraOptions" :key="item.id" :label="item.name" :value="item.name"> </el-option>
         </el-select>
       </el-form-item>
@@ -150,13 +152,16 @@
 
 <script>
 import { getLocalCameraTree } from "@/api/area"
-import { traverse } from "./point"
 import { getClusterDevList } from "@/api/clusterManage"
 import { camerasList, camerasCreate, camerasConfig, camerasSwitch, camerasUpdate, camerasDelete } from "@/api/report"
-import "./point.scss"
+import { traverse } from "./point/point"
+import "./point/point.scss"
+
 export default {
   data() {
     return {
+      activeColor: "",
+      inactiveColor: "#f0f3f5",
       value1: false,
       query: {},
       inputText: "", //杈撳叆妗嗗唴瀹�
@@ -239,6 +244,20 @@
       total: 0 //鎬绘暟,
     }
   },
+  // computed: {
+  //   // activeColor() {
+  //   //   return this.value1 ? "#13ce66" : "#f0f3f5"
+  //   // }
+  // },
+  // watch: {
+  //   value1: {
+  //     handler(newVal, oldVal) {
+  //       console.log(newVal, oldVal, "newVal, oldVal")
+  //       newVal ? (this.activeColor = "#13ce66") : (this.activeColor = "#f0f3f5")
+  //     },
+  //     deep: true
+  //   }
+  // },
   async created() {
     let query = { pageIndex: this.page, pageSize: this.size, keyword: this.inputText }
     this.query = query
@@ -250,7 +269,6 @@
 
   methods: {
     async changeAll(val) {
-      console.log(val)
       let enable
       val ? (enable = 1) : (enable = 0)
       let rsp = await camerasSwitch({ enable: enable })
@@ -263,7 +281,6 @@
       }
     },
     changeSwitch(val, row) {
-      console.log(val, row, "val, rowval, row")
       let params = {
         CameraName: row.cameraName,
         ChannelCode: row.channelCode,
@@ -279,7 +296,6 @@
         id: row.id
       }
       camerasUpdate(params).then((res) => {
-        console.log(res, "res")
         if (res && res.success) {
           this.$message({
             type: "success",
@@ -289,7 +305,6 @@
       })
     },
     editCameras(row) {
-      console.log(row, "row")
       this.tip = 2
       this.isShowAdd = true
       this.resetUser()
@@ -312,7 +327,6 @@
       // 鎬诲紑鍏�
       if (res && res.success) {
         res.data.enable === 0 ? (this.value1 = false) : (this.value1 = true)
-        console.log(this.value1)
       }
       let clusterId = ""
       let clusterReq = await getClusterDevList()
@@ -322,7 +336,6 @@
           clusterId = clusterReq.data.clusterList[0].cluster_id
         }
       }
-      console.log(clusterId)
       let camereReq = await getLocalCameraTree({ clusterId: clusterId })
       // 杩欎釜鏄� 娣诲姞鏃剁殑鐐逛綅 鏄粠鎽勫儚鏈洪〉闈� 鏉ョ殑
       let array = []
@@ -339,7 +352,6 @@
           if (this.tip !== 1) {
             // tip1 鏄坊鍔� 鍏朵粬鏄紪杈�
             let obj = this.cameraOptions.find((item) => item.name === this.ruleForm.CameraName)
-            console.log(obj, "dddddddd")
             let params = {
               CameraName: this.ruleForm.CameraName,
               ChannelCode: this.ruleForm.ChannelCode,
@@ -354,8 +366,8 @@
               updatedAt: this.ruleForm.updatedAt,
               id: this.ruleForm.id
             }
+            //  缂栬緫
             camerasUpdate(params).then((res) => {
-              console.log(res, "res")
               if (res && res.success) {
                 this.$message({
                   type: "success",
@@ -367,7 +379,6 @@
             })
           } else {
             let obj = this.cameraOptions.find((item) => item.name === this.ruleForm.CameraName)
-            console.log(obj, "dddddddd")
             let params = {
               CameraName: this.ruleForm.CameraName,
               ChannelCode: this.ruleForm.ChannelCode,
@@ -379,9 +390,8 @@
               Level: this.ruleForm.Level,
               Enable: this.ruleForm.Enable
             }
-            console.log(params, "paramsv")
+            // 鏂板缓
             camerasCreate(params).then((res) => {
-              console.log(res, "res")
               if (res && res.success) {
                 this.$message({
                   type: "success",
@@ -443,15 +453,6 @@
       this.ruleForm.Sceneslist = []
       this.ruleForm.StartTime = ""
       this.ruleForm.EndTime = ""
-
-      //   Scenes: "",
-      //   CameraId: "", // 鎽勫儚鏈篿d
-      //   Level: "",
-      //   Enable: false,
-      //   createdAt: "",
-      //   updatedAt: "",
-      //   id: ""
-      // }
     },
     goback() {
       this.isShowAdd = false
@@ -460,10 +461,7 @@
 }
 </script>
 
-//
-<style scoped lang="scss">
-//
-</style>
+<style scoped lang="scss"></style>
 <style scoped lang="scss">
 .sub-account {
   padding: 20px;
diff --git a/src/views/dataPush/components/point.js b/src/views/dataPush/components/point/point.js
similarity index 100%
rename from src/views/dataPush/components/point.js
rename to src/views/dataPush/components/point/point.js
diff --git a/src/views/dataPush/components/point.scss b/src/views/dataPush/components/point/point.scss
similarity index 100%
rename from src/views/dataPush/components/point.scss
rename to src/views/dataPush/components/point/point.scss

--
Gitblit v1.8.0