dedsudiyu 5 months ago
parent
commit
d0bced9168
22 changed files with 585 additions and 356 deletions
  1. 4 4
      .env.development
  2. 64 0
      src/api/index.js
  3. 2 2
      src/views/home.vue
  4. 40 22
      src/views/resourceDevice/pageComponent/cageDangerComponent.vue
  5. 86 51
      src/views/resourceDevice/pageComponent/cageReservationComponent.vue
  6. 40 22
      src/views/resourceDevice/pageComponent/equipmentDangerComponent.vue
  7. 35 27
      src/views/resourceDevice/pageComponent/equipmentLifeComponent.vue
  8. 39 31
      src/views/resourceDevice/pageComponent/extendedServiceComponent.vue
  9. 40 23
      src/views/resourceDevice/pageComponent/instrumentDangerComponent.vue
  10. 33 13
      src/views/resourceDevice/pageComponent/instrumentLeisureComponent.vue
  11. 33 17
      src/views/resourceDevice/pageComponent/instrumentRankingComponent.vue
  12. 36 41
      src/views/resourceDevice/pageComponent/instrumentReservationComponent.vue
  13. 40 22
      src/views/resourceDevice/pageComponent/resourceDangerComponent.vue
  14. 68 55
      src/views/resourceDevice/pageComponent/resourceReservationComponent.vue
  15. 3 3
      src/views/safetyOverview/pageComponent/dangerComponents.vue
  16. 1 1
      src/views/safetyOverview/pageComponent/hazardousComponents.vue
  17. 3 3
      src/views/safetyOverview/pageComponent/subComponents.vue
  18. 3 3
      src/views/safetyOverview/pageComponent/troubleDistributionComponents.vue
  19. 3 3
      src/views/safetyOverview/pageComponent/troubleRankingComponents.vue
  20. 6 7
      src/views/safetyOverview/pageComponent/userEquipmentComponents.vue
  21. 3 3
      src/views/safetyOverview/pageComponent/userNumComponents.vue
  22. 3 3
      src/views/safetyOverview/pageComponent/warningComponents.vue

+ 4 - 4
.env.development

@@ -38,13 +38,13 @@ VUE_APP_VERSION_DIFFERENCE_FIELD = 'kuangYeDaXue_nanHu'
 # 柴
 # VUE_APP_BASE_LOCAL_API = '192.168.1.9:8080'
 # 小飞
-VUE_APP_BASE_LOCAL_API = '192.168.1.17:8080'
+# VUE_APP_BASE_LOCAL_API = '192.168.1.17:8080'
 # 志伟
 # VUE_APP_BASE_LOCAL_API = '192.168.1.20:8080'
 # 林总
 # VUE_APP_BASE_LOCAL_API = '192.168.1.24:8080'
 # 高升
-# VUE_APP_BASE_LOCAL_API = '192.168.1.39:8080'
+VUE_APP_BASE_LOCAL_API = '192.168.1.39:8080'
 
 # ####################外网接口配置####################
 
@@ -72,9 +72,9 @@ VUE_APP_BASE_LOCAL_API = '192.168.1.17:8080'
 # 志伟
 # VUE_APP_BASE_API = '192.168.1.20:8080'
 # 小飞
-VUE_APP_BASE_API = '192.168.1.17:8080'
+# VUE_APP_BASE_API = '192.168.1.17:8080'
 # 高升
-# VUE_APP_BASE_API = '192.168.1.39:8080'
+VUE_APP_BASE_API = '192.168.1.39:8080'
 
 
 # 矿大

+ 64 - 0
src/api/index.js

@@ -184,3 +184,67 @@ export function reportReportBigDataDangerSort (query) {
     params: query
   })
 }
+//资源设备统计-笼位预约概况
+export function reportReportBsCageRateList (query) {
+  return request({
+    url: '/report/reportBsCageRate/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-大仪一年内空闲率
+export function reportReportBsEquipFreeList (query) {
+  return request({
+    url: '/report/reportBsEquipFree/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-资源预约
+export function reportReportBsResourceRateList (query) {
+  return request({
+    url: '/report/reportBsResourceRate/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-设备使用寿命统计
+export function reportReportBsEquipLifeList (query) {
+  return request({
+    url: '/report/reportBsEquipLife/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-超期服役设备统计
+export function reportReportBsEquipOverdueList (query) {
+  return request({
+    url: '/report/reportBsEquipOverdue/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-大仪预约排行
+export function reportReportBsEquipRankList (query) {
+  return request({
+    url: '/report/reportBsEquipRank/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-大仪预约情况概览
+export function reportReportBsEquipRateList (query) {
+  return request({
+    url: '/report/reportBsEquipRate/list',
+    method: 'get',
+    params: query
+  })
+}
+//资源设备统计-设备隐患统计
+export function reportReportBsEquipDangerList (data) {
+  return request({
+    url: '/report/reportBsEquipDanger/list',
+    method: 'post',
+    data: data
+  })
+}

+ 2 - 2
src/views/home.vue

@@ -99,11 +99,11 @@
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.timer);
+      window.clearInterval(this.timer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.timer);
+      window.clearInterval(this.timer);
     }
   }
 </script>

+ 40 - 22
src/views/resourceDevice/pageComponent/cageDangerComponent.vue

@@ -9,10 +9,10 @@
       </div>
       <div class="position-text-box">
         <p class="position-text">隐患数</p>
-        <p class="position-num">23</p>
-        <div class="position-num-box">
+        <p class="position-num">{{dangerNum}}</p>
+        <div class="position-num-box" v-if="yearOverYear>0">
           <p class="null-p"></p>
-          <p class="text-num-p">同比 30% </p>
+          <p class="text-num-p">同比 {{yearOverYear}}% </p>
           <img src="@/assets/ZDimages/icom_whpclph_sz@1x.png">
           <p class="null-p"></p>
         </div>
@@ -25,6 +25,9 @@
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipDangerList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'cageDangerComponent',
@@ -35,33 +38,54 @@
       return {
         propsData:{
           title:'笼位实验室隐患统计',
-          checkType:'cageDangerComponent',
+          // checkType:'cageDangerComponent',
         },
         //eCharts定时器
         eChartsTimer:null,
         buttonType:1,
+        dangerNum:0,
+        yearOverYear:0,
       }
     },
     created(){
 
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipDangerList({dangerType:2,statisticsType:this.buttonType}).then(response => {
+          this.$set(this,'dangerNum',response.data.dangerNum?response.data.dangerNum:0);
+          this.$set(this,'yearOverYear',response.data.yearOverYear?response.data.yearOverYear:0);
+          let list = [];
+          for(let i=0;i<response.data.subjectList.length;i++){
+            list.push({
+              name:response.data.subjectList[i].subjectName,
+              value:response.data.subjectList[i].dangerNum
+            });
+          }
+          if(list[0]){
+            this.eChartsMethod(list);
+          }
+        })
+      },
       checkButton(type){
         if(this.buttonType != type){
           this.$set(this,'buttonType',type);
+          this.getData();
         }
       },
-      eChartsMethod() {
-        const list = [
-          { value: 20, name: '动物生物技术实验室'},
-          { value: 25, name: '动物科学实验室'},
-          { value: 55, name: '基础兽医实验室'},
-          { value: 70, name: '临床兽医实验室'},
-          { value: 60, name: '预防兽医实验室'},
-        ]
+      eChartsMethod(list) {
         let option = {
           legend: {
             orient: 'vertical',
@@ -99,23 +123,17 @@
           ]
         };
         let echartsBox = this.$echarts.init(document.getElementById('cageDangerComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 86 - 51
src/views/resourceDevice/pageComponent/cageReservationComponent.vue

@@ -5,75 +5,90 @@
       <!--笼位数量-->
       <div class="title-box">
         <p class="title-null-p"></p>
-        <p class="title-p">笼位数 187</p>
-        <p class="title-p">预约数 165</p>
-        <p class="title-p">空闲数 22</p>
+        <p class="title-p">笼位数 {{totalCageNum}}</p>
+        <p class="title-p">预约数 {{totalAppointNum}}</p>
+        <p class="title-p">空闲数 {{totalFreeNum}}</p>
         <p class="title-null-p"></p>
       </div>
       <!--楼栋数量-->
-      <p class="left-num-p">总数 94</p>
-      <p class="right-num-p">总数 123</p>
+      <p class="left-num-p">总数 {{leftData.cageNum}}</p>
+      <p class="right-num-p">总数 {{rightData.cageNum}}</p>
       <div class="left-name-box">
-        <p>养</p>
-        <p>殖</p>
-        <p>楼</p>
-        <p>A</p>
-        <p>座</p>
+        <p v-for="(item,index) in leftData.buildName">{{item}}</p>
+        <!--<p>养</p>-->
+        <!--<p>殖</p>-->
+        <!--<p>楼</p>-->
+        <!--<p>A</p>-->
+        <!--<p>座</p>-->
       </div>
       <div class="right-name-box">
-        <p>养</p>
-        <p>殖</p>
-        <p>楼</p>
-        <p>B</p>
-        <p>座</p>
+        <p v-for="(item,index) in rightData.buildName">{{item}}</p>
+        <!--<p>养</p>-->
+        <!--<p>殖</p>-->
+        <!--<p>楼</p>-->
+        <!--<p>B</p>-->
+        <!--<p>座</p>-->
       </div>
       <!--左侧浮球-->
       <div class="position-num-box-1 left-position-num-box-1">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">65%</p>
-        <p class="text-p">维修70</p>
+        <p class="num-p">{{leftData.repairRate}}%</p>
+        <p class="text-p">维修{{leftData.repairNum}}</p>
       </div>
       <div class="position-num-box-2 left-position-num-box-2">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">35%</p>
-        <p class="text-p">空余24</p>
+        <p class="num-p">{{leftData.freeRate}}%</p>
+        <p class="text-p">空余{{leftData.freeNum}}</p>
       </div>
       <div class="position-num-box-2 left-position-num-box-3">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">56%</p>
-        <p class="text-p">锁定94</p>
+        <p class="num-p">{{leftData.lockedRate}}%</p>
+        <p class="text-p">锁定{{leftData.lockedNum}}</p>
       </div>
       <div class="position-num-box-1 left-position-num-box-4">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">23%</p>
-        <p class="text-p">消杀45</p>
+        <p class="num-p">{{leftData.killRate}}%</p>
+        <p class="text-p">消杀{{leftData.killNum}}</p>
       </div>
       <div class="position-num-box-1 left-position-num-box-5">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">41%</p>
-        <p class="text-p">预约数89</p>
+        <p class="num-p">{{leftData.appointRate}}%</p>
+        <p class="text-p">预约数{{leftData.appointNum}}</p>
       </div>
       <!--右侧浮球-->
       <div class="position-num-box-1 right-position-num-box-1">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">32%</p>
-        <p class="text-p">空余27</p>
+        <p class="num-p">{{rightData.repairRate}}%</p>
+        <p class="text-p">维修{{rightData.repairNum}}</p>
       </div>
       <div class="position-num-box-2 right-position-num-box-2">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">16%</p>
-        <p class="text-p">空余13</p>
+        <p class="num-p">{{rightData.freeRate}}%</p>
+        <p class="text-p">空余{{rightData.freeNum}}</p>
       </div>
-      <div class="position-num-box-1 right-position-num-box-3">
+      <div class="position-num-box-2 right-position-num-box-3">
         <div class="position-img rotate-position-img"></div>
-        <p class="num-p">28%</p>
-        <p class="text-p">预约数32</p>
+        <p class="num-p">{{rightData.lockedRate}}%</p>
+        <p class="text-p">锁定{{rightData.lockedNum}}</p>
+      </div>
+      <div class="position-num-box-1 right-position-num-box-4">
+        <div class="position-img rotate-position-img"></div>
+        <p class="num-p">{{rightData.killRate}}%</p>
+        <p class="text-p">消杀{{rightData.killNum}}</p>
+      </div>
+      <div class="position-num-box-1 right-position-num-box-5">
+        <div class="position-img rotate-position-img"></div>
+        <p class="num-p">{{rightData.appointRate}}%</p>
+        <p class="text-p">预约数{{rightData.appointNum}}</p>
       </div>
       <img class="position-back-img" src="@/assets/ZDimages/img_lwyy_ld@1x.png">
     </div>
   </div>
 </template>
 <script>
+import {
+  reportReportBsCageRateList,
+} from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'cageReservationComponent',
@@ -87,6 +102,11 @@
         },
         //eCharts定时器
         eChartsTimer:null,
+        totalAppointNum:0,
+        totalCageNum:0,
+        totalFreeNum:0,
+        leftData:{},
+        rightData:{},
       }
     },
     created(){
@@ -94,28 +114,35 @@
     },
     mounted() {
       // this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
-      eChartsMethod() {
-
-        let echartsBox = this.$echarts.init(document.getElementById('cageReservationComponentECharts'));
-        echartsBox.setOption(option);
+      timedRefresh(){
+        let self = this;
+        self.getData();
         //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
-      }
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsCageRateList().then(response => {
+          this.$set(this,'totalCageNum',response.data.totalCageNum);
+          this.$set(this,'totalAppointNum',response.data.totalAppointNum);
+          this.$set(this,'totalFreeNum',response.data.totalFreeNum);
+          this.$set(this,'leftData',response.data.reportBsCageRateList[0]);
+          this.$set(this,'rightData',response.data.reportBsCageRateList[1]);
+        })
+      },
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>
@@ -285,16 +312,24 @@
         left:120px;
       }
       .right-position-num-box-1{
-        top:70px;
-        right:88px;
+        top:80px;
+        right:25px;
       }
       .right-position-num-box-2{
-        top:172px;
-        right:140px;
+        top:70px;
+        right:142px;
       }
       .right-position-num-box-3{
-        top:242px;
-        right:48px;
+        top:196px;
+        right:56px;
+      }
+      .right-position-num-box-4{
+        top:176px;
+        right:130px;
+      }
+      .right-position-num-box-5{
+        top:290px;
+        right:32px;
       }
       .position-back-img{
         position: absolute;

+ 40 - 22
src/views/resourceDevice/pageComponent/equipmentDangerComponent.vue

@@ -9,10 +9,10 @@
       </div>
       <div class="position-text-box">
         <p class="position-text">隐患数</p>
-        <p class="position-num">42</p>
-        <div class="position-num-box">
+        <p class="position-num">{{dangerNum}}</p>
+        <div class="position-num-box" v-if="yearOverYear>0">
           <p class="null-p"></p>
-          <p class="text-num-p">同比 30% </p>
+          <p class="text-num-p">同比 {{yearOverYear}}% </p>
           <img src="@/assets/ZDimages/icom_whpclph_sz@1x.png">
           <p class="null-p"></p>
         </div>
@@ -24,6 +24,9 @@
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipDangerList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'equipmentDangerComponent',
@@ -34,33 +37,54 @@
       return {
         propsData:{
           title:'特种设备与常规冷热设备隐患统计',
-          checkType:'equipmentDangerComponent',
+          // checkType:'equipmentDangerComponent',
         },
         //eCharts定时器
         eChartsTimer:null,
         buttonType:1,
+        dangerNum:0,
+        yearOverYear:0,
       }
     },
     created(){
 
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipDangerList({dangerType:1,statisticsType:this.buttonType}).then(response => {
+          this.$set(this,'dangerNum',response.data.dangerNum?response.data.dangerNum:0);
+          this.$set(this,'yearOverYear',response.data.yearOverYear?response.data.yearOverYear:0);
+          let list = [];
+          for(let i=0;i<response.data.subjectList.length;i++){
+            list.push({
+              name:response.data.subjectList[i].subjectName,
+              value:response.data.subjectList[i].dangerNum
+            });
+          }
+          if(list[0]){
+            this.eChartsMethod(list);
+          }
+        })
+      },
       checkButton(type){
         if(this.buttonType != type){
           this.$set(this,'buttonType',type);
+          this.getData();
         }
       },
-      eChartsMethod() {
-        const list = [
-          { value: 20, name: '压力容器'},
-          { value: 25, name: '冷冻干燥/浓缩设备'},
-          { value: 55, name: '高压灭菌锅'},
-          { value: 70, name: '超纯水设备'},
-          { value: 60, name: '二氧化碳培养箱'},
-        ]
+      eChartsMethod(list) {
         let option = {
           legend: {
             orient: 'vertical',
@@ -99,23 +123,17 @@
         };
 
         let echartsBox = this.$echarts.init(document.getElementById('equipmentDangerComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 35 - 27
src/views/resourceDevice/pageComponent/equipmentLifeComponent.vue

@@ -9,13 +9,16 @@
         <div v-for="(item,index) in dataList" :key="index">
           <p>{{item.name}}</p>
           <p>{{item.value}}台</p>
-          <p>{{item.num}}</p>
+          <p>{{item.num}}%</p>
         </div>
       </div>
     </div>
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipLifeList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'equipmentLifeComponent',
@@ -26,27 +29,44 @@
       return {
         propsData:{
           title:'设备使用寿命统计',
-          checkType:'equipmentLifeComponent',
+          // checkType:'equipmentLifeComponent',
         },
         //eCharts定时器
         eChartsTimer:null,
-        dataList:[
-          {name:'5年内',value:'147',num:'26%'},
-          {name:'10年内',value:'136',num:'24%'},
-          {name:'12年内',value:'124',num:'22%'},
-          {name:'20年内',value:'96',num:'17%'},
-          {name:'超期服役',value:'67',num:'11%'},
-        ],
+        dataList:[],
       }
     },
     created(){
 
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
-      eChartsMethod() {
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipLifeList().then(response => {
+          let list = [];
+          for(let i=0;i<response.data.length;i++){
+            list.push({
+              name:response.data[i].lifeInterval?response.data[i].lifeInterval:'未知',
+              value:response.data[i].deviceNum?response.data[i].deviceNum:0,
+              num:response.data[i].deviceRate?response.data[i].deviceRate:0,
+            })
+          }
+          this.$set(this,'dataList',list);
+          this.eChartsMethod(list);
+        })
+      },
+      eChartsMethod(list) {
         let option = {
           color:['#0183FA','#00E6FF','#047581','#FCC23C','#FF7575'],
           series: [
@@ -80,34 +100,22 @@
                   fontSize: 20//悬停时文字大小
                 }
               },
-              data: [
-                {value: 147, name: '5年内'},
-                {value: 106, name: '10年内'},
-                {value: 124, name: '12年内'},
-                {value: 96, name: '20年内'},
-                {value: 67, name: '超期服役'}
-              ]
+              data: list
             }
           ]
         };
         let echartsBox = this.$echarts.init(document.getElementById('equipmentLifeComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 39 - 31
src/views/resourceDevice/pageComponent/extendedServiceComponent.vue

@@ -4,16 +4,15 @@
     <div class="eCharts-max-big-box">
       <div id="extendedServiceComponentECharts"></div>
       <div class="position-num-title-box">
-        <p>1</p>
-        <p>2</p>
-        <p>3</p>
-        <p>4</p>
-        <p>5</p>
+        <p v-for="(item,index) in dataList" :key="index">{{index+1}}</p>
       </div>
     </div>
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipOverdueList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'extendedServiceComponent',
@@ -27,32 +26,47 @@
         },
         //eCharts定时器
         eChartsTimer:null,
+        dataList:[],
       }
     },
     created(){
-
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
-      eChartsMethod() {
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipOverdueList().then(response => {
+          let dataList = [];
+          let categoryList = [];
+          for(let i=0;i<response.data.length;i++){
+            dataList.push({
+              name:response.data[i].deviceNum,
+              value:100,
+            })
+            categoryList.push({
+              name:response.data[i].deptName,
+              value:response.data[i].deviceNum,
+            })
+          }
+          this.$set(this,'dataList',response.data);
+          this.eChartsMethod(dataList,categoryList);
+        })
+      },
+      eChartsMethod(dataList,categoryList) {
         let { category, total, datas } = {
-          datas: [
-            { name: '32', value: 100 },
-            { name: '41', value: 100 },
-            { name: '20', value: 100 },
-            { name: '37', value: 100 },
-            { name: '62', value: 100 },
-          ],
+          datas: dataList,
           total: 100,
-          category: [
-            { name: '农学院', value: 32 },
-            { name: '理学院', value: 41 },
-            { name: '生命科学', value: 20 },
-            { name: '园林艺术', value: 37 },
-            { name: '植物保护', value: 62 },
-          ],
+          category: categoryList,
         };
         let totalList = [];
         category.forEach((item) => {
@@ -208,23 +222,17 @@
         };
 
         let echartsBox = this.$echarts.init(document.getElementById('extendedServiceComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 40 - 23
src/views/resourceDevice/pageComponent/instrumentDangerComponent.vue

@@ -9,10 +9,10 @@
       </div>
       <div class="position-text-box">
         <p class="position-text">隐患数</p>
-        <p class="position-num">16</p>
-        <div class="position-num-box">
+        <p class="position-num">{{dangerNum}}</p>
+        <div class="position-num-box" v-if="yearOverYear>0">
           <p class="null-p"></p>
-          <p class="text-num-p">同比 30% </p>
+          <p class="text-num-p">同比 {{yearOverYear}}% </p>
           <img src="@/assets/ZDimages/icom_whpclph_sz@1x.png">
           <p class="null-p"></p>
         </div>
@@ -25,6 +25,9 @@
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipDangerList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'instrumentDangerComponent',
@@ -35,34 +38,54 @@
       return {
         propsData:{
           title:'大仪实验室隐患统计',
-          checkType:'instrumentDangerComponent',
+          // checkType:'instrumentDangerComponent',
         },
         //eCharts定时器
         eChartsTimer:null,
         buttonType:1,
+        dangerNum:0,
+        yearOverYear:0,
       }
     },
     created(){
 
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipDangerList({dangerType:3,statisticsType:this.buttonType}).then(response => {
+          this.$set(this,'dangerNum',response.data.dangerNum?response.data.dangerNum:0);
+          this.$set(this,'yearOverYear',response.data.yearOverYear?response.data.yearOverYear:0);
+          let list = [];
+          for(let i=0;i<response.data.subjectList.length;i++){
+            list.push({
+              name:response.data.subjectList[i].subjectName,
+              value:response.data.subjectList[i].dangerNum
+            });
+          }
+          if(list[0]){
+            this.eChartsMethod(list);
+          }
+        })
+      },
       checkButton(type){
         if(this.buttonType != type){
           this.$set(this,'buttonType',type);
+          this.getData();
         }
       },
-      eChartsMethod() {
-
-        const list = [
-          { value: 20, name: '光合与呼吸作用测定仪'},
-          { value: 25, name: '气相色谱仪'},
-          { value: 55, name: '元素分析仪'},
-          { value: 70, name: '原子吸收分光光度计'},
-          { value: 60, name: '离子色谱仪'},
-        ]
+      eChartsMethod(list) {
         let option = {
           legend: {
             orient: 'vertical',
@@ -101,23 +124,17 @@
         };
 
         let echartsBox = this.$echarts.init(document.getElementById('instrumentDangerComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 33 - 13
src/views/resourceDevice/pageComponent/instrumentLeisureComponent.vue

@@ -6,20 +6,24 @@
         <p class="for-index"
            :class="index==0?'colorA':(index==1?'colorB':(index==2?'colorC':(index==3?'colorD':(index==4?'colorE':''))))"
         >{{index+1}}</p>
-        <p class="for-name">{{item.name}}</p>
+        <p class="for-name">{{item.deviceName}}</p>
         <div class="for-value">
           <p>预约时长</p>
-          <p>{{item.value}}</p>
+          <p>{{item.orderDuration}}</p>
         </div>
         <div class="for-num">
           <p>空闲率</p>
-          <p>{{item.num}}</p>
+          <p>{{item.freeRate}}%</p>
         </div>
       </div>
+      <p v-if="!dataList[0]" style="color:#dedede;font-size:18px;line-height:200px;text-align: center;">暂无数据</p>
     </div>
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipFreeList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'instrumentLeisureComponent',
@@ -30,26 +34,42 @@
       return {
         propsData:{
           title:'大仪一年内空闲率排行榜',
-          checkType:'instrumentLeisureComponent',
+          // checkType:'instrumentLeisureComponent',
         },
-        dataList:[
-          {name:'X射线衍射仪',value:'112',num:'43'},
-          {name:'场发射扫描电子显微镜',value:'89',num:'49'},
-          {name:'多功能光电子能谱仪',value:'72',num:'57'},
-          {name:'显微共聚焦拉曼光谱仪',value:'68',num:'62'},
-          {name:'基质辅助激光解析电离串联飞行时间质谱仪',value:'59',num:'71'},
-        ],
+        eChartsTimer:null,
+        dataList:[],
       }
     },
     created(){
 
     },
     mounted() {
-
+      this.timedRefresh();
     },
     methods: {
-
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipFreeList().then(response => {
+          this.$set(this,'dataList',response.data);
+        })
+      },
     },
+    beforeDestroy() {
+      //清除定时器
+      window.clearInterval(this.eChartsTimer)
+    },
+    destroyed() {
+      //清除定时器
+      window.clearInterval(this.eChartsTimer)
+    }
   }
 </script>
 <style scoped lang="scss">

+ 33 - 17
src/views/resourceDevice/pageComponent/instrumentRankingComponent.vue

@@ -2,7 +2,6 @@
   <div class="instrumentRankingComponent">
     <title-page-img-components :propsData="propsData"></title-page-img-components>
     <div class="eCharts-max-big-box">
-
       <div id="instrumentRankingComponentECharts">
 
       </div>
@@ -10,6 +9,9 @@
   </div>
 </template>
 <script>
+import {
+  reportReportBsEquipRankList,
+} from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'instrumentRankingComponent',
@@ -20,7 +22,7 @@
       return {
         propsData:{
           title:'大仪预约排行',
-          checkType:'instrumentRankingComponent',
+          // checkType:'instrumentRankingComponent',
         },
         //eCharts定时器
         eChartsTimer:null,
@@ -30,14 +32,34 @@
 
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
-      eChartsMethod() {
-        const Data = ["X射线衍射仪", "场发射扫描电子显微镜", "多功能光电子能谱仪", "显微共聚焦拉曼光谱仪", "基质辅助激光解析电离串联飞行时间质谱仪","X射线衍射仪", "场发射扫描电子显微镜", "多功能光电子能谱仪", "显微共聚焦拉曼光谱仪", "基质辅助激光解析电离串联飞行时间质谱仪",]
-        const xzData = [370, 350, 260, 250, 210, 200, 150, 130, 110, 100]
-        const tclData = [300, 260, 150, 140, 110, 100, 150, 150, 110, 150]
-        const tbData = [80, 70, 80, 70, 80, 70, 80, 70, 90, 70, 80]
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipRankList().then(response => {
+          let Data = [];
+          let xzData = [];
+          let tclData = [];
+          let tbData = [];
+          for(let i=0;i<response.data.length;i++){
+            Data.push(response.data[i].deviceName)
+            xzData.push(response.data[i].useTime)
+            tclData.push(response.data[i].appointFee)
+            tbData.push(response.data[i].testSample)
+          }
+          this.eChartsMethod(Data,xzData,tclData,tbData);
+        })
+      },
+      eChartsMethod(Data,xzData,tclData,tbData) {
         let option = {
           //你的代码
           tooltip: {//提示框组件
@@ -241,23 +263,17 @@
         };
 
         let echartsBox = this.$echarts.init(document.getElementById('instrumentRankingComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 36 - 41
src/views/resourceDevice/pageComponent/instrumentReservationComponent.vue

@@ -15,6 +15,9 @@
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipRateList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'instrumentReservationComponent',
@@ -28,16 +31,7 @@
         },
         //eCharts定时器
         eChartsTimer:null,
-        dataList:[
-          { name:'农学院', value:'56', },
-          { name:'理学院', value:'45', },
-          { name:'化学与药物', value:'33', },
-          { name:'生命科学', value:'25', },
-          { name:'园林艺术', value:'22', },
-          { name:'植物保护', value:'19', },
-          { name:'资源环境', value:'17', },
-          { name:'国重楼', value:'6', },
-        ],
+        dataList:[],
         tableTimer:null,
         maxCanSee:4,
         tableLineHeight:50,
@@ -48,16 +42,35 @@
 
     },
     mounted() {
-      this.eChartsMethod();
-      this.tableTimerFun();
+      this.timedRefresh();
     },
     methods: {
-      eChartsMethod() {
-        const chartData = [
-          { value: 35, name: '已预约' },
-          { value: 15, name: '锁定' },
-          { value: 50, name: '可预约' },
-        ]
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          window.clearInterval(self.tableTimer);
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipRateList().then(response => {
+          let dataList = [];
+          for(let i=0;i<response.data.equipRateList.length;i++){
+            dataList.push({
+              name:response.data.equipRateList[i].deptName,
+              value:response.data.equipRateList[i].deviceNum
+            });
+          }
+          this.$set(this,'dataList',dataList);
+          this.eChartsMethod(response.data.dataList);
+          this.tableTimerFun();
+        })
+      },
+      eChartsMethod(dataList) {
+        const chartData = dataList
         let option = {
           color:['#10C139','#FF8400','#0183FA'],
           tooltip: {
@@ -132,14 +145,8 @@
           ]
         };
         let echartsBox = this.$echarts.init(document.getElementById('instrumentReservationComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       },
       //开始滚动
       tableTimerFun() {
@@ -159,18 +166,6 @@
           }, 3000);
         }
       },
-      // tableTimerFun() {
-      //   this.tableTimer = window.setInterval(() => {
-      //     let csrollTop = this.$refs.scrollDiv.scrollTop
-      //     if (csrollTop == 50) {
-      //       this.$refs.scrollDiv.scrollTop = 0;
-      //       this.dataList.push(this.dataList[0]);
-      //       this.dataList.shift();
-      //     } else {
-      //       this.$refs.scrollDiv.scrollTop += 1;
-      //     }
-      //   }, 30);
-      // },
       //停止滚动
       tableTimerOff(){
         window.clearInterval(this.tableTimer)
@@ -178,13 +173,13 @@
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.tableTimer);
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.tableTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.tableTimer);
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.tableTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 40 - 22
src/views/resourceDevice/pageComponent/resourceDangerComponent.vue

@@ -9,10 +9,10 @@
       </div>
       <div class="position-text-box">
         <p class="position-text">隐患数</p>
-        <p class="position-num">27</p>
-        <div class="position-num-box">
+        <p class="position-num">{{dangerNum}}</p>
+        <div class="position-num-box" v-if="yearOverYear>0">
           <p class="null-p"></p>
-          <p class="text-num-p">同比 30% </p>
+          <p class="text-num-p">同比 {{yearOverYear}}% </p>
           <img src="@/assets/ZDimages/icom_whpclph_sz@1x.png">
           <p class="null-p"></p>
         </div>
@@ -25,6 +25,9 @@
   </div>
 </template>
 <script>
+  import {
+    reportReportBsEquipDangerList,
+  } from "@/api/index";
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
     name: 'resourceDangerComponent',
@@ -35,33 +38,54 @@
       return {
         propsData:{
           title:'资源设施实验室隐患统计',
-          checkType:'resourceDangerComponent',
+          // checkType:'resourceDangerComponent',
         },
         //eCharts定时器
         eChartsTimer:null,
         buttonType:1,
+        dangerNum:0,
+        yearOverYear:0,
       }
     },
     created(){
 
     },
     mounted() {
-      this.eChartsMethod();
+      this.timedRefresh();
     },
     methods: {
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
+      },
+      getData(){
+        reportReportBsEquipDangerList({dangerType:4,statisticsType:this.buttonType}).then(response => {
+          this.$set(this,'dangerNum',response.data.dangerNum?response.data.dangerNum:0);
+          this.$set(this,'yearOverYear',response.data.yearOverYear?response.data.yearOverYear:0);
+          let list = [];
+          for(let i=0;i<response.data.subjectList.length;i++){
+            list.push({
+              name:response.data.subjectList[i].subjectName,
+              value:response.data.subjectList[i].dangerNum
+            });
+          }
+          if(list[0]){
+            this.eChartsMethod(list);
+          }
+        })
+      },
       checkButton(type){
         if(this.buttonType != type){
           this.$set(this,'buttonType',type);
+          this.getData();
         }
       },
-      eChartsMethod() {
-        const list = [
-          { value: 20, name: '水产科学实验室'},
-          { value: 25, name: '草业科学实验室'},
-          { value: 55, name: '预防兽医实验室'},
-          { value: 70, name: '临床兽医实验室'},
-          { value: 60, name: '基础兽医实验室'},
-        ]
+      eChartsMethod(list) {
         let option = {
           legend: {
             orient: 'vertical',
@@ -99,23 +123,17 @@
           ]
         };
         let echartsBox = this.$echarts.init(document.getElementById('resourceDangerComponentECharts'));
+        echartsBox.clear();
         echartsBox.setOption(option);
-        //定时动画
-        clearInterval(this.eChartsTimer);
-        this.eChartsTimer = setInterval(function(){
-          echartsBox.clear();
-          echartsBox.setOption(option);
-        },1000*6);
-
       }
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 68 - 55
src/views/resourceDevice/pageComponent/resourceReservationComponent.vue

@@ -3,7 +3,7 @@
     <title-page-img-components :propsData="propsData"></title-page-img-components>
     <div class="eCharts-max-big-box">
       <div class="resourceReservationComponentECharts-box">
-        <div class="equipmentDangerComponentECharts-left">
+        <div class="equipmentDangerComponentECharts-left" v-show="leftData">
           <p class="title-p">温室</p>
           <div id="leftEquipmentDangerComponentECharts"></div>
           <div class="bottom-num-box">
@@ -12,18 +12,18 @@
                 <p></p>
                 <p>总数</p>
               </div>
-              <p class="left-num">200</p>
+              <p class="left-num">{{leftData.resourceNum}}</p>
             </div>
             <div class="right-bottom-num-box">
               <div>
                 <p></p>
                 <p>预约数</p>
               </div>
-              <p class="right-num">50</p>
+              <p class="right-num">{{leftData.appointNum}}</p>
             </div>
           </div>
         </div>
-        <div class="equipmentDangerComponentECharts-center">
+        <div class="equipmentDangerComponentECharts-center" v-show="centerData">
           <p class="title-p">自然室</p>
           <div id="centerEquipmentDangerComponentECharts"></div>
           <div class="bottom-num-box">
@@ -32,18 +32,18 @@
                 <p></p>
                 <p>总数</p>
               </div>
-              <p class="left-num">100</p>
+              <p class="left-num">{{centerData.resourceNum}}</p>
             </div>
             <div class="right-bottom-num-box">
               <div>
                 <p></p>
                 <p>预约数</p>
               </div>
-              <p class="right-num">60</p>
+              <p class="right-num">{{centerData.appointNum}}</p>
             </div>
           </div>
         </div>
-        <div class="equipmentDangerComponentECharts-right">
+        <div class="equipmentDangerComponentECharts-right" v-show="rightData">
           <p class="title-p">冷库</p>
           <div id="rightEquipmentDangerComponentECharts"></div>
           <div class="bottom-num-box">
@@ -52,14 +52,14 @@
                 <p></p>
                 <p>总数</p>
               </div>
-              <p class="left-num">300</p>
+              <p class="left-num">{{rightData.resourceNum}}</p>
             </div>
             <div class="right-bottom-num-box">
               <div>
                 <p></p>
                 <p>预约数</p>
               </div>
-              <p class="right-num">100</p>
+              <p class="right-num">{{rightData.resourceNum}}</p>
             </div>
           </div>
         </div>
@@ -68,6 +68,9 @@
   </div>
 </template>
 <script>
+import {
+  reportReportBsResourceRateList,
+} from "@/api/index";
   import "echarts-liquidfill/src/liquidFill.js"
   import titlePageImgComponents from '@/components/titlePageImgComponents.vue'
   export default {
@@ -80,6 +83,10 @@
         propsData: {
           title: '资源预约情况概览'
         },
+        leftData:false,
+        centerData:false,
+        rightData:false,
+        eChartsTimer:null,
         //eCharts定时器
         eChartsTimerLeft: null,
         eChartsTimerCenter: null,
@@ -90,15 +97,48 @@
 
     },
     mounted() {
-      this.initialize();
+      this.timedRefresh();
     },
     methods: {
-      initialize(){
-        this.eChartsMethodLeft();
-        this.eChartsMethodCenter();
-        this.eChartsMethodRight();
+      timedRefresh(){
+        let self = this;
+        self.getData();
+        //定时动画
+        window.clearInterval(self.eChartsTimer);
+        self.eChartsTimer = setInterval(function(){
+          self.getData();
+        },1000*30);
       },
-      eChartsMethodLeft() {
+      getData(){
+        reportReportBsResourceRateList().then(response => {
+          if(response.data[0]){
+            this.$set(this,'leftData',response.data[0]);
+            let num = response.data[0].appointRatio/100;
+            let text = response.data[0].appointRatio+'%'
+            this.eChartsMethodLeft(num,text);
+          }else{
+            this.$set(this,'leftData',false);
+          }
+          if(response.data[1]){
+            this.$set(this,'centerData',response.data[1]);
+            let num = response.data[1].appointRatio/100;
+            let text = response.data[1].appointRatio+'%'
+            this.eChartsMethodCenter(num,text);
+          }else{
+            this.$set(this,'centerData',false);
+          }
+          if(response.data[2]){
+            this.$set(this,'rightData',response.data[2]);
+            let num = response.data[2].appointRatio/100;
+            let text = response.data[2].appointRatio+'%'
+            this.eChartsMethodRight(num,text);
+          }else{
+            this.$set(this,'rightData',false);
+          }
+
+        })
+      },
+      eChartsMethodLeft(num,text) {
         //水球中心
         let color1 = 'rgba(255,161,0,0)'
         let color2 = 'rgba(255,161,0,0)'
@@ -113,9 +153,8 @@
         let color8 = "rgba(255,161,0, 1)"
         let color9 = "rgba(255,161,0, 0)"
         // 水球内部数据--蓝色
-        let value = 0.25
+        let value = num
         // 水球颞部数据--灰色
-        let value1 = '25%'
         let option = {
           // 圆环内部文字
           title: [
@@ -132,7 +171,7 @@
               }
             },
             {
-              text: value1,
+              text: text,
               left: '50%',
               top: '44%',
               textAlign: 'center',
@@ -290,16 +329,10 @@
           ]
         }
         let echartsBox = this.$echarts.init(document.getElementById('leftEquipmentDangerComponentECharts'))
+        echartsBox.clear()
         echartsBox.setOption(option)
-        //定时动画
-        clearInterval(this.eChartsTimer)
-        this.eChartsTimerLeft = setInterval(function() {
-          echartsBox.clear()
-          echartsBox.setOption(option)
-        }, 1000 * 6)
-
       },
-      eChartsMethodCenter() {
+      eChartsMethodCenter(num,text) {
         //水球中心
         let color1 = 'rgba(0,161,53,0)'
         let color2 = 'rgba(0,161,53,0)'
@@ -314,9 +347,7 @@
         let color8 = "rgba(0,161,53, 1)"
         let color9 = "rgba(0,161,53, 0)"
         // 水球内部数据--蓝色
-        let value = 0.60
-        // 水球颞部数据--灰色
-        let value1 = '60%'
+        let value = num
         let option = {
           // 圆环内部文字
           title: [
@@ -333,7 +364,7 @@
               }
             },
             {
-              text: value1,
+              text: text,
               left: '50%',
               top: '44%',
               textAlign: 'center',
@@ -491,16 +522,10 @@
           ]
         }
         let echartsBox = this.$echarts.init(document.getElementById('centerEquipmentDangerComponentECharts'))
+        echartsBox.clear()
         echartsBox.setOption(option)
-        //定时动画
-        clearInterval(this.eChartsTimer)
-        this.eChartsTimerCenter = setInterval(function() {
-          echartsBox.clear()
-          echartsBox.setOption(option)
-        }, 1000 * 6)
-
       },
-      eChartsMethodRight() {
+      eChartsMethodRight(num,text) {
         //水球中心
         let color1 = 'rgba(1,131,250,0)'
         let color2 = 'rgba(1,131,250,0)'
@@ -515,9 +540,7 @@
         let color8 = "rgba(1,131,250, 1)"
         let color9 = "rgba(1,131,250, 0)"
         // 水球内部数据--蓝色
-        let value = 0.33
-        // 水球颞部数据--灰色
-        let value1 = '33%'
+        let value = num
         let option = {
           // 圆环内部文字
           title: [
@@ -534,7 +557,7 @@
               }
             },
             {
-              text: value1,
+              text: text,
               left: '50%',
               top: '44%',
               textAlign: 'center',
@@ -692,27 +715,17 @@
           ]
         }
         let echartsBox = this.$echarts.init(document.getElementById('rightEquipmentDangerComponentECharts'))
+        echartsBox.clear()
         echartsBox.setOption(option)
-        //定时动画
-        clearInterval(this.eChartsTimer)
-        this.eChartsTimerRight = setInterval(function() {
-          echartsBox.clear()
-          echartsBox.setOption(option)
-        }, 1000 * 6)
-
       },
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimerLeft)
-      clearInterval(this.eChartsTimerCenter)
-      clearInterval(this.eChartsTimerRight)
+      window.clearInterval(this.eChartsTimer)
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimerLeft)
-      clearInterval(this.eChartsTimerCenter)
-      clearInterval(this.eChartsTimerRight)
+      window.clearInterval(this.eChartsTimer)
     }
   }
 </script>

+ 3 - 3
src/views/safetyOverview/pageComponent/dangerComponents.vue

@@ -69,7 +69,7 @@
         let self = this;
         self.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.judgmentData();
         },1000*30);
@@ -224,11 +224,11 @@
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 1 - 1
src/views/safetyOverview/pageComponent/hazardousComponents.vue

@@ -66,7 +66,7 @@
         let self = this;
         self.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.getData();
         },1000*30);

+ 3 - 3
src/views/safetyOverview/pageComponent/subComponents.vue

@@ -65,7 +65,7 @@
         let self = this;
         self.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.getData();
         },1000*30);
@@ -320,11 +320,11 @@
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 3 - 3
src/views/safetyOverview/pageComponent/troubleDistributionComponents.vue

@@ -64,7 +64,7 @@
         let self = this;
         self.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.getData();
         },1000*30);
@@ -336,11 +336,11 @@
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimerLeft);
+      window.clearInterval(this.eChartsTimerLeft);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimerRight);
+      window.clearInterval(this.eChartsTimerRight);
     }
   }
 </script>

+ 3 - 3
src/views/safetyOverview/pageComponent/troubleRankingComponents.vue

@@ -57,7 +57,7 @@ import {
         let self = this;
         this.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.getData();
         },1000*30);
@@ -277,11 +277,11 @@ import {
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 6 - 7
src/views/safetyOverview/pageComponent/userEquipmentComponents.vue

@@ -49,7 +49,6 @@
 
     },
     mounted () {
-      this.tableTimerFun();
       this.timedRefresh();
     },
     methods: {
@@ -57,9 +56,9 @@
         let self = this;
         self.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
-          clearInterval(self.tableTimer)
+          window.clearInterval(self.tableTimer)
           self.getData();
         },1000*30);
       },
@@ -92,13 +91,13 @@
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.tableTimer);
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.tableTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.tableTimer);
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.tableTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 3 - 3
src/views/safetyOverview/pageComponent/userNumComponents.vue

@@ -55,7 +55,7 @@ import {
         let self = this;
         this.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.getData();
         },1000*30);
@@ -68,11 +68,11 @@ import {
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>

+ 3 - 3
src/views/safetyOverview/pageComponent/warningComponents.vue

@@ -88,7 +88,7 @@ import {
         let self = this;
         self.getData();
         //定时动画
-        clearInterval(self.eChartsTimer);
+        window.clearInterval(self.eChartsTimer);
         self.eChartsTimer = setInterval(function(){
           self.deptListIndex++
           if(self.deptList[self.deptListIndex]){
@@ -147,11 +147,11 @@ import {
     },
     beforeDestroy() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     },
     destroyed() {
       //清除定时器
-      clearInterval(this.eChartsTimer);
+      window.clearInterval(this.eChartsTimer);
     }
   }
 </script>