Преглед изворни кода

实验室看板新增和修改

cyy пре 3 година
родитељ
комит
9f28674711

+ 51 - 4
src/views/statistics/index.vue

@@ -97,6 +97,10 @@
             v-if="showAll || showComponents[11]" :data = "gethechaObjNum()"/>
             <s11biaoZhunWu :width="static=='row' ? '33%': '100%'"
             v-if="showAll || showComponents[15]" :data = "getbiaozhunObjNum()"/>
+            <s16bzJunZhu :width="static=='row' ? '33%': '100%'"
+            v-if="showAll || showComponents[20]" :data = "getbzJunZhujNum()"/>
+            <s17bzXiBao :width="static=='row' ? '33%': '100%'"
+            v-if="showAll || showComponents[21]" :data = "getbzXiBaoObjNum()"/>
             <div class="clear"></div>
 
         </div>
@@ -155,11 +159,13 @@
   import s13shengWu from './item/s13shengWu.vue'
   import s14bufuhexiang from './item/s14bufuhexiang.vue'
   import s15tousu from './item/s15tousu.vue'
+  import s16bzJunZhu from './item/s16bzJunZhu.vue'
+  import s17bzXiBao from './item/s17bzXiBao.vue'
 
 
   import none from './item/none.vue'
 
-  import { DBData ,getConfig,getJiaoYanObj, gethechaObj, getnengliObj, getbiaozhunObj} from './js/selectDB.js'
+  import { DBData ,getConfig,getJiaoYanObj, gethechaObj, getnengliObj, getbiaozhunObj,getbiaozhunTObj,getbzJunZhuObj,getbzJunZhuTObj,getbzXiBaoObj,getbzXiBaoTObj} from './js/selectDB.js'
   import sendDatas from './sendDatas.js'
   import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
   export default {
@@ -184,7 +190,9 @@
       s12fengXian,
       s13shengWu,
       s14bufuhexiang,
-      s15tousu
+      s15tousu,
+      s16bzJunZhu,
+      s17bzXiBao
     },
     props:{
     shows:{ //传入的内容显示序号
@@ -221,6 +229,11 @@
         hechaObj:[],
         nengliObj:[],
         biaozhunObj:[],
+        biaozhunTObj:[],
+        bzJunZhuObj:[],
+        bzJunZhuTObj:[],
+        bzXiBaoObj:[],
+        bzXiBaoTObj:[],
         relData: {},
         relOf: false,
         selectEnd: '',
@@ -277,7 +290,41 @@
           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)
+          repostCurd('sql', getbiaozhunTObj(end)).then(response => {
+            this.biaozhunTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+            // console.log(this.biaozhunTObj,'8888')
+            this.getbzJunZhuObjData(this.endDate)
+          })
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+        })
+      },
+      getbzJunZhuObjData(end) {
+        repostCurd('sql', getbzJunZhuObj(end)).then(response => {
+          this.bzJunZhuObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          // console.log(this.biaozhunObj,'8888')
+          repostCurd('sql', getbzJunZhuTObj(end)).then(response => {
+            this.bzJunZhuTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+            // console.log(this.biaozhunTObj,'8888')
+            this.getbzXiBaoObjData(this.endDate)
+          })
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+        })
+      },
+      getbzXiBaoObjData(end) {
+        repostCurd('sql', getbzXiBaoObj(end)).then(response => {
+          this.bzXiBaoObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          // console.log(this.biaozhunObj,'8888')
+          repostCurd('sql', getbzXiBaoTObj(end)).then(response => {
+            this.bzXiBaoTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+            // console.log(this.biaozhunTObj,'8888')
+            this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          })
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
         })
       },
       /* 通过拼接的sql进行查询全部数据*/
@@ -347,7 +394,7 @@
         //   }
         // }
         if (Number(year) > Number(this.getDate(0))) {
-          console.log(data,'3y87sdvfsdf')
+          // console.log(data,'3y87sdvfsdf')
           data == 'end' ?
             this.endDate = this.getDate(0) + '' :
             this.BeginDate = this.getDate(0) + ''

+ 57 - 8
src/views/statistics/indexold.vue

@@ -97,6 +97,10 @@
             v-if="showAll || showComponents[11]" :data = "gethechaObjNum()"/>
             <s11biaoZhunWu :width="static=='row' ? '33%': '100%'"
             v-if="showAll || showComponents[15]" :data = "getbiaozhunObjNum()"/>
+            <s16bzJunZhu :width="static=='row' ? '33%': '100%'"
+            v-if="showAll || showComponents[20]" :data = "getbzJunZhujNum()"/>
+            <s17bzXiBao :width="static=='row' ? '33%': '100%'"
+            v-if="showAll || showComponents[21]" :data = "getbzXiBaoObjNum()"/>
             <!-- <div class="clear"></div>
 
         </div>
@@ -152,11 +156,14 @@
   import s12fengXian from './item/s12fengXian.vue'
   import s13shengWu from './item/s13shengWu.vue'
   import s14bufuhexiang from './item/s14bufuhexiang.vue'
+  import s15tousu from './item/s15tousu.vue'
+  import s16bzJunZhu from './item/s16bzJunZhu.vue'
+  import s17bzXiBao from './item/s17bzXiBao.vue'
 
 
   import none from './item/none.vue'
 
-  import { DBData ,getConfig,getJiaoYanObj, gethechaObj, getnengliObj, getbiaozhunObj} from './js/selectDB.js'
+  import { DBData ,getConfig,getJiaoYanObj, gethechaObj, getnengliObj, getbiaozhunObj,getbiaozhunTObj,getbzJunZhuObj,getbzJunZhuTObj,getbzXiBaoObj,getbzXiBaoTObj} from './js/selectDB.js'
   import sendDatas from './sendDatas.js'
   import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'
   export default {
@@ -180,7 +187,10 @@
       s11biaoZhunWu,
       s12fengXian,
       s13shengWu,
-      s14bufuhexiang
+      s14bufuhexiang,
+      s15tousu,
+      s16bzJunZhu,
+      s17bzXiBao
     },
     props:{
     shows:{ //传入的内容显示序号
@@ -217,6 +227,11 @@
         hechaObj:[],
         nengliObj:[],
         biaozhunObj:[],
+        biaozhunTObj:[],
+        bzJunZhuObj:[],
+        bzJunZhuTObj:[],
+        bzXiBaoObj:[],
+        bzXiBaoTObj:[],
         relData: {},
         relOf: false,
         selectEnd: '',
@@ -273,7 +288,41 @@
           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)
+          repostCurd('sql', getbiaozhunTObj(end)).then(response => {
+            this.biaozhunTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+            // console.log(this.biaozhunTObj,'8888')
+            this.getbzJunZhuObjData(this.endDate)
+          })
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+        })
+      },
+      getbzJunZhuObjData(end) {
+        repostCurd('sql', getbzJunZhuObj(end)).then(response => {
+          this.bzJunZhuObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          // console.log(this.biaozhunObj,'8888')
+          repostCurd('sql', getbzJunZhuTObj(end)).then(response => {
+            this.bzJunZhuTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+            // console.log(this.biaozhunTObj,'8888')
+            this.getbzXiBaoObjData(this.endDate)
+          })
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+        })
+      },
+      getbzXiBaoObjData(end) {
+        repostCurd('sql', getbzXiBaoObj(end)).then(response => {
+          this.bzXiBaoObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          // console.log(this.biaozhunObj,'8888')
+          repostCurd('sql', getbzXiBaoTObj(end)).then(response => {
+            this.bzXiBaoTObj = response.variables.data //结果一定存在第0个,因为只有一条数据
+            // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+            // console.log(this.biaozhunTObj,'8888')
+            this.getData(this.BeginDate, this.endDate, true, this.dataScope)
+          })
+          // this.getData(this.BeginDate, this.endDate, true, this.dataScope)
         })
       },
       /* 通过拼接的sql进行查询全部数据*/
@@ -343,7 +392,7 @@
         //   }
         // }
         if (Number(year) > Number(this.getDate(0))) {
-          console.log(data,'3y87sdvfsdf')
+          // console.log(data,'3y87sdvfsdf')
           data == 'end' ?
             this.endDate = this.getDate(0) + '' :
             this.BeginDate = this.getDate(0) + ''
@@ -367,9 +416,9 @@
         let nowDate = new Date();
         return nowDate.getFullYear() - year;
       },
-      allView(){
-        screenfull.request() //默认显示全屏
-      },
+      // allView(){
+      //   screenfull.request() //默认显示全屏
+      // },
       goBack(){
         this.$router.back(-1)
       }
@@ -442,7 +491,7 @@
     margin: 1% 0;
   }
   .screen{
-    height: 90%;
+    height: 100%;
   }
   .clear{ clear: both; }
 </style>

+ 1 - 1
src/views/statistics/item/s11biaoZhunWuCol2.vue

@@ -96,7 +96,7 @@
                           type: 'shadow'
                         },
                         formatter: function (datas) {
-                          console.log(datas)
+                          // console.log(datas)
                             var res=datas[0].name+"<BR>"+'期间核查次数:'+datas[0].data+"<BR>期间核查完成次数"+datas[1].data
                             // res+='百分比:'+(datas[1].value==null||datas[1].value==0?"0.00":(datas[0].value/datas[1].value*100).toFixed(2))+"%"
                             return res

+ 134 - 0
src/views/statistics/item/s16bzJunZhu.vue

@@ -0,0 +1,134 @@
+<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/s16bzJunZhuPro.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/5+"px"
+      },
+      id:{
+        type:String,
+        default:"s16bzJunZhu"
+      },
+      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 s16bzJunZhu = 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 e = 100 -this.data.Num.valna
+       let option = {
+           //v3
+          title: {
+            text: this.title,
+            // subtext: 'Fake Data',
+            left: 'left',
+            textStyle:{ fontSize:14 }
+          },
+          tooltip: {
+            trigger: 'item'
+          },
+          color:['#FF99CC','#333366'],
+          series: [
+            {
+              type: 'pie',
+              radius: '50%',
+              label: {
+                formatter: '{b}: {d}%'
+              },
+              data: [
+                { value: this.data.Num.valna, name: '标准菌株期间核查完成率' },
+                { value: e, name: '标准菌株期间核查未完成率' }
+              ],
+              emphasis: {
+                itemStyle: {
+                  shadowBlur: 10,
+                  shadowOffsetX: 0,
+                  shadowColor: 'rgba(0, 0, 0, 0.5)'
+                }
+              }
+            }
+          ]
+       };
+
+       option && s16bzJunZhu.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s16bzJunZhu: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>

+ 159 - 0
src/views/statistics/item/s16bzJunZhuCol.vue

@@ -0,0 +1,159 @@
+<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/s16bzJunZhuPro.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:"s16bzJunZhu"
+      },
+      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 s16bzJunZhu = 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 e=[this.data.Num.valnum,this.data.Num.valAll]
+
+       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.Num.valnum>this.data.Num.valAll?this.data.Num.valnum+1:this.data.Num.valAll+1,
+                min: 0,
+              },
+            ],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                barWidth: '20%',
+                itemStyle: {
+                  color: '#0099ff'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              textStyle:{ fontSize:14 }
+
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+       };
+
+       option && s16bzJunZhu.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s16bzJunZhu: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>

+ 191 - 0
src/views/statistics/item/s16bzJunZhuCol2.vue

@@ -0,0 +1,191 @@
+<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/s16bzJunZhuPro.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:"s16bzJunZhu"
+      },
+      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 s16bzJunZhu = 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,
+            textStyle:{ fontSize:14 }
+
+            // 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>期间核查完成次数"+datas[1].data
+                            // 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,
+              itemStyle: {color: '#006633'},
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
+            // {
+            //   type: 'bar',
+            //   data: this.data.Num.numberAll
+            // },
+          ],
+                dataZoom: [
+        {
+            id: 'dataZoomY',
+            type: 'inside',
+            yAxisIndex: [0],
+            filterMode: 'empty'
+        }
+      ],
+       
+       };
+
+       option && s16bzJunZhu.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s16bzJunZhu: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>

+ 134 - 0
src/views/statistics/item/s17bzXiBao.vue

@@ -0,0 +1,134 @@
+<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/s17bzXiBaoPro.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/5+"px"
+      },
+      id:{
+        type:String,
+        default:"s17bzXiBao"
+      },
+      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 s17bzXiBao = 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 e = 100 -this.data.Num.valna
+       let option = {
+           //v3
+          title: {
+            text: this.title,
+            // subtext: 'Fake Data',
+            left: 'left',
+            textStyle:{ fontSize:14 }
+          },
+          tooltip: {
+            trigger: 'item'
+          },
+          color:['#CC9900','#00CC99'],
+          series: [
+            {
+              type: 'pie',
+              radius: '50%',
+              label: {
+                formatter: '{b}: {d}%'
+              },
+              data: [
+                { value: this.data.Num.valna, name: '标准细胞期间核查完成率' },
+                { value: e, name: '标准细胞质期间核查未完成率' }
+              ],
+              emphasis: {
+                itemStyle: {
+                  shadowBlur: 10,
+                  shadowOffsetX: 0,
+                  shadowColor: 'rgba(0, 0, 0, 0.5)'
+                }
+              }
+            }
+          ]
+       };
+
+       option && s17bzXiBao.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s17bzXiBao: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>

+ 159 - 0
src/views/statistics/item/s17bzXiBaoCol.vue

@@ -0,0 +1,159 @@
+<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/s17bzXiBaoPro.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:"s17bzXiBao"
+      },
+      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 s17bzXiBao = 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 e=[this.data.Num.valnum,this.data.Num.valAll]
+
+       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.Num.valnum>this.data.Num.valAll?this.data.Num.valnum+1:this.data.Num.valAll+1,
+                min: 0,
+              },
+            ],
+            series: [
+              {
+                data: e,
+                type: 'bar',
+                barWidth: '20%',
+                itemStyle: {
+                  color: '#0099ff'
+                },
+                label: {
+                  show: true,
+                  position: 'top'
+                },
+              }
+            ],
+            grid: {
+              top: '20%',
+              left: '3%',
+              right: '4%',
+              bottom: '10%',
+              containLabel: true
+            },
+            title: {
+              text: this.title,
+              textStyle:{ fontSize:14 }
+
+              // subtext: "        "+beingDate+"-"+endDate
+            },
+       };
+
+       option && s17bzXiBao.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s17bzXiBao: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>

+ 191 - 0
src/views/statistics/item/s17bzXiBaoCol2.vue

@@ -0,0 +1,191 @@
+<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/s17bzXiBaoPro.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:"s17bzXiBao"
+      },
+      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 s17bzXiBao = 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,
+            textStyle:{ fontSize:14 }
+
+            // 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>期间核查完成次数"+datas[1].data
+                            // 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,
+              itemStyle: {color: '#006633'},
+              label: {
+                show: true,
+                position: 'right'
+              },
+            },
+            // {
+            //   type: 'bar',
+            //   data: this.data.Num.numberAll
+            // },
+          ],
+                dataZoom: [
+        {
+            id: 'dataZoomY',
+            type: 'inside',
+            yAxisIndex: [0],
+            filterMode: 'empty'
+        }
+      ],
+       
+       };
+
+       option && s17bzXiBao.setOption(option);
+      }
+    }
+  }
+</script>
+<style scoped>
+  #s17bzXiBao: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>

+ 20 - 0
src/views/statistics/js/selectDB.js

@@ -21,6 +21,26 @@ 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 a.name as name, a.num ,IFNULL(b.numS,0) as numS from(select zhuan_huan_ as name, COUNT(zhuan_huan_) as num from t_bzwzqjhcjhzb where YEAR(create_time_)="+end+" GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as a LEFT JOIN (select zhuan_huan_ as name, COUNT(zhuan_huan_) as numS from t_bzwzqjhcjhzb as c LEFT JOIN t_bzwzqjhcjhb as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as b on a.name = b.name"
 }
+export const getbiaozhunTObj = (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 MONTH(shi_shi_shi_jian_) as time from t_bzwzqjhcjhzb where YEAR(shi_shi_shi_jian_) ="+end+" ORDER BY shi_shi_shi_jian_ ASC LIMIT 1"
+}
+export const getbzJunZhuObj = (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.name as name, a.num ,IFNULL(b.numS,0) as numS from(select zhuan_huan_ as name, COUNT(zhuan_huan_) as num from t_bzjzhcjhzb where YEAR(create_time_)="+end+" GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as a LEFT JOIN (select zhuan_huan_ as name, COUNT(zhuan_huan_) as numS from t_bzjzhcjhzb as c LEFT JOIN t_bzjzhcjhb as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as b on a.name = b.name"
+}
+export const getbzJunZhuTObj = (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 MONTH(shi_shi_shi_jian_) as time from t_bzjzhcjhzb where YEAR(shi_shi_shi_jian_) ="+end+" ORDER BY shi_shi_shi_jian_ ASC LIMIT 1"
+}
+export const getbzXiBaoObj = (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.name as name, a.num ,IFNULL(b.numS,0) as numS from(select zhuan_huan_ as name, COUNT(zhuan_huan_) as num from t_bzxbqjhcjhzbn where YEAR(create_time_)="+end+" GROUP BY zhuan_huan_ HAVING COUNT(zhuan_huan_)>=1) as a LEFT JOIN (select c.zhuan_huan_ as name, COUNT(c.zhuan_huan_) as numS from t_bzxbqjhcjhzbn as c LEFT JOIN t_bzxbqjhcjh as d on c.parent_id_ = d.id_ where YEAR(c.create_time_)="+end+" and d.shi_fou_guo_shen_='1' GROUP BY c.zhuan_huan_ HAVING COUNT(c.zhuan_huan_)>=1) as b on a.name = b.name"
+}
+export const getbzXiBaoTObj = (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 MONTH(shi_shi_shi_jian_) as time from t_bzxbqjhcjhzbn where YEAR(shi_shi_shi_jian_) ="+end+" ORDER BY shi_shi_shi_jian_ ASC LIMIT 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.* "+

+ 132 - 0
src/views/statistics/properties/s16bzJunZhuPro.vue

@@ -0,0 +1,132 @@
+<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: 70%;">
+          <s16bzJunZhuItem
+            :data="data"
+            width="50%"
+            :height="height"
+            id="s16bzJunZhuPro"
+            click="false"
+          />
+          <s16bzJunZhuCItem
+            :data="data"
+            width="50%"
+            :height="height"
+            id="s16bzJunZhuCPro"
+            click="false"
+          />
+          <s16bzJunZhuC2Item
+            :data="data"
+            width="100%"
+            :height="height"
+            id="s16bzJunZhuC2Pro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 30%; 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.numberAll[i]}} 次</el-tag>
+              <br>
+              标准菌株期间核查次数:<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.4 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s16bzJunZhuItem = () => import('../item/s16bzJunZhu.vue')
+           this.$options.components.s16bzJunZhuCItem = () => import('../item/s16bzJunZhuCol.vue')
+           this.$options.components.s16bzJunZhuC2Item = () => import('../item/s16bzJunZhuCol2.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>

+ 132 - 0
src/views/statistics/properties/s17bzXiBaoPro.vue

@@ -0,0 +1,132 @@
+<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: 70%;">
+          <s17bzXiBaoItem
+            :data="data"
+            width="50%"
+            :height="height"
+            id="s17bzXiBaoPro"
+            click="false"
+          />
+          <s17bzXiBaoCItem
+            :data="data"
+            width="50%"
+            :height="height"
+            id="s17bzXiBaoCPro"
+            click="false"
+          />
+          <s17bzXiBaoC2Item
+            :data="data"
+            width="100%"
+            :height="height"
+            id="s17bzXiBaoC2Pro"
+            click="false"
+          />
+      </el-aside>
+        <!-- 参数页面列 -->
+        <el-aside style="border:0px;width: 30%; 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.numberAll[i]}} 次</el-tag>
+              <br>
+              标准细胞期间核查次数:<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.4 +'px'
+        }
+      },
+      beforeCreate: function () {
+          // 官方文档给出的是require
+           this.$options.components.s17bzXiBaoItem = () => import('../item/s17bzXiBao.vue')
+           this.$options.components.s17bzXiBaoCItem = () => import('../item/s17bzXiBaoCol.vue')
+           this.$options.components.s17bzXiBaoC2Item = () => import('../item/s17bzXiBaoCol2.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>

+ 118 - 2
src/views/statistics/sendDatas.js

@@ -211,6 +211,7 @@ export default {
                         let a=0
                         let b=0
                         let c=0
+                        let numm = 0
                         let that = this
                         if(that.biaozhunObj.length === 0){
                                 val = [0]
@@ -239,6 +240,121 @@ export default {
                         valAll.forEach( function(item){
                                 b += item ;
                         });
+                        if (that.biaozhunTObj.length===0) {
+                                numm = 1
+                        } else {
+                                numm = Math.floor((12-that.biaozhunTObj[0].time)/3) + 1
+                        }
+                        a=a*numm
+                        // console.log(numm,'numm')
+                        if(b===0){
+                                c=0
+                        }else{
+                                c= Math.floor(b/a * 10000) / 100
+                        }
+                        return {
+                                "Num" :{"date": this.endDate,"number": val, "name": name, "numberAll": valAll,"valnum":a,"valAll":b,"valna":c},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getbzJunZhujNum(){
+                        let name = []
+                        let val =[]
+                        let valAll = []
+                        let e = []
+                        let a=0
+                        let b=0
+                        let c=0
+                        let numm = 0
+                        let that = this
+                        if(that.bzJunZhuObj.length === 0){
+                                val = [0]
+                                valAll = [0]
+                                e = [0]
+                                name = [0]
+                        }else{
+                                for (let i = 0; i < that.bzJunZhuObj.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.bzJunZhuObj[i].num)
+                                        valAll.push(that.bzJunZhuObj[i].numS)
+                                        // e.push(num)
+                                        name.push(that.bzJunZhuObj[i].name)
+
+                                }
+                        }
+                        val.forEach( function(item){
+                                a += item ;
+                        });
+                        valAll.forEach( function(item){
+                                b += item ;
+                        });
+                        if (that.bzJunZhuTObj.length===0) {
+                                numm = 1
+                        } else {
+                                numm = Math.floor((12-that.bzJunZhuTObj[0].time)/3) + 1
+                        }
+                        a=a*numm
+                        // console.log(numm,'numm')
+                        if(b===0){
+                                c=0
+                        }else{
+                                c= Math.floor(b/a * 10000) / 100
+                        }
+                        return {
+                                "Num" :{"date": this.endDate,"number": val, "name": name, "numberAll": valAll,"valnum":a,"valAll":b,"valna":c},
+                                "config":this.getMyConfig("检测") //返回需要的对应参数
+                        }
+                },
+                getbzXiBaoObjNum(){
+                        let name = []
+                        let val =[]
+                        let valAll = []
+                        let e = []
+                        let a=0
+                        let b=0
+                        let c=0
+                        let numm = 0
+                        let that = this
+                        if(that.bzXiBaoObj.length === 0){
+                                val = [0]
+                                valAll = [0]
+                                e = [0]
+                                name = [0]
+                        }else{
+                                for (let i = 0; i < that.bzXiBaoObj.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.bzXiBaoObj[i].num)
+                                        valAll.push(that.bzXiBaoObj[i].numS)
+                                        // e.push(num)
+                                        name.push(that.bzXiBaoObj[i].name)
+
+                                }
+                        }
+                        val.forEach( function(item){
+                                a += item ;
+                        });
+                        valAll.forEach( function(item){
+                                b += item ;
+                        });
+                        if (that.bzXiBaoTObj.length===0) {
+                                numm = 1
+                        } else {
+                                numm = Math.floor((12-that.bzXiBaoTObj[0].time)/3) + 1
+                        }
+                        a=a*numm
+                        // console.log(numm,'numm')
                         if(b===0){
                                 c=0
                         }else{
@@ -270,7 +386,7 @@ export default {
                                 }
                                 barData.push(e)
                         // }
-                        console.log(jchzbNum,jchzbSNum,'hsuihsahiu')
+                        // console.log(jchzbNum,jchzbSNum,'hsuihsahiu')
                         return {
                                 "t_jchzbNum" :{"date": this.endDate,"number": jchzbNum, "numberAll": jchzbSNum, "res": barData},
                                 "config":this.getMyConfig("检测") //返回需要的对应参数
@@ -326,7 +442,7 @@ export default {
                                 } else {
                                         e =Math.floor(khmydtjbNum[0]/khmydtjbNumN * 10000) / 100
                                 }
-                                console.log(e,'eeeeee')
+                                // console.log(e,'eeeeee')
                                 barData.push(e)
                         // }
                         return {