修改地图

This commit is contained in:
guanj
2026-05-27 10:47:31 +08:00
parent abfdf29a38
commit 21756e05d4
11 changed files with 114 additions and 111 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

@@ -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

@@ -56,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

@@ -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-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-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-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-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="触发类型:">
@@ -95,52 +53,23 @@
</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-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-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-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

@@ -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,6 +196,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) => {
params.value.deptIndex = adminInfo.$state.deptId
params.value.searchBeginTime = datePickerRef.value.timeValue[0]