From f4c324b44aadc4d8a44d4c67c588d2f76261ccaa Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期三, 30 十一月 2022 16:07:39 +0800
Subject: [PATCH] fix:消息分页 视频查询 图片查询

---
 src/views/intelligentPatrol/trendAnalysis/index.vue |  194 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 191 insertions(+), 3 deletions(-)

diff --git a/src/views/intelligentPatrol/trendAnalysis/index.vue b/src/views/intelligentPatrol/trendAnalysis/index.vue
index da3bee6..50de7ed 100644
--- a/src/views/intelligentPatrol/trendAnalysis/index.vue
+++ b/src/views/intelligentPatrol/trendAnalysis/index.vue
@@ -1,13 +1,201 @@
 <template>
-  <div>瓒嬪娍鍒嗘瀽</div>
+  <div class="trend-analysis">
+    <!-- 渚ц竟鏍� -->
+    <div class="trend-side">
+      <!-- 杈撳叆鍖哄煙 -->
+      <div class="trend-input-area">
+        <span class="trend-title">瓒嬪娍鍒嗘瀽</span>
+        <el-form ref="form" :model="search" label-width="6vw">
+          <el-form-item label="绫诲瀷鏌ヨ">
+            <el-select v-model="search.type" @change="searchList" placeholder="鍐呭淇℃伅">
+              <el-option v-for="option in categoryOptions" :key="option.value" :value="option.value" :label="option.label" ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item class="time-area" label="鏃堕棿鑼冨洿">
+            <el-date-picker @change="searchList" start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" v-model="search.timeRange"
+                            type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss">
+            </el-date-picker>
+          </el-form-item>
+        </el-form>
+      </div>
+      <!-- 鏁版嵁灞曠ず -->
+      <div class="trend-data-show">
+        <!-- 鐐逛綅鍒囨崲 -->
+        <div class="trend-data-header">
+          <el-button type="text" @click="tabChange(1)">楂樺彂鐐逛綅</el-button>
+          <el-button type="text" @click="tabChange(2)">棣栨杩濊鐐逛綅</el-button>
+        </div>
+        <!-- 瀵瑰簲鏁版嵁 -->
+        <div class="trend-data-main">
+          <div class="point-item" v-for="item in trendAnalysisList" :key="item.id" @click="pointClick(item)">
+            <span>{{ item.name }}</span>
+            <span>{{ item.count }}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="trend-main">
+      <div class="trend-main-echarts" id="echarts">
+
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-export default {
+import * as echarts from 'echarts'
+import basecase from "@/api/operate/basecase";
+import { CATEGOTY } from "@/utils/helper";
 
+export default {
+  created() {
+    this.searchList()
+  },
+
+  mounted() {
+    this.renderEchart();
+  },
+
+  computed: {
+    categoryOptions() {
+      return CATEGOTY;
+    }
+  },
+
+  data() {
+    return {
+      search: {
+        type: null,
+        timeRange: null
+      },
+      timeRangeFlag: false,
+      trendAnalysisList: [],
+      highFlag: true,
+      echarts: null,
+      pointName: null
+    }
+  },
+  methods: {
+    renderEchart(dataList) {
+      if (!this.echarts) {
+        this.echarts = echarts.init(document.getElementById('echarts'));
+      }
+      // 缁樺埗鍥捐〃
+      this.echarts.setOption({
+        xAxis: {
+          name: '鏃�/鍛�',
+        },
+        yAxis: {
+          name: '鎶ヨ閲�(娆�)',
+        },
+        series: [
+          {
+            data: dataList,
+            type: 'line',
+            smooth: true
+          }
+        ]
+      });
+    },
+    async searchList() {
+      const [startTime, endTime] = this.search.timeRange ?? [null, null];
+      const trendAnalysisParam = {
+        startTime,
+        endTime,
+        type: this.search.type
+      }
+      this.trendAnalysisList = this.highFlag ? await basecase.getTrendAnalysisData(trendAnalysisParam)
+          : await basecase.getFirstTrendAnalysisData(trendAnalysisParam);
+    },
+
+    tabChange(params) {
+      this.highFlag = params === 1;
+      this.searchList();
+    },
+
+    pointClick(data) {
+      this.pointName = data.name;
+      basecase.getPointTrendAnalysisData({ id: data.id })
+          .then(res => {
+            const countList = res.map(item => +item.count);
+            this.renderEchart(countList);
+          })
+          .catch(err => this.$message.error(err))
+    }
+  },
 }
 </script>
 
-<style>
+<style lang="scss" scoped>
+.trend-analysis {
+  height: 100%;
+  padding: 10vh 10vw;
+  color: #4b9bb7;
+  display: flex;
 
+  .trend-side {
+    width: 30vw;
+    text-align: left;
+    height: 100%;
+    border: 1px solid #09152f;
+
+    .trend-input-area {
+      display: flex;
+      flex-direction: column;
+      padding: 0 2vw;
+
+      &>span {
+        line-height: 40px;
+      }
+
+      ::v-deep .el-form {
+        .el-form-item__label {
+          color: #4b9bb7;
+        }
+      }
+    }
+
+    .trend-data-show {
+      width: 100%;
+      line-height: 40px;
+
+      .trend-data-header {
+        display: flex;
+
+        .el-button {
+          flex: 1;
+          border: 2px solid #09152f;
+        }
+
+        .el-button+.el-button {
+          margin: 0;
+        }
+      }
+
+      .trend-data-main {
+        .point-item {
+          display: flex;
+          padding: 0 2vw;
+          justify-content: space-between;
+        }
+      }
+    }
+  }
+
+  .trend-main {
+    flex: 1;
+    border: 1px solid #09152f;
+
+    .trend-main-echarts {
+      width: 500px;
+      height: 400px;
+    }
+  }
+
+  .trend-footer {
+    ::v-deep .el-range-input {
+      background-color: #09152f;
+    }
+  }
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0