From 964ab96fa41fc3f465d3d274fb2121dffd11dc79 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期四, 07 十一月 2024 17:16:44 +0800
Subject: [PATCH] 1、调整总控车间看板右侧图表标题 2、调整分控车间看板刀具寿命管理中的当前寿命颜色标识

---
 src/views/mdc/base/MasterControlWorkshopSignage.vue |  300 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 241 insertions(+), 59 deletions(-)

diff --git a/src/views/mdc/base/MasterControlWorkshopSignage.vue b/src/views/mdc/base/MasterControlWorkshopSignage.vue
index 69ef55e..c100666 100644
--- a/src/views/mdc/base/MasterControlWorkshopSignage.vue
+++ b/src/views/mdc/base/MasterControlWorkshopSignage.vue
@@ -23,14 +23,18 @@
         <div class="page-title">
 
           <div style="position: relative">
-            <img src="../../../assets/image/logo.jpg">
-            涓�鎷栧ぇ鎷栬閰嶅巶
+            <img src="@/assets/logo-yt.png">
+            <span style="cursor: pointer"
+                  @dblclick="modalVisible=true">{{isFakeData?fakeData.title:'涓�鎷栧ぇ鎷栬閰嶅巶'}}</span>
           </div>
-          <div>鏁板瓧鍖栬溅闂存櫤鑳界鐞嗙郴缁�</div>
+          <div style="cursor: pointer" @dblclick="isFakeData = !isFakeData">
+            {{isFakeData?fakeData.subheading:'鏁板瓧鍖栬溅闂存櫤鑳界鐞嗙郴缁�'}}
+          </div>
         </div>
+
         <div class="workshop-bg">
           <div class="navigate-container" style="top:0;left: 5%;">
-            <div @click="navigateTo(item)" v-for="item in productionLineList" :key="item.id"
+            <div @click="navigateToSubWorkshopSignage(item)" v-for="item in productionLineList" :key="item.id"
                  class="navigate-item">
               <template v-if="item.productionOrder<5">
                 <div :style="{backgroundColor:productionLineBackgroundColorList[item.productionOrder%4]}"
@@ -45,7 +49,7 @@
             </div>
           </div>
           <div class="navigate-container" style="bottom:0;right: 5%;">
-            <div @click="navigateTo(item)" v-for="item in productionLineList" :key="item.id"
+            <div @click="navigateToSubWorkshopSignage(item)" v-for="item in productionLineList" :key="item.id"
                  class="navigate-item">
               <template v-if="item.productionOrder>=5">
                 <div :style="{backgroundColor:productionLineBackgroundColorList[item.productionOrder%4]}"
@@ -60,11 +64,17 @@
             </div>
           </div>
         </div>
+
         <div class="switch-container">
-          <div @click="activeIndex=index" class="switch-item" v-for="(item,index) in switchList" :key="index"
-               :style="{backgroundColor:activeIndex===index?'#848284':'#6B6D6B',color:activeIndex==index?'#27A2DB':'#000'}">
-            {{item.label}}
+          <div class="switch-item" v-for="(item,index) in switchList" :key="index" @click="navigateToOthers(item,index)"
+               :style="{color:activeIndex==index?'#27A2DB':'#000'}">
+            <img src="@/assets/navigateImg.png">
+            <span>{{item.label}}</span>
           </div>
+        </div>
+
+        <div class="page-description">
+          {{isFakeData?fakeData.description:'涓�鎷栧伐鏉愭墍 涓� 鐏电鏅鸿兘 鑱斿悎寮�鍙�'}}
         </div>
       </div>
       <div class="right-col">
@@ -72,32 +82,39 @@
           <div class="chart-container" id="right-col-chart1"></div>
         </div>
         <div class="col-content">
-          <div class="content-title">浠婃棩璁惧寮�鏈虹巼(%)</div>
+          <div class="content-title">璁惧浠婃棩寮�鏈虹巼锛�%锛�</div>
           <div class="chart-container" id="right-col-chart2"></div>
         </div>
         <div class="col-content">
-          <div class="content-title">浠婃棩璁惧鍒╃敤鐜�(%)</div>
+          <div class="content-title">璁惧浠婃棩鍒╃敤鐜囷紙%锛�</div>
           <div class="chart-container" id="right-col-chart3"></div>
         </div>
         <div class="col-content">
-          <div class="content-title">鏈堣澶囧埄鐢ㄧ巼(%)</div>
+          <div class="content-title">璁惧鏈堝埄鐢ㄧ巼锛�%锛�</div>
           <div class="chart-container" id="right-col-chart4"></div>
         </div>
       </div>
     </div>
+
+    <SignageModal :fakeData="fakeData" :modalVisible="modalVisible"
+                  @closeModal="modalVisible=false" @reloadData="reloadData"></SignageModal>
   </div>
 </template>
 
 <script>
   import * as echarts from 'echarts'
   import api from '@/api/mdc'
+  import SignageModal from './modules/MasterControlWorkshopSignage/SignageModal'
 
   export default {
     name: 'MasterControlWorkshopSignage',
-    components: {},
+    components: { SignageModal },
     data() {
       return {
-        activeIndex: 0,
+        isFakeData: true,
+        fakeData: {},
+        modalVisible: false,
+        activeIndex: null,
         firstEnterDevicePixelRatio: null,
         currentDevicePixelRatio: null,
         leftColChart1: '',
@@ -113,28 +130,45 @@
         switchList: [
           {
             label: 'MES',
-            index: 0
+            index: 0,
+            isNavigateToWeb: true,
+            webUrl: 'http://172.16.52.71:8081',
+            batPath: ''
           },
           {
             label: '鍒�鍏风鐞�',
-            index: 1
+            index: 1,
+            isNavigateToWeb: true,
+            webUrl: 'http://172.16.52.99/tms',
+            batPath: ''
           },
           {
-            label: '鏁呴殰',
-            index: 2
+            label: '璁惧璇婃柇',
+            index: 2,
+            isNavigateToWeb: false,
+            webUrl: '',
+            batPath: 'yituoSBZD://'
           },
           {
-            label: '3D',
-            index: 3
+            label: '涓夌淮鐩戞帶',
+            index: 3,
+            isNavigateToWeb: false,
+            webUrl: '',
+            batPath: 'yituoVR://'
           },
           {
             label: '瀹夐槻',
-            index: 4
+            index: 4,
+            isNavigateToWeb: false,
+            webUrl: '',
+            batPath: 'yituoAF://'
           }
         ],
         rightColChart1: '',
         rightColChart2: '',
         rightColChart3: '',
+        rightColChart2Data: '',
+        rightColChart3Data: '',
         rightColChart2And3Data: '',
         rightColChart2CarouselTime: null,
         rightColChart3CarouselTime: null,
@@ -147,7 +181,6 @@
       this.firstEnterDevicePixelRatio = window.devicePixelRatio
       window.addEventListener('resize', this.handleWindowResize)
       this.getProductionListByApi()
-      this.getChartDataByApi()
     },
     beforeDestroy() {
       window.removeEventListener('resize', this.handleWindowResize)
@@ -155,12 +188,66 @@
       if (this.rightColChart3CarouselTime) clearInterval(this.rightColChart3CarouselTime)
       if (this.rightColChart4CarouselTime) clearInterval(this.rightColChart4CarouselTime)
     },
+    watch: {
+      isFakeData: {
+        handler(value) {
+          if (value) {
+            this.getFakeDataByApi()
+          } else {
+            this.getChartDataByApi()
+          }
+        },
+        immediate: true
+      }
+    },
     methods: {
       getProductionListByApi() {
         api.getProductionLineListApi()
           .then(res => {
             if (res.success) this.productionLineList = res.result
           })
+      },
+
+      getFakeDataByApi() {
+        api.getFakeDataApi()
+          .then(res => {
+            console.log('res', res)
+            if (res.success) this.fakeData = res.result
+            this.leftColChart1Data = [
+              {
+                name: '浜у搧鍚堟牸鐜�',
+                count: res.result.passRate / 100
+              },
+              {
+                name: '璁惧鍒╃敤鐜�',
+                count: res.result.utilizationRate / 100
+              },
+              {
+                name: '璁″垝瀹屾垚鐜�',
+                count: res.result.planCompleteRate / 100
+              }
+            ]
+            this.leftColChart2Data = res.result.todayProductionList
+            this.leftColChart3Data = res.result.todayPassRateList
+            this.leftColChart4Data = res.result.todayShiftCountList
+            this.rightColChart2Data = res.result.todayOpenRateList
+            this.rightColChart3Data = res.result.todayUtilizationRateList
+            this.rightColChart4Data = res.result.monthUtilizationRateList
+            this.$nextTick(() => {
+              this.drawLeftColChart1()
+              this.drawLeftColChart2()
+              this.drawLeftColChart3()
+              this.drawLeftColChart4()
+              this.drawRightColChart2()
+              this.drawRightColChart3()
+              this.drawRightColChart4()
+            })
+          })
+      },
+
+      reloadData() {
+        this.modalVisible = false
+        if (this.isFakeData) this.getFakeDataByApi()
       },
 
       getChartDataByApi() {
@@ -174,7 +261,6 @@
       },
 
       getLeftColChart1DataByApi() {
-        this.leftColChart1 = this.$echarts.init(document.getElementById('left-col-chart1'))
         api.getYesterdayOverviewApi()
           .then(res => {
             // console.log('res', res)
@@ -182,15 +268,15 @@
               this.leftColChart1Data = [
                 {
                   'name': '浜у搧鍚堟牸鐜�',
-                  'count': res.result.passRate ? res.result.passRate : 0
+                  'count': res.result.passRate ? res.result.passRate / 100 : 0
                 },
                 {
                   'name': '璁惧鍒╃敤鐜�',
-                  'count': res.result.utilizationRate ? res.result.utilizationRate : 0
+                  'count': res.result.utilizationRate ? res.result.utilizationRate / 100 : 0
                 },
                 {
                   'name': '璁″垝瀹屾垚鐜�',
-                  'count': res.result.planCompleteRate ? res.result.planCompleteRate : 0
+                  'count': res.result.planCompleteRate ? res.result.planCompleteRate / 100 : 0
                 }
               ]
               this.drawLeftColChart1()
@@ -199,7 +285,6 @@
       },
 
       getLeftColChart2DataByApi() {
-        this.leftColChart2 = this.$echarts.init(document.getElementById('left-col-chart2'))
         api.getTodayProductionProgressApi()
           .then(res => {
             // console.log('res', res)
@@ -211,7 +296,6 @@
       },
 
       getLeftColChart3DataByApi() {
-        this.leftColChart3 = this.$echarts.init(document.getElementById('left-col-chart3'))
         api.getTodayProductPassRateApi()
           .then(res => {
             // console.log('res', res)
@@ -223,7 +307,6 @@
       },
 
       getLeftColChart4DataByApi() {
-        this.leftColChart4 = this.$echarts.init(document.getElementById('left-col-chart4'))
         api.getTeamCompletionCountApi()
           .then(res => {
             // console.log('res', res)
@@ -240,8 +323,6 @@
       },
 
       getRightColChart2And3DataByApi() {
-        this.rightColChart2 = this.$echarts.init(document.getElementById('right-col-chart2'))
-        this.rightColChart3 = this.$echarts.init(document.getElementById('right-col-chart3'))
         api.getTodayEquipmentWorkEfficiencyApi()
           .then(res => {
             // console.log('res', res)
@@ -254,7 +335,6 @@
       },
 
       getRightColChart4DataByApi() {
-        this.rightColChart4 = this.$echarts.init(document.getElementById('right-col-chart4'))
         api.getMonthEquipmentUtilizationRateApi()
           .then(res => {
             // console.log('res', res)
@@ -267,6 +347,9 @@
 
       /* 缁樺埗宸︿晶绗竴涓浘琛� */
       drawLeftColChart1() {
+        this.leftColChart1 = this.$echarts.init(document.getElementById('left-col-chart1'))
+        console.log('leftColChart1Data', this.leftColChart1Data)
+
         const yAxisData = []
         const option = {
           radar: [
@@ -395,14 +478,26 @@
 
       /* 缁樺埗宸︿晶绗簩涓浘琛� */
       drawLeftColChart2() {
+        this.leftColChart2 = this.$echarts.init(document.getElementById('left-col-chart2'))
         const xAxisData = []
         const seriesData1 = []
         const seriesData2 = []
-        this.leftColChart2Data.forEach(item => {
-          xAxisData.push(item.productName == null ? '' : item.productName)
-          seriesData1.push({ value: item.planCount == null ? '' : item.planCount })
-          seriesData2.push({ value: item.completionCount == null ? '' : item.completionCount })
-        })
+        if (this.isFakeData) {
+          this.leftColChart2Data.forEach(item => {
+            if (item.label) {
+              xAxisData.push(item.label == null ? '' : item.label)
+              seriesData1.push({ value: item.value1 == null ? '' : item.value1 })
+              seriesData2.push({ value: item.value2 == null ? '' : item.value2 })
+            }
+          })
+        } else {
+          this.leftColChart2Data.forEach(item => {
+            xAxisData.push(item.productName == null ? '' : item.productName)
+            seriesData1.push({ value: item.planCount == null ? '' : item.planCount })
+            seriesData2.push({ value: item.completionCount == null ? '' : item.completionCount })
+          })
+        }
+
         const option = {
           tooltip: {
             show: true,
@@ -555,6 +650,7 @@
 
       /* 缁樺埗宸︿晶绗笁涓浘琛� */
       drawLeftColChart3() {
+        this.leftColChart3 = this.$echarts.init(document.getElementById('left-col-chart3'))
         const data = [
           {
             'number': 'A_1',
@@ -608,12 +704,24 @@
         ]
         const xAxisData = []
         const seriesData = []
-        this.leftColChart3Data.forEach(item => {
-          xAxisData.push(item.productionName == null ? '' : item.productionName)
-          seriesData.push({
-            value: this.toDecimal2NoZero(((item.passRate == null ? '' : item.passRate) * 100) > 100 ? 100 : (((item.passRate == null ? '' : item.passRate) * 100)))
+        if (this.isFakeData) {
+          this.leftColChart3Data.forEach(item => {
+            if (item.label) {
+              xAxisData.push(item.label == null ? '' : item.label)
+              seriesData.push({
+                value: this.toDecimal2NoZero(((item.value1 == null ? '' : item.value1) * 100) > 100 ? 100 : (((item.value1 == null ? '' : item.value1) * 100)))
+              })
+            }
           })
-        })
+        } else {
+          this.leftColChart3Data.forEach(item => {
+            xAxisData.push(item.productionName == null ? '' : item.productionName)
+            seriesData.push({
+              value: this.toDecimal2NoZero(((item.passRate == null ? '' : item.passRate) * 100) > 100 ? 100 : (((item.passRate == null ? '' : item.passRate) * 100)))
+            })
+          })
+        }
+
         const option = {
           tooltip: {
             show: true,
@@ -816,12 +924,22 @@
 
       /* 缁樺埗宸︿晶绗洓涓浘琛� */
       drawLeftColChart4() {
+        this.leftColChart4 = this.$echarts.init(document.getElementById('left-col-chart4'))
         const xAxisData = []
         const seriesData = []
-        this.leftColChart4Data.forEach(item => {
-          xAxisData.push(item.clazz == null ? '' : item.clazz)
-          seriesData.push({ value: item.completionCount == null ? '' : item.completionCount })
-        })
+        if (this.isFakeData) {
+          this.leftColChart4Data.forEach(item => {
+            if (item.label) {
+              xAxisData.push(item.label == null ? '' : item.label)
+              seriesData.push({ value: item.value1 == null ? '' : item.value1 })
+            }
+          })
+        } else {
+          this.leftColChart4Data.forEach(item => {
+            xAxisData.push(item.clazz == null ? '' : item.clazz)
+            seriesData.push({ value: item.completionCount == null ? '' : item.completionCount })
+          })
+        }
         const option = {
           tooltip: {
             show: true,
@@ -1180,6 +1298,7 @@
 
       /* 缁樺埗鍙充晶绗簩涓浘琛� */
       drawRightColChart2() {
+        this.rightColChart2 = this.$echarts.init(document.getElementById('right-col-chart2'))
         const data = [
           {
             'number': 'A_1',
@@ -1343,10 +1462,20 @@
           )
         ]
 
-        this.rightColChart2And3Data.forEach(item => {
-          xAxisData.push(item.equipmentName == null ? '' : item.equipmentName)
-          seriesData.push({ value: item.openRate })
-        })
+        if (this.isFakeData) {
+          this.rightColChart2Data.forEach(item => {
+            if (item.label) {
+              xAxisData.push(item.label == null ? '' : item.label)
+              seriesData.push({ value: item.value1 })
+            }
+          })
+        } else {
+          this.rightColChart2And3Data.forEach(item => {
+            xAxisData.push(item.equipmentName == null ? '' : item.equipmentName)
+            seriesData.push({ value: item.openRate })
+          })
+        }
+
         const option = {
           tooltip: {
             show: true,
@@ -1466,6 +1595,7 @@
         option.series[0].data = seriesData
         this.rightColChart2.setOption(option, true)
 
+        clearInterval(this.rightColChart2CarouselTime)
         this.rightColChart2CarouselTime = setInterval(() => {
           xAxisData.push(xAxisData.shift())
           seriesData.push(seriesData.shift())
@@ -1478,6 +1608,7 @@
 
       /* 缁樺埗鍙充晶绗笁涓浘琛� */
       drawRightColChart3() {
+        this.rightColChart3 = this.$echarts.init(document.getElementById('right-col-chart3'))
         const data = [
           {
             'number': 'A_1',
@@ -1640,10 +1771,19 @@
             ]
           )
         ]
-        this.rightColChart2And3Data.forEach(item => {
-          xAxisData.push(item.equipmentName == null ? '' : item.equipmentName)
-          seriesData.push({ value: item.utilizationRate })
-        })
+        if (this.isFakeData) {
+          this.rightColChart3Data.forEach(item => {
+            if (item.label) {
+              xAxisData.push(item.label == null ? '' : item.label)
+              seriesData.push({ value: item.value1 })
+            }
+          })
+        } else {
+          this.rightColChart2And3Data.forEach(item => {
+            xAxisData.push(item.equipmentName == null ? '' : item.equipmentName)
+            seriesData.push({ value: item.utilizationRate })
+          })
+        }
         const option = {
           tooltip: {
             show: true,
@@ -1763,6 +1903,7 @@
         option.series[0].data = seriesData
         this.rightColChart3.setOption(option, true)
 
+        clearInterval(this.rightColChart3CarouselTime)
         this.rightColChart3CarouselTime = setInterval(() => {
           xAxisData.push(xAxisData.shift())
           seriesData.push(seriesData.shift())
@@ -1775,6 +1916,7 @@
 
       /* 缁樺埗鍙充晶绗洓涓浘琛� */
       drawRightColChart4() {
+        this.rightColChart4 = this.$echarts.init(document.getElementById('right-col-chart4'))
         const data = [
           {
             'number': 'A_1',
@@ -2017,10 +2159,19 @@
             ]
           )
         ]
-        this.rightColChart4Data.forEach(item => {
-          xAxisData.push(item.date == null ? '' : item.date)
-          seriesData.push({ value: item.utilizationRate })
-        })
+        if (this.isFakeData) {
+          this.rightColChart4Data.forEach(item => {
+            if (item.label) {
+              xAxisData.push(item.label == null ? '' : item.label)
+              seriesData.push({ value: item.value1 })
+            }
+          })
+        } else {
+          this.rightColChart4Data.forEach(item => {
+            xAxisData.push(item.date == null ? '' : item.date)
+            seriesData.push({ value: item.utilizationRate })
+          })
+        }
         const option = {
           tooltip: {
             show: true,
@@ -2131,6 +2282,7 @@
         option.series[0].data = seriesData
         this.rightColChart4.setOption(option, true)
 
+        clearInterval(this.rightColChart4CarouselTime)
         this.rightColChart4CarouselTime = setInterval(() => {
           xAxisData.push(xAxisData.shift())
           seriesData.push(seriesData.shift())
@@ -2148,7 +2300,7 @@
         return s
       },
 
-      navigateTo(record) {
+      navigateToSubWorkshopSignage(record) {
         const url = this.$router.resolve({
           path: '/SubControlWorkshopSignage',
           query: {
@@ -2159,6 +2311,16 @@
         }).href
         window.open(url, '_blank')
       },
+
+      navigateToOthers(record, index) {
+        this.activeIndex = index
+        if (record.isNavigateToWeb && record.webUrl) {
+          window.open(record.webUrl, '_blank')
+        } else {
+          window.location.href = record.batPath
+        }
+      },
+
 
       /**
        * 绐楀彛灏哄鍙樺寲鏃惰Е鍙�
@@ -2222,8 +2384,9 @@
           text-align: center;
 
           img {
+            height: 100%;
+            width: 10%;
             position: absolute;
-            width: 12%;
             left: 12%;
           }
         }
@@ -2268,8 +2431,27 @@
             flex: 1;
             text-align: center;
             cursor: pointer;
+            position: relative;
+
+            span {
+              position: relative;
+              z-index: 1;
+            }
+            img {
+              width: 100%;
+              height: 100%;
+              position: absolute;
+              top: 0;
+              left: 0;
+            }
           }
         }
+
+        .page-description {
+          text-align: center;
+          color: #fff;
+          font-size: 0.7vw;
+        }
       }
 
       .left-col, .right-col {

--
Gitblit v1.9.3