From bb654cea7b1666d5b3c04dbd81a074a5a502cc67 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期五, 31 五月 2024 09:36:40 +0800
Subject: [PATCH] 1、登录页实现登录窗口响应式布局,同时限制最大最小宽高 2、除设备级看板其余看板中点击技术状态以及报修故障图表后打开对应弹窗,并实现与接口联动 3、设备级看板点击保养计划按钮后打开对应弹窗并实现与后端数据联调 4、优化设备级看板折线图样式,将Y轴移至左侧,删除右侧Y轴,设置数据值在图标上的显示

---
 src/views/dashboard/WorkshopSectionSignage.vue |  142 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 97 insertions(+), 45 deletions(-)

diff --git a/src/views/dashboard/WorkshopSectionSignage.vue b/src/views/dashboard/WorkshopSectionSignage.vue
index d552596..09783e4 100644
--- a/src/views/dashboard/WorkshopSectionSignage.vue
+++ b/src/views/dashboard/WorkshopSectionSignage.vue
@@ -14,45 +14,11 @@
               <dv-decoration-11 style="width:45%;height:60px;color: #fff;font-size: 20px;align-self: flex-start">涓変繚璁″垝
               </dv-decoration-11>
               <div class="support-plan-container">
-                <div class="support-plan-item" style="background:#5FE0AF">
-                  <div>涓変繚鏈湀璁″垝</div>
+                <div v-for="(item,index) in supportPlanList" :key="index" class="support-plan-item"
+                     :style="{background:item.backgroundColor}" @click="openMaintenanceModal(item)">
+                  <div>{{item.planTime}}</div>
                   <div class="plan-value-container">
-                    <div class="plan-value">{{thisMonthMaintenancePlanNum}}</div>
-                    <div>鍙�</div>
-                  </div>
-                </div>
-                <div class="support-plan-item" style="background:#409EFF">
-                  <div>鏈湀瀹屾垚閲�</div>
-                  <div class="plan-value-container">
-                    <div class="plan-value">{{thisMonthMaintenanceRealNum}}</div>
-                    <div>鍙�</div>
-                  </div>
-                </div>
-                <div class="support-plan-item" style="background:#FCAA29">
-                  <div>寤舵湡</div>
-                  <div class="plan-value-container">
-                    <div class="plan-value">{{maintenanceExtensionNum}}</div>
-                    <div>鍙�</div>
-                  </div>
-                </div>
-                <div class="support-plan-item" style="background:#F56C6C">
-                  <div>瓒呮湡</div>
-                  <div class="plan-value-container">
-                    <div class="plan-value">{{maintenanceOverdueNum}}</div>
-                    <div>鍙�</div>
-                  </div>
-                </div>
-                <div class="support-plan-item" style="background:#D6BC52">
-                  <div>涓嬫湀璁″垝</div>
-                  <div class="plan-value-container">
-                    <div class="plan-value">{{nextMonthMaintenancePlanNum}}</div>
-                    <div>鍙�</div>
-                  </div>
-                </div>
-                <div class="support-plan-item" style="background:#58D9F9">
-                  <div>涓嬩笅鏈堣鍒�</div>
-                  <div class="plan-value-container">
-                    <div class="plan-value">{{nextNextMonthMaintenancePlanNum}}</div>
+                    <div class="plan-value">{{$data[item.planValueLabel]}}</div>
                     <div>鍙�</div>
                   </div>
                 </div>
@@ -102,15 +68,21 @@
         </dv-border-box-9>
       </div>
     </div>
+
+    <SignageModal :modalVisible="modalVisible" :modalTitle=modalTitle :modalDataApiUrl="modalDataApiUrl"
+                  :modalDataApiParams="modalDataApiParams"
+                  @closeModal="modalVisible=false"/>
   </div>
 </template>
 
 <script>
   import signageApi from '@/api/signage'
   import moment from 'moment'
+  import SignageModal from './modules/SignageModal'
 
   export default {
     name: 'WorkshopSectionSignage',
+    components: { SignageModal },
     props: {
       productionCode: {
         type: String,
@@ -141,6 +113,46 @@
           { value: '0', name: '鍋滄満' },
           { value: '0', name: '杩愯' }
         ],
+        supportPlanList: [
+          {
+            planTime: '鏈湀涓変繚璁″垝',
+            planValueLabel: 'thisMonthMaintenancePlanNum',
+            backgroundColor: '#5FE0AF',
+            apiUrl: '/eam/calibrationOrder/showThisMonthMaintenanceList'
+          },
+
+          {
+            planTime: '鏈湀瀹屾垚閲�',
+            planValueLabel: 'thisMonthMaintenanceRealNum',
+            backgroundColor: '#409EFF',
+            apiUrl: '/eam/calibrationOrder/showThisMonthMaintenanceFinishList'
+          },
+          {
+            planTime: '寤舵湡',
+            planValueLabel: 'maintenanceExtensionNum',
+            backgroundColor: '#FCAA29',
+            apiUrl: '/eam/calibrationOrder/show3MaintenancePostponeList'
+          },
+
+          {
+            planTime: '瓒呮湡',
+            planValueLabel: 'maintenanceOverdueNum',
+            backgroundColor: '#F56C6C',
+            apiUrl: '/eam/calibrationOrder/show3MaintenanceOverdueList'
+          },
+          {
+            planTime: '涓嬫湀璁″垝',
+            planValueLabel: 'nextMonthMaintenancePlanNum',
+            backgroundColor: '#D6BC52',
+            apiUrl: '/eam/calibrationOrder/showNextMonthMaintenanceList'
+          },
+          {
+            planTime: '涓嬩笅鏈堣鍒�',
+            planValueLabel: 'nextNextMonthMaintenancePlanNum',
+            backgroundColor: '#58D9F9',
+            apiUrl: '/eam/calibrationOrder/showNextNextMonthMaintenanceList'
+          }
+        ],
         thisMonthMaintenancePlanNum: 0,
         thisMonthMaintenanceRealNum: 0,
         maintenanceExtensionNum: 0,
@@ -164,7 +176,12 @@
         },
         barChart: '',
         barChartData: [],
-        equipmentId: ''
+        equipmentId: '',
+        modalVisible: false,
+        modalTitle: '',
+        modalDataApiUrl: '',
+        modalTableColumns: [],
+        modalDataApiParams: {}
       }
     },
     mounted() {
@@ -201,9 +218,9 @@
           .then(res => {
             if (res.success && res.result) {
               this.techConditionData = [
-                { value: res.result[0].qualifiedCount, name: '鍚堟牸' },
-                { value: res.result[0].disabledCount, name: '绂佺敤' },
-                { value: res.result[0].limitedUseCount, name: '闄愮敤' }
+                { value: res.result[0].qualifiedCount, name: '鍚堟牸', technologyStatus: 'qualified' },
+                { value: res.result[0].disabledCount, name: '绂佺敤', technologyStatus: 'disabled' },
+                { value: res.result[0].limitedUseCount, name: '闄愮敤', technologyStatus: 'limitedUse' }
               ]
             }
             this.drawTechConditionChart()
@@ -223,9 +240,9 @@
           .then(res => {
             if (res.success && res.result) {
               this.warrantyMalfunctionData = [
-                { value: res.result[0].failurTotalCount, name: '鎶ヤ慨' },
-                { value: res.result[0].stopCount, name: '鍋滄満' },
-                { value: res.result[0].noStopCount, name: '杩愯' }
+                { value: res.result[0].failurTotalCount, name: '鎶ヤ慨', isStop: '' },
+                { value: res.result[0].stopCount, name: '鍋滄満', isStop: '2' },
+                { value: res.result[0].noStopCount, name: '杩愯', isStop: '1' }
               ]
             }
             this.drawWarrantyMalfunctionChart()
@@ -420,6 +437,16 @@
         }
         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,
+            productionCode: this.productionCode
+          }
+          this.modalDataApiUrl = '/eam/calibrationOrder/showEquipmentByTechnologyStatus'
+          this.modalVisible = true
+        })
       },
 
       /* 缁樺埗璁惧鎶ヤ慨鏁呴殰楗煎浘 */
@@ -498,6 +525,16 @@
         }
         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,
+            productionCode: this.productionCode
+          }
+          this.modalDataApiUrl = '/eam/calibrationOrder/showEquipmentByReportRepair'
+          this.modalVisible = true
+        })
       },
 
       /* 缁樺埗璁惧杩愯鐘舵�佺帿鐟伴ゼ鍥� */
@@ -1183,6 +1220,20 @@
       },
 
       /**
+       * 鐐瑰嚮涓変繚灞曠ず鏍忓悗鎵撳紑寮圭獥
+       * @param record 鐐瑰嚮褰撳墠涓変繚淇℃伅
+       */
+      openMaintenanceModal(record) {
+        this.modalTitle = record.planTime
+        this.modalDataApiParams = {
+          productionCode: this.productionCode
+        }
+        this.modalDataApiUrl = record.apiUrl
+        this.modalVisible = true
+      },
+
+
+      /**
        * 绐楀彛灏哄鍙樺寲鏃惰Е鍙�
        * 璋冩暣鍥捐〃灏哄浠ラ�傚簲鍒嗚鲸鐜�
        */
@@ -1228,6 +1279,7 @@
             width: 30%;
             padding: 5px 10px;
             margin-bottom: 10px;
+            cursor: pointer;
 
             .plan-value-container {
               display: flex;

--
Gitblit v1.9.3