英文版本配置,二并一(配置)不弹窗BUG修改
This commit is contained in:
@ -586,12 +586,12 @@
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<dispositionPointDialog
|
||||
<DispositionPointData
|
||||
is-topology
|
||||
:show-div-location="true"
|
||||
:max-length="12"
|
||||
:page-location="pageLocation"
|
||||
:visible="show_point_dispostion"
|
||||
:disposition-show="show_point_dispostion"
|
||||
@close="closePoint"
|
||||
@getData="getDynamicPointData"
|
||||
/>
|
||||
|
||||
@ -534,7 +534,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<dispositionPointDialog :visible="show_point_dispostion" :page-location="pageLocation" @close="closePoint" @getData="getDynamicPointData" />
|
||||
<DispositionPointData :disposition-show="show_point_dispostion" :page-location="pageLocation" @close="closePoint" @getData="getDynamicPointData" />
|
||||
|
||||
</ItemBox>
|
||||
</template>
|
||||
|
||||
@ -377,52 +377,49 @@
|
||||
<text x="520" :y="105 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,510)" :y="105 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,lang === 'zh'?510:470)" :y="105 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
|
||||
<!-- STS -->
|
||||
|
||||
<!-- <g v-for="(item,index) in stsCenterData" :key="item.id">
|
||||
<text x="415" :y="153 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,415)" :y="153 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g> -->
|
||||
|
||||
<!-- ACDC -->
|
||||
|
||||
<g v-for="(item,index) in acdcCenterData" :key="item.id">
|
||||
<text x="415" :y="213 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,415)" :y="213 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,lang === 'zh'?415:375)" :y="213 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
<!-- 左侧 1PV -->
|
||||
<g v-for="(item,index) in pcsLeftData" :key="item.id">
|
||||
<text x="200" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,190)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
<foreignObject
|
||||
:x="200"
|
||||
:y="450 + (20 * index) - 14"
|
||||
width="150"
|
||||
height="20"
|
||||
style="overflow: visible;"
|
||||
>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: center;">
|
||||
<el-tooltip
|
||||
:content="item.name"
|
||||
placement="top"
|
||||
:open-delay="400"
|
||||
effect="dark"
|
||||
popper-class="svg-tooltip"
|
||||
>
|
||||
<span style="font-size: 14px;font-family: sans-serif;color: #ffffff;max-width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis">
|
||||
{{ truncateText(item.name, 120) }}
|
||||
</span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<text :x="calculateValueX(item.name, 200)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
|
||||
<!-- 中间 2PV -->
|
||||
<!-- <g v-for="(item,index) in pcsCenterData" :key="item.id">
|
||||
<text x="410" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,390)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g> -->
|
||||
|
||||
<!-- 右侧 3PCS -->
|
||||
<g v-for="(item,index) in pcsRightData" :key="item.id">
|
||||
<text x="622" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
@ -514,7 +511,11 @@ export default {
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
computed: {
|
||||
lang() {
|
||||
return this.$store.getters.language
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
const result = changeTheme()
|
||||
@ -531,6 +532,34 @@ export default {
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
truncateText(text, maxWidth) {
|
||||
if (!text) return ''
|
||||
const width = this.measureTextWidth(text)
|
||||
if (width <= maxWidth) return text
|
||||
|
||||
let truncated = text
|
||||
while (this.measureTextWidth(truncated + '...') > maxWidth && truncated.length > 0) {
|
||||
truncated = truncated.slice(0, -1)
|
||||
}
|
||||
return truncated + (truncated.length < text.length ? '...' : '')
|
||||
},
|
||||
// 精确测量文本渲染宽度(像素)
|
||||
measureTextWidth(text, font = '14px sans-serif') {
|
||||
// 创建或复用一个 canvas(避免重复创建)
|
||||
if (!this._textMeasurementCanvas) {
|
||||
this._textMeasurementCanvas = document.createElement('canvas')
|
||||
}
|
||||
const ctx = this._textMeasurementCanvas.getContext('2d')
|
||||
ctx.font = font
|
||||
return ctx.measureText(text).width
|
||||
},
|
||||
|
||||
// 计算 value 的 x 坐标:baseX + name 的实际宽度 + 一点间距
|
||||
calculateValueX(name, baseX = 200) {
|
||||
const truncatedName = this.truncateText(name, 120) // 限制 name 最大宽度
|
||||
const width = this.measureTextWidth(truncatedName)
|
||||
return baseX + width + 6 // +6 是 name 和 value 之间的小空隙
|
||||
},
|
||||
countChineseAndEnglishCharacters(str, x) {
|
||||
var chineseCount = str.match(/[\u4e00-\u9fa5]/g) ? str.match(/[\u4e00-\u9fa5]/g).length : 0
|
||||
var englishCount = str.match(/[a-zA-Z]/g) ? str.match(/[a-zA-Z]/g).length : 0
|
||||
|
||||
@ -370,7 +370,7 @@
|
||||
<text x="520" :y="105 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,510)" :y="105 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,lang === 'zh'?510:465)" :y="105 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
@ -381,7 +381,7 @@
|
||||
<text x="415" :y="153 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,415)" :y="153 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,lang === 'zh'?415:360)" :y="153 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
@ -392,26 +392,68 @@
|
||||
<text x="415" :y="213 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,415)" :y="213 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,lang === 'zh'?415:360)" :y="213 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
<!-- 左侧 1PV -->
|
||||
<g v-for="(item,index) in pcsLeftData" :key="item.id">
|
||||
<text x="200" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
<foreignObject
|
||||
:x="200"
|
||||
:y="450 + (20 * index) - 14"
|
||||
width="150"
|
||||
height="20"
|
||||
style="overflow: visible;"
|
||||
>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: center;">
|
||||
<el-tooltip
|
||||
:content="item.name"
|
||||
placement="top"
|
||||
:open-delay="400"
|
||||
effect="dark"
|
||||
popper-class="svg-tooltip"
|
||||
>
|
||||
<span style="font-size: 14px;font-family: sans-serif;color: #ffffff;max-width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis">
|
||||
{{ truncateText(item.name, 100) }}
|
||||
</span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<!-- <text x="200" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,180)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
</text> -->
|
||||
<text :x="calculateValueX(item.name, 185)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
|
||||
<!-- 中间 2PV -->
|
||||
<g v-for="(item,index) in pcsCenterData" :key="item.id">
|
||||
<text x="410" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
<foreignObject
|
||||
:x="410"
|
||||
:y="450 + (20 * index) - 14"
|
||||
width="150"
|
||||
height="20"
|
||||
style="overflow: visible;"
|
||||
>
|
||||
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: center;">
|
||||
<el-tooltip
|
||||
:content="item.name"
|
||||
placement="top"
|
||||
:open-delay="400"
|
||||
effect="dark"
|
||||
popper-class="svg-tooltip"
|
||||
>
|
||||
<span style="font-size: 14px;font-family: sans-serif;color: #ffffff;max-width: 120px;white-space: nowrap;overflow: hidden;text-overflow: ellipsis">
|
||||
{{ truncateText(item.name, 100) }}
|
||||
</span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</foreignObject>
|
||||
<!-- <text x="410" :y="450 + ( 20 * index)" fill="#ffffff" font-size="14">
|
||||
{{ item.name }}
|
||||
</text>
|
||||
<text :x="countChineseAndEnglishCharacters(item.name,390)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
</text> -->
|
||||
<text :x="calculateValueX(item.name, 395)" :y="450 + ( 20 * index)" fill="#FFB800" font-size="14">
|
||||
{{ item.value }}
|
||||
</text>
|
||||
</g>
|
||||
@ -507,7 +549,11 @@ export default {
|
||||
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
computed: {
|
||||
lang() {
|
||||
return this.$store.getters.language
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
const result = changeTheme()
|
||||
@ -524,6 +570,34 @@ export default {
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
truncateText(text, maxWidth) {
|
||||
if (!text) return ''
|
||||
const width = this.measureTextWidth(text)
|
||||
if (width <= maxWidth) return text
|
||||
|
||||
let truncated = text
|
||||
while (this.measureTextWidth(truncated + '...') > maxWidth && truncated.length > 0) {
|
||||
truncated = truncated.slice(0, -1)
|
||||
}
|
||||
return truncated + (truncated.length < text.length ? '...' : '')
|
||||
},
|
||||
// 精确测量文本渲染宽度(像素)
|
||||
measureTextWidth(text, font = '14px sans-serif') {
|
||||
// 创建或复用一个 canvas(避免重复创建)
|
||||
if (!this._textMeasurementCanvas) {
|
||||
this._textMeasurementCanvas = document.createElement('canvas')
|
||||
}
|
||||
const ctx = this._textMeasurementCanvas.getContext('2d')
|
||||
ctx.font = font
|
||||
return ctx.measureText(text).width
|
||||
},
|
||||
|
||||
// 计算 value 的 x 坐标:baseX + name 的实际宽度 + 一点间距
|
||||
calculateValueX(name, baseX = 200) {
|
||||
const truncatedName = this.truncateText(name, 120) // 限制 name 最大宽度
|
||||
const width = this.measureTextWidth(truncatedName)
|
||||
return baseX + width + 6 // +6 是 name 和 value 之间的小空隙
|
||||
},
|
||||
countChineseAndEnglishCharacters(str, x) {
|
||||
var chineseCount = str.match(/[\u4e00-\u9fa5]/g) ? str.match(/[\u4e00-\u9fa5]/g).length : 0
|
||||
var englishCount = str.match(/[a-zA-Z]/g) ? str.match(/[a-zA-Z]/g).length : 0
|
||||
|
||||
@ -343,7 +343,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<dispositionPointDialog :visible="show_point_dispostion" :max="4" :page-location="pageLocation" @close="closePoint" @getData="getDynamicPointData" />
|
||||
<DispositionPointData :disposition-show="show_point_dispostion" :max="4" :page-location="pageLocation" @close="closePoint" @getData="getDynamicPointData" />
|
||||
</ItemBox>
|
||||
</template>
|
||||
|
||||
|
||||
@ -460,7 +460,7 @@
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<dispositionPointDialog :visible="show_point_dispostion" :page-location="pageLocation" @close="closePoint" @getData="getDynamicPointData" />
|
||||
<DispositionPointData :disposition-show="show_point_dispostion" :page-location="pageLocation" @close="closePoint" @getData="getDynamicPointData" />
|
||||
|
||||
</ItemBox>
|
||||
</template>
|
||||
|
||||
@ -81,14 +81,14 @@ export default {
|
||||
const province = []
|
||||
if (data.length) {
|
||||
data.forEach((el) => {
|
||||
el.value = [el.latitude, el.longitude]
|
||||
el.value = [el.longitude, el.latitude]
|
||||
el.symbol = 'image://' + blue
|
||||
el.cityCode = 1000
|
||||
province.push(el)
|
||||
})
|
||||
this.pointData = province
|
||||
} else {
|
||||
this.pointData = [{ symbol: 'image://' + blue, cityCode: 1000, value: [118.8062, 31.9208], name: '江苏' }]
|
||||
this.pointData = [{ symbol: 'image://' + blue, cityCode: 1000, value: [30.787045, 103.923008], name: 'Sichuan' }]
|
||||
}
|
||||
} finally {
|
||||
this.loading = false
|
||||
@ -97,21 +97,12 @@ export default {
|
||||
},
|
||||
getInitMap() {
|
||||
this.$echarts.registerMap('world', worldJson)
|
||||
// this.$echarts.registerMap('china', chinaMap)
|
||||
// this.$echarts.registerMap('chinaMapOutline', chinaMapOutline)
|
||||
this.pointData = [
|
||||
{ name: 'Beijing', value: [116.4074, 39.9042] }, // 北京
|
||||
{ name: 'New York', value: [-74.0060, 40.7128] }, // 纽约
|
||||
{ name: 'London', value: [-0.1278, 51.5074] } // 伦敦
|
||||
]
|
||||
var series = [
|
||||
{
|
||||
// map: 'china',
|
||||
name: '国家',
|
||||
map: 'world',
|
||||
type: 'map',
|
||||
roam: false,
|
||||
// zoom: 1.65,
|
||||
zoom: 1.1,
|
||||
label: {
|
||||
normal: {
|
||||
@ -126,7 +117,6 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
// top: '29%',
|
||||
top: '10%',
|
||||
tooltip: {
|
||||
show: false
|
||||
@ -144,8 +134,7 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
// data: this.mapData
|
||||
data: [{ name: 'China', value: 100 }]
|
||||
data: this.mapData
|
||||
},
|
||||
|
||||
{
|
||||
@ -164,10 +153,11 @@ export default {
|
||||
shadowColor: '#333'
|
||||
}
|
||||
},
|
||||
symbolSize: 10,
|
||||
data: [this.pointData[this.pointIndex]]
|
||||
symbolSize: 24,
|
||||
symbolOffset: [0, '-50%'], // 或 [0, -12] 更精确
|
||||
data: [this.pointData[this.pointIndex]],
|
||||
|
||||
// showEffectOn: 'render' // 加载完毕显示特效
|
||||
showEffectOn: 'render' // 加载完毕显示特效
|
||||
}
|
||||
]
|
||||
|
||||
@ -197,25 +187,25 @@ export default {
|
||||
trigger: 'item',
|
||||
alwaysShowContent: true,
|
||||
backgroundColor: 'transparent',
|
||||
position: 'top',
|
||||
position: 'bottom',
|
||||
triggerOn: 'click',
|
||||
enterable: true,
|
||||
formatter: params => {
|
||||
// 获取xAxis data中的数据
|
||||
let dataStr = `<div></div>`
|
||||
dataStr += `<div>
|
||||
<span style="padding-left:10px;font-weight:bold;margin-left:20px;margin-top:5px;font-size="14px">${params.name}</span>
|
||||
<span style="padding-left:20px;font-weight:bold;margin-left:20px;margin-top:5px;font-size="14px">${params.name}</span>
|
||||
</div>`
|
||||
dataStr += `<div style="margin-top:15px">
|
||||
<span style="padding-left:10px;">投运时间</span>
|
||||
<span style="padding-left:10px;">${this.$t('screen.comTime')}</span>
|
||||
<span style="margin-left:5px;margin-right:10px;color:rgba(245, 221, 0, 1);font-family:DIN;">${params.data.createTime}</span>
|
||||
</div>`
|
||||
dataStr += `<div style="margin-top:2px;">
|
||||
<span style="padding-left:10px;">装机容量</span>
|
||||
<span style="padding-left:10px;">${this.$t('screen.capacity')}</span>
|
||||
<span style="margin-left:5px;margin-right:5px;color:rgba(245, 221, 0, 1);font-family:DIN;">${params.data.capacity}</span>
|
||||
<span style="color:rgba(245, 221, 0, 1);">kWh</span>
|
||||
</div>`
|
||||
const div = `<div style='max-width:220px;height:85px;
|
||||
const div = `<div style='height:85px;
|
||||
background-image:url(${require('../../../assets/new-screen/tooltip-bg.png')});background-repeat: no-repeat;background-size:100% 100%;' >${dataStr}</div>`
|
||||
return div
|
||||
}
|
||||
@ -224,11 +214,8 @@ export default {
|
||||
geo: [
|
||||
{
|
||||
silent: true,
|
||||
// map: 'chinaMapOutline',
|
||||
map: 'world',
|
||||
|
||||
zoom: 1.1,
|
||||
// top: '10%',
|
||||
label: {
|
||||
normal: {
|
||||
show: false,
|
||||
@ -266,7 +253,6 @@ export default {
|
||||
{
|
||||
silent: true,
|
||||
map: 'chinaMapOutline',
|
||||
// zoom: 1.1,
|
||||
zoom: 1.2,
|
||||
top: '7%',
|
||||
label: {
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<!-- 头部 s -->
|
||||
<div class="title_wrap">
|
||||
<div class="title">
|
||||
<span class="left-title" />
|
||||
<span :class="lang === 'zh'? 'left-title' : 'left-title-en'" />
|
||||
<span :class="lang === 'zh'? 'title-text' : 'en-eitle-text'">{{ $t('screen.ztscreenTitle') }}</span>
|
||||
<div class="right-title">
|
||||
<span>{{ time }}</span>
|
||||
@ -339,7 +339,17 @@ $margin: 16px;
|
||||
left: $margin;
|
||||
top: 30px;
|
||||
}
|
||||
|
||||
.left-title-en {
|
||||
width: 200px;
|
||||
height: 52px;
|
||||
background: url(../../assets/new-screen/zhongzien.png) no-repeat;
|
||||
background-size: 100% 100%;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
position: absolute;
|
||||
left: $margin;
|
||||
top: 30px;
|
||||
}
|
||||
.right-title {
|
||||
font-family: LCD;
|
||||
color: #fff;
|
||||
|
||||
@ -77,7 +77,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column width="150" :label="$t('remote.yhxgz')">
|
||||
<template slot-scope="scope">
|
||||
<el-input v-model="scope.row.modifyValue" type="number" placeholder="请输入" />
|
||||
<el-input v-model="scope.row.modifyValue" type="number" :placeholder="$t('remote.pleaseInput')" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column width="180" label="站内接入点">
|
||||
|
||||
@ -1901,12 +1901,12 @@ box-shadow: inset 0px 2px 16px 0px rgba(0, 148, 255, 0.4);' >${dataStr}</div>`
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 110px;
|
||||
flex: 1;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.value {
|
||||
flex: 1;
|
||||
flex: 0.5;
|
||||
margin-left: 5px;
|
||||
text-align: right;
|
||||
color: rgba(0, 148, 255, 1);
|
||||
|
||||
@ -205,7 +205,7 @@ import {
|
||||
GetPageSelectAll,
|
||||
DeleteTemplate
|
||||
} from '@/api/surveillance/battery-analysis'
|
||||
import { GetQueryPointList } from '@/api/surveillance/battery-analysis'
|
||||
import { GetQueryPoint } from '@/api/surveillance/battery-analysis'
|
||||
import ModelKuang from '@/components/ModelKuang/index.vue'
|
||||
import { pageSize, pageSizes } from '@/config'
|
||||
import Pagingbar from '@/components/Pagingbar'
|
||||
@ -663,7 +663,7 @@ export default {
|
||||
stationId: this.filters.stationId
|
||||
}
|
||||
try {
|
||||
const res = await GetQueryPointList(params)
|
||||
const res = await GetQueryPoint(params)
|
||||
const option = res.data
|
||||
// 将指标的数据处理成树
|
||||
if (option.length > 0) {
|
||||
|
||||
@ -41,8 +41,8 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="6">
|
||||
<el-form-item :label="$t('surveillance.chargeType') + ':'" label-width="100px">
|
||||
<el-select v-model="filter.segmentType" style="width: 100%;" placeholder="请选择" @change="changeType">
|
||||
<el-form-item :label="$t('surveillance.chargeType') + ':'">
|
||||
<el-select v-model="filter.segmentType" placeholder="请选择" @change="changeType">
|
||||
<el-option
|
||||
v-for="item in dateTypeList"
|
||||
:key="item.value"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="realtime-wrapper">
|
||||
<el-row :gutter="10">
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<el-row class="card-total-box" :gutter="10">
|
||||
<el-col class="card-box" :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<div class="card-total station">
|
||||
<div class="station-name">{{ panel_data.stationName }}</div>
|
||||
<div class="content">
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<el-col class="card-box" :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<div class="card-total charge">
|
||||
<div class="content">
|
||||
<div class="name">
|
||||
@ -39,7 +39,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<el-col class="card-box" :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<div class="card-total discharge">
|
||||
<div class="content">
|
||||
<div class="name">
|
||||
@ -53,7 +53,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<el-col class="card-box" :xs="24" :sm="12" :md="12" :lg="6" :xl="6">
|
||||
<div class="card-total earnings">
|
||||
<div class="content">
|
||||
<div class="name">
|
||||
@ -1055,15 +1055,25 @@ box-shadow: inset 0px 2px 16px 0px rgba(0, 148, 255, 0.4);' >${dataStr}</div>`
|
||||
.search-row {
|
||||
margin-top: 10px
|
||||
}
|
||||
/* 父容器 el-row 改为 flex 布局,确保列等高 */
|
||||
.card-total-box {
|
||||
display: flex;
|
||||
align-items: stretch; /* 关键:让所有列拉伸至相同高度 */
|
||||
}
|
||||
|
||||
/* 确保每个 el-col 占满行高 */
|
||||
.card-box {
|
||||
display: flex;
|
||||
}
|
||||
.card-total {
|
||||
width: 100%;
|
||||
height: 138px;
|
||||
min-height: 138px;
|
||||
margin-top: 10px;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
position: relative;
|
||||
|
||||
/* 确保卡片内容撑满高度 */
|
||||
flex-direction: column;
|
||||
.content {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
@ -28,7 +28,8 @@ const topCenterList = [
|
||||
{ label: '七合一(配置)', value: 'seventhTopCenter' },
|
||||
{ label: '八合一(配置)', value: 'eighthTopCenter' },
|
||||
{ label: '九合一(配置)', value: 'ninthTopCenter' },
|
||||
{ label: '十合一(配置)', value: 'tenthTopCenter' }
|
||||
{ label: '十合一(配置)', value: 'tenthTopCenter' },
|
||||
{ label: '一百二十合一(配置)', value: 'zzhbTopCenter' }
|
||||
]
|
||||
const rightTopList = [
|
||||
{ label: '实时告警', value: 'topRight' },
|
||||
|
||||
Reference in New Issue
Block a user