From 031f3a97f1aa55617ad39506c6cafac2ff6a0938 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 03 十一月 2024 20:04:36 +0800
Subject: [PATCH] update
---
src/views/mdc/station-live.vue | 126 ++++++++++++++++++++++++++++++++---------
1 files changed, 98 insertions(+), 28 deletions(-)
diff --git a/src/views/mdc/station-live.vue b/src/views/mdc/station-live.vue
index 5256404..e13026e 100644
--- a/src/views/mdc/station-live.vue
+++ b/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-05-15 16:25:52
+ * @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%;">
@@ -38,16 +38,16 @@
<div class="collect-info-panel">
<div class="fact-analysis-realtim">
<div class="wimi-empty" style="background-color: rgb(255, 255, 255);" v-if="dmpList.length == 0">
- <div class="wimi-empty-img" style="width: 150px; height: 150px;">
+ <!-- <div class="wimi-empty-img" style="width: 150px; height: 150px;">
<img src="./quesheng.bd026700.png" style="height: auto; width: 100%;">
- </div>
+ </div> -->
<div class="empty-description">
<div>鏆傛棤鏁版嵁</div>
</div>
</div>
<div class="fact-analysis-card" v-for="item in dmpList" v-if="dmpList.length != 0">
- <div class="card-name" style="background-color: rgb(127, 192, 192);">{{item.description}}</div>
- <div class="card-value" style="background-color: rgba(127, 192, 192, 0.14);"></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>
</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() { //鐝鐘舵�佽褰晅able
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 = [];
@@ -505,7 +506,6 @@
interval: 1440/6, //姣忛殧澶氬皯鍒嗛挓鏄剧ず涓�涓埢搴�
axisLabel: {
formatter: (value)=> {
- //console.log(value,111)
if(value == 0) {
return "00:00:00";
}else if(value == 240) {
@@ -561,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));
@@ -587,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};
@@ -600,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=> {
@@ -630,11 +630,14 @@
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(); //鑾峰彇褰撳墠鏃ユ湡
+ //this.newDate(); //鑾峰彇褰撳墠鏃ユ湡
this.getwcsR();
this.getwscLvalue(); //宸︿晶鍥捐〃
this.alarmsearchBtn(); //鏈哄櫒灞ュ巻
@@ -645,10 +648,67 @@
}
},
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 = res.data;
- //console.log(this.dmpList,111)
+ this.dmpList = [];
+ var that = this;
+ //鍙戦�亀ebsocket
+ var obj = {
+ 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) {
+ 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)=> {
+ if(item.code == item1.code) {
+ item.codeName = item1.name; //绗簩姝ユ妸v鐨刢ode鍜岃繍琛屽搴�
+ item.color = item1.color;
+ }
+ })
+ }else {
+ 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) {
+ JSONData.splice(index,1);
+ }else {
+ item.codeName = v[0].msg;
+ }
+ }else {
+ item.codeName = v.msg;
+ }
+ }
+ }else {
+ 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 = JSONData;
+ };
}
})
},
@@ -712,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);
@@ -738,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 = []; //浜哄伐鍙嶉鐘舵��
@@ -757,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);
}
@@ -864,6 +927,13 @@
padding: 0 8px;
overflow: hidden;
word-break: break-all;
+ line-height: 68px;
+}
+.card-value-bg1 {
+ background-color: rgba(115, 209, 61, 0.14);
+}
+.card-value-bg2 {
+ background-color: rgba(55, 12, 13, 0.14);
}
.wcs-main {
display: flex;
--
Gitblit v1.9.3