فهرست منبع

task-3447 新设备看板调整

cyy 1 سال پیش
والد
کامیت
ac4e92bce3

+ 5 - 5
src/views/business/deviceManagement/components/CarouselTabl.vue

@@ -2,7 +2,7 @@
     <div style="width: 98%;height: 98%;overflow: hidden;padding: 1%;">
         <div class="title" style="vertical-align: top; height: 10%;font-size: 24px;color: white;font-weight:600;">{{ title }}</div>
         <div v-show="showChart" style="width:100%;height: 87%;display: flex;justify-content: center;">
-            <dv-scroll-board :key="scrollBoardKey" :config="configData" style="width:100%;height:100%" />
+            <dv-scroll-board :key="scrollBoardKey" :config="configData" style="width:100%;height:100%;font-size: 12px" />
         </div>
         <div v-show="!showChart" :class="$style.nullShow">暂无数据</div>
     </div>
@@ -12,7 +12,7 @@
 export default {
     props: {
         value: {
-            type: Object,
+            type: Object
         },
         title: {
             type: String,
@@ -29,15 +29,15 @@ export default {
     watch: {
         value: {
             handler (newVal, oldVal) {
-                if(newVal.data.length>0){
+                if (newVal.data.length > 0) {
                     this.configData = { ...newVal }
                     this.scrollBoardKey++
                     this.showChart = true
-                }else{
+                } else {
                     this.shoshowChartw = false
                 }
             },
-            deep: true,
+            deep: true
             // immediate: true
         }
     },

+ 213 - 197
src/views/business/deviceManagement/components/barCharto.vue

@@ -1,225 +1,241 @@
 <template>
-  <div :class="$style.statisticsPage" :style="{width:width,height:height}">
-      <div v-show="show" :id="'staff'+id" :style="{height:'100%'}"/>
-      <div v-show="!show" :style="{height:'100%'}">
-        <div style="height:8%;font-size:24px;font-weight: 600;"> {{ title }} </div>
-        <div :class="$style.nullShow">暂无数据</div>
-      </div>
-  </div>
+    <div :class="$style.statisticsPage" :style="{width:width,height:height}">
+        <div v-show="show" :id="'staff'+id" :style="{height:'100%'}" />
+        <div v-show="!show" :style="{height:'100%'}">
+            <div style="height:8%;font-size:24px;font-weight: 600;"> {{ title }} </div>
+            <div :class="$style.nullShow">暂无数据</div>
+        </div>
+    </div>
 </template>
 
 <script>
-  import * as echarts from 'echarts'
-  export default {
+import * as echarts from 'echarts'
+export default {
     components: {
     },
     props: {
-      value: {
-        type: Array,
-      },
-      width:{
-        type:String,
-        default:"100%"
-      },
-      height:{
-        type:String,
-        default: "100%"
-      },
-      id:{
-        type:Number,
-        default:0
-      },
-      click:{
-        type:String,
-        default:'true'
-      },
-      colorw:{
-        type:String,
-        default:'#fff'
-      },
-      title:{
-        type: String
-      },
-      data: {
-        type: Array,
-      },
-      lineTF: {
-        type: Boolean,
-        default: false
-      },
-      colorIndex: {
-        type: Number,
-        default: 0
-      }
-    },
-    data () {
-      return {
-        correspondence: {
-          numO: '1年以下',
-          numOT: '1-3年',
-          numTF: '3-5年',
-          numF: '5年以上',
-          // numAll: '设备总数',
-          numR: '良好数',
-          numS: '停用数',
-          numP: '待处理',
-          numC: '已完成',
-          numJ: '计划数',
-          numW: '完成数'
+        value: {
+            type: Array
         },
-        correspondenceUn:{
-          rate: '完成率'
+        width: {
+            type: String,
+            default: '100%'
         },
-        // color: ['rgb(78,203,115)', 'rgb(251,211,55)', 'rgb(16,142,233)']
-        color: ['#5470c6', '#339933', '#FF0033', 'rgb(251,211,55)'],
-        show: false
-      }
+        height: {
+            type: String,
+            default: '100%'
+        },
+        id: {
+            type: Number,
+            default: 0
+        },
+        click: {
+            type: String,
+            default: 'true'
+        },
+        colorw: {
+            type: String,
+            default: '#fff'
+        },
+        title: {
+            type: String
+        },
+        data: {
+            type: Array
+        },
+        lineTF: {
+            type: Boolean,
+            default: false
+        },
+        colorIndex: {
+            type: Number,
+            default: 0
+        },
+        stack: {
+            type: Boolean,
+            default: false
+        }
+    },
+    data () {
+        return {
+            correspondence: {
+                numO: '1年以下',
+                numOT: '1-3年',
+                numTF: '3-5年',
+                numF: '5年以上',
+                // numAll: '设备总数',
+                numP: '待处理',
+                numC: '已完成',
+                numJ: '计划数',
+                numW: '完成数'
+            },
+            correspondenceUn: {
+                rate: '完成率'
+            },
+            correspondenceCondition: {
+                // numAll: '设备总数',
+                numLimit: '限用',
+                numR: '使用',
+                numScrap: '报废',
+                numS: '停用'
+
+            },
+            dynamicMappingCondition: {
+                '限用': '限用数',
+                '使用': '使用数',
+                '报废': '报废数',
+                '停用': '停用数'
+            },
+            // color: ['rgb(78,203,115)', 'rgb(251,211,55)', 'rgb(16,142,233)']
+            color: ['#5470c6', '#339933', '#FF0033', 'rgb(251,211,55)'],
+            show: false
+        }
     },
     watch: {
         value: {
             handler (newVal) {
-                if(newVal.length>0){
-                  this.show = true
-                  setTimeout(() => {
-                    this.drawLine()
-                  }, 100)
-                }else{
-                  this.show = false
-                }  
+                if (newVal.length > 0) {
+                    this.show = true
+                    setTimeout(() => {
+                        this.drawLine()
+                    }, 100)
+                } else {
+                    this.show = false
+                }
             },
             deep: true
         }
     },
-    mounted(){
-      // setTimeout(() => {
-      //   this.drawLine()
-      // }, 100);
+    mounted () {
+        // setTimeout(() => {
+        //   this.drawLine()
+        // }, 100);
     },
     methods: {
-      drawLine(){
-        const that = this
-        let xData = []
-        for (const key in this.value[0]) {
-          if (this.correspondence.hasOwnProperty(key) || key === 'org') {
-            xData.push(key)
-          }
-        }
-        let serArr = []
-        for (let i = 1; i < xData.length; i++) {
-          let ser = {
-            name: '',
-            type: 'bar',
-            barWidth: xData.length>3?10:20,
-            color: ''
-          }
-          ser.name = xData[i]
-          ser.color = this.color[i-1+this.colorIndex]
-          serArr.push(ser)
-        }
-        if(this.lineTF){
-          serArr.push({
-            name: 'rate',
-            type: 'line',
-            // barWidth: xData.length>3?10:20,
-            color: 'rgb(251,211,55)'
-          })
-        }
-        
-        let staff = echarts.init(document.getElementById('staff'+this.id))
-        let option
-
-        option = {
-          title: {
-            text: this.title,
-            left: 'left',
-            textStyle:{ fontSize:24,color: this.colorw }
-          },
-          legend: {
-            left: 'left',
-            top: '40',
-            textStyle: {
-              color: '#fff'
-            },
-            formatter: function (name) {
-              return that.correspondence[name] || that.correspondenceUn[name]
+        drawLine () {
+            const that = this
+            const xData = []
+            for (const key in this.value[0]) {
+                if (this.correspondenceCondition.hasOwnProperty(key) || this.correspondence.hasOwnProperty(key) || key === 'org') {
+                    xData.push(key)
+                }
             }
-          },
-          grid: { // 让图表占满容器
-              top: '80px',
-              left: '40px',
-              right: '20px',
-              bottom: '40px'
-          },
-          tooltip: {
-            trigger: 'axis',
-            axisPointer: {
-              type: 'cross',
-              crossStyle: {
-                color: '#999'
-              }
-            },
-            formatter: function (params) {
-              let str = `${that.value[params[0].dataIndex].org}`
-              params.forEach(item =>{
-                let nameNum = ''
-                nameNum = that.correspondence[item.seriesName] || that.correspondenceUn[item.seriesName]
-                str += `<br /> ${item.marker} ${nameNum}  ${item.data[item.seriesName]}`
-              })
-              return str
+            const serArr = []
+            for (let i = 1; i < xData.length; i++) {
+                const ser = {
+                    name: '',
+                    type: 'bar',
+                    barWidth: xData.length > 3 ? 30 : 20,
+                    color: ''
+                }
+                if (this.stack) {
+                    ser['stack'] = 'Ad'
+                }
+                ser.name = xData[i]
+                ser.color = this.color[i - 1 + this.colorIndex]
+                serArr.push(ser)
+            }
+            if (this.lineTF) {
+                serArr.push({
+                    name: 'rate',
+                    type: 'line',
+                    // barWidth: xData.length>3?10:20,
+                    color: 'rgb(251,211,55)'
+                })
             }
-          },
-          dataset: {
-            dimensions: xData,
-            source: this.value
-          },
-          xAxis: {
-            type: 'category',
-            axisLabel: {
-              color: '#fff',
-              interval: 0,
-              rotate: 20,
-              margin: 15,
-              formatter: function (params) {
-                let str = ""
-                let paramsLen = params.length
-                let len = 5
-                let rowNumber = Math.ceil(paramsLen / len)
-                if (paramsLen > len) {
-                  for (let i = 0; i < rowNumber; i++) {
-                    let temp = ""
-                    let start = i * len
-                    let end = start + len
-                    if (i == rowNumber - 1) {
-                      temp = params.substring(start, paramsLen)
-                    } else {
-                      temp = params.substring(start, end) + "\n"
+
+            const staff = echarts.init(document.getElementById('staff' + this.id))
+            const option = {
+                title: {
+                    text: this.title,
+                    left: 'left',
+                    textStyle: { fontSize: 24, color: this.colorw }
+                },
+                legend: {
+                    left: 'left',
+                    top: '40',
+                    textStyle: {
+                        color: '#fff'
+                    },
+                    formatter: function (name) {
+                        return that.correspondence[name] || that.correspondenceUn[name] || that.dynamicMappingCondition[that.correspondenceCondition[name]]
                     }
-                    str += temp
-                  }
-                } else {
-                  str = params
-                }
-                return str
-              }
+                },
+                grid: { // 让图表占满容器
+                    top: '80px',
+                    left: '40px',
+                    right: '20px',
+                    bottom: '40px'
+                },
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {
+                        type: 'cross',
+                        crossStyle: {
+                            color: '#999'
+                        }
+                    },
+                    formatter: function (params) {
+                        let str = `${that.value[params[0].dataIndex].org}`
+                        params.forEach(item => {
+                            let nameNum = ''
+                            nameNum = that.correspondence[item.seriesName] || that.correspondenceUn[item.seriesName] || that.dynamicMappingCondition[that.correspondenceCondition[item.seriesName]]
+                            str += `<br /> ${item.marker} ${nameNum}  ${item.data[item.seriesName]}`
+                        })
+                        return str
+                    }
+                },
+                dataset: {
+                    dimensions: xData,
+                    source: this.value
+                },
+                xAxis: {
+                    type: 'category',
+                    axisLabel: {
+                        color: '#fff',
+                        interval: 0,
+                        rotate: 20,
+                        margin: 15,
+                        formatter: function (params) {
+                            let str = ''
+                            const paramsLen = params.length
+                            const len = 5
+                            const rowNumber = Math.ceil(paramsLen / len)
+                            if (paramsLen > len) {
+                                for (let i = 0; i < rowNumber; i++) {
+                                    let temp = ''
+                                    const start = i * len
+                                    const end = start + len
+                                    if (i == rowNumber - 1) {
+                                        temp = params.substring(start, paramsLen)
+                                    } else {
+                                        temp = params.substring(start, end) + '\n'
+                                    }
+                                    str += temp
+                                }
+                            } else {
+                                str = params
+                            }
+                            return str
+                        }
+                    }
+                },
+                yAxis: {
+                    axisLabel: {
+                        color: '#fff',
+                        min: 0,
+                        formatter: function (value) {
+                            return (value + '').indexOf('.') === -1 ? value : ''
+                        }
+                    }
+                    // interval: interval
+                },
+                series: serArr
             }
-          },
-          yAxis: {
-            axisLabel: {
-              color: '#fff',
-              min:0,
-              formatter: function(value) {
-                  console.log(value)
-                  return (value+'').indexOf('.')===-1?value: ''
-              }
-            },
-            // interval: interval
-          },
-          series: serArr
+            option && staff.setOption(option)
         }
-       option && staff.setOption(option);
-      },
     }
-  }
+}
 </script>
 <style lang="scss" module>
   /* #zlmbPie:hover{

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 9
src/views/business/deviceManagement/components/entirety.vue


+ 75 - 75
src/views/business/deviceManagement/constants/simulated.js

@@ -154,111 +154,111 @@ export const verificationData = [
 ]
 export const scrapData = [
     [
-        "微生物组",
-        "游标卡尺",
-        "JYK-1690",
-        "停用"
+        '微生物组',
+        '游标卡尺',
+        'JYK-1690',
+        '停用'
     ],
     [
-        "微生物组",
-        "生物安全柜",
-        "JYK-1688",
-        "停用"
+        '微生物组',
+        '生物安全柜',
+        'JYK-1688',
+        '停用'
     ],
     [
-        "微生物组",
-        "医用离心机",
-        "JYK-1682",
-        "停用"
+        '微生物组',
+        '医用离心机',
+        'JYK-1682',
+        '停用'
     ],
     [
-        "微生物组",
-        "生物安全柜",
-        "JYK-1689",
-        "停用"
+        '微生物组',
+        '生物安全柜',
+        'JYK-1689',
+        '停用'
     ],
     [
-        "免疫组",
-        "医用离心机",
-        "JYK-1692",
-        "停用"
+        '免疫组',
+        '医用离心机',
+        'JYK-1692',
+        '停用'
     ],
     [
-        "免疫组",
-        "数显混匀器",
-        "JYK-1691",
-        "停用"
+        '免疫组',
+        '数显混匀器',
+        'JYK-1691',
+        '停用'
     ],
     [
-        "生化组",
-        "笔式电导率测定仪",
-        "JYK-1679",
-        "停用"
+        '生化组',
+        '笔式电导率测定仪',
+        'JYK-1679',
+        '停用'
     ],
     [
-        "生化组",
-        "Beckman Coulter IMMAGE 800特定蛋白分析仪",
-        "JYK-1594",
-        "停用"
+        '生化组',
+        'Beckman Coulter IMMAGE 800特定蛋白分析仪',
+        'JYK-1594',
+        '停用'
     ],
     [
-        "临检组",
-        "显微镜",
-        "JYK-0453",
-        "停用"
+        '临检组',
+        '显微镜',
+        'JYK-0453',
+        '停用'
     ],
     [
-        "临检组",
-        "自动染色仪",
-        "JYK-0447",
-        "停用"
+        '临检组',
+        '自动染色仪',
+        'JYK-0447',
+        '停用'
     ],
     [
-        "临检组",
-        "检验分析用纯水设备",
-        "JYK-1663",
-        "停用"
+        '临检组',
+        '检验分析用纯水设备',
+        'JYK-1663',
+        '停用'
     ],
     [
-        "临检组",
-        "超纯水机",
-        "JYK-0456",
-        "停用"
+        '临检组',
+        '超纯水机',
+        'JYK-0456',
+        '停用'
     ],
     [
-        "临检组",
-        "干式荧光免疫分析仪",
-        "JYK-0434",
-        "停用"
+        '临检组',
+        '干式荧光免疫分析仪',
+        'JYK-0434',
+        '停用'
     ],
     [
-        "临检组",
-        "全自动血细胞分析仪",
-        "JYK-0420",
-        "停用"
+        '临检组',
+        '全自动血细胞分析仪',
+        'JYK-0420',
+        '停用'
     ],
     [
-        "临检组",
-        "尿液分析仪",
-        "JYK-0449",
-        "停用"
+        '临检组',
+        '尿液分析仪',
+        'JYK-0449',
+        '停用'
     ]
 ]
 export const entiretyData = {
-    totality:{
+    totality: {
         sum: 50,
         month: {
             add: 10,
             outService: 10,
             scrap: 10
-        },
+        }
         // year: {
         //     add: 10,
         //     outService: 10,
         //     scrap: 10
         // }
     },
-    calibrate:{
+    calibrate: {
         sum: 50,
         month: {
             calibrateNum: 10,
@@ -268,18 +268,18 @@ export const entiretyData = {
             calibrateNum: 10,
             outService: 10
         }
-    },
-    upkeep:{
-        sum: 50,
-        month: {
-            upkeep: 10,
-            unUpkeep: 10
-        },
-        year: {
-            upkeep: 10,
-            unUpkeep: 10
-        }
     }
+    // upkeep: {
+    //     sum: 50,
+    //     month: {
+    //         upkeep: 10,
+    //         unUpkeep: 10
+    //     },
+    //     year: {
+    //         upkeep: 10,
+    //         unUpkeep: 10
+    //     }
+    // }
 }
 export default {
     distributionDataObj,
@@ -290,4 +290,4 @@ export default {
     verificationData,
     scrapData,
     entiretyData
-}
+}

+ 63 - 60
src/views/business/deviceManagement/index.vue

@@ -15,40 +15,40 @@
             <dv-border-box-1>
                 <div class="vessel">
                     <div class="area">
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:31.66%;">
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:31.66%;">
                             <middleCard v-if="mergeData[0].numData.length>0" v-model="mergeData[0].numData" :title="mergeData[0].title" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                         <dv-decoration-2 :key="`line1`" :dur="6" style="width:100%;height:2.5%;" />
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:31.66%;">
-                            <pie-chart v-if="mergeData[1].numData.length>0" :title="mergeData[1].title" v-model="mergeData[1].numData" :width="'98%'" :height="'98%'" :id="1"/>
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:31.66%;">
+                            <pie-chart v-if="mergeData[1].numData.length>0" :id="1" v-model="mergeData[1].numData" :title="mergeData[1].title" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                         <dv-decoration-2 :key="`line2`" :dur="6" style="width:100%;height:2.5%;" />
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:31.66%;">
-                            <bar-chart v-if="mergeData[2].numData.length>0" :title="mergeData[2].title" v-model="mergeData[2].numData" :width="'98%'" :height="'98%'" :id="1" />
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:31.66%;">
+                            <bar-chart v-if="mergeData[2].numData.length>0" :id="1" v-model="mergeData[2].numData" :title="mergeData[2].title" :stack="true" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                     </div>
                     <dv-decoration-2 :key="`line3`" :reverse="true" :dur="6" style="width:1%;height:100%;" />
                     <div class="area midArea">
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:41.5%;">
-                            <entirety :title="mergeData[7].title" v-model="mergeData[7].numData" :width="'98%'" :height="'98%'"/>
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:41.5%;">
+                            <entirety v-model="mergeData[7].numData" :title="mergeData[7].title" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                         <dv-decoration-2 :key="`line5`" :dur="6" style="width:100%;height:2.5%;" />
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:56.18%;">
-                            <bar-chart v-if="mergeData[3].numData.length>0" :title="mergeData[3].title" v-model="mergeData[3].numData" :colorIndex="1" :width="'98%'" :height="'98%'" :id="2" />
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:56.18%;">
+                            <CarouselTabl v-if="mergeData[6].numData.data.length>0" v-model="mergeData[6].numData" :title="mergeData[6].title" />
                         </dv-border-box-7>
                     </div>
                     <dv-decoration-2 :key="`line4`" :reverse="true" :dur="6" style="width:1%;height:100%;" />
                     <div class="area">
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:31.66%;">
-                            <bar-chart v-if="mergeData[4].numData.length>0" :title="mergeData[4].title" v-model="mergeData[4].numData" :lineTF="true" :width="'98%'" :height="'98%'" :id="3" />
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:31.66%;">
+                            <bar-chart v-if="mergeData[4].numData.length>0" :id="3" v-model="mergeData[4].numData" :title="mergeData[4].title" :line-t-f="true" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                         <dv-decoration-2 :key="`6`" :dur="6" style="width:100%;height:2.5%;" />
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:31.66%;">
-                            <bar-chart v-if="mergeData[5].numData.length>0" :title="mergeData[5].title" v-model="mergeData[5].numData" :width="'98%'" :height="'98%'" :id="4" />
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:31.66%;">
+                            <bar-chart v-if="mergeData[5].numData.length>0" :id="4" v-model="mergeData[5].numData" :title="mergeData[5].title" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                         <dv-decoration-2 :key="`line7`" :dur="6" style="width:100%;height:2.5%;" />
-                        <dv-border-box-7 :color="dvColor" :backgroundColor="dvBackColor" style="width:100%;height:31.66%;">
-                            <CarouselTabl v-if="mergeData[6].numData.data.length>0" :title="mergeData[6].title" v-model="mergeData[6].numData"/> 
+                        <dv-border-box-7 :color="dvColor" :background-color="dvBackColor" style="width:100%;height:31.66%;">
+                            <bar-chart v-if="mergeData[3].numData.length>0" :id="2" v-model="mergeData[3].numData" :title="mergeData[3].title" :stack="true" :color-index="0" :width="'98%'" :height="'98%'" />
                         </dv-border-box-7>
                     </div>
                 </div>
@@ -66,12 +66,12 @@ export default {
         PieChart: () => import('./components/pieChart.vue'),
         middleCard: () => import('./components/getPieView'),
         CarouselTabl: () => import('./components/CarouselTabl'),
-        entirety: () => import('./components/entirety'),
+        entirety: () => import('./components/entirety')
     },
     data () {
         const { deptList = [] } = this.$store.getters || {}
-        let chooseDept = deptList.filter(e => e.depth == 4)
-        chooseDept.unshift({positionId: " ",positionName: "全科室"})
+        const chooseDept = deptList.filter(e => e.depth == 4)
+        chooseDept.unshift({ positionId: ' ', positionName: '全科室' })
         return {
             deptList,
             chooseDept,
@@ -80,32 +80,32 @@ export default {
             title: '设备管理看板',
             fontSize: 18,
             // show: true,
-            hoverClassAdd:'w',
+            hoverClassAdd: 'w',
             dvColor: ['rgb(22,47,98)', 'rgba(116, 142, 194, 1)'],
             dvBackColor: 'rgba(6, 30, 93, 0)',
-            mergeData:[
+            mergeData: [
                 {
-                    title: '检验科各型设备分布情况',
+                    title: '设备类型统计',
                     numData: dataobj.distributionDataObj
                 },
                 {
-                    title: '各组设备总数分布情况',
+                    title: '设备数量统计',
                     numData: dataobj.numDistributionDataObj
                 },
                 {
-                    title: '部门设备寿命情况统计',
+                    title: '设备使用寿命统计',
                     numData: dataobj.lifeTimeData
                 },
                 {
-                    title: '各部门设备完好情况',
+                    title: '设备状况统计',
                     numData: dataobj.intactData
                 },
                 {
-                    title: '各部门设备维护完成情况',
+                    title: '设备维护完成情况',
                     numData: dataobj.completeData
                 },
                 {
-                    title: '各部门设备检定/校准完成情况',
+                    title: '设备检定/校准完成情况',
                     numData: dataobj.verificationData
                 },
                 // {
@@ -119,17 +119,17 @@ export default {
                 //         hoverPause: true
                 //     }
                 // },
-                 {
-                    title: "检验科设备信息",
+                {
+                    title: '设备信息展示',
                     numData: {
-                           // header: ["部门", "设备名称", "设备编号", "状态"],
-                        header: ["部门", "设备名称", "设备编号", "状态","维修次数"],
-                        headerBGC: "rgba(0,0,0,0)",
+                        // header: ["部门", "设备名称", "设备编号", "状态"],
+                        header: ['部门', '设备名称', '设备编号', '状态', '维修次数'],
+                        headerBGC: 'rgba(0,0,0,0)',
                         data: dataobj.scrapData,
-                        columnWidth: ["100", "220", "110","110","120"],
+                        columnWidth: ['120', '270', '220', '90', '110'],
                         rowNum: 5,
                         hoverPause: true
-                        }
+                    }
                 },
                 {
                     title: '设备整体情况',
@@ -165,27 +165,27 @@ export default {
             })
             this.initializeData()
             equipDashBoard().then(res => {
-                let data = res.data[0] || {}
-                
-                const numDistributionDataObj = data.numDistributionDataObj.filter((item,i)=>{
-                    return item.name.indexOf('综合')===-1
+                const data = res.data[0] || {}
+
+                const numDistributionDataObj = data.numDistributionDataObj.filter((item, i) => {
+                    return item.name.indexOf('综合') === -1
                 })
-                const lifeTimeData = data.lifeTimeData.filter((item,i)=>{
-                    return item.org.indexOf('综合')===-1
+                const lifeTimeData = data.lifeTimeData.filter((item, i) => {
+                    return item.org.indexOf('综合') === -1
                 })
-                
-                const intactData = data.intactData.filter((item,i)=>{
-                    return item.org.indexOf('综合')===-1
+
+                const intactData = data.intactData.filter((item, i) => {
+                    return item.org.indexOf('综合') === -1
                 })
                 console.log(data.verificationData)
-                const verificationData = data.intactData.filter((item,i)=>{
-                    return item.org.indexOf('综合')===-1
+                const verificationData = data.verificationData.filter((item, i) => {
+                    return item.org.indexOf('综合') === -1
                 })
-                const scrapData = data.scrapData.filter((item,i)=>{
-                    return item[0].indexOf('综合')===-1
+                const scrapData = data.scrapData.filter((item, i) => {
+                    return item[0].indexOf('综合') === -1
                 })
 
-                const scrapDataList=JSON.parse(JSON.stringify(scrapData))
+                const scrapDataList = JSON.parse(JSON.stringify(scrapData))
                 for (var i = 0; i < scrapData.length; i++) {
                     if (i < scrapData.length - 1) {
                         const a = JSON.parse(JSON.stringify(scrapData[i][1]))
@@ -195,34 +195,37 @@ export default {
                             scrapData[i + 1][1] = a
                         }
                     }
-                scrapDataList[i][0] = scrapData[i][4]
-                scrapDataList[i][1] = scrapData[i][5]
-                scrapDataList[i][2] = scrapData[i][3]
-                scrapDataList[i][3] = scrapData[i][7]
-                scrapDataList[i][4] = "&nbsp;&nbsp;&nbsp;&nbsp;"+scrapData[i][1]+'次'
-                scrapDataList[i].splice(5, 3)
+                    scrapDataList[i][0] = scrapData[i][4]
+                    scrapDataList[i][1] = scrapData[i][5]
+                    scrapDataList[i][2] = scrapData[i][3]
+                    scrapDataList[i][3] = scrapData[i][7]
+                    scrapDataList[i][4] = '&nbsp;&nbsp;&nbsp;&nbsp;' + scrapData[i][1] + '次'
+                    scrapDataList[i].splice(5, 3)
                 }
                 this.mergeData[0].numData = data.distributionDataObj || []
                 this.mergeData[1].numData = numDistributionDataObj
                 this.mergeData[2].numData = lifeTimeData
                 this.mergeData[3].numData = intactData
                 this.mergeData[4].numData = []
-                if(data.completeData !== null && data.completeData.length>0){
+                if (data.completeData !== null && data.completeData.length > 0) {
                     data.completeData.forEach(element => {
-                        if(element.org.indexOf('综合')===-1){
-                            this.mergeData[4].numData.push({...element,rate: element.numP!==0?(element.numC/element.numP).toFixed(2) * 100:0})
+                        if (element.org.indexOf('综合') === -1) {
+                            console.log((element.numC / element.numP).toFixed(4), (element.numC / element.numP).toFixed(4) * 100)
+                            this.mergeData[4].numData.push({ ...element, rate: (element.numP !== 0 ? ((element.numC * 100) / element.numP).toFixed(2) : 0) + '%' })
                         }
                     })
                 }
                 this.mergeData[5].numData = verificationData
                 this.mergeData[6].numData.data = scrapDataList
-                this.mergeData[7].numData = data.entiretyData || []
+                const { upKeep, ...b } = data.entiretyData
+                this.mergeData[7].numData = b || []
+                console.log(data.entiretyData, b, this.mergeData[7].numData)
                 loading.close()
             })
         },
         goBack () {
             this.$router.back(-1)
-        },
+        }
     }
 }
 </script>
@@ -265,7 +268,7 @@ export default {
                     justify-content: space-evenly;
                     align-content: space-evenly;
                     .area{
-                        width: 26%;
+                        width: 28%;
                         height: 100%;
                         .dv-border-box-7{
                             .border-box-content{
@@ -275,7 +278,7 @@ export default {
                         }
                     }
                     .midArea{
-                        width: 45%;
+                        width: 41%;
                     }
                 }
             }

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است