duanxiaoduan 1 rok pred
rodič
commit
9e1dafef15

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 0 - 0
dist/index.html


+ 405 - 196
src/views/report/queryElec/index.vue

@@ -2,19 +2,19 @@
   <div class="app-container">
     <div class="filter-container">
       <div class="block">
-        <el-date-picker v-model="yearDate" :clearable="false" type="month" placeholder="选择年" />
+        <el-date-picker v-model="monthDate" :clearable="false" type="monthrange" range-separator="至" start-placeholder="开始月份" end-placeholder="结束月份" @change="changeMonth()" />
       </div>
     </div>
 
     <el-row v-if="isChart1" style="position: relative;">
       <p style="position: absolute;top:-12px;left:40%;color:rgb(130, 165, 252);background:rgb(230, 243, 255);border:1px solid rgb(130, 165, 252);padding:10px;border-radius:10px">
-        {{ year }}年集团用电量:{{ total }}万千瓦
+        集团用电量:{{ total }}万m³
       </p>
-       <el-radio-group v-model="radio1" class="group" @change="changeGroup('1')">
-          <el-radio :label="1">集团</el-radio>
-          <el-radio :label="2">一中心</el-radio>
-          <el-radio :label="3">二中心</el-radio>
-          <el-radio :label="4">三中心</el-radio>
+       <el-radio-group v-model="radio1" class="group" @change="changeGroup">
+          <el-radio :label="'集团'">集团</el-radio>
+          <el-radio :label="'一中心'"></el-radio>
+          <el-radio :label="'二中心'"></el-radio>
+          <el-radio :label="'三中心'"></el-radio>
         </el-radio-group>
       <el-col :span="24">
         <div id="chart1" style="width: 100%;height:400px;" />
@@ -22,32 +22,25 @@
     </el-row>
 
     <el-row style="position: relative;">
-       <el-radio-group v-model="radio2" class="group" @change="changeGroup('2')">
-          <el-radio :label="1">集团</el-radio>
-          <el-radio :label="2">一中心</el-radio>
-          <el-radio :label="3">二中心</el-radio>
-          <el-radio :label="4">三中心</el-radio>
-        </el-radio-group>
       <el-col :span="24">
         <div id="chart2" style="width: 100%;height:400px;" />
       </el-col>
     </el-row>
 
     <el-row style="position: relative;">
-       <el-radio-group v-model="radio3" class="group" @change="changeGroup('3')">
-          <el-radio :label="1">集团</el-radio>
-          <el-radio :label="2">一中心</el-radio>
-          <el-radio :label="3">二中心</el-radio>
-          <el-radio :label="4">三中心</el-radio>
-        </el-radio-group>
       <el-col :span="24">
         <div id="chart3" style="width: 100%;height:400px;" />
       </el-col>
     </el-row>
+    <el-row style="position: relative;">
+      <el-col :span="24">
+        <div id="chart8" style="width: 100%;height:400px;" />
+      </el-col>
+    </el-row>
     <el-row style="position: relative;">
       <el-col :span="12">
         <div style="height: 50px;">
-          <el-select style="float: right;margin-right: 20px;" v-model="getChart4Parm.parammaps.pastureName" multiple :multiple-limit="5" collapse-tags placeholder="牧场" @change="changePasture('4')">
+          <el-select style="float: right;margin-right: 20px;" v-model="pastureName" multiple :multiple-limit="5" collapse-tags placeholder="牧场" @change="changePasture()">
             <el-option v-for="item in pastureList" :key="item.id" :label="item.name" :value="item.name"> </el-option>
           </el-select>
         </div>
@@ -69,11 +62,6 @@
         <div id="chart6" style="width: 100%;height:400px;" />
       </el-col>
       <el-col :span="12">
-        <div style="height: 50px;">
-          <el-select style="float: right;margin-right: 20px;" v-model="getChart7Parm.parammaps.pastureName" multiple :multiple-limit="5" collapse-tags placeholder="牧场" @change="changePasture('7')">
-            <el-option v-for="item in pastureList" :key="item.id" :label="item.name" :value="item.name"> </el-option>
-          </el-select>
-        </div>
         <div id="chart7" style="width: 100%;height:400px;" />
       </el-col>
     </el-row>
@@ -83,20 +71,21 @@
 
 <script>
 import echarts from 'echarts'
-import { GetDataByName,GetDataByNames, GetReportform, checkButtons } from '@/api/common'
+import { GetDataByName,GetDataByNames, GetReportform, checkButtons,getJson } from '@/api/common'
 import Cookies from 'js-cookie'
 import { parseTime } from '@/utils/index.js'
 export default {
-  name: 'QueryElec',
+  name: 'QueryWater',
   data() {
     return {
-      yearDate: new Date(),
+      monthDate: [new Date(),new Date()],
       year: new Date().getFullYear(),
       month: new Date().getMonth() < 9 ? '0' + (new Date().getMonth() + 1) : new Date().getMonth() + 1,
       pastureList:[],
-      deptList:[],
+      deptList:[{id:0,name:'挤奶处'},{id:1,name:'犊牛处'},{id:2,name:'办公室'},{id:3,name:'饲养处'},{id:4,name:'兽医处'},{id:5,name:'品控处'},{id:6,name:'设备处'}],
       total: '',
-      radio1:1,
+      radio1:'集团',
+      pastureName:'',
       isChart1: [],
       chart_data1: {},
       getChart1Parm: {
@@ -106,7 +95,6 @@ export default {
           pastureName: Cookies.get('pasturename')
         }
       },
-      radio2:1,
       isChart2: [],
       chart_data2: {},
       getChart2Parm: {
@@ -117,7 +105,6 @@ export default {
         }
       },
 
-      radio3:1,
       isChart3: [],
       chart_data3: {},
       getChart3Parm: {
@@ -135,7 +122,7 @@ export default {
         name: 'getpSumNowWater',
         parammaps: {
           receiveTime: new Date().getFullYear(),
-          pastureName: Cookies.get('pasturename')
+          pastureName: ''
         }
       },
 
@@ -168,6 +155,15 @@ export default {
           pastureName: Cookies.get('pasturename')
         }
       },
+      isChart8: [],
+      chart_data8: {},
+      getChart8Parm: {
+        name: 'getpSumNowWater',
+        parammaps: {
+          receiveTime: new Date().getFullYear(),
+          pastureName: Cookies.get('pasturename')
+        }
+      },
     }
   },
   created() {
@@ -175,10 +171,7 @@ export default {
     this.getChart1()
     this.getChart2()
     this.getChart3()
-    this.getChart4()
-    this.getChart5()
-    this.getChart6()
-    this.getChart7()
+    this.getChart8()
     const that = this
     GetDataByName({ 'name': 'getUserPCButtons', 'parammaps': { 'jwt_username': Cookies.get('name') }}).then(response => {
       that.buttons = response.data.list
@@ -190,27 +183,32 @@ export default {
   methods: {
     get_select_list() {
       var send_data =  [
-        { name: 'findAllPasture', offset: 0, pagecount: 0, returntype: 'Map', parammaps: { 'id': Cookies.get('pastureid') }},
+        { name: 'findAllPasture', offset: 0, pagecount: 0, returntype: 'Map', parammaps: { 'id': 18 }},
       ]
+      this.pastureList = []
       GetDataByNames(send_data).then(response => {
-        this.pastureList = response.data.findAllPasture.list
+        response.data.findAllPasture.list.forEach((item)=>{
+          if(item.name !== '现代牧业'){
+            this.pastureList.push(item)
+          }
+        })
       })
     },
-    changeGroup(item){
-      if(item == 1){
-        this.getChart1()
-      }else if(item == 2){
-        this.getChart2()
-      }else if(item == 3){
-        this.getChart3()
-      }
+    changeGroup(){
+      this.getChart1()
+      this.getChart2()
+      this.getChart3()
+      this.getChart4()
     },
-    changePasture(item){
-      if(item == 4){
-        this.getChart4()
-      }else if(item == 7){
-        this.getChart7()
-      }
+    changeMonth(){
+      this.getChart1()
+      this.getChart2()
+      this.getChart3()
+      this.getChart8()
+    },
+    changePasture(){
+      this.getChart4()
+      this.getChart6()
     },
     changeDept(item){
       if(item == 5){
@@ -223,135 +221,308 @@ export default {
       const isChart1 = checkButtons(this.$store.state.user.buttons, chart1)
       this.isChart1 = isChart1
     },
-    // 各牧场年度用量对比
+    // 各牧场年度用量对比
     getChart1() {
-      GetReportform(this.getChart1Parm).then(response => {
+      let url = '/authdata/electricity/nowelectricity?'
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}')
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}')
+      let radio = ''
+      if(this.radio1 == '集团'){
+        radio = ''
+      }else{
+        radio = this.radio1
+      }
+      let data = 'startTime=' + startTime
+                + '&endTime=' + endTime
+                + '&center=' + radio
+      getJson(url,data).then(response => {
         console.log('图1', response)
-        // this.chart_data1 = response.data.chart_data
-        this.chart_data1 = {
-          data1:[10,20,30,40,50],
-          data2:[20,30,40,50,60],
-          xdata:["马鞍山牧场", "汶上牧场", "商河牧场", "合肥牧场", "蚌埠牧场"]
+        if(response.data){
+          this.chart_data1.data1 = response.data.nowYear
+          this.chart_data1.data2 = response.data.lastYear
+          this.chart_data1.xdata = response.data.pasture
+          this.pastureName = [response.data.pasture[0]]
+          this.total = response.data.all
+        }else{
+          this.chart_data1.data1 = []
+          this.chart_data1.data2 = []
+          this.chart_data1.xdata = []
+          this.total = 0
         }
         this.roadChart1(this.chart_data1)
-        var nowYear = response.data.chart_data.nowYear
-        var total = 0
-        if (nowYear !== null || nowYear !== undefined) {
-          nowYear.forEach(function(item, index) {
-            total = total + parseFloat(item)
-          })
-        }
-        this.total = total.toFixed(2)
+        this.getChart4()
+        this.getChart6()
       })
     },
-    // 单头牛
+    // 单头牛电量
     getChart2() {
-      GetReportform(this.getChart2Parm).then(response => {
+      let url = '/authdata/electricity/singlecow?'
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}')
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}')
+      let radio = ''
+      if(this.radio1 == '集团'){
+        radio = ''
+      }else{
+        radio = this.radio1
+      }
+      let data = 'startTime=' + startTime
+                + '&endTime=' + endTime
+                + '&center=' + radio
+      getJson(url,data).then(response => {
         console.log('图2', response)
-        // this.chart_data2 = response.data.chart_data
-        this.chart_data2 = {
-          data1:[10,20,30,40,50],
-          data2:[20,30,40,50,60],
-          xdata:["马鞍山牧场", "汶上牧场", "商河牧场", "合肥牧场", "蚌埠牧场"]
+        if(response.data){
+          this.chart_data2.data1 = response.data.nowYear
+          this.chart_data2.data2 = response.data.lastYear
+          this.chart_data2.xdata = response.data.pasture
+          this.chart_data2.line = response.data.line
+        }else{
+          this.chart_data2.data1 = []
+          this.chart_data2.data2 = []
+          this.chart_data2.xdata = []
+          this.chart_data2.line = 0
         }
         this.roadChart2(this.chart_data2)
       })
     },
 
-    // 单头牛水费
+    // 单头牛
     getChart3() {
-      GetReportform(this.getChart3Parm).then(response => {
+      let url = '/authdata/electricity/electricityrate?'
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}')
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}')
+      let radio = ''
+      if(this.radio1 == '集团'){
+        radio = ''
+      }else{
+        radio = this.radio1
+      }
+      let data = 'startTime=' + startTime
+                + '&endTime=' + endTime
+                + '&center=' + radio
+      getJson(url,data).then(response => {
         console.log('图3', response)
-        // this.chart_data3 = response.data.chart_data
-        this.chart_data3 = {
-          data1:[10,20,30,40,50],
-          data2:[20,30,40,50,60],
-          data3:[30,40,50,60,70],
-          xdata:["马鞍山牧场", "汶上牧场", "商河牧场", "合肥牧场", "蚌埠牧场"]
+        if(response.data){
+          this.chart_data3.data1 = response.data.actual
+          this.chart_data3.xdata = response.data.pasture
+          this.chart_data3.line = response.data.line
+        }else{
+          this.chart_data3.data1 = []
+          this.chart_data3.xdata = []
+          this.chart_data3.line =0
         }
         this.roadChart3(this.chart_data3)
       })
     },
 
-    // XX牧场XX年每月单头牛用水量对比
+    // XX牧场每月单头牛用电量对比
     getChart4() {
-      GetReportform(this.getChart4Parm).then(response => {
+      this.getChart5Parm.parammaps.deptName = this.deptList[0].name
+      let url = '/authdata/electricity/perhead?'
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}')
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}')
+      let radio = ''
+      if(this.radio1 == '集团'){
+        radio = ''
+      }else{
+        radio = this.radio1
+      }
+      let pastureId = []
+      console.log(this.pastureList,'pastureList')
+      this.pastureList.forEach((item)=>{
+        if(this.pastureName){
+          this.pastureName.forEach((item1)=>{
+            if(item.name == item1){
+              pastureId.push(item.id)
+            }
+          })
+        }
+      })
+      console.log(pastureId,'pastureId')
+      let data = 'startTime=' + startTime
+                + '&endTime=' + endTime
+                + '&center=' + radio
+                + '&pastureId=' + pastureId.toString()
+      getJson(url,data).then(response => {
         console.log('图4', response)
-        // this.chart_data4 = response.data.chart_data
-        this.chart_data4 = {
-          data1:[
-            {data:[10,20,30,40,50]},
-            {data:[20,30,40,50,60]},
-            {data:[30,40,50,60,70]},
-          ],
-          data_name:["马鞍山牧场", "汶上牧场", "商河牧场"],
-          xdata:["2023-01", "2023-02", "2023-03", "2023-04", "2023-05"]
+        if(response.data){
+          this.chart_data4.data1 = response.data.data3
+          this.chart_data4.data_name = response.data.data1
+          this.chart_data4.xdata = response.data.data2
+        }else{
+          this.chart_data4.data1 = []
+          this.chart_data4.data_name = []
+          this.chart_data4.xdata = []
+          this.chart_data4.line =0
         }
+        if(response.data.data1 == null){
+          this.chart_data4.data_name = []
+        }
+        if(response.data.data2 == null ){
+          this.chart_data4.xdata = []
+          this.getChart5Parm.parammaps.date = ''
+        }else{
+          this.getChart5Parm.parammaps.date = response.data.data2[0]
+        }
+        if(response.data.data3 == null){
+          this.chart_data4.data1 = []
+        }
+
+        console.log(this.chart_data4,'chart_data4')
         this.roadChart4(this.chart_data4)
+        this.getChart5()
       })
     },
-
     // XX月部门统计
     getChart5() {
-      GetReportform(this.getChart5Parm).then(response => {
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}') + '-01'
+      let date = this.monthDate[1];
+      let year = date.getFullYear()
+      let month = date.getMonth() + 1
+      let lastDay = new Date(year, month, 0).getDate();
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}') + '-' + lastDay
+      let data = {
+        name:"getdeptSumMonthElec",
+        parammaps:{
+          startTime:startTime,
+          endTime:endTime,
+          pastureName:this.pastureName.toString(),
+          deptname:this.getChart5Parm.parammaps.deptName,
+        },
+      }
+      GetDataByName(data).then(response => {
         console.log('图5', response)
-        // this.chart_data5 = response.data.chart_data
+        let data1 = []
+        let xdata = []
+        if(response.data){
+          response.data.list.forEach((item)=>{
+            data1.push(item.value)
+            xdata.push(item.name)
+          })
+        }
         this.chart_data5 = {
-          data1:[10,20,30,40,50],
-          data2:[20,30,40,50,60],
-          xdata:["马鞍山牧场挤奶处", "和林牧场挤奶处", "蚌埠牧场挤奶处", "塞一牧场挤奶处", "塞二牧场挤奶处"]
+          data1:data1,
+          xdata:xdata
         }
         this.roadChart5(this.chart_data5)
       })
     },
-    // XX牧场XX年每月用水量对比
+    // XX牧场XX年每月用量对比
     getChart6() {
-      GetReportform(this.getChart6Parm).then(response => {
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}') + '-01'
+      let date = this.monthDate[1];
+      let year = date.getFullYear()
+      let month = date.getMonth() + 1
+      let lastDay = new Date(year, month, 0).getDate();
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}') + '-' + lastDay
+      let data = {
+        name:"getPastureSumMonthElec",
+        parammaps:{
+          startTime:startTime,
+          endTime:endTime,
+          pastureName:this.pastureName.toString(),
+        },
+      }
+      GetReportform(data).then(response => {
         console.log('图6', response)
         // this.chart_data6 = response.data.chart_data
-        this.chart_data6 = {
-          data1:[10,20,30,40,50],
-          data2:[20,30,40,50,60],
-          data3:[30,40,50,60,70],
-          xdata:["2023-01", "2023-02", "2023-03", "2023-04", "2023-05"]
+        if(response.data){
+          this.chart_data6 = {
+            data1:response.data.chart_data.lastYear,
+            data2:response.data.chart_data.nowYear,
+            xdata:response.data.chart_data.months,
+            data_name:response.data.chart_data.pastureName
+          }
+        }else{
+          this.chart_data6 = {
+            data1:[],
+            data2:[],
+            xdata:[],
+            data_name:[]
+          }
+        }
+        if(response.data.chart_data.months){
+          this.getChart7Parm.parammaps.date = response.data.chart_data.months[0]
+        }else{
+          this.getChart7Parm.parammaps.date = ''
         }
+
         this.roadChart6(this.chart_data6)
+        this.getChart7()
       })
     },
-    // XX月每日用水量
+    // XX月每日用
     getChart7() {
-      GetReportform(this.getChart7Parm).then(response => {
+      let startTime = this.getChart7Parm.parammaps.date
+      let endTime = this.getChart7Parm.parammaps.date
+      let data = {
+        name:"getPastureSumDayElec",
+        parammaps:{
+          startTime:startTime,
+          endTime:endTime,
+          pastureName:this.pastureName.toString(),
+        },
+      }
+      GetReportform(data).then(response => {
         console.log('图7', response)
         // this.chart_data7 = response.data.chart_data
-        this.chart_data7 = {
-          data1:[
-            {data:[10,20,30,40,50]},
-            {data:[20,30,40,50,60]},
-            {data:[30,40,50,60,70]},
-          ],
-          data_name:["马鞍山牧场", "汶上牧场", "商河牧场"],
-          xdata:["2023-01", "2023-02", "2023-03", "2023-04", "2023-05"]
+        if(response.data){
+          this.chart_data7 = {
+            data1:response.data.chart_data.nowYear,
+            data_name:this.pastureName,
+            xdata:response.data.chart_data.day
+          }
+        }else{
+          this.chart_data7 = {
+            data1:[],
+            data_name:[],
+            xdata:[]
+          }
         }
         this.roadChart7(this.chart_data7)
       })
     },
-    // 各牧场年度用水量对比
+    // 电费完成率
+    getChart8() {
+      let url = '/authdata/electricity/ratecomplete?'
+      let startTime = parseTime(this.monthDate[0],'{y}-{m}')
+      let endTime = parseTime(this.monthDate[1],'{y}-{m}')
+      let radio = ''
+      let data = 'startTime=' + startTime
+                + '&endTime=' + endTime
+                + '&center=' + radio
+      getJson(url,data).then(response => {
+        console.log('图8', response)
+        if(response.data){
+          this.chart_data8.data1 = response.data.actual
+          this.chart_data8.data2 = response.data.budget
+          this.chart_data8.data3 = response.data.complete
+          this.chart_data8.xdata = response.data.pasture
+        }else{
+          this.chart_data8.data1 = []
+          this.chart_data8.data2= []
+          this.chart_data8.data3= []
+          this.chart_data8.xdata = []
+        }
+        this.roadChart8(this.chart_data8)
+      })
+    },
+    // 各牧场用电量对比
     roadChart1(chart_data) {
       if (this.chart1 != null) {
         this.chart1.dispose()
       }
       this.chart1 = echarts.init(document.getElementById('chart1'))
       var option = {
-        title: { text: '各牧场年度用电量对比', textStyle: { color: '#769cfc' }},
+        title: { text: '各牧场用电量对比', textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
         legend: {
-          data: ['今年用量', '迄今预算'],
+          data: ['今年用量', '去年同期'],
           right: 40
         },
-        color: ['#2dc0e8', '#769cfc'],
+        color: ['#61A5E8', '#9933FF'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '牧场',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value', name: '电量(千瓦)', axisLabel: { formatter: '{value}万' }}],
+        yAxis: [{ type: 'value', name: '电量()', axisLabel: { formatter: '{value}万' }}],
         series: [
           {
             name: '今年用量',
@@ -361,7 +532,7 @@ export default {
             emphasis: { label: { show: true, position: 'inside' }}
           },
           {
-            name: '迄今预算',
+            name: '去年同期',
             type: 'bar',
             barMaxWidth:20,
             data: chart_data.data2,
@@ -375,11 +546,14 @@ export default {
         this.chart1.resize()
       }
       var that = this
-      this.chart1.on('click', function(param, i) {
-        console.log(param)
+      that.chart1.on('click', function(param, i) {
+        console.log(param,'=====param')
+        that.pastureName = [param.name]
+        that.getChart4()
+        that.getChart6()
       })
     },
-    // 单头牛水量
+    // 单头牛
     roadChart2(chart_data) {
       if (this.chart2 != null) {
         this.chart2.dispose()
@@ -392,10 +566,10 @@ export default {
           data: ['实际费用', '去年同期'],
           right: 40
         },
-        color: ['#2dc0e8', '#769cfc'],
+        color:  ['#61A5E8', '#9933FF','#FFB800'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '牧场',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value', name: '价格(元)'}],
+        yAxis: [{ type: 'value', name: '用量(度)'}],
         series: [
           {
             name: '实际费用',
@@ -403,7 +577,12 @@ export default {
             data: chart_data.data1,
             emphasis: { label: { show: true, position: 'inside' }},
             barMaxWidth:20,
-            markLine:{ data:[ {yAxis:20} ] }
+            markLine:{
+              data:[ {yAxis:chart_data.line} ],
+              lineStyle: {
+                  color: '#FFB800'
+              }
+            }
           },
           {
             name: '去年同期',
@@ -424,7 +603,7 @@ export default {
         console.log(param)
       })
     },
-    // 单头牛
+    // 单头牛
     roadChart3(chart_data) {
       if (this.chart3 != null) {
         this.chart3.dispose()
@@ -434,13 +613,13 @@ export default {
         title: { text: '单头牛电费', left:'center',textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
         legend: {
-          data: ['实际费用', '预算','去年同期'],
+          data: ['实际费用'],
           right: 40
         },
-        color: ['#2dc0e8', '#769cfc', '#FFB800'],
+        color: ['#61A5E8'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '牧场',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value', name: '价格(元)'}],
+        yAxis: [{ type: 'value', name: '费用(元)'}],
         series: [
           {
             name: '实际费用',
@@ -448,22 +627,13 @@ export default {
             data: chart_data.data1,
             emphasis: { label: { show: true, position: 'inside' }},
             barMaxWidth:20,
-            markLine:{ data:[ {yAxis:20} ] }
-          },
-          {
-            name: '预算',
-            type: 'bar',
-            data: chart_data.data2,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
+            markLine:{
+              data:[ {yAxis:chart_data.line} ],
+              lineStyle: {
+                  color: '#FFB800'
+              }
+            }
           },
-          {
-            name: '去年同期',
-            type: 'bar',
-            data: chart_data.data3,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
-          }
 
         ]
       }
@@ -476,13 +646,15 @@ export default {
         console.log(param)
       })
     },
-    // 各牧场XX年每月单头牛用量对比
+    // 各牧场XX年每月单头牛用量对比
     roadChart4(chart_data) {
+      console.log(chart_data,'666')
       if (this.chart4 != null) {
         this.chart4.dispose()
       }
       this.chart4 = echarts.init(document.getElementById('chart4'))
-      var text = '各牧场' + parseTime(this.yearDate, '{y}') + '年每月单头牛用水量对比'
+      // var text = '各牧场' + parseTime(this.monthDate, '{y}') + '年每月单头牛用电量对比'
+      var text = ''
       var option = {
         title: { text: text, left:'left',textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
@@ -491,10 +663,10 @@ export default {
           left: 40,
           bottom:0
         },
-        color: ['#2dc0e8', '#769cfc', '#FFB800'],
+        color: ['#2dc0e8', '#7ECF51', '#FFB800'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '月份',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value', name: '千瓦'}],
+        yAxis: [{ type: 'value', name: '用量(度)'}],
         series: (function() {
           var serie = []
           if(chart_data.data1 !== null){
@@ -502,7 +674,7 @@ export default {
               var item = {
                 name: chart_data.data_name[i],
                 type: 'line',
-                data: chart_data.data1[i].data
+                data: chart_data.data1[i]
               }
               serie.push(item)
             }
@@ -517,6 +689,7 @@ export default {
       var that = this
       that.chart4.on('click', function(param, i) {
         console.log(param)
+        that.getChart5Parm.parammaps.date = param.name
         that.getChart5()
       })
     },
@@ -526,34 +699,25 @@ export default {
         this.chart5.dispose()
       }
       this.chart5 = echarts.init(document.getElementById('chart5'))
-      var text = parseTime(new Date(), '{m}') + '月部门统计'
+      var text = this.getChart5Parm.parammaps.date + '月部门统计'
       var option = {
         title: { text: text, left:'center',textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
         legend: {
-          data: ['实际', '预算'],
           right: 40,
           bottom:0
         },
         color: ['#2dc0e8', '#769cfc'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '部门',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value',name: '千瓦', axisLabel: { formatter:'{value} 万'}}],
+        yAxis: [{ type: 'value',name: '用量(度)', axisLabel: { formatter:'{value} 万'}}],
         series: [
           {
-            name: '实际',
             type: 'bar',
             data: chart_data.data1,
             emphasis: { label: { show: true, position: 'inside' }},
             barMaxWidth:20
           },
-          {
-            name: '预算',
-            type: 'bar',
-            data: chart_data.data2,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
-          }
         ]
       }
       this.chart5.setOption(option)
@@ -565,47 +729,55 @@ export default {
         console.log(param)
       })
     },
-    // XX牧场XX年每月用量对比
+    // XX牧场XX年每月用量对比
     roadChart6(chart_data) {
       if (this.chart6 != null) {
         this.chart6.dispose()
       }
       this.chart6 = echarts.init(document.getElementById('chart6'))
+      var text = '牧场每月用电量对比'
       var option = {
-        title: { text: 'XX牧场XX年每月用电量对比', left:'center',textStyle: { color: '#769cfc' }},
+        title: { text: text, left:'center',textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
         legend: {
-          data: ['去年同期用量', '今年用量','预算'],
+          data: chart_data.data_name,
           right: 40,
           bottom:0
         },
         color: ['#2dc0e8', '#769cfc', '#FFB800'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '月份',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value',name: '电量(千瓦)'}],
-        series: [
-          {
-            name: '去年同期用量',
-            type: 'line',
-            data: chart_data.data1,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
-          },
-          {
-            name: '今年用量',
-            type: 'line',
-            data: chart_data.data2,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
-          },
-          {
-            name: '预算',
-            type: 'line',
-            data: chart_data.data3,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
+        yAxis: [{ type: 'value',name: '电量(度)'}],
+        series: (function() {
+          var serie = []
+          if(chart_data.data1 !== null){
+            for (var i = 0; i < chart_data.data1.length; i++) {
+              var item = {
+                name: chart_data.data_name[i],
+                type: 'line',
+                data: chart_data.data1[i]
+              }
+              serie.push(item)
+            }
           }
-        ]
+          return serie
+        }())
+        // series: [
+        //   {
+        //     name: '去年同期用量',
+        //     type: 'line',
+        //     data: chart_data.data1,
+        //     emphasis: { label: { show: true, position: 'inside' }},
+        //     barMaxWidth:20
+        //   },
+        //   {
+        //     name: '今年用量',
+        //     type: 'line',
+        //     data: chart_data.data2,
+        //     emphasis: { label: { show: true, position: 'inside' }},
+        //     barMaxWidth:20
+        //   }
+        // ]
       }
       this.chart6.setOption(option)
       window.onresize = function() {
@@ -614,15 +786,18 @@ export default {
       var that = this
       this.chart6.on('click', function(param, i) {
         console.log(param)
+        that.getChart7Parm.parammaps.date = param.name
+        that.getChart7()
       })
     },
-    // XX月每日用
+    // XX月每日用
     roadChart7(chart_data) {
+      console.log(chart_data,'chart_data')
       if (this.chart7 != null) {
         this.chart7.dispose()
       }
       this.chart7 = echarts.init(document.getElementById('chart7'))
-      var text = parseTime(new Date(), '{m}') + '月每日用水量'
+      var text = this.getChart7Parm.parammaps.date + '月每日用电量'
       var option = {
         title: { text: text, left:'left',textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
@@ -631,10 +806,10 @@ export default {
           left: 40,
           bottom:0
         },
-        color: ['#2dc0e8', '#769cfc', '#FFB800'],
+        // color: ['#2dc0e8', '#769cfc', '#FFB800'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '日',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value', name: '电量(千瓦)'}],
+        yAxis: [{ type: 'value', name: '电量()'}],
         series: (function() {
           var serie = []
           if(chart_data.data1 !== null){
@@ -642,7 +817,7 @@ export default {
               var item = {
                 name: chart_data.data_name[i],
                 type: 'line',
-                data: chart_data.data1[i].data
+                data: chart_data.data1[i]
               }
               serie.push(item)
             }
@@ -659,7 +834,41 @@ export default {
         console.log(param)
       })
     },
-
+    // 电费完成率
+    roadChart8(chart_data) {
+      if (this.chart8 != null) {
+        this.chart8.dispose()
+      }
+      this.chart8 = echarts.init(document.getElementById('chart8'))
+      var option = {
+        title: { text: '电费完成率',left:'center', textStyle: { color: '#769cfc' }},
+        tooltip: { trigger: 'axis' },
+        legend: {
+          data: ['实际费用', '预算','完成率'],
+          right: 40
+        },
+        color: ['#61A5E8', '#7ECF51','#FFFF00'],
+        grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
+        xAxis: [{ type: 'category',  name: '牧场',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
+        yAxis: [
+          { type: 'value', name: '费用(元)', axisLabel: { formatter: '' }},
+          { type: 'value', name: '', axisLabel: { formatter: '{value}%' }}
+        ],
+        series: [
+          { name: '实际费用', type: 'bar', data: chart_data.data1, barMaxWidth:20, emphasis: { label: { show: true, position: 'inside' }} },
+          { name: '预算', type: 'bar', barMaxWidth:20, data: chart_data.data2, emphasis: { label: { show: true, position: 'inside' }} },
+          { name: '完成率', type: 'line',yAxisIndex: 1, data: chart_data.data3, emphasis: { label: { show: true, position: 'inside' }} }
+        ]
+      }
+      this.chart8.setOption(option)
+      window.onresize = function() {
+        this.chart8.resize()
+      }
+      var that = this
+      this.chart8.on('click', function(param, i) {
+        console.log(param)
+      })
+    },
   }
 }
 </script>

+ 70 - 84
src/views/report/queryWater/index.vue

@@ -10,7 +10,7 @@
       <p style="position: absolute;top:-12px;left:40%;color:rgb(130, 165, 252);background:rgb(230, 243, 255);border:1px solid rgb(130, 165, 252);padding:10px;border-radius:10px">
         集团用水量:{{ total }}万m³
       </p>
-       <el-radio-group v-model="radio1" class="group" @change="changeGroup('1')">
+       <el-radio-group v-model="radio1" class="group" @change="changeGroup">
           <el-radio :label="'集团'">集团</el-radio>
           <el-radio :label="'一中心'"></el-radio>
           <el-radio :label="'二中心'"></el-radio>
@@ -22,24 +22,12 @@
     </el-row>
 
     <el-row style="position: relative;">
-       <el-radio-group v-model="radio2" class="group" @change="changeGroup('2')">
-          <el-radio :label="'集团'">集团</el-radio>
-          <el-radio :label="'一中心'"></el-radio>
-          <el-radio :label="'二中心'"></el-radio>
-          <el-radio :label="'三中心'"></el-radio>
-        </el-radio-group>
       <el-col :span="24">
         <div id="chart2" style="width: 100%;height:400px;" />
       </el-col>
     </el-row>
 
     <el-row style="position: relative;">
-      <!-- <el-radio-group v-model="radio3" class="group" @change="changeGroup('3')">
-          <el-radio :label="1">集团</el-radio>
-          <el-radio :label="2">一中心</el-radio>
-          <el-radio :label="3">二中心</el-radio>
-          <el-radio :label="4">三中心</el-radio>
-        </el-radio-group> -->
       <el-col :span="24">
         <div id="chart3" style="width: 100%;height:400px;" />
       </el-col>
@@ -52,7 +40,7 @@
     <el-row style="position: relative;">
       <el-col :span="12">
         <div style="height: 50px;">
-          <el-select style="float: right;margin-right: 20px;" v-model="getChart4Parm.parammaps.pastureName" multiple :multiple-limit="5" collapse-tags placeholder="牧场" @change="changePasture('4')">
+          <el-select style="float: right;margin-right: 20px;" v-model="pastureName" multiple :multiple-limit="5" collapse-tags placeholder="牧场" @change="changePasture()">
             <el-option v-for="item in pastureList" :key="item.id" :label="item.name" :value="item.name"> </el-option>
           </el-select>
         </div>
@@ -74,11 +62,6 @@
         <div id="chart6" style="width: 100%;height:400px;" />
       </el-col>
       <el-col :span="12">
-        <div style="height: 50px;">
-          <el-select style="float: right;margin-right: 20px;" v-model="getChart7Parm.parammaps.pastureName" multiple :multiple-limit="5" collapse-tags placeholder="牧场" @change="changePasture('7')">
-            <el-option v-for="item in pastureList" :key="item.id" :label="item.name" :value="item.name"> </el-option>
-          </el-select>
-        </div>
         <div id="chart7" style="width: 100%;height:400px;" />
       </el-col>
     </el-row>
@@ -102,6 +85,7 @@ export default {
       deptList:[{id:0,name:'挤奶处'},{id:1,name:'犊牛处'},{id:2,name:'办公室'},{id:3,name:'饲养处'},{id:4,name:'兽医处'},{id:5,name:'品控处'},{id:6,name:'设备处'}],
       total: '',
       radio1:'集团',
+      pastureName:'',
       isChart1: [],
       chart_data1: {},
       getChart1Parm: {
@@ -111,7 +95,6 @@ export default {
           pastureName: Cookies.get('pasturename')
         }
       },
-      radio2:'集团',
       isChart2: [],
       chart_data2: {},
       getChart2Parm: {
@@ -122,7 +105,6 @@ export default {
         }
       },
 
-      radio3:1,
       isChart3: [],
       chart_data3: {},
       getChart3Parm: {
@@ -212,14 +194,11 @@ export default {
         })
       })
     },
-    changeGroup(item){
-      if(item == 1){
-        this.getChart1()
-      }else if(item == 2){
-        this.getChart2()
-      }else if(item == 3){
-        this.getChart3()
-      }
+    changeGroup(){
+      this.getChart1()
+      this.getChart2()
+      this.getChart3()
+      this.getChart4()
     },
     changeMonth(){
       this.getChart1()
@@ -227,13 +206,9 @@ export default {
       this.getChart3()
       this.getChart8()
     },
-    changePasture(item){
-      console.log(item,'=====item')
-      if(item == 4){
-        this.getChart4()
-      }else if(item == 7){
-        this.getChart7()
-      }
+    changePasture(){
+      this.getChart4()
+      this.getChart6()
     },
     changeDept(item){
       if(item == 5){
@@ -266,8 +241,7 @@ export default {
           this.chart_data1.data1 = response.data.nowYear
           this.chart_data1.data2 = response.data.lastYear
           this.chart_data1.xdata = response.data.pasture
-          this.getChart4Parm.parammaps.pastureName = [response.data.pasture[0]]
-          this.getChart6Parm.parammaps.pastureName = [response.data.pasture[0]]
+          this.pastureName = [response.data.pasture[0]]
           this.total = response.data.all
         }else{
           this.chart_data1.data1 = []
@@ -286,10 +260,10 @@ export default {
       let startTime = parseTime(this.monthDate[0],'{y}-{m}')
       let endTime = parseTime(this.monthDate[1],'{y}-{m}')
       let radio = ''
-      if(this.radio2 == '集团'){
+      if(this.radio1 == '集团'){
         radio = ''
       }else{
-        radio = this.radio2
+        radio = this.radio1
       }
       let data = 'startTime=' + startTime
                 + '&endTime=' + endTime
@@ -301,13 +275,11 @@ export default {
           this.chart_data2.data2 = response.data.lastYear
           this.chart_data2.xdata = response.data.pasture
           this.chart_data2.line = response.data.line
-          this.total = response.data.all
         }else{
           this.chart_data2.data1 = []
           this.chart_data2.data2 = []
           this.chart_data2.xdata = []
           this.chart_data2.line = 0
-          this.total = 0
         }
         this.roadChart2(this.chart_data2)
       })
@@ -319,6 +291,11 @@ export default {
       let startTime = parseTime(this.monthDate[0],'{y}-{m}')
       let endTime = parseTime(this.monthDate[1],'{y}-{m}')
       let radio = ''
+      if(this.radio1 == '集团'){
+        radio = ''
+      }else{
+        radio = this.radio1
+      }
       let data = 'startTime=' + startTime
                 + '&endTime=' + endTime
                 + '&center=' + radio
@@ -328,31 +305,32 @@ export default {
           this.chart_data3.data1 = response.data.actual
           this.chart_data3.xdata = response.data.pasture
           this.chart_data3.line = response.data.line
-          this.total = response.data.all
         }else{
           this.chart_data3.data1 = []
           this.chart_data3.xdata = []
           this.chart_data3.line =0
-          this.total = 0
         }
         this.roadChart3(this.chart_data3)
       })
     },
 
-    // XX牧场XX年每月单头牛用水量对比
+    // XX牧场每月单头牛用水量对比
     getChart4() {
-      console.log(this.getChart4Parm.parammaps.pastureName,'pastureName')
       this.getChart5Parm.parammaps.deptName = this.deptList[0].name
       let url = '/authdata/water/perhead?'
       let startTime = parseTime(this.monthDate[0],'{y}-{m}')
       let endTime = parseTime(this.monthDate[1],'{y}-{m}')
       let radio = ''
+      if(this.radio1 == '集团'){
+        radio = ''
+      }else{
+        radio = this.radio1
+      }
       let pastureId = []
-      console.log(this.getChart4Parm.parammaps.pastureName,'pastureName')
       console.log(this.pastureList,'pastureList')
       this.pastureList.forEach((item)=>{
-        if(this.getChart4Parm.parammaps.pastureName){
-          this.getChart4Parm.parammaps.pastureName.forEach((item1)=>{
+        if(this.pastureName){
+          this.pastureName.forEach((item1)=>{
             if(item.name == item1){
               pastureId.push(item.id)
             }
@@ -370,13 +348,11 @@ export default {
           this.chart_data4.data1 = response.data.data3
           this.chart_data4.data_name = response.data.data1
           this.chart_data4.xdata = response.data.data2
-          this.total = response.data.all
         }else{
           this.chart_data4.data1 = []
           this.chart_data4.data_name = []
           this.chart_data4.xdata = []
           this.chart_data4.line =0
-          this.total = 0
         }
         if(response.data.data1 == null){
           this.chart_data4.data_name = []
@@ -390,9 +366,6 @@ export default {
         if(response.data.data3 == null){
           this.chart_data4.data1 = []
         }
-        if(response.data.all == null ){
-          this.total = 0
-        }
 
         console.log(this.chart_data4,'chart_data4')
         this.roadChart4(this.chart_data4)
@@ -412,7 +385,7 @@ export default {
         parammaps:{
           startTime:startTime,
           endTime:endTime,
-          pastureName:this.getChart4Parm.parammaps.pastureName.toString(),
+          pastureName:this.pastureName.toString(),
           deptname:this.getChart5Parm.parammaps.deptName,
         },
       }
@@ -446,7 +419,7 @@ export default {
         parammaps:{
           startTime:startTime,
           endTime:endTime,
-          pastureName:this.getChart6Parm.parammaps.pastureName.toString(),
+          pastureName:this.pastureName.toString(),
         },
       }
       GetReportform(data).then(response => {
@@ -456,13 +429,15 @@ export default {
           this.chart_data6 = {
             data1:response.data.chart_data.lastYear,
             data2:response.data.chart_data.nowYear,
-            xdata:response.data.chart_data.months
+            xdata:response.data.chart_data.months,
+            data_name:response.data.chart_data.pastureName
           }
         }else{
           this.chart_data6 = {
             data1:[],
             data2:[],
-            xdata:[]
+            xdata:[],
+            data_name:[]
           }
         }
         if(response.data.chart_data.months){
@@ -484,7 +459,7 @@ export default {
         parammaps:{
           startTime:startTime,
           endTime:endTime,
-          pastureName:this.getChart7Parm.parammaps.pastureName.toString(),
+          pastureName:this.pastureName.toString(),
         },
       }
       GetReportform(data).then(response => {
@@ -493,7 +468,7 @@ export default {
         if(response.data){
           this.chart_data7 = {
             data1:response.data.chart_data.nowYear,
-            data_name:this.getChart7Parm.parammaps.pastureName,
+            data_name:this.pastureName,
             xdata:response.data.chart_data.day
           }
         }else{
@@ -522,25 +497,23 @@ export default {
           this.chart_data8.data2 = response.data.budget
           this.chart_data8.data3 = response.data.complete
           this.chart_data8.xdata = response.data.pasture
-          this.total = response.data.all
         }else{
           this.chart_data8.data1 = []
           this.chart_data8.data2= []
           this.chart_data8.data3= []
           this.chart_data8.xdata = []
-          this.total = 0
         }
         this.roadChart8(this.chart_data8)
       })
     },
-    // 各牧场年度用水量对比
+    // 各牧场用水量对比
     roadChart1(chart_data) {
       if (this.chart1 != null) {
         this.chart1.dispose()
       }
       this.chart1 = echarts.init(document.getElementById('chart1'))
       var option = {
-        title: { text: '各牧场年度用水量对比', textStyle: { color: '#769cfc' }},
+        title: { text: '各牧场用水量对比', textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
         legend: {
           data: ['今年用量', '去年同期'],
@@ -575,8 +548,7 @@ export default {
       var that = this
       that.chart1.on('click', function(param, i) {
         console.log(param,'=====param')
-        that.getChart4Parm.parammaps.pastureName = [param.name]
-        that.getChart6Parm.parammaps.pastureName = [param.name]
+        that.pastureName = [param.name]
         that.getChart4()
         that.getChart6()
       })
@@ -647,7 +619,7 @@ export default {
         color: ['#61A5E8'],
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '牧场',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
-        yAxis: [{ type: 'value', name: '用量(吨)'}],
+        yAxis: [{ type: 'value', name: '费用(元)'}],
         series: [
           {
             name: '实际费用',
@@ -763,12 +735,12 @@ export default {
         this.chart6.dispose()
       }
       this.chart6 = echarts.init(document.getElementById('chart6'))
-      var text = this.getChart6Parm.parammaps.pastureName +'牧场XX年每月用水量对比'
+      var text = '牧场每月用水量对比'
       var option = {
         title: { text: text, left:'center',textStyle: { color: '#769cfc' }},
         tooltip: { trigger: 'axis' },
         legend: {
-          data: ['去年同期用量', '今年用量'],
+          data: chart_data.data_name,
           right: 40,
           bottom:0
         },
@@ -776,22 +748,36 @@ export default {
         grid: { left: '3%', right: '10%', bottom: '4%', containLabel: true },
         xAxis: [{ type: 'category',  name: '月份',data: chart_data.xdata, axisLabel: { interval: 0, rotate: 30 }}],
         yAxis: [{ type: 'value',name: '水量(吨)'}],
-        series: [
-          {
-            name: '去年同期用量',
-            type: 'line',
-            data: chart_data.data1,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
-          },
-          {
-            name: '今年用量',
-            type: 'line',
-            data: chart_data.data2,
-            emphasis: { label: { show: true, position: 'inside' }},
-            barMaxWidth:20
+        series: (function() {
+          var serie = []
+          if(chart_data.data1 !== null){
+            for (var i = 0; i < chart_data.data1.length; i++) {
+              var item = {
+                name: chart_data.data_name[i],
+                type: 'line',
+                data: chart_data.data1[i]
+              }
+              serie.push(item)
+            }
           }
-        ]
+          return serie
+        }())
+        // series: [
+        //   {
+        //     name: '去年同期用量',
+        //     type: 'line',
+        //     data: chart_data.data1,
+        //     emphasis: { label: { show: true, position: 'inside' }},
+        //     barMaxWidth:20
+        //   },
+        //   {
+        //     name: '今年用量',
+        //     type: 'line',
+        //     data: chart_data.data2,
+        //     emphasis: { label: { show: true, position: 'inside' }},
+        //     barMaxWidth:20
+        //   }
+        // ]
       }
       this.chart6.setOption(option)
       window.onresize = function() {

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov