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.Relation(tableStore.table.data.monthlyStatistics)
table.value.info(tableStore.table.data)
console.log(tableStore.table.data)
}
})
provide('tableStore', tableStore)

View File

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

View File

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

View File

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

View File

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

View File

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