2 Commits

Author SHA1 Message Date
sjl
564e6ef4ab Merge branch 'master' of http://192.168.1.22:3000/Web/admin-sjzx
# Conflicts:
#	src/views/pqs/voltageSags/Region/components/echart.vue
2026-01-23 09:07:11 +08:00
sjl
c84c5dae3b 微调 2026-01-23 09:04:08 +08:00
6 changed files with 355 additions and 333 deletions

View File

@@ -38,6 +38,7 @@ const tableStore = new TableStore({
echarts.value.Grade(tableStore.table.data.voltageStatistics) echarts.value.Grade(tableStore.table.data.voltageStatistics)
echarts.value.Relation(tableStore.table.data.monthlyStatistics) echarts.value.Relation(tableStore.table.data.monthlyStatistics)
table.value.info(tableStore.table.data) table.value.info(tableStore.table.data)
console.log(tableStore.table.data)
} }
}) })
provide('tableStore', tableStore) provide('tableStore', tableStore)

View File

@@ -604,56 +604,74 @@ const maintenanceData = reactive({
//上节点选择 //上节点选择
const checkLeft = (checkedNodes: any, checkedKeys: any) => { const checkLeft = (checkedNodes: any, checkedKeys: any) => {
maintenanceData.upNode = checkedNodes.id maintenanceData.upNode = checkedNodes.id
if (maintenanceData.upNode === maintenanceData.downNode) { if (maintenanceData.upNode === maintenanceData.downNode) {
menuTreeRight.value?.setCheckedKeys([]) menuTreeRight.value?.setCheckedKeys([])
maintenanceData.downNode = '' maintenanceData.downNode = ''
} }
if (checkedKeys.checkedKeys.length > 1) { if (checkedKeys.checkedKeys.length > 1) {
menuTreeLeft.value?.setCheckedKeys([checkedNodes.id]) menuTreeLeft.value?.setCheckedKeys([checkedNodes.id])
} }
} }
//下节点选择 //下节点选择
const checkRight = (checkedNodes: any, checkedKeys: any) => { const checkRight = (checkedNodes: any, checkedKeys: any) => {
maintenanceData.downNode = checkedNodes.id maintenanceData.downNode = checkedNodes.id
if (maintenanceData.downNode === maintenanceData.upNode) {
menuTreeLeft.value?.setCheckedKeys([]) if (maintenanceData.downNode === maintenanceData.upNode) {
maintenanceData.upNode = '' menuTreeLeft.value?.setCheckedKeys([])
} maintenanceData.upNode = ''
if (checkedKeys.checkedKeys.length > 1) { }
menuTreeRight.value?.setCheckedKeys([checkedNodes.id]) if (checkedKeys.checkedKeys.length > 1) {
} menuTreeRight.value?.setCheckedKeys([checkedNodes.id])
}
} }
//节点维护提交 //节点维护提交
const maintenanceOnsubmit = () => { const maintenanceOnsubmit = () => {
for (let i = 0; i < bind.value.length; i++) {
if (bind.value[i][0] == maintenanceData.upNode) { if(maintenanceData.downNode == '' || maintenanceData.upNode == '') {
for (let j = 0; j < bind.value.length; j++) { ElMessage({
if (bind.value[j][1] == maintenanceData.downNode) { type: 'warning',
ElMessage({ message: '请确保上下节点各自选择一个母线!'
type: 'warning', })
message: '上下节点无法选择相同母线!!!' return
})
return
}
}
return
}
} }
if (bindLevel.value != 5) {
for (let i = 0; i < bind.value.length; i++) {
if (maintenanceData.upNode == bind.value[i][1] && maintenanceData.downNode == bind.value[i][0]) {
ElMessage({
type: 'warning',
message: '上下节点无法选择相同母线!!!'
})
return
}
}
}
if (maintenanceData.upNode == maintenanceData.downNode) {
ElMessage({
type: 'warning',
message: '上下节点无法选择相同母线!'
})
}
// for (let i = 0; i < bind.value.length; i++) {
// if (bind.value[i] == maintenanceData.upNode) {
// for (let j = 0; j < bind.value.length; j++) {
// if (bind.value[j] == maintenanceData.downNode) {
// ElMessage({
// type: 'warning',
// message: '上下节点无法选择相同母线!!!'
// })
// return
// }
// }
// return
// }
// }
// if (bindLevel.value != 5) {
// for (let i = 0; i < bind.value.length; i++) {
// if (maintenanceData.upNode == bind.value[i] && maintenanceData.downNode == bind.value[i]) {
// ElMessage({
// type: 'warning',
// message: '上下节点无法选择相同母线!!!'
// })
// return
// }
// }
// }
nodeMaintenance(maintenanceData).then((res: any) => { nodeMaintenance(maintenanceData).then((res: any) => {
if (res.code == 'A0000') { if (res.code == 'A0000') {
ElMessage({ ElMessage({

View File

@@ -58,7 +58,7 @@
<el-input v-model="form.tpName" placeholder="请输入" maxlength="32" show-word-limit clearable></el-input> <el-input v-model="form.tpName" placeholder="请输入" maxlength="32" show-word-limit clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="描述:" class="mt20"> <el-form-item label="描述:" class="mt20">
<el-input v-model="form.tfDescribe" placeholder="请输入" maxlength="32" show-word-limit clearable></el-input> <el-input v-model="form.tfDescribe" placeholder="请输入" ></el-input>
</el-form-item> </el-form-item>
<el-form-item class="mt20 ml20"> <el-form-item class="mt20 ml20">
<el-button @click="dialogFormVisible = false">取消</el-button> <el-button @click="dialogFormVisible = false">取消</el-button>

View File

@@ -69,6 +69,7 @@ const tableHeaderLevel = ref<any[]>([
const frequency = ref<number>(875) const frequency = ref<number>(875)
const info = (list: any, searchBeginTime: any, searchEndTime: any,selectedAreaName: string) => { const info = (list: any, searchBeginTime: any, searchEndTime: any,selectedAreaName: string) => {
Time.value = [searchBeginTime, searchEndTime] Time.value = [searchBeginTime, searchEndTime]
frequency.value = list.areaStatistics.frequencySum frequency.value = list.areaStatistics.frequencySum
areaName.value = selectedAreaName // 更新区域名称 areaName.value = selectedAreaName // 更新区域名称
@@ -91,7 +92,7 @@ const info = (list: any, searchBeginTime: any, searchEndTime: any,selectedAreaNa
}, },
...list.voltageStatistics.voltageLevelCalculation ...list.voltageStatistics.voltageLevelCalculation
] ]
let all = 0 let all = 0

View File

@@ -1,293 +1,294 @@
<template> <template>
<div> <div>
<my-echart class="bars_w" :options="areaStatistics" /> <my-echart class="bars_w" :options="areaStatistics" />
<div class="separate"> <div class="separate">
<my-echart class="bars_w" :options="voltageStatistics" /> <my-echart class="bars_w" :options="voltageStatistics" />
<my-echart class="bars_w" :options="monthlyStatistics" /> <my-echart class="bars_w" :options="monthlyStatistics" />
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import MyEchart from '@/components/echarts/MyEchart.vue' import MyEchart from '@/components/echarts/MyEchart.vue'
import { reactive, ref, defineExpose } from 'vue' import { reactive, ref, defineExpose } from 'vue'
import { mainHeight } from '@/utils/layout' import { mainHeight } from '@/utils/layout'
let areaStatistics = ref({}) let areaStatistics = ref({})
let voltageStatistics = ref({}) let voltageStatistics = ref({})
let monthlyStatistics = ref({}) let monthlyStatistics = ref({})
const Processing = (list: any) => { const Processing = (list: any) => {
// 区域 // 区域
let echartsndArr: string[] = [] let echartsndArr: string[] = []
let echartsArr: string[] = [] let echartsArr: string[] = []
list.areaCalculation.forEach((item: any) => { list.areaCalculation.forEach((item: any) => {
echartsndArr.push(item.areaName) echartsndArr.push(item.areaName)
// if (item.frequency == 0) { // if (item.frequency == 0) {
// item.frequency = 1.1 // item.frequency = 1.1
// } else if (item.frequency == 1) { // } else if (item.frequency == 1) {
// item.frequency = 1.3 // item.frequency = 1.3
// } // }
echartsArr.push(item.frequency) echartsArr.push(item.frequency)
}) })
areaStatistics.value = { areaStatistics.value = {
title: { title: {
text: '区域' text: '区域'
}, },
tooltip: { tooltip: {
formatter: function (params: any) { formatter: function (params: any) {
let html = '区域:' + params[0].name let html = '区域:' + params[0].name
params.forEach((item: any) => { params.forEach((item: any) => {
if (item.value == 1.1) { if (item.value == 1.1) {
html += `<br/>${item.seriesName}: ${0}` html += `<br/>${item.seriesName}: ${0}`
} else if (item.value == 1.3) { } else if (item.value == 1.3) {
html += `<br/>${item.seriesName}: ${1}` html += `<br/>${item.seriesName}: ${1}`
} else { } else {
html += `<br/>${item.seriesName}: ${item.value}` html += `<br/>${item.seriesName}: ${item.value}`
} }
}) })
return html return html
} }
}, },
legend: { legend: {
data: ['暂降次数'] data: ['暂降次数']
}, },
xAxis: { xAxis: {
name: '区域', // 给X轴加单位 name: '区域', // 给X轴加单位
data: echartsndArr data: echartsndArr
}, },
yAxis: { yAxis: {
name: '次数' // 给X轴加单位 name: '次数' // 给X轴加单位
}, },
options: { options: {
series: [ series: [
{ {
barMinHeight: 5, barMinHeight: 5,
barMaxWidth: 30, barMaxWidth: 30,
itemStyle: { itemStyle: {
normal: { normal: {
//这里是颜色 //这里是颜色
color: function (params: any) { color: function (params: any) {
if (params.data == 0) { if (params.data == 0) {
return '#B3B3B3' return '#B3B3B3'
} else { } else {
return '#07CCCA ' return '#07CCCA '
} }
} }
} }
}, },
name: '暂降次数', name: '暂降次数',
type: 'bar', type: 'bar',
data: echartsArr data: echartsArr
} }
] ]
} }
} }
} }
// 电压等级 // 电压等级
const Grade = (list: any) => { const Grade = (list: any) => {
let echartsndArr: string[] = [] let echartsndArr: string[] = []
let echartsArr: string[] = [] let echartsArr: string[] = []
list.voltageLevelCalculation.forEach((item: any) => { list.voltageLevelCalculation.forEach((item: any) => {
echartsndArr.push(item.voltageLevel) echartsndArr.push(item.voltageLevel)
// if (item.frequency == 0) { // if (item.frequency == 0) {
// item.frequency = 1.1 // item.frequency = 1.1
// } else if (item.frequency == 1) { // } else if (item.frequency == 1) {
// item.frequency = 1.3 // item.frequency = 1.3
// } // }
echartsArr.push(item.frequency) echartsArr.push(item.frequency)
}) })
voltageStatistics.value = { voltageStatistics.value = {
title: { title: {
text: '电压等级' text: '电压等级'
}, },
tooltip: { tooltip: {
formatter: function (params: any) { formatter: function (params: any) {
let html = '电压等级:' + params[0].name let html = '电压等级:' + params[0].name
params.forEach((item: any) => { params.forEach((item: any) => {
if (item.value == 1.1) { if (item.value == 1.1) {
html += `<br/>${item.seriesName}: ${0}` html += `<br/>${item.seriesName}: ${0}`
} else if (item.value == 1.3) { } else if (item.value == 1.3) {
html += `<br/>${item.seriesName}: ${1}` html += `<br/>${item.seriesName}: ${1}`
} else { } else {
html += `<br/>${item.seriesName}: ${item.value}` html += `<br/>${item.seriesName}: ${item.value}`
} }
}) })
return html return html
} }
}, },
legend: { legend: {
data: ['暂降次数'] data: ['暂降次数']
}, },
xAxis: { xAxis: {
name: '电压等级', name: '电压等级',
data: echartsndArr data: echartsndArr
}, },
yAxis: { yAxis: {
name: '次数' // 给X轴加单位 name: '次数' // 给X轴加单位
}, },
options: { options: {
series: [ series: [
{ {
barMaxWidth: 30, barMaxWidth: 30,
barMinHeight: 5, barMinHeight: 5,
itemStyle: { itemStyle: {
normal: { normal: {
//这里是颜色 //这里是颜色
color: function (params: any) { color: function (params: any) {
if (params.data == 0) { if (params.data == 0) {
return '#B3B3B3' return '#B3B3B3'
} else { } else {
return '#07CCCA ' return '#07CCCA '
} }
} }
} }
// color: echartsColor.FigureColor[0], // color: echartsColor.FigureColor[0],
}, },
name: '暂降次数', name: '暂降次数',
type: 'bar', type: 'bar',
data: echartsArr data: echartsArr
} }
] ]
} }
} }
} }
//时间 //时间
const Relation = (list: any, interval: number) => { const Relation = (list: any, interval: number) => {
let echartsndArr: string[] = [] let echartsndArr: string[] = []
let echartsArr: string[] = [] let echartsArr: string[] = []
let echartswArr: string[] = [] let echartswArr: string[] = []
list.monthCalculation.forEach((item: any, i: number) => { list.monthCalculation.forEach((item: any, i: number) => {
if (i != 0) { if (i != 0) {
item.month = item.month.slice(5) item.month = item.month.slice(5)
} else if (i == 0) { } else if (i == 0) {
let date = item.month.slice(5) let date = item.month.slice(5)
// let t = item.month.slice(0, 4); // let t = item.month.slice(0, 4);
// item.month = date + "\n" + "(" + t + ")"; // item.month = date + "\n" + "(" + t + ")";
item.month = date item.month = date
} }
echartsndArr.push(item.month) echartsndArr.push(item.month)
// if (item.linked == 0 || item.notAssociated == 0) { // if (item.linked == 0 || item.notAssociated == 0) {
// item.linked = 3.14159; // item.linked = 3.14159;
// item.notAssociated = 3.14159; // item.notAssociated = 3.14159;
// } // }
// if (item.linked == 0) { // if (item.linked == 0) {
// item.linked = 1.1 // item.linked = 1.1
// } else if (item.linked == 1) { // } else if (item.linked == 1) {
// item.linked = 1.3 // item.linked = 1.3
// } // }
echartsArr.push(item.linked) echartsArr.push(item.linked)
// if (item.notAssociated == 0) { // if (item.notAssociated == 0) {
// item.notAssociated = 1.1 // item.notAssociated = 1.1
// } else if (item.notAssociated == 1) { // } else if (item.notAssociated == 1) {
// item.notAssociated = 1.3 // item.notAssociated = 1.3
// } // }
echartswArr.push(item.notAssociated) echartswArr.push(item.notAssociated)
}) })
monthlyStatistics.value = { monthlyStatistics.value = {
title: { title: {
text: '时间' text: '时间'
}, },
tooltip: { tooltip: {
formatter: function (params: any) { formatter: function (params: any) {
let html = '时间:' + params[0].name let html = '时间:' + params[0].name
params.forEach((item: any) => { params.forEach((item: any) => {
if (item.value == 1.1) { if (item.value == 1.1) {
html += `<br/>${item.seriesName}: ${0}` html += `<br/>${item.seriesName}: ${0}`
} else if (item.value == 1.3) { } else if (item.value == 1.3) {
html += `<br/>${item.seriesName}: ${1}` html += `<br/>${item.seriesName}: ${1}`
} else { } else {
html += `<br/>${item.seriesName}: ${item.value}` html += `<br/>${item.seriesName}: ${item.value}`
} }
}) })
return html return html
} }
}, },
legend: { legend: {
data: ['未关联暂降次数', '已关联处理事件'] data: ['未关联暂降次数', '已关联处理事件']
}, },
color: ['#07CCCA', '#Ff6600'], color: ['#07CCCA', '#Ff6600'],
xAxis: { xAxis: {
name: '月份', // 给X轴加单位 name: '月份', // 给X轴加单位
data: echartsndArr data: echartsndArr
}, },
yAxis: { yAxis: {
name: '次数' // 给X轴加单位 name: '次数' // 给X轴加单位
}, },
options: { options: {
series: [ series: [
{ {
name: '未关联暂降次数', name: '未关联暂降次数',
type: 'bar', type: 'bar',
barMaxWidth: 30, barMaxWidth: 30,
barMinHeight: 5, barMinHeight: 5,
data: echartswArr, data: echartswArr,
itemStyle: { itemStyle: {
normal: { normal: {
label: { label: {
// show: true, //数字开启显示 // show: true, //数字开启显示
textStyle: { textStyle: {
//数值样式 //数值样式
color: '#fff', color: '#fff',
fontSize: 14, fontSize: 14,
fontWeight: 600 fontWeight: 600
} }
}, },
color: function (params: any) { color: function (params: any) {
if (params.data == 0) { if (params.data == 0) {
return '#B3B3B3' return '#B3B3B3'
} else { } else {
return '#07CCCA ' return '#07CCCA '
} }
} }
} }
} }
}, },
{ {
name: '已关联处理事件', name: '已关联处理事件',
type: 'bar', type: 'bar',
barMaxWidth: 30, barMaxWidth: 30,
data: echartsArr, data: echartsArr,
itemStyle: { itemStyle: {
normal: { normal: {
label: { label: {
// show: true, //数字开启显示 // show: true, //数字开启显示
textStyle: { textStyle: {
//数值样式 //数值样式
color: '#fff', color: '#fff',
fontSize: 14, fontSize: 14,
fontWeight: 600 fontWeight: 600
} }
}, },
color: function (params: any) { color: function (params: any) {
if (params.data == 0) { if (params.data == 0) {
return '#B3B3B3' return '#B3B3B3'
} else { } else {
return '#Ff6600' return '#Ff6600'
} }
} }
} }
} }
} }
] ]
} }
} }
} }
// Processing() // Processing()
defineExpose({ Processing, Grade, Relation }) defineExpose({ Processing, Grade, Relation })
const layout = mainHeight(150) as any const layout = mainHeight(150) as any
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.bars_w { .bars_w {
width: 100%; width: 100%;
height: calc(v-bind('layout.height') / 2); height: calc(v-bind('layout.height') / 2);
} }
.separate { .separate {
display: flex; display: flex;
} }
</style> </style>
>>>>>>> c902dabb73a92b43a23970969d750508558b5400

View File

@@ -39,6 +39,7 @@ const tableStore = new TableStore({
tableStore.table.params.searchEndTime, tableStore.table.params.searchEndTime,
currentAreaName.value // 传递当前区域名称 currentAreaName.value // 传递当前区域名称
) )
console.log('11111',tableStore.table.data)
echarts.value.Processing(tableStore.table.data.areaStatistics) echarts.value.Processing(tableStore.table.data.areaStatistics)
echarts.value.Grade(tableStore.table.data.voltageStatistics) echarts.value.Grade(tableStore.table.data.voltageStatistics)
echarts.value.Relation(JSON.parse(JSON.stringify(tableStore.table.data.monthlyStatistics))) echarts.value.Relation(JSON.parse(JSON.stringify(tableStore.table.data.monthlyStatistics)))