|
|
@@ -376,52 +376,43 @@
|
|
|
|
|
|
async function getDataSource(systemID, flag = false) {
|
|
|
const res = await getDevice({ devicetype: 'sys', systemID, type: 'all' });
|
|
|
- if (res) {
|
|
|
- const result = res;
|
|
|
- if (!result || result.msgTxt.length < 1) return;
|
|
|
- result.msgTxt.forEach((item) => {
|
|
|
- if (item.type && item.type.startsWith('nitrogen')) {
|
|
|
- airCompressorState.length = 0;
|
|
|
- let netStatus = 0;
|
|
|
- monitorData.value = item['datalist'].filter((data) => {
|
|
|
- const readData = data.readData;
|
|
|
- if (data['netStatus'] == 1) {
|
|
|
- netStatus = 1;
|
|
|
- }
|
|
|
- airCompressorState.push({
|
|
|
- id: data.deviceID,
|
|
|
- deviceType: data.deviceType,
|
|
|
- HMIReset: readData.HMIReset,
|
|
|
- HMIStartStop: readData.HMIStartStop,
|
|
|
- });
|
|
|
- return Object.assign(data, readData);
|
|
|
- });
|
|
|
- monitorNetStatus.value = netStatus;
|
|
|
- // console.log(monitorData,'monitorData.value---===')
|
|
|
- const airCompressor = {
|
|
|
- readTime: monitorData.value[0]['readTime'] ? monitorData.value[0]['readTime'].substring(11) : dayjs().format('HH:mm:ss'),
|
|
|
- };
|
|
|
- const dataArr = cloneDeep(echartData.value);
|
|
|
- //图表数据
|
|
|
- if (dataArr.length <= 5) {
|
|
|
- monitorData.value.forEach((el, index) => {
|
|
|
- airCompressor[`InputFlux${index + 1}`] = el['InputFlux'] || 0;
|
|
|
- airCompressor['InputFlux'] = el['InputFlux'] || 0;
|
|
|
- });
|
|
|
- dataArr.push(airCompressor);
|
|
|
- } else {
|
|
|
- dataArr.shift();
|
|
|
- dataArr.push(airCompressor);
|
|
|
- }
|
|
|
- echartData.value = dataArr;
|
|
|
- }
|
|
|
- });
|
|
|
- monitorDataGroupNum.value = monitorData.value.length;
|
|
|
- refresh.value = true;
|
|
|
- nextTick(() => {
|
|
|
- refresh.value = false;
|
|
|
+ if (!res) return;
|
|
|
+
|
|
|
+ // 数据、机数、网络状态、控制状态一次提交:
|
|
|
+ // 没绑注氮设备的场景一并归零(不残留上一个场景的机器),也不会出现「机数更新了、数据没更新」的脱节
|
|
|
+ const nitrogenItem = (res.msgTxt || []).find((item) => item?.type?.startsWith('nitrogen'));
|
|
|
+ monitorData.value = (nitrogenItem?.['datalist'] || []).map((data) => Object.assign(data, data.readData || {}));
|
|
|
+ monitorDataGroupNum.value = monitorData.value.length;
|
|
|
+ monitorNetStatus.value = monitorData.value.some((data) => data['netStatus'] == 1) ? 1 : 0;
|
|
|
+
|
|
|
+ airCompressorState.length = 0;
|
|
|
+ monitorData.value.forEach((data) => {
|
|
|
+ airCompressorState.push({ id: data.deviceID, deviceType: data.deviceType, HMIReset: data.HMIReset, HMIStartStop: data.HMIStartStop });
|
|
|
+ });
|
|
|
+
|
|
|
+ // 图表数据:没有机数时不追加点(避免空场景把曲线拉平)
|
|
|
+ if (monitorData.value.length) {
|
|
|
+ const airCompressor = {
|
|
|
+ readTime: monitorData.value[0]?.['readTime'] ? String(monitorData.value[0]['readTime']).substring(11) : dayjs().format('HH:mm:ss'),
|
|
|
+ };
|
|
|
+ monitorData.value.forEach((el, index) => {
|
|
|
+ airCompressor[`InputFlux${index + 1}`] = el['InputFlux'] || 0;
|
|
|
+ airCompressor['InputFlux'] = el['InputFlux'] || 0;
|
|
|
});
|
|
|
+ const dataArr = cloneDeep(echartData.value);
|
|
|
+ if (dataArr.length <= 5) {
|
|
|
+ dataArr.push(airCompressor);
|
|
|
+ } else {
|
|
|
+ dataArr.shift();
|
|
|
+ dataArr.push(airCompressor);
|
|
|
+ }
|
|
|
+ echartData.value = dataArr;
|
|
|
}
|
|
|
+
|
|
|
+ refresh.value = true;
|
|
|
+ nextTick(() => {
|
|
|
+ refresh.value = false;
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
function handlerDevice(data, bol) {
|
|
|
@@ -511,7 +502,7 @@
|
|
|
await mountedThree().then(() => {
|
|
|
loading.value = false;
|
|
|
});
|
|
|
- await getCamera(deviceId, playerRef, renderPlayer);
|
|
|
+ await getCamera(props.deviceId, playerRef, renderPlayer);
|
|
|
});
|
|
|
|
|
|
onUnmounted(() => {
|