Просмотр исходного кода

Merge branch 'master' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-vis into test

yusheng 1 год назад
Родитель
Сommit
3a0df22ea1

+ 10 - 0
src/api/equipment/index.js

@@ -21,3 +21,13 @@ export async function statisticsDeviceStatus(params) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+// 大屏数据统计 new
+export async function screenSubstanceGroupQuery(params) {
+  const res = await request.get('/eam/workorder/screenSubstanceGroupQuery', {
+    params
+  });
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 111 - 186
src/views/bpm/vis-page/equipmentOperation.vue

@@ -37,19 +37,25 @@
       <div class="top_bar">
         <div class="runDeviceInfo">
           <div
-            >运行<span style="">{{ totalData.total }}</span
+            >运行<span style="">{{ totalData.runNum }}</span
             >台</div
           >
         </div>
         <div class="repaireInfo">
           <div
-            >计划维修<span style="">{{ totalData.total }}</span
+            >计划维修<span style="">{{ totalData.planMaintenanceNum }}</span
+            >台</div
+          >
+        </div>
+        <div class="repaireInfo1">
+          <div
+            >保养<span style="">{{ totalData.maintenanceNum }}</span
             >台</div
           >
         </div>
         <div class="faultDeviceInfo">
           <div
-            >故障维修<span>{{ totalData.repairNum }}</span
+            >故障维修<span>{{ totalData.malfunctionNum }}</span
             >台</div
           >
         </div>
@@ -59,13 +65,15 @@
           <div class="title">
             <div>
               <span>巡点检:</span>
-              <span class="blue">25</span>
+              <span class="blue">{{
+                getSalesFinishListLength('xdjList')
+              }}</span>
             </div>
           </div>
           <div class="table"> </div>
           <dv-scroll-board
             v-if="isFlag"
-            :config="config"
+            :config="getSalesFinishList('xdjList')"
             style="width: 90%; height: 87%; transform: translate(5%, 1%)"
           />
         </div>
@@ -73,13 +81,13 @@
           <div class="title">
             <div>
               <span>保养:</span>
-              <span class="blue">25</span>
+              <span class="blue">{{ getSalesFinishListLength('byList') }}</span>
             </div>
           </div>
           <div class="table"> </div>
           <dv-scroll-board
             v-if="isFlag"
-            :config="config"
+            :config="getSalesFinishList('byList')"
             style="width: 90%; height: 87%; transform: translate(5%, 1%)"
           />
         </div>
@@ -89,13 +97,15 @@
           <div class="title">
             <div>
               <span>故障维修:</span>
-              <span class="blue">25</span>
+              <span class="blue">{{
+                getSalesFinishListLength('gzwxList')
+              }}</span>
             </div>
           </div>
           <div class="table"> </div>
           <dv-scroll-board
             v-if="isFlag"
-            :config="config"
+            :config="getSalesFinishList('gzwxList')"
             style="width: 90%; height: 87%; transform: translate(5%, 1%)"
           />
         </div>
@@ -103,13 +113,15 @@
           <div class="title">
             <div>
               <span>计划性维修:</span>
-              <span class="blue">25</span>
+              <span class="blue">{{
+                getSalesFinishListLength('jhwxList')
+              }}</span>
             </div>
           </div>
           <div class="table"> </div>
           <dv-scroll-board
             v-if="isFlag"
-            :config="config"
+            :config="getSalesFinishList('jhwxList')"
             style="width: 90%; height: 87%; transform: translate(5%, 1%)"
           />
         </div>
@@ -123,7 +135,7 @@
 <script>
   import dvBorderContent from './dv-border-content.vue';
   import { component } from 'vue-fullscreen';
-  import { getRepairWorkList, statisticsDeviceStatus } from '@/api/equipment';
+  import { screenSubstanceGroupQuery } from '@/api/equipment';
   export default {
     name: 'index',
     components: {
@@ -133,6 +145,53 @@
     computed: {
       contentWidth() {
         return this.$store.state.theme.contentWidth;
+      },
+      getSalesFinishListLength() {
+        return (key) => this.totalData[key]?.length;
+      },
+      getSalesFinishList() {
+        return (key) => {
+          return {
+            header: this.tableHeader.map(
+              (item) =>
+                `<div style="color: #0577FF;font-size: 1.3rem;font-weight: bold">${item}</div>`
+            ),
+            data:
+              this.totalData[key].map((item) => {
+                let list = [];
+                for (let i in item) {
+                  let div = '';
+                  if (i === 'workOrderNo') {
+                    div = `<div class="white" style="font-size: 1.3rem;">${item[i]}</div>`;
+                    list[0] = div;
+                  }
+                  if (i === 'repairUserName') {
+                    div = `<div class="white" style="font-size: 1.3rem;">${item[i]}</div>`;
+                    list[1] = div;
+                  }
+                  if (i === 'delayTime') {
+                    div = `<div class="white" style="font-size: 1.3rem;">${item[i]}</div>`;
+                    list[3] = div;
+                  }
+                  if (i === 'orderStatusString') {
+                    div = `<div class="${this.getColor(
+                      item[i]
+                    )}" style="font-size: 1.3rem;">${item[i]}</div>`;
+                    list[2] = div;
+                  }
+                }
+                return list;
+              }) ?? [],
+            align: ['center', 'center', 'center', 'center', 'center', 'center'],
+            headerBGC: '#031d42',
+            columnWidth: [140, 250, 130, 200],
+            headerHeight: 30,
+            oddRowBGC: '#031d42',
+            evenRowBGC: '#031d42',
+            waitTime: 5000,
+            rowNum: 8
+          };
+        };
       }
     },
     watch: {
@@ -172,12 +231,6 @@
               ? '18px'
               : '16px';
             this.isFlag = true;
-
-            this.$nextTick(() => {
-              statisticsDeviceStatus().then((data) => {
-                this.totalData = data;
-              });
-            });
           });
         },
         immediate: true
@@ -216,11 +269,6 @@
               ? '18px'
               : '16px';
             this.isFlag = true;
-            this.$nextTick(() => {
-              statisticsDeviceStatus().then((data) => {
-                this.totalData = data;
-              });
-            });
           });
         },
         immediate: true
@@ -244,56 +292,7 @@
         WeightStorageTotal: 0,
         salesChart: null,
         outputChart: null,
-        orderStatusOptions: {
-          0: '待接收',
-          1: '已接收',
-          2: '执行中',
-          3: '待验收',
-          4: '已完成'
-        },
-        tableHeader: ['工单号', '负责人', '状态', '响应时间'],
-        config: {
-          header: [],
-          data: [],
-          align: ['center', 'center', 'center', 'center'],
-          headerBGC: '#031d42',
-          columnWidth: [110, 120],
-          headerHeight: 20,
-          oddRowBGC: '#031d42',
-          evenRowBGC: '#031d42',
-          waitTime: 5000,
-          rowNum: 12
-        },
-        optionData: [
-          {
-            code: '3',
-            name: '运行数量',
-            cws: 80,
-            zcs: 20,
-            zcl: '25%',
-            value: 80,
-            startRatio: 0,
-            endRatio: 0.34782608695652173,
-            itemStyle: {
-              color: '#5089F2',
-              opacity: 1
-            }
-          },
-          {
-            code: '1',
-            name: '故障检修数量',
-            cws: 40,
-            zcs: 30,
-            zcl: '75%',
-            value: 40,
-            startRatio: 0.8260869565217391,
-            endRatio: 1,
-            itemStyle: {
-              color: '#FF736A',
-              opacity: 1
-            }
-          }
-        ]
+        tableHeader: ['工单号', '负责人', '状态', '响应时间']
       };
     },
     created() {
@@ -301,15 +300,35 @@
       this.updateTimer = setInterval(this.updateTime, 1000);
     },
     mounted() {
-      this.getSalesFinishList();
-      setInterval(() => {
-        this.getSalesFinishList();
-      }, 3600000);
-      statisticsDeviceStatus().then((data) => {
+      // this.getSalesFinishList();
+      // setInterval(() => {
+      //   this.getSalesFinishList();
+      // }, 3600000);
+      screenSubstanceGroupQuery().then((data) => {
         this.totalData = data;
+        // this.getSalesFinishList()
       });
     },
     methods: {
+      getColor(val) {
+        // 0: '待接收',
+        //   1: '已接收',
+        //   2: '执行中',
+        //   3: '待验收',
+        //   4: '已完成'
+        if (val == '待接收') {
+          return 'white';
+        }
+        if (val == '已接收') {
+          return 'yellow';
+        }
+        if (val == '执行中') {
+          return 'green';
+        }
+        if (val == '待验收') {
+          return 'red';
+        }
+      },
       fomatFloat(num, n) {
         var f = parseFloat(num);
         if (isNaN(f)) {
@@ -333,85 +352,12 @@
         this.isFullscreen = !this.isFullscreen;
       },
       //
-      async getSalesFinishList() {
-        /*customerMark	客户代号	string
-deliveryStatus	交付状态 1未交付2提前3按时4延期	integer(int32)
-produceStatus	生产状态 1未生产2已生产3已完成	integer(int32)
-purchaseStatus	采购状态 1未采购2已采购3已入库	integer(int32)
-saleOrderCode	销售订单号	string
-scheduleStatus	排产状态 1待排产2已排产	integer(int32)*/
-        let HeaderFiled = [
-          'customerMark',
-          'saleOrderCode',
-          'purchaseStatus',
-          'scheduleStatus',
-          'produceStatus',
-          'deliveryStatus'
-        ];
-        let data = await getRepairWorkList();
-        console.log(data);
-        this.config = {
-          header: this.tableHeader.map(
-            (item) =>
-              `<div style="color: #0577FF;font-size: 1.3rem;font-weight: bold">${item}</div>`
-          ),
-          data:
-            data.map((item) => {
-              let list = [];
-              for (let i in item) {
-                let div = '';
-                if (i === 'executeGroupName') {
-                  div = `<div class="white" style="font-size: 1.3rem;">${item[i]}</div>`;
-                  list[0] = div;
-                }
-                if (i === 'executeUserName') {
-                  div = `<div class="white" style="font-size: 1.3rem;">${item[i]}</div>`;
-                  list[1] = div;
-                }
-                if (i === 'orderStatus') {
-                  if (item[i] > -1) {
-                    switch (item[i]) {
-                      case '0':
-                        div = `<div class="white" style="font-size: 1.3rem;">${
-                          this.orderStatusOptions[item[i]]
-                        }</div>`;
-                        break;
-                      case '1':
-                        div = `<div class="yellow" style="font-size: 1.3rem;">${
-                          this.orderStatusOptions[item[i]]
-                        }</div>`;
-                        break;
-                      case '2':
-                        div = `<div class="green" style="font-size: 1.3rem;">${
-                          this.orderStatusOptions[item[i]]
-                        }</div>`;
-                        break;
-                      default:
-                        div = `<div class="red" style="font-size: 1.3rem;">${
-                          this.orderStatusOptions[item[i]]
-                        }</div>`;
-                        break;
-                    }
+      // async getSalesFinishList() {
+      //   this.totalData
+      //   this.config = {
 
-                    list[2] = div;
-                  } else {
-                    div = `<div class="white" style="font-size: 1.3rem;"></div>`;
-                    list[2] = div;
-                  }
-                }
-              }
-              return list;
-            }) ?? [],
-          align: ['center', 'center', 'center', 'center', 'center', 'center'],
-          headerBGC: '#031d42',
-          columnWidth: [140, 250, 170, 150],
-          headerHeight: 30,
-          oddRowBGC: '#031d42',
-          evenRowBGC: '#031d42',
-          waitTime: 5000,
-          rowNum: 8
-        };
-      },
+      //   };
+      // },
       //实时更新日期
       updateTime() {
         let now = new Date();
@@ -506,18 +452,14 @@ scheduleStatus	排产状态 1待排产2已排产	integer(int32)*/
       height: 8.625rem;
       width: 100%;
       position: relative;
+      display: flex;
+      justify-content: space-around;
       > div {
         width: 25.77rem;
         height: 6.27rem;
         background-size: 100% 100%;
         background-repeat: no-repeat;
         line-height: 6.27rem;
-      }
-      .runDeviceInfo {
-        position: absolute;
-        top: 1.177rem;
-        left: 10.625rem;
-        background-image: url('@/assets/successInfo.png');
         display: flex;
         align-items: center;
         justify-content: center;
@@ -530,36 +472,19 @@ scheduleStatus	排产状态 1待排产2已排产	integer(int32)*/
           }
         }
       }
+      .runDeviceInfo {
+        background-image: url('@/assets/successInfo.png');
+      }
       .repaireInfo {
-        position: absolute;
-        top: 1.177rem;
-        left: 38.625rem;
         background-image: url('@/assets/runDevice.png');
-        display: flex;
-        align-items: center;
-        justify-content: center;
-        > div {
-          font-family: '优设标题黑';
-          font-size: 2.3rem;
-          color: #fff;
-          > span {
-            color: #00c1fd;
-          }
-        }
+      }
+      .repaireInfo1 {
+        background-image: url('@/assets/runDevice.png');
       }
       .faultDeviceInfo {
-        position: absolute;
-        top: 1.177rem;
-        right: 12.625rem;
-        display: flex;
-        align-items: center;
-        justify-content: center;
         background-image: url('@/assets/faultDevice.png');
         > div {
-          font-family: '优设标题黑';
-          font-size: 2.3rem;
-          color: #fff;
-          > span {
+          span {
             color: #f26e6c;
           }
         }

+ 1 - 1
src/views/bpm/vis-page/index2.vue

@@ -12,7 +12,7 @@
           <!-- <img src="../../../assets/logo_1.png" alt="" />
           <span>株硬集团型材分公司</span> -->
         </div>
-        <div class="title"> 型材设备信息看板 </div>
+        <div class="title"> 设备信息看板 </div>
         <div class="time">
           <span
             style="color: #7fa7ce; margin: 5px 10px 15px 0; cursor: pointer"