修改测试bug

This commit is contained in:
guanj
2025-07-10 16:32:49 +08:00
parent 226031a451
commit 2f5ab61e9c
57 changed files with 1962 additions and 1143 deletions

View File

@@ -42,6 +42,7 @@ import MyEchart from '@/components/echarts/MyEchart.vue'
import TableHeader from '@/components/table/header/index.vue'
import { useDictData } from '@/stores/dictData'
import * as echarts from 'echarts/core'
import { Top } from '@element-plus/icons-vue/dist/types'
const dictData = useDictData()
const options = ref({})
@@ -112,19 +113,10 @@ const tableStore = new TableStore({
itemHeight: 15,
itemGap: 25
},
toolbox: {
show: true,
feature: {
saveAsImage: {
// bottom: '10px',
show: true,
title: '保存'
// yAxisIndex: 'none'
}
},
right: 0,
top: 0
},
toolbox: {
top: 0,
right: 10,
},
// tooltip: {
// backgroundColor: '#fff',
// textStyle: {

View File

@@ -1,11 +1,11 @@
<template>
<div class="default-main online">
<div class="online_header">
<TableHeader date-picker ref="tableHeaderRef">
<TableHeader date-picker area ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-select
v-model="formData.statisticalType"
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
value-key="id"
style="width: 100%"
@@ -18,58 +18,10 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="区域选择:">
<!-- <el-select ref="select1" v-model="deptName" placeholder="请选择所属部门区域" style="width: 100%">
<el-option :value="formData.deptIndex" style="height: auto"> -->
<!-- {{ formData.deptIndex }} -->
<el-cascader
v-model="formData.deptIndex"
:props="defaultProps"
:options="treeData"
clearable
filterable
collapse-tags
placeholder="请选择区域"
/>
<!-- <el-tree
ref="tree"
v-model="formData.deptName"
:data="treeData"
node-key="id"
accordion
:default-expanded-keys="idArr"
:props="defaultProps"
@node-click="handleNodeClick"
>
<template #default="{ node, data }">
<span :title="data.name">{{ data?.name }}</span>
</template>
</el-tree> -->
<!-- </el-option>
</el-select> -->
</el-form-item>
<!-- <el-form-item label="电压等级:">
<el-select
v-model="formData.scale"
multiple
collapse-tags
clearable
placeholder="请选择电压等级"
style="width: 100%"
value-key="id"
>
<el-option
v-for="item in voltageleveloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="终端厂家:">
<el-select
v-model="formData.manufacturer"
v-model="tableStore.table.params.manufacturer"
multiple
collapse-tags
clearable
@@ -85,24 +37,6 @@
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="干扰源类型:">
<el-select
v-model="formData.loadType"
multiple
collapse-tags
clearable
placeholder="请选择干扰源类型"
style="width: 100%"
value-key="id"
>
<el-option
v-for="(item, index) in interfereoption"
:key="index"
:label="item.name"
:value="item"
></el-option>
</el-select>
</el-form-item> -->
</template>
</TableHeader>
</div>
@@ -151,7 +85,7 @@
></path>
</svg>
</p>
<span style="color: #ffcc33">热备用状态</span>
<span style="color: #ffcc33">检修状态</span>
</li>
<li>
<p style="background: #cc0000">
@@ -178,7 +112,7 @@
</div>
<Table
ref="tableRef"
:tree-config="{ transform: true,parentField: 'uPid', rowField: 'uId' }"
:tree-config="{ transform: true, parentField: 'uPid', rowField: 'uId' }"
:scroll-y="{ enabled: true }"
v-if="activeName == 0"
/>
@@ -291,7 +225,7 @@ const tableStore = new TableStore({
}
},
{
title: '热备用(台)',
title: '检修(台)',
field: 'reaFlag',
type: 'html',
align: 'center',
@@ -329,40 +263,39 @@ const tableStore = new TableStore({
}
}
],
beforeSearchFun: () => {
tableStore.table.params.deptIndex = formData.value.deptIndex
tableStore.table.params.statisticalType = formData.value.statisticalType
tableStore.table.params.scale = formData.value.scale
tableStore.table.params.manufacturer = formData.value.manufacturer
tableStore.table.params.loadType = formData.value.loadType
tableStore.table.params.serverName = 'harmonicBoot'
delete tableStore.table.params.timeFlag
delete tableStore.table.params.startTime
delete tableStore.table.params.endTime
delete tableStore.table.params.pageNum
delete tableStore.table.params.pageSize
// tableStore.table.params.searchBeginTime = tableHeaderRef.value.datePickerRef.timeValue[0]
// tableStore.table.params.searchEndTime = tableHeaderRef.value.datePickerRef.timeValue[1]
},
// beforeSearchFun: () => {
// tableStore.table.params.deptIndex = formData.value.deptIndex
// tableStore.table.params.statisticalType = formData.value.statisticalType
// tableStore.table.params.scale = formData.value.scale
// tableStore.table.params.manufacturer = formData.value.manufacturer
// tableStore.table.params.loadType = formData.value.loadType
// tableStore.table.params.serverName = 'harmonicBoot'
// // delete tableStore.table.params.timeFlag
// // delete tableStore.table.params.startTime
// // delete tableStore.table.params.endTime
// // delete tableStore.table.params.pageNum
// // delete tableStore.table.params.pageSize
// // tableStore.table.params.searchBeginTime = tableHeaderRef.value.datePickerRef.timeValue[0]
// // tableStore.table.params.searchEndTime = tableHeaderRef.value.datePickerRef.timeValue[1]
// },
loadCallback: () => {
tableStore.table.data = tree2List(tableStore.table.data, Math.random() * 1000)
tableStore.table.column[0].title = formData.value.statisticalType.name
chartsRef.value&&chartsRef.value.getTableStoreParams(tableStore.table.params)
chartsRef.value && chartsRef.value.getTableStoreParams(tableStore.table.params)
setTimeout(() => {
activeName.value == 0 && tableRef.value && tableRef.value.getRef().setAllTreeExpand(true)
}, 0)
}
})
const handleSearch = () => {
formData.value.searchBeginTime = datePickerRef.value.timeValue[0]
formData.value.searchEndTime = datePickerRef.value.timeValue[1]
}
tableStore.table.params.deptIndex = ''
tableStore.table.params.statisticalType = []
tableStore.table.params.scale = []
tableStore.table.params.manufacturer = []
tableStore.table.params.loadType = []
tableStore.table.params.deptIndex = treeData.value[0]?.id
tableStore.table.params.statisticalType = classificationData[0]
tableStore.table.params.scale = voltageleveloption
tableStore.table.params.manufacturer = terminaloption
tableStore.table.params.loadType = interfereoption
tableStore.table.params.serverName = 'harmonicBoot'
provide('tableStore', tableStore)
const tree2List = (list: any, id?: string) => {
//存储结果的数组
@@ -403,7 +336,6 @@ watch(
)
</script>
<style lang="scss" scoped>
.table_legend {
width: 100%;
height: 40px;

View File

@@ -1,103 +1,114 @@
<template>
<el-dialog draggable v-model="dialogVisible" :title="title" width="70%">
<div style="height: 55vh">
<vxe-table height="auto" auto-resize :data="tableData" v-loading="loading" v-bind="defaultAttribute"
:key="key">
<vxe-table
height="auto"
auto-resize
:data="tableData"
v-loading="loading"
v-bind="defaultAttribute"
:key="key"
>
<vxe-column field="name" title="名称"></vxe-column>
<vxe-column field="powerCompany" title="供电公司" v-if="voltageLevelFlag"></vxe-column>
<vxe-column field="substation" title="变电站" v-if="voltageLevelFlag"></vxe-column>
<vxe-column field="busBar" title="母线" v-if="voltageLevelFlag"></vxe-column>
<vxe-column field="name" title="名称"></vxe-column>
<vxe-column field="powerCompany" title="供电公司" v-if="voltageLevelFlag"></vxe-column>
<vxe-column field="substation" title="变电站" v-if="voltageLevelFlag"></vxe-column>
<vxe-column field="busBar" title="母线" v-if="voltageLevelFlag"></vxe-column>
<vxe-column field="voltageLevel" title="电压等级"
v-if="statisticalName == '谐波电压' && !voltageLevelFlag"></vxe-column>
<vxe-column field="data" :title="statisticalName">
<template #default="scope">
<span v-if="scope.row.data == 3.14159" type="primary" size="small">暂无数据</span>
<span v-else type="primary" size="small">
{{ parseFloat(scope.row.data.toFixed(2)) }}
</span>
</template>
</vxe-column>
<vxe-column field="zd" title="评估">
<template #default="scope">
<span v-if="
0 <= scope.row.data &&
scope.row.data < 1 &&
scope.row.data !== 3.14159
" style=" font-weight: bold;color: #339966;">
无污染
</span>
<span v-if="
1 <= scope.row.data &&
scope.row.data < 1.2 &&
scope.row.data !== 3.14159
" style=" font-weight: bold;color: #3399ff;">
轻微污染
</span>
<span v-if="
1.2 <= scope.row.data &&
scope.row.data < 1.6 &&
scope.row.data !== 3.14159
" style=" font-weight: bold;color: #ffcc33;">
轻度污染
</span>
<span v-if="
1.6 <= scope.row.data &&
scope.row.data < 2 &&
scope.row.data !== 3.14159
" style=" font-weight: bold;color: #ff9900;">
中度污染
</span>
<span v-if="
2 <= scope.row.data && scope.row.data && scope.row.data !== 3.14159
" style=" font-weight: bold;color: #cc0000;">
重度污染
</span>
<span v-if="scope.row.data == 3.14159" style="color: #000;">
暂无评估
</span>
</template>
</vxe-column>
</vxe-table>
</div>
<vxe-column
field="voltageLevel"
title="电压等级"
v-if="statisticalName == '谐波电压' && !voltageLevelFlag"
>
<template #default="scope">
{{ scaleList.filter(item => item.id == scope.row.voltageLevel)[0].name }}
</template>
</vxe-column>
<vxe-column field="data" :title="statisticalName">
<template #default="scope">
<span v-if="scope.row.data == 3.14159" type="primary" size="small">暂无数据</span>
<span v-else type="primary" size="small">
{{ parseFloat(scope.row.data.toFixed(2)) }}
</span>
</template>
</vxe-column>
<vxe-column field="zd" title="评估">
<template #default="scope">
<span
v-if="0 <= scope.row.data && scope.row.data < 1 && scope.row.data !== 3.14159"
style="font-weight: bold; color: #339966"
>
无污染
</span>
<span
v-if="1 <= scope.row.data && scope.row.data < 1.2 && scope.row.data !== 3.14159"
style="font-weight: bold; color: #3399ff"
>
轻微污染
</span>
<span
v-if="1.2 <= scope.row.data && scope.row.data < 1.6 && scope.row.data !== 3.14159"
style="font-weight: bold; color: #ffcc33"
>
轻度污染
</span>
<span
v-if="1.6 <= scope.row.data && scope.row.data < 2 && scope.row.data !== 3.14159"
style="font-weight: bold; color: #ff9900"
>
中度污染
</span>
<span
v-if="2 <= scope.row.data && scope.row.data && scope.row.data !== 3.14159"
style="font-weight: bold; color: #cc0000"
>
重度污染
</span>
<span v-if="scope.row.data == 3.14159" style="color: #000">暂无评估</span>
</template>
</vxe-column>
</vxe-table>
</div>
</el-dialog>
</template>
<script setup lang='ts'>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { useDictData } from '@/stores/dictData'
import { defaultAttribute } from '@/components/table/defaultAttribute'
import { getSubstationInfoById, getLineInfoById } from '@/api/harmonic-boot/area'
const dialogVisible = ref(false)
const dictData = useDictData()
const loading = ref(false)
const voltageLevelFlag = ref(false)
const tableData = ref([])
const scaleList = dictData.getBasicData('Dev_Voltage_Stand')
const title = ref('')
const key = ref(0)
const statisticalName = ref('')
const open = (row: any, flag: boolean, params: any) => {
console.log("🚀 ~ open ~ row:", row)
console.log('🚀 ~ open ~ row:', row)
voltageLevelFlag.value = flag
loading.value = true
title.value = row.name + '详情'
statisticalName.value = params.statisticalType.name
statisticalName.value = params.statisticalType.name
tableData.value = []
if (flag) {
getLineInfoById({ ...params, deptIndex: row.pid, id: row.id ,powerFlag: row.powerFlag }).then((res: any) => {
tableData.value = res.data
loading.value = false
}).catch(() => {
loading.value = false
})
getLineInfoById({ ...params, deptIndex: row.pid, id: row.id, powerFlag: row.powerFlag })
.then((res: any) => {
tableData.value = res.data
loading.value = false
})
.catch(() => {
loading.value = false
})
} else {
getSubstationInfoById({ ...params, deptIndex: row.id }).then((res: any) => {
tableData.value = res.data
loading.value = false
}).catch(() => {
loading.value = false
})
getSubstationInfoById({ ...params, deptIndex: row.id })
.then((res: any) => {
tableData.value = res.data
loading.value = false
})
.catch(() => {
loading.value = false
})
}
key.value += 1

View File

@@ -98,7 +98,7 @@
@click="queryline(item1, true)"
>
<el-tag
v-if="item1.data == 3.14159 "
v-if="item1.data == 3.14159"
style="background: #ccc; color: #fff"
size="small"
>
@@ -271,6 +271,9 @@ const tableStore = new TableStore({
url: '/harmonic-boot/PollutionSubstation/deptSubstationRelations',
method: 'POST',
column: [],
beforeSearchFun: () => {
tableStore.table.params.reportFlag = tableStore.table.params.interval
},
loadCallback: () => {
histogram(tableStore.table.data)
}
@@ -281,7 +284,7 @@ tableStore.table.params.deptIndex = dictData.state.area[0].id
tableStore.table.params.statisticalType = options[0]
tableStore.table.params.monitorFlag = 2
tableStore.table.params.powerFlag = sign[0]?.algoDescribe || 0
tableStore.table.params.reportFlag = 3
tableStore.table.params.serverName = 'event-boot'
const handleTabChange = (val: any) => {
if (val == 0) return
@@ -318,7 +321,7 @@ const histogram = (res: any) => {
'&nbsp' +
'&nbsp' +
(params[i].value == 0.14159
? '无污染'
? '暂无数据'
: params[i].value < 1
? '无污染'
: params[i].value < 1.2
@@ -385,8 +388,7 @@ const histogram = (res: any) => {
// 定制显示(按顺序)
color: function (params) {
if (params.value == 0.14159) {
} else if (params.value == 0) {
if (params.value == 0) {
return '#339966'
} else if (params.value > 2) {
return new echarts.graphic.LinearGradient(
@@ -448,7 +450,7 @@ const histogram = (res: any) => {
0 < params.value &&
params.value <= 1 &&
params.value >= 0 &&
params.value !== 0.05
params.value !== 0.14159
) {
return new echarts.graphic.LinearGradient(
0,
@@ -463,7 +465,7 @@ const histogram = (res: any) => {
],
false
)
} else if (params.value == 0.05) {
} else if (params.value == 0.14159) {
return new echarts.graphic.LinearGradient(
0,
1,
@@ -594,7 +596,7 @@ const map = (res: any) => {
let d = element.name.split('\n')
let p1 = {
name: d[0],
value: element.data
value: element.data == 3.14159 ? -1 : element.data
}
arr1.push(p1)
@@ -673,7 +675,7 @@ const map = (res: any) => {
},
{
gte: -1,
lte: 0.05,
lte: 0.14159,
label: '无数据',
color: '#ccc'
}
@@ -786,7 +788,7 @@ const layout1 = mainHeight(93) as any
.legend {
position: absolute;
right: 15px;
top: 17px;
top: 20px;
z-index: 99;
}
</style>

View File

@@ -22,8 +22,8 @@
<vxe-column field="name" title="名称"></vxe-column>
<vxe-column field="data" :title="changeName">
<template #default="scope">
<span v-if="scope.row.data == -1" type="primary" size="small">暂无数据</span>
<span v-if="scope.row.data !== -1 && scope.row.data !== 0.1" type="primary"
<span v-if="scope.row.data == 3.14159" type="primary" size="small">暂无数据</span>
<span v-if="scope.row.data !== 3.14159 && scope.row.data !== 0.1" type="primary"
size="small">
{{ scope.row.data }}
</span>
@@ -155,7 +155,7 @@ const map = (res: any) => {
let d = element.name.split('\n')
let p1 = {
name: d[0],
value: element.data
value: element.data == 3.14159 ? -1 : element.data
}
arr1.push(p1)

View File

@@ -1,11 +1,11 @@
<template>
<div style="display: flex; flex-direction: column; height: 100%; position: relative" >
<div style="display: flex; flex-direction: column; height: 100%; position: relative">
<el-form :inline="true">
<el-form-item label="多监测点">
<el-checkbox v-model="checked" @change="checkChange" />
</el-form-item>
<el-form-item label="日期">
<DatePicker ref="datePickerRef"></DatePicker>
<DatePicker ref="datePickerRef" ></DatePicker>
</el-form-item>
<el-form-item label="指标类型:">
<el-select
@@ -116,7 +116,7 @@
<SecondSheet v-if="options" style="background: #fff; z-index: 10">
<el-button
style="position: absolute; right: 0; top: 0; cursor: pointer; z-index: 3"
icon="el-icon-Back"
icon="el-icon-Back"
size="small"
@click="close"
>
@@ -259,7 +259,7 @@ const conditionChange = () => {
}
if (
formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49')
) {
@@ -275,7 +275,7 @@ const conditionChange = () => {
formData.condition.includes('43') ||
formData.condition.includes('44') ||
(formData.condition.includes('45') && formData.condition.includes('46')) ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49')
) {
@@ -294,7 +294,7 @@ const conditionChange = () => {
}
if (
formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49')
) {
@@ -311,7 +311,7 @@ const conditionChange = () => {
formData.condition.includes('44') ||
formData.condition.includes('45')) &&
(formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49'))
) {
@@ -323,7 +323,7 @@ const conditionChange = () => {
}
if (
formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49')
) {
@@ -350,7 +350,7 @@ const conditionChange = () => {
formData.condition.includes('44') ||
formData.condition.includes('45')) &&
(formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49'))
) {
@@ -362,7 +362,7 @@ const conditionChange = () => {
}
if (
formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49')
) {
@@ -389,7 +389,7 @@ const conditionChange = () => {
formData.condition.includes('44') ||
formData.condition.includes('45')) &&
(formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49'))
) {
@@ -401,7 +401,7 @@ const conditionChange = () => {
}
if (
formData.condition.includes('46') ||
// formData.condition.includes('47') ||
// formData.condition.includes('47') ||
// formData.condition.includes('48') ||
formData.condition.includes('49')
) {

View File

@@ -132,7 +132,7 @@ const init = (row: any) => {
) / 100
SvData[`h${i - 0.5}`] =
Math.floor(Math.max(...[row.V.A[`SV_` + i], row.V.B[`SV_` + i], row.V.C[`SV_` + i]].map(Number)) * 100) /
Math.floor(Math.max(...[row.V.A[`SV_` + (i-1)], row.V.B[`SV_` + (i-1)], row.V.C[`SV_` + (i-1)]].map(Number)) * 100) /
100
iData[`h${i + 1}`] =
Math.floor(
@@ -140,7 +140,7 @@ const init = (row: any) => {
) / 100
}
SvData[`h49.5`] =
Math.floor(Math.max(...[row.V.A[`SV_50`], row.V.B[`SV_50`], row.V.C[`SV_50`]].map(Number)) * 100) / 100
Math.floor(Math.max(...[row.V.A[`SV_49`], row.V.B[`SV_49`], row.V.C[`SV_49`]].map(Number)) * 100) / 100
tabsList.value[0].data = vData
tabsList.value[1].data = SvData

View File

@@ -341,7 +341,27 @@ const setEcharts = () => {
fontSize: 14
},
backgroundColor: 'rgba(0,0,0,0.55)',
borderWidth: 0
borderWidth: 0,
formatter(params: any) {
const xname = params[0].value[0]
let str = `${xname}<br>`
params.forEach((el: any, index: any) => {
let marker = ''
// if (el.value[3] == 'dashed') {
// for (let i = 0; i < 3; i++) {
// marker += `<span style="display:inline-block;border: 2px ${el.color} solid;margin-right:5px;width:10px;height:0px;background-color:#ffffff00;"></span>`
// }
// } else {
// marker = `<span style="display:inline-block;border: 2px ${el.color} ${el.value[3]};margin-right:5px;width:40px;height:0px;background-color:#ffffff00;"></span>`
// }
str += `${el.marker} ${el.seriesName.split('(')[0]}${
el.value[1] ? el.value[1] + ' ' + (el.value[2] || '') : '-'
}<br>`
})
return str
}
},
series: []
}

View File

@@ -7,7 +7,7 @@
<el-checkbox v-model="checked" @change="checkChange" />
</el-form-item>
<el-form-item label="日期">
<DatePicker ref="datePickerRef"></DatePicker>
<DatePicker ref="datePickerRef" :theCurrentTime="true"></DatePicker>
</el-form-item>
<el-form-item label="指标类型:">
<el-select
@@ -67,7 +67,7 @@
<!-- <el-form :inline="true">
</el-form> -->
<div id="canvas" class="mt10" :style="height1" v-loading="loading">
<div id="canvas" class="mt10" :style="height1" style="overflow-y: auto" v-loading="loading">
<my-echart :options="item.option" v-for="item in list" :style="height" @triggerPoint="triggerPoint" />
</div>
</div>
@@ -90,6 +90,7 @@ import { queryEventDetailByEventId } from '@/api/event-boot/highAndLowPressure'
import TableStore from '@/utils/tableStore'
import waveForm from '@/components/echarts/waveForm.vue'
import html2canvas from 'html2canvas'
import { ElMessage } from 'element-plus'
import * as echarts from 'echarts' // 全引入
const datePickerRef = ref()
const monitoringPoint = useMonitoringPoint()
@@ -139,7 +140,7 @@ onMounted(() => {
init()
})
const height: any = ref(mainHeight(200, 1))
const height1: any = ref(mainHeight(200))
const height1: any = ref(mainHeight(160))
const checkChange = () => {
if (checked.value) {
monitoringPoint.setShowCheckBox(true)
@@ -149,6 +150,9 @@ const checkChange = () => {
}
}
const init = () => {
if (formData.condition.length == 0) {
return ElMessage.warning('请选择指标类型')
}
loading.value = true
formData.lineId = checked.value ? monitoringPoint.state.lineIds : [monitoringPoint.state.lineId]
formData.searchBeginTime = datePickerRef.value.timeValue[0]
@@ -162,13 +166,14 @@ const init = () => {
}
})
getHistoryResult(formData)
.then((res: any) => {
.then(async (res: any) => {
if (directionValue >= 0) {
res.data[directionValue].targetName = '谐波电流方向'
traceability.value = [(res.data as [])[directionValue]]
}
list.value = []
shujuchuli(res)
await shujuchuli(res)
await selectChange(tableHeaderRef.value.showSelect)
loading.value = false
})
.catch(() => {
@@ -1146,7 +1151,7 @@ const shujuchuli = (res: any) => {
rendering()
}
const rendering = () => {
height.value = mainHeight(160, list.value.length)
height.value = mainHeight(160, list.value.length > 3 ? 3 : list.value.length)
list.value.forEach((item: any) => {
if (item.targetName == '电压不平衡') {
@@ -1406,22 +1411,22 @@ const getEcharts = () => {
? 'A相谐波电流方向:无<br/>'
: 'A相谐波电流方向:流出<br/>'
} else if (params[i].seriesName == 'B相谐波电流方向') {
tips += params[i].marker +
params[i].value[1] > 0
tips +=
params[i].marker + params[i].value[1] > 0
? 'B相谐波电流方向:流入<br/>'
: params[i].value[1] == 0
? 'B相谐波电流方向:无<br/>'
: 'B相谐波电流方向:流出<br/>'
} else if (params[i].seriesName == 'C相谐波电流方向') {
tips += params[i].marker +
params[i].value[1] > 0
tips +=
params[i].marker + params[i].value[1] > 0
? 'C相谐波电流方向:流入<br/>'
: params[i].value[1] == 0
? 'C相谐波电流方向:无<br/>'
: 'C相谐波电流方向:流出<br/>'
} else if (params[i].seriesName == '总谐波电流方向') {
tips += params[i].marker +
params[i].value[1] > 0
tips +=
params[i].marker + params[i].value[1] > 0
? '总谐波电流方向:流入<br/>'
: params[i].value[1] == 0
? '总谐波电流方向:无<br/>'
@@ -1430,22 +1435,22 @@ const getEcharts = () => {
let str = (params[i].value[1] * 1).toString()
let reg = str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g
let str1 = str.replace(reg, '$1,')
tips += params[i].marker + params[i].seriesName.replace('(kV)', '') + ':' + str1 + 'kV<br/>'
tips += params[i].marker + params[i].seriesName.replace('(kV)', '') + ':' + str1 + 'kV<br/>'
} else if (params[i].seriesName == '零序电压(V)' || params[i].seriesName == '负序电压(V)') {
let str = (params[i].value[1] * 1).toString()
let reg = str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g
let str1 = str.replace(reg, '$1,')
tips += params[i].marker + params[i].seriesName.replace('(V)', '') + ':' + str1 + 'V<br/>'
tips += params[i].marker + params[i].seriesName.replace('(V)', '') + ':' + str1 + 'V<br/>'
} else if (params[i].seriesName !== '正序电压(kV)') {
let str = (params[i].value[1] * 1).toString()
let reg = str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g
let str1 = str.replace(reg, '$1,')
tips += params[i].marker + params[i].seriesName + ':' + str1 + '<br/>'
tips += params[i].marker + params[i].seriesName + ':' + str1 + '<br/>'
} else {
let str = (params[i].value[2] * 1).toString()
let reg = str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g
let str1 = str.replace(reg, '$1,')
tips += params[i].marker + params[i].seriesName + ':' + str1 + '<br/>'
tips += params[i].marker + params[i].seriesName + ':' + str1 + '<br/>'
let str2 = (params[i].value[3] * 1).toString()
let reg2 = str2.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g
@@ -1453,7 +1458,7 @@ const getEcharts = () => {
// if(params[i].seriesName){
// }
tips += params[i].marker + params[i].seriesName + ':' + str12 + '<br/>'
tips += params[i].marker + params[i].seriesName + ':' + str12 + '<br/>'
}
}
@@ -1806,7 +1811,7 @@ const conditionChange = () => {
]
}
setTimeout(() => {
console.log('🚀 ~ setTimeout ~ tableHeaderRef.value:', tableHeaderRef.value)
// console.log('🚀 ~ setTimeout ~ tableHeaderRef.value:', tableHeaderRef.value)
tableHeaderRef.value && tableHeaderRef.value?.computedSearchRow()
}, 100)
@@ -1830,7 +1835,7 @@ const triggerPoint = (data: any) => {
}
// 计算高度
const selectChange = (flag: boolean) => {
height.value = mainHeight(flag ? 220 : 160, list.value.length)
height.value = mainHeight(flag ? 220 : 160, list.value.length > 3 ? 3 : list.value.length)
}
const backbxlb = () => {
view.value = true

View File

@@ -98,15 +98,16 @@ const init = () => {
// }
}
for (let i = 0; i < steadyInfoData.length; i++) {
if (steadyInfoData[i] == 3.1415) {
steadyInfoData[i] = 1
yData2.push(steadyInfoData[i])
} else if (steadyInfoData[i] == 3.14159) {
steadyInfoData[i] = 1
yData2.push(steadyInfoData[i])
} else if (steadyInfoData[i] !== 3.14159) {
yData2.push(steadyInfoData[i])
}
yData2.push(steadyInfoData[i])
// if (steadyInfoData[i] == 3.14159) {
// steadyInfoData[i] = 0
// yData2.push(steadyInfoData[i])
// } else if (steadyInfoData[i] == 3.14159) {
// steadyInfoData[i] = 0
// yData2.push(steadyInfoData[i])
// } else if (steadyInfoData[i] !== 3.14159) {
// yData2.push(steadyInfoData[i])
// }
}
let series: any[] = [
{
@@ -183,13 +184,13 @@ const init = () => {
name: formData.periodBeginTime + '至' + formData.periodEndTime,
type: 'bar',
barMaxWidth: 30,
label: {
show: true,
position: 'top',
distance: 2,
color: '#fff',
fontWeight: 'bolder'
},
// label: {
// show: true,
// position: 'top',
// distance: 2,
// color: '#fff',
// fontWeight: 'bolder'
// },
data: yData2,
itemStyle: {
color: (params: any) => {
@@ -197,6 +198,8 @@ const init = () => {
return gradeColor3[0]
} else if (params.value > 60) {
return gradeColor3[1]
} else if (params.value == 3.14159) {
return '#ccc'
} else {
return gradeColor3[2]
}

View File

@@ -1,23 +1,22 @@
<template>
<div style="display: flex; flex-direction: column; height: 100%">
<TableHeader ref="TableHeaderRef" :showSearch="false" >
<TableHeader ref="TableHeaderRef" :showSearch="false">
<template v-slot:select>
<el-form-item label="日期">
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item label="指标">
<el-radio-group v-model="formData.harmState">
<el-radio-button :label="0">谐波电压含有率</el-radio-button>
<el-radio-button :label="1">谐波电流幅值</el-radio-button>
</el-radio-group>
</el-form-item>
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item label="指标">
<el-radio-group v-model="formData.harmState">
<el-radio-button :label="0">谐波电压含有率</el-radio-button>
<el-radio-button :label="1">谐波电流幅值</el-radio-button>
</el-radio-group>
</el-form-item>
</template>
<template v-slot:operation>
<el-button type="primary" @click="init" icon="el-icon-Search">查询</el-button>
</template>
</TableHeader>
<vxe-table :data="analysisData" v-bind="defaultAttribute">
<vxe-column field="name" title="指标" width="140px"></vxe-column>
<vxe-column
@@ -27,7 +26,7 @@
width="80px"
></vxe-column>
</vxe-table>
<div style="flex: 1" class="mt10" v-loading="loading">
<div style="flex: 1" class="mt10" v-loading="loading">
<my-echart :options="options" />
</div>
</div>
@@ -69,8 +68,12 @@ const init = () => {
analysisData.value.push(
{
name: '谐波电流幅值(A)',
originData: res.data.harmInHarmValue.map((item: number) => item.toFixed(3)),
...res.data.harmInHarmValue.map((item: number) => item.toFixed(3))
originData: res.data.harmInHarmValue.map((item: number) =>
item == null || item == 3.14159 ? 0.14159 : Math.floor(item * 1000) / 1000
),
...res.data.harmInHarmValue.map((item: number) =>
item == null || item == 3.14159 ? '/' : Math.floor(item * 1000) / 1000
)
},
{
name: '国标限值(A)',
@@ -82,8 +85,12 @@ const init = () => {
analysisData.value.push(
{
name: '谐波电压含有率(%)',
originData: res.data.harmInHarmValue.map((item: number) => item.toFixed(3)),
...res.data.harmInHarmValue.map((item: number) => item.toFixed(3))
originData: res.data.harmInHarmValue.map((item: number) =>
item == null || item == 3.14159 ? 0.14159 : Math.floor(item * 1000) / 1000
),
...res.data.harmInHarmValue.map((item: number) =>
item == null || item == 3.14159 ? '/' : Math.floor(item * 1000) / 1000
)
},
{
name: '国标限值(%)',

View File

@@ -1,26 +1,26 @@
<template>
<div style="display: flex; flex-direction: column; height: 100%">
<TableHeader ref="TableHeaderRef" :showSearch="false" >
<TableHeader ref="TableHeaderRef" :showSearch="false">
<template v-slot:select>
<el-form-item label="日期">
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item label="对比">
<el-select v-model="searchType" clearable placeholder="可选择同比、环比">
<el-option
v-for="item in searchTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<DatePicker ref="datePickerRef"></DatePicker>
</el-form-item>
<el-form-item label="对比">
<el-select v-model="searchType" clearable placeholder="可选择同比、环比">
<el-option
v-for="item in searchTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</template>
<template v-slot:operation>
<el-button type="primary" @click="init" icon="el-icon-Search">查询</el-button>
</template>
</TableHeader>
<div style="flex: 1; display: flex; overflow: hidden" class="mt10" v-loading="loading">
<div style="flex: 1">
<my-echart :options="options1" />
@@ -90,11 +90,15 @@ const init = () => {
formData.periodBeginTime = ''
formData.periodEndTime = ''
}
Promise.all([getComFlagInfoData(formData), getRunInfoData(formData)]).then((res: any) => {
handlerOptions1(res[0].data)
handlerOptions2(res[1].data)
loading.value = false
}).catch(() => { loading.value = false })
Promise.all([getComFlagInfoData(formData), getRunInfoData(formData)])
.then((res: any) => {
handlerOptions1(res[0].data)
handlerOptions2(res[1].data)
loading.value = false
})
.catch(() => {
loading.value = false
})
}
const handlerOptions1 = (data: any) => {
options1.value = {
@@ -106,13 +110,13 @@ const handlerOptions1 = (data: any) => {
},
tooltip: {
formatter: function (params: any) {
var res = params[0].name + '<br/>终端运行状态为:'
var res = params[0].data[0] + '<br/>终端运行状态为:'
var texts = ''
if (params[0].value === 2 || params[0].value === '2') {
if (params[0].data[1] === 2 || params[0].data[1] === '2') {
texts = '退出'
} else if (params[0].value === 0 || params[0].value === '0') {
} else if (params[0].data[1] === 0 || params[0].data[1] === '0') {
texts = '中断'
} else if (params[0].value === 1 || params[0].value === '1') {
} else if (params[0].data[1] === 1 || params[0].data[1] === '1') {
texts = '正常'
}
res = res + texts
@@ -120,11 +124,21 @@ const handlerOptions1 = (data: any) => {
}
},
xAxis: {
type: 'category',
data: data.updateTime
// type: 'category',
// data: data.updateTime
type: 'time',
name: '时间',
//
axisLabel: {
formatter: {
day: '{MM}-{dd}',
month: '{MM}',
year: '{yyyy}'
}
}
},
yAxis: {
name:'状态',
name: '状态',
type: 'value',
axisLabel: {
// 这里重新定义就可以
@@ -144,8 +158,9 @@ const handlerOptions1 = (data: any) => {
series: [
{
name: '中断运行状态',
data: data.type,
type: 'line'
data: data.type.map((item: any, index: number) => [data.updateTime[index], item]),
type: 'line',
step: 'end'
}
]
}
@@ -165,7 +180,7 @@ const handlerOptions2 = (data: any) => {
: [`${formData.searchBeginTime}${formData.searchEndTime}`]
},
yAxis: {
name:'%',
name: '%',
type: 'value'
},
series: [