Files
kh-device-client/src/views/systemOverview/wellheadDataMonitoring/WellheadDataMonitoring.vue
T
2024-04-09 08:50:34 +08:00

859 lines
26 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<a-spin :spinning="loading">
<!-- 查询区域 -->
<div class="mb-20">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row type="flex">
<a-col flex="auto">
<a-form-item label="油井">
<a-select class="search-input" v-model="queryParam.wellSite" placeholder="请选择所属井场">
<a-select-option v-for="item in wellSiteList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
</a-select>
<a-select class="search-input" style="margin-left: 8px;" v-model="queryParam.singleWell" placeholder="请选择单井">
<a-select-option v-for="item in singleWellList" :key="item.id" :value="item.id">{{ item.name }}</a-select-option>
</a-select>
<span class="search-operate-btns custom-btns-box">
<a-button class="btn-blue" type="primary" @click="searchQuery">
<img :src="require('@assets/images/icon/search.png')" alt="查询" class="btn-icon">
<span class="btn-text">查询</span>
</a-button>
</span>
</a-form-item>
</a-col>
<a-col flex="220px">
<!-- <a-input-search placeholder="请输入井口名称" v-model="queryParam.phone" class="search-input" />-->
<a-input class="search-input" placeholder="请输入井口名称" v-model="queryParam.phone">
<span slot="suffix" class="input-search-suffix" @click="searchQuery">
<img :src="require('@assets/images/icon/search-primary.png')" alt="查询">
</span>
</a-input>
</a-col>
</a-row>
</a-form>
</div>
<a-row :gutter="20" type="flex" class="mb-20">
<a-col :xl="12" :xxl="6">
<div class="flex-column">
<div class="mb-20">
<common-card title="油井基础信息">
<common-card-info :data="data.oilWells || []"/>
</common-card>
</div>
<div>
<common-card title="含水和动液面">
<common-card-info :data="data.waterContentAndDynamicLiquidLevel || []"/>
</common-card>
</div>
</div>
</a-col>
<a-col :xl="12" :xxl="6">
<common-card title="油井实时参数">
<common-card-info :data="data.oilWellsRealTimeParameters || []"/>
</common-card>
</a-col>
<a-col :xl="12" :xxl="6">
<common-card title="油井生产数据">
<!-- 泵型图 -->
<div class="pump-type mb-20">
<div class="pump-type-title">泵型常规泵</div>
<div class="pump-type-remarks">备注-----</div>
</div>
<common-card-info :data="data.oilWellProductionData || []"/>
</common-card>
</a-col>
<a-col :xl="12" :xxl="6">
<common-card title="油井工作状态">
<div slot="extra" class="info-row">
<div class="info-label">工作状态</div>
<div class="info-value">
<span class="working mr-12">运行</span>
<span class="cease">停止</span>
</div>
</div>
<div class="working-status-container">
<div class="working-status-title">名称华h62-1</div>
<div class="working-status-img">
<img :src="workingStatus" alt="油井工作状态">
</div>
<div class="working-status-btns">
<a-button @click="handleChangeWorkingCondition(true)" class="primary-btn">远程启井</a-button>
<a-button @click="handleChangeWorkingCondition(false)" class="danger-btn">远程停井</a-button>
<a-button @click="handleChangeWorkingCondition(true)" class="primary-btn">频率控制</a-button>
</div>
</div>
</common-card>
</a-col>
</a-row>
<a-row :gutter="20" type="flex" class="mb-20">
<a-col :xl="8">
<common-card title="实时示功图">
<div slot="extra" class="indicator-diagram-extra">
<span class="time">2022-03-01 10:21:16</span>
<div class="divider-vertical"></div>
<span class="info-row info-row-inline">
<span class="info-label">冲程</span>
<span class="info-value">3.06m</span>
</span>
<div class="divider-vertical"></div>
<span class="info-row info-row-inline">
<span class="info-label">冲次</span>
<span class="info-value">4.96/</span>
</span>
</div>
<responsive-chart ref="indicatorDiagram" key="indicatorDiagram" height="200px"/>
</common-card>
</a-col>
<a-col :xl="8">
<common-card title="功图计产监控">
<responsive-chart ref="productionMonitoring" key="productionMonitoring" height="200px"/>
</common-card>
</a-col>
<a-col :xl="8">
<common-card title="载荷分布图">
<responsive-chart ref="loadDistribution" key="loadDistribution" height="200px"/>
</common-card>
</a-col>
</a-row>
<!-- <div class="mb-20">-->
<!-- <a-table-->
<!-- bordered-->
<!-- ref="table"-->
<!-- size="middle"-->
<!-- rowKey="id"-->
<!-- :scroll="{x:'100%', y:120}"-->
<!-- :columns="columns"-->
<!-- :dataSource="dataSource"-->
<!-- :pagination="false">-->
<!-- <template slot="text" slot-scope="text">-->
<!-- <a-tooltip>-->
<!-- <template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>-->
<!-- <div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>-->
<!-- </a-tooltip>-->
<!-- </template>-->
<!-- <span slot="action" slot-scope="text, record">-->
<!-- <a @click="handleConfirm(record)" class="confirm mr-10">确认</a>-->
<!-- <a @click="handleShow(record)" class="show">查看</a>-->
<!-- </span>-->
<!-- </a-table>-->
<!-- </div>-->
<div>
<a-table
style='display: inline-block; width: calc(100% - 110px)'
bordered
ref="table"
size="middle"
rowKey="id"
:scroll="{y:120}"
:columns="columns"
:dataSource="dataSource"
:pagination="false">
<template slot="text" slot-scope="text">
<a-tooltip>
<template slot="title">{{ text || text === 0 ? text : global.emptyLine }}</template>
<div class="table-text">{{ text || text === 0 ? text : global.emptyLine }}</div>
</a-tooltip>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleConfirm(record)" class="confirm mr-10">确认</a>
<a @click="handleShow(record)" class="show">查看</a>
</span>
</a-table>
<a-table
bordered
style='display: inline-block; width: 100px'
ref="table"
size="middle"
rowKey="id"
:scroll="{y:120}"
:columns="[{
title: '批量操作',
dataIndex: 'actionBatch',
scopedSlots: { customRender: 'actionBatch' },
align: 'center',
// fixed: 'right',
// width: 100
}]"
:dataSource="this.dataSource.length ? [{}]: []"
:pagination="false">
<div slot="actionBatch" class="action-batch">
<a href='javascript:' class='all-alarms'></a>
</div>
</a-table>
</div>
</a-spin>
</template>
<script>
import CommonCard from '@comp/CommonCard'
import CommonCardInfo from '@comp/CommonCardInfo'
import ResponsiveChart from '@comp/ResponsiveChart'
import * as echarts from 'echarts'
export default {
name: 'WellheadDataMonitoring',
components: { ResponsiveChart, CommonCardInfo, CommonCard },
data () {
return {
// 暂停中图片
suspend: require('@/assets/images/systemOverview/wellheadDataMonitoring/suspend.gif'),
// 工作中图片
working: require('@assets/images/systemOverview/wellheadDataMonitoring/working.gif'),
// 是否工作中
workingStatus: require('@/assets/images/systemOverview/wellheadDataMonitoring/working.gif'),
loading: false,
queryParam: {},
wellSiteList: [],
singleWellList: [],
columns: [
{
dataIndex: 'a',
title: '报警时间',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'b',
title: '恢复时间',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'c',
title: '报警设备',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'd',
title: '报警设备',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'e',
title: '报警描述',
align: 'center',
width: '20%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'f',
title: '报警类别',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'g',
title: '确认时间',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
dataIndex: 'h',
title: '确认人',
align: 'center',
width: '10%',
scopedSlots: { customRender: 'text' }
},
{
title: '操作',
dataIndex: 'action',
scopedSlots: { customRender: 'action' },
align: 'center',
width: '10%'
}
// {
// title: '批量操作',
// dataIndex: 'actionBatch',
// customRender: (value, row, index) => {
// console.log(value, row, index, 'aaaaaa')
// const obj = {
// children: (
// <div>
// <a href='javascript:' class='all-alarms'></a>
// </div>
// ),
// attrs: {}
// }
// if (index === 0) {
// obj.attrs.rowSpan = this.dataSource.length
// } else {
// obj.attrs.rowSpan = 0
// }
// return obj
// },
// // scopedSlots: { customRender: 'actionBatch' },
// align: 'center',
// fixed: 'right',
// width: 100
// }
],
dataSource: new Array(10).fill(0).map((_, i) => ({ id: i + '' })),
data: {
oilWells: [
{ label: '油井名称', value: '华H62-1' },
{ label: '所属井场', value: '华H62井场' },
{ label: '机采类型', value: '抽油机' },
{ label: '开采层位', value: '长_7_2' },
{ label: '井型', value: '水平井' },
{ label: '投产日期', value: '2020-03-27' }
],
waterContentAndDynamicLiquidLevel: [
{ label: '实时含水', value: '11.1%' },
{ label: '动液面套压', value: '1.55 MPa' },
{ label: '小时含水率', value: '11.8%' },
{ label: '动液面声速', value: '370 m/s' },
{ label: '24小时含水率', value: '12.3%' },
{ label: '动液面声速', value: '96 m' }
],
oilWellsRealTimeParameters: [
{ label: '油压', value: '1.7 MPa' },
{ label: '套压', value: '1.7 MPa' },
{ label: 'A相电流', value: '18.51 A' },
{ label: 'A相电压', value: '217.2 V' },
{ label: 'B相电流', value: '15.85 A' },
{ label: 'B相电压', value: '215.1 V' },
{ label: 'C相电流', value: '16.46 A' },
{ label: 'C相电压', value: '215.6 V' },
{ label: '有功功率', value: '8.07 KW' },
{ label: '无功功率', value: '-0.04 KW' },
{ label: '功率因素', value: '0.99' },
{ label: '输出频率', value: '52.41 Hz' },
{ label: '最大载荷', value: '52.74 KN' },
{ label: '最小载荷', value: '24.22 KN' },
{ label: '冲程', value: '3.02 m' },
{ label: '冲次', value: '5 次/分' }
],
oilWellProductionData: [
{ label: '时率', value: '100 %' },
{ label: '用电量', value: '0.00 kw.h' },
{ label: '开井时长', value: '15时0分' },
{ label: '油井工况', value: '功图错误' },
{ label: '日产水量', value: '4.34 m³' },
{ label: '泵深', value: '1340 m' },
{ label: '日产液量', value: '19.09 m³' },
{ label: '泵型', value: '常规泵' },
{ label: '日产油量', value: '14.75 t' },
{ label: '泵径', value: '57 mm' },
{ label: '备注', value: '----' },
{ label: '泵效', value: '20.05%' }
]
}
}
},
mounted () {
this.initIndicatorDiagram()
this.initProductionMonitoring()
this.initLoadDistribution()
},
methods: {
searchQuery () {
},
searchReset () {
},
handleConfirm () {
},
handleShow () {
},
// 初始化 实时示功图
initIndicatorDiagram () {
this.$refs.indicatorDiagram.updateMyChartOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
// type: 'cross',
// label: {
// backgroundColor: '#6a7985'
// }
}
},
legend: {
data: ['上冲程', '下冲程'],
align: 'left',
width: '80%',
top: 0,
right: 0,
itemHeight: 2,
itemWidth: 12,
itemGap: 16,
textStyle: {
color: 'rgba(255,255,255,0.96)'
}
},
grid: {
top: '30px',
left: '0px',
right: '10px',
bottom: '0px',
containLabel: true
},
xAxis: [
{
type: 'category',
name: '单位(m)',
nameLocation: 'end',
nameTextStyle: {
color: '#6C8097',
align: 'right',
verticalAlign: 'top',
padding: [8, 4, 0, 0]
},
data: [0, 25, 50, 75, 100, 125, 150, 175, 200, 250, 300],
boundaryGap: false,
// 刻度线不显示
axisTick: {
show: false
},
// 轴标签样式
axisLabel: {
color: '#86909C',
hideOverlap: true,
showMinLabel: false,
showMaxLabel: false
},
// 轴线样式
axisLine: {
lineStyle: {
color: '#19314B'
}
}
}
],
yAxis: [
{
type: 'value',
name: '载荷(KN)',
// 名称样式
nameTextStyle: {
color: '#6C8097',
padding: [0, 0, 0, 10]
},
// 轴标签样式
axisLabel: {
color: '#6C8097'
},
// 轴线样式
splitLine: {
lineStyle: {
color: '#152F49',
type: 'dashed'
}
}
}
],
series: [
{
name: '上冲程',
type: 'line',
stack: 'upStroke',
emphasis: {
focus: 'series'
},
color: '#FF5353',
symbol: 'none',
smooth: true,
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(255,83,83,0.2)' },
{ offset: 1, color: 'rgba(255,83,83,0)' }
])
},
data: [40, 42, 25, 40, 42, 37, 39, 58, 42, 37, 40]
},
{
name: '下冲程',
type: 'line',
stack: 'downStroke',
emphasis: {
focus: 'series'
},
color: '#0094FF',
symbol: 'none',
smooth: true,
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(0,148,255,0.2)' },
{ offset: 1, color: 'rgba(0,148,255,0)' }
])
},
data: [40, 25, 40, 50, 40, 60, 80, 45, 40, 50, 40]
}
]
})
},
// 初始化 功图计产监控
initProductionMonitoring () {
this.$refs.productionMonitoring.updateMyChartOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
// type: 'cross',
// label: {
// backgroundColor: '#6a7985'
// }
}
},
legend: {
data: ['产油量(t/d)', '产液量(m³/d)'],
align: 'left',
width: '80%',
top: 0,
right: 0,
itemHeight: 2,
itemWidth: 12,
itemGap: 16,
textStyle: {
color: 'rgba(255,255,255,0.96)'
}
},
grid: {
top: '30px',
left: '0px',
right: '10px',
bottom: '0px',
containLabel: true
},
xAxis: [
{
type: 'category',
data: ['01-31', '02-10', '02-15', '02-20', '02-25', '03-01'],
boundaryGap: false,
// 刻度线不显示
axisTick: {
show: false
},
// 轴标签样式
axisLabel: {
color: '#86909C',
hideOverlap: true
// showMinLabel: false,
// showMaxLabel: false
},
// 轴线样式
axisLine: {
lineStyle: {
color: '#19314B'
}
}
}
],
yAxis: [
{
type: 'value',
name: '产油量(t/d) / 产液量(m³/d)',
// 名称样式
nameTextStyle: {
color: '#6C8097',
padding: [0, 0, 0, 110]
},
// 轴标签样式
axisLabel: {
color: '#6C8097'
},
// 轴线样式
splitLine: {
lineStyle: {
color: '#152F49',
type: 'dashed'
}
}
}
],
series: [
{
name: '产油量(t/d)',
type: 'line',
stack: 'oilProduction',
color: '#2EE4FD',
symbol: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAAXNSR0IArs4c6QAAAdhJREFUOE+tlEFLVGEUhp/TrbTRUcPFjMVkSQQuIig0C4I2Qi36Aa76G25cufFvtOoHtEncuEgqSyFcuCjKGquZTWUOU5nXY+94vhjCaRF98HG58H3Pfc973nON/7CsneHuetc+DQwBg8BRYAfYAqpAzczy9nt/QnqBceAnsBEXBTgGnASGgQx4bmaNBPoNcXcBrgFvgA9xWBd0xoE9YBc4BZwDHidQC+LuOnwD2JRcoAs4HqUkiNRJlXYZOAMsmtlegsiDEWA1ACeAQoCOhIofwHegGc8rKtnMqgkyESV8AXqA3lqT89VtZnO4lMF6pch0ucBLYDtAA1JkZssJcgtYCvnypu9Znfu5czGZlxkrYyXuAl8BmaoOXTezhwlyB1gAVEaf9pM6q3irvQfL2J0ocTkgAn379eFJM3uQILdDiQxOSu7ljupurcxYGysx1aZEnZKS+QS5Gp4oUDJUnlyoNpjLndEMXlSKzJQLvIpSVI5yM2RmTxOkApwFVoDuAOmpVv+tO6/N7H2C6OBN4F3kRBkRQJ50yoli8Ugj0CmxHw9JrLrRObHJPHcvQstMXXgLfI45kqr+mB3N0fKhs9MGUocUa/mkiypNCj4BUripqHec4n/9tewDCYOsEgwJGJUAAAAASUVORK5CYII=',
symbolSize: 15,
smooth: true,
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(46,228,253,0.2)' },
{ offset: 1, color: 'rgba(46,228,253,0)' }
])
},
data: [40, 42, 25, 40, 42, 37]
},
{
name: '产液量(m³/d)',
type: 'line',
stack: 'liquidProduction',
color: '#0094FF',
symbol: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAAXNSR0IArs4c6QAAAdhJREFUOE+tlEFLVGEUhp/TrbTRUcPFjMVkSQQuIig0C4I2Qi36Aa76G25cufFvtOoHtEncuEgqSyFcuCjKGquZTWUOU5nXY+94vhjCaRF98HG58H3Pfc973nON/7CsneHuetc+DQwBg8BRYAfYAqpAzczy9nt/QnqBceAnsBEXBTgGnASGgQx4bmaNBPoNcXcBrgFvgA9xWBd0xoE9YBc4BZwDHidQC+LuOnwD2JRcoAs4HqUkiNRJlXYZOAMsmtlegsiDEWA1ACeAQoCOhIofwHegGc8rKtnMqgkyESV8AXqA3lqT89VtZnO4lMF6pch0ucBLYDtAA1JkZssJcgtYCvnypu9Znfu5czGZlxkrYyXuAl8BmaoOXTezhwlyB1gAVEaf9pM6q3irvQfL2J0ocTkgAn379eFJM3uQILdDiQxOSu7ljupurcxYGysx1aZEnZKS+QS5Gp4oUDJUnlyoNpjLndEMXlSKzJQLvIpSVI5yM2RmTxOkApwFVoDuAOmpVv+tO6/N7H2C6OBN4F3kRBkRQJ50yoli8Ugj0CmxHw9JrLrRObHJPHcvQstMXXgLfI45kqr+mB3N0fKhs9MGUocUa/mkiypNCj4BUripqHec4n/9tewDCYOsEgwJGJUAAAAASUVORK5CYII=',
symbolSize: 15,
smooth: true,
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(0,148,255,0.2)' },
{ offset: 1, color: 'rgba(0,148,255,0)' }
])
},
data: [40, 25, 40, 50, 40, 60]
}
]
})
},
// 初始化 载荷分布图
initLoadDistribution () {
this.$refs.loadDistribution.updateMyChartOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow'
// type: 'cross',
// label: {
// backgroundColor: '#6a7985'
// }
}
},
legend: {
data: ['最大载荷(KN)', '最小载荷(KN)'],
align: 'left',
width: '80%',
top: 0,
right: 0,
itemHeight: 2,
itemWidth: 12,
itemGap: 16,
textStyle: {
color: 'rgba(255,255,255,0.96)'
}
},
grid: {
top: '30px',
left: '0px',
right: '10px',
bottom: '0px',
containLabel: true
},
xAxis: [
{
type: 'category',
data: [0.5, 1, 1, 1.5, 2, 2.5, 3],
boundaryGap: false,
// 刻度线不显示
axisTick: {
show: false
},
// 轴标签样式
axisLabel: {
color: '#86909C',
hideOverlap: true
// showMinLabel: false,
// showMaxLabel: false
},
// 轴线样式
axisLine: {
lineStyle: {
color: '#19314B'
}
}
}
],
yAxis: [
{
type: 'value',
name: '载荷(KN)',
// 名称样式
nameTextStyle: {
color: '#6C8097',
padding: [0, 0, 0, 10]
},
// 轴标签样式
axisLabel: {
color: '#6C8097'
},
// 轴线样式
splitLine: {
lineStyle: {
color: '#152F49',
type: 'dashed'
}
}
}
],
series: [
{
name: '最大载荷(KN)',
type: 'line',
stack: 'maxLoad',
color: '#FF5353',
data: [40, 42, 25, 40, 42, 37, 10]
},
{
name: '最小载荷(KN)',
type: 'line',
stack: 'minLoad',
color: '#FFC97A',
data: [40, 25, 40, 50, 40, 60, 20]
}
]
})
},
// 油井工作状态
handleChangeWorkingCondition (status) {
if (status === true) {
this.workingStatus = this.working
} else if (status === false) {
this.workingStatus = this.suspend
}
}
}
}
</script>
<style lang="less" scoped>
@import "~@/assets/less/modifyLessVars.less";
.search-operate-btns {
margin-left: 32px;
}
.search-input {
width: 220px;
}
.flex-column {
height: 100%;
display: flex;
flex-direction: column;
justify-content: space-between;
& > div {
flex: auto;
}
}
.pump-type {
position: relative;
background-image: url("~@assets/images/systemOverview/wellheadDataMonitoring/pump-type-bg.png");
background-size: 100%;
background-repeat: no-repeat;
background-position: left;
height: 84px;
width: 364px;
margin: 0 auto 20px;
&-title {
position: absolute;
left: 88px;
top: 18px;
font-family: DingTalk JinBuTi, DingTalk JinBuTi, sans-serif;
font-weight: 400;
font-size: 15px;
color: rgba(255,255,255,0.96);
line-height: 18px;
}
&-remarks {
position: absolute;
left: 88px;
top: 50px;
font-family: Rubik, Rubik, sans-serif;
font-weight: 400;
font-size: 12px;
color: #D0DEEE;
line-height: 14px;
}
}
// 工作状态相关样式
.working-status-container {
height: 100%;
.working-status-title {
background-size: 124px 16px;
background: url("~@/assets/images/text-bg.png") no-repeat 0 6px;
font-family: DingTalk JinBuTi, DingTalk JinBuTi, sans-serif;
font-weight: 400;
font-size: 15px;
color: rgba(255,255,255,0.96);
line-height: 18px;
padding-left: 4px;
}
.working-status-img {
height: 178px;
font-size: 0;
text-align: center;
margin: 12px auto 18px;
img {
height: 100%;
}
}
.working-status-btns {
display: flex;
justify-content: center;
button:not(:last-child) {
margin-right: 16px;
}
}
}
// 实时示功图头部
.indicator-diagram-extra {
.info-row .info-label,
.info-row .info-value,
.time {
font-family: Rubik, Rubik, sans-serif;
font-weight: 400;
font-size: 13px;
color: #D0DEEE;
line-height: 15px;
}
.info-row .info-value {
color: #2EE4FD;
}
.divider-vertical {
width: 1px;
height: 12px;
background: rgba(108,128,151,0.3);
margin: 0 12px;
display: inline-block;
}
}
// 确认
.confirm,
.confirm:hover {
color: #2BFF82;
}
// 查看
.show,
.show:hover {
color: #2EE4FD;
}
.action-batch {
height: 100px;
}
.all-alarms {
position: absolute;
top: 40px;
left: 50%;
transform: translate(-50%, -30%);
display: inline-block;
width: 40px;
height: 100px;
background: url("~@/assets/images/systemOverview/wellheadDataMonitoring/all-alarms-btn.png");
}
</style>