From 1e18f0bcee0358e13c0e2cb750d17cd7ef5bf4d6 Mon Sep 17 00:00:00 2001 From: zmc <zmc_li@foxmail.com> Date: 星期一, 07 八月 2023 17:55:21 +0800 Subject: [PATCH] 油烟检测系统 --- src/views/analysis/graph/ExceedingRate.vue | 498 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 271 insertions(+), 227 deletions(-) diff --git a/src/views/analysis/graph/ExceedingRate.vue b/src/views/analysis/graph/ExceedingRate.vue index e6b5cc9..0dd1fac 100644 --- a/src/views/analysis/graph/ExceedingRate.vue +++ b/src/views/analysis/graph/ExceedingRate.vue @@ -1,15 +1,15 @@ <template> - <div> - <el-container> - <!-- <el-header style="text-align:right; font-size:15px "> + <div> + <el-container> + <!-- <el-header style="text-align:right; font-size:15px "> <i class="el-icon-s-data" style="font-size: 15px;color:rgb(226,207,207);margin-right:10px;"></i> <span style="color:rgb(226,207,207);">鏁版嵁瓒呮爣鐜�</span> </el-header> --> - - <el-main> + + <el-main> <el-form :inline="true" :model="form" class="demo-form-inline"> - <el-form-item label="搴楅摵鍚嶅拰璁惧缂栧彿"> - <!-- <el-select class="checkbox" v-model="devId" placeholder="璇烽�夋嫨璁惧缂栧彿"> + <el-form-item label="搴楅摵鍚嶅拰璁惧缂栧彿"> + <!-- <el-select class="checkbox" v-model="devId" placeholder="璇烽�夋嫨璁惧缂栧彿"> <el-option v-for="item in options" :key="item.label" @@ -17,189 +17,225 @@ :value="item.label"> </el-option> </el-select> --> - <el-cascader - :options="options" - :show-all-levels="false" - :props="{expandTrigger:'hover'}" - placeholder="璇烽�夋嫨搴楅摵鍚嶅拰璁惧缂栧彿" - v-model="value" - style="margin-right:32px"> - </el-cascader> - </el-form-item> - - <el-form-item label="寮�濮嬫棩鏈�"> - <el-date-picker - v-model="begin" - type="date" - placeholder="閫夋嫨鏃ユ湡" - value-format="YYYY-MM-DD"> - </el-date-picker> - </el-form-item> - - <el-form-item label="缁撴潫鏃ユ湡"> - <el-date-picker - v-model="end" - type="date" - placeholder="閫夋嫨鏃ユ湡" - value-format="YYYY-MM-DD"> - </el-date-picker> - </el-form-item> - - <el-form-item> - <el-button type="primary" @click="fetchData">灞曠ず鍥�</el-button> - </el-form-item> - </el-form> + <el-cascader + :options="options" + :show-all-levels="false" + :props="{ expandTrigger: 'hover' }" + placeholder="璇烽�夋嫨搴楅摵鍚嶅拰璁惧缂栧彿" + v-model="value" + style="margin-right: 32px" + > + </el-cascader> + </el-form-item> - <el-card> - <div class="chart-container" ref="chart"></div> - </el-card> - </el-main> - </el-container> - </div> - </template> - - <script> - import * as echarts from 'echarts' - import axiosInstance from '../../../utils/request.js' - export default { - data() { - return { - chartData: [], //淇濆瓨鏌ヨ鐨勭粨鏋� - //devId:'', //璁惧缂栧彿 - begin:'2023-05-01', //寮�濮嬫椂闂� - end:'2023-05-15', //缁撴潫鏃堕棿 - value:['浠樺皬濮愬湪鎴愰兘','qinshi_31010320210010'], //淇濆瓨閫夋嫨鐨勫簵閾哄悕绉板拰璁惧鍚嶇О - options: [{ + <el-form-item label="寮�濮嬫棩鏈�"> + <el-date-picker + v-model="begin" + type="date" + placeholder="閫夋嫨鏃ユ湡" + value-format="YYYY-MM-DD" + > + </el-date-picker> + </el-form-item> + + <el-form-item label="缁撴潫鏃ユ湡"> + <el-date-picker + v-model="end" + type="date" + placeholder="閫夋嫨鏃ユ湡" + value-format="YYYY-MM-DD" + > + </el-date-picker> + </el-form-item> + + <el-form-item> + <el-button type="primary" @click="fetchData">灞曠ず鍥�</el-button> + </el-form-item> + </el-form> + + <el-card v-loading="loading"> + <div class="chart-container" ref="chart" v-show="!isNoData"></div> + <el-empty v-show="isNoData" :image-size="200" /> + </el-card> + </el-main> + </el-container> + </div> +</template> + +<script> +import * as echarts from 'echarts'; +import axiosInstanceInstance from '../../../utils/request.js'; +export default { + data() { + return { + isNoData:false, + loading: false, + chartData: [], //淇濆瓨鏌ヨ鐨勭粨鏋� + //devId:'', //璁惧缂栧彿 + begin: '2023-05-01', //寮�濮嬫椂闂� + end: '2023-05-15', //缁撴潫鏃堕棿 + value: ['浠樺皬濮愬湪鎴愰兘', 'qinshi_31010320210010'], //淇濆瓨閫夋嫨鐨勫簵閾哄悕绉板拰璁惧鍚嶇О + options: [ + { value: '浠樺皬濮愬湪鎴愰兘', label: '浠樺皬濮愬湪鎴愰兘', - children: [{ - value: 'qinshi_31010320210010', - label: 'qinshi_31010320210010', - }] + children: [ + { + value: 'qinshi_31010320210010', + label: 'qinshi_31010320210010' + } + ] }, { value: '鍚夊埢鑱旂洘', label: '鍚夊埢鑱旂洘 ', - children: [{ - value: 'qinshi_31010320200006', - label: 'qinshi_31010320200006', - }] + children: [ + { + value: 'qinshi_31010320200006', + label: 'qinshi_31010320200006' + } + ] }, { value: '瀹跺湪濉斿暒', label: '瀹跺湪濉斿暒', - children: [{ - value: 'hengzhiyuan_64480047347215', - label: 'hengzhiyuan_64480047347215', - }] + children: [ + { + value: 'hengzhiyuan_64480047347215', + label: 'hengzhiyuan_64480047347215' + } + ] }, { value: '鐙兼潵浜�', label: '鐙兼潵浜� ', - children: [{ - value: 'zhuoquan_31011020175012', - label: 'zhuoquan_31011020175012', - }] + children: [ + { + value: 'zhuoquan_31011020175012', + label: 'zhuoquan_31011020175012' + } + ] }, { value: '涔愬嚡鎾掓槦娓稿簵', label: '涔愬嚡鎾掓槦娓稿簵', - children: [{ - value: 'qinshi_31010320200007', - label: 'qinshi_31010320200007', - }] + children: [ + { + value: 'qinshi_31010320200007', + label: 'qinshi_31010320200007' + } + ] }, { value: '棣ㄨ繙缇庨灏忛晣锛堝搱灏肩編椋熷箍鍦猴級', label: '棣ㄨ繙缇庨灏忛晣锛堝搱灏肩編椋熷箍鍦猴級', - children: [{ - value: 'hengzhiyuan_64480047078091', - label: 'hengzhiyuan_64480047078091', - }] + children: [ + { + value: 'hengzhiyuan_64480047078091', + label: 'hengzhiyuan_64480047078091' + } + ] }, { value: '妫掔害缈�', label: '妫掔害缈�', - children: [{ - value: 'qinshi_31010320190005', - label: 'qinshi_31010320190005', - }] + children: [ + { + value: 'qinshi_31010320190005', + label: 'qinshi_31010320190005' + } + ] }, { value: '寮勫爞鍜亾', label: '寮勫爞鍜亾', - children: [{ - value: 'zhuoquan_31011020175008', - label: 'zhuoquan_31011020175008', - }] - },{ + children: [ + { + value: 'zhuoquan_31011020175008', + label: 'zhuoquan_31011020175008' + } + ] + }, + { value: '鏉ㄨ榻愰綈鍝堝皵鐑よ倝', label: '鏉ㄨ榻愰綈鍝堝皵鐑よ倝', - children: [{ - value: 'zhuoquan_31011020175002', - label: 'zhuoquan_31011020175002', - }] + children: [ + { + value: 'zhuoquan_31011020175002', + label: 'zhuoquan_31011020175002' + } + ] }, { value: '涓婃捣绋斾紶椁愰ギ绠$悊鏈夐檺鍏徃锛堜汉鐢熶竴涓诧級', label: '涓婃捣绋斾紶椁愰ギ绠$悊鏈夐檺鍏徃锛堜汉鐢熶竴涓诧級', - children: [{ - value: 'GLHB00000000016004', - label: 'GLHB00000000016004', - }] + children: [ + { + value: 'GLHB00000000016004', + label: 'GLHB00000000016004' + } + ] }, { value: '缂樺', label: '缂樺', - children: [{ - value: 'fucheng310104200914', - label: 'fucheng310104200914', - }] + children: [ + { + value: 'fucheng310104200914', + label: 'fucheng310104200914' + } + ] }, { value: '娉夌洓椁愰ギ锛堜笂娴凤級鏈夐檺鍏徃锛堥鍏跺锛�', label: '娉夌洓椁愰ギ锛堜笂娴凤級鏈夐檺鍏徃锛堥鍏跺锛�', - children: [{ - value: 'GLHB00000000016155', - label: 'GLHB00000000016155', - }] - },{ + children: [ + { + value: 'GLHB00000000016155', + label: 'GLHB00000000016155' + } + ] + }, + { value: '涓拌寕鐑や覆', label: '涓拌寕鐑や覆', - children: [{ - value: 'GLHB00000000016011', - label: 'GLHB00000000016011', - }] + children: [ + { + value: 'GLHB00000000016011', + label: 'GLHB00000000016011' + } + ] }, { value: '涓婃捣娉扮厡椁愰ギ绠$悊鏈夐檺鍏徃锛堟嘲鐓岄浮锛�', label: '涓婃捣娉扮厡椁愰ギ绠$悊鏈夐檺鍏徃锛堟嘲鐓岄浮锛�', - children: [{ - value: 'GLHB00000000010279', - label: 'GLHB00000000010279', - }] + children: [ + { + value: 'GLHB00000000010279', + label: 'GLHB00000000010279' + } + ] }, { value: '寰愭眹鍖鸿景鐔欓棣�(灏忛搧鍚涗覆鐑у眳閰掑眿)', label: '寰愭眹鍖鸿景鐔欓棣�(灏忛搧鍚涗覆鐑у眳閰掑眿)', - children: [{ - value: 'GLHB00000000010504', - label: 'GLHB00000000010504', - }] - }, - - ] - - } - - }, - mounted(){ + children: [ + { + value: 'GLHB00000000010504', + label: 'GLHB00000000010504' + } + ] + } + ] + }; + }, + mounted() { // 榛樿鍔犺浇浠樺皬濮愬湪鎴愰兘 5鏈�1鍙峰埌15鍙风殑 - this.fetchData() - }, - methods: { - fetchData() { - if ( + this.fetchData(); + }, + methods: { + fetchData() { + if ( this.begin >= this.end && (this.begin != null || this.end != null) && (this.begin != '' || this.end != '') @@ -207,82 +243,90 @@ alert('璇疯緭鍏ユ湁鏁堢殑鏃堕棿娈�'); return; } - let params = {} - if (this.value[1]) { - params['devId'] = this.value[1]; + let params = {}; + if (this.value[1]) { + params['devId'] = this.value[1]; + } + if (this.begin) { + params['begin'] = this.begin; + } + if (this.end) { + params['end'] = this.end; + } + this.loading = true; + axiosInstanceInstance + .get('/data/id', { params: params }) + .then((response) => { + + this.chartData = response.data.data; + this.loading = false; + if(response.data.data.length==0){ + alert('璇ユ椂娈垫棤鏁版嵁') + this.isNoData = true + return } - if(this.begin){ - params['begin']=this.begin - } - if(this.end){ - params['end'] = this.end - } - - axiosInstance.get('/data/id',{params:params}) - .then(response => { - this.chartData = response.data.data - this.drawChart() - }) - .catch(error => { - console.log(error) - }) - }, - drawChart() { - let dateList = [] - - let noonExceeding = [] - let nightExceeding = [] - let keyExceeding = [] - - //姣旂巼 - this.chartData.forEach((item) => { - dateList.push(item.fumeDate) //x杞存棩鏈� - - noonExceeding.push(item.noonExceedingNum.slice(0,-1)) - nightExceeding.push(item.nightExceedingNum.slice(0,-1)) - keyExceeding.push(item.keyExceedingRate.slice(0,-1)) - }) - - let chart = echarts.init(this.$refs.chart) - chart.setOption({ - title: { - text: '鏁版嵁瓒呮爣鐜�', - //left: 'center' - }, - grid: { - left: '3%', - right: '4%', - bottom: '3%', - containLabel: true - }, - tooltip: {}, - - legend: { - data: ['涓崍瓒呮爣鐜�','鏅氫笂瓒呮爣鐜�','閲嶇偣鏃舵瓒呮爣鐜�'] - }, - toolbox: { //宸ュ叿鏍� - feature: { - dataZoom: { //鍖哄煙缂╂斁 - yAxisIndex: "none" + // 绉婚櫎绌烘暟鎹姸鎬� + this.isNoData = false + this.drawChart(); + }); + }, + drawChart() { + let dateList = []; + + let noonExceeding = []; + let nightExceeding = []; + let keyExceeding = []; + + //姣旂巼 + this.chartData.forEach((item) => { + dateList.push(item.fumeDate); //x杞存棩鏈� + + noonExceeding.push(item.noonExceedingNum.slice(0, -1)); + nightExceeding.push(item.nightExceedingNum.slice(0, -1)); + keyExceeding.push(item.keyExceedingRate.slice(0, -1)); + }); + + let chart = echarts.init(this.$refs.chart); + chart.setOption({ + title: { + text: '鏁版嵁瓒呮爣鐜�' + //left: 'center' + }, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + tooltip: {}, + + legend: { + data: ['涓崍瓒呮爣鐜�', '鏅氫笂瓒呮爣鐜�', '閲嶇偣鏃舵瓒呮爣鐜�'] + }, + toolbox: { + //宸ュ叿鏍� + feature: { + dataZoom: { + //鍖哄煙缂╂斁 + yAxisIndex: 'none' }, - restore: {}, //閰嶇疆椤硅繕鍘� - saveAsImage: {}, //淇濆瓨涓哄浘鐗� - } - }, - xAxis: { - data: dateList - }, - - yAxis: { - type: 'value', - axisLabel:{ - show:true, - interval:'auto', - formatter:'{value} %' - } - - }, - series: [ + restore: {}, //閰嶇疆椤硅繕鍘� + saveAsImage: {} //淇濆瓨涓哄浘鐗� + } + }, + xAxis: { + data: dateList + }, + + yAxis: { + type: 'value', + axisLabel: { + show: true, + interval: 'auto', + formatter: '{value} %' + } + }, + series: [ { name: '涓崍瓒呮爣鐜�', type: 'line', @@ -297,26 +341,26 @@ name: '閲嶇偣鏃舵瓒呮爣鐜�', type: 'line', data: keyExceeding - }, + } ] - - }) - } + }); } } - </script> - - <style scoped> - .el-card { - margin-top: 40px; - } -.chart-container { - width: 100%; - height: 600px; +}; +</script> + +<style scoped> +.el-card { + margin-top: 40px; + border-radius: 9px; } - .el-header { - background-color: #010408; - color: #333; - line-height: 60px; - } - </style> \ No newline at end of file +.chart-container { + width: 100%; + height: 540px; +} +.el-header { + background-color: #010408; + color: #333; + line-height: 60px; +} +</style> -- Gitblit v1.9.3