From eef1ef0be935d4a3d8fc691b2666f41796b2d4a5 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期一, 04 十一月 2024 19:57:08 +0800
Subject: [PATCH] 增加列表显示

---
 src/views/mdc/station-live.vue |  146 +++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 113 insertions(+), 33 deletions(-)

diff --git a/src/views/mdc/station-live.vue b/src/views/mdc/station-live.vue
index 70027b6..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: "",
@@ -151,7 +152,7 @@
 		            tooltip: {  
 		                trigger: 'item',  
 		                //formatter: '{a} <br/>{b} : {c} ({d}%)'  
-		                formatter: '{a} 0鍒嗛挓'
+		                formatter: '{a} {c}鍒嗛挓'
 		            },  
 		            legend: {  
 		                orient: 'vertical',  
@@ -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,  
@@ -410,16 +411,26 @@
 			},
 			getlogcart() {  //鐝鐘舵�佽褰昪hart
 				var obj = {
-					//date: this.wcsDate,
-					date : "2024-05-15",
-					humanFeedback: true,
+					date: this.wcsDate,
+					//date : "2024-05-15",
+					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 = [];
 						this.records = res.data.reverse();
+						res.data.forEach(item=> {
+							if(item.statusRecordList == null) item.statusRecordList = [];
+							var filterRecordList = [];
+							item.statusRecordList.forEach(item1=> {
+								if(item1.endTime.startsWith(this.wcsDate)) {  //鍙繑鍥炲綋鍓嶇粨鏉熸棩鏈熺殑
+									filterRecordList.push(item1)
+								}
+							})
+							item.statusRecordList = filterRecordList;
+						})
 						res.data.forEach((item,index)=> {
 							yAxisData.push(item.shiftIndex);
 							//璁$畻寮�濮嬫椂闂达紝鏄剧ず鏃堕棿
@@ -442,7 +453,7 @@
 
 						var nowTime = moment().format("HH:mm:ss");  //11:37:54
 						var spaceTime = moment(obj.date + " " + nowTime).diff(moment(obj.date + " 00:00:00"), 'hours');  //绂诲綋澶�00:00:00杩囦簡澶氬皯灏忔椂
-						console.log(spaceTime,obj.date + " " + nowTime,234)
+						//console.log(spaceTime,obj.date + " " + nowTime,234)
 						return;
 						//璁$畻鏃堕棿
 						var startOfDay = moment().startOf('day'); //00:00:00
@@ -495,7 +506,6 @@
 						interval: 1440/6,  //姣忛殧澶氬皯鍒嗛挓鏄剧ず涓�涓埢搴�
 						axisLabel: {
 							formatter: (value)=> {
-								console.log(value,111)
 								if(value == 0) {
 									return "00:00:00";
 								}else if(value == 240) {
@@ -551,16 +561,16 @@
 			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));
 						if(res.data.length == 0) {
 							wcsOption.forEach(item=> {
-								item.value = 20;
+								item.value = 0;
 							})
 						}else {
 							wcsOption.forEach(item=> {
@@ -577,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};
@@ -590,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=> {
@@ -620,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();  //鏈哄櫒灞ュ巻
@@ -635,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;
+					    };
 					}
 				})
 			},
@@ -702,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);
@@ -728,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 = [];  //浜哄伐鍙嶉鐘舵��
@@ -747,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);
 					}
@@ -854,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