|
@@ -94,15 +94,14 @@
|
|
<div id="main3D" style="width: 100%; height: 100%; position: absolute; overflow: hidden"> </div>
|
|
<div id="main3D" style="width: 100%; height: 100%; position: absolute; overflow: hidden"> </div>
|
|
<FanEchrats id="fan-echarts" :chartData="selectData" style="position: absolute; z-index: -1" />
|
|
<FanEchrats id="fan-echarts" :chartData="selectData" style="position: absolute; z-index: -1" />
|
|
</div>
|
|
</div>
|
|
- <!-- v-if="hasPermission('btn:remote')" -->
|
|
|
|
- <div class="top-right">
|
|
|
|
|
|
+ <!-- 控制模式 -->
|
|
|
|
+ <div v-if="hasPermission('fan:remote')" class="top-right">
|
|
<div class="control-title">控制模式:</div>
|
|
<div class="control-title">控制模式:</div>
|
|
<a-radio-group v-model:value="selectData.autoRoManual">
|
|
<a-radio-group v-model:value="selectData.autoRoManual">
|
|
<template v-for="(item, index) in modelList" :key="index">
|
|
<template v-for="(item, index) in modelList" :key="index">
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
<a-radio :value="item.value" :disabled="true">{{ item.text }}</a-radio>
|
|
</template>
|
|
</template>
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
- <!-- <div class="button-box" v-for="(item, index) in modelList" @click="handleOk('remote', item.value)" :key="index">{{ item.text }}</div> -->
|
|
|
|
<div
|
|
<div
|
|
class="button-box"
|
|
class="button-box"
|
|
v-for="(item, index) in modelList"
|
|
v-for="(item, index) in modelList"
|
|
@@ -123,7 +122,6 @@
|
|
</template>
|
|
</template>
|
|
<!-- <div class="button-box" v-for="(item, index) in modalTypeArr.centerBtnArr" :key="index" @click="showModal(item)">{{ item.value }}</div> -->
|
|
<!-- <div class="button-box" v-for="(item, index) in modalTypeArr.centerBtnArr" :key="index" @click="showModal(item)">{{ item.value }}</div> -->
|
|
</div>
|
|
</div>
|
|
- <!-- 控制模式 -->
|
|
|
|
|
|
|
|
<div v-if="!faultShow" class="data-show-box">
|
|
<div v-if="!faultShow" class="data-show-box">
|
|
<div class="data-item">
|
|
<div class="data-item">
|
|
@@ -281,6 +279,7 @@
|
|
<div
|
|
<div
|
|
class="fault-item"
|
|
class="fault-item"
|
|
v-if="faultItem['valueCode'].startsWith(dataMonitorRowIndex === 0 ? 'faultEqu1_electric1' : 'faultEqu2_electric1')"
|
|
v-if="faultItem['valueCode'].startsWith(dataMonitorRowIndex === 0 ? 'faultEqu1_electric1' : 'faultEqu2_electric1')"
|
|
|
|
+ :class="{ 'fault-warning': faultItem['warnLevel'] == 104, 'fault-error': faultItem['warnLevel'] == 201 }"
|
|
>
|
|
>
|
|
<div class="item" v-for="(item, index) in faultDeviceHeader" :key="index" :style="{ width: item.width }">{{
|
|
<div class="item" v-for="(item, index) in faultDeviceHeader" :key="index" :style="{ width: item.width }">{{
|
|
faultItem[item.code]
|
|
faultItem[item.code]
|
|
@@ -292,7 +291,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="data-item">
|
|
|
|
|
|
+ <div class="data-item" style="margin-top: 8px">
|
|
<div class="item-header">二级电机监测</div>
|
|
<div class="item-header">二级电机监测</div>
|
|
<div class="item-container">
|
|
<div class="item-container">
|
|
<div class="tab">
|
|
<div class="tab">
|
|
@@ -313,6 +312,7 @@
|
|
<div
|
|
<div
|
|
class="fault-item"
|
|
class="fault-item"
|
|
v-if="faultItem['valueCode'].startsWith(warningMonitorRowIndex === 0 ? 'faultEqu1_electric2' : 'faultEqu2_electric2')"
|
|
v-if="faultItem['valueCode'].startsWith(warningMonitorRowIndex === 0 ? 'faultEqu1_electric2' : 'faultEqu2_electric2')"
|
|
|
|
+ :class="{ 'fault-warning': faultItem['warnLevel'] == 104, 'fault-error': faultItem['warnLevel'] == 201 }"
|
|
>
|
|
>
|
|
<div class="item" v-for="(item, index) in faultDeviceHeader" :key="index" :style="{ width: item.width }">{{
|
|
<div class="item" v-for="(item, index) in faultDeviceHeader" :key="index" :style="{ width: item.width }">{{
|
|
faultItem[item.code]
|
|
faultItem[item.code]
|
|
@@ -490,19 +490,32 @@
|
|
</a-radio-group>
|
|
</a-radio-group>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="" v-if="modalType == 'startFan'">
|
|
|
|
|
|
+ <div class="" v-if="modalType == 'startFan' && hasPermission('fan:startAndResetFan')">
|
|
|
|
+ <!-- 不互斥控制 -->
|
|
|
|
+ <div class="startSmoke-select">
|
|
|
|
+ <div class="label">主机:</div>
|
|
|
|
+ <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Open')">开启</div>
|
|
|
|
+ <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Stop')">停止</div>
|
|
|
|
+ <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Reset')">复位</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="startSmoke-select">
|
|
|
|
+ <div class="label">备机:</div>
|
|
|
|
+ <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Open')">开启</div>
|
|
|
|
+ <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Stop')">停止</div>
|
|
|
|
+ <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Reset')">复位</div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="" v-if="modalType == 'startFan' && hasPermission('fan:startFan')">
|
|
<!-- 不互斥控制 -->
|
|
<!-- 不互斥控制 -->
|
|
<div class="startSmoke-select">
|
|
<div class="startSmoke-select">
|
|
<div class="label">主机:</div>
|
|
<div class="label">主机:</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Open')">开启</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Open')">开启</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Stop')">停止</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Stop')">停止</div>
|
|
- <!-- <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan1Reset')">复位</div> -->
|
|
|
|
</div>
|
|
</div>
|
|
<div class="startSmoke-select">
|
|
<div class="startSmoke-select">
|
|
<div class="label">备机:</div>
|
|
<div class="label">备机:</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Open')">开启</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Open')">开启</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Stop')">停止</div>
|
|
<div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Stop')">停止</div>
|
|
- <!-- <div :class="{ 'button-box': true, 'button-disable': false }" @click="handleOk('Fan2Reset')">复位</div> -->
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 防爆门控制 -->
|
|
<!-- 防爆门控制 -->
|
|
@@ -549,7 +562,7 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</a-modal>
|
|
</a-modal>
|
|
- <!-- 在线监测和故障诊断 -->
|
|
|
|
|
|
+ <!-- 保德在线监测和故障诊断 -->
|
|
<div v-if="sysOrgCode === 'sdmtjtbdmk' && faultData.length > 0" class="monitor-tab" @click="showFault">
|
|
<div v-if="sysOrgCode === 'sdmtjtbdmk' && faultData.length > 0" class="monitor-tab" @click="showFault">
|
|
<div class="item" :class="{ 'item-active': !faultShow }">风机监测</div>
|
|
<div class="item" :class="{ 'item-active': !faultShow }">风机监测</div>
|
|
<div class="item" :class="{ 'item-active': faultShow }">在线故障诊断监测</div>
|
|
<div class="item" :class="{ 'item-active': faultShow }">在线故障诊断监测</div>
|
|
@@ -567,7 +580,7 @@
|
|
import FanDeviceEcharts from '../comment/FanDeviceEcharts.vue';
|
|
import FanDeviceEcharts from '../comment/FanDeviceEcharts.vue';
|
|
import BarAndLine from '../../../../components/chart/BarAndLine.vue';
|
|
import BarAndLine from '../../../../components/chart/BarAndLine.vue';
|
|
import FanEchrats from '/@/views/vent/monitorManager/mainFanMonitor/fanEchrats.vue';
|
|
import FanEchrats from '/@/views/vent/monitorManager/mainFanMonitor/fanEchrats.vue';
|
|
- import { onBeforeMount, computed, ref, onMounted, inject, onUnmounted, reactive, toRaw, watch, nextTick, defineAsyncComponent } from 'vue';
|
|
|
|
|
|
+ import { onBeforeMount, unref, ref, onMounted, inject, onUnmounted, reactive, toRaw, watch, nextTick, defineAsyncComponent } from 'vue';
|
|
import GroupMonitorTable from '../comment/GroupMonitorTable.vue';
|
|
import GroupMonitorTable from '../comment/GroupMonitorTable.vue';
|
|
// // import HistoryTable from '../comment/HistoryTable.vue';
|
|
// // import HistoryTable from '../comment/HistoryTable.vue';
|
|
// import HistoryTable from '../../../vent/comment/history/HistoryTable.vue';
|
|
// import HistoryTable from '../../../vent/comment/history/HistoryTable.vue';
|
|
@@ -609,6 +622,7 @@
|
|
const { currentRoute } = useRouter();
|
|
const { currentRoute } = useRouter();
|
|
const { createMessage, createConfirm } = useMessage();
|
|
const { createMessage, createConfirm } = useMessage();
|
|
const { sysOrgCode } = useGlobSetting();
|
|
const { sysOrgCode } = useGlobSetting();
|
|
|
|
+ // const sysOrgCode = 'sdmtjtbdmk';
|
|
const scroll = reactive({
|
|
const scroll = reactive({
|
|
y: 180,
|
|
y: 180,
|
|
});
|
|
});
|
|
@@ -803,6 +817,8 @@
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
+ // const result = await pointMonitor({ ids: '1657545388451663006' });
|
|
|
|
+ // faultData.value = result['valueList'] || [];
|
|
if (faultDevice) {
|
|
if (faultDevice) {
|
|
const result = await pointMonitor({ ids: faultDevice.deviceId });
|
|
const result = await pointMonitor({ ids: faultDevice.deviceId });
|
|
faultData.value = result['valueList'] || [];
|
|
faultData.value = result['valueList'] || [];
|
|
@@ -842,9 +858,10 @@
|
|
if (dataSource.value.length > 0 && dataSource.value[selectRowIndex.value]) {
|
|
if (dataSource.value.length > 0 && dataSource.value[selectRowIndex.value]) {
|
|
Object.assign(selectData, dataSource.value[selectRowIndex.value]);
|
|
Object.assign(selectData, dataSource.value[selectRowIndex.value]);
|
|
}
|
|
}
|
|
|
|
+ addText();
|
|
|
|
+ playAnimate(selectData);
|
|
}
|
|
}
|
|
- addText();
|
|
|
|
- playAnimate(selectData);
|
|
|
|
|
|
+
|
|
if (timer) {
|
|
if (timer) {
|
|
timer = null;
|
|
timer = null;
|
|
}
|
|
}
|
|
@@ -1011,7 +1028,7 @@
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
- const handleOk = () => {
|
|
|
|
|
|
+ const handleOk = (flag?) => {
|
|
if (passWord.value == '') {
|
|
if (passWord.value == '') {
|
|
createMessage.warning('请输入密码!');
|
|
createMessage.warning('请输入密码!');
|
|
return;
|
|
return;
|
|
@@ -1020,10 +1037,10 @@
|
|
iconType: 'warning',
|
|
iconType: 'warning',
|
|
title: '控制',
|
|
title: '控制',
|
|
content: '您确定要控制吗?',
|
|
content: '您确定要控制吗?',
|
|
- onOk: () => handerFn(),
|
|
|
|
|
|
+ onOk: () => handerFn(flag),
|
|
});
|
|
});
|
|
|
|
|
|
- const handerFn = () => {
|
|
|
|
|
|
+ const handerFn = (flag?) => {
|
|
if (modalType.value == 'startSmoke') {
|
|
if (modalType.value == 'startSmoke') {
|
|
if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
|
|
if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
|
|
start('CtrlFan2Start')
|
|
start('CtrlFan2Start')
|
|
@@ -1048,6 +1065,7 @@
|
|
backMonitorIsShow.value = false;
|
|
backMonitorIsShow.value = false;
|
|
}
|
|
}
|
|
} else if (modalType.value == 'changeDirection') {
|
|
} else if (modalType.value == 'changeDirection') {
|
|
|
|
+ // 红柳林矿一键反风操作是倒机+反风,如主机运行,一件反风后,备机启动并风向与原来相反
|
|
if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
|
|
if (selectData['Fan1StartStatus'] == 1 && selectData['Fan2StartStatus'] == 0) {
|
|
// 主机一键反风
|
|
// 主机一键反风
|
|
if (isSimulation) {
|
|
if (isSimulation) {
|
|
@@ -1322,6 +1340,8 @@
|
|
});
|
|
});
|
|
|
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
|
|
+ const { query } = unref(currentRoute);
|
|
|
|
+ if (query['deviceType']) deviceType.value = query['deviceType'] as string;
|
|
loading.value = true;
|
|
loading.value = true;
|
|
modelList.value = await getDictItems('mainFanModel');
|
|
modelList.value = await getDictItems('mainFanModel');
|
|
mountedThree(player1.value).then(async () => {
|
|
mountedThree(player1.value).then(async () => {
|
|
@@ -1632,6 +1652,16 @@
|
|
}
|
|
}
|
|
.fault-container-group {
|
|
.fault-container-group {
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
|
+ .fault-warning {
|
|
|
|
+ color: #ff7b00;
|
|
|
|
+ font-weight: 600px;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ }
|
|
|
|
+ .fault-error {
|
|
|
|
+ color: #ff3410;
|
|
|
|
+ font-weight: 600px;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
.warning-group {
|
|
.warning-group {
|
|
padding: 0 10px;
|
|
padding: 0 10px;
|