shenqilong 1 год назад
Родитель
Сommit
a66f604dea
82 измененных файлов с 1327 добавлено и 926 удалено
  1. 1 1
      package.json
  2. BIN
      src/assets/images/screen/bg.png
  3. BIN
      src/assets/images/screen/laboratory.jpg
  4. BIN
      src/assets/images/screen/stars.png
  5. 1 1
      src/views/crm/component/customerStatistics.vue
  6. 1 1
      src/views/crm/component/customerStatisticsM.vue
  7. 1 1
      src/views/crm/component/individualPerformance.vue
  8. 1 1
      src/views/crm/component/orderStatistics.vue
  9. 1 1
      src/views/crm/component/personPerformance.vue
  10. 1 1
      src/views/crm/component/personPerformanceMonth.vue
  11. 1 1
      src/views/crm/component/teamPerformance.vue
  12. 93 93
      src/views/crm/component/teamPerformanceMonth.vue
  13. 1 1
      src/views/sample/sampleWZ.vue
  14. 1 1
      src/views/scientificPayoffs/compontent/scientificBox.vue
  15. 75 76
      src/views/scientificPayoffs/js/index.js
  16. 1 1
      src/views/statistics/index_kanban.vue
  17. 1 1
      src/views/statistics/item/jianCe.vue
  18. 1 1
      src/views/statistics/item/none.vue
  19. 1 1
      src/views/statistics/item/s10waiBuNengLi.vue
  20. 1 1
      src/views/statistics/item/s10waiBuNengLiCol.vue
  21. 1 1
      src/views/statistics/item/s10waiBuNengLiCol2.vue
  22. 1 1
      src/views/statistics/item/s11biaoZhunWu.vue
  23. 1 1
      src/views/statistics/item/s11biaoZhunWuCol.vue
  24. 1 1
      src/views/statistics/item/s11biaoZhunWuCol2.vue
  25. 1 1
      src/views/statistics/item/s12fengXian.vue
  26. 1 1
      src/views/statistics/item/s12fengXianCol.vue
  27. 1 1
      src/views/statistics/item/s13shengWu.vue
  28. 1 1
      src/views/statistics/item/s13shengWuCol.vue
  29. 1 1
      src/views/statistics/item/s14bufuhexiang.vue
  30. 1 1
      src/views/statistics/item/s14bufuhexiangCol.vue
  31. 1 1
      src/views/statistics/item/s15tousu.vue
  32. 1 1
      src/views/statistics/item/s15tousuCol.vue
  33. 1 1
      src/views/statistics/item/s16bzJunZhu.vue
  34. 1 1
      src/views/statistics/item/s16bzJunZhuCol.vue
  35. 1 1
      src/views/statistics/item/s16bzJunZhuCol2.vue
  36. 1 1
      src/views/statistics/item/s17bzXiBao.vue
  37. 1 1
      src/views/statistics/item/s17bzXiBaoCol.vue
  38. 1 1
      src/views/statistics/item/s17bzXiBaoCol2.vue
  39. 1 1
      src/views/statistics/item/s18renYuanPeiXun.vue
  40. 1 1
      src/views/statistics/item/s18renYuanPeiXunCol.vue
  41. 1 1
      src/views/statistics/item/s1jianCe.vue
  42. 1 1
      src/views/statistics/item/s1jianCeColumnar.vue
  43. 1 1
      src/views/statistics/item/s1zhiLiang1.vue
  44. 1 1
      src/views/statistics/item/s1zhiLiang2.vue
  45. 1 1
      src/views/statistics/item/s1zhiLiang3.vue
  46. 1 1
      src/views/statistics/item/s1zhiLiangMuBiao.vue
  47. 1 1
      src/views/statistics/item/s1zhiLiangMuBiaoCol.vue
  48. 1 1
      src/views/statistics/item/s2manYiDu.vue
  49. 1 1
      src/views/statistics/item/s2manYiDuPro.vue
  50. 1 1
      src/views/statistics/item/s3tousu.vue
  51. 1 1
      src/views/statistics/item/s3tousuCol.vue
  52. 1 1
      src/views/statistics/item/s4renYuanPeiXun.vue
  53. 1 1
      src/views/statistics/item/s4renYuanPeiXunCol.vue
  54. 1 1
      src/views/statistics/item/s5renYuanJianDu.vue
  55. 1 1
      src/views/statistics/item/s5renYuanJianDuCol.vue
  56. 1 1
      src/views/statistics/item/s6sheBeiWeiHu.vue
  57. 1 1
      src/views/statistics/item/s7sheBeiJiaoZhun.vue
  58. 1 1
      src/views/statistics/item/s7sheBeiJiaoZhunCol.vue
  59. 1 1
      src/views/statistics/item/s7sheBeiJiaoZhunCol2.vue
  60. 1 1
      src/views/statistics/item/s8sheBeiHeCha.vue
  61. 1 1
      src/views/statistics/item/s8sheBeiHeChaCol.vue
  62. 1 1
      src/views/statistics/item/s8sheBeiHeChaCol2.vue
  63. 1 1
      src/views/statistics/item/s9neiBuZhiLiang.vue
  64. 1 1
      src/views/statistics/item/s9neiBuZhiLiangCol.vue
  65. 1 1
      src/views/statistics/item/sheBei.vue
  66. 1 1
      src/views/statisticsByDay/index.vue
  67. 1 1
      src/views/statisticsByDay/item/none.vue
  68. 1 1
      src/views/statisticsByDay/item/s4renYuanPeiXun.vue
  69. 1 1
      src/views/statisticsByDay/item/s5renYuanJianDu.vue
  70. 1 1
      src/views/statisticsByDay/item/s6sheBeiWeiHu.vue
  71. 1 1
      src/views/statisticsByDay/item/s7sheBeiJiaoZhun.vue
  72. 1 1
      src/views/statisticsByDay/item/s8sheBeiHeCha.vue
  73. 1 1
      src/views/system/jbdHome/board/component/bottomCard.vue
  74. 1 1
      src/views/system/jbdHome/board/component/middleCard.vue
  75. 141 0
      src/views/system/jbdHome/board/component/moreBar.vue
  76. 1 1
      src/views/system/jbdHome/board/data.js
  77. 943 682
      src/views/system/jbdHome/board/equipmentBoard.vue
  78. 1 1
      src/views/system/jbdHome/yangPinShuJu/AnnualStatus.vue
  79. 1 1
      src/views/system/jbdHome/yangPinShuJu/EntrustNumber.vue
  80. 1 1
      src/views/system/jbdHome/yangPinShuJu/EntrustType.vue
  81. 1 1
      src/views/system/jbdHome/yangPinShuJu/MonthlyNumber.vue
  82. 1 1
      src/views/system/jbdHome/yangPinShuJu/MonthlyStatus.vue

+ 1 - 1
package.json

@@ -47,7 +47,7 @@
     "diagram-js": "^6.8.2",
     "diagram-js-minimap": "^2.0.3",
     "diagram-js-origin": "^1.3.1",
-    "echarts": "^4.9.0",
+    "echarts": "^5.6.0",
     "element-ui": "^2.13.2",
     "file-saver": "^2.0.5",
     "flex.css": "^1.1.7",

BIN
src/assets/images/screen/bg.png


BIN
src/assets/images/screen/laboratory.jpg


BIN
src/assets/images/screen/stars.png


+ 1 - 1
src/views/crm/component/customerStatistics.vue

@@ -4,7 +4,7 @@
     </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
   export default {
     data() {
         return {

+ 1 - 1
src/views/crm/component/customerStatisticsM.vue

@@ -4,7 +4,7 @@
     </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
   export default {
     data() {
         return {

+ 1 - 1
src/views/crm/component/individualPerformance.vue

@@ -4,7 +4,7 @@
     </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
   export default {
     data() {
         return {

+ 1 - 1
src/views/crm/component/orderStatistics.vue

@@ -4,7 +4,7 @@
     </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
   export default {
     data() {
         return {

+ 1 - 1
src/views/crm/component/personPerformance.vue

@@ -12,7 +12,7 @@
 </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 import dialogView from '../messageBox/personAllDetails'
   export default {
     data() {

+ 1 - 1
src/views/crm/component/personPerformanceMonth.vue

@@ -13,7 +13,7 @@
 </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 import dialogView from '../messageBox/personMonthDetails'
 
   export default {

+ 1 - 1
src/views/crm/component/teamPerformance.vue

@@ -12,7 +12,7 @@
 </div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 import dialogView from '../messageBox/teamAllDetails'
 
 export default {

+ 93 - 93
src/views/crm/component/teamPerformanceMonth.vue

@@ -1,125 +1,125 @@
 <template>
-<div @click="toDetailed()" class="statisticsPage" style="width:100%;height:85%">
-    <div id="chartOR" style="width:100%;height:100%"></div>
+    <div class="statisticsPage" style="width:100%;height:85%" @click="toDetailed()">
+        <div id="chartOR" style="width:100%;height:100%" />
         <div v-if="dialogOff">
-      <dialogView
-        :dialogOff = "dialogOff"
-        @close = "close"
-        :data="userInfo"
-        :date="date"
-      />
+            <dialogView
+                :dialog-off="dialogOff"
+                :data="userInfo"
+                :date="date"
+                @close="close"
+            />
+        </div>
     </div>
-</div>
 </template>
 <script>
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 import dialogView from '../messageBox/teamMonthDetails'
 
-  export default {
-    data() {
-        return {
-            // title:'人员培训',
-            dialogOff:false,
-            userInfo:[]
-       }
+export default {
+    components: {
+        dialogView
     },
-    props:{
+    props: {
         data: {
-            type: Array,
+            type: Array
         },
         date: {
-            type: String,
-        },
-        click:{
-            type:String,
-            default:'true'
+            type: String
         },
+        click: {
+            type: String,
+            default: 'true'
+        }
     },
-    components:{
-      dialogView
+    data () {
+        return {
+            // title:'人员培训',
+            dialogOff: false,
+            userInfo: []
+        }
     },
     watch: {
-        data(v) {
+        data (v) {
             this.getEchartData()
         }
     },
-    mounted() {
-      this.getEchartData()
+    mounted () {
+        this.getEchartData()
     },
     methods: {
-      close(){
-        this.dialogOff = false
-      },
-      /* 跳转统计页面*/
-      toDetailed(){
-        if(this.click == "true"){
-            this.dialogOff = true
-        }
-      },
-      getEchartData() {
-        if (true) {
-            let that = this
-            let ors=  echarts.init(document.getElementById("chartOR"))
-            let option = {
-                legend: {                  
-                    textStyle:{
-                        color:'#fff'
-                    }
-                },
-                tooltip: {},
-                color:['#99FFFF'],
-                dataset: {
-                    dimensions: ['NAME_', 'jiage'],
-                    source: this.data
-                },
-                xAxis: { 
-                    type: 'category',
-                    axisLabel:{//修改坐标系字体颜色
-                        show:true,
-                        textStyle:{
-                            color:"#fff"
+        close () {
+            this.dialogOff = false
+        },
+        /* 跳转统计页面*/
+        toDetailed () {
+            if (this.click == 'true') {
+                this.dialogOff = true
+            }
+        },
+        getEchartData () {
+            if (true) {
+                const that = this
+                const ors = echarts.init(document.getElementById('chartOR'))
+                const option = {
+                    legend: {
+                        textStyle: {
+                            color: '#fff'
                         }
                     },
-                    axisLine: {
-                        show: true,
-                        lineStyle: {
-                            color: "rgba(255,255,255,1)",
-                            type: "solid"
-                        }
-                    }
-                },
-                yAxis: {
-                    axisLabel:{//修改坐标系字体颜色
-                        show:true,
-                        textStyle:{
-                            color:"#fff"
+                    tooltip: {},
+                    color: ['#99FFFF'],
+                    dataset: {
+                        dimensions: ['NAME_', 'jiage'],
+                        source: this.data
+                    },
+                    xAxis: {
+                        type: 'category',
+                        axisLabel: { // 修改坐标系字体颜色
+                            show: true,
+                            textStyle: {
+                                color: '#fff'
+                            }
+                        },
+                        axisLine: {
+                            show: true,
+                            lineStyle: {
+                                color: 'rgba(255,255,255,1)',
+                                type: 'solid'
+                            }
                         }
                     },
-                    axisLine: {//y轴线的颜色以及宽度
-                        show: true,
-                        lineStyle: {
-                            color: "rgba(255,255,255,1)",
-                            type: "solid"
+                    yAxis: {
+                        axisLabel: { // 修改坐标系字体颜色
+                            show: true,
+                            textStyle: {
+                                color: '#fff'
+                            }
+                        },
+                        axisLine: { // y轴线的颜色以及宽度
+                            show: true,
+                            lineStyle: {
+                                color: 'rgba(255,255,255,1)',
+                                type: 'solid'
+                            }
                         },
+                        splitLine: {
+                            show: false
+                        }
                     },
-                    splitLine: {
-                        show: false
-                    }
-                },
-                series: [{ name: '销量',type: 'bar',barWidth:'10%',label: {show: true,position: 'top'} }]
-            };
-            ors.on('click', function (params) {
+                    series: [{ name: '销量', type: 'bar', barWidth: '10%', label: { show: true, position: 'top' }}]
+                }
+                ors.on('click', function (params) {
                 // console.log(params.data.bian_zhi_ren_)
-                that.userInfo[0] = params.data.bian_zhi_ren_
-                that.userInfo[1] = params.data.NAME_
+                    that.userInfo[0] = params.data.bian_zhi_ren_
+                    that.userInfo[1] = params.data.NAME_
                 // console.log(params.dataIndex);
-            })
-            option && ors.setOption(option);
+                })
+                option && ors.setOption(option)
+            }
         }
-      },
-    },
-  }
+    }
+}
 </script>
 <style lang="scss" scoped>
 
-</style>
+</style>

+ 1 - 1
src/views/sample/sampleWZ.vue

@@ -205,7 +205,7 @@
   		</div>
 </template>
 <script  scoped>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import $ from 'jquery'
 
 

+ 1 - 1
src/views/scientificPayoffs/compontent/scientificBox.vue

@@ -17,7 +17,7 @@
 
 <script>
 import { barData } from '../js/index.js'
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 import scrollBoardVue from './scrollBoard.vue'
 export default {
     name: 'scientificBox',

+ 75 - 76
src/views/scientificPayoffs/js/index.js

@@ -1,8 +1,8 @@
-import echarts from "echarts"
+import * as echarts from 'echarts'
 export default {
-    //轮播表数据封装
-    getDataList(data) {
-        let config = {
+    // 轮播表数据封装
+    getDataList (data) {
+        const config = {
             header: data.header,
             data: data.data,
             rowNum: 6,
@@ -13,12 +13,12 @@ export default {
         return config
     },
 
-    //科研项目
-    getKyxmList(datas) {
-        let header = ['全部参与人', '项目编号', '资助单位', '项目类型', '项目名称', '开始时间', '结束时间', '立项经费(万元)']
-        let data = []
+    // 科研项目
+    getKyxmList (datas) {
+        const header = ['全部参与人', '项目编号', '资助单位', '项目类型', '项目名称', '开始时间', '结束时间', '立项经费(万元)']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             list.push(item.quan_bu_can_yu_re || '')
             list.push(item.xiang_mu_bian_hao || '')
             list.push(item.zi_zhi_dan_wei_ || '')
@@ -28,38 +28,38 @@ export default {
             list.push(item.jie_shu_shi_jian_ || '')
             list.push(item.li_xiang_jing_fei || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //科研获奖成果
-    getkjhjcgList(datas) {
-        let header = ['全部获奖者', '单位', '奖励类型']
-        let data = []
+    // 科研获奖成果
+    getkjhjcgList (datas) {
+        const header = ['全部获奖者', '单位', '奖励类型']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             list.push(item.quan_bu_huo_jiang || '')
             list.push(item.dan_wei_ || '')
             list.push(item.jiang_li_lei_xing || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //SCI文章统计表
-    getSCIwztjbList(datas) {
-        let header = ['全部作者', '论文题目', '期刊名称', 'JCR分区', '发表时间', '影响因子IF', 'WOS号']
-        let data = []
+    // SCI文章统计表
+    getSCIwztjbList (datas) {
+        const header = ['全部作者', '论文题目', '期刊名称', 'JCR分区', '发表时间', '影响因子IF', 'WOS号']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             // list.push(item.NAME_ || '')
             list.push(item.quan_bu_zuo_zhe_ || '')
             list.push(item.lun_wen_ti_mu_ || '')
@@ -69,20 +69,20 @@ export default {
             list.push(item.ying_xiang_y_z_if || '')
             list.push(item.wos_hao_ || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //中文论文
-    getZwlwList(datas) {
-        let header = ['全部作者', '论文题目', '期刊名称', '期卷号', '发表时间', '期刊类别', 'ISSN号']
-        let data = []
+    // 中文论文
+    getZwlwList (datas) {
+        const header = ['全部作者', '论文题目', '期刊名称', '期卷号', '发表时间', '期刊类别', 'ISSN号']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             list.push(item.quan_bu_zuo_zhe_ || '')
             list.push(item.lun_wen_ti_mu_ || '')
             list.push(item.qi_kan_ming_cheng || '')
@@ -91,40 +91,40 @@ export default {
             list.push(item.qi_kan_lei_bie_ || '')
             list.push(item.issn_hao_ || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //著作
-    getZhuZuoList(datas) {
-        let header = ['全部作者', '专著名称', '出版社', '出版时间', '编撰字数']
-        let data = []
+    // 著作
+    getZhuZuoList (datas) {
+        const header = ['全部作者', '专著名称', '出版社', '出版时间', '编撰字数']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             list.push(item.quan_bu_zuo_zhe_ || '')
             list.push(item.zhuan_zhuo_ming_c || '')
             list.push(item.chu_ban_she_ || '')
             list.push(item.chu_ban_shi_jian_ || '')
             list.push(item.bian_zhuan_zi_shu || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //专利
-    getZhuanLiList(datas) {
-        let header = ['全部申请人', '专利名称', '专利权人', '类别', '申请时间', '授权时间', '作者排名']
-        let data = []
+    // 专利
+    getZhuanLiList (datas) {
+        const header = ['全部申请人', '专利名称', '专利权人', '类别', '申请时间', '授权时间', '作者排名']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             list.push(item.quan_bu_shen_qing || '')
             list.push(item.zhuan_li_ming_che || '')
             list.push(item.zhuan_li_quan_ren || '')
@@ -133,20 +133,20 @@ export default {
             list.push(item.shou_quan_shi_jia || '')
             list.push(item.zuo_zhe_pai_ming_ || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //继续教育项目/学术活动
-    getJxjyxmxshdList(datas) {
-        let header = ['全部负责人', '项目编号', '会议名称', '项目级别', '学分', '举办时间', '举办地点', '合作单位']
-        let data = []
+    // 继续教育项目/学术活动
+    getJxjyxmxshdList (datas) {
+        const header = ['全部负责人', '项目编号', '会议名称', '项目级别', '学分', '举办时间', '举办地点', '合作单位']
+        const data = []
         datas.forEach((item, index) => {
-            let list = []
+            const list = []
             list.push(item.quan_bu_zuo_zhe_ || '')
             list.push(item.xiang_mu_bian_hao || '')
             list.push(item.hui_yi_ming_cheng || '')
@@ -156,37 +156,37 @@ export default {
             list.push(item.ju_ban_di_dian_ || '')
             list.push(item.he_zuo_dan_wei_ || '')
             data.push(list)
-        });
-        let dataList = {
+        })
+        const dataList = {
             header: header,
             data: data
         }
-        let config = this.getDataList(dataList)
+        const config = this.getDataList(dataList)
         return config
     },
-    //图标数据封装
-    getKyxmData(datas) {
-        let list = []
-        let listData = []
+    // 图标数据封装
+    getKyxmData (datas) {
+        const list = []
+        const listData = []
         datas.forEach(item => {
             item.NAME_ = this.linHeg(item.NAME_)
             list.push(item.NAME_)
-            let o = {
+            const o = {
                 name: item.NAME_,
                 value: item.count != 0 ? item.count : ''
             }
             listData.push(o)
             console.log(listData)
         })
-        let config = {
+        const config = {
             xAxis: list,
             series: listData
         }
         return config
     },
-    linHeg(value) {
-        //rowMAx 控制一行多少字
-        let rowMAx = 1
+    linHeg (value) {
+        // rowMAx 控制一行多少字
+        const rowMAx = 1
         let overValue = ''
         for (let i = 0; i < value.length; i++) {
             if ((i % rowMAx == 0) && (i != 0)) {
@@ -200,7 +200,6 @@ export default {
     }
 }
 
-
 export const barData = {
     title: {
         show: false,
@@ -257,17 +256,17 @@ export const barData = {
         barMaxWidth: '35px',
         itemStyle: {
             color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-                { offset: 0, color: "#83bff6" },
-                { offset: 0.5, color: "#188df0" },
-                { offset: 1, color: "#188df0" },
+                { 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" },
+                    { offset: 0, color: '#2378f7' },
+                    { offset: 0.7, color: '#2378f7' },
+                    { offset: 1, color: '#83bff6' }
                 ])
             }
         },

+ 1 - 1
src/views/statistics/index_kanban.vue

@@ -457,7 +457,7 @@
   		</div>
 </template>
 <script  scoped>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import $ from 'jquery'
 
 

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

@@ -5,7 +5,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
 
 
   export default {

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

@@ -5,7 +5,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
 
 
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s10waiBuNengLiPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s10waiBuNengLiPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s11biaoZhunWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s11biaoZhunWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s11biaoZhunWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s11biaoZhunWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s12fengXianPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s12fengXianPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -15,7 +15,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s13shengWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s13shengWuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s14bufehexiangPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s14bufehexiangPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s15tousuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s15tousuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s16bzJunZhuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s16bzJunZhuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s16bzJunZhuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s17bzXiBaoPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s17bzXiBaoPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s17bzXiBaoPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s18renYuanPeiXunPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s18renYuanPeiXunPro.vue'
 

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

@@ -15,7 +15,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s1jianCePro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s1jianCePro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s1zhiLiangMuBiaoPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s1zhiLiangMuBiaoPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s1zhiLiangMuBiaoPro.vue'
 

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

@@ -16,7 +16,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s1zhiLiangMuBiaoPro.vue'
 

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

@@ -15,7 +15,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s1zhiLiangMuBiaoPro.vue'
 

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

@@ -15,7 +15,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s2manYiDuPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s2manYiDuPro.vue'
 

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

@@ -15,7 +15,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s3tousuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s3tousuPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s4renYuanPeiXunPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s4renYuanPeiXunPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s5renYuanJianDuPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s5renYuanJianDuPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s6sheBeiWeiHuPro.vue'
   import {GetPercent} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s7sheBeiJiaoZhunPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s7sheBeiJiaoZhunPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s7sheBeiJiaoZhunPro.vue'
 

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s8sheBeiHeChaPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s8sheBeiHeChaPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s8sheBeiHeChaPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s9neiBuZhiLiangPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -14,7 +14,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import dialogView from '../properties/s9neiBuZhiLiangPro.vue'
   import {GetPercent,GetMax} from  '../js/config.js'
   export default {

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

@@ -5,7 +5,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
 
 
   export default {

+ 1 - 1
src/views/statisticsByDay/index.vue

@@ -91,7 +91,7 @@
 </template>
 
  <script type="text/javascript">
-   import echarts from 'echarts'
+   import * as echarts from 'echarts'
    import $ from 'jquery'
    //import myCanvas from 'vue-atom-canvas'
 

+ 1 - 1
src/views/statisticsByDay/item/none.vue

@@ -5,7 +5,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
 
 
   export default {

+ 1 - 1
src/views/statisticsByDay/item/s4renYuanPeiXun.vue

@@ -15,7 +15,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   import dialogView from '../properties/s4renYuanPeiXunPro.vue'
   import repostCurd from '@/business/platform/form/utils/custom/joinCURD.js'

+ 1 - 1
src/views/statisticsByDay/item/s5renYuanJianDu.vue

@@ -7,7 +7,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
   
   export default {

+ 1 - 1
src/views/statisticsByDay/item/s6sheBeiWeiHu.vue

@@ -7,7 +7,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
  
   export default {

+ 1 - 1
src/views/statisticsByDay/item/s7sheBeiJiaoZhun.vue

@@ -7,7 +7,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
  
   export default {

+ 1 - 1
src/views/statisticsByDay/item/s8sheBeiHeCha.vue

@@ -7,7 +7,7 @@
 </template>
 
 <script>
-  import echarts from 'echarts'
+  import * as echarts from 'echarts'
   import {GetPercent,GetMax} from  '../js/config.js'
  
   export default {

+ 1 - 1
src/views/system/jbdHome/board/component/bottomCard.vue

@@ -27,7 +27,7 @@
     </div>
 </template>
 <script>
-    import echarts from 'echarts'
+    import * as echarts from 'echarts'
     import { trustOption, sampleOption, monthOption, yearOption } from '../data'
     export default {
         name: 'topBar',

+ 1 - 1
src/views/system/jbdHome/board/component/middleCard.vue

@@ -28,7 +28,7 @@
     </div>
 </template>
 <script>
-    import echarts from 'echarts'
+    import * as echarts from 'echarts'
     import { acceptOption, taskOption } from '../data'
     export default {
         name: 'topBar',

+ 141 - 0
src/views/system/jbdHome/board/component/moreBar.vue

@@ -0,0 +1,141 @@
+<template>
+    <div class="pieView">
+        <div style="height: 10%;line-height: 30px;text-align: left;padding-left: 6px;width: 100%;">
+            {{ info.config.title }}
+        </div>
+        <div v-show="showChart" style="width:100%;height:90%;display: inline-block;">
+            <div :id="info.config.idSelector" style="width:100%;height:100%;" />
+        </div>
+        <div v-if="!showChart" style="background: #061237;width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;">
+            <div style="color: #c7c7c7">目前无数据</div>
+        </div>
+    </div>
+</template>
+
+<script>
+import * as echarts from 'echarts'
+export default {
+    props: {
+        info: {
+            type: Object,
+            // eslint-disable-next-line vue/require-valid-default-prop
+            default: {}
+        }
+    },
+    data () {
+        return {
+            yAxisNum: 1,
+            showChart: true
+        }
+    },
+    mounted () {
+        const this_ = this
+        this.$nextTick(() => {
+            this_.getMiddleLeft()
+        })
+    },
+    methods: {
+        getMiddleLeft () {
+            const this_ = this
+            const series = []
+            if (this_.info.data.source[0] === 999) {
+                this.showChart = false
+                return
+            }
+            for (const item of this.info.config.colors) {
+                series.push({
+                    type: 'bar',
+                    color: item,
+                    label: {
+                        show: true,
+                        position: 'top',
+                        color: '#fff'
+                    }
+                })
+            }
+            var chartDom = document.getElementById(this.info.config.idSelector)
+            var myChart = echarts.init(chartDom)
+            let interval = 7
+            if (this_.info.config.idSelector === 'eqFinish') {
+                let max = 0
+                this_.info.data.source.forEach(item => {
+                    if (item.设备总数 > max) {
+                        max = item.设备总数
+                    }
+                })
+                if (max < 7) {
+                    interval = 1
+                } else {
+                    interval = Math.ceil((parseInt(max / 7) / 10)) * 10
+                }
+            }
+            if (this_.info.config.idSelector === 'eqWeihu') {
+                let jihuamax = 0
+                let wanchengmax = 0
+                let max = 0
+                this_.info.data.source.forEach(item => {
+                    if (item.计划数 > max) {
+                        jihuamax = item.计划数
+                    }
+                })
+                this_.info.data.source.forEach(item => {
+                    if (item.完成数 > wanchengmax) {
+                        wanchengmax = item.完成数
+                    }
+                })
+                max = wanchengmax > jihuamax ? wanchengmax : jihuamax
+                if (max < 7) {
+                    interval = 1
+                } else {
+                // interval = parseInt(max / 7)
+                    interval = Math.ceil((parseInt(max / 7)))
+                }
+            }
+            const option = {
+                legend: {
+                    left: 'left',
+                    textStyle: {
+                        color: '#fff'
+                    }
+                },
+                grid: { // 让图表占满容器
+                    top: '40px',
+                    left: '65px',
+                    right: '60px',
+                    bottom: '40px'
+                },
+                tooltip: {},
+                dataset: {
+                    dimensions: this_.info.data.dimensions,
+                    source: this_.info.data.source
+                },
+                xAxis: {
+                    type: 'category',
+                    axisLabel: {
+                        color: '#fff',
+                        interval: 0,
+                        rotate: 20
+                    }
+                },
+                yAxis: {
+                    axisLabel: {
+                        color: '#fff'
+
+                    },
+                    interval: interval
+                },
+                series: series
+            }
+            myChart.setOption(option)
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.pieView {
+  display: flex;
+  width: 100%;
+  height: 100%;
+  background-color: rgba(6,30,93,.5);
+}
+</style>

+ 1 - 1
src/views/system/jbdHome/board/data.js

@@ -1,4 +1,4 @@
-import echarts from "echarts"
+import * as echarts from 'echarts'
 
 const radius = window.innerWidth > 1600 ? '55%' : '45%'
 

+ 943 - 682
src/views/system/jbdHome/board/equipmentBoard.vue

@@ -1,727 +1,988 @@
 <template>
-  <div class="content">
-    <dv-full-screen-container>
-      <!-- 头部内容 -->
-      <div class="header">
-        <dv-decoration-8 class="left" />
-        <dv-decoration-5 class="center" />
-        <dv-decoration-8 class="right" :reverse="true" />
-        <div class="title">{{ titleName }}</div>
-        <div class="time">
-          <span>月份:</span>
-          <el-date-picker v-model="month" type="month" value-format="yyyy-MM" format="yyyy-MM" placeholder="日期选择" style="width: 120px" :readonly="false" :editable="true" :clearable="false" @change="updateAll" />
-        </div>
-        <div class="back" @click.prevent="goBack()">
-          <dv-border-box-8>返回</dv-border-box-8>
-        </div>
-      </div>
-      <dv-border-box-1 style="height:88%;overflow: hidden;">
-        <!-- 顶部数据 -->
-        <div class="topCard">
-          <top-bar v-if="topBarData.length" :info="topBarData" />
-        </div>
-        <dv-decoration-10 style="height:2%;display:flex;" />
-        <div class="middleCard">
-          <div style="width:100%;height: 100%;box-sizing: border-box;overflow: hidden;">
-            <div class="middleCardLeft">
-              <middleCard v-if="MiddleLeftPieViewList.data.length" :info="MiddleLeftPieViewList" ref="middleCardLeft" />
+    <div class="content">
+        <dv-full-screen-container>
+            <!-- 头部内容 -->
+            <div class="header">
+                <dv-decoration-8 class="left" />
+                <dv-decoration-5 class="center" />
+                <dv-decoration-8 class="right" :reverse="true" />
+                <div class="title">{{ titleName }}</div>
+                <div v-show="false" class="time">
+                    <dv-border-box-8>
+                        <span>年度:</span>
+                        <el-date-picker v-model="month" type="year" value-format="yyyy" format="yyyy" placeholder="日期选择" style="width: 100px;" :readonly="false" :editable="true" :clearable="false" @change="updateAll" />
+                    </dv-border-box-8>
+                </div>
+                <div class="back" @click.prevent="goBack()">
+                    <dv-border-box-8>返回</dv-border-box-8>
+                </div>
             </div>
-            <dv-decoration-2 :reverse="true" style="width:2%;height: 100%;" />
-            <div class="middleCardRight1">
-              <CarouselTabl v-if="shiyonglvConfig.data.length" :info="shiyonglvConfig" title="仪器设备列表" isup=isup />
-            </div>
-            <dv-decoration-2 :reverse="true" style="width:2%;height:100%;" />
-            <div class="middleCardRight">
-              <CarouselTabl v-if="config.data.length" :info="config" title="设备报废列表" />
-            </div>
-          </div>
-        </div>
-        <dv-decoration-10 style="height:2%;display:flex;" />
-        <div class="bottomCard">
-          <div style="width:24%">
-            <zhuzhuangtu v-if="sheBeiData.data.length" :info="sheBeiData" ref="sheBeiDataDataref" />
-          </div>
-          <dv-decoration-2 :reverse="true" style="width:1%;height:100%;overflow: hidden;box-sizing: border-box;" />
-          <div style="width:25%;height: 100%;overflow: hidden;box-sizing: border-box;display:flex;">
-            <div class="bottomCardLeft0">
-              <middleCard v-if="weiHuSheBeiData.data.length" :info="weiHuSheBeiData" ref="sheBeiWeiHuRef" />
-            </div>
-          </div>
-          <dv-decoration-2 :reverse="true" style="width:1%;height:100%;overflow: hidden;box-sizing: border-box;" />
-          <div style="width:25%;display:flex;">
-            <div class="bottomCardright">
-              <middleCard v-if="jianDingjiaoZhunSheBeiData.data.length" :info="jianDingjiaoZhunSheBeiData" ref="jiandingRef" />
-            </div>
-          </div>
-          <dv-decoration-2 :reverse="true" style="width:1%;height:100%;overflow: hidden;box-sizing: border-box;" />
-          <div style="width:24%;overflow: hidden;box-sizing: border-box;display:flex;">
-            <div class="bottomCardLeft">
-              <middleCard v-if="sheBeiHeChaData.data.length" :info="sheBeiHeChaData" ref="sheBeiHeChaRef"/>
-            </div>
-          </div>
-        </div>
-      </dv-border-box-1>
-    </dv-full-screen-container>
-  </div>
+            <dv-border-box-1 style="height:90%;overflow: hidden;">
+                <!-- 顶部数据 -->
+                <div class="topCard">
+                    <!-- <top-bar v-if="topBarData.length" :info="topBarData" /> -->
+                    <div style="width:100%;height: 100%;box-sizing: border-box;overflow: hidden;">
+                        <div class="middleCardLeft" style="width:24%;height:100%">
+                            <middleCard v-if="allSheBeiData.data.length" :info="allSheBeiData" />
+                        </div>
+                        <dv-decoration-2 :reverse="true" style="width:2%;height: 100%;" />
+                        <div class="middleCardLeft" style="width:38%;height:100%">
+                            <moreBar v-if="moreBarData.data.source.length > 0 " :info="moreBarData" />
+                        </div>
+                        <dv-decoration-2 :reverse="true" style="width:2%;height: 100%;" />
+                        <div class="middleCardLeft" style="width:34%;height:100%">
+                            <zhuzhuangtu v-if="zichangBarData.data.length" :info="zichangBarData" />
+                        </div>
+                    </div>
+                </div>
+                <dv-decoration-10 style="height:2%;display:flex;" />
+                <div class="middleCard">
+                    <div style="width:100%;height: 100%;box-sizing: border-box;overflow: hidden;">
+                        <div class="middleCardLeft" style="width:24%">
+                            <middleCard v-if="allWeihuSheBeiData.data.length" :info="allWeihuSheBeiData" />
+                        </div>
+                        <dv-decoration-2 :reverse="true" style="width:2%;height: 100%;" />
+                        <div class="middleCardLeft" style="width:38%">
+                            <moreBar v-if="weihuBarData.data.source.length > 0 " :info="weihuBarData" />
+                        </div>
+                        <dv-decoration-2 :reverse="true" style="width:2%;height: 100%;" />
+                        <div class="middleCardRight1" style="width:34%">
+                            <CarouselTabl v-if="BaofeiBarData.data.length" :info="BaofeiBarData" title="检验科设备停用/报废列表" />
+                        </div>
+                        <!-- <div class="middleCardRight" style="width:35%">
+            <CarouselTabl v-if="config.data.length" :info="config" title="设备报废列表" />
+          </div> -->
+                    </div>
+                </div>
+                <dv-decoration-10 style="height:2%;display:flex;" />
+                <div class="bottomCard">
+                    <div style="width:33%;display:flex;">
+                        <div class="bottomCardright">
+                            <middleCard v-if="enTypeData.data.length" :info="enTypeData" />
+                        </div>
+                    </div>
+                    <dv-decoration-2 :reverse="true" style="width:2%;height:100%;overflow: hidden;box-sizing: border-box;" />
+                    <div style="width:33%">
+                        <middleCard v-if="allJiaozhunSheBeiData.data.length" :info="allJiaozhunSheBeiData" />
+                    </div>
+                    <dv-decoration-2 :reverse="true" style="width:2%;height:100%;overflow: hidden;box-sizing: border-box;" />
+                    <div style="width:58%;height: 100%;overflow: hidden;box-sizing: border-box;display:flex;">
+                        <div class="bottomCardLeft0">
+                            <moreBar v-if="jiaozhunBarData.data.source.length > 0 " :info="jiaozhunBarData" />
+                        </div>
+                    </div>
+                </div>
+            </dv-border-box-1>
+        </dv-full-screen-container>
+    </div>
 </template>
 <script>
-import screenfull from "screenfull";
-import curdPost from "@/business/platform/form/utils/custom/joinCURD.js";
-import { color } from "echarts/lib/export";
+import screenfull from 'screenfull'
+import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
 export default {
-  name: "checkBoard",
-  components: {
-    topBar: () => import("./component/equipmentBoardTopcard"),
-    middleCard: () => import("./component/getPieView"),
-    zhuzhuangtu: () => import("./component/zhuzhuangtu"),
-    CarouselTabl: () => import("./component/CarouselTabl"),
-  },
-  data() {
-    const d = new Date();
-    return {
-      titleName: "设备管理看板",
-      year: d.toJSON().slice(0, 4),
-      month: d.toJSON().slice(0, 7),
-      today: d.toJSON().slice(0, 10),
-      topBarData: [],
-      timer: null,
-      MiddleLeftPieViewList: {},
-      eBgRateData: {},
-      sheBeiHeChaData: {},
-      jianDingjiaoZhunSheBeiData: {},
-      weiHuSheBeiData: {},
-      shiyonglvConfig: {
-        header: ["编号","名称","存放位置","状态","保管人",],//仪器设备
-        // header: ["名称","编号","使用时间","存放位置", "状态", "频率"], //设备使用列表
-        data: [],
-        // columnWidth: ["180","130","120","150","110","120"],//设备使用列表
-        columnWidth: ["180","180","150","110","110"],
-        rowNum: 7,
-      },
-      bottomData: {},
-      zhuantaiEData: {},
-      sheBeiData: { xData: [], data: [], config: { idSelector: "" } },
-      sheBeiDataShow:false,
-      sheBeiweiHuData: {},
-      config: {},
-      zichan: 0,
-    };
-  },
-  created() {
-    if (screenfull.isEnabled && !screenfull.isFullscreen) {
-      this.allView();
-    }
-    this.updateAll();
-  },
-  beforeDestroy() {
-    if (screenfull.isFullscreen) {
-      screenfull.toggle();
-    }
-  },
-  methods: {
-    allView() {
-      // 默认显示全屏
-      screenfull.request();
-    },
-    goBack() {
-      this.$router.back(-1);
-    },
-    updateAll(e) {
-      // this.getSheBeiMony();
-      this.getCarouselShiYonglvTable();
-      this.getTopBarData();
-      this.getMiddleLeftPieView();
-      this.getCarouselTable();
-      // this.getbottomData();
+    name: 'check-board',
+    components: {
+        topBar: () => import('./component/equipmentBoardTopcard'),
+        middleCard: () => import('./component/getPieView'),
+        zhuzhuangtu: () => import('./component/zhuzhuangtu'),
+        CarouselTabl: () => import('./component/CarouselTabl'),
+        // 最新
+        moreBar: () => import('./component/moreBar')
     },
-    async getTopBarData() {
-      let this_ = this;
-
-      this.MiddleLeftPieViewList = {
-        data: [],
-        config: { idSelector: "main" },
-        rowNum: 7,
-        color: [],
-      };
-      this_.sheBeiDataShow = false;
-      this.eBgRateData = { data: [], config: {} };
-      this.sheBeiHeChaData = { data: [], config: {} };
-      this.jianDingjiaoZhunSheBeiData = { data: [], config: {} };
-      this.sheBeiData={ xData: [], data: [], config: { idSelector: "" } };
-      this.weiHuSheBeiData = { data: [], config: {} };
-      this.bottomData = { xData: [], data: [], config: { idSelector: "" } };
-      this.zhuantaiEData = { xData: [], data: [], config: { idSelector: "" } };
-      this.sheBeiweiHuData = {
-        xData: [],
-        data: [],
-        config: { idSelector: "" },
-      };
-      let sql = `select a.Equipments,a1.mony,b.addEquipments,c.testEquipments,c1.testNoEquipments,d.checkEquipments,
-      d1.checkNoEquipments,e.goodEquipments,f.scrapEquipments,g.limitedEquipments,h.weiHuNoEquipments,h1.weiHuEquipments
-      from  
-      (select count(*) as Equipments from t_sbdj) as a,
-      (select zi_chan_yuan_zhi_ as mony FROM t_sbdj) as a1,
-      (select count(*) as addEquipments  from t_sbdj where gou_jin_ri_qi_ LIKE '%${this_.month}%') as b,
-
-      (select count(*) as testEquipments FROM t_sbjdxzzx WHERE parent_id_ IN (select  id_ FROM t_sbjdxzqr WHERE  shi_fou_guo_shen_ ='1' AND bian_zhi_shi_jian LIKE '%${this_.month.slice(0,4)}%')) as c,
-      (select count(*) as testNoEquipments FROM t_mjsbjdxzjhzb WHERE parent_id_ IN (select  id_ FROM t_mjsbjdxzjh WHERE  shi_fou_guo_shen_ ='1' AND bian_zhi_shi_jian	LIKE '%${this_.month.slice(0,4)}%')) as c1,
-      (select count(*) as checkEquipments from t_sbqjhcjlb WHERE shi_fou_guo_shen_ ='1' AND bian_zhi_shi_jian LIKE '%${this_.month}%') as d,
-      (select count(*) as checkNoEquipments from t_sbqjhcjlb WHERE  create_time_ LIKE '%${this_.month}%' or bian_zhi_shi_jian LIKE '%${this_.month}%' ) as d1,
-      (select count(*) as goodEquipments  from t_sbdj where she_bei_zhuang_ta ='正常') as e,
-      (select count(*) as scrapEquipments  from t_sbdj where she_bei_zhuang_ta ='停用' or she_bei_zhuang_ta ='报废' or she_bei_zhuang_ta ='报废/停用') as f,
-      (select count(*) as limitedEquipments  from t_sbdj where she_bei_zhuang_ta ='限制使用' or she_bei_zhuang_ta ='备用') as g,
-      (select count(*) as weiHuNoEquipments  from t_mjsbwhbyjlby where create_time_ LIKE '%${this_.month }%') as h,
-      (select count(*) as weiHuEquipments  from t_mjsbwhbyjlby where create_time_ LIKE '%${this_.month}%' and shi_fou_guo_shen_ ='1') as h1`;
-      await curdPost("sql", sql)
-        .then((res) => {
-          const data = res.variables.data;
-          let zichan = this_.getAllMonyInt(data);
-          zichan = zichan +''
-          zichan =zichan.substring(0,zichan.length-4)
-          let eIntactnessRate = Number(
-            (
-              (data[0].goodEquipments / data[0].Equipments).toFixed(2) * 100 +
-              ""
-            ).slice(0, 5)
-          );
-          let eBadRate = Number(
-            ((100 - eIntactnessRate).toFixed(4) + "").slice(0, 4)
-          );
-          let obj = {};
-          obj.value = Number(
-            (
-              (data[0].goodEquipments / data[0].Equipments).toFixed(4) * 100 +
-              ""
-            ).slice(0, 5)
-          );
-          obj.name = "正常设备数";
-          this_.MiddleLeftPieViewList.data.push(obj);
-          obj = {};
-          obj.value = Number(
-            (
-              (data[0].limitedEquipments / data[0].Equipments).toFixed(4) *
-                100 +
-              ""
-            ).slice(0, 5)
-          );
-          obj.name = "受限设备数";
-          this_.MiddleLeftPieViewList.data.push(obj);
-          obj = {};
-          obj.value = Number(
-            (
-              (data[0].scrapEquipments / data[0].Equipments).toFixed(4) * 100 +
-              ""
-            ).slice(0, 5)
-          );
-          obj.name = "停用/报废";
-          this_.MiddleLeftPieViewList.data.push(obj);
-          this_.MiddleLeftPieViewList.color = ["#339933", "#FFFF66", "#FF0033"];
-          this_.MiddleLeftPieViewList.config.title = "设备工作状态情况";
-          this_.MiddleLeftPieViewList.config.idSelector = "main2";
-          this_.$nextTick(() => {
-            // setTimeout(() => {
-            // this_.$refs.middleCardLeft.getMiddleLeft(); // hhhh xxxx
-            // }, 1000)
-          });
-          obj = {};
-          let result = [
-            {
-              title: "",
-              children: [
-                {
-                  label: "设备总数",
-                  value: data[0].Equipments,
-                  danwei: "",
-                },
-                {
-                  label: "新增数",
-                  value: data[0].addEquipments,
-                  danwei: "",
-                },
-                {
-                  label: "正常数",
-                  value: data[0].goodEquipments,
-                  danwei: "",
-                },
-
-                {
-                  label: "受限数",
-                  value: data[0].limitedEquipments,
-                  danwei: "",
-                },
-                {
-                  label: "报废/停用数",
-                  value: data[0].scrapEquipments,
-                  danwei: "",
-                },
-              ],
+    data () {
+        const d = new Date()
+        return {
+            titleName: '设备管理看板',
+            year: d.toJSON().slice(0, 4),
+            month: d.toJSON().slice(0, 7),
+            today: d.toJSON().slice(0, 10),
+            topBarData: [],
+            timer: null,
+            MiddleLeftPieViewList: {},
+            eBgRateData: {},
+            sheBeiHeChaData: {},
+            jianDingjiaoZhunSheBeiData: {},
+            weiHuSheBeiData: {},
+            shiyonglvConfig: { header: ['编号', '名称', '存放位置', '状态', '保管人'], data: [], columnWidth: ['110', '230', '180', '110', '110'], rowNum: 7 },
+            bottomData: {},
+            zhuantaiEData: {},
+            sheBeiData: { xData: [], data: [], config: { idSelector: '' }},
+            sheBeiDataShow: false,
+            sheBeiweiHuData: {},
+            BaofeiBarData: {
+                header: ['部门', '设备名称', '设备编号', '状态'], data: [],
+                columnWidth: ['120', '250', '180', '110'],
+                rowNum: 5
             },
-            {
-              title: "",
-              children: [
-                {
-                  label: "计划维护数",
-                  value: data[0].weiHuNoEquipments,
-                  danwei: "",
-                },
-                {
-                  label: "已维护数",
-                  value: data[0].weiHuEquipments,
-                  danwei: "",
-                },
-              ],
+            zichan: 0,
+            enTypeData: { data: [], config: {}},
+            // 新
+            moreBarData: {
+                data: { dimensions: [], source: [] },
+                config: { idSelector: 'eqFinish', title: '各部门设备完好情况', colors: ['#3870e0', '#12bc79', '#C1FFC1', '#ff0066', '#FFFF00'] }
             },
-            {
-              title: "",
-              children: [
-                {
-                  label: "计划检定/校准数",
-                  value: data[0].testNoEquipments,
-                  danwei: "",
-                },
-                {
-                  label: "已检定/校准数",
-                  value: data[0].testEquipments,
-                  danwei: "",
-                },
-              ],
+            zichangBarData: {
+                data: [],
+                xData: [],
+                config: { idSelector: 'eqZichan', title: '各部门设备资产金额情况(万元)' }
             },
-            {
-              title: "",
-              children: [
-                {
-                  label: "计划核查数",
-                  value: data[0].checkNoEquipments,
-                  danwei: "",
-                },
-                {
-                  label: "已核查数",
-                  value: data[0].checkEquipments,
-                  danwei: "",
-                },
-              ],
+            weihuBarData: {
+                data: { dimensions: [], source: [] },
+                config: { idSelector: 'eqWeihu', title: '各部门设备维护完成情况', colors: ['#3870e0', '#12bc79'] }
             },
-            {
-              title: "",
-              children: [
-                {
-                  label: "完好率",
-                  value: eIntactnessRate,
-                  danwei: "%",
-                },
-                {
-                  label: "故障率",
-                  value: eBadRate,
-                  danwei: "%",
-                },
-                {
-                  label: "总值(万元)",
-                  value: zichan,
-                  danwei: "",
-                },
-              ],
+            jiaozhunBarData: {
+                data: { dimensions: [], source: [] },
+                config: { idSelector: 'eqJiaozhun', title: '各部门设备检定/校准完成情况', colors: ['#3870e0', '#12bc79'] }
             },
-          ];
-          //设备数量统计
-          this_.sheBeiData.xData = [
-            "设备总数",
-            "新增数",
-            "良好数",
-            "受限数",
-            "报废停用数",
-          ];
-          
-          this_.sheBeiData.data.push(data[0].Equipments);
-          this_.sheBeiData.data.push(data[0].addEquipments);
-          this_.sheBeiData.data.push(data[0].goodEquipments);
-          this_.sheBeiData.data.push(data[0].limitedEquipments);
-          this_.sheBeiData.data.push(data[0].scrapEquipments);
-          this_.sheBeiData.config.title = "设备数量情况一览";
-          this_.sheBeiData.config.idSelector = "main8";
-          this_.sheBeiDataShow = true;
-          //
-          this_.bottomData.xData = ["本月计划核查数", "本月已核查数"];
-          this_.bottomData.data.push(data[0].checkNoEquipments);
-          this_.bottomData.data.push(data[0].checkEquipments);
-          this_.bottomData.config.title = "核查设备完成图";
-          this_.bottomData.config.idSelector = "main4";
-          // this_.$nextTick(()=>{
-          //   setTimeout(() => {
-
-          // 	}, 1000)
-          // })
-          this_.zhuantaiEData.xData = [
-            "计划检定/校准数",
-            "已完成检定/校准数",
-          ];
-          this_.zhuantaiEData.data.push(data[0].testNoEquipments);
-          this_.zhuantaiEData.data.push(data[0].testEquipments);
-          this_.zhuantaiEData.config.title = "检定/校准设备完成图";
-          this_.zhuantaiEData.config.idSelector = "main3";
-          //维护设备数柱状图
-          this_.sheBeiweiHuData.xData = ["计划维护数", "已完成数"];
-          this_.sheBeiweiHuData.data.push(data[0].weiHuNoEquipments);
-          this_.sheBeiweiHuData.data.push(data[0].weiHuEquipments);
-          this_.sheBeiweiHuData.config.title = "设备维护柱状图";
-          this_.sheBeiweiHuData.config.idSelector = "mainWeiHuZ";
-          this_.$nextTick(() => {
-            // setTimeout(() => {
-            // this_.$refs.zhuantaiEDataref.getMiddleLeft(); // hhhh xxxx
-            // this_.$refs.bottomCardLeft.getMiddleLeft(); // hhhh xxxx
-            // this_.$refs.sheBeiWeiHuDataref.getMiddleLeft();
-            // }, 1000)
-          });
-
-          let objRate = {};
-          objRate.name = "完好率";
-          objRate.value =eIntactnessRate;
-          this_.eBgRateData.data.push(objRate);
-          objRate = {};
-          objRate.value =eBadRate;
-          objRate.name = "故障率";
-          this_.eBgRateData.data.push(objRate);
-          this_.eBgRateData.color = ["#339933", "#FF0033"];
-          this_.eBgRateData.config.title = "设备工作状态完成率";
-          this_.eBgRateData.config.idSelector = "main1";
-          //设备数维护
-          let objweihu = {};
-          objweihu.name = "计划维护数";
-          objweihu.value = data[0].weiHuNoEquipments;
-          this_.weiHuSheBeiData.data.push(objweihu);
-          objweihu = {};
-          objweihu.value = data[0].weiHuEquipments;
-          objweihu.name = "已维护数";
-          this_.weiHuSheBeiData.data.push(objweihu);
-          this_.weiHuSheBeiData.color = ["#5470c6", "#38a838"];
-          this_.weiHuSheBeiData.config.title = "设备维护完成率";
-          this_.weiHuSheBeiData.config.idSelector = "mainWeiHu";
-          //设备数核查
-          let objHeCha = {};
-
-          objHeCha.name = "本月计划核查数";
-          objHeCha.value = data[0].checkNoEquipments;
-          this_.sheBeiHeChaData.data.push(objHeCha);
-          objHeCha = {};
-          objHeCha.value =data[0].checkEquipments;
-          objHeCha.name = "本月已核查数";
-          this_.sheBeiHeChaData.data.push(objHeCha);
-          this_.sheBeiHeChaData.color = ["#5470c6", "#38a838"];
-          this_.sheBeiHeChaData.config.title = "设备核查完成率";
-          this_.sheBeiHeChaData.config.idSelector = "mainHeCha";
-          //设备数检定校准
-          let objJianding = {};
-          objJianding.name = "计划检定/校准数";
-          objJianding.value = data[0].testNoEquipments;
-          this_.jianDingjiaoZhunSheBeiData.data.push(objJianding);
-          objJianding = {};
-          objJianding.value = data[0].testEquipments;
-          objJianding.name = "已完成数";
-          this_.jianDingjiaoZhunSheBeiData.data.push(objJianding);
-          this_.jianDingjiaoZhunSheBeiData.color = ["#5470c6", "#38a838"];
-          this_.jianDingjiaoZhunSheBeiData.config.title = "设备检定/校准完成率";
-          this_.jianDingjiaoZhunSheBeiData.config.idSelector = "mainJianDing";
-          objRate = {};
-          this_.topBarData = result;
-        })
-        .catch((err) => {
-          console.log(err);
-        });
-    },
-    getMiddleLeftPieView() {
-      // [ { value: 1048, name: 'Search Engine' },]
-    },
-    async getCarouselShiYonglvTable() { //设备建档信息
-      let this_ = this;
-      const sql = `select a.she_bei_shi_bie_h,a.she_bei_ming_cheng_,a.cun_fang_di_dian_,a.she_bei_zhuang_ta,b.name_ FROM t_sbdj AS a JOIN ibps_party_employee AS b ON a.guan_li_ren_ = b.ID_`;
-      let data1 = [];
-      let res1 = [];
-      this_.shiyonglvConfig.data = [];
-      await curdPost("sql", sql)
-        .then((res) => {
-          const result = res.variables.data;
-          result.forEach((item) => {
-            data1 = [];
-            data1.push(item.she_bei_shi_bie_h);
-            data1.push(item.she_bei_ming_cheng_);
-            data1.push(item.cun_fang_di_dian_);
-            data1.push(item.she_bei_zhuang_ta);
-            data1.push(item.name_);
-            this_.shiyonglvConfig.data.push(data1);
-          });
-        })
-        .catch((err) => {
-          console.log(err);
-        });
-      this.isup = true;
+            // allSheBeiData: {
+            //     data: [{ name: '设备总数', value: 0 }, { name: '良好数', value: 0 }, { name: '停用数', value: 0 }],
+            //     config: { title: '检验科设备完好情况', idSelector: 'allShebei' },
+            //     color: ['#339933', '#3870e0', '#FF0033']
+            // },
+            allSheBeiData: {
+                data: [{ name: '良好数', value: 0 }, { name: '限用数', value: 0 }, { name: '停用数', value: 0 }, { name: '报废数', value: 0 }],
+                config: { title: '检验科设备完好情况', idSelector: 'allShebei' },
+                color: ['#12bc79', '#C1FFC1', '#FF0033', '#FFFF00']
+            },
+            allWeihuSheBeiData: {
+                data: [{ name: '待处理', value: 0 }, { name: '已完成', value: 0 }],
+                config: { title: '检验科设备维护完成情况', idSelector: 'allWeihuShebei' },
+                color: ['#3870e0', '#339933']
+            },
+            allJiaozhunSheBeiData: {
+                data: [{ name: '计划数', value: 0 }, { name: '完成数', value: 0 }],
+                config: { title: '检验科设备检定/校准完成情况', idSelector: 'allJiaozhunShebei' },
+                color: ['#3870e0', '#339933']
+            }
+        }
     },
-    // async getCarouselShiYonglvTable() {设备使用列表
-    //   let this_ = this;
-    //   const sql = `select a.she_bei_ming_chen ,a.create_time_,a.shi_yong_qian_qin,b.name_,c.cun_fang_di_dian_,c.she_bei_shi_bie_h,d.name_ as bumen,COUNT(*) AS pinlv FROM  t_yqsbsydjb as a join ibps_party_employee as b on a.shi_yong_ren_ = b.ID_ join t_sbdj as c on a.yi_qi_bian_hao_ = c.she_bei_shi_bie_h join ibps_party_org as d on d.id_ = a.bian_zhi_bu_men_ GROUP BY create_time_  HAVING create_time_ LIKE '${this.month}%' ORDER BY pinlv DESC`;
-    //   let data1 = [];
-    //   let res1 = [];
-    //   this_.shiyonglvConfig.data = [];
-    //   await curdPost("sql", sql)
-    //     .then((res) => {
-    //       const result = res.variables.data;
-    //       result.forEach((item) => {
-    //         data1 = [];
-    //         data1.push(item.she_bei_ming_chen);
-    //         data1.push(item.she_bei_shi_bie_h);
-    //         // data1.push(item.bumen);
-    //         // data1.push(item.name_);
-    //         data1.push(this_.timestampToTime(item.create_time_ / 1000));
-    //         data1.push(item.cun_fang_di_dian_);
-    //         // data1.push(item.create_time_);
-    //         data1.push(item.shi_yong_qian_qin);
-    //         data1.push(item.pinlv);
-    //         this_.shiyonglvConfig.data.push(data1);
-    //         // this_.$forceUpdate()
-    //       });
-
-    //       // console.log(this_.shiyonglvConfig.data);
-    //     })
-    //     .catch((err) => {
-    //       console.log(err);
-    //     });
-    //   this.isup = true;
-    // },
-    timestampToTime(timestamp) {
-      var date = new Date(timestamp * 1000);
-      var Y = date.getFullYear() + "-";
-      var M =
-        (date.getMonth() + 1 < 10
-          ? "0" + (date.getMonth() + 1)
-          : date.getMonth() + 1) + "-";
-      var D =
-        (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
-      var h = date.getHours() + ":";
-      var m = date.getMinutes() + ":";
-      var s = date.getSeconds();
-      return Y + M + D;
+    watch: {
+        month (newValue, oldValue) {
+            this.updateAll()
+        }
     },
-    async getCarouselTable() {
-      this.config = {
-        header: ["设备名称", "编号", "状态"],
-        columnWidth: ["180","150", "70"],
-        rowNum: 6,
-        data: [],
-      };
-      let this_ = this;
-      const sql =
-        "select * from t_sbdj where she_bei_zhuang_ta ='停用' or she_bei_zhuang_ta ='报废' or she_bei_zhuang_ta ='报废/停用'";
-      let data1 = [];
-      await curdPost("sql", sql)
-        .then((res) => {
-          const result = res.variables.data;
-          result.forEach((item) => {
-            data1 = [];
-            data1.push(item.she_bei_ming_cheng_);
-            data1.push(item.she_bei_shi_bie_h);
-            // data1.push(item.gui_ge_xing_hao_);
-            data1.push(item.she_bei_zhuang_ta);
-            this_.config.data.push(data1);
-          });
-        })
-        .catch((err) => {
-          console.log(err);
-        });
+    created () {
+        this.updateAll()
+        if (screenfull.isEnabled && !screenfull.isFullscreen) {
+            this.allView()
+        }
     },
-    getAllMonyInt(monyArr) {
-      let mony = 0;
-      let filterMony;
-      monyArr.forEach((item) => {
-        if (item.mony.includes("元")) {
-          filterMony = item.mony.slice(0, item.mony.length - 1) * 1;
-          mony += filterMony;
+    beforeDestroy () {
+        if (screenfull.isFullscreen) {
+            screenfull.toggle()
         }
-      });
-      // console.log(mony.toFixed(2))
-      // return mony.toFixed(2);
-      return mony;
     },
-    // async getSheBeiMony (){
-    //   let this_=  this;
-    //   const sql = "select zi_chan_yuan_zhi_ as mony FROM t_sbdj";
-    //   await curdPost("sql",sql).then(res=>{
-    //     let data = res.variables.data;
-    //     this_.zichan=  this_.getAllMonyInt(data);
-    //     console.log(this_.zichan);
-    //   }).catch(err=>{
-    //     console.error(err)
-    //   })
-    // }
-  },
-};
+    methods: {
+        allView () { // 默认显示全屏
+            screenfull.request()
+        },
+        goBack () {
+            this.$router.back(-1)
+        },
+        updateAll () {
+            // this.getCarouselShiYonglvTable();
+            // this.getTopBarData();
+            this.getBaofeiBarData()
+            // 新
+            this.getEnTypeData()
+            this.getMoreBarData()
+            this.getJiaozhunBarData()
+            this.getWeihuBarData()
+            this.getZichanBarData()
+        },
+        async getTopBarData () {
+            const this_ = this
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            this.MiddleLeftPieViewList = { data: [], config: { idSelector: 'main' }, rowNum: 7, color: [] }
+            this_.sheBeiDataShow = false
+            this.eBgRateData = { data: [], config: {}}
+            this.sheBeiHeChaData = { data: [], config: {}}
+            this.jianDingjiaoZhunSheBeiData = { data: [], config: {}}
+            this.sheBeiData = { xData: [], data: [], config: { idSelector: '' }}
+            this.weiHuSheBeiData = { data: [], config: {}}
+            this.bottomData = { xData: [], data: [], config: { idSelector: '' }}
+            this.zhuantaiEData = { xData: [], data: [], config: { idSelector: '' }}
+            this.sheBeiweiHuData = { xData: [], data: [], config: { idSelector: '' }}
+            const sql =
+    `select a.Equipments,a1.mony,b.addEquipments,c.testEquipments,c1.testNoEquipments,e.goodEquipments,f.scrapEquipments,g.limitedEquipments,h.weiHuNoEquipments,h1.weiHuEquipments  FROM  
+    (select COUNT(*) AS Equipments FROM t_sbdj where di_dian_ = '${didian}') AS a, 
+    (select zi_chan_yuan_zhi_ AS mony FROM t_sbdj where  di_dian_ = '${didian}') AS a1, 
+    (select COUNT(*) AS addEquipments  FROM t_yqsbysb WHERE bian_zhi_shi_jian LIKE '%${this_.month}%' AND shi_fou_guo_shen_ ='已完成' and  di_dian_ = '${didian}') AS b,
+    (select COUNT(*) AS testNoEquipments FROM t_jyxtxzjgyzhqrjlb WHERE bian_zhi_shi_jian LIKE '%${this_.month.slice(0, 4)}%' or create_time_ LIKE '%${this_.month.slice(0, 4)}%' and  di_dian_ = '${didian}') AS c1,    
+    (select COUNT(*) AS testEquipments FROM t_jyxtxzjgyzhqrjlb WHERE bian_zhi_shi_jian LIKE '%${this_.month.slice(0, 4)}%' and  shi_fou_guo_shen_ ='已完成' and  di_dian_ = '${didian}') AS c,  
+    (select COUNT(*) AS goodEquipments  FROM t_sbdj WHERE she_bei_zhuang_ta ='合格' and  di_dian_ = '${didian}') AS e,    
+    (select COUNT(*) AS scrapEquipments  FROM t_sbdj WHERE she_bei_zhuang_ta ='停用' OR she_bei_zhuang_ta ='暂停使用' and  di_dian_ = '${didian}') AS f,      
+    (select COUNT(*) AS limitedEquipments  FROM t_sbdj WHERE she_bei_zhuang_ta ='报废' and  di_dian_ = '${didian}') AS g,    
+    (select  COUNT(*) AS weiHuNoEquipments FROM t_mjsbwhbyjlby WHERE bian_zhi_shi_jian LIKE '%${this_.month}%' or create_time_ LIKE '%${this_.month}%' and  di_dian_ = '${didian}') AS h,  
+    (select COUNT(*) AS weiHuEquipments  FROM t_mjsbwhbyjlby WHERE bian_zhi_shi_jian LIKE '%${this_.month}%' AND shi_fou_guo_shen_ ='已完成' and  di_dian_ = '${didian}') AS h1`
+            await curdPost('sql', sql)
+                .then((res) => {
+                    const data = res.variables.data
+
+                    let zichan = this_.getAllMonyInt(data)
+                    zichan = zichan + ''
+                    if (zichan.length > 4) {
+                        zichan = zichan.substring(0, zichan.length - 4)
+                    }
+
+                    const eIntactnessRate = Number(((data[0].goodEquipments / data[0].Equipments).toFixed(2) * 100 + '').slice(0, 5))
+                    const eBadRate = Number(((100 - eIntactnessRate).toFixed(4) + '').slice(0, 4))
+                    let obj = {}
+                    obj.value = Number(((data[0].goodEquipments / data[0].Equipments).toFixed(4) * 100 + '').slice(0, 5))
+                    obj.name = '正常设备数'
+                    this_.MiddleLeftPieViewList.data.push(obj)
+                    obj = {}
+                    obj.value = Number(((data[0].scrapEquipments / data[0].Equipments).toFixed(4) * 100 + '').slice(0, 5))
+                    obj.name = '停用/报废'
+                    this_.MiddleLeftPieViewList.data.push(obj)
+                    this_.MiddleLeftPieViewList.color = ['#339933', '#FFFF66', '#FF0033']
+                    this_.MiddleLeftPieViewList.config.title = '设备各工作状态数量统计'
+                    this_.MiddleLeftPieViewList.config.idSelector = 'main2'
+                    obj = {}
+                    const result = [
+                        {
+                            title: '',
+                            children: [
+                                {
+                                    label: '设备总数',
+                                    value: data[0].Equipments,
+                                    danwei: ''
+                                },
+                                {
+                                    label: '新增数',
+                                    value: data[0].addEquipments,
+                                    danwei: ''
+                                },
+                                {
+                                    label: '正常数',
+                                    value: data[0].goodEquipments,
+                                    danwei: ''
+                                },
+                                {
+                                    label: '报废/停用数',
+                                    value: data[0].scrapEquipments,
+                                    danwei: ''
+                                }
+                            ]
+                        },
+                        {
+                            title: '',
+                            children: [
+                                {
+                                    label: '计划维护数',
+                                    value: data[0].weiHuNoEquipments,
+                                    danwei: ''
+                                },
+                                {
+                                    label: '已维护数',
+                                    value: data[0].weiHuEquipments,
+                                    danwei: ''
+                                }
+                            ]
+                        },
+                        {
+                            title: '',
+                            children: [
+                                {
+                                    label: '计划检定/校准数',
+                                    value: data[0].testNoEquipments,
+                                    danwei: ''
+                                },
+                                {
+                                    label: '已检定/校准数',
+                                    value: data[0].testEquipments,
+                                    danwei: ''
+                                }
+                            ]
+                        },
+                        {
+                            title: '',
+                            children: [
+                                {
+                                    label: '完好率',
+                                    value: eIntactnessRate,
+                                    danwei: '%'
+                                },
+                                {
+                                    label: '故障率',
+                                    value: eBadRate,
+                                    danwei: '%'
+                                },
+                                {
+                                    label: zichan.length > 4 ? '总值(万元)' : '总值(元)',
+                                    value: zichan,
+                                    danwei: ''
+                                }
+                            ]
+                        }
+                    ]
+                    // 设备数量统计
+                    // this_.sheBeiData.xData = ["设备总数","新增数","良好数","报废停用数",];
+                    this_.sheBeiData.xData = ['设备总数', '良好数']
+                    this_.sheBeiData.data.push(data[0].Equipments)
+                    // this_.sheBeiData.data.push(data[0].addEquipments);
+                    this_.sheBeiData.data.push(data[0].goodEquipments)
+                    // this_.sheBeiData.data.push(data[0].limitedEquipments);
+                    // this_.sheBeiData.data.push(data[0].scrapEquipments);
+                    this_.sheBeiData.config.title = '设备完好情况'
+                    this_.sheBeiData.config.idSelector = 'main8'
+                    this_.sheBeiDataShow = true
+                    this_.zhuantaiEData.xData = ['计划检定/校准数', '已完成检定/校准数']
+                    this_.zhuantaiEData.data.push(data[0].testNoEquipments)
+                    this_.zhuantaiEData.data.push(data[0].testEquipments)
+                    this_.zhuantaiEData.config.title = '检定/校准设备完成图'
+                    this_.zhuantaiEData.config.idSelector = 'main3'
+                    // 维护设备数柱状图
+                    this_.sheBeiweiHuData.xData = ['计划维护数', '已完成数']
+                    this_.sheBeiweiHuData.data.push(data[0].weiHuNoEquipments)
+                    this_.sheBeiweiHuData.data.push(data[0].weiHuEquipments)
+                    this_.sheBeiweiHuData.config.title = '设备维护柱状图'
+                    this_.sheBeiweiHuData.config.idSelector = 'mainWeiHuZ'
+                    let objRate = {}
+                    objRate.name = '完好率'
+                    objRate.value = eIntactnessRate
+                    this_.eBgRateData.data.push(objRate)
+                    objRate = {}
+                    objRate.value = eBadRate
+                    objRate.name = '故障率'
+                    this_.eBgRateData.data.push(objRate)
+                    this_.eBgRateData.color = ['#339933', '#FF0033']
+                    this_.eBgRateData.config.title = '设备工作状态完成率'
+                    this_.eBgRateData.config.idSelector = 'main1'
+                    // 设备数维护
+                    let objweihu = {}
+                    objweihu.name = '计划维护数'
+                    objweihu.value = data[0].weiHuNoEquipments
+                    this_.weiHuSheBeiData.data.push(objweihu)
+                    objweihu = {}
+                    objweihu.value = data[0].weiHuEquipments
+                    objweihu.name = '已维护数'
+                    this_.weiHuSheBeiData.data.push(objweihu)
+                    this_.weiHuSheBeiData.color = ['#5470c6', '#38a838']
+                    this_.weiHuSheBeiData.config.title = '设备维护完成情况'
+                    this_.weiHuSheBeiData.config.idSelector = 'mainWeiHu'
+                    // 设备数检定校准
+                    let objJianding = {}
+                    objJianding.name = '计划检定/校准数'
+                    objJianding.value = data[0].testNoEquipments
+                    this_.jianDingjiaoZhunSheBeiData.data.push(objJianding)
+                    objJianding = {}
+                    objJianding.value = data[0].testEquipments
+                    objJianding.name = '已完成数'
+                    this_.jianDingjiaoZhunSheBeiData.data.push(objJianding)
+                    this_.jianDingjiaoZhunSheBeiData.color = ['#5470c6', '#38a838']
+                    this_.jianDingjiaoZhunSheBeiData.config.title = '设备检定/校准完成情况'
+                    this_.jianDingjiaoZhunSheBeiData.config.idSelector = 'mainJianDing'
+                    objRate = {}
+                    this_.topBarData = result
+                })
+                .catch((err) => {
+                    console.log(err)
+                })
+        },
+        async getCarouselShiYonglvTable () { // 设备建档信息
+            const this_ = this
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            const sql = `select a.she_bei_shi_bie_h,a.she_bei_ming_cheng_,a.cun_fang_di_dian_,a.she_bei_zhuang_ta,b.name_ FROM t_sbdj AS a JOIN ibps_party_employee AS b ON a.guan_li_ren_ = b.ID_ where a.di_dian_ = '${didian}'`
+            let data1 = []
+            const res1 = []
+            this_.shiyonglvConfig.data = []
+            await curdPost('sql', sql)
+                .then((res) => {
+                    const result = res.variables.data
+                    result.forEach((item) => {
+                        data1 = []
+                        data1.push(item.she_bei_shi_bie_h)
+                        data1.push(item.she_bei_ming_cheng_)
+                        data1.push(item.cun_fang_di_dian_)
+                        data1.push(item.she_bei_zhuang_ta)
+                        data1.push(item.name_)
+                        this_.shiyonglvConfig.data.push(data1)
+                    })
+                })
+                .catch((err) => {
+                    console.log(err)
+                })
+            this.isup = true
+        },
+        timestampToTime (timestamp) {
+            var date = new Date(timestamp * 1000)
+            var Y = date.getFullYear() + '-'
+            var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
+            var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
+            var h = date.getHours() + ':'
+            var m = date.getMinutes() + ':'
+            var s = date.getSeconds()
+            return Y + M + D
+        },
+        async getMoreBarData () {
+            const this_ = this
+            this.moreBarData.data.source = []
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            this.moreBarData.data.dimensions = ['product', '设备总数', '良好数', '限用数', '停用数', '报废数']
+            const sql1 = `select DISTINCT(a.bian_zhi_bu_men_) ,name_,COUNT(*) AS total FROM t_sbdj AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ where b.name_ not like '%检验科%' and b.name_ not like '%综合%' and  a.di_dian_ = '${didian}' GROUP BY a.bian_zhi_bu_men_`
+            const sql2 = `select DISTINCT(a.bian_zhi_bu_men_),name_,COUNT(*) AS total  FROM t_sbdj AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE b.name_ not like '%检验科%' and b.name_ not like '%综合%' and  a.di_dian_ = '${didian}' and a.she_bei_zhuang_ta ='合格'  GROUP BY a.bian_zhi_bu_men_`
+            const sql3 = `select DISTINCT(a.bian_zhi_bu_men_),name_,COUNT(*) AS total  FROM t_sbdj AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE b.name_ not like '%检验科%' and b.name_ not like '%综合%' and  a.di_dian_ = '${didian}' and a.she_bei_zhuang_ta ='限用'  GROUP BY a.bian_zhi_bu_men_`
+            const sql4 = `select DISTINCT(a.bian_zhi_bu_men_),name_,COUNT(*) AS total  FROM t_sbdj AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE b.name_ not like '%检验科%' and b.name_ not like '%综合%' and  a.di_dian_ = '${didian}' and a.she_bei_zhuang_ta ='停用'  GROUP BY a.bian_zhi_bu_men_`
+            const sql5 = `select DISTINCT(a.bian_zhi_bu_men_),name_,COUNT(*) AS total  FROM t_sbdj AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE b.name_ not like '%检验科%' and b.name_ not like '%综合%' and  a.di_dian_ = '${didian}' and a.she_bei_zhuang_ta ='报废'  GROUP BY a.bian_zhi_bu_men_`
+            let data1, data2, data3, data4, data5
+            await Promise.all([curdPost('sql', sql1), curdPost('sql', sql2), curdPost('sql', sql3), curdPost('sql', sql4), curdPost('sql', sql5)]).then(([res1, res2, res3, res4, res5]) => {
+                if (res1.state === 200) {
+                    data1 = res1.variables.data
+                }
+                if (res2.state === 200) {
+                    data2 = res2.variables.data
+                }
+                if (res3.state === 200) {
+                    data3 = res3.variables.data
+                }
+                if (res4.state === 200) {
+                    data4 = res4.variables.data
+                }
+                if (res5.state === 200) {
+                    data5 = res5.variables.data
+                }
+            })
+            const source = []
+            data1.forEach((item, index) => {
+                source.push({
+                    product: item.name_,
+                    '设备总数': item.total,
+                    '良好数': 0,
+                    '限用数': 0,
+                    '停用数': 0,
+                    '报废数': 0
+                })
+            })
+            data2.forEach(item => {
+                source.forEach((el, index) => {
+                    if (item.name_ === el.product) {
+                        source[index]['良好数'] = item.total
+                    }
+                })
+            })
+
+            data3.forEach(item => {
+                source.forEach((el, index) => {
+                    if (item.name_ === el.product) {
+                        source[index]['限用数'] = item.total
+                    }
+                })
+            })
+            data4.forEach(item => {
+                source.forEach((el, index) => {
+                    if (item.name_ === el.product) {
+                        source[index]['停用数'] = item.total
+                    }
+                })
+            })
+            data5.forEach(item => {
+                source.forEach((el, index) => {
+                    if (item.name_ === el.product) {
+                        source[index]['报废数'] = item.total
+                    }
+                })
+            })
+
+            if (source.length === 0) {
+                this.moreBarData.data.source = [999]
+            } else {
+                this.moreBarData.data.source = source
+            }
+
+            // let allTotal = 0; let goods = 0; let deactivates = 0
+            let goods = 0; let restricts = 0; let deactivates = 0; let scraps = 0
+            source.forEach(item => {
+                // allTotal += item['设备总数']
+                goods += item['良好数']
+                restricts += item['限用数']
+                deactivates += item['停用数']
+                scraps += item['报废数']
+            })
+            // this.allSheBeiData.data[0].value = allTotal
+            // this.allSheBeiData.data[1].value = goods
+            // this.allSheBeiData.data[2].value = deactivates
+
+            // this.allSheBeiData.data[0].value = allTotal
+            this.allSheBeiData.data[0].value = goods
+            this.allSheBeiData.data[1].value = restricts
+            this.allSheBeiData.data[2].value = deactivates
+            this.allSheBeiData.data[3].value = scraps
+        },
+        async getWeihuBarData () {
+            const this_ = this
+            this.weihuBarData.data.source = []
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            // 计划数,查询设备维护计划表完成数
+            const sql1 = `select DISTINCT(a.bian_zhi_bu_men_) ,name_,COUNT(*) AS total FROM t_mjsbwhbyjlby AS a JOIN ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE a.ji_hua_shi_jian_ LIKE '%${this_.today}%' and b.name_ not like '%综合%' and b.name_ not like '%综合%' AND a.shi_fou_guo_shen_ != '已完成' AND a.di_dian_ = '${didian}' GROUP BY a.bian_zhi_bu_men_`
+            //   维护记录数
+            const sql2 = `select DISTINCT(a.bian_zhi_bu_men_) ,name_,COUNT(*) AS total FROM t_mjsbwhbyjlby AS a JOIN ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE a.ji_hua_shi_jian_ LIKE '%${this_.today}%' and b.name_ not like '%综合%' and b.name_ not like '%综合%' AND a.shi_fou_guo_shen_ = '已完成' AND a.di_dian_ = '${didian}' GROUP BY a.bian_zhi_bu_men_`
+            this.weihuBarData.data.dimensions = ['product', '待处理', '已完成']
+            let data1, data2
+            await Promise.all([curdPost('sql', sql1), curdPost('sql', sql2)]).then(([res1, res2]) => {
+                if (res1.state === 200) {
+                    data1 = res1.variables.data
+                }
+                if (res2.state === 200) {
+                    data2 = res2.variables.data
+                }
+            })
+            const source = []
+            data1.forEach((item, index) => {
+                source.push({
+                    product: item.name_,
+                    '待处理': item.total || 0,
+                    '已完成': 0
+                })
+            })
+            data2.forEach(item => {
+                let lock = true
+                if (source.length > 0) {
+                    source.forEach((el, index) => {
+                        if (item.name_ === el.product) {
+                            source[index]['完成数'] = item.total
+                            lock = false
+                        } else if (lock && index === source.length - 1) {
+                            source.push({
+                                product: item.name_,
+                                '待处理': 0,
+                                '已完成': item.total || 0
+                            })
+                        }
+                    })
+                } else {
+                    source.push({
+                        product: item.name_,
+                        '待处理': 0,
+                        '已完成': item.total || 0
+                    })
+                }
+            })
+            let allPlan = 0; let finishs = 0
+            source.forEach(item => {
+                allPlan += item['待处理']
+                finishs += item['已完成']
+            })
+            console.log(source, 'source2')
+            this.allWeihuSheBeiData.data[0].value = allPlan
+            this.allWeihuSheBeiData.data[1].value = finishs
+            this.moreBarData.data.source.forEach(item => {
+                let lock = true
+                source.forEach((el, index) => {
+                    if (item.product === el.product) {
+                        lock = false
+                    }
+                    if (item.product !== el.product && index === source.length - 1 && lock) {
+                        source.push({
+                            product: item.product,
+                            '待处理': 0,
+                            '已完成': 0
+                        })
+                    }
+                })
+            })
+            if (source.length === 0) {
+                this.weihuBarData.data.source = [999]
+            } else {
+                this.weihuBarData.data.source = source
+            }
+        },
+        async getZichanBarData () {
+            const this_ = this
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            const sql1 = `select a.bian_zhi_bu_men_,name_,a.zi_chan_yuan_zhi_ FROM t_sbdj AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE b.name_ not like '%检验科%'  and b.name_ not like '%综合%' and a.di_dian_ = '${didian}' ORDER BY a.bian_zhi_bu_men_ ASC`
+            const source = []
+            let data1
+            await Promise.all([curdPost('sql', sql1)]).then(([res1, res2]) => {
+                if (res1.state === 200) {
+                    data1 = res1.variables.data
+                }
+            })
+
+            let partyMony = []
+            let i = 0
+            data1.forEach((item, index) => {
+                let zichan = item.zi_chan_yuan_zhi_
+                if (zichan === '' || zichan === null || zichan === undefined) {
+                    zichan = 0
+                } else {
+                    if (zichan.includes('.')) {
+                        zichan = zichan.split('.')[0]
+                    }
+                    zichan = Number(zichan.replace(/\D/g, ''))// 非数字去掉
+                }
+                if (partyMony.length === 0) {
+                    partyMony = [{ party: item.name_, mony: zichan }]
+                } else {
+                    if (item.name_ === data1[index - 1].name_) {
+                        partyMony[i].mony += zichan
+                    } else {
+                        partyMony.push({ party: item.name_, mony: zichan })
+                        i++
+                    }
+                }
+            })
+            let allmony = 0
+            for (const el of partyMony) {
+                allmony += el.mony
+                el.mony = this.formatNumber(el.mony)
+                this.zichangBarData.data.push(el.mony)
+                this.zichangBarData.xData.push(el.party)
+            }
+
+            this.zichangBarData.data.unshift(this.formatNumber(allmony))
+            this.zichangBarData.xData.unshift('检验科')
+        },
+        formatNumber (num) {
+            num = Number(num)
+            if (num === 0) {
+                return num + ''
+            } else {
+                if ((num / 10000).toFixed(2) === 0) {
+                    // 小于100的保留2位
+                    return (num / 100).toFixed(4)
+                } else {
+                    // parseFloat() 去掉后面不用的0,如50.00
+                    // 大于100的保留2位
+                    return parseFloat((num / 10000).toFixed(2))
+                }
+            }
+        },
+        async getJiaozhunBarData () {
+            const this_ = this
+            this.jiaozhunBarData.data.source = []
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            const sql1 = `select DISTINCT(a.bian_zhi_bu_men_),name_,COUNT(*) AS total FROM t_mjsbjdxzjhzb AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE a.parent_id_ IN ( SELECT id_ FROM t_mjsbjdxzjh WHERE (bian_zhi_shi_jian LIKE '%${this_.month.slice(0, 4)}%' OR create_time_ LIKE '%${this_.month.slice(0, 4)}%') AND (shi_fou_guo_shen_ = '已审批' or shi_fou_guo_shen_ = '已完成')) AND a.di_dian_ = '${didian}'  and b.name_ not like '%综合%' GROUP BY a.bian_zhi_bu_men_`
+            const sql2 = `select DISTINCT(a.bian_zhi_bu_men_),name_,COUNT(*) AS total FROM t_mjsbjdxzjhzb AS a JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE a.parent_id_ IN ( SELECT id_ FROM t_mjsbjdxzjh WHERE (bian_zhi_shi_jian LIKE '%${this_.month.slice(0, 4)}%' OR create_time_ LIKE '%${this_.month.slice(0, 4)}%') AND shi_fou_guo_shen_ = '已完成') AND a.di_dian_ = '${didian}' and b.name_ not like '%综合%' GROUP BY a.bian_zhi_bu_men_`
+            this.jiaozhunBarData.data.dimensions = ['product', '计划数', '完成数']
+            let data1, data2
+            await Promise.all([curdPost('sql', sql1), curdPost('sql', sql2)]).then(([res1, res2]) => {
+                if (res1.state === 200) {
+                    data1 = res1.variables.data
+                }
+                if (res2.state === 200) {
+                    data2 = res2.variables.data
+                }
+            })
+            const source = []
+            data1.forEach((item, index) => {
+                source.push({
+                    product: item.name_,
+                    '计划数': item.total,
+                    '完成数': 0
+                })
+            })
+            data2.forEach(item => {
+                let lock = true
+                source.forEach((el, index) => {
+                    if (item.name_ === el.product) {
+                        source[index]['完成数'] = item.total
+                        lock = false
+                    }
+                    if (lock && index === source.length - 1) {
+                        source.push({
+                            product: item.name_,
+                            '计划数': 0,
+                            '完成数': item.total
+                        })
+                    }
+                })
+            })
+            let allPlan = 0; let finishs = 0
+            source.forEach(item => {
+                allPlan += item['计划数']
+                finishs += item['完成数']
+            })
+            this.allJiaozhunSheBeiData.data[0].value = allPlan
+            this.allJiaozhunSheBeiData.data[1].value = finishs
+            this.moreBarData.data.source.forEach(item => {
+                let lock = true
+                source.forEach((el, index) => {
+                    if (item.product === el.product) {
+                        lock = false
+                    }
+                    if (item.product !== el.product && index === source.length - 1 && lock) {
+                        source.push({
+                            product: item.product,
+                            '计划数': 0,
+                            '完成数': 0
+                        })
+                    }
+                })
+            })
+            if (source.length === 0) {
+                this.jiaozhunBarData.data.source = [999]
+            } else {
+                this.jiaozhunBarData.data.source = source
+            }
+        },
+        async getBaofeiBarData () {
+            this.config = {
+                header: ['设备名称', '编号', '状态'],
+                columnWidth: ['220', '110', '70'],
+                rowNum: 6,
+                data: []
+            }
+            const this_ = this
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            // const sql =`select * from t_sbdj where (she_bei_zhuang_ta ='停用' or she_bei_zhuang_ta ='报废' or she_bei_zhuang_ta ='报废/停用') and  di_dian_ = '${didian}'`;
+            // const sql = `select a.she_bei_ming_cheng_, a.she_bei_shi_bie_h,a.she_bei_zhuang_ta,b.name_ FROM t_sbdj AS a  JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE she_bei_zhuang_ta ='停用' and b.name_ not like '%综合%' AND a.di_dian_ = '${didian}' ORDER BY a.bian_zhi_bu_men_ DESC`
+            const sql = `select a.she_bei_ming_cheng_, a.she_bei_shi_bie_h,a.she_bei_zhuang_ta,b.name_ FROM t_sbdj AS a  JOIN  ibps_party_position AS b ON a.bian_zhi_bu_men_ = b.id_ WHERE she_bei_zhuang_ta ='停用' or she_bei_zhuang_ta ='报废' and b.name_ not like '%综合%' AND a.di_dian_ = '${didian}' ORDER BY a.bian_zhi_bu_men_ DESC`
+            let data1 = []
+            await curdPost('sql', sql)
+                .then((res) => {
+                    this_.BaofeiBarData.data = []
+                    const result = res.variables.data
+                    if (result.length === 0) {
+                        this_.BaofeiBarData.data = [999]
+                    }
+                    result.forEach((item) => {
+                        data1 = []
+                        data1.push(item.name_)
+                        data1.push(item.she_bei_ming_cheng_)
+                        data1.push(item.she_bei_shi_bie_h)
+                        data1.push(item.she_bei_zhuang_ta)
+                        this_.BaofeiBarData.data.push(data1)
+                    })
+                })
+                .catch((err) => {
+                    console.log(err)
+                })
+        },
+        getAllMonyInt (monyArr) {
+            let mony = 0
+            let filterMony
+
+            monyArr.forEach((item) => {
+                if (item.mony && item.mony.includes('元')) {
+                    filterMony = item.mony.slice(0, item.mony.length - 1) * 1
+                    mony += filterMony
+                }
+            })
+
+            return mony
+        },
+        async getEnTypeData () {
+            const this_ = this
+            let didian = ''
+            this_.$store.getters.level.second ? didian = this_.$store.getters.level.second : didian = this_.$store.getters.level.first
+            didian.includes(',') ? didian = didian.split(',')[0] : ''
+            const sql = `select DISTINCT(she_bei_lei_xing_),COUNT(*) AS total  FROM t_sbdj where di_dian_ = '${didian}' GROUP BY she_bei_lei_xing_`
+            let data = await curdPost('sql', sql)
+            data = data.variables.data
+
+            const dataTypes = [
+                { she_bei_lei_xing_: '检验系统', total: '0' },
+                { she_bei_lei_xing_: '通用设备', total: '0' },
+                { she_bei_lei_xing_: '软件', total: '0' },
+                { she_bei_lei_xing_: '信息系统', total: '0' }
+            ]
+            dataTypes.forEach(item => {
+                data.forEach(el => {
+                    if (item.she_bei_lei_xing_ === el.she_bei_lei_xing_) {
+                        item.total = el.total
+                    }
+                })
+            })
+
+            let objJianding = {}
+            this_.enTypeData.data = []
+            // dataTypes.forEach(item=>{
+            for (const item of dataTypes) {
+                objJianding = {}
+                objJianding.name = item.she_bei_lei_xing_
+                objJianding.value = item.total
+                this_.enTypeData.data.push(objJianding)
+            }
+            this_.enTypeData.color = ['#339933', '#3366CC', '#FF9933', '#FFFF00']
+            this_.enTypeData.config.title = '检验科各型设备分布情况'
+            this_.enTypeData.config.idSelector = 'enTypeId'
+        }
+    }
+}
 </script>
 <style lang="scss" scoped>
+ ::v-deep.el-input--small .el-input__inner {
+      background-color: rgb(7 16 43 / 50%);
+      color: white;
+      border: none;
+    }
 .content {
+width: 100%;
+height: 100%;
+background-color: #030409;
+position: absolute;
+color: #fff;
+z-index: 999;
+#dv-full-screen-container {
+  background-image: url("~@/assets/images/screen/bg.png");
+  background-size: 100% 100%;
+  box-shadow: 0 0 3px blue;
+  display: flex;
+  flex-direction: column;
+}
+.main-content {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+}
+.block-left-right-content {
+  flex: 1;
+  display: flex;
+  margin-top: 0.8%;
+}
+.block-top-bottom-content {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+  box-sizing: border-box;
+  padding-left: 0.8%;
+}
+.block-top-content {
+  height: 55%;
+  display: flex;
+  flex-grow: 0;
+  box-sizing: border-box;
+  padding-bottom: 0.8%;
+}
+.header {
+  position: relative;
   width: 100%;
-  height: 100%;
-  background-color: #030409;
-  position: absolute;
-  color: #fff;
-  z-index: 999;
-  #dv-full-screen-container {
-    background-image: url("./img/bg.png");
-    background-size: 100% 100%;
-    box-shadow: 0 0 3px blue;
-    display: flex;
-    flex-direction: column;
+  height: 10%;
+  display: flex;
+  justify-content: space-between;
+  flex-shrink: 0;
+  box-sizing: border-box;
+  overflow: hidden;
+  .left,
+  .right {
+    width: 25%;
+    height: 60px;
   }
-  .main-content {
-    flex: 1;
-    display: flex;
-    flex-direction: column;
+  .center {
+    width: 40%;
+    height: 60px;
+    margin-top: 30px;
   }
-
-  .block-left-right-content {
-    flex: 1;
-    display: flex;
-    margin-top: 0.8%;
+  .title {
+    position: absolute;
+    font-size: 30px;
+    font-weight: bold;
+    left: 50%;
+    top: 15px;
+    transform: translateX(-50%);
   }
-  .block-top-bottom-content {
+  .time,.back {
+    width: 8%;
+    cursor: pointer;
+    height: 2.825rem;
+    line-height: 2.825rem;
+    text-align: center;
+    margin-top: 2.5%;
     flex: 1;
-    display: flex;
-    flex-direction: column;
-    box-sizing: border-box;
-    padding-left: 0.8%;
+    position: absolute;
+    color: #ffffff;
   }
-  .block-top-content {
-    height: 55%;
+  .time {
     display: flex;
-    flex-grow: 0;
-    box-sizing: border-box;
-    padding-bottom: 0.8%;
+    justify-content: flex-end;
+    width: 154px;
+    right: 75%;
+
   }
+  .back {
+    left: 75%;
+  }
+}
 
-  .header {
-    position: relative;
-    width: 100%;
-    height: 10%;
-    display: flex;
-    justify-content: space-between;
-    flex-shrink: 0;
+.topCard {
+  height: 30%;
+  padding:14px 6px 0px 6px;
+  // margin-top: 10px;
+  box-sizing: border-box;
+  overflow: hidden;
+}
+.middleCard {
+  height: 31%;
+  overflow: hidden;
+  box-sizing: border-box;
+}
+.bottomCard {
+  height: 31%;
+  overflow: hidden;
+  box-sizing: border-box;
+  padding:0px 6px 0px 6px;
+}
+.topCard,
+.middleCard,
+.bottomCard {
+  width: 98%;
+  margin:0 auto ;
+  div {
+    display: inline-block;
+  }
+  .middleCardLeft {
+    // width: 28%;
+    height: 100%;
     box-sizing: border-box;
     overflow: hidden;
-    .left,
-    .right {
-      width: 25%;
-      height: 60px;
-    }
-    .center {
-      width: 40%;
-      height: 60px;
-      margin-top: 30px;
-    }
-    .title {
-      position: absolute;
-      font-size: 30px;
-      font-weight: bold;
-      left: 50%;
-      top: 15px;
-      transform: translateX(-50%);
-    }
-    .time,
-    .back {
-      width: 8%;
-      cursor: pointer;
-      height: 2.825rem;
-      line-height: 2.825rem;
-      text-align: center;
-      margin-top: 2.5%;
-      flex: 1;
-      position: absolute;
-      color: #ffffff;
-    }
-    .time {
-      display: flex;
-      justify-content: flex-end;
-      width: 20%;
-      right: 75%;
-    }
-    .back {
-      left: 75%;
-    }
   }
-  .topCard {
-    width: 100%;
-    height: 18%;
+  .middleCardRight {
+    // width: 25%;
+    height: 100%;
     box-sizing: border-box;
     overflow: hidden;
   }
-  .bottomCard {
-    height: 36%;
-    overflow: hidden;
+  .middleCardRight1 {
+    // width: 43%;
+    height: 100%;
     box-sizing: border-box;
+    overflow: hidden;
   }
-  .middleCard {
-    height: 38%;
+}
+.bottomCard {
+  display: flex;
+  div {
+    display: inline-block;
+  }
+  .bottomCardLeft0,
+  .bottomCardLeft {
+    height: 100%;
     overflow: hidden;
     box-sizing: border-box;
+    width: 100%;
   }
-  .middleCard,
-  .bottomCard {
-    width: 96%;
-    margin-left: 30px;
-    // margin-top: 30px;
-    div {
-      display: inline-block;
-    }
-    .middleCardLeft {
-      width: 28%;
-      height: 100%;
-      box-sizing: border-box;
-      overflow: hidden;
-    }
-    // .middleCardCenter{
-    //   width: 25%;
-    //   height: 100%;
-    //   box-sizing: border-box;
-    //   overflow: hidden;
-    // }
-    .middleCardRight {
-      width: 25%;
-      height: 100%;
-      box-sizing: border-box;
-      overflow: hidden;
-    }
-    .middleCardRight1 {
-      width: 43%;
-      height: 100%;
-      box-sizing: border-box;
-      overflow: hidden;
-    }
-    padding: 2px;
+  .bottomCardLeft {
+    height: 100%;
+    overflow: hidden;
+    box-sizing: border-box;
+    width: 100%;
   }
-  .bottomCard {
-    display: flex;
-    div {
-      display: inline-block;
-    }
-    .bottomCardLeft0,
-    .bottomCardLeft {
-      height: 100%;
-      overflow: hidden;
-      box-sizing: border-box;
-      width: 100%;
-    }
-    .bottomCardLeft {
-      height: 100%;
-      overflow: hidden;
-      box-sizing: border-box;
-      width: 100%;
-    }
-    .bottomCardright {
-      height: 100%;
-      overflow: hidden;
-      box-sizing: border-box;
-      width: 100%;
-    }
+  .bottomCardright {
+    height: 100%;
+    overflow: hidden;
+    box-sizing: border-box;
+    width: 100%;
   }
 }
+}
 .dv-decoration-10 {
-  width: 95%;
-  margin: 7px 2% 0;
-  height: 5px;
+width: 96%;
+margin: 7px 2% 0px;
+height: 5px;
 }
 </style>

+ 1 - 1
src/views/system/jbdHome/yangPinShuJu/AnnualStatus.vue

@@ -21,7 +21,7 @@
 
 <script>
 import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 export default {
   data(){
     return{

+ 1 - 1
src/views/system/jbdHome/yangPinShuJu/EntrustNumber.vue

@@ -21,7 +21,7 @@
 
 <script>
 import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 
 import { resolve } from 'path';
 export default {

+ 1 - 1
src/views/system/jbdHome/yangPinShuJu/EntrustType.vue

@@ -11,7 +11,7 @@
 
 <script>
 import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 
 export default {
  data(){

+ 1 - 1
src/views/system/jbdHome/yangPinShuJu/MonthlyNumber.vue

@@ -23,7 +23,7 @@
  
  <script>
  import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
- import echarts from 'echarts'
+ import * as echarts from 'echarts'
  export default {
   props:{
     NowTime1:{

+ 1 - 1
src/views/system/jbdHome/yangPinShuJu/MonthlyStatus.vue

@@ -21,7 +21,7 @@
 
 <script>
 import curdPost from '@/business/platform/form/utils/custom/joinCURD.js'
-import echarts from 'echarts'
+import * as echarts from 'echarts'
 export default {
   props:{
     NowTime1:{