gaoshp
2024-11-05 e2fdfe540eaf160dc7d063c60667041edcc64e86
src/views/mdc/station-live.vue
@@ -2,7 +2,7 @@
 * @Author: lzhe lzhe@example.com
 * @Date: 2024-03-26 10:28:33
 * @LastEditors: lzhe lzhe@example.com
 * @LastEditTime: 2024-06-17 16:57:30
 * @LastEditTime: 2024-10-23 10:34:29
 * @FilePath: /smart-web/src/views/master/person/main/index.vue
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -14,7 +14,7 @@
      </div>
      <div class="aposcope-right">
         <div class="content-machine-box">
            <div class="content-machine-img"><img src="./station.png" alt=""></div>
            <div class="content-machine-img"><img :src="stationForm.avatar" alt=""></div>
            <div class="content-machine-detail">
               <div class="content-machine-name">{{stationForm.machineName}}</div>
               <el-form :model="stationForm" ref="dialogForm" label-width="80px" label-position="center" style="width: 100%;">
@@ -46,7 +46,7 @@
                  </div>
               </div>
               <div class="fact-analysis-card" v-for="item in dmpList" v-if="dmpList.length != 0">
                  <div class="card-name" :style="{'background-color': item.color}">{{item.description}}</div>
                  <div class="card-name" :style="{'background-color': item.color}">{{item.dpLabel}}</div>
                  <div :class="{'card-value': true,'card-value-bg1':item.name != 'Alarm','card-value-bg2':item.name == 'Alarm'}">{{item.codeName}}</div>
               </div>
            </div>
@@ -70,7 +70,7 @@
                           <div class="status-box" v-for="item in achievements"><div class="status-color" :style="{'background-color': item.color}"></div>{{ item.name }}</div>
                        </div>
                        <div class="status-wrap">
                           <el-checkbox v-model="checked1" label="人工反馈状态" size="large" />
                           <el-checkbox v-model="humanFeedback" label="人工反馈状态" size="large" />
                           <div class="status-con">
                              <div class="status-box" v-for="item in collectionstatus"><div class="status-color" :style="{'background-color': item.color}"></div>{{ item.name }}</div>
                           </div>
@@ -124,6 +124,7 @@
   <save-dialog v-if="dialog.save" ref="saveDialog"  @success="addfeedbackSuccess" :workstationId="lastLevelId" @closed="dialog.save=false"></save-dialog>
</template>
<script>
   import station from "./station.png";
   import moment from 'moment'
   import * as echarts from 'echarts';
   import saveDialog from './add-station-status'
@@ -133,7 +134,7 @@
         return {
            achievements: [],
            collectionstatus: [],
            checked1: "",
            humanFeedback: "",
            alarmtotal: 0,
            alarmtableData: [],
            wcsDate: "",
@@ -319,7 +320,7 @@
            this.alarmsearchBtn();
         },
         alarmsearchBtn() {
            this.$HTTP.get(`/api/blade-mdc/work-station-analysis/alarm/${this.lastLevelId}?current=${this.alarmsearchData.current}&size=${this.alarmsearchData.size}`).then(res=> {
            this.$HTTP.get(`/api/mdc/work-station-analysis/alarm/${this.lastLevelId}?current=${this.alarmsearchData.current}&size=${this.alarmsearchData.size}`).then(res=> {
               if(res.code == 200) {
                  this.alarmtableData = res.data.records;
                  this.alarmtotal = res.data.total;
@@ -336,10 +337,10 @@
         getrecord() {  //班次状态记录table
            var obj = {
               date: this.wcsDate,
               humanFeedback: true,
               humanFeedback: this.humanFeedback,
               workstationId: this.lastLevelId
            }
            this.$HTTP.post(`/api/blade-mdc/status-record/shift-index-status-record-table`,obj).then(res=> {
            this.$HTTP.post(`/api/mdc/status-record/shift-index-status-record-table`,obj).then(res=> {
               if(res.code == 200) {
                  var defaultValues = {  
                     oee: 0,  
@@ -412,10 +413,10 @@
            var obj = {
               date: this.wcsDate,
               //date : "2024-05-15",
               humanFeedback: true,
               humanFeedback: this.humanFeedback,
               workstationId: this.lastLevelId
            }
            this.$HTTP.post(`/api/blade-mdc/status-record/shift-index-status-record-chart`,obj).then(res=> {
            this.$HTTP.post(`/api/mdc/status-record/shift-index-status-record-chart`,obj).then(res=> {
               if(res.code == 200) {
                  var yAxisData = [];
                  var newData = [];
@@ -560,10 +561,10 @@
         getwscLvalue() {
            var obj = {
               date: this.wcsDate,
               humanFeedback: true,
               humanFeedback: this.humanFeedback,
               workstationId: this.lastLevelId
            }
            this.$HTTP.post(`/api/blade-mdc/status-record/time-distribution`,obj).then(res=> {
            this.$HTTP.post(`/api/mdc/status-record/time-distribution`,obj).then(res=> {
               if(res.code == 200) {
                  var myChart = echarts.init(document.getElementById('wcs-left')); 
                  var wcsOption = JSON.parse(JSON.stringify(this.wcsBeginOption));
@@ -586,7 +587,7 @@
            })
         },
         getwcsLcolor() {
            this.$HTTP.get(`/api/blade-cps/global_wcs/list?code=&name=`).then(res=> {
            this.$HTTP.get(`/api/smis/global_wcs/list?code=&name=`).then(res=> {
               if(res.code == 200) {
                  res.data.forEach(item=> {
                     item.itemStyle = {color: item.color};
@@ -599,10 +600,10 @@
         getwcsR() {
            var obj = {
               date: this.wcsDate,
               humanFeedback: true,
               humanFeedback: this.humanFeedback,
               workstationId: this.lastLevelId
            }
            this.$HTTP.post(`/api/blade-mdc/status-record/equipment-efficiency`,obj).then(res=> {
            this.$HTTP.post(`/api/mdc/status-record/equipment-efficiency`,obj).then(res=> {
               if(res.code == 200) {
                  var myChart = echarts.init(document.getElementById('wcs-right')); 
                  res.data.forEach(item=> {
@@ -629,8 +630,11 @@
         handleNodeClick(data) {
            if(data.code) {
               this.lastLevelId = data.id;
               this.$HTTP.get(`/api/blade-cps/workstation/get?workstationId=${this.lastLevelId}`).then(res=> {
               this.$HTTP.get(`/api/smis/workstation/get?workstationId=${this.lastLevelId}`).then(res=> {
                  if(res.code == 200) {
                     if(res.data.avatar == "") {
                        res.data.avatar = station;
                     }
                     this.stationForm = res.data;
                     this.getdmp(this.lastLevelId,this.stationForm.machineId);
                     //this.newDate();  //获取当前日期
@@ -644,7 +648,7 @@
            }
         },
         getdmp(lastLevelId,machineId) {
            this.$HTTP.get(`/api/blade-cps/workstation/get-dmp-variables?machineId=${machineId}&workstationId=${lastLevelId}`).then(res=> {
            this.$HTTP.get(`/api/smis/workstation/listDatapointsByWorkstationId?machineId=${machineId}&workstationId=${lastLevelId}`).then(res=> {
               if(res.code == 200) {
                  this.dmpList = [];
                  var that = this;
@@ -653,55 +657,57 @@
                     type: "realTimeData",
                     workstationIdList: [lastLevelId]
                  }
                  if(res.data.dpConfig == null || res.data.dpConfig.length == 0) return;  //没值不用循环
                  if(this.$TOOL.socket.websocket == null) {  //没有建立先建立
                     this.$TOOL.socket.connectToWebSocket(this.$TOOL.cookie.get("TOKEN")); 
                  }
                  this.$TOOL.socket.sendDataToWebSocket(obj);  //发送
                  this.$TOOL.socket.websocket.onmessage = function(event) {  
                     if(res.data.length == 0) return;  //没值不用循环
                       res.data.forEach((item,index)=> {  //第一步把v放到code里
                          var eventData = JSON.parse(event.data);
                         if(item.name == "DeviceStatus") {  //机器状态
                           if(eventData.data[item.name]) {
                              item.code = eventData.data[item.name].v;
                     var JSONData = JSON.parse(res.data.dpConfig);
                     var eventData = JSON.parse(event.data);
                     if(Object.keys(eventData.data).length == 0) return;
                       JSONData.forEach((item,index)=> {  //第一步把v放到code里
                         if(item.dpName == "DeviceStatus") {  //机器状态
                           if(eventData.data[item.dpName]) {
                              item.code = eventData.data[item.dpName].v;
                           }
                             that.allwcs.forEach(item1=> {
                             that.allwcs.forEach((item1)=> {
                                if(item.code == item1.code) {
                                   item.codeName = item1.name;    //第二步把v的code和运行对应
                                   if(item.code == "2") {
                                      item.color = "#73D13D";
                                   }else {
                                      item.color = "#75C0C0";
                                   }
                                   item.color = item1.color;
                                }
                             })
                         }else {
                            if(item.name == 'Alarm') {  //报警
                              if(eventData.data[item.name]) {
                                 var v = JSON.parse(eventData.data[item.name].v);
                            if(item.dpName == 'Alarm') {  //报警
                              if(eventData.data[item.dpName]) {
                                 var v = JSON.parse(eventData.data[item.dpName].v);
                                 if(Array.isArray(v)) {  //如果是数组,不赋值
                                    if(v.length == 0) {
                                       res.data.splice(index,1);
                                       JSONData.splice(index,1);
                                    }else {
                                       item.description = v[0].code;
                                       item.codeName = v[0].msg;
                                       item.color = "#370C0D";
                                    }
                                 }else {
                                    item.description = v.code;
                                    item.codeName = v.msg;
                                    item.color = "#370C0D";
                                 }
                              }
                            }else {
                              if(eventData.data[item.name]) {
                                 item.codeName = eventData.data[item.name].v;
                                   item.color = "#75C0C0";
                              if(eventData.data[item.dpName]) {
                                 item.codeName = eventData.data[item.dpName].v;
                              }else {
                                 item.codeName = "";
                              }
                            }
                           that.allwcs.forEach((item1)=> {
                                if(item.code == item1.code) {
                                   item.color = item1.color;
                                }else {
                                 item.color = "#7FC0C0";
                              }
                             })
                         }
                     });
                     that.dmpList = res.data;
                     that.dmpList = JSONData;
                   };
               }
            })
@@ -766,7 +772,7 @@
               groupCategory: 1,
               groupType: "group_workstation"
            }
            this.$HTTP.post("/api/blade-cps/group/groupWorkstation/type",obj).then(res=> {
            this.$HTTP.post("/api/smis/group/groupWorkstation/type",obj).then(res=> {
               if(res.code == 200) {
                  if (res.code == 200) {
                     var treeDisabled = this.addTreeDisable(res.data);
@@ -792,7 +798,7 @@
            })
         },
         getachievements() { //班次状态记录采集状态
            this.$HTTP.get(`/api/blade-cps/global_wcs/wcs-achievements`).then(res=> {
            this.$HTTP.get(`/api/smis/global_wcs/wcs-achievements`).then(res=> {
               if(res.code == 200) {
                  var achievements = [];//采集状态
                  var collectionstatus = [];  //人工反馈状态
@@ -811,8 +817,11 @@
            })
         },
         getlist() {
            this.$HTTP.get(`/api/blade-cps/workstation/get?workstationId=${this.lastLevelId}`).then(res=> {
               if(res.code == 200) {
            this.$HTTP.get(`/api/smis/workstation/get?workstationId=${this.lastLevelId}`).then(res=> {
               if(res.code == 200) {
                  if(res.data.avatar == "") {
                     res.data.avatar = station;
                  }
                  this.stationForm = res.data;
                  this.getdmp(this.lastLevelId,this.stationForm.machineId);
               }