2 Commits

Author SHA1 Message Date
guanj
21756e05d4 修改地图 2026-05-27 10:47:31 +08:00
guanj
abfdf29a38 修改页面样式 调整查询条件 2026-05-22 09:58:07 +08:00
43 changed files with 624 additions and 689 deletions

BIN
src/assets/imgs/m0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
src/assets/imgs/m1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
src/assets/imgs/m2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
src/assets/imgs/m3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
src/assets/imgs/m4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -1,29 +1,20 @@
<template>
<div ref="tableHeader" class="cn-table-header">
<div class="table-header ba-scroll-style">
<el-form
style="flex: 1; height: 32px; display: flex; flex-wrap: wrap"
ref="headerForm"
@submit.prevent=""
@keyup.enter="onComSearch"
label-position="left"
:inline="true"
>
<el-form style="flex: 1; height: 32px; display: flex; flex-wrap: wrap" ref="headerForm" @submit.prevent=""
@keyup.enter="onComSearch" label-position="left" :inline="true">
<el-form-item v-if="datePicker" style="grid-column: span 2; max-width: 630px">
<template #label>
<el-checkbox v-if="showTimeAll" v-model="timeAll" label="统计时间" />
<span v-else>{{ dateLabel }}</span>
</template>
<DatePicker
ref="datePickerRef"
v-if="timeAll"
:nextFlag="nextFlag"
:theCurrentTime="theCurrentTime"
></DatePicker>
<DatePicker ref="datePickerRef" v-if="timeAll" :nextFlag="nextFlag"
:theCurrentTime="theCurrentTime"></DatePicker>
</el-form-item>
<el-form-item label="区域" v-if="area">
<Area ref="areaRef" v-model="tableStore.table.params.deptIndex" @change-value="onAreaChange" />
<Area ref="areaRef" v-model="tableStore.table.params.deptIndex" @change-value="onAreaChange"
style="width: 200px;" />
</el-form-item>
<slot name="select"></slot>
</el-form>
@@ -32,43 +23,24 @@
<Icon size="14" name="el-icon-ArrowUp" style="color: #fff" v-if="showSelect" />
<Icon size="14" name="el-icon-ArrowDown" style="color: #fff" v-else />
</el-button>
<el-button
@click="onComSearch"
v-if="showSearch"
:loading="tableStore.table.loading"
type="primary"
:icon="Search"
>
<el-button @click="onComSearch" v-if="showSearch" :loading="tableStore.table.loading" type="primary"
:icon="Search">
查询
</el-button>
<el-button
@click="onResetForm"
v-if="showSearch && showReset"
:loading="tableStore.table.loading"
:icon="RefreshLeft"
>
<el-button @click="onResetForm" v-if="showSearch && showReset" :loading="tableStore.table.loading"
:icon="RefreshLeft">
重置
</el-button>
<el-button
@click="onExport"
v-if="showExport"
:loading="tableStore.table.exportLoading"
type="primary"
icon="el-icon-Download"
>
<el-button @click="onExport" v-if="showExport" :loading="tableStore.table.exportLoading" type="primary"
icon="el-icon-Download">
导出
</el-button>
</template>
<slot name="operation"></slot>
</div>
<el-form
:style="showSelect && showUnfoldButton ? headerFormSecondStyleOpen : headerFormSecondStyleClose"
ref="headerFormSecond"
@submit.prevent=""
@keyup.enter="onComSearch"
label-position="left"
:inline="true"
></el-form>
<el-form :style="showSelect && showUnfoldButton ? headerFormSecondStyleOpen : headerFormSecondStyleClose"
ref="headerFormSecond" @submit.prevent="" @keyup.enter="onComSearch" label-position="left"
:inline="true"></el-form>
</div>
</template>
@@ -297,6 +269,7 @@ defineExpose({
padding: 13px 15px;
font-size: 14px;
overflow: hidden;
.table-header-operate-text {
margin-left: 6px;
}
@@ -324,7 +297,7 @@ defineExpose({
margin-left: 12px;
}
.mlr-12 + .el-button {
.mlr-12+.el-button {
margin-left: 12px;
}
@@ -359,7 +332,7 @@ defineExpose({
border-radius: 0;
}
.el-button + .el-button {
.el-button+.el-button {
margin: 0;
}
@@ -370,6 +343,7 @@ defineExpose({
html.dark {
.table-search-button-group {
button:focus,
button:active {
background-color: var(--el-color-info-dark-2);

View File

@@ -28,66 +28,66 @@ const info = (id: any) => {
expanded.value = [id]
getTerminalTree().then(res => {
// let arr: any[] = []
if (VITE_FLAG) {
res.data.forEach((item: any) => {
item.icon = 'el-icon-Menu'
item.plevel = item.level
item.level = 0
item.children.forEach((item2: any) => {
item2.icon = 'el-icon-HomeFilled'
// if (VITE_FLAG) {
// res.data.forEach((item: any) => {
// item.icon = 'el-icon-Menu'
// item.plevel = item.level
// item.level = 0
// item.children.forEach((item2: any) => {
// item2.icon = 'el-icon-HomeFilled'
item2.plevel = item2.level
item2.level = 100
expanded.value.push(item2.id)
item2.children.forEach((item3: any) => {
item3.icon = 'el-icon-CollectionTag'
item3.plevel = item3.level
item3.level = 200
item3.children.forEach((item4: any) => {
item4.icon = 'el-icon-Flag'
item4.plevel = item4.level
item4.level = 300
// arr.push(item4)
item4.children.forEach((item5: any) => {
item5.icon = 'el-icon-OfficeBuilding'
item5.plevel = item5.level
item5.level = 300
// item5.id = item4.id
item5.children.forEach((item6: any) => {
item6.icon = 'el-icon-HelpFilled'
item6.plevel = 4
if (item6.name == '电网侧' && item6.children.length == 0) {
item6.level = 400
} else {
item6.level = 400
}
item6.children.forEach((item7: any) => {
item7.icon = 'el-icon-Film'
item7.plevel = item7.level
item7.level = 400
item7.children.forEach((item8: any) => {
item8.icon = 'el-icon-Collection'
item8.plevel = item8.level
item8.level = 500
item8.children.forEach((item9: any) => {
item9.icon = 'el-icon-Share'
item9.plevel = item9.level
item9.level = 600
item9.children.forEach((item10: any) => {
item10.icon = 'el-icon-Location'
item10.plevel = item10.level
item10.level = 700
})
})
})
})
})
})
})
})
})
})
} else {
// item2.plevel = item2.level
// item2.level = 100
// expanded.value.push(item2.id)
// item2.children.forEach((item3: any) => {
// item3.icon = 'el-icon-CollectionTag'
// item3.plevel = item3.level
// item3.level = 200
// item3.children.forEach((item4: any) => {
// item4.icon = 'el-icon-Flag'
// item4.plevel = item4.level
// item4.level = 300
// // arr.push(item4)
// item4.children.forEach((item5: any) => {
// item5.icon = 'el-icon-OfficeBuilding'
// item5.plevel = item5.level
// item5.level = 300
// // item5.id = item4.id
// item5.children.forEach((item6: any) => {
// item6.icon = 'el-icon-HelpFilled'
// item6.plevel = 4
// if (item6.name == '电网侧' && item6.children.length == 0) {
// item6.level = 400
// } else {
// item6.level = 400
// }
// item6.children.forEach((item7: any) => {
// item7.icon = 'el-icon-Film'
// item7.plevel = item7.level
// item7.level = 400
// item7.children.forEach((item8: any) => {
// item8.icon = 'el-icon-Collection'
// item8.plevel = item8.level
// item8.level = 500
// item8.children.forEach((item9: any) => {
// item9.icon = 'el-icon-Share'
// item9.plevel = item9.level
// item9.level = 600
// item9.children.forEach((item10: any) => {
// item10.icon = 'el-icon-Location'
// item10.plevel = item10.level
// item10.level = 700
// })
// })
// })
// })
// })
// })
// })
// })
// })
// })
// } else {
res.data.forEach((item: any) => {
item.icon = 'el-icon-Menu'
item.plevel = item.level
@@ -129,7 +129,7 @@ const info = (id: any) => {
})
})
})
}
// }
tree.value = res.data

View File

@@ -404,6 +404,11 @@ body,
.el-select__wrapper {
height: 32px !important;
}
.BMap_center,
.BMap_top,
.BMap_bottom {
background-color: #fff;
}
@font-face {
font-family: 'AlimamaFangYuanTiVF';
src: url('../assets/font/ali/AlimamaFangYuanTiVF-Thin.woff') format('woff'),

View File

@@ -27,8 +27,8 @@ class MQTT {
clean: true,
connectTimeout: 30 * 1000,
clientId: `mqttjs_${Math.random().toString(16).substr(2, 8)}`,
username: 't_user',
password: 'njcnpqs',
username: '',
password: '',
reconnectPeriod: 1000, // 默认1秒重试一次
maxReconnectTimes: 3 // 默认最大重连5次
}

View File

@@ -1,4 +1,3 @@
import { Flag } from '@element-plus/icons-vue/dist/types'
import { ElMessage, EVENT_CODE } from 'element-plus'
// 定义消息类型,用于类型检查
@@ -44,7 +43,9 @@ export default class SocketService {
console.log('您的浏览器不支持WebSocket')
return
}
if (url == 'null' || url == null) return
console.log("🚀 ~ SocketService ~ connect ~ url:", url)
if (url === null || (typeof url === 'string' && url.includes('null'))) return;
setTimeout(() => {
this.ws = new WebSocket(url)
@@ -55,7 +56,6 @@ export default class SocketService {
this.ws.onmessage = event => this.handleMessage(event)
}, 0)
}
// 处理连接成功事件
private handleOpen(): void {
ElMessage.success('webSocket连接服务端成功了')

View File

@@ -90,7 +90,6 @@ const loading = ref(false)
const statistics = ref()
const flg = ref(true)
const showMqtt = ref(false)
const zoom = ref('') //图表焦点校验
const resultList = ref([

View File

@@ -2,7 +2,7 @@
<div class="default-main">
<TableHeader :showReset="false" showExport>
<template #select>
<el-form-item label="关键字筛选">
<el-form-item label="筛选数据">
<el-input
maxlength="32"
show-word-limit

View File

@@ -3,7 +3,7 @@
<!-- 案例库 -->
<TableHeader ref="TableHeaderRef">
<template #select>
<el-form-item label="名称">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入搜索名称" maxlength="32" show-word-limit/>
</el-form-item>

View File

@@ -3,7 +3,7 @@
<!-- 模版 -->
<TableHeader ref="TableHeaderRef" >
<template #select>
<el-form-item label="名称">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable
placeholder="请输入搜索名称" maxlength="32" show-word-limit/>
</el-form-item>

View File

@@ -3,7 +3,7 @@
<div class="online_header">
<TableHeader date-picker area ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
@@ -19,7 +19,7 @@
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="tableStore.table.params.scale"
multiple
@@ -52,7 +52,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
multiple
@@ -88,7 +88,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="关键字筛选">
<el-form-item label="筛选数据">
<el-input
v-model.trim="tableStore.table.params.searchValue"
clearable

View File

@@ -6,7 +6,7 @@
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" placeholder="输入关键字筛选" clearable maxlength="32" show-word-limit/>
</el-form-item>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
value-key="id"
@@ -21,7 +21,7 @@
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="tableStore.table.params.scale"
multiple
@@ -38,7 +38,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
multiple
@@ -55,7 +55,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="tableStore.table.params.loadType"
multiple

View File

@@ -3,14 +3,14 @@
<div class="online_header">
<TableHeader date-picker ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select v-model="formData.statisticalType" placeholder="请选择统计类型" value-key="id"
style="width: 100%">
<el-option v-for="item in classificationData" :key="item.id" :label="item.name"
:value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="区域选择:">
<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 }} -->
@@ -33,28 +33,28 @@
<!-- </el-option>
</el-select> -->
</el-form-item>
<el-form-item label="电压等级:">
<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-form-item label="终端厂家">
<el-select v-model="formData.manufacturer" multiple collapse-tags clearable
placeholder="请选择终端厂家" style="width: 100%" value-key="id">
<el-option v-for="(item, index) in terminaloption" :key="index" :label="item.name"
:value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<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>
<el-form-item label="关键字筛选:">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字"></el-input>
</el-form-item>
</template>

View File

@@ -3,7 +3,7 @@
<div class="online_header">
<TableHeader date-picker area ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
@@ -19,7 +19,7 @@
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="tableStore.table.params.scale"
multiple
@@ -37,7 +37,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
multiple
@@ -55,7 +55,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="tableStore.table.params.loadType"
multiple
@@ -83,7 +83,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="关键字筛选">
<el-form-item label="筛选数据">
<el-input
v-model.trim="tableStore.table.params.searchValue"
clearable

View File

@@ -2,7 +2,7 @@
<div class="default-main">
<TableHeader date-picker area showExport>
<template #select>
<el-form-item label="统计类型:" v-if="false">
<el-form-item label="统计类型" v-if="false">
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
@@ -18,7 +18,7 @@
</el-select>
</el-form-item>
<el-form-item label="电压等级:" v-if="false">
<el-form-item label="电压等级" v-if="false">
<el-select
v-model="tableStore.table.params.scale"
multiple
@@ -36,7 +36,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:" v-if="false">
<el-form-item label="终端厂家" v-if="false">
<el-select
v-model="tableStore.table.params.manufacturer"
multiple
@@ -55,7 +55,7 @@
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="tableStore.table.params.loadType"
multiple

View File

@@ -3,7 +3,7 @@
<div class="online_header">
<TableHeader date-picker ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="formData.statisticalType"
placeholder="请选择统计类型"
@@ -18,7 +18,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="区域选择:">
<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 }} -->
@@ -48,7 +48,7 @@
<!-- </el-option>
</el-select> -->
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="formData.scale"
multiple
@@ -66,7 +66,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="formData.manufacturer"
multiple
@@ -84,7 +84,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="formData.loadType"
multiple
@@ -102,7 +102,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="关键字筛选:">
<el-form-item label="筛选数据">
<el-input
v-model="tableStore.table.params.searchValue"
clearable

View File

@@ -1,305 +1,305 @@
<template>
<div class="charts" style="position: relative; width: 100%">
<div style="position: absolute; right: 60px; top: 5px; font-weight: bold">
<el-tag
style="
background: #A52a2a;
width: 30px;
height: 15px;
border: 1px solid #A52a2a;
float: left;
margin-top: 2px;
"
></el-tag>
<span style="color: #A52a2a; font-weight: 400; float: left">&nbsp&nbsp在线<60% &nbsp&nbsp</span>
<el-tag
size="small"
style="
background: #ffcc33;
width: 30px;
height: 15px;
border: 1px solid #ffcc33;
float: left;
margin-top: 2px;
"
></el-tag>
<span style="color: #ffcc33; font-weight: 400; float: left">&nbsp&nbsp60%在线<90% &nbsp&nbsp</span>
<el-tag
style="
background: #339966;
width: 30px;
height: 15px;
border: 1px solid #339966;
float: left;
margin-top: 2px;
"
></el-tag>
<span style="color: #339966; font-weight: 400; float: left">&nbsp&nbsp在线90%</span>
</div>
<my-echart
v-loading="loading"
class="mt10"
:style="`height: calc(${tableStore.table.height} - 135px)`"
:options="options"
/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
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'
const dictData = useDictData()
const options = ref({})
const TableHeaderRef = ref()
const tableStoreParams: any = ref({})
const loading = ref(false)
const getTableStoreParams = async (val: any) => {
tableStoreParams.value = val
loading.value = true
setTimeout(() => {
tableStore.index()
}, 1500)
}
const itemStyle = {
normal: {
// 随机显示
//color:function(d){return "#"+Math.floor(Math.random()*(256*256*256-1)).toString(16);}
// 定制显示(按顺序)
color: function (params) {
if (params.value >= 90) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#339966'
}
],
false
)
} else if (params.value >= 60 && params.value <= 90) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#FFCC33'
}
],
false
)
} else if (params.value <= 60 && params.value !== 3.14159) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#A52a2a'
}
],
false
)
} else if (params.value == 3.14159) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#cccccc'
}
],
false
)
}
}
}
}
const tableStore = new TableStore({
url: '/harmonic-boot/steadyQualify/getSteadyQualifyCensus',
showPage: false,
method: 'POST',
// publicHeight: 10,
column: [],
beforeSearchFun: () => {
tableStore.table.params = tableStoreParams.value
},
loadCallback: () => {
let code = tableStore.table.params.statisticalType.code
let title = '',
titleX = ''
if (code == 'Power_Network') {
title = '区域'
titleX = '区域'
} else if (code == 'Manufacturer') {
title = '终端厂家'
titleX = '终端\n厂家'
} else if (code == 'Voltage_Level') {
title = '电压等级'
titleX = '电压\n等级'
} else if (code == 'Load_Type') {
title = '干扰源类型'
titleX = '干扰\n源类型'
} else if (code == 'Report_Type') {
title = '上报类型'
titleX = '上报\n类型'
}
options.value = {
title: {
text: title
},
legend: {
show: false
},
tooltip: {
formatter: function (params: any) {
let tips = `<strong>${params[0]?.name}</strong></br>` // 标题加粗
params.forEach((item: any) => {
const value = item.value === 3.14159 ? '暂无数据' : item.value // 处理特殊值
tips += `<div style=" display: flex;justify-content: space-between;">
<span>${item.marker}
${item.seriesName}:
</span> ${value}
</div>` // 统一格式
})
return tips
}
},
xAxis: {
name: titleX,
data: tableStore.table.data.type
},
yAxis: {
name: '%',
max: 100
},
series: [
{
name: '频率偏差',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.freqOffset,
markLine: {
silent: false,
symbol: 'circle',
data: [
{
name: '',
yAxis: 100,
lineStyle: {
color: '#339966'
},
label: {
// position: "middle",
formatter: '{b}',
textStyle: {
color: '#339966'
}
}
},
{
name: '',
yAxis: 90,
lineStyle: {
color: '#FFCC33'
},
label: {
// position: "middle",
formatter: '{b}',
textStyle: {
color: '#FFCC33'
}
}
},
{
name: '',
yAxis: 60,
lineStyle: {
color: '#A52a2a'
},
label: {
// position: "middle",
formatter: '{b}',
textStyle: {
color: '#A52a2a'
}
}
}
]
}
},
{
name: '闪变',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.flicker
},
{
name: '三相电压不平衡',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.voltageUnbalance
},
{
name: '谐波电压',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.harmonicVoltage
},
{
name: '电压偏差',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.voltageOffset
},
{
name: '谐波电流',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.harmonicCurrent
},
{
name: '负序电流',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.negativeCurrent
},
{
name: '间谐波电压含有率',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.interHarmonic
}
]
}
loading.value = false
}
})
provide('tableStore', tableStore)
onMounted(() => {})
defineExpose({ getTableStoreParams })
</script>
<style scoped lang="scss"></style>
<template>
<div class="charts" style="position: relative; width: 100%">
<div style="position: absolute; right: 60px; top: 5px; font-weight: bold">
<el-tag
style="
background: #A52a2a;
width: 30px;
height: 15px;
border: 1px solid #A52a2a;
float: left;
margin-top: 2px;
"
></el-tag>
<span style="color: #A52a2a; font-weight: 400; float: left">&nbsp&nbsp合格<60% &nbsp&nbsp</span>
<el-tag
size="small"
style="
background: #ffcc33;
width: 30px;
height: 15px;
border: 1px solid #ffcc33;
float: left;
margin-top: 2px;
"
></el-tag>
<span style="color: #ffcc33; font-weight: 400; float: left">&nbsp&nbsp60%合格<90% &nbsp&nbsp</span>
<el-tag
style="
background: #339966;
width: 30px;
height: 15px;
border: 1px solid #339966;
float: left;
margin-top: 2px;
"
></el-tag>
<span style="color: #339966; font-weight: 400; float: left">&nbsp&nbsp合格90%</span>
</div>
<my-echart
v-loading="loading"
class="mt10"
:style="`height: calc(${tableStore.table.height} - 135px)`"
:options="options"
/>
</div>
</template>
<script setup lang="ts">
import { ref, onMounted, provide, nextTick } from 'vue'
import TableStore from '@/utils/tableStore'
import Table from '@/components/table/index.vue'
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'
const dictData = useDictData()
const options = ref({})
const TableHeaderRef = ref()
const tableStoreParams: any = ref({})
const loading = ref(false)
const getTableStoreParams = async (val: any) => {
tableStoreParams.value = val
loading.value = true
setTimeout(() => {
tableStore.index()
}, 1500)
}
const itemStyle = {
normal: {
// 随机显示
//color:function(d){return "#"+Math.floor(Math.random()*(256*256*256-1)).toString(16);}
// 定制显示(按顺序)
color: function (params) {
if (params.value >= 90) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#339966'
}
],
false
)
} else if (params.value >= 60 && params.value <= 90) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#FFCC33'
}
],
false
)
} else if (params.value <= 60 && params.value !== 3.14159) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#A52a2a'
}
],
false
)
} else if (params.value == 3.14159) {
return new echarts.graphic.LinearGradient(
0,
1,
0,
0,
[
{
offset: 1,
color: '#cccccc'
}
],
false
)
}
}
}
}
const tableStore = new TableStore({
url: '/harmonic-boot/steadyQualify/getSteadyQualifyCensus',
showPage: false,
method: 'POST',
// publicHeight: 10,
column: [],
beforeSearchFun: () => {
tableStore.table.params = tableStoreParams.value
},
loadCallback: () => {
let code = tableStore.table.params.statisticalType.code
let title = '',
titleX = ''
if (code == 'Power_Network') {
title = '区域'
titleX = '区域'
} else if (code == 'Manufacturer') {
title = '终端厂家'
titleX = '终端\n厂家'
} else if (code == 'Voltage_Level') {
title = '电压等级'
titleX = '电压\n等级'
} else if (code == 'Load_Type') {
title = '干扰源类型'
titleX = '干扰\n源类型'
} else if (code == 'Report_Type') {
title = '上报类型'
titleX = '上报\n类型'
}
options.value = {
title: {
text: title
},
legend: {
show: false
},
tooltip: {
formatter: function (params: any) {
let tips = `<strong>${params[0]?.name}</strong></br>` // 标题加粗
params.forEach((item: any) => {
const value = item.value === 3.14159 ? '暂无数据' : item.value // 处理特殊值
tips += `<div style=" display: flex;justify-content: space-between;">
<span>${item.marker}
${item.seriesName}:
</span> ${value}
</div>` // 统一格式
})
return tips
}
},
xAxis: {
name: titleX,
data: tableStore.table.data.type
},
yAxis: {
name: '%',
max: 100
},
series: [
{
name: '频率偏差',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.freqOffset,
markLine: {
silent: false,
symbol: 'circle',
data: [
{
name: '',
yAxis: 100,
lineStyle: {
color: '#339966'
},
label: {
// position: "middle",
formatter: '{b}',
textStyle: {
color: '#339966'
}
}
},
{
name: '',
yAxis: 90,
lineStyle: {
color: '#FFCC33'
},
label: {
// position: "middle",
formatter: '{b}',
textStyle: {
color: '#FFCC33'
}
}
},
{
name: '',
yAxis: 60,
lineStyle: {
color: '#A52a2a'
},
label: {
// position: "middle",
formatter: '{b}',
textStyle: {
color: '#A52a2a'
}
}
}
]
}
},
{
name: '闪变',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.flicker
},
{
name: '三相电压不平衡',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.voltageUnbalance
},
{
name: '谐波电压',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.harmonicVoltage
},
{
name: '电压偏差',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.voltageOffset
},
{
name: '谐波电流',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.harmonicCurrent
},
{
name: '负序电流',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.negativeCurrent
},
{
name: '间谐波电压含有率',
type: 'bar',
itemStyle: itemStyle,
data: tableStore.table.data.interHarmonic
}
]
}
loading.value = false
}
})
provide('tableStore', tableStore)
onMounted(() => {})
defineExpose({ getTableStoreParams })
</script>
<style scoped lang="scss"></style>

View File

@@ -3,7 +3,7 @@
<div class="online_header">
<TableHeader date-picker area ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
@@ -19,7 +19,7 @@
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="tableStore.table.params.scale"
multiple
@@ -37,7 +37,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
multiple
@@ -55,7 +55,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="tableStore.table.params.loadType"
multiple
@@ -83,7 +83,7 @@
/>
</el-select>
</el-form-item>
<el-form-item label="关键字筛选">
<el-form-item label="筛选数据">
<el-input
v-model.trim="tableStore.table.params.searchValue"
clearable

View File

@@ -3,7 +3,7 @@
<div class="online_header">
<TableHeader date-picker area ref="tableHeaderRef">
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
@@ -19,7 +19,7 @@
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
multiple
@@ -37,7 +37,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="关键字筛选">
<el-form-item label="筛选数据">
<el-input
v-model.trim="tableStore.table.params.searchValue"
clearable

View File

@@ -9,21 +9,21 @@
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select v-model="tableStore.table.params.scale" filterable multiple collapse-tags clearable
placeholder="请选择电压等级" 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-form-item label="终端厂家">
<el-select v-model="tableStore.table.params.manufacturer" filterable multiple collapse-tags
clearable placeholder="请选择终端厂家" value-key="id">
<el-option v-for="item in terminaloption" :key="item.id" :label="item.name" :value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select v-model="tableStore.table.params.loadType" filterable multiple collapse-tags clearable
placeholder="请选择干扰源类型" value-key="id">
<el-option v-for="item in interfereoption" :key="item.id" :label="item.name" :value="item">

View File

@@ -7,7 +7,7 @@
</div>
<TableHeader :showReset="false" ref="TableHeaderRef">
<template #select>
<el-form-item label="关键字">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" maxlength="32" show-word-limit/>
</el-form-item>
</template>

View File

@@ -2,7 +2,7 @@
<el-dialog v-model="dialogVisible" draggable title="完整性不足详情" width="1000">
<TableHeader :showReset="false" ref="TableHeaderRef">
<template #select>
<el-form-item label="关键字">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" />
</el-form-item>
</template>

View File

@@ -3,7 +3,7 @@
<!-- 模版 -->
<TableHeader datePicker showExport :showReset="false" ref="TableHeaderRef">
<template #select>
<!-- <el-form-item label="关键字">
<!-- <el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入关键字" />
</el-form-item> -->
</template>

View File

@@ -9,26 +9,31 @@
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select v-model="tableStore.table.params.scale" filterable multiple collapse-tags clearable
placeholder="请选择电压等级" 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-form-item label="终端厂家">
<el-select v-model="tableStore.table.params.manufacturer" filterable multiple collapse-tags
clearable placeholder="请选择终端厂家" value-key="id">
<el-option v-for="item in terminaloption" :key="item.id" :label="item.name" :value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select v-model="tableStore.table.params.loadType" filterable multiple collapse-tags clearable
placeholder="请选择干扰源类型" value-key="id">
<el-option v-for="item in interfereoption" :key="item.id" :label="item.name" :value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable style="width: 240px;"
placeholder="请输入变电站、监测点、监测对象" />
</el-form-item>
</template>
@@ -108,7 +113,7 @@ const tableStore = new TableStore({
{ field: 'threeUnbalance', title: '三相电压不平衡度', minWidth: "100px", },
{ field: 'negativeOverDay', title: '负序电流', minWidth: "100px", },
{ field: 'flickerOverDay', title: '闪变', minWidth: "100px", },
{ field: 'monitorNumber', title: '监测点编号', minWidth: "100px", formatter: (row: any) => { return row.cellValue == null ? '/' : row.cellValue } },
{ field: 'monitorNumber', title: '监测点编号', minWidth: "100px", formatter: (row: any) => { return row.cellValue == null ? '/' : row.cellValue } },
@@ -126,6 +131,7 @@ tableStore.table.params.monitorFlag = 2
tableStore.table.params.scale = []
tableStore.table.params.manufacturer = []
tableStore.table.params.loadType = []
tableStore.table.params.searchValue = ''
const wp = ref({})
provide('tableStore', tableStore)

View File

@@ -2,7 +2,7 @@
<div class="default-main">
<TableHeader datePicker area showExport>
<template #select>
<el-form-item label="统计类型:">
<el-form-item label="统计类型">
<el-select
v-model="tableStore.table.params.statisticalType"
placeholder="请选择统计类型"
@@ -16,7 +16,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="tableStore.table.params.scale"
filterable
@@ -34,7 +34,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
filterable
@@ -52,7 +52,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="tableStore.table.params.loadType"
filterable

View File

@@ -13,7 +13,7 @@
</el-select>
</el-form-item>
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="请输入监测点名称" />
<el-input v-model="tableStore.table.params.searchValue" clearable style="width: 240px;" placeholder="请输入变电站、监测点、监测对象" />
</el-form-item>
</template>

View File

@@ -9,7 +9,7 @@
clearable
maxlength="32"
show-word-limit
placeholder="筛选数据"
placeholder="请输入关键字"
/>
</el-form-item>
</template>

View File

@@ -3,101 +3,47 @@
<TableHeader area ref="TableHeaderRef" showExport>
<template #select>
<el-form-item label="运行状态">
<el-select
filterable
multiple
collapse-tags
v-model="tableStore.table.params.runFlag" clearable placeholder="请选择运行状态">
<el-option
v-for="item in runFlagList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据筛选">
<el-input
style="width: 240px"
placeholder="电站名称,终端编号,监测点名称、电压等级、终端厂家、干扰源类型"
v-model="tableStore.table.params.searchValue"
clearable
maxlength="32"
show-word-limit
></el-input>
</el-form-item>
<el-form-item label="通讯状态:">
<el-select
v-model="tableStore.table.params.comFlag"
filterable
multiple
collapse-tags
clearable
placeholder="请选择通讯状态"
>
<el-option
v-for="item in communicationstatus"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<el-select filterable multiple collapse-tags v-model="tableStore.table.params.runFlag" clearable
placeholder="请选择运行状态">
<el-option v-for="item in runFlagList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-select
v-model="tableStore.table.params.scale"
filterable
multiple
collapse-tags
clearable
placeholder="请选择电压等级"
value-key="id"
>
<el-option
v-for="item in voltageleveloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
<el-form-item label="通讯状态">
<el-select v-model="tableStore.table.params.comFlag" filterable multiple collapse-tags clearable
placeholder="请选择通讯状态">
<el-option v-for="item in communicationstatus" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-select
v-model="tableStore.table.params.manufacturer"
filterable
multiple
collapse-tags
clearable
placeholder="请选择终端厂家"
value-key="id"
>
<el-option
v-for="item in terminaloption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
<el-form-item label="电压等级">
<el-select v-model="tableStore.table.params.scale" filterable multiple collapse-tags clearable
placeholder="请选择电压等级" 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="tableStore.table.params.loadType"
filterable
multiple
collapse-tags
clearable
placeholder="请选择干扰源类型"
value-key="id"
>
<el-option
v-for="item in interfereoption"
:key="item.id"
:label="item.name"
:value="item"
></el-option>
<el-form-item label="终端厂家">
<el-select v-model="tableStore.table.params.manufacturer" filterable multiple collapse-tags
clearable placeholder="请选择终端厂家" value-key="id">
<el-option v-for="item in terminaloption" :key="item.id" :label="item.name"
:value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型">
<el-select v-model="tableStore.table.params.loadType" filterable multiple collapse-tags clearable
placeholder="请选择干扰源类型" value-key="id">
<el-option v-for="item in interfereoption" :key="item.id" :label="item.name"
:value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据筛选">
<el-input style="width: 240px" placeholder="电站名称,终端编号,监测点名称、电压等级、终端厂家、干扰源类型"
v-model="tableStore.table.params.searchValue" clearable maxlength="32"
show-word-limit></el-input>
</el-form-item>
</template>
<template #operation>

View File

@@ -3,7 +3,7 @@
<TableHeader area>
<template #select>
<el-form-item label="监测点性质:">
<el-form-item label="监测点性质">
<el-select v-model="tableStore.table.params.powerFlag" filterable collapse-tags
placeholder="请选择监测点性质">
<el-option v-for="item in terminalstatus" :key="item.value" :label="item.label"
@@ -11,7 +11,7 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select v-model="tableStore.table.params.scale" filterable multiple collapse-tags clearable
placeholder="请选择电压等级" value-key="id">
<el-option v-for="item in voltageleveloption" :key="item.id" :label="item.name" :value="item">
@@ -19,14 +19,14 @@
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select v-model="tableStore.table.params.manufacturer" filterable multiple collapse-tags
clearable placeholder="请选择终端厂家" value-key="id">
<el-option v-for="item in terminaloption" :key="item.id" :label="item.name" :value="item">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select v-model="tableStore.table.params.loadType" filterable multiple collapse-tags clearable
placeholder="请选择干扰源类型" value-key="id">
<el-option v-for="item in interfereoption" :key="item.id" :label="item.name" :value="item">
@@ -37,7 +37,7 @@
<el-form-item label="上报类型:">
<el-form-item label="上报类型">
<el-select v-model="tableStore.table.params.monitorFlag"
placeholder="请选择上报类型">
<el-option v-for="item in communicationstatus" :key="item.value" :label="item.label"

View File

@@ -10,7 +10,7 @@
</el-form-item> -->
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select
v-model="tableStore.table.params.manufacturer"
filterable
@@ -36,7 +36,7 @@
/>
</el-form-item>
<el-form-item label="通讯状态:">
<el-form-item label="通讯状态">
<el-select
v-model="tableStore.table.params.comF"
filterable
@@ -53,7 +53,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端状态:">
<el-form-item label="终端状态">
<el-select
v-model="tableStore.table.params.runF"
filterable
@@ -70,7 +70,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="干扰源类型:">
<el-form-item label="干扰源类型">
<el-select
v-model="tableStore.table.params.loadType"
filterable
@@ -88,7 +88,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="电压等级:">
<el-form-item label="电压等级">
<el-select
v-model="tableStore.table.params.scale"
filterable

View File

@@ -27,7 +27,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select v-model="tableStore.table.params.manufacturer" clearable placeholder="请选择终端厂家">
<el-option
v-for="item in terminaloption"

View File

@@ -27,7 +27,7 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="终端厂家:">
<el-form-item label="终端厂家">
<el-select v-model="tableStore.table.params.manufacturer" clearable placeholder="请选择终端厂家">
<el-option
v-for="item in terminaloption"

View File

@@ -10,81 +10,39 @@
</el-radio-group>
</el-form-item>
<el-form-item label="筛选数据">
<el-input
v-model="tableStore.table.params.searchValue"
clearable
placeholder="输入关键字筛选"
style="width: 200px"
maxlength="32"
show-word-limit
/>
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入关键字筛选"
style="width: 200px" maxlength="32" show-word-limit />
</el-form-item>
<el-form-item label="触发类型:">
<el-select
v-model="tableStore.table.params.waveType"
placeholder="请选择触发类型"
clearable
multiple
collapse-tags
style="width: 100%"
>
<el-option
v-for="item in triggeroptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-form-item label="触发类型">
<el-select v-model="tableStore.table.params.waveType" placeholder="请选择触发类型" clearable multiple
collapse-tags style="width: 100%">
<el-option v-for="item in triggeroptions" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否有波形:">
<el-select
v-model="tableStore.table.params.fileFlag"
placeholder="请选择是否存在波形"
clearable
style="width: 100%"
>
<el-option
v-for="item in wareaoptions"
:key="item.id"
:label="item.label"
:value="item.id"
></el-option>
<el-form-item label="是否有波形">
<el-select v-model="tableStore.table.params.fileFlag" placeholder="请选择是否存在波形" clearable
style="width: 100%">
<el-option v-for="item in wareaoptions" :key="item.id" :label="item.label"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="暂态持续时间(s):">
<el-input
v-model="tableStore.table.params.persistMin"
placeholder="请输入X秒"
onkeyup="value=value.replace(/[^\d.]/g,'')"
clearable
style="width: 94px"
></el-input>
<el-form-item label="暂态持续时间(s)">
<el-input v-model="tableStore.table.params.persistMin" placeholder="请输入X秒"
onkeyup="value=value.replace(/[^\d.]/g,'')" clearable style="width: 94px"></el-input>
<el-tag style="margin-left: 5px">&lt; 时间数 &lt;</el-tag>
<el-input
v-model="tableStore.table.params.persistMax"
placeholder="请输入X秒"
onkeyup="value=value.replace(/[^\d.]/g,'')"
clearable
style="margin-left: 5px; width: 94px"
></el-input>
<el-input v-model="tableStore.table.params.persistMax" placeholder="请输入X秒"
onkeyup="value=value.replace(/[^\d.]/g,'')" clearable
style="margin-left: 5px; width: 94px"></el-input>
</el-form-item>
<el-form-item label="事件严重度:">
<el-input
v-model="tableStore.table.params.severityMin"
placeholder="请输入正负数"
onkeyup="value=value.replace(/[^\d\.-]/g,'')"
clearable
style="width: 94px"
></el-input>
<el-form-item label="事件严重度">
<el-input v-model="tableStore.table.params.severityMin" placeholder="请输入正负数"
onkeyup="value=value.replace(/[^\d\.-]/g,'')" clearable style="width: 94px"></el-input>
<el-tag style="margin-left: 5px">&lt; 严重度 &lt;</el-tag>
<el-input
v-model="tableStore.table.params.severityMax"
placeholder="请输入正负数"
onkeyup="value=value.replace(/[^\d\.-]/g,'')"
clearable
style="margin-left: 5px; width: 94px"
></el-input>
<el-input v-model="tableStore.table.params.severityMax" placeholder="请输入正负数"
onkeyup="value=value.replace(/[^\d\.-]/g,'')" clearable
style="margin-left: 5px; width: 94px"></el-input>
</el-form-item>
<!-- <el-form-item label="触发类型:">
@@ -94,53 +52,24 @@
:value="item.id"></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="暂态原因:">
<el-select
v-model="tableStore.table.params.eventReason"
placeholder="请选择暂态原因"
clearable
multiple
collapse-tags
style="width: 100%"
>
<el-option
v-for="item in reasonoptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-form-item label="暂态原因">
<el-select v-model="tableStore.table.params.eventReason" placeholder="请选择暂态原因" clearable
multiple collapse-tags style="width: 100%">
<el-option v-for="item in reasonoptions" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="暂态核实原因:">
<el-select
v-model="tableStore.table.params.verifyReason"
placeholder="请选择暂态核实原因"
clearable
multiple
collapse-tags
collapse-tags-tooltip
>
<el-option
v-for="item in verifyReasonList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-form-item label="暂态核实原因">
<el-select v-model="tableStore.table.params.verifyReason" placeholder="请选择暂态核实原因" clearable
multiple collapse-tags collapse-tags-tooltip>
<el-option v-for="item in verifyReasonList" :key="item.id" :label="item.name"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="变电站(监测点):">
<el-cascader
v-model="tableStore.table.params.lineIds"
:options="options"
:props="defaultProps"
collapse-tags-tooltip
style="width: 257px"
filterable
clearable
collapse-tags
placeholder="请选择变电站(监测点)"
:show-all-levels="true"
/>
<el-form-item label="变电站(监测点)">
<el-cascader v-model="tableStore.table.params.lineIds" :options="options" :props="defaultProps"
collapse-tags-tooltip style="width: 257px" filterable clearable collapse-tags
placeholder="请选择变电站(监测点)" :show-all-levels="true" />
</el-form-item>
</template>
<template #operation>
@@ -272,10 +201,10 @@ const tableStore = new TableStore({
},
{
title: '操作',fixed: 'right',
title: '操作', fixed: 'right',
width: '150',
render: 'buttons',
buttons: [
{
name: 'edit',
@@ -330,7 +259,7 @@ const tableStore = new TableStore({
}
],
loadCallback: () => {}
loadCallback: () => { }
})
const options = ref([])
const defaultProps = {

View File

@@ -2,7 +2,7 @@
<div class="default-main">
<TableHeader datePicker ref="TableHeaderRef">
<template #select>
<el-form-item label="关键字">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入事件关联分析描述" maxlength="32" show-word-limit/>
</el-form-item>
</template>

View File

@@ -3,7 +3,7 @@
<div v-show="view">
<TableHeader datePicker ref="TableHeaderRef" >
<template #select>
<el-form-item label="关键字">
<el-form-item label="筛选数据">
<el-input v-model="tableStore.table.params.searchValue" clearable placeholder="输入事件关联分析描述"
maxlength="32" show-word-limit />
</el-form-item>

View File

@@ -68,7 +68,7 @@
></bm-marker>
</template>
<!-- -->
<BmlMarkerClusterer maxZoom="12">
<BmlMarkerClusterer maxZoom="12" :styles="styles">
<bm-marker
:position="path"
v-for="path in areaLineInfo"
@@ -163,6 +163,44 @@ const areaLineInfo = ref<any>([])
const siteList = ref<any>([])
const polyline = ref<any>([])
const lineId = ref('')
const imageUrl = new URL('@/assets/imgs/m0.png', import.meta.url).href
const imageUrl1 = new URL('@/assets/imgs/m1.png', import.meta.url).href
const imageUrl2 = new URL('@/assets/imgs/m3.png', import.meta.url).href
const imageUrl3 = new URL('@/assets/imgs/m4.png', import.meta.url).href
const styles = [
{
url: imageUrl,
size: {
width: 53,
height: 52
},
opt_textSize: 10
},
{
url: imageUrl1,
size: {
width: 56,
height: 55
},
opt_textSize: 12
},
{
url: imageUrl2,
size: {
width: 78,
height: 77
},
opt_textSize: 14
},
{
url: imageUrl3,
size: {
width: 90,
height: 89
},
opt_textSize: 14
},
]
const handler = async ({ BMap, map }: any) => {
let data = props.mapList
let r = 0.0035

View File

@@ -82,7 +82,7 @@
></bm-marker>
</template>
<!-- -->
<BmlMarkerClusterer maxZoom="12">
<BmlMarkerClusterer maxZoom="12" :styles="styles">
<bm-marker
:position="path"
v-for="path in areaLineInfo"
@@ -196,13 +196,51 @@ const areaLineInfo = ref<any>([])
const siteList = ref<any>([])
const polyline = ref<any>([])
const lineId = ref('')
const imageUrl = new URL('@/assets/imgs/m0.png', import.meta.url).href
const imageUrl1 = new URL('@/assets/imgs/m1.png', import.meta.url).href
const imageUrl2 = new URL('@/assets/imgs/m3.png', import.meta.url).href
const imageUrl3 = new URL('@/assets/imgs/m4.png', import.meta.url).href
const styles = [
{
url: imageUrl,
size: {
width: 53,
height: 52
},
opt_textSize: 10
},
{
url: imageUrl1,
size: {
width: 56,
height: 55
},
opt_textSize: 12
},
{
url: imageUrl2,
size: {
width: 78,
height: 77
},
opt_textSize: 14
},
{
url: imageUrl3,
size: {
width: 90,
height: 89
},
opt_textSize: 14
},
]
const handler = async ({ BMap, map }: any) => {
params.value.deptIndex = adminInfo.$state.deptId
params.value.searchBeginTime = datePickerRef.value.timeValue[0]
params.value.searchEndTime = datePickerRef.value.timeValue[1]
let { data } = await getAreaLineInfo(params.value)
let r = 0.0035
let list = data.filter((item: any) => item.lng != 0)
let list = data//.filter((item: any) => item.lng != 0)
list.forEach((item: any) => {
// 变电站图标
item.icon = {

View File

@@ -3,7 +3,7 @@
<div class='default-main'>
<TableHeader>
<template #select>
<el-form-item label='关键词'>
<el-form-item label='筛选数据'>
<el-input
v-model='tableStore.table.params.searchValue'
clearable

View File

@@ -12,7 +12,7 @@
</template>
</el-page-header>
</el-form-item>
<el-form-item label="关键字筛选">
<el-form-item label="筛选数据">
<el-input
style="width: 240px"
v-model="tableStore.table.params.searchValue"