From 6259ba7f06da37499ad6a9b35da95d2b980ba7a7 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期六, 23 八月 2025 18:43:55 +0800
Subject: [PATCH] mdc首页按照新设计方案重新开发

---
 src/views/dashboard/IndexSignage.vue |  263 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 182 insertions(+), 81 deletions(-)

diff --git a/src/views/dashboard/IndexSignage.vue b/src/views/dashboard/IndexSignage.vue
index 0761ee4..34bda83 100644
--- a/src/views/dashboard/IndexSignage.vue
+++ b/src/views/dashboard/IndexSignage.vue
@@ -51,6 +51,7 @@
   import signageApi from '@/api/signage'
   import moment from 'moment'
   import SignageModal from './modules/SignageModal'
+  import * as echarts from 'echarts'
 
   export default {
     name: 'IndexSignage',
@@ -304,7 +305,7 @@
       getWorkshopProblemChartDataByApi() {
         signageApi.getWorkshopProblemListApi()
           .then(res => {
-            if (res.success && res.result.length > 0) this.workshopProblemChartData = res.result.map(item => [item.content, item.createTime])
+            if (res.success && res.result.length > 0) this.workshopProblemChartData = res.result.map(item => [item.createTime, item.content])
             this.drawWorkshopProblemChart()
           })
       },
@@ -399,6 +400,35 @@
 
       /* 缁樺埗璁惧鍒╃敤鐜囪兌鍥婂浘 */
       drawEfficiencyChart() {
+        const colorArray = [
+          {
+            top: '#79CEAA',
+            bottom: '#79CEAA'
+          },
+          {
+            top: '#F589A2',
+            bottom: '#F589A2'
+          },
+          {
+            top: '#6FBF9D',
+            bottom: '#6FBF9D'
+          },
+          {
+            top: '#66DFE2',
+            bottom: '#66DFE2'
+          }, {
+            top: '#A7F0C1',
+            bottom: '#A7F0C1'
+          },
+          {
+            top: '#FAE893',
+            bottom: '#FAE893'
+          },
+          {
+            top: '#F7B7A0',
+            bottom: '#F7B7A0'
+          }
+        ]
         const data = this.efficiencyData
         const defaultData = []
         const dataMax = data.length > 0 ? +data.sort((x, y) => +y.value - +x.value)[0].value : 0
@@ -457,10 +487,10 @@
               show: false
             },
             splitLine: {
-              show: false
+              show: true
             }
           },
-          yAxis: [{
+          yAxis: {
             type: 'category',
             inverse: true,
             triggerEvent: true,
@@ -485,32 +515,59 @@
               show: false
             },
             data: data.map(item => item.productionCode)
-          }, {
-            type: 'category',
-            inverse: true,
-            axisTick: 'none',
-            axisLine: 'none',
-            show: true,
-            axisLabel: {
-              textStyle: {
-                color: '#ffffff',
-                fontSize: '14'
-              },
-              formatter: function(value) {
-                return `${value}%`
-              }
-            },
-            data: data
-          }],
+          },
           series: {
             name: 'TEEP',
             type: 'bar',
             zlevel: 1,
             itemStyle: {
-              barBorderRadius: 100,
-              color: '#5070DD'
+              color: function(params) {
+                let num = colorArray.length
+                return {
+                  type: 'linear',
+                  colorStops: [{
+                    offset: 0,
+                    color: colorArray[params.dataIndex % num].bottom
+                  }, {
+                    offset: 1,
+                    color: colorArray[params.dataIndex % num].top
+                  }, {
+                    offset: 0,
+                    color: colorArray[params.dataIndex % num].bottom
+                  }, {
+                    offset: 1,
+                    color: colorArray[params.dataIndex % num].top
+                  }, {
+                    offset: 0,
+                    color: colorArray[params.dataIndex % num].bottom
+                  }, {
+                    offset: 1,
+                    color: colorArray[params.dataIndex % num].top
+                  }, {
+                    offset: 0,
+                    color: colorArray[params.dataIndex % num].bottom
+                  }, {
+                    offset: 1,
+                    color: colorArray[params.dataIndex % num].top
+                  }, {
+                    offset: 0,
+                    color: colorArray[params.dataIndex % num].bottom
+                  }, {
+                    offset: 1,
+                    color: colorArray[params.dataIndex % num].top
+                  }, {
+                    offset: 0,
+                    color: colorArray[params.dataIndex % num].bottom
+                  }]
+                }
+              }
             },
-            barWidth: 12,
+            label: {
+              show: true,
+              position: 'inside',
+              color: '#fff'
+            },
+            barWidth: 18,
             data: data
           }
         }
@@ -619,14 +676,14 @@
         this.techConditionChart.setOption(option, true)
         this.techConditionChart.hideLoading()
 
-        this.techConditionChart.on('click', params => {
-          this.modalTitle = `鎶�鏈姸鎬侊紙${params.name}锛塦
-          this.modalDataApiParams = {
-            technologyStatus: this.techConditionData.find(item => item.name === params.name).technologyStatus
-          }
-          this.modalDataApiUrl = '/eam/calibrationOrder/showEquipmentByTechnologyStatus'
-          this.modalVisible = true
-        })
+        // this.techConditionChart.on('click', params => {
+        //   this.modalTitle = `鎶�鏈姸鎬侊紙${params.name}锛塦
+        //   this.modalDataApiParams = {
+        //     technologyStatus: this.techConditionData.find(item => item.name === params.name).technologyStatus
+        //   }
+        //   this.modalDataApiUrl = '/eam/calibrationOrder/showEquipmentByTechnologyStatus'
+        //   this.modalVisible = true
+        // })
       },
 
       /* 缁樺埗璁惧鎶ヤ慨鏁呴殰楗煎浘 */
@@ -707,14 +764,14 @@
         this.warrantyMalfunctionChart.setOption(option, true)
         this.warrantyMalfunctionChart.hideLoading()
 
-        this.warrantyMalfunctionChart.on('click', params => {
-          this.modalTitle = `鎶ヤ慨鏁呴殰锛�${params.name}锛塦
-          this.modalDataApiParams = {
-            isStop: this.warrantyMalfunctionData.find(item => item.name === params.name).isStop
-          }
-          this.modalDataApiUrl = '/eam/calibrationOrder/showEquipmentByReportRepair'
-          this.modalVisible = true
-        })
+        // this.warrantyMalfunctionChart.on('click', params => {
+        //   this.modalTitle = `鎶ヤ慨鏁呴殰锛�${params.name}锛塦
+        //   this.modalDataApiParams = {
+        //     isStop: this.warrantyMalfunctionData.find(item => item.name === params.name).isStop
+        //   }
+        //   this.modalDataApiUrl = '/eam/calibrationOrder/showEquipmentByReportRepair'
+        //   this.modalVisible = true
+        // })
       },
 
       /* 缁樺埗杞﹂棿淇濆吇婊氬姩琛� */
@@ -723,8 +780,8 @@
           indexHeader: '搴忓彿',
           header: ['杞﹂棿', '鏃ユ湡', '鍐呭'],
           headerBGC: '#266C86',
-          oddRowBGC: '#0A2732',
-          evenRowBGC: '#003B51',
+          oddRowBGC: '#003B51',
+          evenRowBGC: '#0A2732',
           data: this.twoMaintenanceChartData,
           index: true,
           columnWidth: [100, 300, 300, 300],
@@ -734,6 +791,7 @@
 
       /* 缁樺埗鍗曟煴鍥� */
       drawBarChart() {
+        const colorArray = ['#79CEAA', '#F589A2', '#6FBF9D', '#66DFE2', '#A7F0C1', '#FAE893', '#F7B7A0']
         const defaultData = []
         const dataMax = this.barChartData.length > 0 ? +this.barChartData.sort((x, y) => +y.value - +x.value)[0].value : 0
         let yAxisMax
@@ -782,7 +840,7 @@
             data: this.barChartData.map(item => item.productionId),
             axisLine: {
               lineStyle: {
-                color: '#FFFFFF'
+                color: 'rgba(0,0,0,.45)'
               }
             },
             axisLabel: {
@@ -808,7 +866,6 @@
             interval: yAxisInterval,
             axisLabel: {
               formatter: '{value}',
-              color: '#fff',
               fontSize: 14
             },
             axisTick: {
@@ -817,7 +874,7 @@
             axisLine: {
               show: false,
               lineStyle: {
-                color: '#FFFFFF'
+                color: 'rgba(0,0,0,.45)'
               }
             },
             splitLine: {
@@ -827,28 +884,47 @@
               }
             }
           }],
-          series: [{
-            type: 'bar',
-            data: this.barChartData,
-            barWidth: this.barChartData.length > 5 ? '40%' : 30,
-            itemStyle: {
-              color: '#2E8BDA'
-            },
-            zlevel: 1,
-            label: {
-              show: false,
-              lineHeight: 10,
-              formatter: params => {
-                if (+params.value === 0) return ''
-                else return params.value
+          series: [
+            {
+              type: 'bar',
+              data: this.barChartData,
+              barWidth: this.barChartData.length > 5 ? '40%' : 30,
+              itemStyle: {
+                color: function(params) {
+                  let num = colorArray.length
+                  return colorArray[params.dataIndex % num]
+                }
+                // color: new echarts.graphic.LinearGradient(
+                //   0, 0, 0, 1, [{
+                //     offset: 0,
+                //     color: '#83bff6'
+                //   },
+                //     {
+                //       offset: 0.5,
+                //       color: '#188df0'
+                //     },
+                //     {
+                //       offset: 1,
+                //       color: '#188df0'
+                //     }
+                //   ]
+                // )
               },
-              position: 'top',
-              textStyle: {
-                color: '#fff',
-                fontSize: 16
+              zlevel: 1,
+              label: {
+                show: false,
+                lineHeight: 10,
+                formatter: params => {
+                  if (+params.value === 0) return ''
+                  else return params.value
+                },
+                position: 'top',
+                textStyle: {
+                  color: '#fff',
+                  fontSize: 16
+                }
               }
-            }
-          },
+            },
             {
               name: '鑳屾櫙',
               type: 'bar',
@@ -856,9 +932,27 @@
               barGap: '-100%',
               data: defaultData,
               itemStyle: {
-                color: '#11294d'
+                color: 'rgba(0,0,0,.05)'
               }
             }]
+          // aria: {
+          //   enabled: true,
+          //   decal: {
+          //     show: true,
+          //     decals: [
+          //       {
+          //         color: 'rgba(0,0,0,.2)',
+          //         dashArrayX: [20, 0],
+          //         dashArrayY: [1, 2],
+          //         symbol: 'rect',
+          //         rotation: Math.PI / 4
+          //       },
+          //       {
+          //         symbol: 'none'
+          //       }
+          //     ]
+          //   }
+          // }
         }
         option.title.text = moment().subtract(1, 'months').format('M鏈�') + `OEE`
         this.barChart.setOption(option, true)
@@ -918,13 +1012,14 @@
             type: 'category',
             data: this.doubleBarChartData.dateList,
             axisLine: {
+              show: true,
               lineStyle: {
-                color: 'rgba(255,255,255,0.45)'
+                color: 'rgba(0,0,0,.45)'
               }
             },
             axisLabel: {
               fontSize: 14,
-              color: '#fff'
+              color: 'rgba(0,0,0,.45)'
             },
             axisTick: {
               show: true
@@ -934,13 +1029,16 @@
             {
               name: '%',
               nameTextStyle: {
-                color: '#fff'
+                color: 'rgba(0,0,0,.45)'
               },
               type: 'value',
               min: 0,
               minInterval: 1,
               axisLine: {
-                show: true
+                show: true,
+                lineStyle: {
+                  color: 'rgba(0,0,0,.45)'
+                }
               },
               axisTick: {
                 show: true
@@ -954,14 +1052,17 @@
               },
               axisLabel: {
                 fontSize: 14,
-                color: '#fff',
+                color: 'rgba(0,0,0,.45)',
                 fontFamily: 'Bebas'
               }
             },
             {
               type: 'value',
               axisLine: {
-                show: true
+                show: true,
+                lineStyle: {
+                  color: 'rgba(0,0,0,.45)'
+                }
               },
               axisTick: {
                 show: false
@@ -973,7 +1074,7 @@
                 fontSize: 14,
                 formatter: '{value}%', // 鍙充晶Y杞存枃瀛楁樉绀�
                 fontFamily: 'Bebas',
-                color: '#6A93B9'
+                color: 'rgba(0,0,0,.45)'
               },
               splitArea: {
                 show: false
@@ -981,8 +1082,8 @@
             }],
           series: [{
             type: 'bar',
-            barWidth: 15,
-            itemStyle: { barBorderRadius: 100 },
+            barWidth: 20,
+            itemStyle: { barBorderRadius: 4 },
             name: 'OEE',
             data: this.doubleBarChartData.oeeList,
             label: {
@@ -1000,8 +1101,8 @@
             }
           }, {
             type: 'bar',
-            barWidth: 15,
-            itemStyle: { barBorderRadius: 100 },
+            barWidth: 20,
+            itemStyle: { barBorderRadius: 4 },
             name: 'TEEP',
             data: this.doubleBarChartData.utilizationList,
             label: {
@@ -1028,13 +1129,13 @@
       drawWorkshopProblemChart() {
         this.problemConfig = {
           indexHeader: '搴忓彿',
-          header: ['闂鍐呭', '鏃堕棿'],
+          header: ['鏃堕棿', '闂鍐呭'],
           headerBGC: '#83B883',
           oddRowBGC: '#556955',
           evenRowBGC: '#556955',
           data: this.workshopProblemChartData,
           index: true,
-          columnWidth: [100, 300, 150],
+          columnWidth: [100, 200, 300],
           align: ['center']
         }
       },
@@ -1044,9 +1145,9 @@
        * @param record 鐐瑰嚮褰撳墠涓変繚淇℃伅
        */
       openMaintenanceModal(record) {
-        this.modalTitle = record.planTime
-        this.modalDataApiUrl = record.apiUrl
-        this.modalVisible = true
+        // this.modalTitle = record.planTime
+        // this.modalDataApiUrl = record.apiUrl
+        // this.modalVisible = true
       },
 
       re_drawPieChart() {

--
Gitblit v1.9.3