Kaynağa Gözat

实验室看板

cyy 3 yıl önce
ebeveyn
işleme
4c13aee87b
30 değiştirilmiş dosya ile 3877 ekleme ve 1512 silme
  1. 7 0
      .vscode/settings.json
  2. 108 35
      src/views/statistics/index.vue
  3. 0 219
      src/views/statistics/index_old.vue
  4. 237 0
      src/views/statistics/item/s10waiBuNengLi.vue
  5. 180 0
      src/views/statistics/item/s11biaoZhunWu.vue
  6. 152 0
      src/views/statistics/item/s12fengXian.vue
  7. 157 92
      src/views/statistics/item/s1jianCe.vue
  8. 308 187
      src/views/statistics/item/s1zhiLiangMuBiao.vue
  9. 153 90
      src/views/statistics/item/s2manYiDu.vue
  10. 151 82
      src/views/statistics/item/s2manYiDuPro.vue
  11. 148 68
      src/views/statistics/item/s3tousu.vue
  12. 191 80
      src/views/statistics/item/s4renYuanPeiXun.vue
  13. 267 155
      src/views/statistics/item/s5renYuanJianDu.vue
  14. 214 192
      src/views/statistics/item/s7sheBeiJiaoZhun.vue
  15. 152 69
      src/views/statistics/item/s8sheBeiHeCha.vue
  16. 142 0
      src/views/statistics/item/s9neiBuZhiLiang.vue
  17. 282 42
      src/views/statistics/js/selectDB.js
  18. 116 0
      src/views/statistics/properties/s10waiBuNengLiPro.vue
  19. 114 0
      src/views/statistics/properties/s11biaoZhunWuPro.vue
  20. 122 0
      src/views/statistics/properties/s12fengXianPro.vue
  21. 9 2
      src/views/statistics/properties/s1jianCePro.vue
  22. 46 31
      src/views/statistics/properties/s1zhiLiangMuBiaoPro.vue
  23. 18 43
      src/views/statistics/properties/s2manYiDuPro.vue
  24. 14 4
      src/views/statistics/properties/s3tousuPro.vue
  25. 18 2
      src/views/statistics/properties/s4renYuanPeiXunPro.vue
  26. 18 2
      src/views/statistics/properties/s5renYuanJianDuPro.vue
  27. 16 3
      src/views/statistics/properties/s7sheBeiJiaoZhunPro.vue
  28. 15 4
      src/views/statistics/properties/s8sheBeiHeChaPro.vue
  29. 119 0
      src/views/statistics/properties/s9neiBuZhiLiangPro.vue
  30. 403 110
      src/views/statistics/sendDatas.js

+ 7 - 0
.vscode/settings.json

@@ -0,0 +1,7 @@
+{
+    "workbench.colorCustomizations": {
+        "activityBar.background": "#58102D",
+        "titleBar.activeBackground": "#7C173F",
+        "titleBar.activeForeground": "#FEFCFD"
+    }
+}

+ 108 - 35
src/views/statistics/index.vue

@@ -2,7 +2,7 @@
   <el-scrollbar ref="scrollDiv" :style="{height:height}">
   <div class="statistics">
      <div class="editDate">
-       <div class="block">
+       <div class="block" style="display:none">
         <span class="demonstration">开始:</span>
         <el-date-picker v-model="BeginDate" type="year" size="mini" value-format="yyyy" format="yyyy年"  style="width: 96px;"
           :clearable="false" @change="checkYear(BeginDate,'begin')" placeholder="选择日期">
@@ -10,7 +10,7 @@
       </div>
 
       <div class="block">
-        <span class="demonstration">结束:</span>
+        <span class="demonstration">查询年度:</span>
         <el-date-picker v-model="endDate" type="year" size="mini" value-format="yyyy" format="yyyy年"  :clearable="false" style="width: 96px;"
           @change="checkYear(endDate,'end')" placeholder="选择日期">
         </el-date-picker>
@@ -26,33 +26,42 @@
 
       <div class="componentsData" v-if="relOf">
         <s1zhiLiangMuBiao :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[1]"/>
-        <s1zhiLiang1 :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[2]"    />
-        <s1zhiLiang2 :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[3]"   />
-        <s1zhiLiang3 :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[4]"  />
-        
+        v-if="showAll || showComponents[1]" :data = "getS1renwu()"/>
         <s1jianCe :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[5]" :data = "getS1jianCe()" />
-         
+        v-if="showAll || showComponents[5]" :data = "getS2jianCe()" />
         <s3tousu :width="static=='row' ? '20%': '100%'"
         v-if="showAll || showComponents[6]" :data = "getS3tousu()"/>
         <s2manYiDu :width="static=='row' ? '20%': '100%'"
         v-if="showAll || showComponents[7]"  :data = "getS2manYiDu()"/>
+        <!-- <s1zhiLiang1 :width="static=='row' ? '20%': '100%'"
+        v-if="showAll || showComponents[2]"    />
+        <s1zhiLiang2 :width="static=='row' ? '20%': '100%'"
+        v-if="showAll || showComponents[3]"   />
+        <s1zhiLiang3 :width="static=='row' ? '20%': '100%'"
+        v-if="showAll || showComponents[4]"  /> -->
+
+        
         <s4renYuanPeiXun :width="static=='row' ? '20%': '100%'"
         v-if="showAll || showComponents[8]" :data = "getS4renYuanPeiXun()"/>
+
+        <!-- <none :width="static=='row' ? '20%': '100%'"
+        /> -->
+        <!-- <s6sheBeiWeiHu :width="static=='row' ? '20%': '100%'"
+        v-if="showAll || showComponents[10]" :data = "getS6sheBeiWeiHu()"/> -->
+        <s7sheBeiJiaoZhun :width="'50%'"
+        v-if="showAll || showComponents[12]" :data = "getJiaoYanObjNum()"/>
+        <s8sheBeiHeCha :width="'50%'"
+        v-if="showAll || showComponents[11]" :data = "gethechaObjNum()"/>
+        <s10waiBuNengLi :width="'50%'"
+        v-if="showAll || showComponents[14]" :data = "getnengtliObjNum()"/>
+        <s11biaoZhunWu :width="'50%'"
+        v-if="showAll || showComponents[15]" :data = "getbiaozhunObjNum()"/>
         <s5renYuanJianDu :width="static=='row' ? '20%': '100%'"
         v-if="showAll || showComponents[9]" :data = "getS5renYuanJianDu()"/>
-        <none :width="static=='row' ? '20%': '100%'"
-        />
-        <s6sheBeiWeiHu :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[10]" :data = "getS6sheBeiWeiHu()"/>
-        <s8sheBeiHeCha :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[11]" :data = "getS8sheBeiHeCha()"/>
-        <s7sheBeiJiaoZhun :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[12]" :data = "getS7sheBeiJiaoZhun()"/>
+        <s9neiBuZhiLiang :width="static=='row' ? '20%': '100%'"
+        v-if="showAll || showComponents[13]" :data = "getS9neiBuZhiLiang()"/>
+        <s12fengXian :width="static=='row' ? '20%': '100%'"
+        v-if="showAll || showComponents[13]" :data = "getS12fengXian()"/>
      </div>
 
 
@@ -75,9 +84,14 @@
   import s6sheBeiWeiHu from './item/s6sheBeiWeiHu.vue'
   import s7sheBeiJiaoZhun from './item/s7sheBeiJiaoZhun.vue'
   import s8sheBeiHeCha from './item/s8sheBeiHeCha.vue'
+  import s9neiBuZhiLiang from './item/s9neiBuZhiLiang.vue'
+  import s10waiBuNengLi from './item/s10waiBuNengLi.vue'
+  import s11biaoZhunWu from './item/s11biaoZhunWu.vue'
+  import s12fengXian from './item/s12fengXian.vue'
+
   import none from './item/none.vue'
 
-  import { DBData ,getConfig} from './js/selectDB.js'
+  import { DBData ,getConfig,getJiaoYanObj, gethechaObj, getnengliObj, getbiaozhunObj} from './js/selectDB.js'
   import sendDatas from './sendDatas.js'
   import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
   export default {
@@ -94,7 +108,11 @@
       s5renYuanJianDu,
       s6sheBeiWeiHu,
       s7sheBeiJiaoZhun,
-      s8sheBeiHeCha
+      s8sheBeiHeCha,
+      s9neiBuZhiLiang,
+      s10waiBuNengLi,
+      s11biaoZhunWu,
+      s12fengXian
     },
     props:{
     shows:{ //传入的内容显示序号
@@ -117,6 +135,8 @@
       if (!this.BeginDate && !this.endDate) {
         this.BeginDate = this.getDate(1) + ''
         this.endDate = this.getDate(0) + ''
+        this.dataScope.push(this.BeginDate)
+        this.dataScope.push(this.endDate)
       }
       this.getConfigData() //获取统计的配置
     },
@@ -125,13 +145,18 @@
         height:(window.screen.height-200)+"px",
         BeginDate: '',
         endDate: '',
+        jiaoyanObj:[],
+        hechaObj:[],
+        nengliObj:[],
+        biaozhunObj:[],
         relData: {},
         relOf: false,
         selectEnd: '',
         selectBeg: '',
         showAll:true,
         timer: '',
-        showComponents:{}//显示全部统计子组件 , 若有新增,往后累计。 供动态表单进行查阅使用。
+        showComponents:{},//显示全部统计子组件 , 若有新增,往后累计。 供动态表单进行查阅使用。
+        dataScope: []
       }
     },
      beforeDestroy() {
@@ -149,21 +174,53 @@
       getConfigData() {
         repostCurd('sql', getConfig()).then(response => {
           this.config = response.variables.data //结果一定存在第0个,因为只有一条数据
-          this.getData(this.BeginDate, this.endDate, true)
+          this.getJiaoYanObjData(this.endDate)
+
+        })
+      },
+      getJiaoYanObjData(end) {
+        repostCurd('sql', getJiaoYanObj(end)).then(response => {
+          this.jiaoyanObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          this.gethechaObjData(this.endDate)
+        })
+      },
+      gethechaObjData(end) {
+        repostCurd('sql', gethechaObj(end)).then(response => {
+          this.hechaObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          this.getnengliObjData(this.endDate)
+        })
+      },
+      getnengliObjData(end) {
+        repostCurd('sql', getnengliObj(end)).then(response => {
+          this.nengliObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          this.getbiaozhunObjData(this.endDate)
+        })
+      },
+      getbiaozhunObjData(end) {
+        repostCurd('sql', getbiaozhunObj(end)).then(response => {
+          this.biaozhunObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          console.log(this.biaozhunObj,'8888')
+          this.getData(this.BeginDate, this.endDate, true, this.dataScope)
         })
       },
       /* 通过拼接的sql进行查询全部数据*/
-      getData(beg, end, of) {
-        repostCurd('sql', DBData(beg, end)).then(response => {
+      getData(beg, end, of, scope) {
+        repostCurd('sql', DBData(beg, end, scope)).then(response => {
           this.relData = response.variables.data[0] //结果一定存在第0个,因为只有一条数据
           this.relOf = of
+          console.log(beg, end, of, response,'getdata')
         })
       },
       /* 查询全部*/
       selectAll() {
         /* 上次查询时间不等于当次查询时间,    开始时间不能等于结束时间, 则开始查询。*/
-        if ((this.selectEnd != this.endDate || this.selectBeg != this.BeginDate) && this.endDate != this.BeginDate) {
-          this.getData(this.BeginDate, this.endDate, false)
+        if (this.selectEnd != this.endDate) {
+        // if ((this.selectEnd != this.endDate || this.selectBeg != this.BeginDate) && this.endDate != this.BeginDate && this.endDate > this.BeginDate) {
+          this.getData(this.BeginDate, this.endDate, false, this.dataScope)
           this.selectEnd = this.endDate
           this.selectBeg = this.BeginDate
           /* 延迟刷新*/
@@ -173,16 +230,32 @@
               clearInterval(this.timer)
             }
           }, 100);
-        } else if (this.endDate == this.BeginDate) {
-          this.$message({
-            showClose: true,
-            message: '年份相等无法进行查询对比',
-            type: 'warning'
-          });
-        }
+        } 
+        // else if (this.endDate == this.BeginDate) {
+        //   this.$message({
+        //     showClose: true,
+        //     message: '年份相等无法进行查询对比',
+        //     type: 'warning'
+        //   });
+        // } else if(this.endDate < this.BeginDate){
+        //   this.$message({
+        //     showClose: true,
+        //     message: '结束时间不得小于开始时间',
+        //     type: 'warning'
+        //   });
+        // }
       },
       /* 年份不得大于当前年份*/
       checkYear(year, data) {
+        let that = this
+        that.dataScope.length = 0
+        if(that.BeginDate != '' && that.endDate != ''){
+          let poor = Number(that.endDate) - Number(that.BeginDate)
+          for (let i = 0; i <= poor; i++) {
+            let element = Number(that.BeginDate) + i;
+            that.dataScope.push(element+'')
+          }
+        }
         if (Number(year) > Number(this.getDate(0))) {
           data == 'end' ?
             this.endDate = this.getDate(0) + '' :

+ 0 - 219
src/views/statistics/index_old.vue

@@ -1,219 +0,0 @@
-<template>
-  <el-scrollbar ref="scrollDiv" :style="{height:height}">
-  <div class="statistics">
-     <div class="editDate">
-       <div class="block">
-        <span class="demonstration">开始:</span>
-        <el-date-picker v-model="BeginDate" type="year" size="mini" value-format="yyyy" format="yyyy年"  style="width: 96px;"
-          :clearable="false" @change="checkYear(BeginDate,'begin')" placeholder="选择日期">
-        </el-date-picker>
-      </div>
-
-      <div class="block">
-        <span class="demonstration">结束:</span>
-        <el-date-picker v-model="endDate" type="year" size="mini" value-format="yyyy" format="yyyy年"  :clearable="false" style="width: 96px;"
-          @change="checkYear(endDate,'end')" placeholder="选择日期">
-        </el-date-picker>
-      </div>
-
-      <div class="block">
-        <el-button type="primary" size="mini" plain @click="selectAll">
-          查询
-        </el-button>
-      </div>
-
-      </div>
-
-      <div class="componentsData" v-if="relOf">
-        <s1zhiLiangMuBiao :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[1]"/>
-        <s1zhiLiang1 :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[2]"    />
-        <s1zhiLiang2 :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[3]"   />
-        <s1zhiLiang3 :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[4]"  />
-        
-        <s1jianCe :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[5]" :data = "getS1jianCe()" />
-         
-        <s3tousu :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[6]" :data = "getS3tousu()"/>
-        <s2manYiDu :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[7]"  :data = "getS2manYiDu()"/>
-        <s4renYuanPeiXun :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[8]" :data = "getS4renYuanPeiXun()"/>
-        <s5renYuanJianDu :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[9]" :data = "getS5renYuanJianDu()"/>
-        <none :width="static=='row' ? '20%': '100%'"
-        />
-        <s6sheBeiWeiHu :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[10]" :data = "getS6sheBeiWeiHu()"/>
-        <s8sheBeiHeCha :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[11]" :data = "getS8sheBeiHeCha()"/>
-        <s7sheBeiJiaoZhun :width="static=='row' ? '20%': '100%'"
-        v-if="showAll || showComponents[12]" :data = "getS7sheBeiJiaoZhun()"/>
-     </div>
-
-
-  </div>
-  </el-scrollbar>
-</template>
-
-<script>
-
-  import s1zhiLiangMuBiao from './item/s1zhiLiangMuBiao.vue'
-  import s1zhiLiang1 from './item/s1zhiLiang1.vue'
-  import s1zhiLiang2 from './item/s1zhiLiang2.vue'
-  import s1zhiLiang3 from './item/s1zhiLiang3.vue'
-  
-  import s1jianCe from './item/s1jianCe.vue'
-  import s2manYiDu from './item/s2manYiDu.vue'
-  import s3tousu from './item/s3tousu.vue'
-  import s4renYuanPeiXun from './item/s4renYuanPeiXun.vue'
-  import s5renYuanJianDu from './item/s5renYuanJianDu.vue'
-  import s6sheBeiWeiHu from './item/s6sheBeiWeiHu.vue'
-  import s7sheBeiJiaoZhun from './item/s7sheBeiJiaoZhun.vue'
-  import s8sheBeiHeCha from './item/s8sheBeiHeCha.vue'
-  import none from './item/none.vue'
-
-  import { DBData ,getConfig} from './js/selectDB.js'
-  import sendDatas from './sendDatas.js'
-  import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
-  export default {
-    components:{
-      none,
-      s1zhiLiang1,
-      s1zhiLiang2,
-      s1zhiLiang3,
-      s1zhiLiangMuBiao,
-      s1jianCe,
-      s2manYiDu,
-      s3tousu,
-      s4renYuanPeiXun,
-      s5renYuanJianDu,
-      s6sheBeiWeiHu,
-      s7sheBeiJiaoZhun,
-      s8sheBeiHeCha
-    },
-    props:{
-    shows:{ //传入的内容显示序号
-        type: Array,
-        default:() => []
-      },
-    static:{ //显示类型,默认为横向   ,作为表单统计图的外部引用为 line
-        type: String,
-        default:'row'
-      }
-   },
-    mixins: [sendDatas],
-    mounted() {
-      /*以shows是否有参数来判断, 是否需要仅显示部分子组件*/
-      if(this.shows.length>0){
-        this.showAll=false
-        this.isShowComponents()
-      }
-      /* 开始及结束时间的默认设置*/
-      if (!this.BeginDate && !this.endDate) {
-        this.BeginDate = this.getDate(1) + ''
-        this.endDate = this.getDate(0) + ''
-      }
-      this.getConfigData() //获取统计的配置
-    },
-    data() {
-      return {
-        height:(window.screen.height-200)+"px",
-        BeginDate: '',
-        endDate: '',
-        relData: {},
-        relOf: false,
-        selectEnd: '',
-        selectBeg: '',
-        showAll:true,
-        timer: '',
-        showComponents:{}//显示全部统计子组件 , 若有新增,往后累计。 供动态表单进行查阅使用。
-      }
-    },
-     beforeDestroy() {
-          clearInterval(this.timer);
-        },
-    methods: {
-      /* 判断是否统计子组件中传递过来的,是否需要隐藏。若需要则进行隐藏的遍历  */
-      isShowComponents(){
-        /* 将参数进行显示 */
-          for(let i=0;i<this.shows.length;i++){
-            this.showComponents[this.shows[i]] = true
-          }
-      },
-      /* 查询统计配置中的完成率*/
-      getConfigData() {
-        repostCurd('sql', getConfig()).then(response => {
-          this.config = response.variables.data //结果一定存在第0个,因为只有一条数据
-          this.getData(this.BeginDate, this.endDate, true)
-        })
-      },
-      /* 通过拼接的sql进行查询全部数据*/
-      getData(beg, end, of) {
-        repostCurd('sql', DBData(beg, end)).then(response => {
-          this.relData = response.variables.data[0] //结果一定存在第0个,因为只有一条数据
-          this.relOf = of
-        })
-      },
-      /* 查询全部*/
-      selectAll() {
-        /* 上次查询时间不等于当次查询时间,    开始时间不能等于结束时间, 则开始查询。*/
-        if ((this.selectEnd != this.endDate || this.selectBeg != this.BeginDate) && this.endDate != this.BeginDate) {
-          this.getData(this.BeginDate, this.endDate, false)
-          this.selectEnd = this.endDate
-          this.selectBeg = this.BeginDate
-          /* 延迟刷新*/
-          this.timer = setInterval(() => {
-            if (!this.relOf) {
-              this.relOf = true
-              clearInterval(this.timer)
-            }
-          }, 100);
-        } else if (this.endDate == this.BeginDate) {
-          this.$message({
-            showClose: true,
-            message: '年份相等无法进行查询对比',
-            type: 'warning'
-          });
-        }
-      },
-      /* 年份不得大于当前年份*/
-      checkYear(year, data) {
-        if (Number(year) > Number(this.getDate(0))) {
-          data == 'end' ?
-            this.endDate = this.getDate(0) + '' :
-            this.BeginDate = this.getDate(0) + ''
-
-          this.$message({
-            showClose: true,
-            message: '年份不得大于当前年份',
-            type: 'warning'
-          });
-        }
-      },
-      /* 获取当前年份*/
-      getDate(year) {
-        year = year || 0
-        let nowDate = new Date();
-        return nowDate.getFullYear() - year;
-      },
-    }
-  }
-</script>
-<style lang="scss">
-  .statistics {
-    .editDate{
-      overflow: hidden;
-      background-color:rgb(249, 255, 255);
-
-    }
-    .block{
-      float: left;
-      font-size: 14px;
-     }
-  }
-</style>

+ 237 - 0
src/views/statistics/item/s10waiBuNengLi.vue

@@ -0,0 +1,237 @@
+<template>
+  <div @click="toDetailed()" class="statisticsPage" :style="{width:width}">
+    <div :id="id" :style="{height:height}"/>
+    <!-- 打开详情弹窗-->
+    <div v-if="dialogOff">
+      <dialogView
+        :dialogOff = "dialogOff"
+        @close = "close"
+        :title="title"
+        :data="data"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+  import echarts from 'echarts'
+  import dialogView from '../properties/s10waiBuNengLiPro.vue'
+  import {GetPercent,GetMax} from  '../js/config.js'
+  export default {
+    components:{
+      dialogView
+    },
+    props: {
+      data: {
+        type: Object,
+      },
+      width:{
+        type:String,
+        default:"20%"
+      },
+      height:{
+        type:String,
+        default: window.screen.height/2+"px"
+      },
+      id:{
+        type:String,
+        default:"s10waiBuNengLi"
+      },
+      click:{
+        type:String,
+        default:'true'
+      },
+    },
+    data () {
+      return {
+        title:'外部质量计划',
+        dialogOff:false,
+      }
+    },
+    mounted(){
+      this.drawLine();
+    },
+    methods: {
+      close(){
+        this.dialogOff = false
+      },
+      /* 跳转统计页面*/
+      toDetailed(){
+        if(this.click == "true"){
+        this.dialogOff = true
+       }
+      },
+      drawLine(){
+        let s10waiBuNengLi = echarts.init(document.getElementById(this.id))
+         
+
+          
+        // let beginInof = GetPercent(Number(this.data.t_sbhcjlbBegin.number),Number(this.data.t_sbhcjhBegin.number))
+        // let endInof = GetPercent(Number(this.data.t_sbhcjlbEnd.number),Number(this.data.t_sbhcjhEnd.number))
+         
+        //  let data1 = [];
+        //  data1.push(this.data.t_sbhcjhBegin.number);
+        //  data1.push(this.data.t_sbhcjhEnd.number);
+        //  let data2 = [];
+        //  data2.push(this.data.t_sbhcjlbBegin.number);
+        //  data2.push(this.data.t_sbhcjlbEnd.number);
+        //  let data3 = [];
+        //  data3.push(this.data.t_sbhcjlbBegin.date);
+        //  data3.push(this.data.t_sbhcjlbEnd.date);
+        //  let max1=GetMax(data1)+1;
+        //  let max2=GetMax(data2)+1;
+        //  let maxVal=max1>max2?max1:max2;
+        //  console.log("max1:",max1,"max2:",max2);
+       let option = {
+           //v3
+          title: {
+            text: this.title,
+            subtext: this.data.Num.date+"年"
+          },
+          tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                          type: 'shadow'
+                        },
+                        formatter: function (datas) {
+                          console.log(datas)
+                            var res=datas[0].name+"<BR>"+'外部质量计划次数:'+datas[0].data+"<BR>"
+                            // res+='百分比:'+(datas[1].value==null||datas[1].value==0?"0.00":(datas[0].value/datas[1].value*100).toFixed(2))+"%"
+                            return res
+                        }
+          },
+          legend: {},
+          grid: {
+                top: '10%',
+                left: '3%',
+                right: '4%',
+                bottom: '5%',
+                containLabel: true
+                    },
+          xAxis: {
+            type: 'value',
+            boundaryGap: [0, 0.01]
+          },
+          yAxis: {
+            type: 'category',
+            data: this.data.Num.name,
+            axisLabel: {
+                show: true, // 是否显示X轴的内容,不包含两端的文字
+                interval: 0,
+                // rotate: '50', // 旋转50°
+                lineHeight: 18,
+                // formatter: function(params) {
+                //   //  console.log('formatter', params, params.length)
+                //   var newParamsName = ''// 最终拼接成的字符串
+                //   var paramsNameNumber = params.length// 实际标签的个数
+                //   var provideNumber = 3// 每行能显示的字的个数
+                //   // 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
+                //   if (paramsNameNumber > provideNumber) {
+                //   // ********重点在这里********
+                //     newParamsName = params.substring(0, 3) + '..'// 最终拼成的字符串
+                //   } else { // 将旧标签的值赋给新标签
+                //     newParamsName = params
+                //   }
+                //   // 将最终的字符串返回
+                //   return newParamsName
+                // }
+              },
+          },
+          series: [
+            {
+              type: 'bar',
+              data: this.data.Num.number,
+              itemStyle: {color: '#669900'},
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
+            // {
+            //   type: 'bar',
+            //   data: this.data.Num.numberAll
+            // },
+          ],
+                dataZoom: [
+        {
+            id: 'dataZoomY',
+            type: 'inside',
+            yAxisIndex: [0],
+            filterMode: 'empty'
+        }
+      ],
+         //v1
+        //   grid: {
+        //         top: '20%',
+        //         left: '3%',
+        //         right: '4%',
+        //         bottom: '10%',
+        //         containLabel: true
+        //     },
+        //    tooltip: {
+        //           trigger: 'axis',
+        //           axisPointer: {
+        //             type: 'shadow'
+        //           },
+        //           formatter: function (datas) {
+        //               var res='计划:'+datas[0].value+"<BR>"
+        //               res+='记录:'+datas[1].value+"<BR>"
+        //               res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
+        //               return res
+        //           }
+        //    },
+        // title: {
+        //      text: this.title,
+        //      subtext: this.data.t_sbhcjlbBegin.date+"-"+this.data.t_sbhcjlbEnd.date+"年核查次数"
+        //      //subtext: this.data.t_sbhcjhBegin.date+'完成率为:' + beginInof +'\n'+this.data.t_sbhcjhEnd.date+'完成率为:'+endInof,
+        // },
+        // color: ['#003366', '#006699', '#4cabce', '#e5323e'],
+        //    legend: {
+        //      show:false
+        //  },
+        //  xAxis: [
+        //      {
+        //          type: 'category',
+        //          axisTick: {show: false},
+        //          data: data3
+        //      }
+        //  ],
+        //  yAxis:  [
+        //      {
+        //        max:maxVal,
+        //        min:0,
+        //          type: 'value'
+        //      }
+        //  ] 
+        //  ,
+        //  series: [
+        //     {
+        //          name: '计划条数',
+        //          type: 'bar',
+        //          barGap: 0,
+        //          data: data1
+        //    },
+        //     {
+        //          name: '记录条数',
+        //          type: 'bar',
+        //          barGap: 0,
+        //          data: data2
+        //    },
+        //  ]
+       };
+
+       option && s10waiBuNengLi.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s10waiBuNengLi:hover{
+    transition: all 0.5s;
+    transform:scale(1.03);
+  }
+  .statisticsPage{
+     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+     float: left;
+  }
+</style>

+ 180 - 0
src/views/statistics/item/s11biaoZhunWu.vue

@@ -0,0 +1,180 @@
+<template>
+  <div @click="toDetailed()" class="statisticsPage" :style="{width:width}">
+    <div :id="id" :style="{height:height}"/>
+    <!-- 打开详情弹窗-->
+    <div v-if="dialogOff">
+      <dialogView
+        :dialogOff = "dialogOff"
+        @close = "close"
+        :title="title"
+        :data="data"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+  import echarts from 'echarts'
+  import dialogView from '../properties/s11biaoZhunWuPro.vue'
+  import {GetPercent,GetMax} from  '../js/config.js'
+  export default {
+    components:{
+      dialogView
+    },
+    props: {
+      data: {
+        type: Object,
+      },
+      width:{
+        type:String,
+        default:"20%"
+      },
+      height:{
+        type:String,
+        default: window.screen.height/2+"px"
+      },
+      id:{
+        type:String,
+        default:"s11biaoZhunWu"
+      },
+      click:{
+        type:String,
+        default:'true'
+      },
+    },
+    data () {
+      return {
+        title:'标准物质核查计划',
+        dialogOff:false,
+      }
+    },
+    mounted(){
+      this.drawLine();
+    },
+    methods: {
+      close(){
+        this.dialogOff = false
+      },
+      /* 跳转统计页面*/
+      toDetailed(){
+        if(this.click == "true"){
+        this.dialogOff = true
+       }
+      },
+      drawLine(){
+        let s11biaoZhunWu = echarts.init(document.getElementById(this.id))
+         
+
+          
+        // let beginInof = GetPercent(Number(this.data.t_sbhcjlbBegin.number),Number(this.data.t_sbhcjhBegin.number))
+        // let endInof = GetPercent(Number(this.data.t_sbhcjlbEnd.number),Number(this.data.t_sbhcjhEnd.number))
+         
+        //  let data1 = [];
+        //  data1.push(this.data.t_sbhcjhBegin.number);
+        //  data1.push(this.data.t_sbhcjhEnd.number);
+        //  let data2 = [];
+        //  data2.push(this.data.t_sbhcjlbBegin.number);
+        //  data2.push(this.data.t_sbhcjlbEnd.number);
+        //  let data3 = [];
+        //  data3.push(this.data.t_sbhcjlbBegin.date);
+        //  data3.push(this.data.t_sbhcjlbEnd.date);
+        //  let max1=GetMax(data1)+1;
+        //  let max2=GetMax(data2)+1;
+        //  let maxVal=max1>max2?max1:max2;
+        //  console.log("max1:",max1,"max2:",max2);
+       let option = {
+           //v3
+          title: {
+            text: this.title,
+            subtext: this.data.Num.date+"年"
+          },
+          tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                          type: 'shadow'
+                        },
+                        formatter: function (datas) {
+                          console.log(datas)
+                            var res=datas[0].name+"<BR>"+'核查次数:'+datas[0].data+"<BR>"
+                            // res+='百分比:'+(datas[1].value==null||datas[1].value==0?"0.00":(datas[0].value/datas[1].value*100).toFixed(2))+"%"
+                            return res
+                        }
+          },
+          legend: {},
+          grid: {
+                top: '10%',
+                left: '3%',
+                right: '4%',
+                bottom: '5%',
+                containLabel: true
+                    },
+          xAxis: {
+            type: 'value',
+            boundaryGap: [0, 0.01]
+          },
+          yAxis: {
+            type: 'category',
+            data: this.data.Num.name,
+            axisLabel: {
+                show: true, // 是否显示X轴的内容,不包含两端的文字
+                interval: 0,
+                // rotate: '50', // 旋转50°
+                lineHeight: 18,
+                // formatter: function(params) {
+                //   //  console.log('formatter', params, params.length)
+                //   var newParamsName = ''// 最终拼接成的字符串
+                //   var paramsNameNumber = params.length// 实际标签的个数
+                //   var provideNumber = 3// 每行能显示的字的个数
+                //   // 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
+                //   if (paramsNameNumber > provideNumber) {
+                //   // ********重点在这里********
+                //     newParamsName = params.substring(0, 3) + '..'// 最终拼成的字符串
+                //   } else { // 将旧标签的值赋给新标签
+                //     newParamsName = params
+                //   }
+                //   // 将最终的字符串返回
+                //   return newParamsName
+                // }
+              },
+          },
+          series: [
+            {
+              type: 'bar',
+              data: this.data.Num.number,
+              itemStyle: {color: '#006699'},
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
+            // {
+            //   type: 'bar',
+            //   data: this.data.Num.numberAll
+            // },
+          ],
+                dataZoom: [
+        {
+            id: 'dataZoomY',
+            type: 'inside',
+            yAxisIndex: [0],
+            filterMode: 'empty'
+        }
+      ],
+       
+       };
+
+       option && s11biaoZhunWu.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s10waiBuNengLi:hover{
+    transition: all 0.5s;
+    transform:scale(1.03);
+  }
+  .statisticsPage{
+     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+     float: left;
+  }
+</style>

+ 152 - 0
src/views/statistics/item/s12fengXian.vue

@@ -0,0 +1,152 @@
+<template>
+  <div @click="toDetailed()" class="statisticsPage" :style="{width:width}">
+    <div :id="id" :style="{height:height}"/>
+    <!-- 打开详情弹窗-->
+    <div v-if="dialogOff">
+      <dialogView
+        :dialogOff = "dialogOff"
+        @close = "close"
+        :title="title"
+        :data="data"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+  import echarts from 'echarts'
+  import dialogView from '../properties/s12fengXianPro.vue'
+  import {GetPercent,GetMax} from  '../js/config.js'
+  export default {
+    components:{
+      dialogView
+    },
+    props: {
+      data: {
+        type: Object,
+      },
+      width:{
+        type:String,
+        default:"20%"
+      },
+      height:{
+        type:String,
+        default: window.screen.height/4+"px"
+      },
+      id:{
+        type:String,
+        default:"s12fengXian"
+      },
+      click:{
+        type:String,
+        default:'true'
+      },
+    },
+    data () {
+      return {
+        title:'明鉴实验室活动风险识别与控制计划',
+        dialogOff:false,
+        measured:[]
+      }
+    },
+    mounted(){
+      this.drawLine();
+    },
+    methods: {
+      close(){
+        this.dialogOff = false
+      },
+      /* 跳转统计页面*/
+      toDetailed(){
+        if(this.click == "true"){
+        this.dialogOff = true
+       }
+      },
+      drawLine(){
+
+        // let beginInof = Number(this.data.t_complaintBegin.number)
+        // let endInof = Number(this.data.t_complaintEnd.number)
+        let s12fengXian = echarts.init(document.getElementById(this.id))
+        // let beingDate=this.data.t_complaintBegin.date
+        // let endDate=this.data.t_complaintEnd.date
+        var option;
+
+        //v3
+        let e=[this.data.t_mjsyshdfxsbykzjhxbNum.number[0],this.data.t_mjsyshdfxsbykzjhxbNum.numberAll[0],this.data.t_mjsyshdfxsbykzjhxbNum.res[0]]
+
+        option = {
+            legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
+            },
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['已完成', '总数量', '完成率']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '数量',
+                max: this.data.t_mjsyshdfxsbykzjhxbNum.number[0]>this.data.t_mjsyshdfxsbykzjhxbNum.numberAll[0]?this.data.t_mjsyshdfxsbykzjhxbNum.number[0]+1:this.data.t_mjsyshdfxsbykzjhxbNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '完成率',
+                max: this.data.t_mjsyshdfxsbykzjhxbNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
+                }
+              }
+            ],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#cc6633'
+                },
+                label: {
+                show: true,
+                position: 'top'
+              },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            }
+        };
+
+        option && s12fengXian.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s12fengXian:hover{
+    transition: all 0.5s;
+    transform:scale(1.03);
+  }
+  .statisticsPage{
+     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+     float: left;
+  }
+</style>

+ 157 - 92
src/views/statistics/item/s1jianCe.vue

@@ -66,103 +66,168 @@
         var echarts = require('echarts');
         let s1jianCe = echarts.init(document.getElementById(this.id))
 
-         let data = [];
+        //  let data = [];
 
-         data.push(Number(this.data.t_gdyrqcwt5Begin.number<0?0-this.data.t_gdyrqcwt5Begin.number:this.data.t_gdyrqcwt5Begin.number)*100)
-         data.push(Number(this.data.t_gdyrqcwt5End.number<0?0-this.data.t_gdyrqcwt5End.number:this.data.t_gdyrqcwt5End.number)*100)
-         data.push(Number(this.data.t_gdyrqcwt6Begin.number<0?0-this.data.t_gdyrqcwt6Begin.number:this.data.t_gdyrqcwt6Begin.number)*100)
-         data.push(Number(this.data.t_gdyrqcwt6End.number<0?0-this.data.t_gdyrqcwt6End.number:this.data.t_gdyrqcwt6End.number)*100)
+        //  data.push(Number(this.data.t_gdyrqcwt5Begin.number<0?0-this.data.t_gdyrqcwt5Begin.number:this.data.t_gdyrqcwt5Begin.number)*100)
+        //  data.push(Number(this.data.t_gdyrqcwt5End.number<0?0-this.data.t_gdyrqcwt5End.number:this.data.t_gdyrqcwt5End.number)*100)
+        //  data.push(Number(this.data.t_gdyrqcwt6Begin.number<0?0-this.data.t_gdyrqcwt6Begin.number:this.data.t_gdyrqcwt6Begin.number)*100)
+        //  data.push(Number(this.data.t_gdyrqcwt6End.number<0?0-this.data.t_gdyrqcwt6End.number:this.data.t_gdyrqcwt6End.number)*100)
 
-         let dataAxis = [];
+        //  let dataAxis = [];
 
-         dataAxis.push("准确率");
-         dataAxis.push("准确率");
-         dataAxis.push("完成率");
-         dataAxis.push("完成率");
-         let beingDate=this.data.t_gdyrqcwt5Begin.date
-         let endDate=this.data.t_gdyrqcwt5End.date
-       let option = {
-          grid: {
-                       top: '20%',
-                       left: '3%',
-                       right: '4%',
-                       bottom: '10%',
-                       containLabel: true
-                   },
-         title: {
-           text: this.title,
-           subtext: "        "+beingDate+"-"+endDate+"年"
-         },
-         xAxis: {
-           data: dataAxis,
-           axisLabel: {
-             inside: true,
-             color: '#000'
-           },
-           axisTick: {
-             show: true
-           },
-           axisLine: {
-             show: true
-           },
-           axisLabel:{
-              interval:0
+        //  dataAxis.push("准确率");
+        //  dataAxis.push("准确率");
+        //  dataAxis.push("完成率");
+        // //  dataAxis.push("完成率");
+        //  let beingDate=this.data.t_gdyrqcwt5Begin.date
+        //  let endDate=this.data.t_gdyrqcwt5End.date
+        let e=[this.data.t_mjjcbgNum.number[0],this.data.t_mjjcbgNum.numberAll[0],this.data.t_mjjcbgNum.res[0]]
+
+        let option = {
+        //v3
+            legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
             },
-           z: 10
-         },
-         yAxis: {
-           axisLine: {
-             show: false
-           },
-           axisTick: {
-             show: false
-           },
-           axisLabel: {
-                                  show: true,
-                                  textStyle:{color:'#000'},
-                                  interval: 'auto',
-                                  formatter: '{value} %'
-                                  },
-         },
-         dataZoom: [
-           {
-             type: 'inside'
-           }
-         ],
-         tooltip: {
-                trigger: 'axis',
-                axisPointer: {
-                  type: 'shadow'
-                },
-                formatter: function (datas) {
-                    let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
-                    var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+datas[0].value+"%"
-                    return res
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['报告差错数', '报告总数', '差错率']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '数量',
+                max: this.data.t_mjjcbgNum.number[0]>this.data.t_mjjcbgNum.numberAll[0]?this.data.t_mjjcbgNum.number[0]+1:this.data.t_mjjcbgNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '差错率',
+                max: this.data.t_mjjcbgNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
                 }
-         },
-         series: [
-           {
-             type: 'bar',
-             showBackground: true,
-             itemStyle: {
-               color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                 { offset: 0, color: '#83bff6' },
-                 { offset: 0.5, color: '#188df0' },
-                 { offset: 1, color: '#188df0' }
-               ])
-             },
-             emphasis: {
-               itemStyle: {
-                 color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                   { offset: 0, color: '#2378f7' },
-                   { offset: 0.7, color: '#2378f7' },
-                   { offset: 1, color: '#83bff6' }
-                 ])
-               }
-             },
-             data: data
-           }
-         ]
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#9933cc'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+        //v1
+        //   grid: {
+        //                top: '20%',
+        //                left: '3%',
+        //                right: '4%',
+        //                bottom: '10%',
+        //                containLabel: true
+        //            },
+        //  title: {
+        //    text: this.title,
+        //    subtext: "        "+beingDate+"-"+endDate+"年"
+        //  },
+        //  xAxis: {
+        //    data: dataAxis,
+        //    axisLabel: {
+        //      inside: true,
+        //      color: '#000'
+        //    },
+        //    axisTick: {
+        //      show: true
+        //    },
+        //    axisLine: {
+        //      show: true
+        //    },
+        //    axisLabel:{
+        //       interval:0
+        //     },
+        //    z: 10
+        //  },
+        //  yAxis: {
+        //    axisLine: {
+        //      show: false
+        //    },
+        //    axisTick: {
+        //      show: false
+        //    },
+        //    axisLabel: {
+        //                           show: true,
+        //                           textStyle:{color:'#000'},
+        //                           interval: 'auto',
+        //                           formatter: '{value} %'
+        //                           },
+        //  },
+        //  dataZoom: [
+        //    {
+        //      type: 'inside'
+        //    }
+        //  ],
+        //  tooltip: {
+        //         trigger: 'axis',
+        //         axisPointer: {
+        //           type: 'shadow'
+        //         },
+        //         formatter: function (datas) {
+        //             let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
+        //             var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+datas[0].value+"%"
+        //             return res
+        //         }
+        //  },
+        //  series: [
+        //    {
+        //      type: 'bar',
+        //      showBackground: true,
+        //      itemStyle: {
+        //        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+        //          { offset: 0, color: '#83bff6' },
+        //          { offset: 0.5, color: '#188df0' },
+        //          { offset: 1, color: '#188df0' }
+        //        ])
+        //      },
+        //      emphasis: {
+        //        itemStyle: {
+        //          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+        //            { offset: 0, color: '#2378f7' },
+        //            { offset: 0.7, color: '#2378f7' },
+        //            { offset: 1, color: '#83bff6' }
+        //          ])
+        //        }
+        //      },
+        //      data: data
+        //    }
+        //  ]
        };
        option && s1jianCe.setOption(option);
       }

+ 308 - 187
src/views/statistics/item/s1zhiLiangMuBiao.vue

@@ -2,6 +2,7 @@
   <div @click="toDetailed()" class="statisticsPage" :style="{width:width}">
     <div :id="id" :style="{height:height}"/>
     <!-- 打开详情弹窗-->
+    <!-- <div>2323</div> -->
     <div v-if="dialogOff">
       <dialogView
         :dialogOff = "dialogOff"
@@ -45,7 +46,7 @@
     },
     data () {
       return {
-        title:'质量目标',
+        title:'任务及时完成率',
         dialogOff:false,
       }
     },
@@ -65,194 +66,314 @@
       drawLine(){
         let s5zhiLiangMuBiao = echarts.init(document.getElementById(this.id))
 
-         let data1 = [];
-         data1.push(0);
-         data1.push(0);
-         let data2 = [];
-         data2.push(83);
-         data2.push(90);
-         let data3 = [];
-         data3.push(70);
-         data3.push(60);
-         let data4 = [];
-         data4.push(2021);
-         data4.push(2022);
-         const posList = [
-  'left',
-  'right',
-  'top',
-  'bottom',
-  'inside',
-  'insideTop',
-  'insideLeft',
-  'insideRight',
-  'insideBottom',
-  'insideTopLeft',
-  'insideTopRight',
-  'insideBottomLeft',
-  'insideBottomRight'
-];
-app.configParameters = {
-  rotate: {
-    min: -90,
-    max: 90
-  },
-  align: {
-    options: {
-      left: 'left',
-      center: 'center',
-      right: 'right'
-    }
-  },
-  verticalAlign: {
-    options: {
-      top: 'top',
-      middle: 'middle',
-      bottom: 'bottom'
-    }
-  },
-  position: {
-    options: posList.reduce(function (map, pos) {
-      map[pos] = pos;
-      return map;
-    }, {})
-  },
-  distance: {
-    min: 0,
-    max: 100
-  }
-};
-app.config = {
-  rotate: 90,
-  align: 'left',
-  verticalAlign: 'center',
-  position: 'bottom',
-  distance: 0,
-  onChange: function () {
-    const labelOption = {
-      rotate: app.config.rotate,
-      align: app.config.align,
-      verticalAlign: app.config.verticalAlign,
-      position: app.config.position,
-      distance: app.config.distance,
-      color:'#FE8463'
-    };
-    myChart.setOption({
-      series: [
-        {
-          label: labelOption
-        },
-        {
-          label: labelOption
-        },
-        {
-          label: labelOption
-        },
-        {
-          label: labelOption
-        }
-      ]
-    });
-  }
-};
-const labelOption = {
-  show: true,
-  position: app.config.position,
-  distance: app.config.distance,
-  align: app.config.align,
-  verticalAlign: app.config.verticalAlign,
-  rotate: app.config.rotate,
-  formatter: '{c}  {name|{a}}',
-  fontSize: 14,
-  rich: {
-      name: {
-          textBorderColor: '#fff'
-      }
-  },
-  color:'#FE8463'
-};
-let option = {
-  grid: {
-                top: '20%',
-                left: '3%',
-                right: '4%',
-                bottom: '10%',
-                containLabel: true
+        // let data1 = [];
+        // data1.push(0);
+        // data1.push(0);
+        // let data2 = [];
+        // data2.push(83);
+        // data2.push(90);
+        // let data3 = [];
+        // data3.push(70);
+        // data3.push(60);
+        // let data4 = [];
+        // data4.push(2021);
+        // data4.push(2022);
+        // const posList = [
+        //   'left',
+        //   'right',
+        //   'top',
+        //   'bottom',
+        //   'inside',
+        //   'insideTop',
+        //   'insideLeft',
+        //   'insideRight',
+        //   'insideBottom',
+        //   'insideTopLeft',
+        //   'insideTopRight',
+        //   'insideBottomLeft',
+        //   'insideBottomRight'
+        // ];
+        // app.configParameters = {
+        //   rotate: {
+        //     min: -90,
+        //     max: 90
+        //   },
+        //   align: {
+        //     options: {
+        //       left: 'left',
+        //       center: 'center',
+        //       right: 'right'
+        //     }
+        //   },
+        //   verticalAlign: {
+        //     options: {
+        //       top: 'top',
+        //       middle: 'middle',
+        //       bottom: 'bottom'
+        //     }
+        //   },
+        //   position: {
+        //     options: posList.reduce(function (map, pos) {
+        //       map[pos] = pos;
+        //       return map;
+        //     }, {})
+        //   },
+        //   distance: {
+        //     min: 0,
+        //     max: 100
+        //   }
+        // };
+        // app.config = {
+        //   rotate: 90,
+        //   align: 'left',
+        //   verticalAlign: 'center',
+        //   position: 'bottom',
+        //   distance: 0,
+        //   onChange: function () {
+        //     const labelOption = {
+        //       rotate: app.config.rotate,
+        //       align: app.config.align,
+        //       verticalAlign: app.config.verticalAlign,
+        //       position: app.config.position,
+        //       distance: app.config.distance,
+        //       color:'#FE8463'
+        //     };
+        //     myChart.setOption({
+        //       series: [
+        //         {
+        //           label: labelOption
+        //         },
+        //         {
+        //           label: labelOption
+        //         },
+        //         {
+        //           label: labelOption
+        //         },
+        //         {
+        //           label: labelOption
+        //         }
+        //       ]
+        //     });
+        //   }
+        // };
+        // const labelOption = {
+        //   show: true,
+        //   position: app.config.position,
+        //   distance: app.config.distance,
+        //   align: app.config.align,
+        //   verticalAlign: app.config.verticalAlign,
+        //   rotate: app.config.rotate,
+        //   formatter: '{c}  {name|{a}}',
+        //   fontSize: 14,
+        //   rich: {
+        //       name: {
+        //           textBorderColor: '#fff'
+        //       }
+        //   },
+        //   color:'#FE8463'
+        // };
+        // let barData = []
+        // for (let i = 0; i < this.data.t_jchzbNum.date.length; i++) {
+        //   let e=[this.data.t_jchzbNum.date[i],this.data.t_jchzbNum.number[i],this.data.t_jchzbNum.numberAll[i]]
+        //   barData.push(e)
+        // }
+        // }
+
+        // let barData = []
+        // for (let i = 0; i < this.data.t_jchzbNum.date.length; i++) {
+          let e=[]
+          e=[this.data.t_jchzbNum.number[0],this.data.t_jchzbNum.numberAll[0],this.data.t_jchzbNum.res[0]]
+          // if (this.data.t_jchzbNum.numberAll[i]===0) {
+          //   e =[this.data.t_jchzbNum.date[i], 0]
+          // } else {
+          //   e =[this.data.t_jchzbNum.date[i], Math.floor(this.data.t_jchzbNum.number[i]/this.data.t_jchzbNum.numberAll[i] * 10000) / 100]
+          // }
+          // barData.push(e)
+        // }
+        let option = {
+          //v3
+          legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
             },
-  title: {
-            text: this.title,
-            subtext: "2021-2022年质量检测目标"
-          },
-  color : [
-                              '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
-                               '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
-                               '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
-                            ],
-  tooltip: {
-    trigger: 'axis',
-    axisPointer: {
-      type: 'shadow'
-    },
-                 formatter: function (datas) {
-                     var res='投诉处理率:'+datas[0].value+"%<BR>"
-                     res+='满意度:'+datas[1].value+"%<BR>"
-                     res+='培训完成率:'+datas[2].value+"%"
-                     return res
-                 }
-  },
-  legend: {show:false},
-  xAxis: [
-    {
-      type: 'category',
-      axisTick: { show: false },
-      data: data4,
-      textStyle:{color:'#FE8463'},
-    }
-  ],
-  yAxis: [
-    {
-      type: 'value',
-      axisLabel: {
-                                  show: true,
-                                  textStyle:{color:'#000'},
-                                  interval: 'auto',
-                                  formatter: '{value} %'
-                                  },
-    }
-  ],
-  series: [
-    {
-      name: '投诉处理率',
-      type: 'bar',
-      barGap: 0,
-      label: labelOption,
-      emphasis: {
-        focus: 'series'
-      },
-      data: data1
-    },
-    {
-      name: '满意度',
-      type: 'bar',
-      label: labelOption,
-      emphasis: {
-        focus: 'series'
-      },
-      data:data2
-    },
-    {
-      name: '培训完成率',
-      type: 'bar',
-      label: labelOption,
-      emphasis: {
-        focus: 'series'
-      },
-      data:data3
-    }
-  ]
-};
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['按时完成数', '有效任务数', '及时完成率']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '数量',
+                max: this.data.t_jchzbNum.number[0]>this.data.t_jchzbNum.numberAll[0]?this.data.t_jchzbNum.number[0]+1:this.data.t_jchzbNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '任务及时完成率',
+                max: this.data.t_jchzbNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
+                }
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#0099ff'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+          //v2
+          //  legend: {},
+          //   tooltip: {
+          //     trigger: 'axis',
+          //     axisPointer: {
+          //       type: 'shadow'
+          //     },
+          //     formatter: function (params) {
+          //       return params[0].data[0] + '<br/>任务完成率:' + params[0].data[1];
+          //     }
+          //   },
+          //   dataset: {
+          //     source: barData
+          //   },
+          //   xAxis: { type: 'category' },
+          //   yAxis: {
+          //     type: 'value',
+          //     axisLabel: {
+          //       show: true,
+          //       textStyle:{color:'#000'},
+          //       interval: 'auto',
+          //       formatter: '{value} %'
+          //     },
+            
+          //   },
+          //   // Declare several bar series, each will be mapped
+          //   // to a column of dataset.source by default.
+          //   series: [{ type: 'bar',barWidth:50}],
+          //   grid: {
+          //     top: '20%',
+          //     left: '3%',
+          //     right: '4%',
+          //     bottom: '10%',
+          //     containLabel: true
+          //   },
+          //   title: {
+          //     text: this.title,
+          //     subtext: "        "+this.data.t_jchzbNum.date[0]+"-"+this.data.t_jchzbNum.date[this.data.t_jchzbNum.date.length-1]
+          //   },
 
-       option && s5zhiLiangMuBiao.setOption(option);
+          //v1
+          // grid: {
+          //   top: '20%',
+          //   left: '3%',
+          //   right: '4%',
+          //   bottom: '10%',
+          //   containLabel: true
+          // },
+          // title: {
+          //   text: this.title,
+          //   subtext: "2021-2022年质量检测目标"
+          // },
+          // color : [
+          //   '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
+          //   '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+          //   '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+          // ],
+          // tooltip: {
+          //   trigger: 'axis',
+          //   axisPointer: {
+          //     type: 'shadow'
+          //   },
+          //   formatter: function (datas) {
+          //     var res='投诉处理率:'+datas[0].value+"%<BR>"
+          //     res+='满意度:'+datas[1].value+"%<BR>"
+          //     res+='培训完成率:'+datas[2].value+"%"
+          //     return res
+          //   }
+          // },
+          // legend: {show:false},
+          // xAxis: [
+          //   {
+          //     type: 'category',
+          //     axisTick: { show: false },
+          //     data: data4,
+          //     textStyle:{color:'#FE8463'},
+          //   }
+          // ],
+          // yAxis: [
+          //   {
+          //     type: 'value',
+          //     axisLabel: {
+          //       show: true,
+          //       textStyle:{color:'#000'},
+          //       interval: 'auto',
+          //       formatter: '{value} %'
+          //     },
+          //   }
+          // ],
+          // series: [
+          //   {
+          //     name: '投诉处理率',
+          //     type: 'bar',
+          //     barGap: 0,
+          //     label: labelOption,
+          //     emphasis: {
+          //       focus: 'series'
+          //     },
+          //     data: data1
+          //   },
+          //   {
+          //     name: '满意度',
+          //     type: 'bar',
+          //     label: labelOption,
+          //     emphasis: {
+          //       focus: 'series'
+          //     },
+          //     data:data2
+          //   },
+          //   {
+          //     name: '培训完成率',
+          //     type: 'bar',
+          //     label: labelOption,
+          //     emphasis: {
+          //       focus: 'series'
+          //     },
+          //     data:data3
+          //   }
+          // ]
+        };
+        option && s5zhiLiangMuBiao.setOption(option);
       }
     }
   }

+ 153 - 90
src/views/statistics/item/s2manYiDu.vue

@@ -33,6 +33,7 @@
       height:{
         type:String,
         default: window.screen.height/4+"px"
+        // default: "100%"
       },
       id:{
         type:String,
@@ -45,7 +46,7 @@
     },
     data () {
       return {
-        title:'客户满意',
+        title:'客户满意',
         dialogOff:false,
       }
     },
@@ -65,99 +66,161 @@
       drawLine(){
         let s2manYiDu = echarts.init(document.getElementById(this.id))
 
-        let data2 = [];
-                data2.push(Number(this.data.t_myddc2Begin.number*100))
-                data2.push(Number(this.data.t_myddc2End.number*100))
-                data2.push(Number(this.data.t_myddc3Begin.number*100))
-                data2.push(Number(this.data.t_myddc3End.number*100))
+        // let data2 = [];
+        // data2.push(Number(this.data.t_myddc2Begin.number*100))
+        // data2.push(Number(this.data.t_myddc2End.number*100))
+        // data2.push(Number(this.data.t_myddc3Begin.number*100))
+        // data2.push(Number(this.data.t_myddc3End.number*100))
 
-                let dataAxis = [];
-                dataAxis.push("检测")
-                dataAxis.push("检测")
-                dataAxis.push("满意率")
-                dataAxis.push("满意率")
- let beingDate=this.data.t_myddc2Begin.date
- let endDate=this.data.t_myddc2End.date
-      let option = {
-         grid: {
-                      top: '20%',
-                      left: '3%',
-                      right: '4%',
-                      bottom: '10%',
-                      containLabel: true
-                  },
-        title: {
-          text: this.title,
-          subtext: "        "+beingDate+"-"+endDate
-        },
-        xAxis: {
-          data: dataAxis,
-          axisLabel: {
-            inside: false,
-            color: '#000',
-            interval:0
-          },
-          axisTick: {
-            show: true
-          },
-          axisLine: {
-            show: true
-          },
-          z: 10
-        },
-        yAxis: {
-          axisLine: {
-            show: false
-          },
-          axisTick: {
-            show: false
-          },
-          axisLabel: {
-                                 show: true,
-                                 textStyle:{color:'#000'},
-                                 interval: 'auto',
-                                 formatter: '{value} %'
-                                 },
-        },
-        dataZoom: [
-          {
-            type: 'inside'
-          }
-        ],
-        tooltip: {
-               trigger: 'axis',
-               axisPointer: {
-                 type: 'shadow'
-               },
-               formatter: function (datas) {
-                   let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
-                   var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+((datas[0].value-1))+"%"
-                   return res
-               }
-        },
-        series: [
-          {
-            type: 'bar',
-            showBackground: true,
-            itemStyle: {
-              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                { offset: 0, color: '#83bff6' },
-                { offset: 0.5, color: '#188df0' },
-                { offset: 1, color: '#188df0' }
-              ])
+        // let dataAxis = [];
+        // dataAxis.push("检测")
+        // dataAxis.push("检测")
+        // dataAxis.push("满意率")
+        // dataAxis.push("满意率")
+        // let barData = []
+        // for (let i = 0; i < this.data.t_khmydtjbNum.date.length; i++) {
+        //   let e=[]
+        //   if (this.data.t_khmydtjbNum.numberAll[i]===0) {
+        //     e =[this.data.t_khmydtjbNum.date[i], 0]
+        //   } else {
+        //     e =[this.data.t_khmydtjbNum.date[i], Math.floor(this.data.t_khmydtjbNum.number[i]/this.data.t_khmydtjbNum.numberAll[i] * 10000) / 100]
+        //   }
+        //   barData.push(e)
+        // }
+        let e=[this.data.t_khmydtjbNum.number[0],this.data.t_khmydtjbNum.numberAll[0],this.data.t_khmydtjbNum.res[0]]
+
+        let beingDate=this.data.t_myddc2Begin.date
+        let endDate=this.data.t_myddc2End.date
+        let option = {
+            legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
             },
-            emphasis: {
-              itemStyle: {
-                color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                  { offset: 0, color: '#2378f7' },
-                  { offset: 0.7, color: '#2378f7' },
-                  { offset: 1, color: '#83bff6' }
-                ])
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['满意份数', '调查份数', '满意度']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '份数',
+                max: this.data.t_khmydtjbNum.number[0]>this.data.t_khmydtjbNum.numberAll[0]?this.data.t_khmydtjbNum.number[0]+1:this.data.t_khmydtjbNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '满意度',
+                max: this.data.t_khmydtjbNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
+                }
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#66CCCC'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
               }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
             },
-            data: data2
-          }
-        ]
+        // xAxis: {
+        //   data: dataAxis,
+        //   axisLabel: {
+        //     inside: false,
+        //     color: '#000',
+        //     interval:0
+        //   },
+        //   axisTick: {
+        //     show: true
+        //   },
+        //   axisLine: {
+        //     show: true
+        //   },
+        //   z: 10
+        // },
+        // yAxis: {
+        //   axisLine: {
+        //     show: false
+        //   },
+        //   axisTick: {
+        //     show: false
+        //   },
+        //   axisLabel: {
+        //                          show: true,
+        //                          textStyle:{color:'#000'},
+        //                          interval: 'auto',
+        //                          formatter: '{value} %'
+        //                          },
+        // },
+        // dataZoom: [
+        //   {
+        //     type: 'inside'
+        //   }
+        // ],
+        // tooltip: {
+        //        trigger: 'axis',
+        //        axisPointer: {
+        //          type: 'shadow'
+        //        },
+        //        formatter: function (datas) {
+        //            let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
+        //            var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+((datas[0].value-1))+"%"
+        //            return res
+        //        }
+        // },
+        // series: [
+        //   {
+        //     type: 'bar',
+        //     showBackground: true,
+        //     itemStyle: {
+        //       color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+        //         { offset: 0, color: '#83bff6' },
+        //         { offset: 0.5, color: '#188df0' },
+        //         { offset: 1, color: '#188df0' }
+        //       ])
+        //     },
+        //     emphasis: {
+        //       itemStyle: {
+        //         color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+        //           { offset: 0, color: '#2378f7' },
+        //           { offset: 0.7, color: '#2378f7' },
+        //           { offset: 1, color: '#83bff6' }
+        //         ])
+        //       }
+        //     },
+        //     data: data2
+        //   }
+        // ]
       };
       option && s2manYiDu.setOption(option);
       }

+ 151 - 82
src/views/statistics/item/s2manYiDuPro.vue

@@ -45,7 +45,7 @@
     },
     data () {
       return {
-        title:'满意度',
+        title:'客户满意度',
         dialogOff:false,
       }
     },
@@ -68,90 +68,159 @@
         // let beginInof = GetPercent(Number(this.data.t_myddcBegin.number),Number(this.data.t_myddc2Begin.number))
         // let endInof = GetPercent(Number(this.data.t_myddcEnd.number),Number(this.data.t_myddc2End.number))
 
-        let data1 = [];
-                data1.push(this.data.t_myddc1Begin.number);
-                data1.push(this.data.t_myddc1End.number);
-                data1.push(this.data.t_myddc2Begin.number);
-                data1.push(this.data.t_myddc2End.number);
-                data1.push(this.data.t_myddc3Begin.number);
-                data1.push(this.data.t_myddc3End.number);
-                data1.push(this.data.t_myddc4Begin.number);
-                data1.push(this.data.t_myddc4End.number);
-                data1.push(this.data.t_myddc5Begin.number);
-                data1.push(this.data.t_myddc5End.number);
-                data1.push(this.data.t_myddc6Begin.number);
-                data1.push(this.data.t_myddc6End.number);
+        // let data1 = [];
+        //         data1.push(this.data.t_myddc1Begin.number);
+        //         data1.push(this.data.t_myddc1End.number);
+        //         data1.push(this.data.t_myddc2Begin.number);
+        //         data1.push(this.data.t_myddc2End.number);
+        //         data1.push(this.data.t_myddc3Begin.number);
+        //         data1.push(this.data.t_myddc3End.number);
+        //         data1.push(this.data.t_myddc4Begin.number);
+        //         data1.push(this.data.t_myddc4End.number);
+        //         data1.push(this.data.t_myddc5Begin.number);
+        //         data1.push(this.data.t_myddc5End.number);
+        //         data1.push(this.data.t_myddc6Begin.number);
+        //         data1.push(this.data.t_myddc6End.number);
 
-                let data3 = [];
-                data3.push(this.data.t_myddcBegin.date+"技术水平");
-                data3.push(this.data.t_myddcEnd.date+"技术水平");
-                data3.push(this.data.t_myddcBegin.date+"检测效率满意度");
-                data3.push(this.data.t_myddcEnd.date+"检测效率满意度");
-                data3.push(this.data.t_myddcBegin.date+"工作态度");
-                data3.push(this.data.t_myddcEnd.date+"工作态度");
-                data3.push(this.data.t_myddcBegin.date+"检测准确性");
-                data3.push(this.data.t_myddcEnd.date+"检测准确性");
-                data3.push(this.data.t_myddcBegin.date+"报告完成率");
-                data3.push(this.data.t_myddcEnd.date+"报告完成率");
-                data3.push(this.data.t_myddcBegin.date+"检测效率");
-                data3.push(this.data.t_myddcEnd.date+"检测效率");
-
-         var option = {
-            grid: {
-                top: '20%',
-                left: '3%',
-                right: '4%',
-                bottom: '10%',
-                containLabel: true
+        //         let data3 = [];
+        //         data3.push(this.data.t_myddcBegin.date+"技术水平");
+        //         data3.push(this.data.t_myddcEnd.date+"技术水平");
+        //         data3.push(this.data.t_myddcBegin.date+"检测效率满意度");
+        //         data3.push(this.data.t_myddcEnd.date+"检测效率满意度");
+        //         data3.push(this.data.t_myddcBegin.date+"工作态度");
+        //         data3.push(this.data.t_myddcEnd.date+"工作态度");
+        //         data3.push(this.data.t_myddcBegin.date+"检测准确性");
+        //         data3.push(this.data.t_myddcEnd.date+"检测准确性");
+        //         data3.push(this.data.t_myddcBegin.date+"报告完成率");
+        //         data3.push(this.data.t_myddcEnd.date+"报告完成率");
+        //         data3.push(this.data.t_myddcBegin.date+"检测效率");
+        //         data3.push(this.data.t_myddcEnd.date+"检测效率");
+        
+        // let barData = []
+        // for (let i = 0; i < this.data.t_khmydtjbNum.date.length; i++) {
+          let e=[this.data.t_khmydtjbNum.number[0],this.data.t_khmydtjbNum.numberAll[0],this.data.t_khmydtjbNum.res[0]]
+        //   barData.push(e)
+        // }
+        console.log(e,'e')
+        let beingDate=this.data.t_myddc2Begin.date
+        let endDate=this.data.t_myddc2End.date
+        var option = {
+          legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
             },
-        title: [
-          {
-           text: this.title,
-           subtext: this.data.t_myddcBegin.date+"-"+this.data.t_myddcEnd.date+"年数据统计"
-          }
-        ],
-        polar: {
-          radius: [15, '90%']
-        },
-        angleAxis: {
-          max: GetMax(data1)+0.1,
-          startAngle: 75
-        },
-        radiusAxis: {
-          type: 'category',
-          data: data3
-        },
-        tooltip: {
-                      formatter: function (datas) {
-                          var res=datas.name+': '+((datas.value-0.01)*100).toFixed(2)+"%"
-                          return res
-                      }
-                  },
-        series: {
-          itemStyle:{
-            normal:{
-              color:function(params){
-                var colorList = [
-                  '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
-                   '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
-                   '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
-                ];
-                return colorList[params.dataIndex%4];
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['满意份数', '调查份数', '满意度']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '份数',
+                max: this.data.t_khmydtjbNum.number[0]>this.data.t_khmydtjbNum.numberAll[0]?this.data.t_khmydtjbNum.number[0]+1:this.data.t_khmydtjbNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '满意度',
+                max: this.data.t_khmydtjbNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
+                }
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#66CCCC'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
               }
-            }
-          },
-          type: 'bar',
-          data: data1,
-          coordinateSystem: 'polar',
-          label: {
-            show: true,
-            position: 'middle',
-            formatter: function(a,b,c){
-              return '{b}: {c}'
-            }
-          }
-        }
-      };
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              subtext: "        "+endDate+"年度"
+            },
+        //     grid: {
+        //         top: '20%',
+        //         left: '3%',
+        //         right: '4%',
+        //         bottom: '10%',
+        //         containLabel: true
+        //     },
+        // title: [
+        //   {
+        //    text: this.title,
+        //    subtext: this.data.t_myddcBegin.date+"-"+this.data.t_myddcEnd.date+"年数据统计"
+        //   }
+        // ],
+        // polar: {
+        //   radius: [15, '90%']
+        // },
+        // angleAxis: {
+        //   max: GetMax(data1)+0.1,
+        //   startAngle: 75
+        // },
+        // radiusAxis: {
+        //   type: 'category',
+        //   data: data3
+        // },
+        // tooltip: {
+        //               formatter: function (datas) {
+        //                   var res=datas.name+': '+((datas.value-0.01)*100).toFixed(2)+"%"
+        //                   return res
+        //               }
+        //           },
+        // series: {
+        //   itemStyle:{
+        //     normal:{
+        //       color:function(params){
+        //         var colorList = [
+        //           '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
+        //            '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+        //            '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+        //         ];
+        //         return colorList[params.dataIndex%4];
+        //       }
+        //     }
+        //   },
+        //   type: 'bar',
+        //   data: data1,
+        //   coordinateSystem: 'polar',
+        //   label: {
+        //     show: true,
+        //     position: 'middle',
+        //     formatter: function(a,b,c){
+        //       return '{b}: {c}'
+        //     }
+        //   }
+        // }
+        };
 
        option && s2manYiDu.setOption(option);
       }

+ 148 - 68
src/views/statistics/item/s3tousu.vue

@@ -44,8 +44,9 @@
     },
     data () {
       return {
-        title:'投诉率',
+        title:'客户投诉率',
         dialogOff:false,
+        measured:[]
       }
     },
     mounted(){
@@ -63,79 +64,158 @@
       },
       drawLine(){
 
-        let beginInof = Number(this.data.t_complaintBegin.number)
-        let endInof = Number(this.data.t_complaintEnd.number)
+        // let beginInof = Number(this.data.t_complaintBegin.number)
+        // let endInof = Number(this.data.t_complaintEnd.number)
         let s3tousu = echarts.init(document.getElementById(this.id))
-        let beingDate=this.data.t_complaintBegin.date
-        let endDate=this.data.t_complaintEnd.date
+        // let beingDate=this.data.t_complaintBegin.date
+        // let endDate=this.data.t_complaintEnd.date
         var option;
-       option = {
-         rotate: {
-            min: -90,
-            max: 90
-          },
-          grid: {
-                top: '20%',
-                left: '3%',
-                right: '4%',
-                bottom: '10%',
-                containLabel: true
+        //v2
+        // let that = this
+        // for (let i = 0; i < that.data.t_complaintNum.date.length; i++) {
+        //   let result = 0
+        //   if(that.data.t_mjwtsqbNum.number[i] === 0){
+        //     result = Math.floor(that.data.t_complaintNum.number[i]/1 * 10000) / 100
+        //   }else{
+        //     result = Math.floor(that.data.t_complaintNum.number[i]/that.data.t_mjwtsqbNum.number[i] * 10000) / 100
+        //   }
+        //   that.measured.push(result)
+        //   // console.log(that.data.t_complaintNum.number[i], that.data.t_mjwtsqbNum.number[i], result, 'res')
+        // }
+        //v3
+         let e=[this.data.t_complaintNum.number[0],this.data.t_complaintNum.numberAll[0],this.data.t_complaintNum.res[0]]
+
+        option = {
+          //v3
+              legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
             },
-          title: {
-             text: this.title,
-             subtext: '    '+this.data.t_complaintBegin.date+'-'+this.data.t_complaintEnd.date,
-           },
-         xAxis: {
-           type: 'category',
-           data: ['投诉总数','投诉总数']
-         },
-         yAxis: {
-           max:this.data.t_complaintBegin.number>this.data.t_complaintEnd.number?this.data.t_complaintBegin.number+1:this.data.t_complaintEnd.number+1,
-           min:0,
-           type: 'value',
-           minInterval: 1, //设置成1保证坐标轴分割刻度显示成整数。
-         },
-         tooltip: {
-                trigger: 'axis',
-                axisPointer: {
-                  type: 'shadow'
-                },
-                formatter: function (datas) {
-                    let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
-                    var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+datas[0].value
-                    return res
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['投诉总数', '委托总数', '客户投诉率']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '次数',
+                max: this.data.t_complaintNum.number[0]>this.data.t_complaintNum.numberAll[0]?this.data.t_complaintNum.number[0]+1:this.data.t_complaintNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '客户投诉率',
+                max: this.data.t_complaintNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
                 }
-         },
-         series: [
-           {
-
-             itemStyle: {
-                    normal: {
-                        color: function(params) {
-                            var colorList = [
-                              '#F0805A','#B5C334','#FCCE10','#E87C25','#27727B',
-                               '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
-                               '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
-                            ];
-                            return colorList[params.dataIndex]
-                        },
-                    }
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#cccc33'
                 },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+          //v2
+        //   rotate: {
+        //     min: -90,
+        //     max: 90
+        //   },
+        //   grid: {
+        //         top: '20%',
+        //         left: '3%',
+        //         right: '4%',
+        //         bottom: '10%',
+        //         containLabel: true
+        //     },
+        //   title: {
+        //      text: this.title,
+        //      subtext: '    '+this.data.t_complaintNum.date[0]+'-'+this.data.t_complaintNum.date[this.data.t_complaintNum.date.length-1],
+        //    },
+        //  xAxis: {
+        //    type: 'category',
+        //    data: this.data.t_complaintNum.date
+        //  },
+        //  yAxis: {
+        //   //  max:this.data.t_complaintBegin.number>this.data.t_complaintEnd.number?this.data.t_complaintBegin.number+1:this.data.t_complaintEnd.number+1,
+        //   // max: Math.max(...this.measured),
+        //   // min:0,
+        //   type: 'value',
+        //   axisLabel: {
+        //     show: true,
+        //     textStyle:{color:'#000'},
+        //     interval: 'auto',
+        //     formatter: '{value} %'
+        //   },
+        //  },
+        //  tooltip: {
+        //         trigger: 'axis',
+        //         axisPointer: {
+        //           type: 'shadow'
+        //         },
+        //         formatter: function (params) {
+        //           // console.log(params,'tousu ')
+        //           return params[0].axisValue + '<br/>客户投诉率:' + params[0].data;
+        //         }
+        //         // formatter: 
+        //         // function (datas) {
+        //         //     let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
+        //         //     var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+datas[0].value
+        //         //     return res
+        //         // }
+        //  },
+        //  series: [
+        //    {
+        //      itemStyle: {
+        //             normal: {
+        //                 color: function(params) {
+        //                     var colorList = [
+        //                       '#F0805A','#B5C334','#FCCE10','#E87C25','#27727B',
+        //                        '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+        //                        '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+        //                     ];
+        //                     return colorList[params.dataIndex]
+        //                 },
+        //             }
+        //         },
 
-             data: [
-               {
-                 value:this.data.t_complaintBegin.number,
-                 itemStyle: {
-                   color: '#61a0a8'
-                 }
-
-               },
-               this.data.t_complaintEnd.number,
-             ],
-             type: 'bar',
-             barWidth:50
-           }
-         ]
+        //      data: this.measured,
+        //      type: 'bar',
+        //      barWidth:50
+        //    }
+        //  ]
        };
 
        option && s3tousu.setOption(option);

+ 191 - 80
src/views/statistics/item/s4renYuanPeiXun.vue

@@ -65,91 +65,202 @@
       drawLine(){
         let s4renYuanPeiXun = echarts.init(document.getElementById(this.id))
 
-        let beginInof = GetPercent(Number(this.data.t_rypxjlnkBegin.number),Number(this.data.t_ryndpxjhBegin.number))
-        let endInof = GetPercent(Number(this.data.t_rypxjlnkEnd.number),Number(this.data.t_ryndpxjhEnd.number))
+        // let beginInof = GetPercent(Number(this.data.t_rypxjlnkBegin.number),Number(this.data.t_ryndpxjhBegin.number))
+        // let endInof = GetPercent(Number(this.data.t_rypxjlnkEnd.number),Number(this.data.t_ryndpxjhEnd.number))
 
-         let data1 = [];
-         data1.push(this.data.t_ryndpxjhBegin.number);
-         data1.push(this.data.t_ryndpxjhEnd.number);
-         let data2 = [];
-         data2.push(this.data.t_rypxjlnkBegin.number);
-         data2.push(this.data.t_rypxjlnkEnd.number);
-         let data3 = [];
-         data3.push(this.data.t_rypxjlnkBegin.date);
-         data3.push(this.data.t_rypxjlnkEnd.date);
+        //  let data1 = [];
+        //  data1.push(this.data.t_ryndpxjhBegin.number);
+        //  data1.push(this.data.t_ryndpxjhEnd.number);
+        //  let data2 = [];
+        //  data2.push(this.data.t_rypxjlnkBegin.number);
+        //  data2.push(this.data.t_rypxjlnkEnd.number);
+        //  let data3 = [];
+        //  data3.push(this.data.t_rypxjlnkBegin.date);
+        //  data3.push(this.data.t_rypxjlnkEnd.date);
 
-         var option;
-       option = {
-          title: {
-            text: this.title,
-            subtext: this.data.t_rypxjlnkBegin.date+"-"+this.data.t_rypxjlnkEnd.date+"年培训次数"
-          },
-          tooltip: {
-                 trigger: 'axis',
-                 axisPointer: {
-                   type: 'shadow'
-                 },
-                 formatter: function (datas) {
-                     var res='计划:'+datas[0].value+"<BR>"
-                     res+='记录:'+datas[1].value+"<BR>"
-                     res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
-                     return res
-                 }
-          },
-          legend: {show:false},
-           grid: {
-                top: '20%',
-                left: '3%',
-                right: '4%',
-                bottom: '10%',
-                containLabel: true
-            },
-          xAxis: {
-            type: 'category',
-            data: data3
-            
-          },
-          yAxis: {
-            type: 'value',
-            boundaryGap: [0, 0.01]
-          },
-          series: [
 
-            {
-              name: ['计划'],
-              type: 'bar',
-              data: data1,
-              itemStyle: {
-                    normal: {
-                        color: function(params) {
-                            var colorList = [
-                              '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
-                               '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
-                               '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
-                            ];
-                            return colorList[params.dataIndex]
-                        },
-                    }
-                },
+        // let barData = []
+        // for (let i = 0; i < this.data.t_ryywpxjlNum.date.length; i++) {
+        //   let e=[this.data.t_ryywpxjlNum.date[i],this.data.t_ryywpxjlNum.number[i],this.data.t_ryywpxjlNum.numberAll[i]]
+        //   barData.push(e)
+        // }
+         let e=[this.data.t_ryywpxjlNum.number[0],this.data.t_ryywpxjlNum.numberAll[0],this.data.t_ryywpxjlNum.res[0]]
+
+
+        var option;
+        option = {
+          //v3
+              legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
             },
-            {
-              name: ['记录'],
-              type: 'bar',
-              data: data2,
-              itemStyle: {
-                    normal: {
-                        color: function(params) {
-                            var colorList = [
-                              '#E87C25','#FAD860','#FCCE10','#E87C25','#27727B',
-                               '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
-                               '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
-                            ];
-                            return colorList[params.dataIndex]
-                        },
-                    }
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['已完成数量', '所有数量', '培训完成率']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '数量',
+                max: this.data.t_ryywpxjlNum.number[0]>this.data.t_ryywpxjlNum.numberAll[0]?this.data.t_ryywpxjlNum.number[0]+1:this.data.t_ryywpxjlNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '培训完成率',
+                max: this.data.t_ryywpxjlNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
+                }
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#cc3366'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
                 },
-            }
-          ]
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+          //v2
+        //     legend: {},
+        //     tooltip: {
+        //       trigger: 'axis',
+        //       axisPointer: {
+        //         type: 'shadow'
+        //       },
+        //       formatter: function (params) {
+        //         return params[0].data[0] + '<br/>已完成培训数量:' + params[0].data[1]+ '<br/>所有培训数量:' + params[0].data[2];
+        //       }
+        //     },
+        //     dataset: {
+        //       source: barData
+        //     },
+        //     xAxis: { type: 'category' },
+        //     yAxis: {
+        //       type: 'value',
+        //       axisLabel: {
+        //         show: true,
+        //         textStyle:{color:'#000'},
+        //         interval: 'auto',
+        //         // formatter: '{value} %'
+        //       },
+            
+        //     },
+        //     // Declare several bar series, each will be mapped
+        //     // to a column of dataset.source by default.
+        //     series: [{ type: 'bar'},{ type: 'bar'}],
+        //     grid: {
+        //       top: '20%',
+        //       left: '3%',
+        //       right: '4%',
+        //       bottom: '10%',
+        //       containLabel: true
+        //     },
+        //     title: {
+        //       text: this.title,
+        //       subtext: "        "+this.data.t_ryywpxjlNum.date[0]+"-"+this.data.t_ryywpxjlNum.date[this.data.t_ryywpxjlNum.date.length-1]
+        //     },
+        //v1
+          // title: {
+          //   text: this.title,
+          //   subtext: this.data.t_rypxjlnkBegin.date+"-"+this.data.t_rypxjlnkEnd.date+"年培训次数"
+          // },
+          // tooltip: {
+          //        trigger: 'axis',
+          //        axisPointer: {
+          //          type: 'shadow'
+          //        },
+          //        formatter: function (datas) {
+          //            var res='计划:'+datas[0].value+"<BR>"
+          //            res+='记录:'+datas[1].value+"<BR>"
+          //            res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
+          //            return res
+          //        }
+          // },
+          // legend: {show:false},
+          //  grid: {
+          //       top: '20%',
+          //       left: '3%',
+          //       right: '4%',
+          //       bottom: '10%',
+          //       containLabel: true
+          //   },
+          // xAxis: {
+          //   type: 'category',
+          //   data: data3
+            
+          // },
+          // yAxis: {
+          //   type: 'value',
+          //   boundaryGap: [0, 0.01]
+          // },
+          // series: [
+
+          //   {
+          //     name: ['计划'],
+          //     type: 'bar',
+          //     data: data1,
+          //     itemStyle: {
+          //           normal: {
+          //               color: function(params) {
+          //                   var colorList = [
+          //                     '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
+          //                      '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+          //                      '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+          //                   ];
+          //                   return colorList[params.dataIndex]
+          //               },
+          //           }
+          //       },
+          //   },
+          //   {
+          //     name: ['记录'],
+          //     type: 'bar',
+          //     data: data2,
+          //     itemStyle: {
+          //           normal: {
+          //               color: function(params) {
+          //                   var colorList = [
+          //                     '#E87C25','#FAD860','#FCCE10','#E87C25','#27727B',
+          //                      '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+          //                      '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+          //                   ];
+          //                   return colorList[params.dataIndex]
+          //               },
+          //           }
+          //       },
+          //   }
+          // ]
         };
 
 

+ 267 - 155
src/views/statistics/item/s5renYuanJianDu.vue

@@ -77,163 +77,275 @@
          data3.push(this.data.t_zljdssBegin.date);
          data3.push(this.data.t_zljdssEnd.date);
          const posList = [
-  'left',
-  'right',
-  'top',
-  'bottom',
-  'inside',
-  'insideTop',
-  'insideLeft',
-  'insideRight',
-  'insideBottom',
-  'insideTopLeft',
-  'insideTopRight',
-  'insideBottomLeft',
-  'insideBottomRight'
-];
-app.configParameters = {
-  rotate: {
-    min: -90,
-    max: 90
-  },
-  align: {
-    options: {
-      left: 'left',
-      center: 'center',
-      right: 'right'
-    }
-  },
-  verticalAlign: {
-    options: {
-      top: 'top',
-      middle: 'middle',
-      bottom: 'bottom'
-    }
-  },
-  position: {
-    options: posList.reduce(function (map, pos) {
-      map[pos] = pos;
-      return map;
-    }, {})
-  },
-  distance: {
-    min: 0,
-    max: 100
-  }
-};
-app.config = {
-  rotate: 90,
-  align: 'left',
-  verticalAlign: 'middle',
-  position: 'bottom',
-  distance: 0,
-  onChange: function () {
-    const labelOption = {
-      rotate: app.config.rotate,
-      align: app.config.align,
-      verticalAlign: app.config.verticalAlign,
-      position: app.config.position,
-      distance: app.config.distance
-    };
-    myChart.setOption({
-      series: [
-        {
-          label: labelOption
-        },
-        {
-          label: labelOption
-        },
-        {
-          label: labelOption
-        },
-        {
-          label: labelOption
-        }
-      ]
-    });
-  }
-};
-const labelOption = {
-  show: true,
-  position: app.config.position,
-  distance: app.config.distance,
-  align: app.config.align,
-  verticalAlign: app.config.verticalAlign,
-  rotate: app.config.rotate,
-  formatter: '{c}  {name|{a}}',
-  fontSize: 16,
-  rich: {
-      name: {
-          textBorderColor: '#fff'
-      }
-  }
-};
-let option = {
-  grid: {
-                top: '20%',
-                left: '3%',
-                right: '4%',
-                bottom: '10%',
-                containLabel: true
-            },
-  title: {
-            text: this.title,
-            subtext: this.data.t_zljdssBegin.date+"-"+this.data.t_zljdssEnd.date+"年监督次数"
+          'left',
+          'right',
+          'top',
+          'bottom',
+          'inside',
+          'insideTop',
+          'insideLeft',
+          'insideRight',
+          'insideBottom',
+          'insideTopLeft',
+          'insideTopRight',
+          'insideBottomLeft',
+          'insideBottomRight'
+        ];
+        app.configParameters = {
+          rotate: {
+            min: -90,
+            max: 90
           },
-  color : [
-                              '#C6E579','#B5C334','#FCCE10','#E87C25','#27727B',
-                               '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
-                               '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
-                            ],
-  tooltip: {
-         trigger: 'axis',
-         axisPointer: {
-           type: 'shadow'
-         },
-         formatter: function (datas) {
-             var res='计划:'+datas[0].value+"<BR>"
-             res+='记录:'+datas[1].value+"<BR>"
-             res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
-             return res
-         }
-  },
-  legend: {show:false},
-  xAxis: [
-    {
-      type: 'category',
-      axisTick: { show: false },
-      data: data3
-    }
-  ],
-  yAxis: [
-    {
-      type: 'value'
-    }
-  ],
-  series: [
-    {
-      name: '计划',
-      type: 'bar',
-      barGap: 0,
-      label: labelOption,
-      emphasis: {
-        focus: 'series'
-      },
-      data: data1
-    },
-    {
-      name: '记录',
-      type: 'bar',
-      label: labelOption,
-      emphasis: {
-        focus: 'series'
-      },
-      data:data2
-    }
-  ]
-};
+          align: {
+            options: {
+              left: 'left',
+              center: 'center',
+              right: 'right'
+            }
+          },
+          verticalAlign: {
+            options: {
+              top: 'top',
+              middle: 'middle',
+              bottom: 'bottom'
+            }
+          },
+          position: {
+            options: posList.reduce(function (map, pos) {
+              map[pos] = pos;
+              return map;
+            }, {})
+          },
+          distance: {
+            min: 0,
+            max: 100
+          }
+        };
+        app.config = {
+          rotate: 90,
+          align: 'left',
+          verticalAlign: 'middle',
+          position: 'bottom',
+          distance: 0,
+          onChange: function () {
+            const labelOption = {
+              rotate: app.config.rotate,
+              align: app.config.align,
+              verticalAlign: app.config.verticalAlign,
+              position: app.config.position,
+              distance: app.config.distance
+            };
+            myChart.setOption({
+              series: [
+                {
+                  label: labelOption
+                },
+                {
+                  label: labelOption
+                },
+                {
+                  label: labelOption
+                },
+                {
+                  label: labelOption
+                }
+              ]
+            });
+          }
+        };
+        const labelOption = {
+          show: true,
+          position: app.config.position,
+          distance: app.config.distance,
+          align: app.config.align,
+          verticalAlign: app.config.verticalAlign,
+          rotate: app.config.rotate,
+          formatter: '{c}  {name|{a}}',
+          fontSize: 16,
+          rich: {
+              name: {
+                  textBorderColor: '#fff'
+              }
+          }
+        };
+
+        //v2
+        // let barData = []
+        // for (let i = 0; i < this.data.t_zljdNum.date.length; i++) {
+        //   let e=[this.data.t_zljdNum.date[i],this.data.t_zljdNum.number[i],this.data.t_zljdNum.numberAll[i]]
+        //   barData.push(e)
+        // }
+        //v3
+         let e=[this.data.t_zljdNum.number[0],this.data.t_zljdNum.numberAll[0],this.data.t_zljdNum.res[0]]
+
+        let option = {
+          //v3
+            legend: {},
+            tooltip: {
+              trigger: 'axis',
+              axisPointer: {
+                type: 'shadow'
+              },
+              // formatter: function (params) {
+              //   return params[0].data[0] + '<br/>满意份数:' + params[0].data[1] + '<br/>调查总份数: ' + params[0].data[2];
+              // }
+            },
+            // dataset: {
+            //   source: barData
+            // },
+            xAxis: { type: 'category',data:['已完成数量', '所有数量', '监督完成率']},
+            yAxis: [
+              {
+                type: 'value',
+                scale: true,
+                name: '数量',
+                max: this.data.t_zljdNum.number[0]>this.data.t_zljdNum.numberAll[0]?this.data.t_zljdNum.number[0]+1:this.data.t_zljdNum.numberAll[0]+1,
+                min: 0,
+                // boundaryGap: [0.2, 0.2]
+              },
+              {
+                type: 'value',
+                scale: true,
+                name: '监督完成率',
+                max: this.data.t_zljdNum.res[0],
+                min: 0,
+                axisLabel: {
+                  formatter: '{value} %'
+                }
+              }
+            ],
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            // series: [{ type: 'bar' }],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                itemStyle: {
+                  color: '#9933cc'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+          //v2
+            // legend: {},
+            // tooltip: {
+            //   trigger: 'axis',
+            //   axisPointer: {
+            //     type: 'shadow'
+            //   },
+            //   formatter: function (params) {
+            //     return params[0].data[0] + '<br/>已完成监督数量:' + params[0].data[1]+ '<br/>所有监督数量:' + params[0].data[2];
+            //   }
+            // },
+            // dataset: {
+            //   source: barData
+            // },
+            // xAxis: { type: 'category' },
+            // yAxis: {
+            //   type: 'value',
+            //   axisLabel: {
+            //     show: true,
+            //     textStyle:{color:'#000'},
+            //     interval: 'auto',
+            //     // formatter: '{value} %'
+            //   },
+            
+            // },
+            // // Declare several bar series, each will be mapped
+            // // to a column of dataset.source by default.
+            // series: [{ type: 'bar'},{ type: 'bar'}],
+            // grid: {
+            //   top: '20%',
+            //   left: '3%',
+            //   right: '4%',
+            //   bottom: '10%',
+            //   containLabel: true
+            // },
+            // title: {
+            //   text: this.title,
+            //   subtext: "        "+this.data.t_zljdNum.date[0]+"-"+this.data.t_zljdNum.date[this.data.t_zljdNum.date.length-1]
+            // },
+            //v1
+          // grid: {
+          //               top: '20%',
+          //               left: '3%',
+          //               right: '4%',
+          //               bottom: '10%',
+          //               containLabel: true
+          //           },
+          // title: {
+          //           text: this.title,
+          //           subtext: this.data.t_zljdssBegin.date+"-"+this.data.t_zljdssEnd.date+"年监督次数"
+          //         },
+          // color : [
+          //                             '#C6E579','#B5C334','#FCCE10','#E87C25','#27727B',
+          //                              '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+          //                              '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+          //                           ],
+          // tooltip: {
+          //        trigger: 'axis',
+          //        axisPointer: {
+          //          type: 'shadow'
+          //        },
+          //        formatter: function (datas) {
+          //            var res='计划:'+datas[0].value+"<BR>"
+          //            res+='记录:'+datas[1].value+"<BR>"
+          //            res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
+          //            return res
+          //        }
+          // },
+          // legend: {show:false},
+          // xAxis: [
+          //   {
+          //     type: 'category',
+          //     axisTick: { show: false },
+          //     data: data3
+          //   }
+          // ],
+          // yAxis: [
+          //   {
+          //     type: 'value'
+          //   }
+          // ],
+          // series: [
+          //   {
+          //     name: '计划',
+          //     type: 'bar',
+          //     barGap: 0,
+          //     label: labelOption,
+          //     emphasis: {
+          //       focus: 'series'
+          //     },
+          //     data: data1
+          //   },
+          //   {
+          //     name: '记录',
+          //     type: 'bar',
+          //     label: labelOption,
+          //     emphasis: {
+          //       focus: 'series'
+          //     },
+          //     data:data2
+          //   }
+          // ]
+        };
 
-       option && s5renYuanJianDu.setOption(option);
+        option && s5renYuanJianDu.setOption(option);
       }
     }
   }

+ 214 - 192
src/views/statistics/item/s7sheBeiJiaoZhun.vue

@@ -15,8 +15,9 @@
 
 <script>
   import echarts from 'echarts'
-  import dialogView from '../properties/s7sheBeiJiaoZhunPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
+  import dialogView from '../properties/s7sheBeiJiaoZhunPro.vue'
+
   export default {
     components:{
       dialogView
@@ -31,7 +32,7 @@
       },
       height:{
         type:String,
-        default: window.screen.height/4+"px"
+        default: window.screen.height/2+"px"
       },
       id:{
         type:String,
@@ -44,7 +45,7 @@
     },
     data () {
       return {
-        title:'设备校准完成率',
+        title:'设备鉴定/校验计划',
         dialogOff:false,
       }
     },
@@ -63,201 +64,222 @@
       },
       drawLine(){
         let s7sheBeiJiaoZhun = echarts.init(document.getElementById(this.id))
-         var posList = [
-         'left', 'right', 'top', 'bottom',
-         'inside',
-         'insideTop', 'insideLeft', 'insideRight', 'insideBottom',
-         'insideTopLeft', 'insideTopRight', 'insideBottomLeft', 'insideBottomRight'
-     ];
-     app.configParameters = {
-         rotate: {
-             min: -90,
-             max: 90
-         },
-         align: {
-             options: {
-                 left: 'left',
-                 center: 'center',
-                 right: 'right'
-             }
-         },
-         verticalAlign: {
-             options: {
-                 top: 'top',
-                 middle: 'middle',
-                 bottom: 'bottom'
-             }
-         },
-         position: {
-             options: echarts.util.reduce(posList, function (map, pos) {
-                 map[pos] = pos;
-                 return map;
-             }, {})
-         },
-         distance: {
-             min: 0,
-             max: 100
-         }
-     };
 
-     app.config = {
-         rotate: 90,
-         align: 'left',
-         verticalAlign: 'middle',
-         position: 'insideBottom',
-         distance: 15,
-         onChange: function () {
-             var labelOption = {
-                 normal: {
-                     rotate: app.config.rotate,
-                     align: app.config.align,
-                     verticalAlign: app.config.verticalAlign,
-                     position: app.config.position,
-                     distance: app.config.distance
-                 }
-             };
-             s5renYuanJianDu.setOption({
-                 series: [{
-                     label: labelOption
-                 }, {
-                     label: labelOption
-                 }, {
-                     label: labelOption
-                 }, {
-                     label: labelOption
-                 }]
-             });
-         }
-     };
+        // let beginInof = GetPercent(Number(this.data.t_rypxjlnkBegin.number),Number(this.data.t_ryndpxjhBegin.number))
+        // let endInof = GetPercent(Number(this.data.t_rypxjlnkEnd.number),Number(this.data.t_ryndpxjhEnd.number))
+
+        //  let data1 = [];
+        //  data1.push(this.data.t_ryndpxjhBegin.number);
+        //  data1.push(this.data.t_ryndpxjhEnd.number);
+        //  let data2 = [];
+        //  data2.push(this.data.t_rypxjlnkBegin.number);
+        //  data2.push(this.data.t_rypxjlnkEnd.number);
+        //  let data3 = [];
+        //  data3.push(this.data.t_rypxjlnkBegin.date);
+        //  data3.push(this.data.t_rypxjlnkEnd.date);
 
-         var labelOption = {
-         show: true,
-         position: app.config.position,
-         distance: app.config.distance,
-         align: app.config.align,
-         verticalAlign: app.config.verticalAlign,
-         rotate: app.config.rotate,
-         formatter: '{c}  {name|{a}}',
-         fontSize: 12,
-         rich: {
-             name: {
-                 textBorderColor: '#fff'
-             }
-         }
-        };
-        let beginInof = GetPercent(Number(this.data.t_yqsbxzjgBegin.number),Number(this.data.t_ndsbxzjdjhBegin.number))
-        let endInof = GetPercent(Number(this.data.t_yqsbxzjgEnd.number),Number(this.data.t_ndsbxzjdjhEnd.number))
-        let beingDate=this.data.t_ndsbxzjdjhBegin.date
-        let endDate=this.data.t_yqsbxzjgEnd.date
-         let data1 = [];
-         data1.push("计划");
-         data1.push("记录");
-         data1.push("计划");
-         data1.push("记录");
 
-         let data2 = [];
-         data2.push(this.data.t_ndsbxzjdjhBegin.number);
-         data2.push(this.data.t_yqsbxzjgBegin.number);
-         data2.push(this.data.t_ndsbxzjdjhEnd.number);
-         data2.push(this.data.t_yqsbxzjgEnd.number);
+        // let barData = []
+        // for (let i = 0; i < this.data.t_ryywpxjlNum.date.length; i++) {
+        //   let e=[this.data.t_ryywpxjlNum.date[i],this.data.t_ryywpxjlNum.number[i],this.data.t_ryywpxjlNum.numberAll[i]]
+        //   barData.push(e)
+        // }
+        //  let e=[this.data.t_ryywpxjlNum.number[0],this.data.t_ryywpxjlNum.numberAll[0],this.data.t_ryywpxjlNum.res[0]]
 
-       // prettier-ignore
-let dataAxis = data1;
-// prettier-ignore
-let data = data2;
-let yMax = 500;
-let dataShadow = [];
-for (let i = 0; i < data.length; i++) {
-  dataShadow.push(yMax);
-}
-let option = {
-   grid: {
-                top: '20%',
-                left: '3%',
-                right: '4%',
-                bottom: '10%',
-                containLabel: true
+
+        var option;
+        option = {
+          //v3
+          title: {
+            text: this.title,
+            subtext: this.data.t_mjsbjdxzjhzbNum.date+"年校准次数"
+          },
+          tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                          type: 'shadow'
+                        },
+                        formatter: function (datas) {
+                            var res=datas[0].name+"<BR>"+'完成:'+datas[0].value+"<BR>"
+                            res+='计划:'+datas[1].value+"<BR>"
+                            res+='百分比:'+(datas[1].value==null||datas[1].value==0?"0.00":(datas[0].value/datas[1].value*100).toFixed(2))+"%"
+                            return res
+                        }
+          },
+          legend: {},
+          grid: {
+                        top: '10%',
+                        left: '3%',
+                        right: '4%',
+                        bottom: '5%',
+                        containLabel: true
+                    },
+          xAxis: {
+            type: 'value',
+            boundaryGap: [0, 0.01]
+          },
+          yAxis: {
+            type: 'category',
+            data: this.data.t_mjsbjdxzjhzbNum.name,
+            axisLabel: {
+                show: true, // 是否显示X轴的内容,不包含两端的文字
+                interval: 0,
+                // rotate: '50', // 旋转50°
+                lineHeight: 18,
+                // formatter: function(params) {
+                //   //  console.log('formatter', params, params.length)
+                //   var newParamsName = ''// 最终拼接成的字符串
+                //   var paramsNameNumber = params.length// 实际标签的个数
+                //   var provideNumber = 3// 每行能显示的字的个数
+                //   // 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
+                //   if (paramsNameNumber > provideNumber) {
+                //   // ********重点在这里********
+                //     newParamsName = params.substring(0, 3) + '..'// 最终拼成的字符串
+                //   } else { // 将旧标签的值赋给新标签
+                //     newParamsName = params
+                //   }
+                //   // 将最终的字符串返回
+                //   return newParamsName
+                // }
+              },
+          },
+          series: [
+            {
+              type: 'bar',
+              data: this.data.t_mjsbjdxzjhzbNum.number,
+              label: {
+                show: true,
+                position: 'right'
+              },
             },
-  title: {
-    text: this.title,
-    subtext: beingDate+"-"+endDate+"年校准次数"
-  },
-  xAxis: {
-    data: dataAxis,
-    axisLabel: {
-      inside: true,
-      color: '#000'
-    },
-    axisTick: {
-      show: true
-    },
-    axisLine: {
-      show: true
-    },
-    z: 10
-  },
-  yAxis: {
-    axisLine: {
-      show: false
-    },
-    axisTick: {
-      show: false
-    },
-    axisLabel: {
-      color: '#000'
-    }
-  },
-  dataZoom: [
-    {
-      type: 'inside'
-    }
-  ],
-  tooltip: {
-         trigger: 'axis',
-         axisPointer: {
-           type: 'shadow'
-         },
-         formatter: function (datas) {
-             let year1 = datas[0].dataIndex==0||datas[0].dataIndex==2;
-             var res=(year1?beingDate+':':endDate+':')+datas[0].name+':'+datas[0].value
-             return res
-         }
-  },
-  series: [
-    {
-      type: 'bar',
-      showBackground: true,
-      itemStyle: {
-        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-          { offset: 0, color: '#83bff6' },
-          { offset: 0.5, color: '#188df0' },
-          { offset: 1, color: '#188df0' }
-        ])
-      },
-      emphasis: {
-        itemStyle: {
-          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-            { offset: 0, color: '#2378f7' },
-            { offset: 0.7, color: '#2378f7' },
-            { offset: 1, color: '#83bff6' }
-          ])
+            {
+              type: 'bar',
+              data: this.data.t_mjsbjdxzjhzbNum.numberAll,
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
+          ],dataZoom: [
+        {
+            id: 'dataZoomY',
+            type: 'inside',
+            yAxisIndex: [0],
+            filterMode: 'empty'
         }
-      },
-      data: data
-    }
-  ]
-};
-// Enable data zoom when user click bar.
-const zoomSize = 6;
-s7sheBeiJiaoZhun.on('click', function (params) {
-  console.log(dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)]);
-  s7sheBeiJiaoZhun.dispatchAction({
-    type: 'dataZoom',
-    startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)],
-    endValue:
-      dataAxis[Math.min(params.dataIndex + zoomSize / 2, data.length - 1)]
-  });
-});
+      ],
+          //v2
+        //     legend: {},
+        //     tooltip: {
+        //       trigger: 'axis',
+        //       axisPointer: {
+        //         type: 'shadow'
+        //       },
+        //       formatter: function (params) {
+        //         return params[0].data[0] + '<br/>已完成培训数量:' + params[0].data[1]+ '<br/>所有培训数量:' + params[0].data[2];
+        //       }
+        //     },
+        //     dataset: {
+        //       source: barData
+        //     },
+        //     xAxis: { type: 'category' },
+        //     yAxis: {
+        //       type: 'value',
+        //       axisLabel: {
+        //         show: true,
+        //         textStyle:{color:'#000'},
+        //         interval: 'auto',
+        //         // formatter: '{value} %'
+        //       },
+            
+        //     },
+        //     // Declare several bar series, each will be mapped
+        //     // to a column of dataset.source by default.
+        //     series: [{ type: 'bar'},{ type: 'bar'}],
+        //     grid: {
+        //       top: '20%',
+        //       left: '3%',
+        //       right: '4%',
+        //       bottom: '10%',
+        //       containLabel: true
+        //     },
+        //     title: {
+        //       text: this.title,
+        //       subtext: "        "+this.data.t_ryywpxjlNum.date[0]+"-"+this.data.t_ryywpxjlNum.date[this.data.t_ryywpxjlNum.date.length-1]
+        //     },
+        //v1
+          // title: {
+          //   text: this.title,
+          //   subtext: this.data.t_rypxjlnkBegin.date+"-"+this.data.t_rypxjlnkEnd.date+"年培训次数"
+          // },
+          // tooltip: {
+          //        trigger: 'axis',
+          //        axisPointer: {
+          //          type: 'shadow'
+          //        },
+          //        formatter: function (datas) {
+          //            var res='计划:'+datas[0].value+"<BR>"
+          //            res+='记录:'+datas[1].value+"<BR>"
+          //            res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
+          //            return res
+          //        }
+          // },
+          // legend: {show:false},
+          //  grid: {
+          //       top: '20%',
+          //       left: '3%',
+          //       right: '4%',
+          //       bottom: '10%',
+          //       containLabel: true
+          //   },
+          // xAxis: {
+          //   type: 'category',
+          //   data: data3
+            
+          // },
+          // yAxis: {
+          //   type: 'value',
+          //   boundaryGap: [0, 0.01]
+          // },
+          // series: [
+
+          //   {
+          //     name: ['计划'],
+          //     type: 'bar',
+          //     data: data1,
+          //     itemStyle: {
+          //           normal: {
+          //               color: function(params) {
+          //                   var colorList = [
+          //                     '#FE8463','#9BCA63','#FCCE10','#E87C25','#27727B',
+          //                      '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+          //                      '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+          //                   ];
+          //                   return colorList[params.dataIndex]
+          //               },
+          //           }
+          //       },
+          //   },
+          //   {
+          //     name: ['记录'],
+          //     type: 'bar',
+          //     data: data2,
+          //     itemStyle: {
+          //           normal: {
+          //               color: function(params) {
+          //                   var colorList = [
+          //                     '#E87C25','#FAD860','#FCCE10','#E87C25','#27727B',
+          //                      '#FE8463','#9BCA63','#FAD860','#F3A43B','#60C0DD',
+          //                      '#D7504B','#C6E579','#F4E001','#F0805A','#26C0C0'
+          //                   ];
+          //                   return colorList[params.dataIndex]
+          //               },
+          //           }
+          //       },
+          //   }
+          // ]
+        };
+
 
        option && s7sheBeiJiaoZhun.setOption(option);
       }

+ 152 - 69
src/views/statistics/item/s8sheBeiHeCha.vue

@@ -31,7 +31,7 @@
       },
       height:{
         type:String,
-        default: window.screen.height/4+"px"
+        default: window.screen.height/2+"px"
       },
       id:{
         type:String,
@@ -44,7 +44,7 @@
     },
     data () {
       return {
-        title:'设备核查完成率',
+        title:'设备核查计划',
         dialogOff:false,
       }
     },
@@ -66,81 +66,164 @@
          
 
           
-        let beginInof = GetPercent(Number(this.data.t_sbhcjlbBegin.number),Number(this.data.t_sbhcjhBegin.number))
-        let endInof = GetPercent(Number(this.data.t_sbhcjlbEnd.number),Number(this.data.t_sbhcjhEnd.number))
+        // let beginInof = GetPercent(Number(this.data.t_sbhcjlbBegin.number),Number(this.data.t_sbhcjhBegin.number))
+        // let endInof = GetPercent(Number(this.data.t_sbhcjlbEnd.number),Number(this.data.t_sbhcjhEnd.number))
          
-         let data1 = [];
-         data1.push(this.data.t_sbhcjhBegin.number);
-         data1.push(this.data.t_sbhcjhEnd.number);
-         let data2 = [];
-         data2.push(this.data.t_sbhcjlbBegin.number);
-         data2.push(this.data.t_sbhcjlbEnd.number);
-         let data3 = [];
-         data3.push(this.data.t_sbhcjlbBegin.date);
-         data3.push(this.data.t_sbhcjlbEnd.date);
-         let max1=GetMax(data1)+1;
-         let max2=GetMax(data2)+1;
-         let maxVal=max1>max2?max1:max2;
-         console.log("max1:",max1,"max2:",max2);
+        //  let data1 = [];
+        //  data1.push(this.data.t_sbhcjhBegin.number);
+        //  data1.push(this.data.t_sbhcjhEnd.number);
+        //  let data2 = [];
+        //  data2.push(this.data.t_sbhcjlbBegin.number);
+        //  data2.push(this.data.t_sbhcjlbEnd.number);
+        //  let data3 = [];
+        //  data3.push(this.data.t_sbhcjlbBegin.date);
+        //  data3.push(this.data.t_sbhcjlbEnd.date);
+        //  let max1=GetMax(data1)+1;
+        //  let max2=GetMax(data2)+1;
+        //  let maxVal=max1>max2?max1:max2;
+        //  console.log("max1:",max1,"max2:",max2);
+        console.log( this.data.t_sbhcjlbNum.name,'nameddd')
+
        let option = {
-         
+           //v3
+          title: {
+            text: this.title,
+            subtext: this.data.t_sbhcjlbNum.date+"年核查次数"
+          },
+          tooltip: {
+                        trigger: 'axis',
+                        axisPointer: {
+                          type: 'shadow'
+                        },
+                        formatter: function (datas) {
+                          console.log(datas)
+                            var res=datas[0].name+"<BR>"+'计划外核查:'+datas[0].data+"<BR>"
+                            res+='年度核查'+datas[1].data+"<BR>"
+                            // res+='百分比:'+(datas[1].value==null||datas[1].value==0?"0.00":(datas[0].value/datas[1].value*100).toFixed(2))+"%"
+                            return res
+                        }
+          },
+          legend: {},
           grid: {
-                top: '20%',
+                top: '10%',
                 left: '3%',
                 right: '4%',
-                bottom: '10%',
+                bottom: '5%',
                 containLabel: true
-            },
-           tooltip: {
-                  trigger: 'axis',
-                  axisPointer: {
-                    type: 'shadow'
-                  },
-                  formatter: function (datas) {
-                      var res='计划:'+datas[0].value+"<BR>"
-                      res+='记录:'+datas[1].value+"<BR>"
-                      res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
-                      return res
-                  }
-           },
-        title: {
-             text: this.title,
-             subtext: this.data.t_sbhcjlbBegin.date+"-"+this.data.t_sbhcjlbEnd.date+"年核查次数"
-             //subtext: this.data.t_sbhcjhBegin.date+'完成率为:' + beginInof +'\n'+this.data.t_sbhcjhEnd.date+'完成率为:'+endInof,
-        },
-        color: ['#003366', '#006699', '#4cabce', '#e5323e'],
-           legend: {
-             show:false
-         },
-         xAxis: [
-             {
-                 type: 'category',
-                 axisTick: {show: false},
-                 data: data3
-             }
-         ],
-         yAxis:  [
-             {
-               max:maxVal,
-               min:0,
-                 type: 'value'
-             }
-         ] 
-         ,
-         series: [
+                    },
+          xAxis: {
+            type: 'value',
+            boundaryGap: [0, 0.01]
+          },
+          yAxis: {
+            type: 'category',
+            data: this.data.t_sbhcjlbNum.name,
+            axisLabel: {
+                show: true, // 是否显示X轴的内容,不包含两端的文字
+                interval: 0,
+                // rotate: '50', // 旋转50°
+                lineHeight: 18,
+                // formatter: function(params) {
+                //   //  console.log('formatter', params, params.length)
+                //   var newParamsName = ''// 最终拼接成的字符串
+                //   var paramsNameNumber = params.length// 实际标签的个数
+                //   var provideNumber = 3// 每行能显示的字的个数
+                //   // 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
+                //   if (paramsNameNumber > provideNumber) {
+                //   // ********重点在这里********
+                //     newParamsName = params.substring(0, 3) + '..'// 最终拼成的字符串
+                //   } else { // 将旧标签的值赋给新标签
+                //     newParamsName = params
+                //   }
+                //   // 将最终的字符串返回
+                //   return newParamsName
+                // }
+              },
+          },
+          series: [
             {
-                 name: '计划条数',
-                 type: 'bar',
-                 barGap: 0,
-                 data: data1
-           },
+              type: 'bar',
+              data: this.data.t_sbhcjlbNum.number,
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
             {
-                 name: '记录条数',
-                 type: 'bar',
-                 barGap: 0,
-                 data: data2
-           },
-         ]
+              type: 'bar',
+              data: this.data.t_sbhcjlbNum.numberAll,
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
+          ],
+                dataZoom: [
+        {
+            id: 'dataZoomY',
+            type: 'inside',
+            yAxisIndex: [0],
+            filterMode: 'empty'
+        }
+      ],
+         //v1
+        //   grid: {
+        //         top: '20%',
+        //         left: '3%',
+        //         right: '4%',
+        //         bottom: '10%',
+        //         containLabel: true
+        //     },
+        //    tooltip: {
+        //           trigger: 'axis',
+        //           axisPointer: {
+        //             type: 'shadow'
+        //           },
+        //           formatter: function (datas) {
+        //               var res='计划:'+datas[0].value+"<BR>"
+        //               res+='记录:'+datas[1].value+"<BR>"
+        //               res+='百分比:'+(datas[0].value==null||datas[0].value==0?"0.00":(datas[1].value/datas[0].value*100).toFixed(2))+"%"
+        //               return res
+        //           }
+        //    },
+        // title: {
+        //      text: this.title,
+        //      subtext: this.data.t_sbhcjlbBegin.date+"-"+this.data.t_sbhcjlbEnd.date+"年核查次数"
+        //      //subtext: this.data.t_sbhcjhBegin.date+'完成率为:' + beginInof +'\n'+this.data.t_sbhcjhEnd.date+'完成率为:'+endInof,
+        // },
+        // color: ['#003366', '#006699', '#4cabce', '#e5323e'],
+        //    legend: {
+        //      show:false
+        //  },
+        //  xAxis: [
+        //      {
+        //          type: 'category',
+        //          axisTick: {show: false},
+        //          data: data3
+        //      }
+        //  ],
+        //  yAxis:  [
+        //      {
+        //        max:maxVal,
+        //        min:0,
+        //          type: 'value'
+        //      }
+        //  ] 
+        //  ,
+        //  series: [
+        //     {
+        //          name: '计划条数',
+        //          type: 'bar',
+        //          barGap: 0,
+        //          data: data1
+        //    },
+        //     {
+        //          name: '记录条数',
+        //          type: 'bar',
+        //          barGap: 0,
+        //          data: data2
+        //    },
+        //  ]
        };
 
        option && s8sheBeiHeCha.setOption(option);

+ 142 - 0
src/views/statistics/item/s9neiBuZhiLiang.vue

@@ -0,0 +1,142 @@
+<template>
+  <div @click="toDetailed()" class="statisticsPage" :style="{width:width}">
+    <div :id="id" :style="{height:height}"/>
+    <!-- 打开详情弹窗-->
+    <div v-if="dialogOff">
+      <dialogView
+        :dialogOff = "dialogOff"
+        @close = "close"
+        :title="title"
+        :data="data"
+      />
+    </div>
+  </div>
+</template>
+
+<script>
+  import echarts from 'echarts'
+  import dialogView from '../properties/s9neiBuZhiLiangPro.vue'
+  import {GetPercent,GetMax} from  '../js/config.js'
+  export default {
+    components:{
+      dialogView
+    },
+    props: {
+      data: {
+        type: Object,
+      },
+      width:{
+        type:String,
+        default:"20%"
+      },
+      height:{
+        type:String,
+        default: window.screen.height/4+"px"
+      },
+      id:{
+        type:String,
+        default:"s9neibu"
+      },
+      click:{
+        type:String,
+        default:'true'
+      },
+    },
+    data () {
+      return {
+        title:'质量控制计划',
+        dialogOff:false,
+        measured:[]
+      }
+    },
+    mounted(){
+      this.drawLine();
+    },
+    methods: {
+      close(){
+        this.dialogOff = false
+      },
+      /* 跳转统计页面*/
+      toDetailed(){
+        if(this.click == "true"){
+        this.dialogOff = true
+       }
+      },
+      drawLine(){
+
+        // let beginInof = Number(this.data.t_complaintBegin.number)
+        // let endInof = Number(this.data.t_complaintEnd.number)
+        let s9neibu = echarts.init(document.getElementById(this.id))
+        // let beingDate=this.data.t_complaintBegin.date
+        // let endDate=this.data.t_complaintEnd.date
+        var option;
+
+        //v3
+        // let e=[this.data.t_complaintNum.number[0],this.data.t_complaintNum.numberAll[0],this.data.t_complaintNum.res[0]]
+
+        option = {
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+            legend: {},
+            tooltip: {
+                trigger: 'axis',
+                axisPointer: {
+                  type: 'shadow'
+                },
+                formatter: function (datas) {
+                    console.log(datas,'sdsdds')
+                    var res=datas[0].data[0]+"<BR>"+'已完成:'+datas[0].data[1]+"<BR>"
+                    res+='总计划:'+datas[0].data[2]+"<BR>"
+                    res+='百分比:'+(datas[0].data[2]==null||datas[0].data[2]==0?"0.00":(datas[0].data[1]/datas[0].data[2]*100).toFixed(2))+"%"
+                    return res
+                }
+            },
+            dataset: {
+                source: this.data.t_mjzlkzxbNum.val
+            },
+            xAxis: { type: 'category' },
+            yAxis: {},
+            // Declare several bar series, each will be mapped
+            // to a column of dataset.source by default.
+            series: [{ 
+              type: 'bar',
+              itemStyle: {color: '#cccc33'},
+              label: {
+                show: true,
+                position: 'top'
+              },
+            },
+            { 
+              type: 'bar',
+              itemStyle: {color: '#66CCCC'},
+              label: {
+                show: true,
+                position: 'top'
+              },
+            }]
+        };
+
+        option && s9neibu.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s9neibu:hover{
+    transition: all 0.5s;
+    transform:scale(1.03);
+  }
+  .statisticsPage{
+     box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+     float: left;
+  }
+</style>

+ 282 - 42
src/views/statistics/js/selectDB.js

@@ -1,20 +1,56 @@
+import en from "@/locales/bpmn-js/en"
+
 /* 统计的合格率配置信息,  如公正性,  一年需要完成4次, 当前完成2次的话,则为50%完成率。 */
 export const getConfig = (begin,end)=>{
   return "select * FROM t_tjpzb"
 
 }
-export const DBData = (begin,end)=>{
-  return "select tt.*,cast(1-(t_gdyrqcwt4"+begin+"/t_gdyrqcwt"+begin+")  AS decimal(32,2)) as t_gdyrqcwt6"+begin+
-  ",cast(1-(t_gdyrqcwt4"+end+"/t_gdyrqcwt"+end+") AS decimal(32,2)) as t_gdyrqcwt6"+end+
-  ",cast(1-(t_gdyrqcwt50"+begin+"/t_gdyrqcwt"+begin+") AS decimal(32,2)) as t_gdyrqcwt5"+begin+",cast(1-(t_gdyrqcwt50"+end+"/t_gdyrqcwt"+end+") AS decimal(32,2)) as t_gdyrqcwt5"+end+
-  ",cast(ifnull(1-(t_gdyrqcwt2"+begin+"/t_gdyrqcwt"+begin+"),0)+0.01 AS decimal(32,2)) as t_myddc5"+begin+",cast(ifnull(1-(t_gdyrqcwt2"+end+"/t_gdyrqcwt"+end+"),0)+0.01 AS decimal(32,2)) as t_myddc5"+end+
-  ",cast(ifnull(1-(t_gdyrqcwt3"+begin+"/t_gdyrqcwt"+begin+"),0)+0.01 AS decimal(32,2)) as t_myddc6"+begin+",cast(ifnull(1-(t_gdyrqcwt3"+end+"/t_gdyrqcwt"+end+"),0)+0.01 AS decimal(32,2)) as t_myddc6"+end+
-  ",cast(ifnull((t_gdyrqcwt50"+begin+"/t_gdyrqcwt"+begin+"),0)+0.01 AS decimal(32,2)) as t_myddc4"+begin+",cast(ifnull((t_gdyrqcwt50"+end+"/t_gdyrqcwt"+end+"),0)+0.01 AS decimal(32,2)) as t_myddc4"+end+
+export const getJiaoYanObj = (end)=>{
+  // return "select a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,b.t_mjsbjdxzjhzbS FROM (select she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)='2022' GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= '2022' AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
+  return "select a.t_mjsbjdxzjhzbZhName, a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,ifnull(b.t_mjsbjdxzjhzbS,0) as t_mjsbjdxzjhzbS FROM (select she_bei_bian_hao_ as t_mjsbjdxzjhzbZhName, she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)="+end+" GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= "+end+" AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
+}
+export const gethechaObj = (end)=>{
+  // return "select a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,b.t_mjsbjdxzjhzbS FROM (select she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)='2022' GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= '2022' AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
+  return "select a.t_sbhcjlbZhname,a.t_sbhcjlbName,a.t_sbhcjlb,ifnull(b.t_sbhcjlbS,0) as t_sbhcjlbS FROM (select t_sbdj.she_bei_ming_cheng_ as t_sbhcjlbZhname, t_yqsbhcjh.shi_bie_hao_ as t_sbhcjlbName, COUNT(t_yqsbhcjh.shi_bie_hao_) as t_sbhcjlb from t_yqsbhcjh LEFT JOIN t_sbdj on t_yqsbhcjh.shi_bie_hao_=t_sbdj.she_bei_shi_bie_h where YEAR(t_yqsbhcjh.he_cha_pin_lv_)="+end+" GROUP BY t_yqsbhcjh.shi_bie_hao_ HAVING COUNT(t_yqsbhcjh.shi_bie_hao_)>=1) as a left join  (select shi_bie_hao_, COUNT(shi_bie_hao_) as t_sbhcjlbS from t_sbhcjlb where YEAR(he_cha_ri_qi_)= "+end+"  GROUP BY shi_bie_hao_ HAVING COUNT(shi_bie_hao_)>=1 )as b on a.t_sbhcjlbName=b.shi_bie_hao_  union select t_sbdj.she_bei_ming_cheng_ as t_sbhcjlbZhname, t_sbhcjlb.shi_bie_hao_ as t_sbhcjlbName, IF(t_sbhcjlb.id_, 0, 1) as t_sbhcjlb,IF(YEAR(t_sbhcjlb.he_cha_ri_qi_)=YEAR(t_sbhcjlb.xia_ci_he_cha_ri_), COUNT(t_sbhcjlb.shi_bie_hao_)+1, COUNT(t_sbhcjlb.shi_bie_hao_)) as t_sbhcjlbS from t_sbhcjlb LEFT JOIN t_sbdj on t_sbhcjlb.shi_bie_hao_=t_sbdj.she_bei_shi_bie_h where YEAR(t_sbhcjlb.he_cha_ri_qi_)= "+end+"  GROUP BY t_sbhcjlb.shi_bie_hao_ HAVING COUNT(t_sbhcjlb.shi_bie_hao_)>=1"
+}
+export const getnengliObj = (end)=>{
+  // return "select a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,b.t_mjsbjdxzjhzbS FROM (select she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)='2022' GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= '2022' AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
+  return "select she_bei_bian_hao_ as enname, suo_yong_she_bei_ as zhname, COUNT(she_bei_bian_hao_) as num from t_nlsysxb where YEAR(yu_ji_shi_jian_)="+end+" GROUP BY she_bei_bian_hao_ HAVING COUNT(she_bei_bian_hao_)>=1"
+}
+export const getbiaozhunObj = (end)=>{
+  // return "select a.t_mjsbjdxzjhzbName,a.t_mjsbjdxzjhzb,b.t_mjsbjdxzjhzbS FROM (select she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb from t_mjsbjdxzjhzb where YEAR(create_time_)='2022' GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1) as a left join  (select she_bei_ming_chen, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS from t_mjsbjdxzjhzb where YEAR(create_time_)= '2022' AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 )as b on a.t_mjsbjdxzjhzbName=b.she_bei_ming_chen"
+  return "select biao_wu_ming_chen as name, COUNT(biao_wu_ming_chen) as num from t_bzwzhcjhxxb where YEAR(create_time_)="+end+" GROUP BY biao_wu_ming_chen HAVING COUNT(biao_wu_ming_chen)>=1"
+}
+export const DBData = (begin,end,scope)=>{
+  // return "select tt.*,cast(1-(t_gdyrqcwt4"+begin+"/t_gdyrqcwt"+begin+")  AS decimal(32,2)) as t_gdyrqcwt6"+begin+
+  // return "select tt.* "+
+
+  // // ",cast(1-(t_gdyrqcwt4"+end+"/t_gdyrqcwt"+end+") AS decimal(32,2)) as t_gdyrqcwt6"+end+
+  // // ",cast(1-(t_gdyrqcwt50"+begin+"/t_gdyrqcwt"+begin+") AS decimal(32,2)) as t_gdyrqcwt5"+begin+",cast(1-(t_gdyrqcwt50"+end+"/t_gdyrqcwt"+end+") AS decimal(32,2)) as t_gdyrqcwt5"+end+
+  // // ",cast(ifnull(1-(t_gdyrqcwt2"+begin+"/t_gdyrqcwt"+begin+"),0)+0.01 AS decimal(32,2)) as t_myddc5"+begin+",cast(ifnull(1-(t_gdyrqcwt2"+end+"/t_gdyrqcwt"+end+"),0)+0.01 AS decimal(32,2)) as t_myddc5"+end+
+  // // ",cast(ifnull(1-(t_gdyrqcwt3"+begin+"/t_gdyrqcwt"+begin+"),0)+0.01 AS decimal(32,2)) as t_myddc6"+begin+",cast(ifnull(1-(t_gdyrqcwt3"+end+"/t_gdyrqcwt"+end+"),0)+0.01 AS decimal(32,2)) as t_myddc6"+end+
+  // // ",cast(ifnull((t_gdyrqcwt50"+begin+"/t_gdyrqcwt"+begin+"),0)+0.01 AS decimal(32,2)) as t_myddc4"+begin+",cast(ifnull((t_gdyrqcwt50"+end+"/t_gdyrqcwt"+end+"),0)+0.01 AS decimal(32,2)) as t_myddc4"+end+
+  // " FROM("+s1jianCe(begin,end)+
+  // " join "+s1renwu(begin,end,scope)+
+  // " join "+s2jianCe(begin,end)+
+  // " join "+s2manYiDu(begin,end,scope)+
+  // " join "+s3tousu(begin,end,scope)+
+  // " join "+s4renYuanPeiXun(begin,end,scope)+
+  // " join "+s5renYuanJianDu(begin,end,scope)+
+  // " join "+s6sheBeiWeiHu(begin,end)+
+  // " join "+s7sheBeiJiaoZhun(begin,end)+
+  // " join "+s8sheBeiHeCha(begin,end)+
+  // ") tt"
+  return "select tt.* "+
   " FROM("+s1jianCe(begin,end)+
-  " join "+s2manYiDu(begin,end)+
-  " join "+s3tousu(begin,end)+
-  " join "+s4renYuanPeiXun(begin,end)+
-  " join "+s5renYuanJianDu(begin,end)+
+  " join "+s1renwu(begin,end,scope)+
+  " join "+s2jianCe(begin,end)+
+  " join "+s2manYiDu(begin,end,scope)+
+  " join "+s3tousu(begin,end,scope)+
+  " join "+s4renYuanPeiXun(begin,end,scope)+
+  " join "+s5renYuanJianDu(begin,end,scope)+
+  " join "+s9neiBu(begin,end,scope)+
+  " join "+s12fengXian(begin,end,scope)+
   " join "+s6sheBeiWeiHu(begin,end)+
   " join "+s7sheBeiJiaoZhun(begin,end)+
   " join "+s8sheBeiHeCha(begin,end)+
@@ -24,9 +60,21 @@ export const DBData = (begin,end)=>{
 function PAT(val){
   return "shi_fou_guo_shen_ = '1' AND YEAR ( create_time_ ) = '" + val+"'"
 }
+function PAT_SATISFACTION(val){
+  return "man_yi_du_ = '满意' AND YEAR ( create_time_ ) = '" + val+"'"
+}
 function PAT_YEAR(val){
   return " YEAR ( create_time_ ) = '" + val+"'"
 }
+function PAT_TASK(val,choose){
+  
+  return choose?"shi_fou_guo_shen_ = '1' AND YEAR( create_time_ ) = '"+val+"' AND DATE(update_time_) BETWEEN DATE( create_time_ ) and DATE( qi_wang_wan_cheng ) ":"shi_fou_guo_shen_ = '1' AND YEAR( create_time_ ) = '"+val+"'"
+}
+function PAT_CHOOSE(val,choose){
+  return choose + " AND YEAR( create_time_ ) = '"+val+"'"
+  // return "zhuang_tai_ = '已完成' AND YEAR ( create_time_ ) = '" + val+"'"
+
+}
 /* 工具函数参数
 1、时间条件
 2、表名
@@ -47,9 +95,77 @@ function tool(val,tableName,where,join){
  +alias
  + (join==0?" on 1=1 JOIN ":" on 1=1 ")
 }
-/* 满意度 */
-function s1jianCe(begin,end){
+function toolTask(val,tableName,where,join){
+  let alias = tableName+val //别名
+ return "( SELECT COUNT( id_ ) AS "
+ +alias
+ +" FROM "
+ +tableName
+ +" WHERE "
+ +where
+ +" ) "
+ +alias
+ + (join==0?" on 1=1 JOIN ":" on 1=1 ")
+}
+function toolSame(val,tableName,where,join){
+  let alias = tableName+'S'+val //别名
+ return "( SELECT COUNT( id_ ) AS "
+ +alias
+ +" FROM "
+ +tableName
+ +" WHERE "
+ +where
+ +" ) "
+ +alias
+ + (join==0?" on 1=1 JOIN ":" on 1=1 ")
+}
+/* 任务完成 */
+function s1renwu(begin,end,scope){
+  return "( SELECT COUNT( id_ ) AS t_jchzb"+end+" FROM t_jchzb "+ "WHERE shi_fou_guo_shen_ = '1' AND YEAR( create_time_ ) = "+end+" AND DATE(update_time_) BETWEEN DATE( create_time_ ) and DATE( qi_wang_wan_cheng ) ) s1renwu1  JOIN"+
+  "( SELECT COUNT( id_ ) AS t_jchzbS"+end+" FROM t_jchzb WHERE shi_fou_guo_shen_ = '1' AND YEAR ( create_time_ ) = "+end+" ) s1renwu2  "
+  // let sql = "( SELECT COUNT( id_ ) AS t_jchzb"+begin+" FROM t_jchzb "+ "WHERE shi_fou_guo_shen_ = '1' AND YEAR( create_time_ ) = "+begin+" AND DATE(update_time_) BETWEEN DATE( create_time_ ) and DATE( qi_wang_wan_cheng ) ) s1renwu1  JOIN"
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql = sql + tool(scope[i],"t_jchzb",PAT_TASK(scope[i],true),1)
+  //   }else{
+  //     sql = sql + tool(scope[i],"t_jchzb",PAT_TASK(scope[i],true),0)
+  //   }
+  // }
+  // let sql1 = " JOIN ( SELECT COUNT( id_ ) AS t_jchzbS"+begin+" FROM t_jchzb WHERE shi_fou_guo_shen_ = '1' AND YEAR ( create_time_ ) = "+begin+" ) s1renwu2  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql1 = sql1 + toolSame(scope[i],"t_jchzb",PAT_TASK(scope[i],false),1)
+  //   }else{
+  //     sql1 = sql1 + toolSame(scope[i],"t_jchzb",PAT_TASK(scope[i],false),0)
+  //   }
+  // }
+  // let sqlAll = sql + sql1
+  // return sqlAll
   //委托检测数
+  // return "SELECT *  FROM (select COUNT( id_ ) AS t_gdyrqcwt"+begin+" from t_gdyrgpjc WHERE YEAR( create_time_ ) = "+begin+" union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = "+begin+") s1jianCe1  JOIN "+
+  // "(SELECT COUNT( id_ ) AS t_gdyrqcwt"+end+" FROM (select id_ from t_gdyrgpjc WHERE YEAR( create_time_ ) = '"+end+"' union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = '"+end+"') a0) s1jianCe2 on 1=1 join "+
+  // //按期完成检测件数
+  // "(select count(id_) as t_gdyrqcwt2"+begin+" from(select id_   from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+") union all select id_ from t_gdyrqcjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")) a) s1jianCe3 on 1=1 JOIN "+
+  // "(select count(id_) as t_gdyrqcwt2"+end+" from(select id_  from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+") union all select id_ from t_gdyrqcjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+")) a) s1jianCe4 on 1=1 join "+
+  // //出具报告数
+  // "(select count(id_) as t_gdyrqcwt3"+begin+" from(select id_   from t_gdyrgpjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+") union all select id_ from t_gdyrqcjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")) a) s1jianCe5 on 1=1 JOIN "+
+  // "(select count(id_) as t_gdyrqcwt3"+end+" from(select id_  from t_gdyrgpjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+") union all select id_ from t_gdyrqcjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+")) a) s1jianCe6 on 1=1 join "+
+  // //逾期未完成数
+  // "(select count(id_) as t_gdyrqcwt4"+begin+" from(select id_   from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+") union all select id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")) a) s1jianCe7 on 1=1 JOIN "+
+  // "(select count(id_) as t_gdyrqcwt4"+end+" from(select id_  from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+") union all select id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+")) a) s1jianCe8 on 1=1 JOIN " +
+  // //检测结果准确率
+  // "(select count(wei_tuo_id_) as t_gdyrqcwt50"+begin+" from(select wei_tuo_id_   from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+" ) group by wei_tuo_id_ having count(1)=1 union all select wei_tuo_id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")  group by wei_tuo_id_ having count(1)=1 ) a) s1jianCe9 on 1=1 JOIN "+
+  // "(select count(wei_tuo_id_) as t_gdyrqcwt50"+end+" from(select wei_tuo_id_  from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+" ) group by wei_tuo_id_ having count(1)=1 union all select wei_tuo_id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+"  ) group by wei_tuo_id_ having count(1)=1 ) a) s1jianCe10 on 1=1 "
+  //按时完成率
+  //"( select select count(id_) AS t_gdyrqcwt6"+begin+" from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+"))) s1jianCe11 on 1=1 JOIN "+
+  //"( select count(id_) AS t_gdyrqcwt6"+end+" from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = '"+end+"')  ) s1jianCe12 on 1=1"
+  }
+/* 检测 */
+function s1jianCe(begin,end){
+  // //v3
+  // return "( SELECT COUNT( id_ ) AS t_mjjcbg"+end+" FROM t_mjjcbg "+ "WHERE shi_fou_guo_shen_ = '已退回' AND YEAR( create_time_ ) = "+end+" ) s1jianCe1 JOIN"+
+  // "( SELECT COUNT( id_ ) AS t_mjjcbgS"+end+" FROM t_mjjcbg WHERE  YEAR ( create_time_ ) = "+end+" ) s1jianCe2 "
+  // 委托检测数
   return "SELECT *  FROM (select COUNT( id_ ) AS t_gdyrqcwt"+begin+" from t_gdyrgpjc WHERE YEAR( create_time_ ) = "+begin+" union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = "+begin+") s1jianCe1  JOIN "+
   "(SELECT COUNT( id_ ) AS t_gdyrqcwt"+end+" FROM (select id_ from t_gdyrgpjc WHERE YEAR( create_time_ ) = '"+end+"' union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = '"+end+"') a0) s1jianCe2 on 1=1 join "+
   //按期完成检测件数
@@ -64,24 +180,68 @@ function s1jianCe(begin,end){
   //检测结果准确率
   "(select count(wei_tuo_id_) as t_gdyrqcwt50"+begin+" from(select wei_tuo_id_   from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+" ) group by wei_tuo_id_ having count(1)=1 union all select wei_tuo_id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")  group by wei_tuo_id_ having count(1)=1 ) a) s1jianCe9 on 1=1 JOIN "+
   "(select count(wei_tuo_id_) as t_gdyrqcwt50"+end+" from(select wei_tuo_id_  from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+" ) group by wei_tuo_id_ having count(1)=1 union all select wei_tuo_id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+"  ) group by wei_tuo_id_ having count(1)=1 ) a) s1jianCe10 on 1=1 "
+  // 按时完成率
+  "( select select count(id_) AS t_gdyrqcwt6"+begin+" from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+"))) s1jianCe11 on 1=1 JOIN "+
+  "( select count(id_) AS t_gdyrqcwt6"+end+" from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = '"+end+"')  ) s1jianCe12 on 1=1"
+  }
+  /* 检测 */
+function s2jianCe(begin,end){
+  //v3
+  return "( SELECT COUNT( id_ ) AS t_mjjcbg"+end+" FROM t_mjjcbg "+ "WHERE shi_fou_guo_shen_ = '已退回' AND YEAR( create_time_ ) = "+end+" ) s2jianCe1 JOIN"+
+  "( SELECT COUNT( id_ ) AS t_mjjcbgS"+end+" FROM t_mjjcbg WHERE  YEAR ( create_time_ ) = "+end+" ) s2jianCe2 "
+  //委托检测数
+  // return "SELECT *  FROM (select COUNT( id_ ) AS t_gdyrqcwt"+begin+" from t_gdyrgpjc WHERE YEAR( create_time_ ) = "+begin+" union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = "+begin+") s1jianCe1  JOIN "+
+  // "(SELECT COUNT( id_ ) AS t_gdyrqcwt"+end+" FROM (select id_ from t_gdyrgpjc WHERE YEAR( create_time_ ) = '"+end+"' union all select id_ from t_gdyrqcjc WHERE YEAR( create_time_ ) = '"+end+"') a0) s1jianCe2 on 1=1 join "+
+  // //按期完成检测件数
+  // "(select count(id_) as t_gdyrqcwt2"+begin+" from(select id_   from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+") union all select id_ from t_gdyrqcjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")) a) s1jianCe3 on 1=1 JOIN "+
+  // "(select count(id_) as t_gdyrqcwt2"+end+" from(select id_  from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+") union all select id_ from t_gdyrqcjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+")) a) s1jianCe4 on 1=1 join "+
+  // //出具报告数
+  // "(select count(id_) as t_gdyrqcwt3"+begin+" from(select id_   from t_gdyrgpjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+") union all select id_ from t_gdyrqcjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")) a) s1jianCe5 on 1=1 JOIN "+
+  // "(select count(id_) as t_gdyrqcwt3"+end+" from(select id_  from t_gdyrgpjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+") union all select id_ from t_gdyrqcjc where fa_fang_biao_zhi_ is not null and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+")) a) s1jianCe6 on 1=1 join "+
+  // //逾期未完成数
+  // "(select count(id_) as t_gdyrqcwt4"+begin+" from(select id_   from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+") union all select id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")) a) s1jianCe7 on 1=1 JOIN "+
+  // "(select count(id_) as t_gdyrqcwt4"+end+" from(select id_  from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+") union all select id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+")) a) s1jianCe8 on 1=1 JOIN " +
+  // //检测结果准确率
+  // "(select count(wei_tuo_id_) as t_gdyrqcwt50"+begin+" from(select wei_tuo_id_   from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+" ) group by wei_tuo_id_ having count(1)=1 union all select wei_tuo_id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+")  group by wei_tuo_id_ having count(1)=1 ) a) s1jianCe9 on 1=1 JOIN "+
+  // "(select count(wei_tuo_id_) as t_gdyrqcwt50"+end+" from(select wei_tuo_id_  from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+" ) group by wei_tuo_id_ having count(1)=1 union all select wei_tuo_id_ from t_gdyrqcjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+end+"  ) group by wei_tuo_id_ having count(1)=1 ) a) s1jianCe10 on 1=1 "
   //按时完成率
   //"( select select count(id_) AS t_gdyrqcwt6"+begin+" from t_gdyrgpjc where (qi_wang_wan_cheng<fa_fang_biao_zhi_ or fa_fang_biao_zhi_ is null) and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = "+begin+"))) s1jianCe11 on 1=1 JOIN "+
   //"( select count(id_) AS t_gdyrqcwt6"+end+" from t_gdyrgpjc where qi_wang_wan_cheng>fa_fang_biao_zhi_ and wei_tuo_id_ in (select id_ from t_gdyrqcwt where YEAR( create_time_ ) = '"+end+"')  ) s1jianCe12 on 1=1"
   }
  /* 满意度 */
- function s2manYiDu(begin,end){
+ function s2manYiDu(begin,end,scope){
+  // let sql = "( SELECT COUNT( id_ ) AS t_khmydtjb"+begin+" FROM t_khmydtjb "+ "WHERE man_yi_du_ = '满意' AND YEAR( create_time_ ) = "+begin+" ) s2manYiDu1  JOIN"
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql = sql + tool(scope[i],"t_khmydtjb",PAT_SATISFACTION(scope[i]),1)
+  //   }else{
+  //     sql = sql + tool(scope[i],"t_khmydtjb",PAT_SATISFACTION(scope[i]),0)
+  //   }
+  // }
+  // let sql1 = " JOIN ( SELECT COUNT( id_ ) AS t_khmydtjbS"+begin+" FROM t_khmydtjb WHERE  YEAR ( create_time_ ) = "+begin+" ) s2manYiDu2  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql1 = sql1 + toolSame(scope[i],"t_khmydtjb",PAT_YEAR(scope[i]),1)
+  //   }else{
+  //     sql1 = sql1 + toolSame(scope[i],"t_khmydtjb",PAT_YEAR(scope[i]),0)
+  //   }
+  // }
+  // let sqlAll = sql + sql1
+  // return sqlAll
+  return "( SELECT COUNT( id_ ) AS t_khmydtjb"+end+" FROM t_khmydtjb "+ "WHERE man_yi_du_ = '满意' AND YEAR( create_time_ ) = "+end+" ) s2manYiDu1  JOIN"+
+  "( SELECT COUNT( id_ ) AS t_khmydtjbS"+end+" FROM t_khmydtjb WHERE  YEAR ( create_time_ ) = "+end+" ) s2manYiDu2 "
    //调查表总数
-  return "( SELECT COUNT( id_ ) AS t_myddc"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = "+begin+" ) s2manYiDu1  JOIN "+
-    "( SELECT COUNT( id_ ) AS t_myddc"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu2 on 1=1 JOIN "+
-    //技术水平
-    "( SELECT sum(case when dang_nin_dui_jian='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc1"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu3 on 1=1 JOIN "+
-    "( SELECT sum(case when dang_nin_dui_jian='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc1"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu4 on 1=1 JOIN "+
-    //检测效率满意度
-    "( SELECT sum(case when nin_dui_jian_yan_='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc2"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu5 on 1=1 JOIN "+
-    "( SELECT sum(case when nin_dui_jian_yan_='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc2"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu6 on 1=1 JOIN "+
-    //工作态度
-    "( SELECT sum(case when nin_dui_jian_ce_r='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc3"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu7 on 1=1 JOIN "+
-    "( SELECT sum(case when nin_dui_jian_ce_r='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc3"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu8 on 1=1 "
+  // return "( SELECT COUNT( id_ ) AS t_myddc"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = "+begin+" ) s2manYiDu1  JOIN "+
+  //   "( SELECT COUNT( id_ ) AS t_myddc"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu2 on 1=1 JOIN "+
+  //   //技术水平
+  //   "( SELECT sum(case when dang_nin_dui_jian='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc1"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu3 on 1=1 JOIN "+
+  //   "( SELECT sum(case when dang_nin_dui_jian='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc1"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu4 on 1=1 JOIN "+
+  //   //检测效率满意度
+  //   "( SELECT sum(case when nin_dui_jian_yan_='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc2"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu5 on 1=1 JOIN "+
+  //   "( SELECT sum(case when nin_dui_jian_yan_='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc2"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu6 on 1=1 JOIN "+
+  //   //工作态度
+  //   "( SELECT sum(case when nin_dui_jian_ce_r='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc3"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu7 on 1=1 JOIN "+
+  //   "( SELECT sum(case when nin_dui_jian_ce_r='满意' then 1 else 0 end)/sum(1)+0.01 AS t_myddc3"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu8 on 1=1 "
     //检测准确性,参照s1的准确率
     // "( SELECT sum(case when nin_dui_jian_ce_r='满意' then 1 else 0 end) AS t_myddc4"+begin+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+begin+"' ) s2manYiDu9 on 1=1 JOIN "+
     // "( SELECT sum(case when nin_dui_jian_ce_r='满意' then 1 else 0 end) AS t_myddc4"+end+" FROM t_myddc "+ "WHERE YEAR( create_time_ ) = '"+end+"' ) s2manYiDu10 on 1=1 "
@@ -94,23 +254,86 @@ function s1jianCe(begin,end){
 
 }
 /* 投诉 */
-function s3tousu(begin,end){
-  return "( SELECT COUNT( id_ ) AS t_complaint"+begin+" FROM t_complaint WHERE YEAR ( create_time_ ) = "+begin+" ) s3tousu1  JOIN "+
-   tool(end,"t_complaint",PAT_YEAR(end),1)
+function s3tousu(begin,end,scope){
+  return "( SELECT COUNT( id_ ) AS t_complaint"+end+" FROM t_complaint WHERE YEAR ( create_time_ ) = "+end+" ) s3tousu1  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_mjwtsqb"+end+" FROM t_mjwtsqb WHERE  YEAR ( create_time_ ) = "+end+" ) s3weituo1"
+  // let sql = "( SELECT COUNT( id_ ) AS t_complaint"+begin+" FROM t_complaint WHERE YEAR ( create_time_ ) = "+begin+" ) s3tousu1  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql = sql + tool(scope[i],"t_complaint",PAT_YEAR(scope[i]),1)
+  //   }else{
+  //     sql = sql + tool(scope[i],"t_complaint",PAT_YEAR(scope[i]),0)
+  //   }
+  // }
+  // let sql1 = " JOIN ( SELECT COUNT( id_ ) AS t_mjwtsqb"+begin+" FROM t_mjwtsqb WHERE  YEAR ( create_time_ ) = "+begin+" ) s3weituo1  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql1 = sql1 + tool(scope[i],"t_mjwtsqb",PAT_YEAR(scope[i]),1)
+  //   }else{
+  //     sql1 = sql1 + tool(scope[i],"t_mjwtsqb",PAT_YEAR(scope[i]),0)
+  //   }
+  // }
+  // let sqlAll = sql + sql1
+  // return sqlAll
+  // return "( SELECT COUNT( id_ ) AS t_complaint"+begin+" FROM t_complaint WHERE YEAR ( create_time_ ) = "+begin+" ) s3tousu1  JOIN "+
+  //  tool(end,"t_complaint",PAT_YEAR(end),1)+" JOIN "+
+  //  "( SELECT COUNT( id_ ) AS t_mjwtsqb"+begin+" FROM t_mjwtsqb WHERE  YEAR ( create_time_ ) = "+begin+" ) s3weituo1  JOIN "+
+  //  tool(end,"t_mjwtsqb",PAT(end),1)
+  // return "( SELECT COUNT( id_ ) AS t_complaint"+begin+" FROM t_complaint WHERE  YEAR ( create_time_ ) BETWEEN "+begin+" and "+end+") s3tousu1 on 1=1" 
  }
  /* 人员培训 */
-function s4renYuanPeiXun(begin,end){
-  return "( SELECT COUNT( id_ ) AS t_ryndpxjh"+begin+" FROM t_ryndpxjh WHERE shi_fou_guo_shen_ = '1' and YEAR( create_time_ ) = "+begin+" ) s4renYuanPeiXun1  JOIN "+
-   tool(end,"t_ryndpxjh",PAT(end),1)+" JOIN "+
-   "( SELECT COUNT( id_ ) AS t_rypxjlnk"+begin+" FROM t_rypxjlnk WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s4renYuanPeiXun2  JOIN "+
-   tool(end,"t_rypxjlnk",PAT(end),1)
+function s4renYuanPeiXun(begin,end,scope){
+  return "( SELECT COUNT( id_ ) AS t_ryywpxjl"+end+" FROM t_ryywpxjl WHERE zhuang_tai_ = '已完成' AND YEAR ( create_time_ ) = "+end+" ) s4renYuanPeiXun1  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_ryywpxjlS"+end+" FROM t_ryywpxjl WHERE  YEAR ( create_time_ ) = "+end+" ) s4renYuanPeiXun2"
+  // let sql = "( SELECT COUNT( id_ ) AS t_ryywpxjl"+begin+" FROM t_ryywpxjl WHERE zhuang_tai_ = '已完成' AND YEAR ( create_time_ ) = "+begin+" ) s4renYuanPeiXun1  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql = sql + tool(scope[i],"t_ryywpxjl",PAT_CHOOSE(scope[i],"zhuang_tai_ = '已完成'"),1)
+  //   }else{
+  //     sql = sql + tool(scope[i],"t_ryywpxjl",PAT_CHOOSE(scope[i],"zhuang_tai_ = '已完成'"),0)
+  //   }
+  // }
+  // let sql1 = " JOIN ( SELECT COUNT( id_ ) AS t_ryywpxjlS"+begin+" FROM t_ryywpxjl WHERE  YEAR ( create_time_ ) = "+begin+" ) s4renYuanPeiXun2  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql1 = sql1 + toolSame(scope[i],"t_ryywpxjl",PAT_YEAR(scope[i]),1)
+  //   }else{
+  //     sql1 = sql1 + toolSame(scope[i],"t_ryywpxjl",PAT_YEAR(scope[i]),0)
+  //   }
+  // }
+  // let sqlAll = sql + sql1
+  // return sqlAll
+  // return "( SELECT COUNT( id_ ) AS t_ryndpxjh"+begin+" FROM t_ryndpxjh WHERE shi_fou_guo_shen_ = '1' and YEAR( create_time_ ) = "+begin+" ) s4renYuanPeiXun1  JOIN "+
+  //  tool(end,"t_ryndpxjh",PAT(end),1)+" JOIN "+
+  //  "( SELECT COUNT( id_ ) AS t_rypxjlnk"+begin+" FROM t_rypxjlnk WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s4renYuanPeiXun2  JOIN "+
+  //  tool(end,"t_rypxjlnk",PAT(end),1)
  }
  /* 人员监督 */
-function s5renYuanJianDu(begin,end){
-  return "( SELECT COUNT( id_ ) AS t_zljd"+begin+" FROM t_zljd WHERE shi_fou_guo_shen_ = '1' and YEAR( create_time_ ) = "+begin+" ) s5renYuanJianDu1  JOIN "+
-   tool(end,"t_zljd",PAT(end),1)+" JOIN "+
-   "( SELECT COUNT( id_ ) AS t_zljdss"+begin+" FROM t_zljdss WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s5renYuanJianDu2  JOIN "+
-   tool(end,"t_zljdss",PAT(end),1)
+function s5renYuanJianDu(begin,end, scope){
+  return "( SELECT COUNT( id_ ) AS t_zljd"+end+" FROM t_zljd WHERE shi_fou_guo_shen_= '1' AND YEAR ( create_time_ ) = "+end+" ) s5renYuanJianDu1  JOIN "+
+  "( SELECT COUNT( id_ ) AS t_zljdS"+end+" FROM t_zljd WHERE  YEAR ( create_time_ ) = "+end+" ) s5renYuanJianDu2"
+  // let sql = "( SELECT COUNT( id_ ) AS t_zljd"+begin+" FROM t_zljd WHERE shi_fou_guo_shen_= '1' AND YEAR ( create_time_ ) = "+begin+" ) s5renYuanJianDu1  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql = sql + tool(scope[i],"t_zljd",PAT_CHOOSE(scope[i],"shi_fou_guo_shen_= '1'"),1)
+  //   }else{
+  //     sql = sql + tool(scope[i],"t_zljd",PAT_CHOOSE(scope[i],"shi_fou_guo_shen_= '1'"),0)
+  //   }
+  // }
+  // let sql1 = " JOIN ( SELECT COUNT( id_ ) AS t_zljdS"+begin+" FROM t_zljd WHERE  YEAR ( create_time_ ) = "+begin+" ) s5renYuanJianDu2  JOIN "
+  // for (let i = 1; i < scope.length; i++) {
+  //   if(i === scope.length - 1){
+  //     sql1 = sql1 + toolSame(scope[i],"t_zljd",PAT_YEAR(scope[i]),1)
+  //   }else{
+  //     sql1 = sql1 + toolSame(scope[i],"t_zljd",PAT_YEAR(scope[i]),0)
+  //   }
+  // }
+  // let sqlAll = sql + sql1
+  // return sqlAll
+  // return "( SELECT COUNT( id_ ) AS t_zljd"+begin+" FROM t_zljd WHERE shi_fou_guo_shen_ = '1' and YEAR( create_time_ ) = "+begin+" ) s5renYuanJianDu1  JOIN "+
+  //  tool(end,"t_zljd",PAT(end),1)+" JOIN "+
+  //  "( SELECT COUNT( id_ ) AS t_zljdss"+begin+" FROM t_zljdss WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s5renYuanJianDu2  JOIN "+
+  //  tool(end,"t_zljdss",PAT(end),1)
  }
 /* 设备维护 */
 function s6sheBeiWeiHu(begin,end){
@@ -133,10 +356,14 @@ function s6sheBeiWeiHu(begin,end){
 }
 /* 设备校准 */
 function s7sheBeiJiaoZhun(begin,end){
-  return "( SELECT COUNT( id_ ) AS t_ndsbxzjdjh"+begin+" FROM t_ndsbxzjdjh WHERE shi_fou_guo_shen_ = '1' and YEAR( create_time_ ) = "+begin+" ) s7sheBeiJiaoZhun1  JOIN "+
-   tool(end,"t_ndsbxzjdjh",PAT(end),1)+" JOIN "+
-   "( SELECT COUNT( id_ ) AS t_yqsbxzjg"+begin+" FROM t_yqsbxzjg WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s7sheBeiJiaoZhun2  JOIN "+
-   tool(end,"t_yqsbxzjg",PAT(end),1)
+  //v3
+  return "(SELECT she_bei_ming_chen as t_mjsbjdxzjhzbName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzb"+end+" FROM t_mjsbjdxzjhzb WHERE YEAR( create_time_ ) = "+end+" GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 ORDER BY she_bei_ming_chen) s7sheBeiJiaoZhun1  JOIN " +
+  "(SELECT she_bei_ming_chen as t_mjsbjdxzjhzbSName, COUNT(she_bei_ming_chen) as t_mjsbjdxzjhzbS"+end+" FROM t_mjsbjdxzjhzb WHERE YEAR( create_time_ ) = "+end+" AND DATE(yi_jian_xiao_ri_q) >= DATE(ji_hua_ri_qi_) GROUP BY she_bei_ming_chen HAVING COUNT(she_bei_ming_chen)>=1 ORDER BY she_bei_ming_chen) s7sheBeiJiaoZhun12 "
+  //v1
+  // return "( SELECT COUNT( id_ ) AS t_ndsbxzjdjh"+begin+" FROM t_ndsbxzjdjh WHERE shi_fou_guo_shen_ = '1' and YEAR( create_time_ ) = "+begin+" ) s7sheBeiJiaoZhun1  JOIN "+
+  //  tool(end,"t_ndsbxzjdjh",PAT(end),1)+" JOIN "+
+  //  "( SELECT COUNT( id_ ) AS t_yqsbxzjg"+begin+" FROM t_yqsbxzjg WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s7sheBeiJiaoZhun2  JOIN "+
+  //  tool(end,"t_yqsbxzjg",PAT(end),1)
  }
  /* 设备核查 */
 function s8sheBeiHeCha(begin,end){
@@ -145,3 +372,16 @@ function s8sheBeiHeCha(begin,end){
    "( SELECT COUNT( id_ ) AS t_sbhcjlb"+begin+" FROM t_sbhcjlb WHERE shi_fou_guo_shen_ = '1' and  YEAR ( create_time_ ) = "+begin+" ) s8sheBeiHeCha2  JOIN "+
    tool(end,"t_sbhcjlb",PAT(end),1)
  }
+ /* 内部质量控制 */
+function s9neiBu(begin,end,scope){
+  return "( SELECT COUNT( id_ ) AS t_mjzlkzxb"+end+" FROM t_mjzlkzxb WHERE YEAR ( create_time_ ) = "+end+" ) s9neibu1  JOIN "+
+  "( SELECT COUNT( t_mjzlkzxb.id_ ) AS t_mjzlkzxbS"+end+" FROM t_mjzlkzxb left join t_mjzlkzjhb on t_mjzlkzxb.parent_id_ = t_mjzlkzjhb.id_ WHERE t_mjzlkzjhb.shi_fou_guo_shen_='1' AND YEAR ( t_mjzlkzxb.create_time_ ) = "+end+"   ) s9neibu2 join"+
+  "( SELECT COUNT( id_ ) AS t_mjzlkzjlb"+end+" FROM t_mjzlkzjlb WHERE length(shi_fou_guo_shen_) >0 AND YEAR ( create_time_ ) = "+end+" ) s9neibu3 join" +
+  "( SELECT COUNT( id_ ) AS t_mjzlkzjlbS"+end+" FROM t_mjzlkzjlb WHERE shi_fou_guo_shen_=1 AND YEAR ( create_time_ ) = "+end+" ) s9neibu4"
+
+ }
+ function s12fengXian(begin,end,scope){
+  return "(select COUNT(t_mjsyshdfxsbykzjhxb.id_) as t_mjsyshdfxsbykzjhxb"+end+" from t_mjsyshdfxsbykzjhxb INNER JOIN t_mjsyshdfxsbykzjhb on t_mjsyshdfxsbykzjhxb.parent_id_ = t_mjsyshdfxsbykzjhb.id_  where YEAR(t_mjsyshdfxsbykzjhxb.shi_shi_ri_qi_)="+end+") s12fengxian1  JOIN " +
+  "(select COUNT(t_mjsyshdfxsbykzjhxb.id_) as t_mjsyshdfxsbykzjhxbS"+end+" from t_mjsyshdfxsbykzjhxb INNER JOIN t_mjsyshdfxsbykzjhb on t_mjsyshdfxsbykzjhxb.parent_id_ = t_mjsyshdfxsbykzjhb.id_  where YEAR(t_mjsyshdfxsbykzjhxb.shi_shi_ri_qi_)="+end+" and t_mjsyshdfxsbykzjhb.shi_fou_guo_shen_ = '1') s12fengxian2 "
+
+ }

+ 116 - 0
src/views/statistics/properties/s10waiBuNengLiPro.vue

@@ -0,0 +1,116 @@
+<template>
+    <el-dialog
+      :visible.sync="visible"
+      ref="dialog"
+      :title="title+'详情'"
+      width="100%"
+      lock-scroll
+      append-to-body
+      fullscreen
+      close-on-press-escape
+      destroy-on-close
+      v-if="visible"
+      @close="handleClose">
+
+      <div>
+
+    <el-container>
+      <el-aside style="border:0px;width: 13%;"></el-aside>
+      <!-- 放统计内容-->
+      <el-aside style="border:0px;width: 50%;">
+          <s10s10waiBuNengLiItem
+            :data="data"
+            width="95%"
+            :height="height"
+            id="s10waiBuNengLiPro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 37%; height: 700px;overflow: auto;">
+              <br>
+
+          <div>{{data.Num.date}} 年度</div>
+          <div v-for="(item,i) in data.Num.name" :key="i">
+              <el-divider content-position="left">{{data.Num.name[i]}}</el-divider>
+              外部质量计划 :<el-tag>{{data.Num.number[i]}} 次</el-tag>
+              <br>
+              <!-- 年度核查 :<el-tag>{{data.Num.numberAll[i]}} 次</el-tag>
+              <br> -->
+            </div>
+           <!-- <div class="dataCont" style="font-size: 14px;">
+          <el-divider content-position="left">{{data.t_sbhcjhBegin.date}} 年度</el-divider>
+            设备核查计划次数 :<el-tag>{{data.t_sbhcjhBegin.number}} 次</el-tag>
+            <br>
+             <el-divider content-position="left">{{data.t_sbhcjlbBegin.date}} 年度</el-divider>
+            设备核查完成次数 :<el-tag>{{data.t_sbhcjlbBegin.number}} 次</el-tag>
+            <br>
+            <el-divider content-position="left">{{data.t_sbhcjhEnd.date}} 年度</el-divider>
+            设备核查计划次数 :<el-tag type="danger">{{data.t_sbhcjhEnd.number}} 次</el-tag>
+          <el-divider content-position="left">{{data.t_sbhcjlbEnd.date}} 年度</el-divider>
+            设备核查完成次数 :<el-tag type="danger">{{data.t_sbhcjlbEnd.number}} 次</el-tag>
+           </div> -->
+
+        </el-aside>
+        
+      </el-container>
+
+
+      </div>
+    </el-dialog>
+</template>
+
+<script>
+  export default {
+    props:{
+        dialogOff:{ //当前表单示例
+            type: Boolean,
+            default:false,
+          },
+        title:{ type:String},
+        data:{
+          type:Object
+        },
+        height:{
+          type:String,
+          default:window.screen.height * 0.75 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s10s10waiBuNengLiItem = () => import('../item/s10waiBuNengLi.vue')
+          },
+
+    watch:{
+     dialogOff: {
+       handler: function(val, oldVal) {
+        this.visible = JSON.parse(JSON.stringify(val));
+        this.itemShow = true
+        },
+        immediate: true
+      }
+    },
+    data() {
+      return {
+        visible:false,
+        itemShow:false,
+
+      }
+    },
+    methods:{
+       // 关闭窗口
+      handleClose(){
+       this.$emit('close', false)
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  .dataCont{
+    border:0px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    height: calc(100vh * 0.85);
+    padding:20px;
+  }
+</style>

+ 114 - 0
src/views/statistics/properties/s11biaoZhunWuPro.vue

@@ -0,0 +1,114 @@
+<template>
+    <el-dialog
+      :visible.sync="visible"
+      ref="dialog"
+      :title="title+'详情'"
+      width="100%"
+      lock-scroll
+      append-to-body
+      fullscreen
+      close-on-press-escape
+      destroy-on-close
+      v-if="visible"
+      @close="handleClose">
+
+      <div>
+
+    <el-container>
+      <el-aside style="border:0px;width: 13%;"></el-aside>
+      <!-- 放统计内容-->
+      <el-aside style="border:0px;width: 50%;">
+          <s11biaoZhunWuItem
+            :data="data"
+            width="95%"
+            :height="height"
+            id="s11biaoZhunWuPro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 37%; height: 700px;overflow: auto;">
+              <br>
+
+          <div>{{data.Num.date}} 年度</div>
+          <div v-for="(item,i) in data.Num.name" :key="i">
+              <el-divider content-position="left">{{data.Num.name[i]}}</el-divider>
+              核查次数:<el-tag>{{data.Num.number[i]}} 次</el-tag>
+              <br>
+            </div>
+           <!-- <div class="dataCont" style="font-size: 14px;">
+          <el-divider content-position="left">{{data.t_sbhcjhBegin.date}} 年度</el-divider>
+            设备核查计划次数 :<el-tag>{{data.t_sbhcjhBegin.number}} 次</el-tag>
+            <br>
+             <el-divider content-position="left">{{data.t_sbhcjlbBegin.date}} 年度</el-divider>
+            设备核查完成次数 :<el-tag>{{data.t_sbhcjlbBegin.number}} 次</el-tag>
+            <br>
+            <el-divider content-position="left">{{data.t_sbhcjhEnd.date}} 年度</el-divider>
+            设备核查计划次数 :<el-tag type="danger">{{data.t_sbhcjhEnd.number}} 次</el-tag>
+          <el-divider content-position="left">{{data.t_sbhcjlbEnd.date}} 年度</el-divider>
+            设备核查完成次数 :<el-tag type="danger">{{data.t_sbhcjlbEnd.number}} 次</el-tag>
+           </div> -->
+
+        </el-aside>
+        
+      </el-container>
+
+
+      </div>
+    </el-dialog>
+</template>
+
+<script>
+  export default {
+    props:{
+        dialogOff:{ //当前表单示例
+            type: Boolean,
+            default:false,
+          },
+        title:{ type:String},
+        data:{
+          type:Object
+        },
+        height:{
+          type:String,
+          default:window.screen.height * 0.75 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s11biaoZhunWuItem = () => import('../item/s11biaoZhunWu.vue')
+          },
+
+    watch:{
+     dialogOff: {
+       handler: function(val, oldVal) {
+        this.visible = JSON.parse(JSON.stringify(val));
+        this.itemShow = true
+        },
+        immediate: true
+      }
+    },
+    data() {
+      return {
+        visible:false,
+        itemShow:false,
+
+      }
+    },
+    methods:{
+       // 关闭窗口
+      handleClose(){
+       this.$emit('close', false)
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  .dataCont{
+    border:0px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    height: calc(100vh * 0.85);
+    padding:20px;
+  }
+</style>

+ 122 - 0
src/views/statistics/properties/s12fengXianPro.vue

@@ -0,0 +1,122 @@
+<template>
+    <el-dialog
+      :visible.sync="visible"
+      ref="dialog"
+      :title="title+'详情'"
+      width="100%"
+      lock-scroll
+      append-to-body
+      fullscreen
+      close-on-press-escape
+      destroy-on-close
+      v-if="visible"
+      @close="handleClose">
+
+      <div>
+
+    <el-container>
+      <el-aside style="border:0px;width: 13%;"></el-aside>
+      <!-- 放统计内容-->
+      <el-aside style="border:0px;width: 50%;">
+          <s12fengXianItem
+            :data="data"
+            width="95%"
+            :height="height"
+            id="s5renYuanJianDuPro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 37%;">
+          <el-divider content-position="left">{{data.t_mjsyshdfxsbykzjhxbNum.date}} 年度</el-divider>
+            已完成数量 :<el-tag>{{data.t_mjsyshdfxsbykzjhxbNum.number[0]}} 次</el-tag>
+            <br>
+            总数 :<el-tag>{{data.t_mjsyshdfxsbykzjhxbNum.numberAll[0]}} 次</el-tag>
+            <br>
+            计划完成率 :<el-tag>{{data.t_mjsyshdfxsbykzjhxbNum.res[0]}} %</el-tag>
+            <br>
+          <!-- <div v-for="(item,i) in data.t_zljdNum.date" :key="i">
+            <el-divider content-position="left">{{data.t_zljdNum.date[i]}} 年度</el-divider>
+            已完成监督数量 :<el-tag>{{data.t_zljdNum.number[i]}} 次</el-tag>
+            <br>
+            所有监督数量 :<el-tag>{{data.t_zljdNum.numberAll[i]}} 次</el-tag>
+            <br>
+            监督完成率 :<el-tag>{{data.t_zljdNum.res[i]}} %</el-tag>
+            <br>
+          </div> -->
+           <!-- <div class="dataCont" style="font-size: 14px;">
+          <el-divider content-position="left">{{data.t_zljdBegin.date}} 年度</el-divider>
+            人员监督计划次数 :<el-tag>{{data.t_zljdBegin.number}} 次</el-tag>
+            <br>
+             <el-divider content-position="left">{{data.t_zljdssBegin.date}} 年度</el-divider>
+            人员监督完成次数 :<el-tag>{{data.t_zljdssBegin.number}} 次</el-tag>
+            <br>
+            <el-divider content-position="left">{{data.t_zljdEnd.date}} 年度</el-divider>
+            人员监督计划次数 :<el-tag type="danger">{{data.t_zljdEnd.number}} 次</el-tag>
+          <el-divider content-position="left">{{data.t_zljdssEnd.date}} 年度</el-divider>
+            人员监督完成次数 :<el-tag type="danger">{{data.t_zljdssEnd.number}} 次</el-tag>
+           </div> -->
+
+        </el-aside>
+
+      </el-container>
+
+
+      </div>
+    </el-dialog>
+</template>
+
+<script>
+  export default {
+    props:{
+        dialogOff:{ //当前表单示例
+            type: Boolean,
+            default:false,
+          },
+        title:{ type:String},
+        data:{
+          type:Object
+        },
+        height:{
+          type:String,
+          default:window.screen.height * 0.75 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s12fengXianItem = () => import('../item/s12fengXian.vue')
+          },
+
+    watch:{
+     dialogOff: {
+       handler: function(val, oldVal) {
+        this.visible = JSON.parse(JSON.stringify(val));
+        this.itemShow = true
+        },
+        immediate: true
+      }
+    },
+    data() {
+      return {
+        visible:false,
+        itemShow:false,
+
+      }
+    },
+    methods:{
+       // 关闭窗口
+      handleClose(){
+       this.$emit('close', false)
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  .dataCont{
+    border:0px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    height: calc(100vh * 0.85);
+    padding:20px;
+  }
+</style>

+ 9 - 2
src/views/statistics/properties/s1jianCePro.vue

@@ -30,7 +30,14 @@
         <!-- 参数页面列 -->
         <el-aside style="border:0px;width: 37%;">
            <div class="dataCont" style="font-size: 14px;">
-          <el-divider content-position="left">{{data.t_gdyrqcwtBegin.date}} 年度</el-divider>
+            <el-divider content-position="left">{{data.t_mjjcbgNum.date}} 年度</el-divider>
+            统计期内检测报告的差错次数 :<el-tag>{{data.t_mjjcbgNum.number[0]}} 次</el-tag>
+            <br>
+            有效检测任务总数 :<el-tag>{{data.t_mjjcbgNum.numberAll[0]}} 次</el-tag>
+            <br>
+            检测报告差错率 :<el-tag>{{data.t_mjjcbgNum.res[0]}} 次</el-tag>
+            <br>
+          <!-- <el-divider content-position="left">{{data.t_gdyrqcwtBegin.date}} 年度</el-divider>
             委托检测数 :<el-tag>{{data.t_gdyrqcwtBegin.number}} 次</el-tag>
             <br>
              <el-divider content-position="left">{{data.t_gdyrqcwt2Begin.date}} 年度</el-divider>
@@ -65,7 +72,7 @@
                     检测结果准确率 :<el-tag>{{((data.t_gdyrqcwt5End.number)*100).toFixed(2)}} %</el-tag>
                     <br>
                      <el-divider content-position="left">{{data.t_gdyrqcwt6End.date}} 年度</el-divider>
-                    按时完成率 :<el-tag>{{((data.t_gdyrqcwt6End.number)*100).toFixed(2)}} %</el-tag>
+                    按时完成率 :<el-tag>{{((data.t_gdyrqcwt6End.number)*100).toFixed(2)}} %</el-tag> -->
            </div>
 
         </el-aside>

+ 46 - 31
src/views/statistics/properties/s1zhiLiangMuBiaoPro.vue

@@ -13,39 +13,54 @@
       @close="handleClose">
 
       <div>
+        <el-container>
+          <!-- 放统计内容-->
+          <el-aside style="border:0px;width: 13%;"></el-aside>
+          <el-aside style="border:0px;width: 50%;">
+              <s5zhiLiangMuBiaoItem
+                :data="data"
+                width="95%"
+                :height="height"
+                id="s5zhiLiangMuBiaoPro"
+                click="false"
+              />
+          </el-aside>
+            <!-- 参数页面列 -->
+            <el-aside style="border:0px;width: 37%;">
+              <el-divider content-position="left">{{data.t_jchzbNum.date}} 年度</el-divider>
+              按时完成的检测项目数量 :<el-tag>{{data.t_jchzbNum.number[0]}} 次</el-tag>
+              <br>
+              有效检测任务总数 :<el-tag>{{data.t_jchzbNum.numberAll[0]}} 次</el-tag>
+              <br>
+              任务及时完成率 :<el-tag>{{data.t_jchzbNum.res[0]}} %</el-tag>
+              <br>
+              <!-- <div class="dataCont" style="font-size: 14px;">
+              <el-divider content-position="left">2021 年度</el-divider>
+                投诉处理率 :<el-tag>90%</el-tag>
+                <el-divider content-position="left">2022 年度</el-divider>
+                投诉处理率 :<el-tag type="danger">91%</el-tag>
+                <el-divider content-position="left">2021 年度</el-divider>
+                满意度 :<el-tag>95%</el-tag>
+                <el-divider content-position="left">2022 年度</el-divider>
+                  满意度 :<el-tag type="danger">96%</el-tag>
+                <el-divider content-position="left">2021 年度</el-divider>
+                培训完成率 :<el-tag>92%</el-tag>
+                <el-divider content-position="left">2022 年度</el-divider>
+                  培训完成率 :<el-tag type="danger">94%</el-tag>
+              </div> -->
+              <!-- <div v-for="(item,i) in data.t_jchzbNum.date" :key="i">
+                <el-divider content-position="left">{{data.t_jchzbNum.date[i]}} 年度</el-divider>
+                按时完成的检测项目数量 :<el-tag>{{data.t_jchzbNum.number[i]}} 次</el-tag>
+                <br>
+                有效检测任务总数 :<el-tag>{{data.t_jchzbNum.numberAll[i]}} 次</el-tag>
+                <br>
+                任务及时完成率 :<el-tag>{{data.t_jchzbNum.res[i]}} %</el-tag>
+                <br>
+              </div> -->
 
-    <el-container>
-      <!-- 放统计内容-->
-      <el-aside style="border:0px;width: 13%;"></el-aside>
-      <el-aside style="border:0px;width: 50%;">
-          <s5zhiLiangMuBiaoItem
-            :data="data"
-            width="95%"
-            :height="height"
-            id="s5zhiLiangMuBiaoPro"
-            click="false"
-          />
-      </el-aside>
-        <!-- 参数页面列 -->
-        <el-aside style="border:0px;width: 37%;">
-           <div class="dataCont" style="font-size: 14px;">
-          <el-divider content-position="left">2021 年度</el-divider>
-            投诉处理率 :<el-tag>90%</el-tag>
-            <el-divider content-position="left">2022 年度</el-divider>
-            投诉处理率 :<el-tag type="danger">91%</el-tag>
-             <el-divider content-position="left">2021 年度</el-divider>
-            满意度 :<el-tag>95%</el-tag>
-            <el-divider content-position="left">2022 年度</el-divider>
-              满意度 :<el-tag type="danger">96%</el-tag>
-            <el-divider content-position="left">2021 年度</el-divider>
-            培训完成率 :<el-tag>92%</el-tag>
-            <el-divider content-position="left">2022 年度</el-divider>
-              培训完成率 :<el-tag type="danger">94%</el-tag>
-           </div>
+            </el-aside>
 
-        </el-aside>
-
-      </el-container>
+          </el-container>
 
 
       </div>

+ 18 - 43
src/views/statistics/properties/s2manYiDuPro.vue

@@ -29,49 +29,24 @@
       </el-aside>
         <!-- 参数页面列 -->
         <el-aside style="border:0px;width: 37%;">
-           <div class="dataCont" style="font-size: 14px;">
-          <el-divider content-position="left">{{data.t_myddcBegin.date}} 年度</el-divider>
-            <font color="#FE8463">调查表总数 :<el-tag>{{data.t_myddcBegin.number}} 次</el-tag></font>
-            <br>
-             <el-divider content-position="left">{{data.t_myddc1Begin.date}} 年度</el-divider>
-            <font color="#9BCA63">技术水平 :<el-tag>{{((data.t_myddc1Begin.number-0.01)*100).toFixed(2)}} %</el-tag>
-            </font><br>
-            <el-divider content-position="left">{{data.t_myddc2Begin.date}} 年度</el-divider>
-             <font color="#FCCE10">检测效率满意度:<el-tag type="danger">{{((data.t_myddc2Begin.number-0.01)*100).toFixed(2)}} %</el-tag>
-             </font><br>
-          <el-divider content-position="left">{{data.t_myddc3Begin.date}} 年度</el-divider>
-            <font color="#E87C25">工作态度:<el-tag type="danger">{{((data.t_myddc3Begin.number-0.01)*100).toFixed(2)}} %</el-tag>
-            </font><br>
-              <el-divider content-position="left">{{data.t_myddc4Begin.date}} 年度</el-divider>
-             <font color="#27727B">检测准确性 :<el-tag type="danger">{{((data.t_myddc4Begin.number-0.01)*100).toFixed(2)}} %</el-tag>
-             </font><br>
-               <el-divider content-position="left">{{data.t_myddc5Begin.date}} 年度</el-divider>
-              <font color="#9BCA63">报告完成率 :<el-tag type="danger">{{((data.t_myddc5Begin.number-0.01)*100).toFixed(2)}} %</el-tag>
-              </font><br>
-            <el-divider content-position="left">{{data.t_myddc6Begin.date}} 年度</el-divider>
-              <font color="#FAD860">检测效率 :<el-tag type="danger">{{((data.t_myddc6Begin.number-0.01)*100).toFixed(2)}} %</el-tag>
-              </font><br>
-                <el-divider content-position="left">{{data.t_myddcEnd.date}} 年度</el-divider>
-                 <font color="#FE8463">调查表总数:<el-tag type="danger">{{data.t_myddcEnd.number}} 次</el-tag>
-                 </font><br>
-              <el-divider content-position="left">{{data.t_myddc1End.date}} 年度</el-divider>
-                <font color="#9BCA63">技术水平 :<el-tag type="danger">{{((data.t_myddc1End.number-0.01)*100).toFixed(2)}} %</el-tag>
-                </font><br>
-                  <el-divider content-position="left">{{data.t_myddc2End.date}} 年度</el-divider>
-                  <font color="#FCCE10">检测效率满意度 :<el-tag type="danger">{{((data.t_myddc2End.number-0.01)*100).toFixed(2)}} %</el-tag>
-                  </font><br>
-                <el-divider content-position="left">{{data.t_myddc3End.date}} 年度</el-divider>
-                  <font color="#E87C25">工作态度 :<el-tag type="danger">{{((data.t_myddc3End.number-0.01)*100).toFixed(2)}} %</el-tag>
-                  </font><br>
-                    <el-divider content-position="left">{{data.t_myddc4End.date}} 年度</el-divider>
-                   <font color="#27727B">检测准确性 :<el-tag type="danger">{{((data.t_myddc4End.number-0.01)*100).toFixed(2)}} %</el-tag>
-                  </font><br>
-                    <el-divider content-position="left">{{data.t_myddc5End.date}} 年度</el-divider>
-                     <font color="#9BCA63">报告完成率:<el-tag type="danger">{{((data.t_myddc5End.number-0.01)*100).toFixed(2)}} %</el-tag>
-                     </font><br>
-                  <el-divider content-position="left">{{data.t_myddc6End.date}} 年度</el-divider>
-                    <font color="#FAD860">检测效率 :<el-tag type="danger">{{((data.t_myddc6End.number-0.01)*100).toFixed(2)}} %</el-tag></font>
+           <div  class="dataCont" style="font-size: 14px;">
+              <el-divider content-position="left">{{data.t_khmydtjbNum.date}} 年度</el-divider>
+              调查表满意份数 :<el-tag>{{data.t_khmydtjbNum.number[0]}} 次</el-tag>
+              <br>
+              收回调查表有效总份数 :<el-tag>{{data.t_khmydtjbNum.numberAll[0]}} 次</el-tag>
+              <br>
+              客户满意度 :<el-tag>{{data.t_khmydtjbNum.res[0]}} %</el-tag>
+              <br>
            </div>
+           <!-- <div v-for="(item,i) in data.t_khmydtjbNum.date" :key="i">
+              <el-divider content-position="left">{{data.t_khmydtjbNum.date[i]}} 年度</el-divider>
+              调查表满意份数 :<el-tag>{{data.t_khmydtjbNum.number[i]}} 次</el-tag>
+              <br>
+              收回调查表有效总份数 :<el-tag>{{data.t_khmydtjbNum.numberAll[i]}} 次</el-tag>
+              <br>
+              客户满意度 :<el-tag>{{data.t_khmydtjbNum.res[i]}} %</el-tag>
+              <br>
+            </div> -->
 
         </el-aside>
 
@@ -158,7 +133,7 @@
       title: [
         {
          text: this.title,
-         subtext: this.data.t_myddcBegin.date+"-"+this.data.t_myddcEnd.date+"年数据统计"
+         subtext: this.data.t_myddcEnd.date+"年数据统计"
         }
       ],
       polar: {

+ 14 - 4
src/views/statistics/properties/s3tousuPro.vue

@@ -29,11 +29,21 @@
         <!-- 参数页面列 -->
         <el-aside style="border:0px;width: 37%;">
            <div class="dataCont" style="font-size: 14px;">
-          <el-divider content-position="left">{{data.t_complaintBegin.date}} 年度</el-divider>
-            投诉总数次数 :<el-tag>{{data.t_complaintBegin.number}} 次</el-tag>
+            <el-divider content-position="left">{{data.t_complaintNum.date}} 年度</el-divider>
+              投诉总数次数 :<el-tag>{{data.t_complaintNum.number[0]}} 次</el-tag>
+              <br>
+              委托总数次数 :<el-tag>{{data.t_complaintNum.numberAll[0]}} 次</el-tag>
+              <br>
+              客户投诉率 :<el-tag>{{data.t_complaintNum.res[0]}} %</el-tag>
             <br>
-             <el-divider content-position="left">{{data.t_complaintEnd.date}} 年度</el-divider>
-            投诉总数次数 :<el-tag type="danger">{{data.t_complaintEnd.number}} 次</el-tag>
+              <!-- <div v-for="(item,i) in data.t_complaintNum.number" :key="i">
+                  <el-divider content-position="left">{{data.t_complaintNum.date[i]}} 年度</el-divider>
+                  投诉总数次数 :<el-tag>{{data.t_complaintNum.number[i]}} 次</el-tag>
+                  <br>
+                  委托总数次数 :<el-tag>{{data.t_mjwtsqbNum.number[i]}} 次</el-tag>
+                  <br>
+              </div> -->
+
            </div>
 
         </el-aside>

+ 18 - 2
src/views/statistics/properties/s4renYuanPeiXunPro.vue

@@ -28,7 +28,23 @@
       </el-aside>
         <!-- 参数页面列 -->
         <el-aside style="border:0px;width: 37%;">
-           <div class="dataCont" style="font-size: 14px;">
+          <el-divider content-position="left">{{data.t_ryywpxjlNum.date}} 年度</el-divider>
+            已完成培训数量 :<el-tag>{{data.t_ryywpxjlNum.number[0]}} 次</el-tag>
+            <br>
+            所有培训数量 :<el-tag>{{data.t_ryywpxjlNum.numberAll[0]}} 次</el-tag>
+            <br>
+            培训完成率 :<el-tag>{{data.t_ryywpxjlNum.res[0]}} %</el-tag>
+            <br>
+          <!-- <div v-for="(item,i) in data.t_ryywpxjlNum.date" :key="i">
+            <el-divider content-position="left">{{data.t_ryywpxjlNum.date[i]}} 年度</el-divider>
+            已完成培训数量 :<el-tag>{{data.t_ryywpxjlNum.number[i]}} 次</el-tag>
+            <br>
+            所有培训数量 :<el-tag>{{data.t_ryywpxjlNum.numberAll[i]}} 次</el-tag>
+            <br>
+            培训完成率 :<el-tag>{{data.t_ryywpxjlNum.res[i]}} %</el-tag>
+            <br>
+          </div> -->
+           <!-- <div class="dataCont" style="font-size: 14px;">
           <el-divider content-position="left">{{data.t_ryndpxjhBegin.date}} 年度</el-divider>
             人员培训计划次数 :<el-tag>{{data.t_ryndpxjhBegin.number}} 次</el-tag>
             <br>
@@ -39,7 +55,7 @@
             人员培训计划次数 :<el-tag type="danger">{{data.t_ryndpxjhEnd.number}} 次</el-tag>
           <el-divider content-position="left">{{data.t_rypxjlnkEnd.date}} 年度</el-divider>
             人员培训完成次数 :<el-tag type="danger">{{data.t_rypxjlnkEnd.number}} 次</el-tag>
-           </div>
+           </div> -->
 
         </el-aside>
 

+ 18 - 2
src/views/statistics/properties/s5renYuanJianDuPro.vue

@@ -28,7 +28,23 @@
       </el-aside>
         <!-- 参数页面列 -->
         <el-aside style="border:0px;width: 37%;">
-           <div class="dataCont" style="font-size: 14px;">
+          <el-divider content-position="left">{{data.t_zljdNum.date}} 年度</el-divider>
+            已完成监督数量 :<el-tag>{{data.t_zljdNum.number[0]}} 次</el-tag>
+            <br>
+            所有监督数量 :<el-tag>{{data.t_zljdNum.numberAll[0]}} 次</el-tag>
+            <br>
+            监督完成率 :<el-tag>{{data.t_zljdNum.res[0]}} %</el-tag>
+            <br>
+          <!-- <div v-for="(item,i) in data.t_zljdNum.date" :key="i">
+            <el-divider content-position="left">{{data.t_zljdNum.date[i]}} 年度</el-divider>
+            已完成监督数量 :<el-tag>{{data.t_zljdNum.number[i]}} 次</el-tag>
+            <br>
+            所有监督数量 :<el-tag>{{data.t_zljdNum.numberAll[i]}} 次</el-tag>
+            <br>
+            监督完成率 :<el-tag>{{data.t_zljdNum.res[i]}} %</el-tag>
+            <br>
+          </div> -->
+           <!-- <div class="dataCont" style="font-size: 14px;">
           <el-divider content-position="left">{{data.t_zljdBegin.date}} 年度</el-divider>
             人员监督计划次数 :<el-tag>{{data.t_zljdBegin.number}} 次</el-tag>
             <br>
@@ -39,7 +55,7 @@
             人员监督计划次数 :<el-tag type="danger">{{data.t_zljdEnd.number}} 次</el-tag>
           <el-divider content-position="left">{{data.t_zljdssEnd.date}} 年度</el-divider>
             人员监督完成次数 :<el-tag type="danger">{{data.t_zljdssEnd.number}} 次</el-tag>
-           </div>
+           </div> -->
 
         </el-aside>
 

+ 16 - 3
src/views/statistics/properties/s7sheBeiJiaoZhunPro.vue

@@ -27,8 +27,21 @@
           />
       </el-aside>
         <!-- 参数页面列 -->
-        <el-aside style="border:0px;width: 37%;">
-           <div class="dataCont" style="font-size: 14px;">
+        <el-aside style="border:0px;width: 37%; height: 700px;overflow: auto;">
+              <br>
+
+          <div>{{data.t_mjsbjdxzjhzbNum.date}} 年度</div>
+
+          <div v-for="(item,i) in data.t_mjsbjdxzjhzbNum.name" :key="i">
+              <el-divider content-position="left">{{data.t_mjsbjdxzjhzbNum.name[i]}}</el-divider>
+              仪器已完成校验次数 :<el-tag>{{data.t_mjsbjdxzjhzbNum.number[i]}} 次</el-tag>
+              <br>
+              仪器计划校验次数 :<el-tag>{{data.t_mjsbjdxzjhzbNum.numberAll[i]}} 次</el-tag>
+              <br>
+              校验完成率 :<el-tag>{{data.t_mjsbjdxzjhzbNum.val[i]}} %</el-tag>
+              <br>
+            </div>
+           <!-- <div class="dataCont" style="font-size: 14px;">
           <el-divider content-position="left">{{data.t_ndsbxzjdjhBegin.date}} 年度</el-divider>
             设备校准计划次数 :<el-tag>{{data.t_ndsbxzjdjhBegin.number}} 次</el-tag>
             <br>
@@ -39,7 +52,7 @@
             设备校准计划次数 :<el-tag type="danger">{{data.t_ndsbxzjdjhEnd.number}} 次</el-tag>
           <el-divider content-position="left">{{data.t_yqsbxzjgEnd.date}} 年度</el-divider>
             设备校准完成次数 :<el-tag type="danger">{{data.t_yqsbxzjgEnd.number}} 次</el-tag>
-           </div>
+           </div> -->
 
         </el-aside>
 

+ 15 - 4
src/views/statistics/properties/s8sheBeiHeChaPro.vue

@@ -27,8 +27,19 @@
           />
       </el-aside>
         <!-- 参数页面列 -->
-        <el-aside style="border:0px;width: 37%;">
-           <div class="dataCont" style="font-size: 14px;">
+        <el-aside style="border:0px;width: 37%; height: 700px;overflow: auto;">
+              <br>
+
+          <div>{{data.t_sbhcjlbNum.date}} 年度</div>
+
+          <div v-for="(item,i) in data.t_sbhcjlbNum.name" :key="i">
+              <el-divider content-position="left">{{data.t_sbhcjlbNum.name[i]}}</el-divider>
+              计划外核查 :<el-tag>{{data.t_sbhcjlbNum.number[i]}} 次</el-tag>
+              <br>
+              年度核查 :<el-tag>{{data.t_sbhcjlbNum.numberAll[i]}} 次</el-tag>
+              <br>
+            </div>
+           <!-- <div class="dataCont" style="font-size: 14px;">
           <el-divider content-position="left">{{data.t_sbhcjhBegin.date}} 年度</el-divider>
             设备核查计划次数 :<el-tag>{{data.t_sbhcjhBegin.number}} 次</el-tag>
             <br>
@@ -39,7 +50,7 @@
             设备核查计划次数 :<el-tag type="danger">{{data.t_sbhcjhEnd.number}} 次</el-tag>
           <el-divider content-position="left">{{data.t_sbhcjlbEnd.date}} 年度</el-divider>
             设备核查完成次数 :<el-tag type="danger">{{data.t_sbhcjlbEnd.number}} 次</el-tag>
-           </div>
+           </div> -->
 
         </el-aside>
         
@@ -68,7 +79,7 @@
       },
       beforeCreate: function () {
           // 官方文档给出的是require
-           this.$options.components.s8sheBeiHeChaItem = () => import('../item/s8sheBeiHeCha.vue')
+           this.$options.components.s8sheBeiHeChaItem = () => import('../item/s10waiBuNengLi.vue')
           },
 
     watch:{

+ 119 - 0
src/views/statistics/properties/s9neiBuZhiLiangPro.vue

@@ -0,0 +1,119 @@
+<template>
+    <el-dialog
+      :visible.sync="visible"
+      ref="dialog"
+      :title="title+'详情'"
+      width="100%"
+      lock-scroll
+      append-to-body
+      fullscreen
+      close-on-press-escape
+      destroy-on-close
+      v-if="visible"
+      @close="handleClose">
+
+      <div>
+
+    <el-container>
+      <el-aside style="border:0px;width: 13%;"></el-aside>
+      <!-- 放统计内容-->
+      <el-aside style="border:0px;width: 50%;">
+          <s9neiBuZhiLiangItem
+            :data="data"
+            width="95%"
+            :height="height"
+            id="s9neibuPro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 37%;">
+           <div class="dataCont" style="font-size: 14px;">
+            <el-divider content-position="left">{{data.t_mjzlkzxbNum.date}} 年度</el-divider>
+              年度质量控制计划完成数量 :<el-tag>{{data.t_mjzlkzxbNum.number[1]}} 次</el-tag>
+              <br>
+              年度质量控制计划总数 :<el-tag>{{data.t_mjzlkzxbNum.number[2]}} 次</el-tag>
+              <br>
+              年度质量控制计划完成率 :<el-tag>{{data.t_mjzlkzxbNum.number[2]==null||data.t_mjzlkzxbNum.number[2]==0?"0.00":(data.t_mjzlkzxbNum.number[1]/data.t_mjzlkzxbNum.number[2]*100).toFixed(2)}} %</el-tag>
+              <br>
+              <br>
+              部门质量控制计划完成数量 :<el-tag>{{data.t_mjzlkzxbNum.numberAll[1]}} 次</el-tag>
+              <br>
+              部门质量控制计划总数 :<el-tag>{{data.t_mjzlkzxbNum.numberAll[2]}} 次</el-tag>
+              <br>
+              部门质量控制计划完成率 :<el-tag>{{data.t_mjzlkzxbNum.numberAll[2]==null||data.t_mjzlkzxbNum.numberAll[2]==0?"0.00":(data.t_mjzlkzxbNum.numberAll[1]/data.t_mjzlkzxbNum.numberAll[2]*100).toFixed(2)}} %</el-tag>
+              <br>
+            <br>
+              <!-- <div v-for="(item,i) in data.t_complaintNum.number" :key="i">
+                  <el-divider content-position="left">{{data.t_complaintNum.date[i]}} 年度</el-divider>
+                  投诉总数次数 :<el-tag>{{data.t_complaintNum.number[i]}} 次</el-tag>
+                  <br>
+                  委托总数次数 :<el-tag>{{data.t_mjwtsqbNum.number[i]}} 次</el-tag>
+                  <br>
+              </div> -->
+
+           </div>
+
+        </el-aside>
+
+      </el-container>
+
+
+      </div>
+    </el-dialog>
+</template>
+
+<script>
+  export default {
+    props:{
+        dialogOff:{ //当前表单示例
+            type: Boolean,
+            default:false,
+          },
+        title:{ type:String},
+        data:{
+          type:Object
+        },
+        height:{
+          type:String,
+          default:window.screen.height * 0.75 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s9neiBuZhiLiangItem = () => import('../item/s9neiBuZhiLiang.vue')
+          },
+
+    watch:{
+     dialogOff: {
+       handler: function(val, oldVal) {
+        this.visible = JSON.parse(JSON.stringify(val));
+        this.itemShow = true
+        },
+        immediate: true
+      }
+    },
+    data() {
+      return {
+        visible:false,
+        itemShow:false,
+
+      }
+    },
+    methods:{
+       // 关闭窗口
+      handleClose(){
+       this.$emit('close', false)
+      }
+    }
+  }
+</script>
+
+<style scoped>
+  .dataCont{
+    border:0px;
+    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+    height: calc(100vh * 0.85);
+    padding:20px;
+  }
+</style>

+ 403 - 110
src/views/statistics/sendDatas.js

@@ -1,116 +1,409 @@
 /**
  * 高度修复
  */
+// import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
+
 export default {
-  methods: {
-    /* 遍历配置,分发配置参数*/
-    getMyConfig(name){
-      if(this.config.length == 0)  return
-      for(let i in this.config){
-        if (this.config[i]['pei_zhi_biao_ming'] == name){
-          return this.config[i]['pei_zhi_can_shu_'] //返回需要的对应参数
+        methods: {
+        /* 遍历配置,分发配置参数*/
+                getMatchingData(matching){
+                        let matchArr = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                        //         matchArr.push(this.relData[matching+this.dataScope[i]])
+                        // }
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                matchArr.push(this.relData[matching+this.endDate])
+                        // }
+                        return matchArr
+                },
+                getMatchingDataSame(matching){
+                        let matchArr = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                        //         matchArr.push(this.relData[matching+'S'+this.dataScope[i]])
+                        // }
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                matchArr.push(this.relData[matching+'S'+this.endDate])
+                        // }
+                        return matchArr
+                },
+                getJiaoYanObjNum(){
+                        let name = []
+                        let val =[]
+                        let valAll = []
+                        let e = []
+                        let that = this
+                        for (let i = 0; i < that.jiaoyanObj.length; i++) {
+                                let num=0
+                                let nameMid =''
+                                if (that.jiaoyanObj[i].t_mjsbjdxzjhzb===0) {
+                                        num =0
+                                } else {
+                                        num =Math.floor(that.jiaoyanObj[i].t_mjsbjdxzjhzbS/that.jiaoyanObj[i].t_mjsbjdxzjhzb * 10000) / 100
+                                }
+                                if (!that.jiaoyanObj[i].t_mjsbjdxzjhzbName) {
+                                        name.push(that.jiaoyanObj[i].t_mjsbjdxzjhzbZhName)
+                                } else {
+                                        nameMid=that.jiaoyanObj[i].t_mjsbjdxzjhzbZhName.split("—")
+                                        if(nameMid.length===2){
+                                                name.push(nameMid[1]+that.jiaoyanObj[i].t_mjsbjdxzjhzbName)
+                                        }else{
+                                                name.push(nameMid[0]+that.jiaoyanObj[i].t_mjsbjdxzjhzbName)
+                                        }
+                                }
+                                valAll.push(that.jiaoyanObj[i].t_mjsbjdxzjhzb)
+                                val.push(that.jiaoyanObj[i].t_mjsbjdxzjhzbS)
+                                e.push(num)
+
+                                // name.push(that.jiaoyanObj[i].t_mjsbjdxzjhzbName)
+
+                        }
+                        return {
+                                "t_mjsbjdxzjhzbNum" :{"date": this.endDate,"number": val, "numberAll": valAll, "val": e, "name": name},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                gethechaObjNum(){
+                        let name = []
+                        let val =[]
+                        let valAll = []
+                        let e = []
+                        let that = this
+                        for (let i = 0; i < that.hechaObj.length; i++) {
+                                let nameMid = ''
+                                // let num=0
+                                if (!that.hechaObj[i].t_sbhcjlbZhname) {
+                                        name.push(that.hechaObj[i].t_sbhcjlbName)
+                                } else {
+                                        nameMid=that.hechaObj[i].t_sbhcjlbName.split("—")
+                                        if(nameMid.length===2){
+                                                name.push(nameMid[1]+that.hechaObj[i].t_sbhcjlbZhname)
+                                        }else{
+                                                name.push(nameMid[0]+that.hechaObj[i].t_sbhcjlbZhname)
+                                        }
+                                }
+                                valAll.push(that.hechaObj[i].t_sbhcjlb)
+                                val.push(that.hechaObj[i].t_sbhcjlbS)
+                                // e.push(num)
+
+                                
+
+                        }
+                        console.log(val,valAll,name,that.hechaObj,'ssdddsdwew1231')
+                        return {
+                                "t_sbhcjlbNum" :{"date": this.endDate,"number": val, "numberAll": valAll, "name": name},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getnengtliObjNum(){
+                        let name = []
+                        let val =[]
+                        let valAll = []
+                        let e = []
+                        let that = this
+                        for (let i = 0; i < that.nengliObj.length; i++) {
+                                // let num=0
+                                // if (that.hechaObj[i].t_sbhcjlb===0) {
+                                //         num =0
+                                // } else {
+                                //         num =Math.floor(that.hechaObj[i].t_sbhcjlbS/that.hechaObj[i].t_sbhcjlb * 10000) / 100
+                                // }
+                                // valAll.push(that.hechaObj[i].t_sbhcjlb)
+                                val.push(that.nengliObj[i].num)
+                                // e.push(num)
+                                let nameMid = that.nengliObj[i].enname.split("—")
+                                if(nameMid.length===2){
+                                        name.push(nameMid[1]+that.nengliObj[i].zhname)
+                                }else{
+                                        name.push(nameMid[0]+that.nengliObj[i].zhname)
+                                }
+
+                        }
+                        return {
+                                "Num" :{"date": this.endDate,"number": val, "name": name},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getbiaozhunObjNum(){
+                        let name = []
+                        let val =[]
+                        let valAll = []
+                        let e = []
+                        let that = this
+                        for (let i = 0; i < that.biaozhunObj.length; i++) {
+                                // let num=0
+                                // if (that.hechaObj[i].t_sbhcjlb===0) {
+                                //         num =0
+                                // } else {
+                                //         num =Math.floor(that.hechaObj[i].t_sbhcjlbS/that.hechaObj[i].t_sbhcjlb * 10000) / 100
+                                // }
+                                // valAll.push(that.hechaObj[i].t_sbhcjlb)
+                                val.push(that.biaozhunObj[i].num)
+                                // e.push(num)
+                                name.push(that.biaozhunObj[i].name)
+
+                        }
+                        return {
+                                "Num" :{"date": this.endDate,"number": val, "name": name},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getMyConfig(name){
+                        if(this.config.length == 0)  return
+                        for(let i in this.config){
+                                if (this.config[i]['pei_zhi_biao_ming'] == name){
+                                        return this.config[i]['pei_zhi_can_shu_'] //返回需要的对应参数
+                                }
+                        }
+                },
+                getS1renwu(){
+                        let jchzbNum = this.getMatchingData('t_jchzb')
+                        let jchzbSNum = this.getMatchingDataSame('t_jchzb')
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                let e=0
+                                if (jchzbSNum[0]===0) {
+                                        e =0
+                                } else {
+                                        e =Math.floor(jchzbNum[0]/jchzbSNum[0] * 10000) / 100
+                                }
+                                barData.push(e)
+                        // }
+                        return {
+                                "t_jchzbNum" :{"date": this.endDate,"number": jchzbNum, "numberAll": jchzbSNum, "res": barData},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getS1jianCe(){
+                        return {
+                                // "t_mjjcbgNum" :{"date": this.dataScope,"number": mjjcbgNum, "numberAll": mjjcbgSNum, "res": barData},
+                                "t_gdyrqcwtBegin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt'+this.BeginDate]},
+                                "t_gdyrqcwtEnd" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt'+this.endDate]},
+                                "t_gdyrqcwt2Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt2'+this.BeginDate]},
+                                "t_gdyrqcwt2End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt2'+this.endDate]},
+                                "t_gdyrqcwt3Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt3'+this.BeginDate]},
+                                "t_gdyrqcwt3End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt3'+this.endDate]},
+                                "t_gdyrqcwt4Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt4'+this.BeginDate]},
+                                "t_gdyrqcwt4End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt4'+this.endDate]},
+                                "t_gdyrqcwt5Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt5'+this.BeginDate]},
+                                "t_gdyrqcwt5End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt5'+this.endDate]},
+                                "t_gdyrqcwt6Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt6'+this.BeginDate]},
+                                "t_gdyrqcwt6End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt6'+this.endDate]},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getS2jianCe(){
+                        let mjjcbgNum = this.getMatchingData('t_mjjcbg')
+                        let mjjcbgSNum = this.getMatchingDataSame('t_mjjcbg')
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                let e=0
+                                if (mjjcbgSNum[0]===0) {
+                                        e =0
+                                } else {
+                                        e =Math.floor(mjjcbgNum[0]/mjjcbgSNum[0] * 10000) / 100
+                                }
+                                barData.push(e)
+                        // }
+                        return {
+                                "t_mjjcbgNum" :{"date": this.endDate,"number": mjjcbgNum, "numberAll": mjjcbgSNum, "res": barData},
+                                "t_gdyrqcwtBegin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt'+this.BeginDate]},
+                                "t_gdyrqcwtEnd" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt'+this.endDate]},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getS2manYiDu(){
+                        let khmydtjbNum = this.getMatchingData('t_khmydtjb')
+                        let khmydtjbSNum = this.getMatchingDataSame('t_khmydtjb')
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                let e=0
+                                if (khmydtjbSNum[0]===0) {
+                                        e =0
+                                } else {
+                                        e =Math.floor(khmydtjbNum[0]/khmydtjbSNum[0] * 10000) / 100
+                                }
+                                barData.push(e)
+                        // }
+                        return {
+                                "t_myddcBegin" :{"date": this.BeginDate,"number": this.relData['t_myddc'+this.BeginDate]},
+                                "t_myddcEnd" :{"date": this.endDate,"number": this.relData['t_myddc'+this.endDate]},
+                                "t_myddc1Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc1'+this.BeginDate]},
+                                "t_myddc1End" :{"date": this.endDate,"number": this.relData['t_myddc1'+this.endDate]},
+                                "t_myddc2Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc2'+this.BeginDate]},
+                                "t_myddc2End" :{"date": this.endDate,"number": this.relData['t_myddc2'+this.endDate]},
+                                "t_myddc3Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc3'+this.BeginDate]},
+                                "t_myddc3End" :{"date": this.endDate,"number": this.relData['t_myddc3'+this.endDate]},
+                                "t_myddc4Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc4'+this.BeginDate]},
+                                "t_myddc4End" :{"date": this.endDate,"number": this.relData['t_myddc4'+this.endDate]},
+                                "t_myddc5Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc5'+this.BeginDate]},
+                                "t_myddc5End" :{"date": this.endDate,"number": this.relData['t_myddc5'+this.endDate]},
+                                "t_myddc6Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc6'+this.BeginDate]},
+                                "t_myddc6End" :{"date": this.endDate,"number": this.relData['t_myddc6'+this.endDate]},
+                                "t_khmydtjbNum" :{"date": this.endDate,"number": khmydtjbNum, "numberAll": khmydtjbSNum, "res": barData},
+                                "config":this.getMyConfig("客户满意度") //返回需要的对应参数
+                        }
+                },
+                getS3tousu(){
+                        let complaintNum = this.getMatchingData('t_complaint')
+                        let mjwtsqbNum = this.getMatchingData('t_mjwtsqb')
+                        let e=0
+                        let barData =[]
+                        if (mjwtsqbNum[0]===0) {
+                                e =0
+                        } else {
+                                e =Math.floor(complaintNum[0]/mjwtsqbNum[0] * 10000) / 100
+                        }
+                        barData.push(e)
+                        return {
+                                "t_complaintNum" :{"date": this.endDate,"number": complaintNum,"numberAll":mjwtsqbNum,"res":barData},
+                                "t_mjwtsqbNum" :{"date": this.dataScope,"number": mjwtsqbNum},
+                                "config":this.getMyConfig("客户投诉率") //返回需要的对应参数
+                        }
+                },
+                getS4renYuanPeiXun(){
+                        let ryywpxjNum = this.getMatchingData('t_ryywpxjl')
+                        let ryywpxjSNum = this.getMatchingDataSame('t_ryywpxjl')
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                let e=0
+                                if (ryywpxjSNum[0]===0) {
+                                        e =0
+                                } else {
+                                        e =Math.floor(ryywpxjNum[0]/ryywpxjSNum[0] * 10000) / 100
+                                }
+                                barData.push(e)
+                        // }
+                        return {
+                                "t_ryywpxjlNum" :{"date": this.endDate,"number": ryywpxjNum, "numberAll": ryywpxjSNum, "res": barData},
+                                "t_ryndpxjhBegin" :{"date": this.BeginDate,"number": this.relData['t_ryndpxjh'+this.BeginDate]},
+                                "t_ryndpxjhEnd" :{"date": this.endDate,"number": this.relData['t_ryndpxjh'+this.endDate]},
+                                "t_rypxjlnkBegin" :{"date": this.BeginDate,"number": this.relData['t_rypxjlnk'+this.BeginDate]},
+                                "t_rypxjlnkEnd" :{"date": this.endDate,"number": this.relData['t_rypxjlnk'+this.endDate]},
+                                "config":this.getMyConfig("人员培训") //返回需要的对应参数
+                        }
+                },
+                getS5renYuanJianDu(){
+                        let zljdNum = this.getMatchingData('t_zljd')
+                        let zljdSNum = this.getMatchingDataSame('t_zljd')
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                                let e=0
+                                if (zljdSNum[0]===0) {
+                                        e =0
+                                } else {
+                                        e =Math.floor(zljdNum[0]/zljdSNum[0] * 10000) / 100
+                                }
+                                barData.push(e)
+                        // }
+                        return {
+                                "t_zljdNum" :{"date": this.endDate,"number": zljdNum, "numberAll": zljdSNum, "res": barData},
+                                "t_zljdBegin" :{"date": this.BeginDate,"number": this.relData['t_zljd'+this.BeginDate]},
+                                "t_zljdEnd" :{"date": this.endDate,"number": this.relData['t_zljd'+this.endDate]},
+                                "t_zljdssBegin" :{"date": this.BeginDate,"number": this.relData['t_zljdss'+this.BeginDate]},
+                                "t_zljdssEnd" :{"date": this.endDate,"number": this.relData['t_zljdss'+this.endDate]},
+                                "config":this.getMyConfig("人员监督") //返回需要的对应参数
+                        }
+                },
+                getS6sheBeiWeiHu(){
+                        return {
+                                "t_yqsbwhjhxmtBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhxmt'+this.BeginDate]},
+                                "t_yqsbwhjhxmtEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhxmt'+this.endDate]},
+                                "t_yqsbwhjhxmzBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhxmz'+this.BeginDate]},
+                                "t_yqsbwhjhxmzEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhxmz'+this.endDate]},
+                                "t_yqsbwhjhxmyBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhxmy'+this.BeginDate]},
+                                "t_yqsbwhjhxmyEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhxmy'+this.endDate]},
+                                "t_whbyxxBegin" :{"date": this.BeginDate,"number": this.relData['t_whbyxx'+this.BeginDate]},
+                                "t_whbyxxEnd" :{"date": this.endDate,"number": this.relData['t_whbyxx'+this.endDate]},
+                                "t_whbyxmxxmzBegin" :{"date": this.BeginDate,"number": this.relData['t_whbyxmxxmz'+this.BeginDate]},
+                                "t_whbyxmxxmzEnd" :{"date": this.endDate,"number": this.relData['t_whbyxmxxmz'+this.endDate]},
+                                "t_whbyxxmyBegin" :{"date": this.BeginDate,"number": this.relData['t_whbyxxmy'+this.BeginDate]},
+                                "t_whbyxxmyEnd" :{"date": this.endDate,"number": this.relData['t_whbyxxmy'+this.endDate]},
+                                "t_yqsbwhjhfbBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhfb'+this.BeginDate]},
+                                "t_yqsbwhjhfbEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhfb'+this.endDate]},
+                                "t_yqsbwhjlfbBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjlfb'+this.BeginDate]},
+                                "t_yqsbwhjlfbEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjlfb'+this.endDate]},
+                                "config":this.getMyConfig("设备维护") //返回需要的对应参数
+                        }
+                },
+                getS7sheBeiJiaoZhun(){
+                        let mjsbjdxzjhzbNum = this.getMatchingData('t_mjsbjdxzjhzb')
+
+                        return {
+                                "t_ndsbxzjdjhBegin" :{"date": this.BeginDate,"number": this.relData['t_ndsbxzjdjh'+this.BeginDate]},
+                                "t_ndsbxzjdjhEnd" :{"date": this.endDate,"number": this.relData['t_ndsbxzjdjh'+this.endDate]},
+                                "t_yqsbxzjgBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbxzjg'+this.BeginDate]},
+                                "t_yqsbxzjgEnd" :{"date": this.endDate,"number": this.relData['t_yqsbxzjg'+this.endDate]},
+                                "allDate" :{"date": this.endDate,"number": this.relData['t_yqsbxzjg'+this.endDate]},
+                                "config":this.getMyConfig("设备校准") //返回需要的对应参数
+                        }
+                },
+                getS8sheBeiHeCha(){
+                        return {
+                                "t_sbhcjhBegin" :{"date": this.BeginDate,"number": this.relData['t_sbhcjh'+this.BeginDate]},
+                                "t_sbhcjhEnd" :{"date": this.endDate,"number": this.relData['t_sbhcjh'+this.endDate]},
+                                "t_sbhcjlbBegin" :{"date": this.BeginDate,"number": this.relData['t_sbhcjlb'+this.BeginDate]},
+                                "t_sbhcjlbEnd" :{"date": this.endDate,"number": this.relData['t_sbhcjlb'+this.endDate]},
+                                "config":this.getMyConfig("设备核查") //返回需要的对应参数
+                        }
+                },
+                getS9neiBuZhiLiang(){
+                        //年度总
+                        let mjzlkzxbNum = this.getMatchingData('t_mjzlkzxb')
+                        //年度条件
+                        let mjzlkzxbSNum = this.getMatchingDataSame('t_mjzlkzxb')
+                        //部门总
+                        let mjzlkzjlbNum = this.getMatchingData('t_mjzlkzjlb')
+                        //部门条件
+                        let mjzlkzjlbSNum = this.getMatchingDataSame('t_mjzlkzjlb')
+                        let numData = []
+                        let numAData = []
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                        // let e=0
+                        // if (mjzlkzxbSNum[0]===0) {
+                        //         e =0
+                        // } else {
+                        //         e =Math.floor(mjzlkzxbNum[0]/mjzlkzxbSNum[0] * 10000) / 100
+                        // }
+                        numData.push('计划内')
+                        numData.push(mjzlkzxbSNum[0])
+                        numData.push(mjzlkzxbNum[0])
+                        numAData.push('计划外')
+                        numAData.push(mjzlkzjlbSNum[0])
+                        numAData.push(mjzlkzjlbNum[0])
+                        barData.push(numData)
+                        barData.push(numAData)
+                        // }
+                        return {
+                                "t_mjzlkzxbNum" :{"date": this.endDate,"number": numData, "numberAll": numAData,'val':barData},
+                                "config":this.getMyConfig("内部质量") //返回需要的对应参数
+                        }
+                },
+                getS12fengXian(){
+                        //年度总
+                        let mjsyshdfxsbykzjhxbNum = this.getMatchingData('t_mjsyshdfxsbykzjhxb')
+                        //年度条件
+                        let mjsyshdfxsbykzjhxbSNum = this.getMatchingDataSame('t_mjsyshdfxsbykzjhxb')
+
+                        let numData = []
+                        let numAData = []
+                        let barData = []
+                        // for (let i = 0; i < this.dataScope.length; i++) {
+                        let e=0
+                        if (mjsyshdfxsbykzjhxbNum[0]===0) {
+                                e =0
+                        } else {
+                                e =Math.floor(mjsyshdfxsbykzjhxbSNum[0]/mjsyshdfxsbykzjhxbNum[0] * 10000) / 100
+                        }
+                        numData.push(mjsyshdfxsbykzjhxbSNum[0])
+                        numData.push(mjsyshdfxsbykzjhxbNum[0])
+                        barData.push(e)
+                        // }
+                        // console.log(numData,'sddsddwqwww')
+                        return {
+                                "t_mjsyshdfxsbykzjhxbNum" :{"date": this.endDate,"number": mjsyshdfxsbykzjhxbSNum, "numberAll":mjsyshdfxsbykzjhxbNum, "res":barData},
+                                "config":this.getMyConfig("内部质量") //返回需要的对应参数
+                        }
+                },
         }
-      }
-    },
-    getS1jianCe(){
-        return {
-                "t_gdyrqcwtBegin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt'+this.BeginDate]},
-                "t_gdyrqcwtEnd" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt'+this.endDate]},
-                "t_gdyrqcwt2Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt2'+this.BeginDate]},
-                "t_gdyrqcwt2End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt2'+this.endDate]},
-                "t_gdyrqcwt3Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt3'+this.BeginDate]},
-                "t_gdyrqcwt3End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt3'+this.endDate]},
-                "t_gdyrqcwt4Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt4'+this.BeginDate]},
-                "t_gdyrqcwt4End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt4'+this.endDate]},
-                "t_gdyrqcwt5Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt5'+this.BeginDate]},
-                "t_gdyrqcwt5End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt5'+this.endDate]},
-                "t_gdyrqcwt6Begin" :{"date": this.BeginDate,"number": this.relData['t_gdyrqcwt6'+this.BeginDate]},
-                "t_gdyrqcwt6End" :{"date": this.endDate,"number": this.relData['t_gdyrqcwt6'+this.endDate]},
-                "config":this.getMyConfig("检测") //返回需要的对应参数
-               }
-       },
-    getS2manYiDu(){
-        return {
-                "t_myddcBegin" :{"date": this.BeginDate,"number": this.relData['t_myddc'+this.BeginDate]},
-                "t_myddcEnd" :{"date": this.endDate,"number": this.relData['t_myddc'+this.endDate]},
-                "t_myddc1Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc1'+this.BeginDate]},
-                "t_myddc1End" :{"date": this.endDate,"number": this.relData['t_myddc1'+this.endDate]},
-                "t_myddc2Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc2'+this.BeginDate]},
-                "t_myddc2End" :{"date": this.endDate,"number": this.relData['t_myddc2'+this.endDate]},
-                "t_myddc3Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc3'+this.BeginDate]},
-                "t_myddc3End" :{"date": this.endDate,"number": this.relData['t_myddc3'+this.endDate]},
-                "t_myddc4Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc4'+this.BeginDate]},
-                "t_myddc4End" :{"date": this.endDate,"number": this.relData['t_myddc4'+this.endDate]},
-                "t_myddc5Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc5'+this.BeginDate]},
-                "t_myddc5End" :{"date": this.endDate,"number": this.relData['t_myddc5'+this.endDate]},
-                "t_myddc6Begin" :{"date": this.BeginDate,"number": this.relData['t_myddc6'+this.BeginDate]},
-                "t_myddc6End" :{"date": this.endDate,"number": this.relData['t_myddc6'+this.endDate]},
-                "config":this.getMyConfig("满意度") //返回需要的对应参数
-               }
-       },
-    getS3tousu(){
-     return {
-             "t_complaintBegin" :{"date": this.BeginDate,"number": this.relData['t_complaint'+this.BeginDate]},
-             "t_complaintEnd" :{"date": this.endDate,"number": this.relData['t_complaint'+this.endDate]},
-             "config":this.getMyConfig("投诉") //返回需要的对应参数
-            }
-    },
-    getS4renYuanPeiXun(){
-      return {
-              "t_ryndpxjhBegin" :{"date": this.BeginDate,"number": this.relData['t_ryndpxjh'+this.BeginDate]},
-              "t_ryndpxjhEnd" :{"date": this.endDate,"number": this.relData['t_ryndpxjh'+this.endDate]},
-              "t_rypxjlnkBegin" :{"date": this.BeginDate,"number": this.relData['t_rypxjlnk'+this.BeginDate]},
-              "t_rypxjlnkEnd" :{"date": this.endDate,"number": this.relData['t_rypxjlnk'+this.endDate]},
-              "config":this.getMyConfig("人员培训") //返回需要的对应参数
-             }
-     },
-    getS5renYuanJianDu(){
-      return {
-              "t_zljdBegin" :{"date": this.BeginDate,"number": this.relData['t_zljd'+this.BeginDate]},
-              "t_zljdEnd" :{"date": this.endDate,"number": this.relData['t_zljd'+this.endDate]},
-              "t_zljdssBegin" :{"date": this.BeginDate,"number": this.relData['t_zljdss'+this.BeginDate]},
-              "t_zljdssEnd" :{"date": this.endDate,"number": this.relData['t_zljdss'+this.endDate]},
-              "config":this.getMyConfig("人员监督") //返回需要的对应参数
-             }
-     },
-     getS6sheBeiWeiHu(){
-      return {
-              "t_yqsbwhjhxmtBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhxmt'+this.BeginDate]},
-              "t_yqsbwhjhxmtEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhxmt'+this.endDate]},
-              "t_yqsbwhjhxmzBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhxmz'+this.BeginDate]},
-              "t_yqsbwhjhxmzEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhxmz'+this.endDate]},
-              "t_yqsbwhjhxmyBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhxmy'+this.BeginDate]},
-              "t_yqsbwhjhxmyEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhxmy'+this.endDate]},
-              "t_whbyxxBegin" :{"date": this.BeginDate,"number": this.relData['t_whbyxx'+this.BeginDate]},
-              "t_whbyxxEnd" :{"date": this.endDate,"number": this.relData['t_whbyxx'+this.endDate]},
-              "t_whbyxmxxmzBegin" :{"date": this.BeginDate,"number": this.relData['t_whbyxmxxmz'+this.BeginDate]},
-              "t_whbyxmxxmzEnd" :{"date": this.endDate,"number": this.relData['t_whbyxmxxmz'+this.endDate]},
-              "t_whbyxxmyBegin" :{"date": this.BeginDate,"number": this.relData['t_whbyxxmy'+this.BeginDate]},
-              "t_whbyxxmyEnd" :{"date": this.endDate,"number": this.relData['t_whbyxxmy'+this.endDate]},
-              "t_yqsbwhjhfbBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjhfb'+this.BeginDate]},
-              "t_yqsbwhjhfbEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjhfb'+this.endDate]},
-              "t_yqsbwhjlfbBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbwhjlfb'+this.BeginDate]},
-              "t_yqsbwhjlfbEnd" :{"date": this.endDate,"number": this.relData['t_yqsbwhjlfb'+this.endDate]},
-              "config":this.getMyConfig("设备维护") //返回需要的对应参数
-             }
-     },
-     getS7sheBeiJiaoZhun(){
-      return {
-              "t_ndsbxzjdjhBegin" :{"date": this.BeginDate,"number": this.relData['t_ndsbxzjdjh'+this.BeginDate]},
-              "t_ndsbxzjdjhEnd" :{"date": this.endDate,"number": this.relData['t_ndsbxzjdjh'+this.endDate]},
-              "t_yqsbxzjgBegin" :{"date": this.BeginDate,"number": this.relData['t_yqsbxzjg'+this.BeginDate]},
-              "t_yqsbxzjgEnd" :{"date": this.endDate,"number": this.relData['t_yqsbxzjg'+this.endDate]},
-              "config":this.getMyConfig("设备校准") //返回需要的对应参数
-             }
-     },
-     getS8sheBeiHeCha(){
-      return {
-              "t_sbhcjhBegin" :{"date": this.BeginDate,"number": this.relData['t_sbhcjh'+this.BeginDate]},
-              "t_sbhcjhEnd" :{"date": this.endDate,"number": this.relData['t_sbhcjh'+this.endDate]},
-              "t_sbhcjlbBegin" :{"date": this.BeginDate,"number": this.relData['t_sbhcjlb'+this.BeginDate]},
-              "t_sbhcjlbEnd" :{"date": this.endDate,"number": this.relData['t_sbhcjlb'+this.endDate]},
-              "config":this.getMyConfig("设备核查") //返回需要的对应参数
-             }
-     },
-  }
 }