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