From c69f5f4004ad81cb76e0732bff8d67a19a6d8d50 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期五, 28 七月 2023 10:02:55 +0800
Subject: [PATCH] 设备数据分析界面绘制以及各个配置界面新增,编辑的时候备注框的输入值限制字数

---
 src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue                  |    6 
 src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue |    2 
 src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue                                 |    2 
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue                     |    2 
 src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue                              |    2 
 src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue                   |    2 
 src/views/mdc/base/modules/comparativeAnalysis/conparativeAnalysisPie.vue                   |  121 +++
 src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisBar.vue                   |  344 ++++++++++
 src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue             |    2 
 src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisGauge.vue                 |  714 +++++++++++++++++++++
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue                 |    2 
 src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue     |    2 
 src/views/mdc/base/ComparativeAnalysis.vue                                                  |   75 ++
 src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue                            |    2 
 src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue         |    2 
 src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue                  |  599 ++++++++++++++++++
 src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue                                  |   66 +
 src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue   |    2 
 src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue               |    2 
 src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue    |    2 
 20 files changed, 1,917 insertions(+), 34 deletions(-)

diff --git a/src/views/mdc/base/ComparativeAnalysis.vue b/src/views/mdc/base/ComparativeAnalysis.vue
new file mode 100644
index 0000000..b3ead03
--- /dev/null
+++ b/src/views/mdc/base/ComparativeAnalysis.vue
@@ -0,0 +1,75 @@
+<template>
+  <a-card :bordered="false">
+    <div style="width: 100%; height: 100%;overflow: hidden">
+      <a-row type="flex" :gutter="16">
+        <!--<a-col :md="5" :sm="24">-->
+          <!--<base-tree @getCurrSelected="changeSelectionNode"></base-tree>-->
+        <!--</a-col>-->
+        <a-col :md="5">
+          <a-tabs :activeKey="activeKey" @change="tabChange">
+            <a-tab-pane key="1" tab="杞﹂棿灞傜骇" force-render>
+              <base-tree @getCurrSelected="changeSelectionNode"></base-tree>
+            </a-tab-pane>
+            <a-tab-pane key="2" tab="閮ㄩ棬灞傜骇">
+              <depart-tree @getCurrSelectedDD="changeSelectionNodedd"
+              ></depart-tree>
+            </a-tab-pane>
+          </a-tabs>
+        </a-col>
+        <a-col :md="24-5" :sm="24">
+          <!--<statistical-analysis-main :equip="selectEquementnode"></statistical-analysis-main>-->
+          <!--<device-repair-list ref="DeviceRepairList" :nodeTree='selectEquement'  :nodePeople='selectPeople' :Type="slectTypeTree" />-->
+          <comparative-analysismain  ref="comparativeAnalysismain" :nodeTree='selectEquement'  :nodePeople='selectPeople' :Type="slectTypeTree"></comparative-analysismain>
+        </a-col>
+      </a-row>
+    </div>
+  </a-card>
+</template>
+
+<script>
+  import BaseTree from '../common/BaseTree'
+  import comparativeAnalysismain from './modules/comparativeAnalysis/comparativeAnalysismain'
+  export default {
+    name: 'ComparativeAnalysis',
+    components:{
+      BaseTree,
+      comparativeAnalysismain
+    },
+    data() {
+      return {
+        activeKey: '1',
+        description: '璁惧淇℃伅',
+        selectEquementId: '',
+        selectEquement: {},
+        selectPeople:{},
+        slectTypeTree: '',
+        url: {
+          equipmentStatistics: '/mdc/equipment/equipmentStatistics'
+        }
+      }
+    },
+    methods: {
+      tabChange(val) {
+        // console.log(val)
+        this.activeKey = val
+        this.slectTypeTree = val
+      },
+      /*      changeSelection(val) {
+              this.selectEquementId = val
+              this.$refs.DeviceRepairList.pQuery(val)
+            },*/
+      changeSelectionNode(val) {
+        this.selectEquement = val
+        this.slectTypeTree = '1'
+      },
+      changeSelectionNodedd(val) {
+        this.selectPeople = val
+        this.slectTypeTree = '2'
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue
index bfb3282..7656871 100644
--- a/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue
@@ -29,7 +29,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea   v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea  :maxLength="20" v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue
index 721902f..d74bfd8 100644
--- a/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue
@@ -36,7 +36,7 @@
         </a-row>
         <a-row :gutter="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20" :disabled="disableSubmit"  v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
         </a-row>
       </a-form>
diff --git a/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue b/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
index 13395b2..c06b3f2 100644
--- a/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
+++ b/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
@@ -28,7 +28,7 @@
           </a-col>
           <a-col :span="24">
             <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
-              <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+              <a-textarea :maxLength="20" v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
             </a-form-model-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue b/src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue
index d5c8ead..d9e79f6 100644
--- a/src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue
+++ b/src/views/mdc/base/modules/StatisticalAnalysis/StatisticalAnalysisMain.vue
@@ -135,7 +135,7 @@
       this.queryParams.collectTime = collectTime;
 
       this.queryParams.dateTime = this.queryParams.collectTime.format('YYYYMMDD')
-      this.initEquipmentNode('-1')
+      this.initEquipmentNode()
       this.queryStatistical();
       // this.getTime(37800);
     },
@@ -411,12 +411,14 @@
         this.queryParams.collectTime = val.format('YYYY-MM-DD');
 
       },
-      initEquipmentNode(id) {
+      initEquipmentNode() {
         let _this = this
         getAction(this.url.getBaseTree).then((res) => {
           if (res.success) {
             // console.log(res.result[0].entity.tierName)
             _this.$set(this.queryParam, 'tierName', res.result[0].title)
+            _this.$set(this.queryParams, 'parentId', res.result[0].key)
+            _this.queryStatistical()
           } else {
             this.$message.warn(res.message)
           }
diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
index 214db00..d4290eb 100644
--- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
+++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
@@ -28,7 +28,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea   v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20"  v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
index acb880c..587cde5 100644
--- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
+++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
@@ -35,7 +35,7 @@
         </a-row>
         <a-row :gutter="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20" :disabled="disableSubmit"  v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
         </a-row>
       </a-form>
diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue
index 2e94e19..e311dc5 100644
--- a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue
@@ -37,7 +37,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20" :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue
index f760b2f..fd2c967 100644
--- a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue
@@ -44,7 +44,7 @@
         </a-row>
         <a-row :gutter="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20" :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
         </a-row>
       </a-form>
diff --git a/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisBar.vue b/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisBar.vue
new file mode 100644
index 0000000..9874792
--- /dev/null
+++ b/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisBar.vue
@@ -0,0 +1,344 @@
+<template>
+    <div class="comparative_Bar" style="width: 100%;height: 700px;display: flex;flex-direction: column;overflow: scroll">
+      <div id="compAnalBar1" style="flex: 1;"></div>
+      <div id="compAnalBar2" style="flex: 1;"></div>
+    </div>
+</template>
+
+<script>
+  import * as echarts from 'echarts'
+  export default {
+    name: 'comparativeAnalysisBar',
+    propa:{},
+    data(){
+      return{
+        openRate:0,
+        utilizationRate:0,
+        openLong:0,
+        closeLong:0
+      }
+    },
+    created(){
+
+    },
+    mounted() {
+      this.drawTu()
+    },
+    methods:{
+      drawTu(){
+       let compAnalBar1 = this.$echarts.init(document.getElementById('compAnalBar1'), 'macarons');
+       let compAnalBar2 = this.$echarts.init(document.getElementById('compAnalBar2'), 'macarons');
+       let compAnalBarOption1 = {
+          tooltip: {
+            trigger: 'axis',
+            axisPointer: {
+              type: "shadow",
+              textStyle: {
+                color: "#fff"
+              }
+
+            }
+          },
+          legend: {
+            x: '4%',
+            top: '11%',
+            textStyle: {
+              color: '#90979c'
+            },
+            data: ['寮�鏈虹巼', '鍒╃敤鐜�']
+          },
+          toolbox: {
+            show : true,
+            feature : {
+              mark : {show: true},
+              magicType : {show: true, type: ['line', 'bar']},
+              restore : {show: true},
+              saveAsImage : {show: true,name:'璁惧杩愯鏁堢巼瀵规瘮鍒嗘瀽鍥�'}
+            }
+          },
+          calculable: true,
+          grid: {
+            borderWidth: 0,
+            top: 110,
+            bottom: 95,
+            textStyle: {
+              color: "#fff"
+            }
+          },
+          xAxis: [
+            {
+              type: 'category',
+              splitLine: {
+                "show": false
+              },
+              axisTick: {
+                "show": false
+              },
+              splitArea: {
+                show: false
+              },
+              boundaryGap : true,
+              axisLabel : {
+                interval : 0,
+                rotate : 0,
+                show: true,
+                wigth:20,
+                splitNumber: 8,
+                textStyle: {
+                  fontFamily: "寰蒋闆呴粦",
+                  fontSize: 12
+                }
+              },
+              data : [0]
+            }
+          ],
+          yAxis: [
+            {
+              type: 'value',
+              splitLine: {
+                show: false
+              },
+              axisLine: {
+                lineStyle: {
+                  color: '#90979c'
+                }
+              },
+              axisTick: {
+                show: false
+              },
+              axisLabel: {
+                interval: 0
+
+              },
+              splitArea: {
+                show: false
+              }
+            }
+          ],
+          dataZoom: [{
+            show: true,
+            height: 30,
+            xAxisIndex: [0],
+            bottom: 30,
+            start: 0,
+            end: 100,
+            handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
+            handleSize: '110%',
+            handleStyle: {
+              color: "#d3dee5"
+            },
+            textStyle: {
+              color: "#fff"
+            },
+            borderColor: "#90979c"
+          }, {
+            type: "inside",
+            show: true,
+            height: 15,
+            start: 1,
+            end: 35
+          }],
+          series: [
+            {
+              name: '寮�鏈虹巼',
+              type: 'bar',
+              //barWidth: 30,
+              itemStyle: {
+                normal: {
+                  color: '#4169E1'
+                }
+              },
+              data: [0],
+              barCategoryGap: '20%',
+              barGap : '-10%',
+              markPoint : {
+                data : [
+                  {type : 'max', name: '鏈�澶у��',symbolSize:70},
+                  {type : 'min', name: '鏈�灏忓��',symbolSize:70}
+                ]
+              },
+              markLine : {
+                data : [
+                  {type : 'average', name: '骞冲潎鍊�'}
+                ]
+              }
+            },
+            {
+              name: '鍒╃敤鐜�',
+              type: 'bar',
+              //barWidth: 30,
+              barCategoryGap: '20%',
+              barGap : '-10%',
+              itemStyle: {
+                normal: {
+                  color: '#00ee00'
+                }
+              },
+              data: [0],
+              markPoint : {
+                data : [
+                  {type : 'max', name: '鏈�澶у��',symbolSize:70},
+                  {type : 'min', name: '鏈�灏忓��',symbolSize:70}
+                ]
+              },
+              markLine : {
+                data : [
+                  {type : 'average', name: '骞冲潎鍊�'}
+                ]
+              }
+            }
+          ]
+        };
+       let compAnalBarOption2 = {
+          tooltip: {
+            trigger: 'axis',
+            axisPointer: {
+              type: "shadow",
+              textStyle: {
+                color: "#fff"
+              }
+
+            }
+          },
+          legend: {
+            x: '4%',
+            top: '11%',
+            textStyle: {
+              color: '#90979c'
+            },
+            data: ['寮�鏈烘椂闂�', '鍏虫満鏃堕棿']
+          },
+          toolbox: {
+            show : true,
+            feature : {
+              mark : {show: true},
+              magicType : {show: true, type: ['line', 'bar']},
+              restore : {show: true},
+              saveAsImage : {show: true,name:'璁惧杩愯鏃堕棿瀵规瘮鍒嗘瀽鍥�'}
+            }
+          },
+          calculable: true,
+          grid: {
+            borderWidth: 0,
+            top: 110,
+            bottom: 95,
+            textStyle: {
+              color: "#fff"
+            }
+          },
+          xAxis: [
+            {
+              type: 'category',
+              splitLine: {
+                "show": false
+              },
+              axisTick: {
+                "show": false
+              },
+              splitArea: {
+                show: false
+              },
+              boundaryGap : true,
+              axisLabel : {
+                interval : 0,
+                rotate : 0,
+                show: true,
+                wigth:20,
+                splitNumber: 8,
+                textStyle: {
+                  fontFamily: "寰蒋闆呴粦",
+                  fontSize: 12
+                }
+              },
+              data : [0]
+            }
+          ],
+          yAxis: [
+            {
+              type: 'value',
+              splitLine: {
+                show: false
+              },
+              axisLine: {
+                lineStyle: {
+                  color: '#90979c'
+                }
+              },
+              axisTick: {
+                show: false
+              },
+              axisLabel: {
+                interval: 0
+
+              },
+              splitArea: {
+                show: false
+              }
+            }
+          ],
+          dataZoom: [{
+            show: true,
+            height: 30,
+            xAxisIndex: [0],
+            bottom: 30,
+            start: 0,
+            end: 100,
+            handleIcon: 'path://M306.1,413c0,2.2-1.8,4-4,4h-59.8c-2.2,0-4-1.8-4-4V200.8c0-2.2,1.8-4,4-4h59.8c2.2,0,4,1.8,4,4V413z',
+            handleSize: '110%',
+            handleStyle: {
+              color: "#d3dee5"
+            },
+            textStyle: {
+              color: "#fff"
+            },
+            borderColor: "#90979c"
+          }, {
+            type: "inside",
+            show: true,
+            height: 15,
+            start: 1,
+            end: 35
+          }],
+          series: [
+            {
+              name: '寮�鏈烘椂闂�',
+              type: 'bar',
+              //barWidth: 30,
+              stack: 'sum',
+              barCategoryGap: '20%',
+              itemStyle: {
+                normal: {
+                  color: '#4169E1'
+                }
+              },
+              data: [0]
+            },
+            {
+              name: '鍏虫満鏃堕棿',
+              type: 'bar',
+              //barWidth: 30,
+              stack: 'sum',
+              barCategoryGap: '20%',
+              itemStyle: {
+                normal: {
+                  color: '#A8A8A8'
+                }
+              },
+              data: [0]
+            }
+          ]
+        };
+        compAnalBar1.setOption(compAnalBarOption1);
+        compAnalBar2.setOption(compAnalBarOption2);
+        window.addEventListener('resize', function() {
+          compAnalBar1.resize()
+          compAnalBar2.resize()
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisGauge.vue b/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisGauge.vue
new file mode 100644
index 0000000..e8334c1
--- /dev/null
+++ b/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysisGauge.vue
@@ -0,0 +1,714 @@
+<template>
+  <div class="comparative_Gauge" style="width: 100%;height: 700px;display: flex;flex-direction: column;overflow: scroll">
+    <div style="flex: 1;text-align:center;display: flex;flex-direction: column">
+      <h3 style="height: 18px;margin: 0 auto;">鍒╃敤鐜� Top 5</h3>
+
+      <div style="flex: 1;display: flex;">
+        <div id="top1Gauge" class="div-inline"></div>
+        <div id="top2Gauge" class="div-inline"></div>
+        <div id="top3Gauge" class="div-inline"></div>
+        <div id="top4Gauge" class="div-inline"></div>
+        <div id="top5Gauge" class="div-inline"></div>
+      </div>
+    </div>
+    <div style="flex: 1;text-align:center;display: flex;flex-direction: column">
+      <h3 style="height: 18px; margin: 0 auto;">鍒╃敤鐜� Last 5</h3>
+
+      <div style="flex: 1;display: flex;">
+        <div id="last1Gauge" class="div-inline"></div>
+        <div id="last2Gauge" class="div-inline"></div>
+        <div id="last3Gauge" class="div-inline"></div>
+        <div id="last4Gauge" class="div-inline"></div>
+        <div id="last5Gauge" class="div-inline"></div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+  import * as echarts from 'echarts'
+  export default {
+    name: 'comparativeAnalysisGauge',
+    props:{},
+    data(){
+      return{
+        utilizationRateTopOne:0,
+        utilizationRateTopTwo:0,
+        utilizationRateTopThree:0,
+        utilizationRateTopFour:0,
+        utilizationRateTopFive:0,
+        utilizationRateLastOne:0,
+        utilizationRateLastTwo:0,
+        utilizationRateLastThree:0,
+        utilizationRateLastFour:0,
+        utilizationRateLastFive:0
+      }
+    },
+    mounted(){
+      this.draw();
+    },
+    methods:{
+      draw(){
+       let gaugeTopChart1 = this.$echarts.init(document.getElementById('top1Gauge'),'macarons');
+       let gaugeTopChart2 = this.$echarts.init(document.getElementById('top2Gauge'),'macarons');
+       let gaugeTopChart3 = this.$echarts.init(document.getElementById('top3Gauge'),'macarons');
+       let gaugeTopChart4 = this.$echarts.init(document.getElementById('top4Gauge'),'macarons');
+       let gaugeTopChart5 = this.$echarts.init(document.getElementById('top5Gauge'),'macarons');
+       let gaugeLastChart1 = this.$echarts.init(document.getElementById('last1Gauge'),'macarons');
+       let gaugeLastChart2 = this.$echarts.init(document.getElementById('last2Gauge'),'macarons');
+        let gaugeLastChart3 = this.$echarts.init(document.getElementById('last3Gauge'),'macarons');
+        let gaugeLastChart4 = this.$echarts.init(document.getElementById('last4Gauge'),'macarons');
+        let gaugeLastChart5 = this.$echarts.init(document.getElementById('last5Gauge'),'macarons');
+        let gaugeTopOption1 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'TOP1'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'TOP1',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let  gaugeTopOption2 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'TOP2'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'TOP2',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeTopOption3 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'TOP3'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'TOP3',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeTopOption4 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'TOP4'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'TOP4',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeTopOption5 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'TOP5'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'TOP5',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeLessOption1 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'LAST1'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'LAST1',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeLessOption2 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'LAST2'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'LAST2',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeLessOption3 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'LAST3'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'LAST3',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeLessOption4 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'LAST4'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'LAST4',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        let gaugeLessOption5 = {
+          title : {
+            x : 'center',
+            y : 'bottom',
+            text : 'LAST5'
+          },
+          tooltip : {
+            formatter: "{a} <br/>{b} : {c}%"
+          },
+          series : [
+            {
+              name:'LAST5',
+              type:'gauge',
+              splitNumber: 10,       // 鍒嗗壊娈垫暟锛岄粯璁や负5
+              axisLine: {            // 鍧愭爣杞寸嚎
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: [[0.2, '#228b22'],[0.8, '#48b'],[1, '#ff4500']],
+                  width: 8
+                }
+              },
+              axisTick: {            // 鍧愭爣杞村皬鏍囪
+                splitNumber: 10,   // 姣忎唤split缁嗗垎澶氬皯娈�
+                length :12,        // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle鎺у埗绾挎潯鏍峰紡
+                  color: 'auto'
+                }
+              },
+              axisLabel: {           // 鍧愭爣杞存枃鏈爣绛撅紝璇﹁axis.axisLabel
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto'
+                }
+              },
+              splitLine: {           // 鍒嗛殧绾�
+                show: true,        // 榛樿鏄剧ず锛屽睘鎬how鎺у埗鏄剧ず涓庡惁
+                length :30,         // 灞炴�ength鎺у埗绾块暱
+                lineStyle: {       // 灞炴�ineStyle锛堣瑙乴ineStyle锛夋帶鍒剁嚎鏉℃牱寮�
+                  color: 'auto'
+                }
+              },
+              pointer : {
+                width : 5
+              },
+              title : {
+                show : false,
+                offsetCenter: [0, '-40%'],       // x, y锛屽崟浣峱x
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  fontWeight: 'bolder'
+                }
+              },
+              detail : {
+                formatter:'{value}%',
+                offsetCenter: [0, '60%'],
+                textStyle: {       // 鍏朵綑灞炴�ч粯璁や娇鐢ㄥ叏灞�鏂囨湰鏍峰紡锛岃瑙乀EXTSTYLE
+                  color: 'auto',
+                  fontWeight: 'bolder',
+                  fontSize:20
+                }
+              },
+              data:[{value: 0, name: '鍒╃敤鐜�'}]
+            }
+          ]
+        };
+        gaugeTopChart1.setOption(gaugeTopOption1);
+        gaugeTopChart2.setOption(gaugeTopOption2);
+        gaugeTopChart3.setOption(gaugeTopOption3);
+        gaugeTopChart4.setOption(gaugeTopOption4);
+        gaugeTopChart5.setOption(gaugeTopOption5);
+        gaugeLastChart1.setOption(gaugeLessOption1);
+        gaugeLastChart2.setOption(gaugeLessOption2);
+        gaugeLastChart3.setOption(gaugeLessOption3);
+        gaugeLastChart4.setOption(gaugeLessOption4);
+        gaugeLastChart5.setOption(gaugeLessOption5);
+        window.addEventListener('resize', function() {
+          gaugeTopChart1.resize()
+          gaugeTopChart2.resize()
+          gaugeTopChart3.resize()
+          gaugeTopChart4.resize()
+          gaugeTopChart5.resize()
+          gaugeLastChart1.resize()
+          gaugeLastChart2.resize()
+          gaugeLastChart3.resize()
+          gaugeLastChart4.resize()
+          gaugeLastChart5.resize()
+        })
+      }
+
+    }
+  }
+</script>
+
+<style scoped>
+  .div-inline{
+    flex: 1;
+  }
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue b/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue
new file mode 100644
index 0000000..87b3561
--- /dev/null
+++ b/src/views/mdc/base/modules/comparativeAnalysis/comparativeAnalysismain.vue
@@ -0,0 +1,599 @@
+<template>
+  <a-card :bordered="false" class="device_list">
+    <div class="com_box">
+    <!-- 鏌ヨ鍖哄煙 -->
+    <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="24">
+          <a-col :md="5" :sm="5">
+            <a-form-item label="鍚嶇О">
+              <a-input placeholder="杈撳叆璁惧鍚嶇О鏌ヨ" :readOnly="readOnly" v-model="queryParam.tierName"></a-input>
+            </a-form-item>
+          </a-col>
+          <!--<a-col :md="4" :sm="4">-->
+          <!--<a-form-model-item label="椹卞姩绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
+            <!--<j-dict-select-tag :disabled="true" :readOnly="disableSubmit" placeholder="璇烽�夋嫨椹卞姩绫诲瀷"-->
+                               <!--:triggerChange="true" dictCode="mdc_driveType"-->
+                               <!--v-model="model.driveType" allow-clear/>-->
+          <!--</a-form-model-item>-->
+        <!--</a-col>-->
+          <a-col :md="9" :sm="9" :xs="4">
+            <a-form-item label="鏃堕棿">
+              <a-range-picker @change="dateParamChange" v-model="dates"  format="YYYY-MM-DD"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="2" :sm="3" :xs="3">
+            <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+          </a-col>
+          <a-col :md="2" :sm="2" :xs="2">
+            <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button>
+          </a-col>
+        </a-row>
+      </a-form>
+    </div>
+    <!-- table鍖哄煙-begin -->
+    <div id="DeviceList">
+      <a-tabs :activeKey="activeKey" @change="tabChange" tabPosition="top">
+        <a-tab-pane key="1" tab="鍥惧舰" force-render>
+          <comparative-analysis-bar></comparative-analysis-bar>
+          <!--<log-list :dataList='normalList' ref="logList" :loadingequip='loadingstayus'></log-list>-->
+        </a-tab-pane>
+        <a-tab-pane key="2" tab="浠〃">
+          <comparative-analysis-gauge></comparative-analysis-gauge>
+          <!--<work-log-list :dataList='runList' ref="workLogList" :loadingrun="loadingrunStatus"></work-log-list>-->
+        </a-tab-pane>
+        <a-tab-pane key="3" tab="楗煎浘">
+          <conparative-analysis-pie></conparative-analysis-pie>
+          <!--<alarm-log-list :dataList='waringList' ref="alarmLogList" :loadingwarn="loadingwarnStatus"></alarm-log-list>-->
+        </a-tab-pane>
+      </a-tabs>
+    </div>
+    <!-- table鍖哄煙-end -->
+    </div>
+  </a-card>
+</template>
+
+<script>
+  import moment from 'moment'
+  import $ from 'jquery'
+  import JDictSelectTag from '@/components/dict/JDictSelectTag'
+  import JDate from '../../../../../components/jeecg/JDate'
+  import {
+    requestPut,
+    deleteAction,
+    getAction
+  } from '@/api/manage'
+  import comparativeAnalysisBar from './comparativeAnalysisBar'
+  import comparativeAnalysisGauge from'./comparativeAnalysisGauge'
+  import conparativeAnalysisPie from './conparativeAnalysisPie'
+  import '@/components/table2excel/table2excel'
+  import {
+    JeecgListMixin
+  } from '@/mixins/JeecgListMixin'
+  import JInput from '@/components/jeecg/JInput'
+  import JEllipsis from '@/components/jeecg/JEllipsis'
+  import Tooltip from 'ant-design-vue/es/tooltip'
+  import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
+  export default {
+    name: 'comparativeAnalysismain',
+    mixins: [JeecgListMixin],
+    components: {
+      Tooltip,
+      comparativeAnalysisBar,
+      comparativeAnalysisGauge,
+      conparativeAnalysisPie,
+      JDictSelectTag,
+      JInput,
+      JDate,
+      JEllipsis
+    },
+    props: {  nodeTree: '', Type:'',nodePeople: '' },
+    data() {
+      return {
+        activeKey: '1',
+        typeTree:"",
+        typeParent:1,
+        typeEquipment:1,
+        dates: [],
+        xianshi:"",
+        readOnly:true,
+        queryParam: {},
+        queryParams:{},
+        queryParamEquip:{},
+        queryParamPeople:{},
+        dataStartsoucre:[],
+        columns: [
+          {
+            title: '璁惧缂栧彿',
+            align: 'center',
+            dataIndex: 'equipmentId'
+          },
+          {
+            title: '璁惧鍚嶇О',
+            align: 'center',
+            dataIndex: 'equipmentName',
+            defaultSortOrder:'descend',
+            sorter: (a, b) => {return a.equipmentName>b.equipmentName?1:-1}
+          },
+          {
+            title: '缁翠慨绫诲瀷',
+            align: 'center',
+            dataIndex: 'mdcRepairTypeDictText'
+          },
+          {
+            title: '寮�濮嬫椂闂�',
+            align: 'center',
+            dataIndex: 'startTime',
+            // scopedSlots:{customRender:'startTime'},
+            // customRender:(text,row,index) => {
+            //   return moment(text).format("YYYY-MM-DD HH:mm:ss")
+            // }
+          },
+          {
+            title: '缁撴潫鏃堕棿',
+            align: 'center',
+            dataIndex: 'endTime'
+          },
+          {
+            title: '鎿嶄綔',
+            dataIndex: 'action',
+            scopedSlots: {customRender: 'action'},
+            align: "center",
+            width: 150
+          }
+        ],
+        url: {
+          list: '/mdc/mdcEquipmentRepair/pageList',
+          deleteBatch: '/mdc/mdcEquipmentRepair/delete',
+          getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
+          getBaseTree: '/mdc/mdcEquipment/queryTreeListByProduction',
+        }
+      }
+    },
+    watch:{
+      Type(valmath){
+        this.dataList = [];
+        this.queryParams.typeTree = valmath
+        // console.log(this.queryParams.typeTree)
+      },
+      nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢
+        if (JSON.stringify(val) != '{}') {
+          if (val.equipmentId) {
+            this.$set(this.queryParam, 'tierName', val.title)
+            this.queryParamEquip.parentId =  ""
+            this.queryParams.equipmentId = val.equipmentId
+            this.queryParamEquip.equipmentId = val.equipmentId
+          } else {
+            this.$set(this.queryParam, 'tierName', val.title)
+            this.queryParamEquip.parentId = val.key
+            this.queryParams.equipmentId = ''
+          }
+          this.searchQuery()
+        }
+      },
+      nodePeople(val){
+        if (JSON.stringify(val) != '{}') {
+          if (val.equipmentId) {
+            this.$set(this.queryParam, 'tierName', val.title)
+            this.queryParamEquip.parentId =  ""
+            this.queryParams.equipmentId = val.equipmentId
+            this.queryParamEquip.equipmentId = val.equipmentId
+          } else {
+            this.$set(this.queryParam, 'tierName', val.title)
+            this.queryParamPeople.parentId = val.key
+            this.queryParams.equipmentId = ''
+          }
+          this.searchQuery()
+        }
+      }
+    },
+    methods: {
+      initEquipmentNode(id) {
+        let _this = this
+        getAction(this.url.getBaseTree).then((res) => {
+          if (res.success) {
+            // console.log(res.result[0].entity.tierName)
+            _this.$set(this.queryParam, 'tierName', res.result[0].title)
+            _this.$set(this.queryParams, 'parentId', res.result[0].key)
+            // _this.queryStatistical()
+          } else {
+            this.$message.warn(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+          this.cardLoading = false
+        })
+        // getAction(this.url.getEquipmentByPid, { pid: id }).then((res) => {
+        //   if (res.success) {
+        //     if (res.result) {
+        //       _this.$set(this.queryParam, 'tierName', res.result.tierName)
+        //       _this.$set(this.queryParam, 'equipmentId', res.result.equipmentId)
+        //       // _this.quip = res.result
+        //       _this.searchQuery()
+        //     } else {
+        //       _this.$message.warning('璇烽厤缃澶囷紒')
+        //     }
+        //   }
+        // })
+      },
+      tabChange(val) {
+        this.activeKey = val
+      },
+      dateParamChange(v1, v2) {
+        // console.log(v1,v2)
+        this.queryParam.startTime = v2[0]
+        this.queryParam.endTime = v2[1]
+        // console.log(v2[0],v2[1])
+      },
+      onChange(value, dateString) {
+        // console.log('Selected Time: ', value);
+        // console.log('Formatted Selected Time: ', dateString);
+      },
+      onOk(value) {
+        console.log('onOk: ', value);
+      },
+      searchReset() {
+        if(this.queryParams.typeTree == "1"){
+          this.typeTree = this.queryParams.typeTree
+          this.typeParent =  this.queryParams.parentId
+          this.typeEquipment = this.queryParams.equipmentId
+          this.queryParams = {}
+          this.queryParam = {}
+          this.dates = []
+          this.queryParams.typeTree = this.typeTree
+          this.queryParams.parentId = this.typeParent
+          if(this.queryParams.parentId !=  ""){
+            this.queryParams.equipmentId =  ""
+          }else{
+            if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){
+              this.queryParams.equipmentId =  this.typeEquipment
+            }else{
+              this.queryParams.equipmentId = this.queryParamEquip.equipmentId
+            }
+
+          }
+
+          this.ipagination.current = 1
+          this.ResetloadData();
+        }else{
+          this.typeTree = this.queryParams.typeTree
+          this.typeParent =  this.queryParams.parentId
+          // this.typeEquipment = this.queryParams.equipmentId
+          this.queryParams = {}
+          this.queryParam = {}
+          this.dates = []
+          this.queryParams.typeTree = this.typeTree
+          this.queryParams.parentId = this.typeParent
+          // this.queryParams.equipmentId =  this.typeEquipment
+          this.ipagination.current = 1
+          this.ResetloadData();
+        }
+
+      },
+      ResetloadData() {
+        if(!this.url.list){
+          this.$message.error("璇疯缃畊rl.list灞炴��!")
+          return
+        }
+        //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+        var params = this.getQueryParams();//鏌ヨ鏉′欢
+        if(!params){
+          return false;
+        }
+        params.typeTree = this.queryParams.typeTree
+        params.parentId = this.queryParams.parentId
+        params.equipmentId = this.queryParams.equipmentId
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            this.dataSource = res.result.records||res.result;
+            // this.initDeviceType(this.dataSource)
+            //update-begin---author:zhangyafei    Date:20201118  for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+            // this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      handleEdit: function (record) {
+        this.$refs.modalFormedit.edit(record);
+        this.$refs.modalFormedit.title = "缂栬緫";
+        this.$refs.modalFormedit.disableSubmit = false;
+      },
+      handleTableChange(pagination, filters, sorter) {
+        this.dataSource = []
+        //鍒嗛〉銆佹帓搴忋�佺瓫閫夊彉鍖栨椂瑙﹀彂
+        //TODO 绛涢��
+        // console.log(pagination)
+        if (Object.keys(sorter).length > 0) {
+          this.isorter.column = sorter.field;
+          this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
+        }
+        this.ipagination = pagination;
+        //鑾峰彇鏌ヨ鏉′欢
+        let sqp = {}
+        if(this.superQueryParams){
+          sqp['superQueryParams']=encodeURI(this.superQueryParams)
+          sqp['superQueryMatchType'] = this.superQueryMatchType
+        }
+        var param = Object.assign(sqp, this.queryParams, this.isorter ,this.filters);
+        param.pageNo = this.ipagination.current;
+        param.pageSize = this.ipagination.pageSize;
+        param.field = this.getQueryField();
+        param.parentId = this.queryParams.parentId;
+        param.equipmentId = this.queryParams.equipmentId;
+        param.startTime = this.queryParam.startTime;
+        param.endTime =  this.queryParam.endTime;
+        getAction(this.url.list,param).then((res) => {
+          if(res.success){
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      searchQueryEdit(){
+        if(this.queryParams.typeTree == "1"){
+          this.queryParams.parentId =  this.queryParamEquip.parentId
+        }else{
+          this.queryParams.parentId = this.queryParamPeople.parentId
+          this.queryParams.equipmentIds = ""
+        }
+        this.dataSource = [];
+        //鑾峰彇鏌ヨ鏉′欢
+        let sqp = {}
+        if(this.superQueryParams){
+          sqp['superQueryParams']=encodeURI(this.superQueryParams)
+          sqp['superQueryMatchType'] = this.superQueryMatchType
+        }
+        var param = Object.assign(sqp, this.queryParams, this.isorter ,this.filters);
+        param.pageNo = this.ipagination.current;
+        param.pageSize = this.ipagination.pageSize;
+        param.field = this.getQueryField();
+        param.parentId = this.queryParams.parentId;
+        param.equipmentId = this.queryParams.equipmentId;
+        param.startTime = this.queryParam.startTime;
+        param.endTime =  this.queryParam.endTime;
+        getAction(this.url.list,param).then((res) => {
+          if(res.success){
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      searchQuery(){
+        if(this.queryParams.typeTree == "1"){
+          this.queryParams.parentId =  this.queryParamEquip.parentId
+          // this.queryParams.equipmentId =  this.queryParamEquip.equipmentId
+
+        }else{
+          this.queryParams.parentId = this.queryParamPeople.parentId
+
+          // this.queryParams.equipmentId = ""
+        }
+        this.dataSource = [];
+        //鑾峰彇鏌ヨ鏉′欢
+        let sqp = {}
+        if(this.superQueryParams){
+          sqp['superQueryParams']=encodeURI(this.superQueryParams)
+          sqp['superQueryMatchType'] = this.superQueryMatchType
+        }
+        var param = Object.assign(sqp, this.queryParams, this.isorter ,this.filters);
+        param.pageNo = 1;
+        param.pageSize = this.ipagination.pageSize;
+        param.field = this.getQueryField();
+        param.parentId = this.queryParams.parentId;
+        param.equipmentId = this.queryParams.equipmentId;
+        param.startTime = this.queryParam.startTime;
+        param.endTime =  this.queryParam.endTime;
+        // console.log(param);
+        getAction(this.url.list,param).then((res) => {
+          if(res.success){
+            this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      loadData(arg) {
+        if(!this.url.list){
+          this.$message.error("璇疯缃畊rl.list灞炴��!")
+          return
+        }
+        //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+        if (arg === 1) {
+          this.ipagination.current = 1;
+        }
+        var params = this.getQueryParams();//鏌ヨ鏉′欢
+        if(!params){
+          return false;
+        }
+        this.loading = true;
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            this.dataSource = res.result.records||res.result;
+            // this.initDeviceType(this.dataSource)
+            //update-begin---author:zhangyafei    Date:20201118  for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+            // this.dataSource = res.result.records||res.result;
+            if(res.result.total)
+            {
+              this.ipagination.total = res.result.total;
+            }else{
+              this.ipagination.total = 0;
+            }
+            //update-end---author:zhangyafei    Date:20201118  for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+          }else{
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+      modalFormOk(val) {
+        // 鏂板/淇敼 鎴愬姛鏃讹紝閲嶈浇鍒楄〃
+        this.searchQueryEdit();
+        // this.$emit('openBasetree','')
+        this.selectedRowKeys = []
+      },
+      handleDelete: function (id) {
+        if(!this.url.deleteBatch){
+          this.$message.error("璇疯缃畊rl.delete灞炴��!")
+          return
+        }
+        var that = this;
+        deleteAction(that.url.deleteBatch, {id: id}).then((res) => {
+          if (res.success) {
+            //閲嶆柊璁$畻鍒嗛〉闂
+            that.reCalculatePage(1)
+            that.$message.success(res.message);
+            that.searchQuery();
+          } else {
+            that.$message.warning(res.message);
+          }
+        });
+      },
+      handleAdd() {
+        this.$refs.modalForm.add(this.node)
+        this.$refs.modalForm.title = '鏂板'
+        this.$refs.modalForm.disableSubmit = false
+      },
+      handleAddXIU() {
+        this.$refs.modalFormadd.add()
+        this.$refs.modalFormadd.title = '鏂板'
+        this.$refs.modalFormadd.disableSubmit = false
+      },
+      pQuery(parentId) {
+        this.queryParam.parentId = parentId[0]
+        if(this.selectedRowKeys.length >= 1) {
+          this.selectedRowKeys.length = 0
+        }
+        this.loadData()
+      },
+      onSelectChange(selectedRowKeys) {
+        this.selectedRowKeys = selectedRowKeys
+      },
+      initEquipment(id) {
+        let _this = this
+        getAction(this.url.getEquipmentByPid, { pid: id }).then((res) => {
+          if (res.success) {
+            if (res.result) {
+              _this.$set(this.queryParams, 'equipmentName', res.result.equipmentName)
+              _this.$set(this.queryParams, 'equipmentId', res.result.equipmentId)
+              _this.equipment = res.result
+              _this.searchQuery()
+            } else {
+              _this.$message.warning('璇烽厤缃澶囷紒')
+            }
+          }
+        })
+      },
+      exportExcel() {
+        $("#DeviceList").table2excel({
+          exclude: ".noExl",
+          name: "Excel Document Name",
+          filename: "璁惧缁翠慨璇︽儏",
+          exclude_img: true,
+          fileext: ".xls",
+          exclude_links: true,
+          exclude_inputs: true
+        });
+      },
+    },
+    created() {
+      this.dates = [moment().subtract('days', 7), moment().subtract('days', 0)]
+      this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD')
+      this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD')
+      this.queryParam.typeTree = "1";
+      this.initEquipmentNode()
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+  /*@import '~@assets/less/common.less';*/
+
+  @media screen and (min-width: 1920px){
+    .device_list{
+      height: 811px!important;
+      overflow: scroll;
+    }
+  }
+  @media screen and (min-width: 1680px) and (max-width: 1920px){
+    .device_list{
+      height: 811px!important;
+      overflow: scroll;
+    }
+  }
+  @media screen and (min-width: 1400px) and (max-width: 1680px){
+    .device_list{
+      height: 663px!important;
+      overflow: scroll;
+    }
+  }
+  @media screen and (min-width: 1280px) and (max-width: 1400px){
+    .device_list{
+      height: 564px!important;
+      overflow: scroll;
+    }
+  }
+  @media screen and (max-width: 1280px){
+    .device_list{
+      height: 564px!important;
+      overflow: scroll;
+    }
+  }
+  /*.device_list{*/
+    /*display: flex;*/
+  /*}*/
+  /*.device_list .table-page-search-wrapper{*/
+    /**/
+  /*}*/
+  /deep/ .ant-card-body{
+    height: 100%!important;
+  }
+   .device_list .com_box{
+    display: flex!important;
+    height: 100%!important;
+    flex-direction: column!important;
+  }
+  .device_list .table-page-search-wrapper{
+    height: 6%!important;
+  }
+  .device_list #DeviceList{
+   height: 90%!important;
+  }
+</style>
diff --git a/src/views/mdc/base/modules/comparativeAnalysis/conparativeAnalysisPie.vue b/src/views/mdc/base/modules/comparativeAnalysis/conparativeAnalysisPie.vue
new file mode 100644
index 0000000..bec9df9
--- /dev/null
+++ b/src/views/mdc/base/modules/comparativeAnalysis/conparativeAnalysisPie.vue
@@ -0,0 +1,121 @@
+<template>
+  <div class="comparative_pie" style="width: 100%;height: 600px;display: flex;overflow: scroll">
+    <div id="compAnalPie1" style="flex: 1;"></div>
+    <div id="compAnalPie2" style="flex: 1;"></div>
+  </div>
+</template>
+
+<script>
+  import * as echarts from 'echarts'
+  export default {
+    name: 'conparativeAnalysisPie',
+    propa:{},
+    data(){
+      return{
+        closeRate:0,
+        openRate:0,
+        usedRate:0,
+        waitRate:0,
+      }
+    },
+    created(){
+
+    },
+    mounted() {
+      this.drawTu()
+    },
+    methods:{
+      drawTu(){
+       let pieCompChart1 = this.$echarts.init(document.getElementById('compAnalPie1'),'macarons');
+       let pieCompChart2 = this.$echarts.init(document.getElementById('compAnalPie2'),'macarons');
+       let pieCompChartOption1 = {
+          title: {
+            x: 'center',
+            subtext: '寮�鏈烘晥鐜�'
+          },
+          tooltip: {
+            trigger: 'item',
+            formatter: "{a} <br/>{b} : {c} ({d}%)"
+          },
+          legend: {
+            orient: 'vertical',
+            x: 'left',
+            y: 'bottom',
+            data: ['寮�鏈虹巼', '鍏虫満鐜�']
+          },
+          calculable: true,
+          series: [{
+            name: '寮�鏈烘晥鐜�',
+            type: 'pie',
+            radius: '70%',
+            center: ['55%', '55%'],
+            itemStyle: {
+              normal: {
+                color: function (params) {
+                  var colorList = ['#4169E1', '#A8A8A8'];
+                  return colorList[params.dataIndex]
+                },
+                label: {
+                  show: true,
+                  position: 'top',
+                  formatter: '{b}\n{c}'
+                }
+              }
+            },
+            data: [{value: 0, name: '寮�鏈虹巼'},
+              {value: 0, name: '鍏虫満鐜�'}]
+          }]
+        };
+       let pieCompChartOption2 = {
+          title: {
+            x: 'center',
+            subtext: '杩愯鏁堢巼'
+          },
+          tooltip: {
+            trigger: 'item',
+            formatter: "{a} <br/>{b} : {c} ({d}%)"
+          },
+          legend: {
+            orient: 'vertical',
+            x: 'left',
+            y: 'bottom',
+            data: ['鍔犲伐鐜�', '寰呮満鐜�', '鍏虫満鐜�']
+          },
+          calculable: true,
+          series: [{
+            name: '杩愯鏁堢巼',
+            type: 'pie',
+            radius: '70%',
+            center: ['55%', '55%'],
+            itemStyle: {
+              normal: {
+                color: function (params) {
+                  var colorList = ['#00ee00', '#FCCE10', '#A8A8A8'];
+                  return colorList[params.dataIndex]
+                },
+                label: {
+                  show: true,
+                  position: 'top',
+                  formatter: '{b}\n{c}'
+                }
+              }
+            },
+            data: [{value: 0, name: '鍔犲伐鐜�'},
+              {value: 0, name: '寰呮満鐜�'},
+              {value: 0, name: '鍏虫満鐜�'}]
+          }]
+        };
+        pieCompChart1.setOption(pieCompChartOption1);
+        pieCompChart2.setOption(pieCompChartOption2);
+        window.addEventListener('resize', function() {
+          pieCompChart1.resize()
+          pieCompChart2.resize()
+        })
+      }
+    }
+  }
+</script>
+
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue
index dfccf0e..7c32682 100644
--- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue
+++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue
@@ -323,7 +323,7 @@
         exclude_img: true,
         fileext: ".xls",
         exclude_links: true,
-        exclude_inputs: true
+        exclude_inputs: false
       });
     },
     showIdentifying() {
diff --git a/src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue b/src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue
index 822fc8c..09dea20 100644
--- a/src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue
+++ b/src/views/mdc/base/modules/mdcPassRate/mdcPassRateEdit.vue
@@ -33,7 +33,7 @@
         </a-row>
         <a-row :gutter="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20" :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
         </a-row>
       </a-form>
@@ -242,27 +242,55 @@
           if (!err) {
             that.confirmLoading = true
             let formData = Object.assign(this.model, values)
-            let obj
-            if (!this.model.id) {
-              obj = postAction(this.url.add, formData)
-            } else {
-              obj = requestPut(this.url.edit, formData, {
-                id: this.model.id
+            let stat = formData.processQuantity
+            let end = formData.unqualifiedQuantity
+            if(end>stat){
+              that.$message.warning("涓嶅悎鏍兼暟閲忓繀椤诲皬浜庣瓑浜庡姞宸ユ暟閲�");
+              that.confirmLoading = false
+            }else{
+              let obj
+              if (!this.model.id) {
+                obj = postAction(this.url.add, formData)
+              } else {
+                obj = requestPut(this.url.edit, formData, {
+                  id: this.model.id
+                })
+              }
+              obj.then((res) => {
+                if (res.success) {
+                  that.$message.success("娣诲姞鎴愬姛")
+                  // that.$message.success(res.message)
+                  that.$emit('ok', res.result)
+                } else {
+                  that.$message.warning(res.message)
+                }
+              }).finally(() => {
+                that.confirmLoading = false
+                that.close()
               })
             }
-            obj.then((res) => {
-              if (res.success) {
-                that.$message.success("淇敼鎴愬姛")
-                // that.$message.success(res.message)
-                that.$emit('ok', res.result)
-              } else {
-                that.$message.warning(res.message)
-              }
-            }).finally(() => {
-              that.confirmLoading = false
-              that.close()
-            })
+            // let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm:ss');
+            // let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm:ss');
+            // let startOne = start.replace(/:/g,'');
+            // let endOne = end.replace(/:/g,'');
+            // var data = new Date();
+            // let stertDate = moment(data).format("YYYY-MM-DD HH:mm:ss");
+            // let dataStart = stertDate.replace(/:/g,'');
+            // if(startOne < dataStart){
+            //   that.$message.warning("寮�濮嬫椂闂翠笉鑳藉皬浜庡綋鍓嶆椂闂�")
+            //   that.confirmLoading = false
+            // }else{
+            //   if(startOne>=endOne){
+            //     that.$message.warning("缁撴潫鏃堕棿涓嶈兘灏忎簬寮�濮嬫椂闂�");
+            //     // console.log(this.model)
+            //     // this.endTime = ''
+            //     that.confirmLoading = false
+            //   }else{
+
           }
+          // }
+
+          // }
         })
       },
       handleCancel() {
diff --git a/src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue b/src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue
index 352001c..70b2c9d 100644
--- a/src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue
+++ b/src/views/mdc/base/modules/mdcPassRate/mdcPassRateModal.vue
@@ -33,7 +33,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea   v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�" :maxLength	="20" ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue b/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue
index 604401a..6ea783e 100644
--- a/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue
+++ b/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModal.vue
@@ -57,7 +57,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong1" :wrapperCol="wrapperColLong1">
-            <a-textarea   v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue b/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue
index 657c7d6..837aebc 100644
--- a/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue
+++ b/src/views/mdc/base/modules/mdcProcessQuantity/mdcProcessQuantityModelEdit.vue
@@ -60,7 +60,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20"  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
diff --git a/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue b/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue
index 884826a..d595b85 100644
--- a/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue
+++ b/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationEdit.vue
@@ -44,7 +44,7 @@
         </a-row>
         <a-row :gutter="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea  :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20" :disabled="disableSubmit"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
         </a-row>
       </a-form>
diff --git a/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue b/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue
index 9dfbc82..5473197 100644
--- a/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue
+++ b/src/views/mdc/base/modules/mdcStandardProcessDuration/MdcStandardProcessDurationModal.vue
@@ -38,7 +38,7 @@
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea   v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>

--
Gitblit v1.9.3