Merge pull request 'dev' (#271) from dev into master

Reviewed-on: http://git.feashow.cn/clay/tunnel-cloud-web/pulls/271
This commit is contained in:
2024-02-26 09:47:55 +00:00
3 changed files with 126 additions and 87 deletions

View File

@@ -127,7 +127,7 @@ const handleOpenChart = (id, type) => {
const timeSelect = (index) => {
if (index === 0) {
getChartInfo(openDialogId.value, 'year')
getChartInfo(openDialogId.value, 'years')
} else if (index === 1) {
getChartInfo(openDialogId.value, 'month')
} else if (index === 2) {

View File

@@ -11,11 +11,11 @@
<!-- echarts -->
<div class="echart"></div>
<!-- 风机名 -->
<div class="fan-name">{{ changeNum(index + 1) }}号风机</div>
<div class="fan-name">{{ changeNum(item) }}号风机</div>
<!-- 功能 -->
<div class="option-nav">
<div>
<div class="state">
<div class="state" :class="{changeMargin: item.showTooltip}">
<div class="blue-state" :class="{ stopColor: item.breakdown }">
<div :style="{ backgroundImage: 'url(' +getImageUrl(item.breakdown)+')' }" class="state-icon"></div>
状态<span class="fan-state">{{ item.breakdown ? '故障' : '运行' }}</span>
@@ -24,14 +24,14 @@
<div
id="auto"
:class="{ active: item.running }"
@click="item.running = true;editOperate(item)"
@click="item.running = true;editOperate(item,'启动')"
>
启动
</div>
<div
id="stop"
:class="{ active: !item.running }"
@click="item.running = false;editOperate(item)"
@click="item.running = false;editOperate(item,'停止')"
>
停止
</div>
@@ -45,27 +45,33 @@
</el-radio-group>
</div>
<div class="edit-power">
<span style="color: white">给定频率</span>
<!-- <span class="units"-->
<!-- ><input-->
<!-- type="number"-->
<!-- min="0"-->
<!-- v-model="item.frequencySetting"-->
<!-- onchange="changeFrequency(item)"-->
<!-- :disabled="item.autoMode"-->
<!-- /></span>-->
<el-input type="number" min="0" v-model="item.frequencySetting" :disabled="item.autoMode"
@change="changeFrequency(item)">
<template #suffix>
<span>Hz</span>
</template>
</el-input>
<div>
<span style="color: white">给定频率</span>
<!-- <span class="units"-->
<!-- ><input-->
<!-- type="number"-->
<!-- min="0"-->
<!-- v-model="item.frequencySetting"-->
<!-- onchange="changeFrequency(item)"-->
<!-- :disabled="item.autoMode"-->
<!-- /></span>-->
<el-input type="number" min="0" v-model="item.frequencySetting" :disabled="item.autoMode" title=""
@change="changeFrequency(item)" @focus="item.showTooltip=true" @blur="item.showTooltip=false">
<template #suffix>
<span>Hz</span>
</template>
</el-input>
</div>
<span v-if="item.showTooltip">
正在输入中...
</span>
</div>
</div>
</div>
</div>
</div>
<div class="current" @click="handleOpenChart(item,index)">
<div class="current" @click="handleOpenChart(item)">
<fan-info-item :wp="transducerData[index]"/>
</div>
<div class="line"></div>
@@ -85,7 +91,7 @@
</div>
<div class="digital-tunnel">
<el-dialog :close-on-click-modal="false" v-model="isVisited" :title="changeNum(fanIndex)+'号风机电流监控数据'"
<el-dialog :close-on-click-modal="false" v-model="isVisited" :title="fanIndex+'号风机电流监控数据'"
width="2175px"
:modal="false">
<div class="left-top-icon"></div>
@@ -122,6 +128,7 @@ import {
editFrequencyOperationSwitch,
getFanEchartsInfo
} from "@/api/largeScreen";
import {ElMessage, ElMessageBox} from "element-plus";
const timeList = ref(["年", "月", "日"]);
const selectTimeButton = ref(2);
@@ -155,7 +162,7 @@ const stateB = ref(false)
const stateC = ref(false)
const isVisited = ref(false)
const showLoading = ref(false)
const fanIndex = ref(0)
const fanIndex = ref('')
const openEquipmentId = ref(0)
let myEcharts = reactive({});
watch(() => props.loading, (now) => {
@@ -199,11 +206,11 @@ watch(() => props.list, (now) => {
}, {deep: true});
const timeSelect = (index) => {
if (index === 0) {
getFanInfo(openEquipmentId.value,'years')
getFanInfo(openEquipmentId.value, 'years')
} else if (index === 1) {
getFanInfo(openEquipmentId.value,'month')
getFanInfo(openEquipmentId.value, 'month')
} else if (index === 2) {
getFanInfo(openEquipmentId.value,'day')
getFanInfo(openEquipmentId.value, 'day')
}
};
const packageData = (item, type, flag) => {
@@ -228,23 +235,45 @@ const packageData = (item, type, flag) => {
}
}
//启动/停止
const editOperate = (item) => {
const data = packageData(item, item.running)
// editFrequencyOperationSwitch(data).then(res => {
// console.log('修改风机启动', res)
// })
const editOperate = (item, type) => {
ElMessageBox.confirm(`是否${type}该风机?`, '系统提示', {
type: 'warning',
closeOnClickModal: false
}).then(() => {
const data = packageData(item, item.running)
editFrequencyOperationSwitch(data).then(res => {
console.log('修改风机启动', res)
if (res.code === 1000) {
ElMessage.success(res.msg)
} else {
ElMessage.error(res.msg)
}
})
})
}
const changeFrequency = (item) => {
console.log('修改频率')
const data = packageData(item, item.frequencySetting, true)
// editFrequency(data).then(res => {
// console.log('修改风机频率', res)
// })
editFrequency(data).then(res => {
console.log('修改风机频率', res)
if (res.code === 1000) {
ElMessage.success(res.msg)
} else {
ElMessage.warning(res.msg)
}
})
}
const changeModel = (item) => {
const data = packageData(item, item.autoMode)
// editFrequencyModelSwitch(data).then(res => {
// console.log('修改自动模式', res)
// })
editFrequencyModelSwitch(data).then(res => {
console.log('修改自动模式', res)
if (res.code === 1000) {
ElMessage.success(res.msg)
} else {
ElMessage.warning(res.msg)
}
})
}
const getFanInfo = (equipmentId, type = 'day') => {
isVisited.value = true
@@ -258,10 +287,14 @@ const getFanInfo = (equipmentId, type = 'day') => {
}
})
}
const handleOpenChart = (item, index) => {
const handleOpenChart = (item) => {
openEquipmentId.value = item.equipmentId
getFanInfo(item.equipmentId, 'day')
fanIndex.value = index + 1
if (item.equipmentId === 22) {
fanIndex.value = '一'
} else {
fanIndex.value = '二'
}
}
const getTransData = (data) => {
let tranObj = {}
@@ -294,14 +327,13 @@ const getImage = (type) => {
return "red-state-icon.png";
}
}
const changeNum = (index) => {
switch (index) {
case 1:
const changeNum = (item) => {
console.log('1号变频器')
switch (item.equipmentId) {
case 22:
return '一';
case 2:
case 23:
return '二';
case 3:
return '三';
}
}
const getBasicData = (data) => {
@@ -310,10 +342,12 @@ const getBasicData = (data) => {
data?.map(item => {
tranObj = {
equipmentId: item.equipmentId,
equipmentName: item.equipmentName,
equipmentType: item.equipmentType,
autoMode: item.autoMode,//自动模式
breakdown: item.breakdown,//故障
running: item.running,//启动,
showTooltip:false,
frequencyFeedback: item.frequencyFeedback,
frequencySetting: item.frequencySetting
}
@@ -414,7 +448,7 @@ const handleOnMounted = () => {
},
data: [
{
value: socketData.value[i].frequencyFeedback,
value: socketData.value[i].frequencySetting,
fontSize: 2100,
detail: {
valueAnimation: true,
@@ -773,20 +807,22 @@ input[type="number"] {
color: #38cafb;
line-height: 35px;
text-align: center;
margin-right: 42px;
margin-right: 25px;
transform: translateY(33%);
}
.option-nav {
display: flex;
flex-direction: column;
//display: flex;
//flex-direction: column;
width: 70%;
> div:first-child {
margin-top: 48px;
display: flex;
align-items: center;
.changeMargin{
margin-top: -40px;
}
.state {
flex: 1;
display: flex;
@@ -807,7 +843,7 @@ input[type="number"] {
height: 45px;
margin-right: 15px;
color: #fff;
background-color: #127399;
background-color: #3eab3f;
padding-left: 10px;
border-radius: 8px;
margin-left: -5px;
@@ -853,7 +889,7 @@ input[type="number"] {
font-size: 28px;
color: #38cafb;
line-height: 37px;
gap: 33px;
gap: 40px;
.check-box {
display: flex;
@@ -865,43 +901,44 @@ input[type="number"] {
.edit-power {
margin-top: 10px;
display: flex;
flex-direction: column;
> span:first-child {
white-space: pre;
margin-right: 14px;
}
> div:first-child {
display: flex;
//:deep(.is-disabled) {
// .el-input__inner{
// color: #FFFFFF!important;
// }
//}
:deep(.el-input__wrapper) {
width: 130px;
height: 44px;
background-color: transparent;
box-shadow: none;
border: 1px solid #38CAFB;
transform: none;
transition: none;
margin-right: 10px;
.el-input__inner {
> span:first-child {
white-space: pre;
margin-right: 14px;
}
:deep(.el-input__wrapper) {
width: 160px;
height: 44px;
font-size: 30px;
font-weight: bold;
color: #38CAFB;
}
background-color: transparent;
box-shadow: none;
border: 1px solid #38CAFB;
transform: none;
transition: none;
margin-right: 10px;
.el-input__inner {
height: 44px;
font-size: 30px;
font-weight: bold;
color: #38CAFB;
}
.el-input__suffix-inner {
font-size: 30px;
color: #38CAFB;
line-height: 40px;
font-weight: bold;
.el-input__suffix-inner {
font-size: 30px;
color: #38CAFB;
line-height: 40px;
font-weight: bold;
}
}
}
//.units {
// position: relative;
//}

View File

@@ -48,6 +48,7 @@ const props = defineProps({
loading: Number,
});
const windSort = ref(1)
const windSortId = ref(1)
const timeList = ref(["年", "月", "日"]);
const selectTimeButton = ref(2);
const isVisited = ref(false);
@@ -68,10 +69,10 @@ watch(() => props.winData, (now) => {
getScreenInfo(now.windPressureSensorList)
}, {deep: true});
const getWindInfo = (equipmentId) => {
const getWindInfo = (equipmentId,type='day') => {
isVisited.value = true
showLoading.value=true
getEchartsInfo(equipmentId).then(res => {
getEchartsInfo(equipmentId,type).then(res => {
if (res?.code === 1000) {
showLoading.value=false
nextTick(() => {
@@ -82,17 +83,18 @@ const getWindInfo = (equipmentId) => {
}
const handleOpenChart = (item) => {
selectTimeButton.value=2
getWindInfo(item.equipmentId)
windSort.value = item.equipmentName
windSortId.value = item.equipmentId
}
const timeSelect = (index) => {
console.log('选择时间', index)
if (index === 0) {
console.log('--年')
getWindInfo(windSortId.value,'years')
} else if (index === 1) {
console.log('--月')
getWindInfo(windSortId.value,'month')
} else if (index === 2) {
console.log('--日')
getWindInfo(windSortId.value,'day')
}
};
const getScreenInfo = (now) => {