123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242 |
- import axios from "axios";
- import data from "@c/mixins/anbao";
- export default {
- data() {
- return {
- stores: this.$useStore(),
- map: null,
- oldPopup: null,
- oldPopupId: null,
- };
- },
- mounted() {
- window.vue = this;
- window.jMap = null;
- window.jmapQuery = null;
- },
- methods: {
- streetTownMap(name) {
- return name
- },
- /**
- *地图初始化
- *
- */
- async initMap() {
- window.vue = this;
- window.jMap = null;
- window.jmapQuery = null;
- window.jMap = new JMap();
- var map_params = {
- camera: {
- x: 121.4175597,
- y: 31.119248,
- radius: 18000.0,
- offset: { heading: -4, pitch: -70, range: 0 },
- },
- map_complete_callback: () => {
- window.jmapQuery = new JMapQuery(window.jMap);
- // ToDo...
- },
- map_left_click_callback: (obj, type, movement, event) => {
- console.log(movement.position)
- this.stores.$state.tankuangXY = { x: movement.position.x, y: movement.position.y };
- // this.$store.commit("tankuangXY", { x: movement.position.x, y: movement.position.y });
- },
- map_right_click_callback: (obj) => {},
- };
- let res = await this.$axios.get(this.$api.dt);
- // 加载地图
- window.jMap.createMap("mapF", res.data, window.location.origin, map_params, {});
- // 地图背景样式
- window.jMap.switchBaseLayer("blue");
- /**
- * 获取街镇信息
- */
- var options = {
- click: addLayerCallBack,
- isZoom: false,
- style: {
- outline: true,
- outlineColor: "rgb(255,0,0,0.8)",
- material: "rgb(154,255,154,0)",
- perPositionHeight: false,
- height: 5,
- width: 5,
- label: {
- show: true,
- text: "name",
- font: "16px Helvetica",
- fillColor: "rgb(0,255,0,0.9)",
- pixelOffset: [0, -40],
- backgroundColor: "rgb(0,0,0,0)",
- showBackground: false,
- },
- },
- // where:"name = '莘庄镇'"
- };
- window.jMap.addLayer("mh_dyn_district", [1], options);
- var _this = this;
- function addLayerCallBack(obj) {
- // _this.streetTownMap(obj._name)
- _this.stores.streetTownSet(obj._name)
- }
- // 街镇标题
- var qp = new JMapQueryParam({
- queryMapService: "mh_dyn_district",
- queryMapLayers: [1],
- outFields: ["code", "name", "center_x", "center_y"],
- queryWhere: "name like '%莘庄镇%' ",
- callBack: (res) => {
- res.features.forEach(async(val) => {
- await window.jMap.FlagInfo.show({
- id: val.attributes.code,
- position: { x: Number(val.attributes.center_x), y: Number(val.attributes.center_y), z: 0 },
- element: `<div class='ysc-dynamic-layer ys-css3-box' onclick="vue.clickFlag(${val.attributes.code})">
- <div class='biaozhu' style="font-size:18px !important">${val.attributes.name} ${val.attributes.code}</div>
- </div>`,
- }, { isZoom: false });
- });
- },
- });
- // new JMapQuery(window.jMap).execQuery(qp)
- //window.jMap.bindBuildingClick(callbackFunction)
- // 点击三维建筑模型触发的回调函数
- },
- /**
- *添加动态图层
- *
- */
- addLayer() {
- var wheres = [];
- wheres[1] = "subdistrict='七宝镇'"; // 1:图层序号 subdistrict='七宝镇' 筛选条件
- var options = {
- click: windowGxLayer,
- wheres: wheres
- };
- setTimeout(() => {
- jMap.addImageryLayer("mh_dyn_cywg", [1], options);
- }, 3000);
- },
- // 点击事件回调函数
- addLayerCallBack(obj) {
- },
- /**
- *安保区域划分
- *
- */
- anbaoMap() {
- let target = {
- id: '100001',
- attributes: {
- name: '大型安保范围',
- },
- position: data[0],
- label: {
- text: "大型安保范围",
- font: "16px Helvetica",
- color: "rgba(255,255,255,0.1)",
- pixelOffset: [0, -50],
- backgroundColor: "red"
- }
- }
- var options = {
- isZoom: true,
- style: {
- color: 'rgb(255,255,0,0.9)',
- transparency: 1,
- outline: true,
- outlineColor: 'transparent',
- perPositionHeight: true
- },
- // click: regionLocateCallBack
- };
- setTimeout(() => {
- window.jMap.Locate.trackLocate(target, options);
- }, 1000)
- },
- // 安保分布点点击事件的回调函数
- regionLocateCallBack(obj) {
- console.log(obj); // obj为返回值
- },
- /**
- * @聚合撒点
- * @param {数据list} data
- * @param {页面类型} pageType
- * @param {类型} type
- */
- initMarkers(data, pageType, type) {
- var _this = this;
- var tag = 1; //1.自定义图标 2.完全自定义 3.默认
- var style = ""; //地图最大化小图标
- var points = []; //地图撒点处理数据存储
- var options = {
- style: { pixelRange: 10 },
- isZoom: true,
- click: clusterMapCallBack,
- };
- jMap.ClusterMap.show(data, options);
- },
- clickFlag(val) {
- console.log(val);
- },
- randomColor() {
- var color = "#";
- //for循环中,如果后面仅有一条语句,{}可省略不写
- //随机生成6位0-15之间的数字,再用toString(16)将数字转成16进制
- for (var i = 0; i < 6; i++) color += parseInt(Math.random() * 16).toString(16);
- return color;
- },
- removeMarkers(lnglats) {
- this.map.remove(lnglats);
- },
- /**
- *街镇切换
- */
- streetTownSwitch(data) {
- // console.log(data);
- let sf = 2800.0;
- if (data.id == 12) {
- //区缩放比例调整
- sf = 18000.0;
- }
- var options = {
- area: data.id,
- base_layer_name: "dark",
- model_data_name: "dark",
- isShowDistrictLabel: true,
- camera: {
- x: data.x,
- y: data.y,
- radius: sf,
- offset: { heading: 4, pitch: -89, range: 0 },
- },
- };
- jMap.switchStreet(options);
- },
- /**
- * 点分布(撒点)
- * @param {坐标信息} lnglats
- * @param {页面类型} type
- */
- addMarker(lnglats, pageType, type) {
- window.jMap.Locate.clearLocate();
- let icon = "";
- let arr = []
- let arr1 = []
- let arr2 = []
- let arr3 = []
- let arr4 = []
- let arr5 = []
- var target = lnglats.map((val, ind) => {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val.gisX) || Number(val.longitude), Number(val.gisY) || Number(val.latitude))
- var x = wgs84[0]
- var y = wgs84[1]
- if (pageType == "enforcement-dynamic" ||
- pageType == "self-management" ||
- pageType == "comprehensive-disposal" ||
- pageType == "rescue-station" ||
- pageType == "security-plan" ||
- pageType == "fire-signs" ||
- pageType == "fire-data-analysis" ||
- pageType == "water-sources") {
- let marker = {
- id: ind + 1,
- attrbutes: val,
- position: {
- x: x,
- y: y,
- // x: Number(val.gisX) || Number(val.longitude),
- // y: Number(val.gisY) || Number(val.latitude),
- z: 0
- },
- image: {
- url: type == "双随机执法单位" ? this.stores.sadianIcon.ssjzf : type == "安全检查单位" ? this.stores.sadianIcon.aqjcdw : type == "举报投诉" ? this.stores.sadianIcon.jbts : type == "执法记录仪" ? this.stores.sadianIcon.zfjly :
- type == "重点单位" ? this.stores.sadianIcon.zddw : type == "龙湖天街(试点)" ? this.stores.sadianIcon.lhtj : type == "一般单位" ? this.stores.sadianIcon.ybdw : type == "九小场所" ? this.stores.sadianIcon.jxcs : type == "其他单位" ? this.stores.sadianIcon.qtdw :
- type == "厂房" ? this.stores.sadianIcon.cf : type == "仓库" ? this.stores.sadianIcon.ck :
- type == "车辆" && val.type != "国家会展中心" ? this.stores.sadianIcon.xfc : type == "历史警情" && val.type != "国家会展中心" ? this.stores.sadianIcon.lsjq :
- type == "历史火灾" && val.type != "国家会展中心" ? this.stores.sadianIcon.lshz : val.type == "国家会展中心" ? this.stores.sadianIcon.hzzx :
- type == "亡人火灾" ? this.stores.sadianIcon.wrhz : type == "伤人火灾" ? this.stores.sadianIcon.srhz :
- type == "消火栓可用" ? this.stores.sadianIcon.xhs : type == "消火栓不可用" ? this.stores.sadianIcon.xhsH :
- type == "天然水源" ? this.stores.sadianIcon.trsy : type == "科普教育基地" ? this.stores.sadianIcon.kpjyjd :
- type == "消防站" ? this.stores.sadianIcon.xfz : type == "高层建筑覆盖" && val.stationType == 1 ? this.stores.sadianIcon.xfdjl :
- type == "高层建筑覆盖" && val.stationType == 2 ? this.stores.sadianIcon.xfdj2 : type == "高层建筑覆盖" && val.stationType == 3 ? this.stores.sadianIcon.xfdj3 :
- type == "高层建筑覆盖" && val.stationType == 4 ? this.stores.sadianIcon.zzd : type == "高层建筑覆盖" && val.stationType == 5 ? this.stores.sadianIcon.jzwxxfz :
- type == "高层建筑覆盖" && val.stationType == 111 ? this.stores.sadianIcon.dian : type == "高层建筑" ? this.stores.sadianIcon.gcggjz :
- type == "专职队" ? this.stores.sadianIcon.zzd : type == "微型消防站" ? this.stores.sadianIcon.jzwxxfz : type == "大型综合体" && val.facilityType == "lhtj" ? this.stores.sadianIcon.lhtj :
- type == "大型综合体" && (val.facilityType == 2 || val.facilityType == 3) ? this.stores.sadianIcon.dxzht : type == "重大火灾隐患" ? this.stores.sadianIcon.lsjq :
- type == "企业消防" && val.facilityType == 13 ? this.stores.sadianIcon.zddw : type == "企业消防" && val.facilityType == 14 ? this.stores.sadianIcon.ybdw :
- type == "社区消防" && val.facilityType == 15 ? this.stores.sadianIcon.zddw : type == "社区消防" && val.facilityType == 16 ? this.stores.sadianIcon.ybdw :
- type == "一级微型消防站" ? this.stores.sadianIcon.yjxfz : type == "街镇专职消防队" ? this.stores.sadianIcon.jzzzxfd : type == "中小学" ? this.stores.sadianIcon.zs : type == "幼儿园" ? this.stores.sadianIcon.yey : type == "其他学校" ? this.stores.sadianIcon.qtxx :
- type == "三合一" ? this.stores.sadianIcon.shy : type == "实时警情" ? this.stores.sadianIcon.ssjq :
- type == "本年度重点事项推进情况" && val.status == 1 ? this.stores.sadianIcon.ywc : type == "本年度重点事项推进情况" && val.status == 2 ? this.stores.sadianIcon.jxz : type == "本年度重点事项推进情况" && val.status == 3 ? this.stores.sadianIcon.zbz :
- type == "高风险" ? this.stores.sadianIcon.gfx : type == "较高风险" ? this.stores.sadianIcon.jgfx : type == "一般风险" ? this.stores.sadianIcon.ybfx : type == "低风险" ? this.stores.sadianIcon.dfx :
-
- this.stores.sadianIcon.trsy,
- // this.jqzhczIcon3 : val.type == "4" ?
- // this.jqzhczIcon4 : val.type == "5" ?
- // this.jqzhczIcon5 : val.type == "消火栓" && val.status == "1" ?
- // this.jqzhczIcon5 : val.type == "消火栓" && val.status == "2" ?
- // this.jqzhczIcon51 : val.type == "天然水源" ?
- // this.jqzhczIcon7 : this.xfzfdtIcon4,
- width: val.type == "国家会展中心" ? 83 : type == "高层建筑覆盖" && val.stationType == 111 ? 7 : type == 111 ? 74 : 19.5,
- height: val.type == "国家会展中心" ? 59 : type == "高层建筑覆盖" && val.stationType == 111 ? 7 : type == 111 ? 66 : 25,
- },
- };
- if (type == "高层建筑覆盖" && val.stationType == 1) {
- arr1.push(val)
- }
- if (type == "高层建筑覆盖" && val.stationType == 2) {
- arr2.push(val)
- }
- if (type == "高层建筑覆盖" && val.stationType == 3) {
- arr3.push(val)
- }
- if (type == "高层建筑覆盖" && val.stationType == 4) {
- arr4.push(val)
- }
- if (type == "高层建筑覆盖" && val.stationType == 5) {
- arr5.push(val)
- }
- return marker;
- } else {
- let marker = {
- id: ind + 1,
- attrbutes: val,
- position: { x: val.gisBaiDuX, y: val.gisBaiDuY, z: 0 },
- image: { url: icon, width: 300, height: 300 },
- };
- return marker;
- }
- });
- if (type == "高层建筑覆盖") {
- if (arr1.length > 0) {
- this.bufferL1(arr1)
- }
- if (arr2.length > 0) {
- this.bufferL2(arr2)
- }
- if (arr3.length > 0) {
- this.bufferL3(arr3)
- }
- if (arr4.length > 0) {
- this.bufferL4(arr4)
- }
- if (arr5.length > 0) {
- this.bufferL5(arr5)
- }
- // this.bufferL(arr)
- }
- //消防水源
- if (pageType == "water-sources") {
- var array = {
- clusterId: 100001,
- clusterData: []
- }
- var target1 = lnglats.map((val, ind) => {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val.gisX) || Number(val.longitude), Number(val.gisY) || Number(val.latitude))
- var x = wgs84[0]
- var y = wgs84[1]
- val.type2 = type
- var array1 = {
- attributes: val,
- position: {
- x: x,
- y: y,
- z: 0,
- },
- image: {
- url: type == "消火栓可用" ? this.stores.sadianIcon.xhs : type == "消火栓不可用" ? this.stores.sadianIcon.xhsH : type == "天然水源" ? this.stores.sadianIcon.trsy : this.stores.sadianIcon.trsy,
- width: 19.5,
- height: 25,
- }
- }
- array.clusterData.push(array1)
- })
- var options = {
- style: { pixelRange: 60 },
- isZoom: true,
- click: this.clusterMapCallBack
- };
- window.jMap.ClusterMap.show(array, options)
- } else {
- //撒点类型
- window.jMap.Locate.pointLocate(target, {
- //撒点
- isZoom: false,
- //animate: { "show": true },
- scaleByDistance: {
- minScaling: 1,
- maxScaling: 1,
- minDistance: 50, //最小距离
- maxDistance: 120000 //最大距离
- },
- click: (val) => {
- //消防执法
- if (pageType == "enforcement-dynamic") {
- if (type == "安全检查单位" || type == "双随机执法单位") {
- this.$axios
- .get(
- this.$api.siaeall.one +
- "?" +
- this.$qs.stringify({
- companyId: val.attrbutes.number,
- companyName: val.attrbutes.name,
- })
- )
- .then((res) => {
- res.data[0].company = val._attrbutes.name;
- res.data[0].streetTown = val._attrbutes.streetTown;
- let arrayList = [{
- title: [res.data[0].company, res.data[0].company ? true : false],
- children: [
- ["单位地址:", res.data[0].companyAddress, 24],
- ["负责人:", res.data[0].linkPerson, 10],
- ["联系电话:", res.data[0].linkPhone, 14],
- ["历史火灾次数:", res.data[0].fireCount, 12],
- ],
- },
- {
- title: ["行政许可情况", res.data[0].processDate && res.data[0].carefullyCheckDate && res.data[0].securityCheckDates],
- children: [
- ["审核时间:", res.data[0].processDate, 12],
- ["验收时间:", res.data[0].carefullyCheckDate, 12],
- ["安检时间:", res.data[0].securityCheckDates, 12],
- ],
- },
- {
- title: ["历史检查情况", res.data[0].inspectCompany && res.data[0].fireHazard && res.data[0].rectificateFireHazard && res.data[0].punishmentDecision && res.data[0].orderThreeStops && res.data[0].correctionNotice && res.data[0].temporarySeizure && res.data[0].penaltyAmount],
- children: [
- ["检查:", res.data[0].inspectCompany + "(家)", 8],
- ["隐患:", res.data[0].fireHazard + "(起)", 8],
- ["整改:", res.data[0].rectificateFireHazard + "(起)", 8],
- ["行罚:", res.data[0].punishmentDecision + "(份)", 8],
- ["三停:", res.data[0].orderThreeStops + "(家)", 8],
- ["责改:", res.data[0].correctionNotice + "(份)", 8],
- ["临封:", res.data[0].temporarySeizure + "(份)", 8],
- ["罚金:", res.data[0].penaltyAmount + "(万元)", 8],
- ],
- },
- {
- title: ["相关火灾情况", res.data[0].fireTime && res.data[0].disposalDuration && res.data[0].burnedArea && res.data[0].fireGrade && res.data[0].mobilizeVehicles && res.data[0].squadron && res.data[0].status && res.data[0].initialFuelType1],
- children: [
- ["报警时间:", res.data[0].fireTime, 12],
- ["处置时长:", res.data[0].disposalDuration, 12],
- ["过火面积:", res.data[0].burnedArea, 12],
- ["火灾等级:", res.data[0].fireGrade, 12],
- ["调动车辆:", res.data[0].mobilizeVehicles + "(辆)", 12],
- ["所属中队:", res.data[0].squadron, 12],
- ["状况:", res.data[0].status, 12],
- ["起火物:", res.data[0].initialFuelType1, 12],
- ],
- },
- ];
- this.popup(val._attrbutes, arrayList, true)
- });
- } else if (type == "举报投诉") {
- let arrayList = [{
- title: [val._attrbutes.name, true],
- children: [
- ],
- }]
- this.popup(val._attrbutes, arrayList, true)
- } else if (type == "执法记录仪") {
- let arrayList = [{
- title: [val._attrbutes.groupName, true],
- children: [
- ["执法人:", val._attrbutes.name, 12],
- ],
- type: type,
- url: val._attrbutes.url,
- },
- ]
- this.popup(val._attrbutes, arrayList, true)
- } else if (type == "重大火灾隐患") {
- let msgParse = JSON.parse(val.attrbutes.extendData)
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["地址:", val.attrbutes.address, 24],
- ["分类等级:", val.attrbutes.address, 24],
- ["基础信息:", msgParse.test1, 24],
- ["消防安全隐患情况:", msgParse.test2, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- } else if (type == "三合一") {
- let msgParse = JSON.parse(val.attrbutes.extendData)
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["单位地址:", val.attrbutes.address.replace("\t", ""), 24],
- ["单位类别:", "三合一九小场所", 24],
- ["单位法人:", val.attrbutes.facilityName.replace("\t", ""), 24],
- ["检查人员姓名:", msgParse.test1, 24],
- ["检查时间:", msgParse.test3, 24],
- ["单位使用性质:", msgParse.test4, 24],
- ["单位所属街道:", msgParse.test8, 24],
- ["消消防安全责任人:", msgParse.test10, 24],
- ["消防安全管理人(联系人):", msgParse.test11, 24],
- ["联系电话(手机):", msgParse.test12, 24],
- ["单位(场所)面积(m²):", msgParse.test17, 24],
- ["地上:", msgParse.test18, 24],
- ["地下:", msgParse.test19, 24],
- ["建筑性质:", msgParse.test21, 24],
- ["建筑结构:", msgParse.test22, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- } else if (type == "本年度重点事项推进情况") {
- let msgParse = JSON.parse(val.attrbutes.extendData)
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["街道名称:", val.attrbutes.streetTown, 24],
- ["地址:", val.attrbutes.address, 24],
- ["状态:", val.attrbutes.status == 1 ? "已完成" : val.attrbutes.status == 2 ? "施工中" : val.attrbutes.status == 3 ? "招标中" : "", 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- //企业自主
- if (pageType == "self-management") {
- if (val.attrbutes.type == "重点单位") {
- this.elementInfo(val.attrbutes, "重点单位")
- } else if (val.attrbutes.type == "大型综合体") {
- let msgParse = JSON.parse(val.attrbutes.extendData)
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["地址:", val.attrbutes.address, 24],
- ["类型:", val.attrbutes.facilityType == 2 ? "5W平大型商业综合体" : val.attrbutes.facilityType == 3 ? "3-5万平大型商业综合体" : "", 24],
- ["平面布局:", msgParse.planeLayout, 24],
- ["用火用电用气管理:", msgParse.fireGasManage, 24],
- ["油烟管道管理:", msgParse.oilFumeManage, 24],
- ["消防设施:", msgParse.fireFacility, 24],
- ["其他安全管理:", msgParse.otherSecurityManage, 24],
- ["合计汇总:", msgParse.totalSummary, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- } else if (val.attrbutes.type == "中小学" || val.attrbutes.type == "幼儿园" || val.attrbutes.type == "其他学校") {
- let msgParse = JSON.parse(val.attrbutes.extendData)
- let phone = val.attrbutes.contactPhone
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["机构简称:", msgParse.test1, 24],
- // ["学校办别:", val.attrbutes.facilityType, 24],
- ["学校类型:", val.attrbutes.type, 24],
- ["所在街镇:", val.attrbutes.streetTown, 24],
- ["地址:", msgParse.address, 24],
- ["法人代表:", val.attrbutes.contact, 24],
- ["手机:", phone.length > 8 ? phone.substring(0, 3) + '****' + phone.substring(phone.length - 3, phone.length) : phone.substring(0, 2) + '***' + phone.substring(phone.length - 3, phone.length), 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- } else {
- let arrayList = [{
- title: ["单位详情", val.attrbutes.companyName ? true : false],
- children: [
- ["单位名称:", val.attrbutes.companyName, 24],
- ["单位类型:", val.attrbutes.companyTypeName, 24],
- ["联系电话:", val.attrbutes.linkPhone, 24],
- ["地址:", val.attrbutes.address, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- //大型安保 、火灾数据分析
- if (pageType == "security-plan" || pageType == "fire-data-analysis") {
- let arrayList = [{
- title: ["案件详情", true],
- children: [
- ["案件编号:", val.attrbutes.ajbh, 24],
- ["案件描述:", val.attrbutes.bcxx, 24],
- ["报警时间:", val.attrbutes.tzsj, 24],
- ["案件类型:", val.attrbutes.ajlx, 24],
- ["警情类别:", type, 24],
- ["警情等级:", val.attrbutes.ajdj, 24],
- ["调动车辆:", val.attrbutes.cdcl, 24],
- ["处置对象:", val.attrbutes.czdx, 24],
- ["主责中队:", val.attrbutes.zhongdui, 24],
- ["案件状态:", val.attrbutes.ajzt, 24],
- ["到场时间:", val.attrbutes.cssj, 24],
- ["控制时间:", val.attrbutes.kzsj, 24],
- ["熄灭时间:", val.attrbutes.xmsj, 24],
- ["返队时间:", val.attrbutes.fdsj, 24],
- ["所属街道:", val.attrbutes.streettown, 24],
- ],
- }, ];
- if (val._attrbutes.type != "国家会展中心") {
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- //消防救援站点
- if (pageType == "rescue-station") {
- if (type == "科普教育基地") {
- let arrayList = [{
- title: [val.attrbutes.type, true],
- children: [
- ["成立时间/联系人:", val.attrbutes.policeTime, 24],
- ["站点地址:", val.attrbutes.alertLevel, 24],
- ["预约电话:", val.attrbutes.address, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- if (type == "消防站" || type == "专职队" || type == "高层建筑覆盖" || type == "高层建筑" || type == "微型消防站" || type == "一级微型消防站" || type == "街镇专职消防队") {
- if (val.attrbutes.stationType == 1 || val.attrbutes.stationType == 2 || val.attrbutes.stationType == 3 || val.attrbutes.stationType == 4) {
- let arrayList = [{
- title: [val.attrbutes.stationName, true],
- children: [
- ["消防站地址:", val.attrbutes.stationAddress, 24],
- ["消防站类型:", val.attrbutes.stationType == 1 ? "一级消防站" : val.attrbutes.stationType == 2 ? "二级消防站" : val.attrbutes.stationType == 3 ? "三级消防站" : val.attrbutes.stationType == 4 ? "专职队" : "", 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- if (val.attrbutes.stationType == 5) {
- let arrayList = [{
- title: [val.attrbutes.streetTown + "微型消防站(" + val.attrbutes.stationCode + '号)', true],
- children: [
- ["地址:", val.attrbutes.stationAddress, 24],
- ["编号:", val.attrbutes.stationCode, 24],
- ["距消防站直线距离:", val.attrbutes.stationAddress, 24],
- ["距消防站行驶距离:", val.attrbutes.driveDistance, 24],
- ["交通拥堵行驶时间:", val.attrbutes.jamDrive, 24],
- ["交通畅通行驶时间:", val.attrbutes.unimpededDrive, 24],
- // ["点位情况:", val.attrbutes.pointSituation, 24],
- ["建筑情况:", val.attrbutes.buildSituation, 24],
- ["车辆停放:", val.attrbutes.vehiclePark, 24],
- ["是否有产证:", val.attrbutes.birthCert, 24],
- ["产证情况:", val.attrbutes.birthCertSituation, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- if (val.attrbutes.stationType == 111 || val.attrbutes.stationType == 112) {
- let arrayList = [{
- title: [val.attrbutes.buildName, true],
- children: [
- ["建筑地址:", val.attrbutes.address, 24],
- ["主要产权人:", val.attrbutes.principalPropertyOwner, 24],
- ["统一社会信用代码:", val.attrbutes.creditCode, 24],
- ["物业服务企业名称:", val.attrbutes.propertyServiceName, 24],
- ["建成年份:", val.attrbutes.completeYear, 24],
- ["建筑高度:", val.attrbutes.buildHigh, 24],
- ["地上建筑层数:", val.attrbutes.aboveFloor, 24],
- ["地下建筑层数:", val.attrbutes.underFloor, 24],
- ["建筑类型:", val.attrbutes.buildType, 24],
- ["功能用途:", val.attrbutes.functionalPurpose, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- if (val.attrbutes.stationType == 17 || val.attrbutes.stationType == 18) {
- let bianhao = JSON.parse(val.attrbutes.extendData).test1
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["编号:", bianhao, 24],
- ["消防站地址:", val.attrbutes.address, 24],
- ["消防站类型:", val.attrbutes.stationType == 17 ? "一级微型消防站" : val.attrbutes.stationType == 18 ? "街镇专职消防队" : "", 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- if (type == "企业消防" || type == "社区消防") {
- let arrayList = [{
- title: [val.attrbutes.facilityName, true],
- children: [
- ["站点地址:", val.attrbutes.address, 24],
- ["站点类型:", val.attrbutes.facilityType == 13 ? "重点单位微站" :
- val.attrbutes.facilityType == 14 ? "一般单位微站" : val.attrbutes.facilityType == 15 ? "居委会微站" : val.attrbutes.facilityType == 16 ? "村委会微站" : "", 24
- ],
- ["街镇:", val.attrbutes.streetTown, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- //警情综合处置
- if (pageType == "comprehensive-disposal") {
- if (type == "实时警情") {
- let arrayList = [{
- title: ["案件详情", true],
- children: [
- ["案件编号:", val.attrbutes.ajbh, 24],
- ["案件描述:", val.attrbutes.bcxx, 24],
- ["报警时间:", val.attrbutes.tzsj, 24],
- ["案件类型:", val.attrbutes.ajlx, 24],
- ["警情类别:", val.attrbutes.type, 24],
- ["警情等级:", val.attrbutes.ajdj, 24],
- ["案发地址:", val.attrbutes.afdz, 24],
- ["调动车辆:", val.attrbutes.cdcl, 24],
- ["处置对象:", val.attrbutes.czdx, 24],
- ["主责中队:", val.attrbutes.zhongdui, 24],
- ["案件状态:", val.attrbutes.cssj, 24],
- ["到场时间:", val.attrbutes.dcsj, 24],
- ["出水时间:", val.attrbutes.cssj, 24],
- ["控制时间:", val.attrbutes.kzsj, 24],
- ["熄灭时间:", val.attrbutes.xmsj, 24],
- ["所属街道:", val.attrbutes.streettown, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- //城市消防体征
- if (pageType == "fire-signs") {
- if (type == "仓库") {
- let arrayList = [{
- title: [val.attrbutes.companyName, true],
- children: [
- ["单位地址:", val.attrbutes.address, 24],
- ["单位类别:", val.attrbutes.companyType, 24],
- ["单位使用性质:", val.attrbutes.companyNature, 24],
- ["单位(法人)名称:", val.attrbutes.delegateName, 24],
- ["统一社会信用代码:", val.attrbutes.socialCode, 24],
- ["所辖派出所:", val.attrbutes.policeStation, 24],
- ["消防安全责任人:", val.attrbutes.fireDutyName, 24],
- ["消防安全管理人:", val.attrbutes.fireManageName, 24],
- ["联系电话(手机):", val.attrbutes.linkPhone, 24],
- ["是否自主消防安全管理:", val.attrbutes.fireSafetyManage, 24],
- ["单位(场所)面积(㎡):", val.attrbutes.companyArea, 24],
- ["行业类别:", val.attrbutes.industryType, 24],
- ["是否为洁净厂房:", val.attrbutes.cleanRoom, 24],
- ["生产经营组织形式:", val.attrbutes.organizationForm, 24],
- ["网格号:", val.attrbutes.gridNo, 24],
- ["年份:", val.attrbutes.particularYear, 24],
- ["提交时间:", val.attrbutes.submitTime, 24],
- ["经度:", val.attrbutes.longitude, 24],
- ["纬度:", val.attrbutes.latitude, 24],
- ],
- }, ];
- this.popup(val._attrbutes, arrayList, true)
- }
- }
- },
- });
- }
- },
- //聚合点击事件
- clusterMapCallBack(clusterPointArr, clickPoint) {
- let val = clusterPointArr.attributes
- if (val.type2 == "消火栓可用" || val.type2 == "消火栓不可用") {
- let arrayList = [{
- title: ["消火栓", true],
- children: [
- ["水源位置:", val.address, 24],
- ["电话:", val.phone, 12],
- ["责任人:", val.dutyPerson, 12],
- ["支队名称:", val.detachmentName, 24],
- ["管辖机构:", val.jurisdictionalAgency, 12],
- ["水源类型:", val.type, 12],
- ["取水形式:", val.getWaterType, 12],
- ["水源性质:", val.waterAdministrative, 12],
- ["供水单位:", val.waterUnit, 24],
- ["水压(Mpa):", val.waterGage, 24],
- ["状态:", val.status == 1 ? "可用" : "不可用", 12],
- ],
- }, ];
- this.popup(val, arrayList, true)
- } else if (type == "天然水源") {
- let arrayList = [{
- title: [val.facilityName, true],
- children: [
- ["水源位置:", val.address, 24],
- ],
- }, ];
- this.popup(val, arrayList, true)
- }
- },
- heatMap(data) {
- let target = []
- if (data.length > 0) {
- for (let i = 0; i < data.length; i++) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(data[i].gisX) || Number(data[i].longitude), Number(data[i].gisY) || Number(data[i].latitude))
- var x = wgs84[0]
- var y = wgs84[1]
- target[i] = []
- target[i].x = x
- target[i].y = y
- }
- }
- let options = {
- style: {
- minOpacity: 0.6,
- maxOpacity: 0.9,
- radius: 50,
- gradient: {
- '.10': 'green',
- '.45': 'yellow',
- '.65': 'orange',
- '.80': 'red'
- }
- },
- isZoom: false
- }
- jMap.HeatMap.show(target, options)
- },
- // 无经纬度创建标点和点击事件
- addMarkerAddress(lnglats) {
- let target = lnglats.map((val, ind) => {
- if (!val.addressId) {
- let addressInfo = window.jMap.queryMphInfo(val.address)[val.address][0];
- return {
- ...val,
- addressId: addressInfo.address_id, // 地址id
- province: addressInfo.province, // 市
- district: addressInfo.district, // 区
- sub_district: addressInfo.sub_district, // 街镇
- streetname: addressInfo.streetname, // 路
- address: addressInfo.address, // 户
- committee: addressInfo.committee, // 居委会
- };
- }
- });
- target = target.reduce((item, next) => {
- !item.some((val) => val.addressId === next.addressId) && item.push(next);
- return item;
- }, []);
- for (let item = 0; item < Math.floor(target.length / 100); item++) {
- setTimeout(() => {
- window.jMap.locateMph(
- target
- .slice(item * 100, (item + 1) * 100)
- .map((val) => val.addressId)
- .join(), {
- isZoom: false,
- scaleByDistance: { minScaling: 0, maxScaling: 1, minDistance: 1000, maxDistance: 30000 },
- click: (value) => {
- this.elementInfo(value, "fire");
- },
- }
- );
- }, 0);
- }
- },
- elementInfo(value, type) {
- let element = "";
- if (type == "重点单位") {
- element = `<div class="ysc-dynamic-layer ys-css3-box" onclick="vue.removePopup">
- <div class="tableTooltip mapTab">
- <div class="tableTitle">
- <div>1212121</div>
- </div>
- </div>
- </div>`;
- }
- this.addMarkerInfo(element, value, type);
- },
- bufferL(val) {
- let target = {
- geometry: [{
- position: [],
- type: 'point'
- }],
- distance: 7000
- }
- for (let i = 0; i < val.length; i++) {
- // var wgs84 = CoordUtil.gcj02towgs84(Number(val.longitude + '0000000' ), Number(val.latitude + '0000000' ))
- // var x = wgs84[0]
- // var y = wgs84[1]
- target.geometry[i] = {
- position: [{ x: Number(val[i].longitude) + '0000000', y: Number(val[i].latitude) + '0000000' }],
- type: 'point'
- }
- // if(val[i].stationType ==7 ){
- // target
- // }
- }
- var options = { callBack: this.bufferCallback };
- jMap.Buffer.generate(target, options);
- },
- bufferL1(val) {
- let target = {
- geometry: [{
- position: [],
- type: 'point'
- }],
- distance: ((Math.sqrt(7 / 3.14) * 1000) / 2).toFixed(0)
- }
- for (let i = 0; i < val.length; i++) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val[i].longitude), Number(val[i].latitude))
- var x = wgs84[0].toFixed(13)
- var y = wgs84[1].toFixed(13)
- target.geometry[i] = {
- position: [{ x: x, y: y }],
- type: 'point'
- }
- }
- var options = { callBack: bufferCallback };
- jMap.Buffer.generate(target, options);
- },
- bufferL2(val) {
- let target = {
- geometry: [{
- position: [],
- type: 'point'
- }],
- distance: ((Math.sqrt(4 / 3.14) * 1000) / 2).toFixed(0)
- }
- for (let i = 0; i < val.length; i++) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val[i].longitude), Number(val[i].latitude))
- var x = wgs84[0].toFixed(13)
- var y = wgs84[1].toFixed(13)
- target.geometry[i] = {
- position: [{ x: x, y: y }],
- type: 'point'
- }
- }
- var options = { callBack: bufferCallback };
- jMap.Buffer.generate(target, options);
- },
- bufferL3(val) {
- let target = {
- geometry: [{
- position: [],
- type: 'point'
- }],
- distance: ((Math.sqrt(2 / 3.14) * 1000) / 2).toFixed(0)
- }
- for (let i = 0; i < val.length; i++) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val[i].longitude), Number(val[i].latitude))
- var x = wgs84[0].toFixed(13)
- var y = wgs84[1].toFixed(13)
- target.geometry[i] = {
- position: [{ x: x, y: y }],
- type: 'point'
- }
- }
- var options = { callBack: bufferCallback };
- jMap.Buffer.generate(target, options);
- },
- bufferL4(val) {
- let target = {
- geometry: [{
- position: [],
- type: 'point'
- }],
- distance: ((Math.sqrt(2 / 3.14) * 1000) / 2).toFixed(0)
- }
- for (let i = 0; i < val.length; i++) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val[i].longitude), Number(val[i].latitude))
- var x = wgs84[0].toFixed(13)
- var y = wgs84[1].toFixed(13)
- target.geometry[i] = {
- position: [{ x: x, y: y }],
- type: 'point'
- }
- }
- var options = { callBack: bufferCallback };
- jMap.Buffer.generate(target, options);
- },
- bufferL5(val) {
- let target = {
- geometry: [{
- position: [],
- type: 'point'
- }],
- distance: ((Math.sqrt(2 / 3.14) * 1000) / 2).toFixed(0)
- }
- for (let i = 0; i < val.length; i++) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(val[i].longitude), Number(val[i].latitude))
- var x = wgs84[0].toFixed(13)
- var y = wgs84[1].toFixed(13)
- target.geometry[i] = {
- position: [{ x: x, y: y }],
- type: 'point'
- }
- }
- var options = { callBack: bufferCallback };
- jMap.Buffer.generate(target, options);
- },
- bufferCallback(result) {
- for (var i in result) {
- var target = {
- id: i,
- position: CoordUtil.arrayToJson(result[i].rings[0]) // 二维坐标数组转JSON数组,详见三中
- };
- var options = {
- style: {
- color: 'red',
- transparency: 0.6,
- }
- }
- // if (result[i].stationType == 1) {
- // options.style.color = '#f80000',
- // options.style.transparency = 0.6
- // }
- // if (result[i].stationType == 2) {
- // options.style.color = '#f88c00',
- // options.style.transparency = 0.6
- // }
- // if (result[i].stationType == 3) {
- // options.style.color = '#0092f8',
- // options.style.transparency = 0.6
- // }
- jMap.Locate.regionLocate(target, options)
- }
- },
- bufferCallback1(result) {
- for (var i in result) {
- var target = {
- id: i,
- position: CoordUtil.arrayToJson(result[i].rings[0]) // 二维坐标数组转JSON数组,详见三中
- };
- jMap.Locate.regionLocate(target, {
- style: {
- color: '#f80000',
- transparency: 0.6,
- }
- })
- }
- },
- bufferCallback2(result2) {
- for (var i in result2) {
- var target = {
- id: i,
- position: CoordUtil.arrayToJson(result2[i].rings[0]) // 二维坐标数组转JSON数组,详见三中
- };
- jMap.Locate.regionLocate(target, {
- isZoom: true,
- style: {
- color: '#f88c00',
- transparency: 0.6,
- }
- })
- }
- },
- bufferCallback3(result3) {
- for (var i in result3) {
- var target = {
- id: i,
- position: CoordUtil.arrayToJson(result3[i].rings[0]) // 二维坐标数组转JSON数组,详见三中
- };
- jMap.Locate.regionLocate(target, {
- style: {
- color: '#0092f8',
- transparency: 0.6,
- }
- })
- }
- },
- addMarkerInfo(element, value, type, isBtn = false) {
- var wgs84 = CoordUtil.gcj02towgs84(Number(value.gisX) || Number(value.longitude), Number(value.gisY) || Number(value.latitude))
- var x = wgs84[0]
- var y = wgs84[1]
- let _this = this
- // window.jMap.Popup && window.jMap.Popup.hide([this.oldPopup && this.oldPopup.id]);
- if (this.oldPopup && value.id === this.oldPopup.id) {
- window.jMap.Popup.hide();
- return (this.oldPopup = null);
- }
- if (type == "selfManagement" || type == "water") {
- window.jMap.Popup.show({
- id: value.id,
- //position: value.wgs84position, //使用自定义窗体
- position: { x: x, y: y }, //使用自定义窗体
- element: element,
- }, { isZoom: false, offset: [0, -40] });
- }
- if (type == "重点单位") {
- _this.stores.zddwIdSD(value.companyId);
- // localStorage.setItem("zddw",)
- // window.jMap.Popup.show({
- // // position: { x: value.gisX, y: value.gisY }, //使用自定义窗体
- // position: { x: x, y: y }, //使用自定义窗体
- // element: element,
- // }, { isZoom: 100, offset: [0, -40] });
- }
- // if (!isBtn) {
- // window.jMap.goTo({
- // x: Number(value.wgs84position.x),
- // y: Number(value.wgs84position.y),
- // radius: 1000,
- // }, {
- // duration: 3,
- // offset: {
- // heading: -4,
- // pitch: -70,
- // range: 0,
- // },
- // });
- // window.jMap.Buffer.generate({
- // geometry: [{ position: [{ x: Number(value.wgs84position.x), y: Number(value.wgs84position.y) }], type: "point" }],
- // distance: 1000,
- // }, {
- // callBack: (el) => {
- // for (const i in el) {
- // var target = {
- // id: i,
- // position: CoordUtil.arrayToJson(el[i].rings[0]),
- // };
- // }
- // window.jMap.Locate.regionLocate(target, {
- // style: {
- // color: "rgba(235, 98, 98, .1)",
- // transparency: 0.3,
- // },
- // });
- // },
- // });
- // }
- this.oldPopup = value;
- },
- removePopup(e) {
- },
- /**
- *
- *气泡窗
- */
- popup(data, arrayList, type, other) {
- if (type) {
- if (!other) {
- var html = document.createElement('div');
- html.className = 'ysc-dynamic-layer ys-css3-box';
- var line = document.createElement('div');
- line.className = 'line';
- var main = document.createElement('div');
- main.className = 'main';
- main.setAttribute('style', 'position: absolute;top:50%;max-height:500px;overflow-y: scroll;background:none;width:400px;bottom:auto; padding:10px 10px 5px 0 !important; border-radius: 0.05rem;border:1px solid rgba(115, 251, 253, 1);box - shadow: inset 0 0 1px 0.0125rem rgba(115, 251, 253, 1); background:rgba(0, 0, 0, 0.6)');
- var click = document.createElement('div');
- click.setAttribute('style', 'float: right;width: 13px;height: 13px;position: absolute;top:8px;right:16px;cursor: pointer');
- var img = document.createElement('img');
- img.className = 'click';
- img.setAttribute("src", this.stores.sadianIcon.close);
- img.setAttribute("style", 'width: 20px;height: 20px;')
- click.appendChild(img)
- var contain = document.createElement('div');
- contain.setAttribute('style', 'margin-left: 3%;right:50px;top:30px;padding: 0px 0 ');
- if (arrayList[0].title[1]) {
- var p = document.createElement('div');
- p.setAttribute('style', 'font-size:18px;color:#73fbfd;line-height:25px');
- p.innerHTML = arrayList[0].title[0]
- contain.appendChild(p)
- }
- for (let i = 0; i < arrayList[0].children.length; i++) {
- if (arrayList[0].children[i][1]) {
- let textWrap = document.createElement('div');
- textWrap.setAttribute('style', 'font-size:14px;color:#fff;line-height:25px;');
- let p1 = document.createElement('span');
- p1.setAttribute('style', 'color:#73fbfd;');
- p1.innerHTML = arrayList[0].children[i][0]
- let p2 = document.createElement('span');
- p2.setAttribute('style', 'color:#fff;word-break:break-all !important');
- p2.innerHTML = arrayList[0].children[i][1]
- textWrap.appendChild(p1)
- textWrap.appendChild(p2)
- contain.appendChild(textWrap)
- }
- }
- setTimeout(() => {
- main.appendChild(click)
- main.appendChild(contain)
- html.appendChild(line)
- html.appendChild(main)
- let text = html.innerHTML.replace(/"click"/g, '"click" onclick="vue.popup(false, false, false)"')
- var wgs84 = CoordUtil.gcj02towgs84(Number(data.gisX) || Number(data.longitude), Number(data.gisY) || Number(data.latitude))
- var x = wgs84[0]
- var y = wgs84[1]
- var target = {
- id: '100001',
- position: { x: x, y: y, z: 0 },
- element: `<div class="ysc-dynamic-layer ys-css3-box" style="">${text}</div>`
- };
- var options = {
- // isZoom: true,
- offset: [-6, -275]
- };
- jMap.Popup.show(target, options);
- }, 10)
- } else {
- }
- } else {
- jMap.Popup.hide();
- }
- },
- }
- }
|