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

Reviewed-on: http://git.feashow.cn/clay/tunnel-cloud-web/pulls/274
This commit is contained in:
2024-02-27 08:59:59 +00:00
7 changed files with 103 additions and 53 deletions

View File

@@ -295,25 +295,25 @@ body,
#container {
flex: 1;
height: 1160px;
height: 1200px;
//width: 1300px;
}
#containerFan {
flex: 1;
height: 1160px;
height: 1200px;
//width: 1300px;
}
#containerBad {
flex: 1;
height: 1160px;
height: 1200px;
//width: 1300px;
}
#containerWind {
flex: 1;
height: 1160px;
height: 1200px;
//width: 1300px;
}
#containerWindDirection {

View File

@@ -200,7 +200,7 @@ const initChart = (type, values) => {
left: 0, // 左边距
right: 20, // 右边距
top: 80, // 顶边距
bottom: 0, // 底边距
bottom: 170, // 底边距
containLabel: true,
},
//提示框组件
@@ -233,7 +233,17 @@ const initChart = (type, values) => {
},
dataZoom: [{
type: 'inside'
}],
},
{
type: 'slider',
top: 1050,
height: 100,
textStyle: {
fontSize: 45,
color: '#fffff'
}
}
],
//X轴
xAxis: {
type: 'category',

View File

@@ -181,7 +181,7 @@ const initChart = (type, values) => {
left: 0, // 左边距
right: 20, // 右边距
top: 80, // 顶边距
bottom: 0, // 底边距
bottom: 170, // 底边距
containLabel: true,
},
//提示框组件
@@ -218,7 +218,17 @@ const initChart = (type, values) => {
},
dataZoom: [{
type: 'inside'
}],
},
{
type: 'slider',
top: 1050,
height: 100,
textStyle: {
fontSize: 45,
color: '#fffff'
}
}
],
//X轴
xAxis: {
type: "category",

View File

@@ -15,7 +15,7 @@
<!-- 功能 -->
<div class="option-nav">
<div>
<div class="state" :class="{changeMargin: item.showTooltip}">
<div class="state">
<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>
@@ -44,7 +44,7 @@
<el-radio :label="false">手动</el-radio>
</el-radio-group>
</div>
<div class="edit-power">
<div class="edit-power" title="输入完成后, 请回车进行修改">
<div>
<span style="color: white">给定频率</span>
<!-- <span class="units"-->
@@ -55,16 +55,18 @@
<!-- 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">
<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" :class="{changeMargin: item.showTooltip}">
<template #suffix>
<span>Hz</span>
</template>
</el-input>
</div>
<span v-if="item.showTooltip">
正在输入中...
</span>
<!-- <span v-if="item.showTooltip">-->
<!-- 正在输入中...-->
<!-- </span>-->
</div>
</div>
@@ -347,7 +349,7 @@ const getBasicData = (data) => {
autoMode: item.autoMode,//自动模式
breakdown: item.breakdown,//故障
running: item.running,//启动,
showTooltip:false,
showTooltip: false,
frequencyFeedback: item.frequencyFeedback,
frequencySetting: item.frequencySetting
}
@@ -506,7 +508,7 @@ const initChart = (type, valueA, valueB, valueC) => {
left: 0, // 左边距
right: 20, // 右边距
top: 80, // 顶边距
bottom: 0, // 底边距
bottom: 170, // 底边距
containLabel: true,
},
//提示框组件
@@ -528,22 +530,7 @@ const initChart = (type, valueA, valueB, valueC) => {
`;
}
return res
// return content;
},
// formatter: function (params) {
// let content = `
// <div style="background: linear-gradient(180deg, #254062 0%, rgba(20,36,51,0.3) 100%);;border: 2px solid #6087BA;border-radius: 4px;padding: 8px 16px;">
// <div style="font-size: 52px;font-family: PingFang SC-Regular, PingFang SC;font-weight: 400;color: #EFEEEE;margin-bottom: 8px;">${params[0].name}</div>
// <div style="font-size: 52px;line-height: 48px;font-family: Bebas Neue-Regular, Bebas Neue;font-weight: 400;margin-top: 20px"><span style="background: linear-gradient(180deg, #F5B85F 0%, #FFFFFF 100%);background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;">${params[0].value}</span></div>
// <div style="font-size: 52px;font-family: PingFang SC-Regular, PingFang SC;font-weight: 400;color: #EFEEEE;margin-bottom: 8px;">${params[1].name}</div>
// <div style="font-size: 52px;line-height: 48px;font-family: Bebas Neue-Regular, Bebas Neue;font-weight: 400;margin-top: 20px"><span style="background: linear-gradient(180deg, #F5B85F 0%, #FFFFFF 100%);background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;">${params[1].value}</span></div>
// <div style="font-size: 52px;font-family: PingFang SC-Regular, PingFang SC;font-weight: 400;color: #EFEEEE;margin-bottom: 8px;">${params[2].name}</div>
// <div style="font-size: 52px;line-height: 48px;font-family: Bebas Neue-Regular, Bebas Neue;font-weight: 400;margin-top: 20px"><span style="background: linear-gradient(180deg, #F5B85F 0%, #FFFFFF 100%);background-clip: text;-webkit-background-clip: text;-webkit-text-fill-color: transparent;">${params[2].value}</span></div>
//
// </div>`;
// return content;
// },
},
toolbox: {
show: false,
@@ -555,8 +542,18 @@ const initChart = (type, valueA, valueB, valueC) => {
}
},
dataZoom: [{
type: 'inside'
}],
type: 'inside',
},
{
type: 'slider',
top: 1050,
height: 100,
textStyle: {
fontSize: 45,
color: '#fffff'
}
}
],
//X轴
xAxis: {
type: 'category',
@@ -820,9 +817,7 @@ input[type="number"] {
margin-top: 48px;
display: flex;
align-items: center;
.changeMargin{
margin-top: -40px;
}
.state {
flex: 1;
display: flex;
@@ -903,6 +898,10 @@ input[type="number"] {
display: flex;
flex-direction: column;
.changeMargin {
}
> div:first-child {
display: flex;
@@ -910,6 +909,14 @@ input[type="number"] {
white-space: pre;
margin-right: 14px;
}
:deep(.is-focus) {
.el-input__inner {
font-weight: normal !important;
color: #fff !important;
}
}
:deep(.el-input__wrapper) {
width: 160px;
height: 44px;

View File

@@ -3,7 +3,7 @@
<div class="name">风压</div>
<div v-if="wpList==null||wpList.length===0" class="showNull">
<div class="loading" v-if="loading===0"></div>
{{loading===0?'加载中...':'暂无数据~'}}
{{ loading === 0 ? '加载中...' : '暂无数据~' }}
</div>
<div v-else class="list">
<wind-pressure-item v-for="(item,index) in wpList" :key="item.equipmentId" :wp="item"
@@ -15,7 +15,7 @@
<div class="left-top-icon"></div>
<div class="right-top-icon"></div>
<div class="loading-block" v-if="showLoading">
<div class="loading" ></div>
<div class="loading"></div>
<span>加载中...</span>
</div>
<div class="chat-dialog" v-else>
@@ -69,12 +69,12 @@ watch(() => props.winData, (now) => {
getScreenInfo(now.windPressureSensorList)
}, {deep: true});
const getWindInfo = (equipmentId,type='day') => {
const getWindInfo = (equipmentId, type = 'day') => {
isVisited.value = true
showLoading.value=true
getEchartsInfo(equipmentId,type).then(res => {
showLoading.value = true
getEchartsInfo(equipmentId, type).then(res => {
if (res?.code === 1000) {
showLoading.value=false
showLoading.value = false
nextTick(() => {
initChart(res.data.dates, res.data.values)
})
@@ -83,18 +83,18 @@ const getWindInfo = (equipmentId,type='day') => {
}
const handleOpenChart = (item) => {
selectTimeButton.value=2
selectTimeButton.value = 2
getWindInfo(item.equipmentId)
windSort.value = item.equipmentName
windSortId.value = item.equipmentId
}
const timeSelect = (index) => {
if (index === 0) {
getWindInfo(windSortId.value,'years')
getWindInfo(windSortId.value, 'years')
} else if (index === 1) {
getWindInfo(windSortId.value,'month')
getWindInfo(windSortId.value, 'month')
} else if (index === 2) {
getWindInfo(windSortId.value,'day')
getWindInfo(windSortId.value, 'day')
}
};
const getScreenInfo = (now) => {
@@ -136,7 +136,7 @@ const initChart = (type, values) => {
left: 0, // 左边距
right: 20, // 右边距
top: 80, // 顶边距
bottom: 0, // 底边距
bottom: 170, // 底边距
containLabel: true,
},
//提示框组件
@@ -169,7 +169,17 @@ const initChart = (type, values) => {
},
dataZoom: [{
type: 'inside'
}],
},
{
type: 'slider',
top: 1050,
height: 100,
textStyle: {
fontSize: 45,
color: '#fffff'
}
}
],
//X轴
xAxis: {
type: 'category',

View File

@@ -111,7 +111,6 @@
<script setup>
import {ElMessage, ElMessageBox} from "element-plus";
import {getTunnelList, addTunnel, deleteTunnel} from "@/api/tunnelManage";
import {onMounted} from "vue";
import {getSiteDetail} from "@/api/site";
const router = useRouter()
@@ -216,6 +215,15 @@ const handleGoSiteOrIndex = () => {
router.push('/')
}
}
//根据站点id获取隧道信息
const getTunnel = (id) => {
getSiteDetail(id).then((res) => {
if (res?.code === 1000) {
siteName.value = res.data.siteName
}
});
}
getTunnel(siteId)
const getList = () => {
getTunnelList({
siteId: siteId,
@@ -225,6 +233,8 @@ const getList = () => {
total.value = res.data.total
tunnelList.value = res.data.rows
showFirst.value = total.value / pageInfo.pageSize >= 1;
// siteName.value = res.data.siteName
} else {
ElMessage.warning(res.msg)
}

View File

@@ -87,7 +87,6 @@ import { getLargeScreen, getLargeScreenInfo, getTunnelBySiteId } from "@/api/lar
import { ElMessage, ElMessageBox } from "element-plus";
import { getUserInfo } from "@/api/login";
import { initSceneData } from "@/api/tunnelScene";
import { reactive } from "vue";
const authStore = useAuthStore();
const router = useRouter();
const previewId = reactive(router.currentRoute.value.params.tunnelId)
@@ -191,7 +190,11 @@ const getOtherInfo = () => {
currentSiteId.value = res.data.siteOption[0].value
currentSite.value = res.data.siteOption[0].label
localStorage.setItem('site', currentSite.value)
tunnelList.value = res.data.tunnelOption
if(res.data.tunnelOption.length === 0){
getTunnel(res.data.siteOption[0].value)
}else {
tunnelList.value = res.data.tunnelOption
}
if (previewId) {
tunnelList.value.forEach((item, index) => {
if (item.value == previewId) {
@@ -256,7 +259,7 @@ const getTunnel = (id) => {
if (res?.code === 1000) {
getScreenInfo(res.data[0]?.value)
tunnelName = res.data[0].label
console.log(res.data[0].label);
tunnelList.value = res.data
}
});
}