diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ + + diff --git a/src/pages/ywts/zyhj/hb/casePop.vue b/src/pages/ywts/zyhj/hb/casePop.vue new file mode 100644 index 0000000..0c07a1a --- /dev/null +++ b/src/pages/ywts/zyhj/hb/casePop.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ + + diff --git a/src/pages/ywts/zyhj/hb/casePop.vue b/src/pages/ywts/zyhj/hb/casePop.vue new file mode 100644 index 0000000..0c07a1a --- /dev/null +++ b/src/pages/ywts/zyhj/hb/casePop.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/pages/ywts/zyhj/hb/data.js b/src/pages/ywts/zyhj/hb/data.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/ywts/zyhj/hb/data.js diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ + + diff --git a/src/pages/ywts/zyhj/hb/casePop.vue b/src/pages/ywts/zyhj/hb/casePop.vue new file mode 100644 index 0000000..0c07a1a --- /dev/null +++ b/src/pages/ywts/zyhj/hb/casePop.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/pages/ywts/zyhj/hb/data.js b/src/pages/ywts/zyhj/hb/data.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/ywts/zyhj/hb/data.js diff --git a/src/pages/ywts/zyhj/hb/index.vue b/src/pages/ywts/zyhj/hb/index.vue index 84ae2d5..2425eb3 100644 --- a/src/pages/ywts/zyhj/hb/index.vue +++ b/src/pages/ywts/zyhj/hb/index.vue @@ -3,16 +3,20 @@
- - - - + + + +
+ + + + @@ -24,13 +28,19 @@ import { clearUpMap, clearResetMap, AddLabelPoint } from '@/utils/freedo' import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import { getOverviewStatistics, getPointList } from '@/api/ywts/zyhj/hb' - +import { getOverviewStatistics, getPointList, getAlarmList, getCaseList } from '@/api/ywts/zyhj/hb' +import pointPop from './ponitPop.vue' +import alarmPop from './alarmPop.vue' +import casePop from './casePop.vue' +import { eventBus } from "../../../../main"; export default { name: 'Hb', - components: { TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, pointPop, alarmPop, casePop }, data() { return { + showPop: false, + showAlarm: false, + showCase: false, isListPage: false, ktSelect: '', isShow: false, @@ -46,7 +56,6 @@ pageSize: 5 }, caseTotal: 0, - showPop: false, caseIcon: { 1: require('@/assets/images/icon/事件/已撤案.png'), 2: require('@/assets/images/icon/事件/指派中.png'), @@ -76,6 +85,7 @@ ylHover: require('@/assets/images/function/园林/园林选中.png'), caseBg: require('@/assets/images/function/物联网/物联事件未选中.png'), caseHover: require('@/assets/images/function/物联网/物联事件选中.png'), + alarmIcon: require('@/assets/images/icon/视频云/坐标.png'), menuTab: [{ name: '监测站点', value: 'device' @@ -89,19 +99,236 @@ }, mounted() { clearResetMap() + this.selectIndex = 'layerBtn' this.fetchData() + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.showPop = false + this.showAlarm = false + this.showCase = false + }) + + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 }, methods: { async btnClick(e) { + clearResetMap() this.selectIndex = e.target.id - console.log(this.selectIndex, 'this.selectIndex') + this.showPop = false + this.showAlarm = false + this.showCase = false + switch (this.selectIndex) { + case "layerBtn": + this.fetchData() + break + case "alarmBtn": + this.fetchAlarm() + break + case "caseBtn": + this.fetchCase() + break + + } + }, + menuClick(e) { + console.log(e, 'e') + clearResetMap() + this.markerList = this.markerListBak.filter(item => item.typename === e.type) + console.log(this.markerList) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + undefined, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickMarker) + }) }, // 获取概括统计 fetchData() { - getPointList({}).then(res => { + this.menuTab = [ + { + name: '基础设施', + value: 'device' + } + ] + this.menus = { + device: [ + { + type: '1', typename: '大气环境', total: 0, + }, + { + type: '2', typename: '噪声环境', total: 0, + }, + { + type: '3', typename: '污染源', total: 0, + }, + { + type: '4', typename: '工地扬尘', total: 0, + }, + ] + } + // getPointList({}).then(res => { + // console.log(res.data, '概括统计') + // }) + getOverviewStatistics({}).then(res => { console.log(res.data, '概括统计') + this.menus.device = res.data.value.map(item => ({ + typename: item.typename, + type: item.type, + total: item.total, + })) + // 获取点位列表 + getPointList({ pageNo: 1, pageSize: 5 }).then(res => { + this.markerList = [ + { + "name": "大气环境", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "typename": "1" + }, + { + "name": "噪声环境", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "typename": "2" + }, + { + "name": "污染源", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "1" + }, + { + "name": "工地扬尘", + "lon": "114.878448", + "location": "江西省赣州市章贡区潭东镇生态大道", + "id": "1676434916261236737", + "lat": "25.737305", + "typename": "4" + }, + ] + this.markerListBak = JSON.parse(JSON.stringify(this.markerList)) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + undefined, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickMarker) + }) + }) }) - } + }, + // 点击点位 + clickMarker(eventArg) { + const item = eventArg._data.data + this.showPop = true + this.$nextTick(() => { + this.$refs.popRef.initData(item) + }) + }, + // 获取告警 + fetchAlarm() { + console.log('获取告警') + getAlarmList({ pageNo: '1', pageSize: '99' }).then(res => { + console.log(res.data, '告警列表') + res.data.value.forEach((item) => { + AddLabelPoint( + item.id, + `${item.devicetypename}`, + this.alarmIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickAlarmIcon) + }) + }) + }, + // 点击告警点位 + clickAlarmIcon(eventArg) { + const item = eventArg._data.data + this.showAlarm = true + this.$nextTick(() => { + this.$refs.alarmRef.initData(item) + }) + }, + // 获取事件 + fetchCase() { + console.log('获取事件') + getCaseList({ pageNo: '1', pageSize: '99', ...this.time }).then(res => { + console.log(res.data, '事件列表') + res.data.value.forEach((item) => { + console.log(this.caseIcon[item.eventstatus.trim()]) + const icon = this.caseIcon[item.eventstatus.trim()] || '' + AddLabelPoint( + item.id, + `${item.eventypename}`, + icon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickCase) + }) + }) + }, + // 事件图标点击 + clickCase(eventArg) { + const item = eventArg._data.data + this.showCase = true + this.$nextTick(() => { + this.$refs.caseRef.initData(item) + }) + }, + // 事件时间查询条件 + handleTimeRange(time) { + // this.isListPage = false + if (this.time.startTime !== '') { + this.time = time + clearResetMap() + this.fetchCase() + } else { + this.time = time + } + }, } } diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ + + diff --git a/src/pages/ywts/zyhj/hb/casePop.vue b/src/pages/ywts/zyhj/hb/casePop.vue new file mode 100644 index 0000000..0c07a1a --- /dev/null +++ b/src/pages/ywts/zyhj/hb/casePop.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/pages/ywts/zyhj/hb/data.js b/src/pages/ywts/zyhj/hb/data.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/ywts/zyhj/hb/data.js diff --git a/src/pages/ywts/zyhj/hb/index.vue b/src/pages/ywts/zyhj/hb/index.vue index 84ae2d5..2425eb3 100644 --- a/src/pages/ywts/zyhj/hb/index.vue +++ b/src/pages/ywts/zyhj/hb/index.vue @@ -3,16 +3,20 @@
- - - - + + + +
+ + + + @@ -24,13 +28,19 @@ import { clearUpMap, clearResetMap, AddLabelPoint } from '@/utils/freedo' import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import { getOverviewStatistics, getPointList } from '@/api/ywts/zyhj/hb' - +import { getOverviewStatistics, getPointList, getAlarmList, getCaseList } from '@/api/ywts/zyhj/hb' +import pointPop from './ponitPop.vue' +import alarmPop from './alarmPop.vue' +import casePop from './casePop.vue' +import { eventBus } from "../../../../main"; export default { name: 'Hb', - components: { TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, pointPop, alarmPop, casePop }, data() { return { + showPop: false, + showAlarm: false, + showCase: false, isListPage: false, ktSelect: '', isShow: false, @@ -46,7 +56,6 @@ pageSize: 5 }, caseTotal: 0, - showPop: false, caseIcon: { 1: require('@/assets/images/icon/事件/已撤案.png'), 2: require('@/assets/images/icon/事件/指派中.png'), @@ -76,6 +85,7 @@ ylHover: require('@/assets/images/function/园林/园林选中.png'), caseBg: require('@/assets/images/function/物联网/物联事件未选中.png'), caseHover: require('@/assets/images/function/物联网/物联事件选中.png'), + alarmIcon: require('@/assets/images/icon/视频云/坐标.png'), menuTab: [{ name: '监测站点', value: 'device' @@ -89,19 +99,236 @@ }, mounted() { clearResetMap() + this.selectIndex = 'layerBtn' this.fetchData() + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.showPop = false + this.showAlarm = false + this.showCase = false + }) + + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 }, methods: { async btnClick(e) { + clearResetMap() this.selectIndex = e.target.id - console.log(this.selectIndex, 'this.selectIndex') + this.showPop = false + this.showAlarm = false + this.showCase = false + switch (this.selectIndex) { + case "layerBtn": + this.fetchData() + break + case "alarmBtn": + this.fetchAlarm() + break + case "caseBtn": + this.fetchCase() + break + + } + }, + menuClick(e) { + console.log(e, 'e') + clearResetMap() + this.markerList = this.markerListBak.filter(item => item.typename === e.type) + console.log(this.markerList) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + undefined, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickMarker) + }) }, // 获取概括统计 fetchData() { - getPointList({}).then(res => { + this.menuTab = [ + { + name: '基础设施', + value: 'device' + } + ] + this.menus = { + device: [ + { + type: '1', typename: '大气环境', total: 0, + }, + { + type: '2', typename: '噪声环境', total: 0, + }, + { + type: '3', typename: '污染源', total: 0, + }, + { + type: '4', typename: '工地扬尘', total: 0, + }, + ] + } + // getPointList({}).then(res => { + // console.log(res.data, '概括统计') + // }) + getOverviewStatistics({}).then(res => { console.log(res.data, '概括统计') + this.menus.device = res.data.value.map(item => ({ + typename: item.typename, + type: item.type, + total: item.total, + })) + // 获取点位列表 + getPointList({ pageNo: 1, pageSize: 5 }).then(res => { + this.markerList = [ + { + "name": "大气环境", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "typename": "1" + }, + { + "name": "噪声环境", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "typename": "2" + }, + { + "name": "污染源", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "1" + }, + { + "name": "工地扬尘", + "lon": "114.878448", + "location": "江西省赣州市章贡区潭东镇生态大道", + "id": "1676434916261236737", + "lat": "25.737305", + "typename": "4" + }, + ] + this.markerListBak = JSON.parse(JSON.stringify(this.markerList)) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + undefined, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickMarker) + }) + }) }) - } + }, + // 点击点位 + clickMarker(eventArg) { + const item = eventArg._data.data + this.showPop = true + this.$nextTick(() => { + this.$refs.popRef.initData(item) + }) + }, + // 获取告警 + fetchAlarm() { + console.log('获取告警') + getAlarmList({ pageNo: '1', pageSize: '99' }).then(res => { + console.log(res.data, '告警列表') + res.data.value.forEach((item) => { + AddLabelPoint( + item.id, + `${item.devicetypename}`, + this.alarmIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickAlarmIcon) + }) + }) + }, + // 点击告警点位 + clickAlarmIcon(eventArg) { + const item = eventArg._data.data + this.showAlarm = true + this.$nextTick(() => { + this.$refs.alarmRef.initData(item) + }) + }, + // 获取事件 + fetchCase() { + console.log('获取事件') + getCaseList({ pageNo: '1', pageSize: '99', ...this.time }).then(res => { + console.log(res.data, '事件列表') + res.data.value.forEach((item) => { + console.log(this.caseIcon[item.eventstatus.trim()]) + const icon = this.caseIcon[item.eventstatus.trim()] || '' + AddLabelPoint( + item.id, + `${item.eventypename}`, + icon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickCase) + }) + }) + }, + // 事件图标点击 + clickCase(eventArg) { + const item = eventArg._data.data + this.showCase = true + this.$nextTick(() => { + this.$refs.caseRef.initData(item) + }) + }, + // 事件时间查询条件 + handleTimeRange(time) { + // this.isListPage = false + if (this.time.startTime !== '') { + this.time = time + clearResetMap() + this.fetchCase() + } else { + this.time = time + } + }, } } diff --git a/src/pages/ywts/zyhj/hb/ponitPop.vue b/src/pages/ywts/zyhj/hb/ponitPop.vue new file mode 100644 index 0000000..a4c64ae --- /dev/null +++ b/src/pages/ywts/zyhj/hb/ponitPop.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/src/api/ywts/shms/jy.js b/src/api/ywts/shms/jy.js index f3ac251..56f48e3 100644 --- a/src/api/ywts/shms/jy.js +++ b/src/api/ywts/shms/jy.js @@ -116,7 +116,7 @@ return request({ url: 'zhjy-gktj/zhjy/sbdwlb', method: 'post', - data, + // data, params: data }) } diff --git a/src/api/ywts/shms/sq.js b/src/api/ywts/shms/sq.js new file mode 100644 index 0000000..04a5447 --- /dev/null +++ b/src/api/ywts/shms/sq.js @@ -0,0 +1,123 @@ +/** + * 社区接口 + */ +import request from '@/utils/request' + +// 社区点位列表 +export function getCommunityList() { + return request({ + url: 'zhsq-gktj/zhsq/sqdwlb', + method: 'post', + }) +} + +// 人员热力图 +export function getHeat() { + return request({ + url: 'zhsq-gktj/zhsq/sqyyrlt', + method: 'post', + }) +} + +// 设备点位 +export function getDevice() { + return request({ + url: 'zhsq-gktj/zhsq/sbdwlb', + method: 'post', + params: { + type: '', + keywords: '' + } + }) +} + +// 社区车辆 +export function getCar() { + return request({ + url: 'zhsq-gktj/zhsq/sqbyl', + method: 'post', + }) +} + +// 事件点位列表 +export function getCase(data) { + return request({ + url: 'zhsq-gktj/zhsq/sjdwlb', + method: 'post', + params:{ + ...data + } + }) +} + +// 事件详情 +export function getCaseList(data) { + return request({ + url: 'zhsq-gktj/zhsq/zjlbfy', + method: 'post', + params:{ + ...data + } + }) +} +// 获取社区基本信息 +export function getBaseInfo(data) { + return request({ + url: 'zhsq-gktj/zhsq/sqdwxq', + method: 'post', + params:{ + ...data + }, + // data + }) +} +// 居民年龄统计 +export function getAgeStatistics(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmnltj', + method: 'post', + params:{ + ...data + }, + }) +} +// 居民流动比例 +export function getCurrentRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmldbl', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1年人房车占比统计 +export function getPersonCarRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/rfczbtj', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月居民通行量分析 +export function getTransitrRatio(data) { + return request({ + url: 'zhsq-gktj/zhsq/jmtxlfx', + method: 'post', + params:{ + ...data + }, + }) +} +// 近1月高频事件排行榜 +export function getCaseRank(data) { + return request({ + url: 'zhsq-gktj/zhsq/gpsjphb', + method: 'post', + params:{ + ...data + }, + }) +} diff --git a/src/api/ywts/zyhj/hb.js b/src/api/ywts/zyhj/hb.js index 5e598d1..07625d1 100644 --- a/src/api/ywts/zyhj/hb.js +++ b/src/api/ywts/zyhj/hb.js @@ -8,7 +8,10 @@ return request({ url: 'zhhb-gktj/zhhb/gktj', method: 'post', - data + data, + params: { + ...data, + } }) } // 环保点位列表 @@ -19,3 +22,26 @@ data }) } +// 环保告警列表 +export function getAlarmList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbgjlb', + method: 'post', + // data + params: { + ...data + } + }) +} + +// 环保事件列表 +export function getCaseList(data) { + return request({ + url: 'zhhb-gktj/zhhb/hbsjlbfy', + method: 'post', + // data + params: { + ...data + } + }) +} diff --git a/src/api/ywts/zyhj/yl.js b/src/api/ywts/zyhj/yl.js index 63d7ad2..643e3d4 100644 --- a/src/api/ywts/zyhj/yl.js +++ b/src/api/ywts/zyhj/yl.js @@ -88,6 +88,9 @@ url: 'zhyl-gktjljk/zhyl/sjxq', method: 'post', data, + params: { + ...data, + } }) } // 苗木点位列表 diff --git a/src/components/CommonFunction/index.vue b/src/components/CommonFunction/index.vue index 1a10acb..c2eba44 100644 --- a/src/components/CommonFunction/index.vue +++ b/src/components/CommonFunction/index.vue @@ -5,8 +5,8 @@ @click="btnClick" /> - + @@ -21,7 +21,7 @@ import CommonBtn from "../CommonBtn"; import { clearUpMap } from '@/utils/freedo/index' -import { initPosition, initPage } from "../../utils/freedo"; +import { initPosition, initPage } from "../../utils/freedo"; import mapJson from "@/assets/mapJson/map.json"; import { eventBus } from "../../main"; @@ -59,11 +59,11 @@ disabled: true, "children": [ { "id": 41, "label": "智慧教育-手工模型", disabled: true }, - { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, - { "id": 43, "label": "智慧社区-手工模型", disabled: true }, - { "id": 44, "label": "智慧工地-手工模型", disabled: true }, - { "id": 45, "label": "智慧交通-手工模型", disabled: true }, - { "id": 46, "label": "智慧园林-手工模型", disabled: true } + { "id": 42, "label": "智慧停车云-手工模型", disabled: true }, + { "id": 43, "label": "智慧社区-手工模型", disabled: true }, + { "id": 44, "label": "智慧工地-手工模型", disabled: true }, + { "id": 45, "label": "智慧交通-手工模型", disabled: true }, + { "id": 46, "label": "智慧园林-手工模型", disabled: true } ] }, { "id": 5, @@ -95,8 +95,8 @@ setTimeout(() => { this.tree.forEach((item) => { item.disabled = false - if(item.children) { - item.children = item.children.map((item) => ({ ...item,disabled: false})) + if (item.children) { + item.children = item.children.map((item) => ({ ...item, disabled: false })) } }) }, 5000) @@ -125,7 +125,7 @@ handler(data, checked, indeterminate) } else { - if(data.id.toString() === '5' && checked) { + if (data.id.toString() === '5' && checked) { window.terrainManager.visible = true return } @@ -143,14 +143,18 @@ }, btnClick(e) { this.showLayerTree = false + this.clearDialog() if (e.target.id === 'initBtn') { initPosition() } else if (e.target.id === 'clearBtn') { clearUpMap() } else if (e.target.id === 'layerBtn') { - // clearUpMap() this.showLayerTree = true } + }, + // 清空地图弹窗 + clearDialog() { + this.$bus.$emit('clear') } } } @@ -178,7 +182,7 @@ right: 20px; top: 1rem; display: flex; - width: 20rem; + width: 15rem; height: 5rem; z-index: 1111111111; } diff --git a/src/pages/csdz/iot/index.vue b/src/pages/csdz/iot/index.vue index 63b60ea..8aefaea 100644 --- a/src/pages/csdz/iot/index.vue +++ b/src/pages/csdz/iot/index.vue @@ -259,8 +259,8 @@ localPoint(e) { // this.childrenClick(e) this.clickIcon({ - _data:{ - data:e + _data: { + data: e } }) }, @@ -280,6 +280,11 @@ }, mounted() { this.search() + this.$bus.$on('clear', () => { + this.isShowEvent = false + this.isShowEventPop = false + this.isShowPop = false + }) // getStatistics().then(res => { // if (res.code === 200 && res.data.value.length) { // console.log(res.data, '') diff --git a/src/pages/csdz/smartCard/index.vue b/src/pages/csdz/smartCard/index.vue index 48721f7..32573d2 100644 --- a/src/pages/csdz/smartCard/index.vue +++ b/src/pages/csdz/smartCard/index.vue @@ -112,6 +112,7 @@ btnClick(e) { clearResetMap() this.selectIndex = e.target.id + this.isShowPop = false if (this.selectIndex === 'publicBtn') { // 绘制热力图 heat([ @@ -870,6 +871,10 @@ getStatistics({}).then(res => { console.log(res.data, '一卡通') }) + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + }) } } diff --git a/src/pages/csdz/videoCloud/index.vue b/src/pages/csdz/videoCloud/index.vue index 4b8d110..81530d5 100644 --- a/src/pages/csdz/videoCloud/index.vue +++ b/src/pages/csdz/videoCloud/index.vue @@ -695,6 +695,11 @@ }, mounted() { this.drawSence() + this.$bus.$on('clear', () => { + this.isShowPop = false + this.isShowEvent = false + this.isShowEventPop = false + }) } } diff --git a/src/pages/ywts/cszl/gd/index.vue b/src/pages/ywts/cszl/gd/index.vue index e9be7b0..35ee8d7 100644 --- a/src/pages/ywts/cszl/gd/index.vue +++ b/src/pages/ywts/cszl/gd/index.vue @@ -1,30 +1,23 @@ @@ -34,7 +27,7 @@ import TimeManager from "@/components/TimeManager"; import GdPop from "./gdPop"; import { heat } from '@/utils/freedo/heat' -import { clearUpMap, clearResetMap ,AddLabelPoint, initPosition } from '@/utils/freedo' +import { clearUpMap, clearResetMap, AddLabelPoint, initPosition } from '@/utils/freedo' import { getHeat, getArea, @@ -43,17 +36,17 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddLabel, focusPoint } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; import KeywordManager from "../../../../components/KeywordManager"; import gridJson from "@/assets/mapJson/grid.json"; import mapJson from "@/assets/mapJson/map.json"; -import {eventBus} from "../../../../main"; +import { eventBus } from "../../../../main"; export default { name: 'Gd', - components: {KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { KeywordManager, GdPop, TimeManager, LayerManagerMix, ListPage, CommonBtn }, data() { return { isListPage: false, @@ -73,19 +66,19 @@ caseTotal: 0, layerManager: null, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff88', - 2: '#fdeb5688', - 3: '#85c8ff88', - 4: '#ffba7488', - 5: '#87f6b388', - }, + 1: '#ffffff88', + 2: '#fdeb5688', + 3: '#85c8ff88', + 4: '#ffba7488', + 5: '#87f6b388', + }, time: { startTime: '', endTime: '', @@ -105,10 +98,10 @@ name: '工地设备', value: 'device' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { device: [ @@ -122,7 +115,7 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.device = response.data.value } }) @@ -135,28 +128,24 @@ autoFlyto: true, }) - eventBus.$emit('change-layer', { id:1, checked: false}); - eventBus.$emit('change-layer', { id:2, checked: false}); - eventBus.$emit('change-layer', { id:3, checked: false}); - eventBus.$emit('change-layer', { id:4, checked: false}); - eventBus.$emit('change-layer', { id:5, checked: true}); - eventBus.$emit('change-layer', { id:44, checked: true}); - eventBus.$emit('change-layer', { id:21, checked: true}); - eventBus.$emit('change-layer', { id:12, checked: true}); + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: true });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 - - // window.pmtsManager.add({ - // id: "智慧工地-手工模型", - // url: mapJson.CIM4["智慧工地-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // window.terrainManager.visible = true + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) }, methods: { async btnClick(e) { @@ -179,7 +168,7 @@ break case "personBtn": getHeat().then(res => { - if(res.code === 200) { + if (res.code === 200) { console.log(res.data, '热力') const arr = res.data.value.filter(item => item.lng !== "" && item.lng !== null) // arr.splice(0,1) // todo: 测试第一个错误数据 @@ -192,17 +181,17 @@ // 设备图层控制 layer(item) { // clearUpMap(true) - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-dev', item, null) }) @@ -216,23 +205,23 @@ // keywords: this.keyword } getCasePointList(param).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap(true) const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) this.keywordList = data data.forEach(item => { // if(item.total === '1') { - AddLabelPoint( - item.id, - '', - this.caseIcon[item.eventstatus], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) + AddLabelPoint( + item.id, + '', + this.caseIcon[item.eventstatus], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) // } else { // AddDivPointCase(item, this.caseColor[item.status], item.total, this.clickCase) // } @@ -244,8 +233,8 @@ search() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { clearUpMap(true) this.keywordList = response.data.value response.data.value.forEach(item => { @@ -254,7 +243,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickGd) }) @@ -265,8 +254,8 @@ score() { const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') - getArea({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getArea({ keywords: this.keyword }).then(response => { + if (response.code === 200) { this.keywordList = response.data.value response.data.value.forEach(item => { // console.log(item,'321123') @@ -280,8 +269,8 @@ }) } }) - getMonthGdScore({keywords: this.keyword}).then(response => { - if(response.code === 200) { + getMonthGdScore({ keywords: this.keyword }).then(response => { + if (response.code === 200) { response.data.value.filter(item => item.lng !== "" && item.lng !== null).forEach(item => { AddLabel( item.id, @@ -304,7 +293,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -313,7 +302,7 @@ [this.preCase.lon, this.preCase.lat, 0], 'gd-case', this.preCase, this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -323,7 +312,7 @@ this.preCase = null } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.isListPage = true this.$refs.caseListPage.initDialog() this.caseListQuery = { @@ -345,16 +334,16 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/hw/index.vue b/src/pages/ywts/cszl/hw/index.vue index e773b7d..ed28bc6 100644 --- a/src/pages/ywts/cszl/hw/index.vue +++ b/src/pages/ywts/cszl/hw/index.vue @@ -31,6 +31,7 @@ import ListPage from "@/components/ListPage"; import { getPlacePointList, getOverviewStatistics, getPersonList, getCarList, getCaseList, getCaseInfo } from '@/api/ywts/cszl/hw' import { iconFilter, iconPerson, personList, carList, iconCar } from './data' +import { eventBus } from "../../../../main"; export default { name: 'Hw', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -94,7 +95,25 @@ }, mounted() { clearResetMap() + this.selectInde = 'deviceBtn' this.fetchPoint() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { @@ -263,17 +282,17 @@ // this.caseList = res.data.value || [] // this.caseTotal = this.caseList.length res.data.value.forEach(item => { - AddLabelPoint( - item.id.replaceAll('.', ''), - '', - this.caseIcon[item.status], - [item.lon, item.lat, 0], 'gd-case', item, - this.clickCase) - }) + AddLabelPoint( + item.id.replaceAll('.', ''), + '', + this.caseIcon[item.status], + [item.lon, item.lat, 0], 'gd-case', item, + this.clickCase) + }) }) }, - // 点击事件icon - clickCase(eventArg) { + // 点击事件icon + clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker if (this.preCase !== null) { @@ -306,11 +325,11 @@ getCaseInfo(this.caseListQuery).then(res => { console.log(res.data, '事件详情') this.caseList = res.data.value || [] - this.caseTotal = this.caseList.length + this.caseTotal = this.caseList.length }) }, - // 事件换页 - changePage(val) { + // 事件换页 + changePage(val) { if (val && val.page) { this.caseListQuery.pageNo = val.page } diff --git a/src/pages/ywts/cszl/jt/index.vue b/src/pages/ywts/cszl/jt/index.vue index fb1ce91..ef5938c 100644 --- a/src/pages/ywts/cszl/jt/index.vue +++ b/src/pages/ywts/cszl/jt/index.vue @@ -1,15 +1,21 @@ @@ -26,8 +32,9 @@ getStatistics, getCasePointList, getCaseInfo } from "../../../../api/ywts/cszl/gd"; -import {AddDivPointHighlight, AddLabel} from "../../../../utils/freedo"; +import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; +import { eventBus } from "../../../../main"; export default { name: 'Jt', @@ -47,19 +54,19 @@ }, caseTotal: 0, caseIcon: { - 1: require('@/assets/images/icon/事件/已撤案.png'), - 2: require('@/assets/images/icon/事件/指派中.png'), - 3: require('@/assets/images/icon/事件/处置中.png'), - 4: require('@/assets/images/icon/事件/已办结.png'), - 5: require('@/assets/images/icon/事件/已结案.png'), - }, + 1: require('@/assets/images/icon/事件/已撤案.png'), + 2: require('@/assets/images/icon/事件/指派中.png'), + 3: require('@/assets/images/icon/事件/处置中.png'), + 4: require('@/assets/images/icon/事件/已办结.png'), + 5: require('@/assets/images/icon/事件/已结案.png'), + }, caseColor: { - 1: '#ffffff', - 2: '#fdeb56', - 3: '#85c8ff', - 4: '#ffba74', - 5: '#87f6b3', - }, + 1: '#ffffff', + 2: '#fdeb56', + 3: '#85c8ff', + 4: '#ffba74', + 5: '#87f6b3', + }, time: { startTime: '', endTime: '', @@ -81,10 +88,10 @@ name: '基础设施', value: 'place' } - // , { - // name: '环监设备', - // value: 'others' - // } + // , { + // name: '环监设备', + // value: 'others' + // } ], menus: { place: [ @@ -98,11 +105,27 @@ }, mounted() { getStatistics().then(response => { - if(response.code === 200) { + if (response.code === 200) { this.menus.place = response.data.value } }) this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: true });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isListPage = false + }) }, methods: { async btnClick(e) { @@ -121,16 +144,16 @@ // 设备图层控制 layer(item) { // clearUpMap() - const iconOnline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'在线.png') - const iconOffline = require('@/assets/images/icon/工地地图点位/'+item.typename.replace(/ /g,'')+'离线.png') - getDevList({type: item.type}).then(response => { - if(response.code === 200) { + const iconOnline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '在线.png') + const iconOffline = require('@/assets/images/icon/工地地图点位/' + item.typename.replace(/ /g, '') + '离线.png') + getDevList({ type: item.type }).then(response => { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { AddLabelPoint( item.id, '', - item.status === '1'? iconOnline: iconOffline, + item.status === '1' ? iconOnline : iconOffline, [item.lon, item.lat, 0], 'gd-place', item, null) }) @@ -141,11 +164,11 @@ casePoint() { console.log(this.time) getCasePointList(this.time).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() const data = [] response.data.value.forEach(item => { - if(!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { + if (!data.map(da => da.id).includes(item.id) && !data.map(da => da.lon).includes(item.lon) && item.id !== null) { data.push(item) } }) @@ -165,7 +188,7 @@ const iconDone = require('@/assets/images/icon/工地地图点位/工地已完成.png') const iconDoing = require('@/assets/images/icon/工地地图点位/工地进行中.png') getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { clearUpMap() response.data.value.forEach(item => { // console.log(item.areaboundary) @@ -173,7 +196,7 @@ AddLabelPoint( item.id, item.name, - item.status === '2' ? iconDoing: iconDone, + item.status === '2' ? iconDoing : iconDone, [item.lon, item.lat, 0], 'gd', item, this.clickHw) }) @@ -183,7 +206,7 @@ // 智慧工地-工地近1月综合得分 score() { getArea({}).then(response => { - if(response.code === 200) { + if (response.code === 200) { response.data.value.forEach(item => { console.log(item.areaboundary) // todo : 画范围 @@ -195,7 +218,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -231,13 +254,13 @@ searchCaseMarkerList() { // getCaseInfo(this.caseListQuery).then(response => { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value // todo // this.caseTotal = response.data.value.length - this.caseTotal = 12 + this.caseTotal = 12 } }) }, @@ -246,7 +269,7 @@ }, handleTimeRange(time) { this.isListPage = false - if(this.time.startTime !== '') { + if (this.time.startTime !== '') { this.time = time this.casePoint() } else { diff --git a/src/pages/ywts/cszl/jxh/index.vue b/src/pages/ywts/cszl/jxh/index.vue index a3703db..0f23aaa 100644 --- a/src/pages/ywts/cszl/jxh/index.vue +++ b/src/pages/ywts/cszl/jxh/index.vue @@ -1,26 +1,24 @@ @@ -44,14 +42,15 @@ getAll, getCaseInfo, getBoard } from "../../../../api/ywts/cszl/jxh"; -import {AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon} from "../../../../utils/freedo"; +import { AddDivPointCase, AddDivPointHighlight, AddOnlyLabel, AddPolygon } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import {getGridInfo, getGridToken} from "../../../../api/common"; +import { getGridInfo, getGridToken } from "../../../../api/common"; import JxhPop from "./jxhPop"; +import { eventBus } from "../../../../main"; export default { name: 'Jxh', - components: {JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, + components: { JxhPop, LayerManager, TimeManager, KeywordManager, CommonBtn, ListPage }, data() { return { preCase: null, @@ -128,6 +127,22 @@ } }, mounted() { + this.$bus.$on('clear', () => { + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 // 全部事件 getAll({ // urgent: '0', @@ -135,8 +150,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -154,7 +169,7 @@ caseMarker(res) { res.data.value.forEach(item => { // console.log(item.status) - if(item.total === '1') { + if (item.total === '1') { AddLabelPoint( item.id, '', @@ -180,24 +195,24 @@ switch (e.bigtype) { case 'source': query.sourceId = e.type - getSourceList(query).then( res => { - if(res.code === 200) { + getSourceList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'project': query.projectId = e.type - getProjectList(query).then( res => { - if(res.code === 200) { + getProjectList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) break case 'grid': query.gridType = e.type - getGridList(query).then( res => { - if(res.code === 200) { + getGridList(query).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -208,7 +223,7 @@ clickCase(eventArg) { const item = eventArg._data.data // 恢复上一个marker - if(this.preCase !== null ) { + if (this.preCase !== null) { window.mmManager.removeById(this.preCase.id) AddLabelPoint( this.preCase.id, @@ -218,7 +233,7 @@ this.clickCase) } - if(item.total === '1') { + if (item.total === '1') { // 保存当前marker this.preCase = item // 高亮当前marker @@ -229,7 +244,7 @@ } // 查询事件详情 - this.caseTotal = Number(item.total) + this.caseTotal = Number(item.total) this.caseList = [] this.isListPage = true this.hasUrge = false @@ -263,13 +278,13 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) // 事件看板 - this.caseTotal = 1000 // todo + this.caseTotal = 1000 // todo this.caseList = [] this.isListPage = true this.hasUrge = true @@ -292,8 +307,8 @@ high: '1', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -306,8 +321,8 @@ // high: '0', startTime: this.time.startTime, endTime: this.time.endTime, - }).then( res => { - if(res.code === 200) { + }).then(res => { + if (res.code === 200) { this.caseMarker(res) } }) @@ -317,7 +332,7 @@ break case "caseHeatBtn": getHeat(this.time).then(res => { - if(res.code === 200) { + if (res.code === 200) { heat(res.data.value) // 热力图 } }) @@ -326,29 +341,29 @@ }, gridDraw(token, areaCode) { const colors = [ - [0,234,255,0.47], - [255,185,0,0.47], - [255,234,0,0.47], - [209,0,255,0.47], - [255,0,38,0.47], + [0, 234, 255, 0.47], + [255, 185, 0, 0.47], + [255, 234, 0, 0.47], + [209, 0, 255, 0.47], + [255, 0, 38, 0.47], ] getGridInfo({ paramCodeList: 'KJ5001', areaCode, token - }).then( res => { + }).then(res => { console.log(res) res.data.chirdAreaInfo.forEach((item, index) => { item._source.areainfo.coordinates.forEach(area => { let positions = [] - let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0]: area + let arr = item._source.areainfo.type === 'MultiPolygon' ? area[0] : area arr.forEach(pos => { - positions.push(Freedo.Cartesian3.fromDegrees( pos[0], pos[1],0)) + positions.push(Freedo.Cartesian3.fromDegrees(pos[0], pos[1], 0)) }) - AddPolygon(positions,colors[index % 5], this.gridClick,item._id) + AddPolygon(positions, colors[index % 5], this.gridClick, item._id) AddOnlyLabel( '', - item._source.areaname , //+ this.menus.grid + item._source.areaname, //+ this.menus.grid [item._source.lon, item._source.lat, 0], '', null, null) }) @@ -364,7 +379,7 @@ secret: CryptoJS.MD5(timestamp + 'geostar999').toString() } - getGridToken(param).then( res => { + getGridToken(param).then(res => { clearUpMap() this.gridDraw(res.data.token, '360783001') this.gridDraw(res.data.token, '360783002') @@ -374,32 +389,32 @@ }, // 三个概况统计 layerSeach() { - getSource(this.time).then( res => { - if(res.code === 200) { + getSource(this.time).then(res => { + if (res.code === 200) { this.menus.source = res.data.value.map(item => { item.bigtype = 'source' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getProject(this.time).then( res => { - if(res.code === 200) { + getProject(this.time).then(res => { + if (res.code === 200) { this.menus.project = res.data.value.map(item => { item.bigtype = 'project' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } }) - getGrid(this.time).then( res => { - if(res.code === 200) { + getGrid(this.time).then(res => { + if (res.code === 200) { this.menus.grid = res.data.value.map(item => { item.bigtype = 'grid' - item.type = item.id.replace(/ /g,'') - item.typename = item.name.replace(/ /g,'') + item.type = item.id.replace(/ /g, '') + item.typename = item.name.replace(/ /g, '') return item }) } @@ -410,7 +425,7 @@ if (val && val.page) { this.caseListQuery.pageNo = val.page } - if(this.hasUrge) { + if (this.hasUrge) { this.searchBoard() } else { this.searchCaseMarkerList() @@ -419,20 +434,20 @@ // 事件看板查询 searchBoard() { getBoard(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, // 事件详情分页 searchCaseMarkerList() { getCaseInfo(this.caseListQuery).then(response => { - if(response.code === 200) { + if (response.code === 200) { console.log(response.data.value) // 右侧看板 - this.caseList = response.data.value + this.caseList = response.data.value } }) }, diff --git a/src/pages/ywts/cszl/yj/index.vue b/src/pages/ywts/cszl/yj/index.vue index 7869a73..d74dfe9 100644 --- a/src/pages/ywts/cszl/yj/index.vue +++ b/src/pages/ywts/cszl/yj/index.vue @@ -45,7 +45,7 @@ import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import { iconFilter, deviceList, caseList } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yj', components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop }, @@ -118,14 +118,25 @@ } }, mounted() { - // getStatistics().then(response => { - // if(response.code === 200) { - // this.menus.place = response.data.value - // } - // }) - // this.search() + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 clearResetMap() this.searchPlace({}) + + this.$bus.$on('clear', () => { + this.isListPage = false + this.showPop = false + }) }, methods: { async btnClick(e) { diff --git a/src/pages/ywts/shms/jy/devicePop.vue b/src/pages/ywts/shms/jy/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/jy/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/jy/index.vue b/src/pages/ywts/shms/jy/index.vue index b1eb984..f377985 100644 --- a/src/pages/ywts/shms/jy/index.vue +++ b/src/pages/ywts/shms/jy/index.vue @@ -6,11 +6,13 @@ + :select="selectIndex === 'layerBtn'" @btnClick="btnClick" @menuClick="menuClick" /> + + @@ -29,13 +31,15 @@ import mapJson from "@/assets/mapJson/map.json"; import modelJson from "@/assets/mapJson/school.json"; import { eventBus } from "../../../../main"; +import devicePop from './devicePop.vue' export default { name: 'Jy', - components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn }, + components: { SchoolPop, TimeManager, KeywordManager, LayerManagerMix, CommonBtn, devicePop }, data() { return { isShow: false, + showDevice: false, ktSelect: '', keyword: '', keywordList: [], @@ -56,10 +60,15 @@ }, menus: { device: [ - { type: "1", typename: "视频设备", total: "111" }, - { type: "2", typename: "门禁设备", total: "111" } + { type: "1", typename: "视频设备", total: "0" }, + { type: "2", typename: "门禁设备", total: "0" } ] - } + }, + markerList: [], + markerBakList: [], + videoIcon: require('@/assets/images/icon/视频云/枪机未赋能在线.png'), + controlIcon: require('@/assets/images/icon/一卡通/门禁.png'), + } }, mounted() { @@ -70,55 +79,25 @@ name: 'jy', autoFlyto: true, }) - eventBus.$emit('change-layer', { id: 1, checked: false }); - eventBus.$emit('change-layer', { id: 2, checked: false }); - eventBus.$emit('change-layer', { id: 3, checked: false }); - eventBus.$emit('change-layer', { id: 4, checked: false }); - eventBus.$emit('change-layer', { id: 5, checked: true }); - eventBus.$emit('change-layer', { id: 41, checked: true }); - eventBus.$emit('change-layer', { id: 21, checked: true }); - eventBus.$emit('change-layer', { id: 12, checked: true }); - // // 教育模型 - // window.pmtsManager.add({ - // id: "智慧教育-手工模型", - // url: mapJson.CIM4["智慧教育-手工模型"], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // // CIM2 楼 - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false - // }) - // window.pmtsManager.add({ - // url: mapJson['CIM2']['CIM2建筑(带纹理)'], - // show: true, - // name: 'CIM2建筑(带纹理)', - // autoFlyto: false, - // alpha: 0.5, - // color: '#002d7a' - // }) - // for(let key in modelJson) { - // window.pmtsManager.add({ - // id: key, - // // url: mapJson.CIM4["智慧教育-手工模型"], - // url: modelJson[key], - // show: true, - // maximumScreenSpaceError: 32, - // maximumMemoryUsage: 64, - // maximumAbsoluteMemoryUsage: 8192, - // autoFlyto: true - // }, - // undefined - // ) - // } + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: true }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShow = false + this.showDevice = false + + }) }, methods: { async btnClick(e) { @@ -126,6 +105,7 @@ clearUpMap(true) initPosition() this.isShow = false + this.showDevice = false this.selectIndex = e.target.id switch (this.selectIndex) { case "schoolBtn": @@ -194,10 +174,121 @@ }, // 搜索学校设备 searchDevice() { - getDevice({}).then(res => { - console.log('学校数据') + getDevice({ keywords: '' }).then(res => { + this.markerList = [ + { + "name": "设备1", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备2", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备3", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备4", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "type": "1", + "typename": "视频设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备5", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "type": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + { + "name": "设备6", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "2", + "typename": "门禁设备", + statusName: '正常', + time: '2025-06-16 09:05:05', + in: '0', + out: '0', + }, + ] + this.markerBakList = JSON.parse(JSON.stringify(this.markerList)) + this.menus.device[0].total = this.markerList.filter((item) => item.type === '1').length + this.menus.device[1].total = this.markerList.filter((item) => item.type === '2').length + // 绘制点位 + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) }) - } + }, + menuClick(e) { + clearResetMap() + this.markerList = this.markerBakList.filter(item => item.type === e.type) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + item.type === '1' ? this.videoIcon : this.controlIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickDevice) + }) + }, + // 设备点位点击 + clickDevice(eventArg) { + const item = eventArg._data.data + this.showDevice = true + this.$nextTick(() => { + this.$refs.deviceRef.initData(item) + }) + }, } } diff --git a/src/pages/ywts/shms/sq/carPop.vue b/src/pages/ywts/shms/sq/carPop.vue new file mode 100644 index 0000000..b1fe4c3 --- /dev/null +++ b/src/pages/ywts/shms/sq/carPop.vue @@ -0,0 +1,275 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/communityPop.vue b/src/pages/ywts/shms/sq/communityPop.vue new file mode 100644 index 0000000..eb6bf07 --- /dev/null +++ b/src/pages/ywts/shms/sq/communityPop.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/agePie.vue b/src/pages/ywts/shms/sq/components/agePie.vue new file mode 100644 index 0000000..9e41da8 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/agePie.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/currentPie.vue b/src/pages/ywts/shms/sq/components/currentPie.vue new file mode 100644 index 0000000..c7dfe20 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/currentPie.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/personBar.vue b/src/pages/ywts/shms/sq/components/personBar.vue new file mode 100644 index 0000000..b065487 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/personBar.vue @@ -0,0 +1,193 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/scoreLineBar.vue b/src/pages/ywts/shms/sq/components/scoreLineBar.vue new file mode 100644 index 0000000..1551e69 --- /dev/null +++ b/src/pages/ywts/shms/sq/components/scoreLineBar.vue @@ -0,0 +1,189 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/components/transitBar.vue b/src/pages/ywts/shms/sq/components/transitBar.vue new file mode 100644 index 0000000..c23b4ba --- /dev/null +++ b/src/pages/ywts/shms/sq/components/transitBar.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/devicePop.vue b/src/pages/ywts/shms/sq/devicePop.vue new file mode 100644 index 0000000..2c44979 --- /dev/null +++ b/src/pages/ywts/shms/sq/devicePop.vue @@ -0,0 +1,281 @@ + + + + + diff --git a/src/pages/ywts/shms/sq/index.vue b/src/pages/ywts/shms/sq/index.vue new file mode 100644 index 0000000..6aa8714 --- /dev/null +++ b/src/pages/ywts/shms/sq/index.vue @@ -0,0 +1,478 @@ + + + + + diff --git a/src/pages/ywts/ywts.vue b/src/pages/ywts/ywts.vue index 99a5d69..80b53f9 100644 --- a/src/pages/ywts/ywts.vue +++ b/src/pages/ywts/ywts.vue @@ -1,23 +1,17 @@ + + diff --git a/src/pages/ywts/zyhj/hb/casePop.vue b/src/pages/ywts/zyhj/hb/casePop.vue new file mode 100644 index 0000000..0c07a1a --- /dev/null +++ b/src/pages/ywts/zyhj/hb/casePop.vue @@ -0,0 +1,286 @@ + + + + + diff --git a/src/pages/ywts/zyhj/hb/data.js b/src/pages/ywts/zyhj/hb/data.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/pages/ywts/zyhj/hb/data.js diff --git a/src/pages/ywts/zyhj/hb/index.vue b/src/pages/ywts/zyhj/hb/index.vue index 84ae2d5..2425eb3 100644 --- a/src/pages/ywts/zyhj/hb/index.vue +++ b/src/pages/ywts/zyhj/hb/index.vue @@ -3,16 +3,20 @@
- - - - + + + +
+ + + + @@ -24,13 +28,19 @@ import { clearUpMap, clearResetMap, AddLabelPoint } from '@/utils/freedo' import { AddDivPointHighlight, AddLabel } from "../../../../utils/freedo"; import ListPage from "@/components/ListPage"; -import { getOverviewStatistics, getPointList } from '@/api/ywts/zyhj/hb' - +import { getOverviewStatistics, getPointList, getAlarmList, getCaseList } from '@/api/ywts/zyhj/hb' +import pointPop from './ponitPop.vue' +import alarmPop from './alarmPop.vue' +import casePop from './casePop.vue' +import { eventBus } from "../../../../main"; export default { name: 'Hb', - components: { TimeManager, LayerManagerMix, ListPage, CommonBtn }, + components: { TimeManager, LayerManagerMix, ListPage, CommonBtn, pointPop, alarmPop, casePop }, data() { return { + showPop: false, + showAlarm: false, + showCase: false, isListPage: false, ktSelect: '', isShow: false, @@ -46,7 +56,6 @@ pageSize: 5 }, caseTotal: 0, - showPop: false, caseIcon: { 1: require('@/assets/images/icon/事件/已撤案.png'), 2: require('@/assets/images/icon/事件/指派中.png'), @@ -76,6 +85,7 @@ ylHover: require('@/assets/images/function/园林/园林选中.png'), caseBg: require('@/assets/images/function/物联网/物联事件未选中.png'), caseHover: require('@/assets/images/function/物联网/物联事件选中.png'), + alarmIcon: require('@/assets/images/icon/视频云/坐标.png'), menuTab: [{ name: '监测站点', value: 'device' @@ -89,19 +99,236 @@ }, mounted() { clearResetMap() + this.selectIndex = 'layerBtn' this.fetchData() + + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.showPop = false + this.showAlarm = false + this.showCase = false + }) + + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: false });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: false }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 }, methods: { async btnClick(e) { + clearResetMap() this.selectIndex = e.target.id - console.log(this.selectIndex, 'this.selectIndex') + this.showPop = false + this.showAlarm = false + this.showCase = false + switch (this.selectIndex) { + case "layerBtn": + this.fetchData() + break + case "alarmBtn": + this.fetchAlarm() + break + case "caseBtn": + this.fetchCase() + break + + } + }, + menuClick(e) { + console.log(e, 'e') + clearResetMap() + this.markerList = this.markerListBak.filter(item => item.typename === e.type) + console.log(this.markerList) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + undefined, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickMarker) + }) }, // 获取概括统计 fetchData() { - getPointList({}).then(res => { + this.menuTab = [ + { + name: '基础设施', + value: 'device' + } + ] + this.menus = { + device: [ + { + type: '1', typename: '大气环境', total: 0, + }, + { + type: '2', typename: '噪声环境', total: 0, + }, + { + type: '3', typename: '污染源', total: 0, + }, + { + type: '4', typename: '工地扬尘', total: 0, + }, + ] + } + // getPointList({}).then(res => { + // console.log(res.data, '概括统计') + // }) + getOverviewStatistics({}).then(res => { console.log(res.data, '概括统计') + this.menus.device = res.data.value.map(item => ({ + typename: item.typename, + type: item.type, + total: item.total, + })) + // 获取点位列表 + getPointList({ pageNo: 1, pageSize: 5 }).then(res => { + this.markerList = [ + { + "name": "大气环境", + "lon": "114.859995", + "location": "江西省赣州市南康区三江乡", + "id": "1676397864375291905", + "lat": "25.802129", + "typename": "1" + }, + { + "name": "噪声环境", + "lon": "114.861027", + "location": "江西省赣州市章贡区潭六路135号靠近逸夫小学", + "id": "1676398916763914241", + "lat": "25.757553", + "typename": "2" + }, + { + "name": "污染源", + "lon": "114.880246", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414593390350337", + "lat": "25.753119", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.879855", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676414955455254529", + "lat": "25.752771", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.875438", + "location": "江西省赣州市章贡区潭东镇弘腾路毅德城", + "id": "1676418661630349312", + "lat": "25.748733", + "typename": "3" + }, + { + "name": "污染源", + "lon": "114.867371", + "location": "江西省赣州市章贡区105国道135号靠近松岭上", + "id": "1676422908220542977", + "lat": "25.750388", + "typename": "1" + }, + { + "name": "工地扬尘", + "lon": "114.878448", + "location": "江西省赣州市章贡区潭东镇生态大道", + "id": "1676434916261236737", + "lat": "25.737305", + "typename": "4" + }, + ] + this.markerListBak = JSON.parse(JSON.stringify(this.markerList)) + this.markerList.forEach((item) => { + AddLabelPoint( + item.id, + `${item.name}`, + undefined, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickMarker) + }) + }) }) - } + }, + // 点击点位 + clickMarker(eventArg) { + const item = eventArg._data.data + this.showPop = true + this.$nextTick(() => { + this.$refs.popRef.initData(item) + }) + }, + // 获取告警 + fetchAlarm() { + console.log('获取告警') + getAlarmList({ pageNo: '1', pageSize: '99' }).then(res => { + console.log(res.data, '告警列表') + res.data.value.forEach((item) => { + AddLabelPoint( + item.id, + `${item.devicetypename}`, + this.alarmIcon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickAlarmIcon) + }) + }) + }, + // 点击告警点位 + clickAlarmIcon(eventArg) { + const item = eventArg._data.data + this.showAlarm = true + this.$nextTick(() => { + this.$refs.alarmRef.initData(item) + }) + }, + // 获取事件 + fetchCase() { + console.log('获取事件') + getCaseList({ pageNo: '1', pageSize: '99', ...this.time }).then(res => { + console.log(res.data, '事件列表') + res.data.value.forEach((item) => { + console.log(this.caseIcon[item.eventstatus.trim()]) + const icon = this.caseIcon[item.eventstatus.trim()] || '' + AddLabelPoint( + item.id, + `${item.eventypename}`, + icon, + [item.lon, item.lat, 0], 'yl-dev', item, + this.clickCase) + }) + }) + }, + // 事件图标点击 + clickCase(eventArg) { + const item = eventArg._data.data + this.showCase = true + this.$nextTick(() => { + this.$refs.caseRef.initData(item) + }) + }, + // 事件时间查询条件 + handleTimeRange(time) { + // this.isListPage = false + if (this.time.startTime !== '') { + this.time = time + clearResetMap() + this.fetchCase() + } else { + this.time = time + } + }, } } diff --git a/src/pages/ywts/zyhj/hb/ponitPop.vue b/src/pages/ywts/zyhj/hb/ponitPop.vue new file mode 100644 index 0000000..a4c64ae --- /dev/null +++ b/src/pages/ywts/zyhj/hb/ponitPop.vue @@ -0,0 +1,277 @@ + + + + + diff --git a/src/pages/ywts/zyhj/yl/index.vue b/src/pages/ywts/zyhj/yl/index.vue index d9d1624..46fee74 100644 --- a/src/pages/ywts/zyhj/yl/index.vue +++ b/src/pages/ywts/zyhj/yl/index.vue @@ -3,16 +3,16 @@
- - + +
- + @@ -40,7 +40,7 @@ import { getDevice, getCaseList, getCaseInfo, getseedlingList } from '@/api/ywts/zyhj/yl' import { iconFilter } from './data' import ListPage from "@/components/ListPage"; - +import { eventBus } from "../../../../main"; export default { name: 'Yl', components: { YlPop, TimeManager, LayerManagerMix, ListPage, CommonBtn, Pop, mmPop }, @@ -120,6 +120,25 @@ mounted() { clearResetMap() this.fetchPoinitList() + // 清除弹窗展示 + this.$bus.$on('clear', () => { + this.isShowMM = false + this.showPop = false + this.isListPage = false + this.isShow = false + }) + // 设置默认选中图层 + eventBus.$emit('change-layer', { id: 41, checked: false }); // 智慧教育-手工模型 + eventBus.$emit('change-layer', { id: 42, checked: false });// 智慧停车云-手工模型 + eventBus.$emit('change-layer', { id: 43, checked: false });//智慧社区-手工模型 + eventBus.$emit('change-layer', { id: 44, checked: false });// 智慧工地-手工模型 + eventBus.$emit('change-layer', { id: 45, checked: false });// 智慧交通-手工模型 + eventBus.$emit('change-layer', { id: 46, checked: true });// 智慧园林-手工模型 + eventBus.$emit('change-layer', { id: 31, checked: false }); // 倾斜 + eventBus.$emit('change-layer', { id: 21, checked: true }); //CIM2建筑(带纹理) + eventBus.$emit('change-layer', { id: 22, checked: false }); //CIM2建筑(纯白色) + eventBus.$emit('change-layer', { id: 12, checked: true }); // 蓉江新区正射影像 + eventBus.$emit('change-layer', { id: 13, checked: true }); // 蓉江新区边界 }, methods: { async btnClick(e) { @@ -368,14 +387,14 @@ // 绘制 const iconYL = require('@/assets/images/icon/园林/园林.png') pointList.forEach(item => { - AddLabelPoint( - item.id || new Date().getTime(), - item.name, - iconYL, - [item.lon, item.lat, 0], 'gd', item, - this.clickYl - ) - }) + AddLabelPoint( + item.id || new Date().getTime(), + item.name, + iconYL, + [item.lon, item.lat, 0], 'gd', item, + this.clickYl + ) + }) }) getseedlingList({}).then(res => { console.log('苗木', res.data) @@ -383,12 +402,12 @@ console.log(initData, 'initData') initData.forEach(item => { AddLabelPoint( - item.id || new Date().getTime(), - item.name, - undefined, - [item.lon, item.lat, 0], 'gd', item, - this.clickMM - ) + item.id || new Date().getTime(), + item.name, + undefined, + [item.lon, item.lat, 0], 'gd', item, + this.clickMM + ) }) })