Compare commits
13 Commits
920fecc9a7
...
2025-10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b396686b61 | ||
|
|
1a0a42c5a5 | ||
|
|
980d5a22b3 | ||
|
|
0ffc0cd01e | ||
|
|
079263ed38 | ||
|
|
859d890434 | ||
|
|
1c365c0585 | ||
|
|
7769c8db01 | ||
|
|
c244b5b137 | ||
|
|
cff1867dae | ||
|
|
d712f683b3 | ||
|
|
98b9bbce0d | ||
|
|
da63aa8abe |
2
.gitignore
vendored
@@ -11,6 +11,8 @@ node_modules
|
||||
dist
|
||||
|
||||
offline
|
||||
# tiles
|
||||
# tiles1
|
||||
dist-ssr
|
||||
*.local
|
||||
# Editor directories and files
|
||||
|
||||
9401
public/plugin/offline/api2.0.js
Normal file
10314
public/plugin/offline/api3.0.js
Normal file
BIN
public/plugin/offline/images/Mario.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/plugin/offline/images/blank.gif
Normal file
|
After Width: | Height: | Size: 49 B |
BIN
public/plugin/offline/images/circle.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/plugin/offline/images/closedhand.cur
Normal file
|
After Width: | Height: | Size: 326 B |
BIN
public/plugin/offline/images/copyright_logo.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
public/plugin/offline/images/iw3.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
public/plugin/offline/images/iw_close1d3.gif
Normal file
|
After Width: | Height: | Size: 73 B |
BIN
public/plugin/offline/images/iw_minus.gif
Normal file
|
After Width: | Height: | Size: 73 B |
BIN
public/plugin/offline/images/iw_plus.gif
Normal file
|
After Width: | Height: | Size: 76 B |
BIN
public/plugin/offline/images/iw_plus1d3.gif
Normal file
|
After Width: | Height: | Size: 59 B |
BIN
public/plugin/offline/images/iws3.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
public/plugin/offline/images/m0.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
public/plugin/offline/images/m1.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/plugin/offline/images/m2.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
public/plugin/offline/images/m3.png
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
BIN
public/plugin/offline/images/m4.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
public/plugin/offline/images/mapctrls1d3.gif
Normal file
|
After Width: | Height: | Size: 899 B |
BIN
public/plugin/offline/images/mapctrls2d0.gif
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
public/plugin/offline/images/mapctrls2d0.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
public/plugin/offline/images/marker_red_hd.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/plugin/offline/images/marker_red_sprite.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
public/plugin/offline/images/node.gif
Normal file
|
After Width: | Height: | Size: 61 B |
BIN
public/plugin/offline/images/openhand.cur
Normal file
|
After Width: | Height: | Size: 326 B |
BIN
public/plugin/offline/images/panorama/close.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
public/plugin/offline/images/panorama/indoor_exit.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/plugin/offline/images/phone.png
Normal file
|
After Width: | Height: | Size: 983 B |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
BIN
public/plugin/offline/images/quanjing.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
public/plugin/offline/images/ruler.cur
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
public/plugin/offline/images/stop_icon.png
Normal file
|
After Width: | Height: | Size: 363 B |
1
public/plugin/offline/modules/autocomplete_punr3o.js
Normal file
1
public/plugin/offline/modules/buslinesearch_vxmb31.js
Normal file
1
public/plugin/offline/modules/canvablepath_dia5aw.js
Normal file
1
public/plugin/offline/modules/citylistcontrol_ms3ahy.js
Normal file
1
public/plugin/offline/modules/clayer_0hwrfx.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('clayer', 'z.extend(nb.prototype,{cl:{},Bj:[],Pu:"",jq:"",MG:"",dl:s,Jg:s,Ig:s,Hg:[],LG:0,pz:u(),lz:u(),Ku:u(),Sd:function(){this.UG()},na:function(a,b){Mc.prototype.na.call(this,a,b);this.cl={};this.Bj=[];this.B=a;this.UG()},zt:ca(q),remove:function(){Mc.prototype.remove.call(this);this.fU()},UG:function(){var a=this,b=a.B;b&&(this.pz=function(b){a.yT(b)},this.lz=function(b){a.XS(b)},this.Ku=function(b){a.WS(b)},b.addEventListener("mousemove",this.pz),b.addEventListener("onhotspotover",this.lz),b.addEventListener("onhotspotout", this.Ku),b.addEventListener("onzoomstart",this.Ku))},fU:function(){var a=this.B;a&&(a.removeEventListener("mousemove",this.pz),a.removeEventListener("onhotspotover",this.lz),a.removeEventListener("onhotspotout",this.Ku))},yT:function(a){var b=this,c=b.B,e=c.oa();if(c.fa()<this.gc||c.Sb())b.xB();else if(a=e.wm().kh(a.point),e=e.$c(),a=new Q(Math.floor(a.x*Math.pow(2,c.fa()-18)),Math.floor(a.y*Math.pow(2,c.fa()-18))),e=new Q(Math.floor(a.x/e),Math.floor(a.y/e)),this.jq=c=e.x+"_"+e.y+"_"+c.fa(),this.cl[c]){if(this.Pu!= c){b.xB();b.TG(this.cl[c]);this.Pu=c;for(var e=-1,a=0,f=this.Bj.length;a<f;a++)if(c==this.Bj[a]){e=a;break}0<=e&&(this.Bj.splice(e,e),this.Bj.push(c))}}else if(this.MG!=c){this.MG=c;e=Wc[parseInt(Math.random()*Wc.length)];a=b.ub;c=e+"/data?grids="+c+"&q="+a.Wm+"&tags="+a.pu+"&filter="+a.filter+"&sortby="+a.Vy+"&ak="+a.Vl+"&page_size="+a.ON+"&age="+a.Gw;b.Cf?c+="&geotable_id="+b.Cf:b.Rn&&(c+="&databox_id="+b.Rn);var g=(1E5*Math.random()).toFixed(0);!B._rd&&(B._rd={});B._rd["_cbk"+g]=function(a){b.PS(a); delete B._rd["_cbk"+g]};oa(c+("&callback=BMap._rd._cbk"+g))}},PS:function(a){var b=this.B,c=a.content;if(!(a.status!=this.LG||!c||1>c.length)){for(var a=[],e=c[0].data,b=b.oa().wm(),f=0,g=e.length;f<g;f++){var i=e[f][2].replace(nb.tU,"").split(","),i=b.nh(new J(i[0],i[1]));a.push({pt:i,userdata:{name:e[f][0]||"name",size:e[f][4]?e[f][4].split("|"):[10,13],uid:e[f][1]||"",BO:e[f][3]||"sid1"}})}c=c[0].grid.join("_");this.cl[c]=a;this.Bj.push(c);30<this.Bj.length&&(c=this.Bj.shift(),delete this.cl[c], delete c);this.Pu!=this.jq&&(this.xB(),this.cl[this.jq]&&(this.TG(this.cl[this.jq]),this.Pu=this.jq))}},TG:function(a){for(var b=this.B,c=0,e=a.length;c<e;c++){var f=a[c].userdata.size,g=f[0]/2,f=f[1]/2,g=new ib(a[c].pt,{offsets:[f,g,f,g],userData:a[c].userdata});b.Cw(g,this.ub.Fk)}},xB:function(){this.B.dm(this.ub.Fk)},XS:function(a){if(a.spots&&!(1>a.spots.length||a.spots[0].tag!=this.ub.Fk)){this.Hg=a.spots;var b=this,a=this.Hg[0].getUserData().size[0],c="",e=b.B,f="",g=b.ub.eZ;0<this.Hg.length&& (c=this.Hg[0].getUserData().name);if(this.Jg)this.Jg.sa(this.Hg[0].ga()),this.Ig.dd(c),this.Ig.Ze(new O(a,0)),this.Jg.show(),c?this.Ig.show():this.Ig.U();else{var i=this.Hg[0].getUserData().size,f=this.Hg[0].getUserData().BO,k=this.Cf||this.Rn;this.dl=new qc(G.qa+"blank.gif",new O(i[0],i[1]),{anchor:new O(i[0]/2+1,i[1]/2+1)});this.GS(k,f,function(){b.Jg&&b.Jg.Rb(b.dl)});this.Jg=new U(this.Hg[0].ga(),{icon:this.dl,enableMassClear:t});e.Ga(this.Jg);this.Ig=new uc(c,{offset:new O(a,0)});this.Ig.Md({backgroundColor:g.backgroundColor, borderColor:g.borderColor});this.Jg.dn(this.Ig);c?this.Ig.show():this.Ig.U();this.Jg.addEventListener("onclick",function(){if(!(b.Hg.length<1)&&b.Hg[0].getUserData().uid){var a=b.ub,c=a.BY;if(b.Cf)c=a.CY;a=c+b.Hg[0].getUserData().uid+"?scope=2&ak="+a.Vl;b.Cf&&(a=a+("&geotable_id="+b.Cf));var e=(Math.random()*1E5).toFixed(0);!B._rd&&(B._rd={});B._rd["_cbk"+e]=function(a){b.FS(a);delete B._rd["_cbk"+e]};oa(a+("&callback=BMap._rd._cbk"+e))}})}}},FS:function(a){var b=a.content;this.Cf&&(b=a.contents[0]); if(a&&a.status==this.LG&&b){var a={poiId:b.uid||"",databoxId:b.databox_id||"",title:this.Cf?b.title:b.name,address:this.Cf?b.address:b.addr,phoneNumber:b.tel||"",postcode:b.zip||"",provinceCode:1*b.province_id||-1,province:b.province||"",cityCode:1*b.city_id||-1,city:b.city||"",districtCode:1*b.district_id||-1,district:b.district||"",point:this.Cf?new J(b.location[0],b.location[1]):new J(b.longitude,b.latitude),tags:b.tag&&b.tag.replace(nb.wU,"").split(nb.uU),typeId:1*b.cla||-1,extendedData:b.ext|| {}},c=new z.lang.Ju("onhotspotclick");c.customPoi=a;c.content=b;this.dispatchEvent(c)}},WS:function(){this.Jg&&this.Jg.U();this.Ig&&this.Ig.U()},GS:function(a,b,c){var e=this,f=Xc+"?method=getstyle&databox="+a+"&sid="+b,g=(1E5*Math.random()).toFixed(0);if(!e.dl||!(e.dl.databoxid==a&&e.dl.sid==b))!B._rd&&(B._rd={}),B._rd["_cbk"+g]=function(a){var b="";0==a.status&&(b="data:image/png;base64,"+a.content.sid1);0<b.length&&(e.dl.mO(b),c&&c(a));delete B._rd["_cbk"+g]},oa(f+("&callback=BMap._rd._cbk"+g))}}); ');
|
||||
1
public/plugin/offline/modules/common_wkrfcz.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('common', 'z.cookie=z.cookie||{};z.cookie.oI=function(a){return RegExp(\'^[^\\\\x00-\\\\x20\\\\x7f\\\\(\\\\)<>@,;:\\\\\\\\\\\\"\\\\[\\\\]\\\\?=\\\\{\\\\}\\\\/\\\\u0080-\\\\uffff]+$\').test(a)};z.cookie.cY=function(a){return z.cookie.oI(a)&&(a=RegExp("(^| )"+a+"=([^;]*)(;|$)").exec(document.cookie))?a[2]||s:s};z.cookie.get=function(a){a=z.cookie.cY(a);return"string"==typeof a?a=decodeURIComponent(a):s}; z.cookie.vO=function(a,b,c){if(z.cookie.oI(a)){var c=c||{},e=c.qx;"number"==typeof c.qx&&(e=new Date,e.setTime(e.getTime()+c.qx));document.cookie=a+"="+b+(c.path?"; path="+c.path:"")+(e?"; expires="+e.toGMTString():"")+(c.domain?"; domain="+c.domain:"")+(c.i5?"; secure":"")}};z.cookie.set=function(a,b,c){z.cookie.vO(a,encodeURIComponent(b),c)};z.cookie.remove=function(a,b){b=b||{};b.qx=new Date(0);z.cookie.vO(a,"",b)};z.xt=function(a){return/\\d{11}/.test(a)};z.TY=function(a){return/\\d{4}/.test(a)}; z.is=function(){function a(a){a=a.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,function(a,b,c,e){return b+b+c+c+e+e});return(a=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(a))?"rgb("+parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)+")":s}var b={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887", cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3", deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6", lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee", mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6", purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}, c={hex:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,rgb:/rgb\\(\\s*(\\d|\\d\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\s*,\\s*(\\d|\\d\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\s*,\\s*(\\d|\\d\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\s*\\)/,rgba:/rgba\\(\\s*(\\d|\\d\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\s*,\\s*(\\d|\\d\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\s*,\\s*(\\d|\\d\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\s*,\\s*(0|1|0\\.[1-9])\\s*\\)/};return{cK:function(a){if(c.hex.test(a))return a;if(c.rgb.test(a))return a=a.match(c.rgb),"#"+("0"+parseInt(a[1],10).toString(16)).slice(-2)+("0"+parseInt(a[2],10).toString(16)).slice(-2)+ ("0"+parseInt(a[3],10).toString(16)).slice(-2);if(b[a])return b[a]},S3:a,x2:function(a){return c.hex.test(a)?a:b[a]?b[a]:"#000"},AC:function(e,f){f===l&&(f=1);if(c.rgba.test(e))return e;"undefined"!=typeof b[e.toLowerCase()]&&(e=b[e.toLowerCase()]);c.hex.test(e)&&(e=a(e));c.rgb.test(e)?(e=e.replace(/rgb/g,"rgba"),e=e.replace(/\\)/,","+f+")")):e="rgba(0,0,0,1)";return e}}}(); ');
|
||||
1
public/plugin/offline/modules/control_hlzh1t.js
Normal file
1
public/plugin/offline/modules/convertor_d0ze2w.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('convertor', 'z.extend(lc.prototype,{qQ:function(){for(var a=0,b=this.Pa.length;a<b;a++){var c=this.Pa[a];this[c.method].apply(this,c.arguments)}delete this.Pa},translate:function(a,b,c,e){b=b||1;c=c||5;if(10<a.length)e&&e({status:25});else{var f=B.Wc+"geoconv/v1/?coords=";z.Fb(a,function(a){f+=a.lng+","+a.lat+";"});f=f.replace(/;$/gi,"");f=f+"&from="+b+"&to="+c+"&ak="+qa;oa(f,function(a){if(0===a.status){var b=[];z.Fb(a.result,function(a){b.push(new B.Point(a.x,a.y))});delete a.result;a.points=b}e&&e(a)})}}}); ');
|
||||
1
public/plugin/offline/modules/coordtrans_lmf5kv.js
Normal file
1
public/plugin/offline/modules/coordtransutils_d33qf1.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('coordtransutils', 'z.extend(eb,{AV:function(a,b,c){var e=S.Eb(a),a=b.fc,e=kc.ZD(b.Ub||"bj",e),e=new J(e.x,e.y),f=b.fa(),f=b.oa().dc(f),b=b.cb(),b=new Q(Math.round((e.lng-a.lng)/f+b.width/2),Math.round((a.lat-e.lat)/f+b.height/2));c&&c(b)},zV:function(a,b,c){var e=b.fa(),e=b.oa().dc(e),f=b.cb(),g=b.fc,b=b.Ub,a=new J(g.lng+e*(a.x-f.width/2),g.lat-e*(a.y-f.height/2)),a=kc.XD(b||"bj",a),a=new J(a.lng,a.lat),a=S.Tb(a);c&&c(a)}}); ');
|
||||
1
public/plugin/offline/modules/copyrightctrl_gmc2ps.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('copyrightctrl', 'z.extend($b.prototype,{zf:function(){this.B&&this.He(this.B)},initialize:function(a){Vb.prototype.initialize.call(this,a);this.Aa();this.uo();this.ba(a);return this.C},ba:function(a){var b=this;a.addEventListener("load",function(){b.uo()});a.addEventListener("moveend",function(){b.uo()});a.addEventListener("zoomend",function(){b.uo()});a.addEventListener("maptypechange",function(){b.C&&(b.C.style.color=b.B.oa().zm())})},Aa:function(){Vb.prototype.Aa.call(this);z.D.Ua(this.C,"BMap_cpyCtrl");var a= this.C.style;a.cursor="default";a.whiteSpace="nowrap";a.MozUserSelect="none";a.color=this.B.oa().zm();a.background="none";a.font="11px/15px "+G.fontFamily;Vb.prototype.Nr.call(this)},uo:function(){if(this.B&&this.C&&0!=this.cc.length)for(var a=0,b=this.cc.length;a<b;a++){this.B.fa();var c=this.B.xb({x:0,y:0}),e=this.B.xb({x:this.B.width,y:this.B.height}),c=new fb(c,e);if(this.cc[a].bounds&&c.ot(this.cc[a].bounds)==s){if(this.C)for(e=0;e<this.C.children.length;e++)if(this.C.children[e].getAttribute("_cid")== this.cc[a].id&&"none"!=this.C.children[e].style.display){this.C.children[e].style.display="none";return}}else if(this.C){for(var c=t,e=0,f=this.C.children.length;e<f;e++)if(this.C.children[e].getAttribute("_cid")==this.cc[a].id){c=q;this.C.children[e].style.display="inline";this.C.children[e].innerHTML!=this.cc[a].content&&(this.C.children[e].innerHTML=this.cc[a].content);break}c||this.Uq(this.cc[a])}}},Bw:function(a){if(a&&Wa(a.id)&&!isNaN(a.id)){var b={bounds:s,content:""},c;for(c in a)b[c]=a[c]; if(a=this.pm(a.id))for(var e in b)a[e]=b[e];else this.cc.push(b);this.uo()}},pm:function(a){for(var b=0,c=this.cc.length;b<c;b++)if(this.cc[b].id==a)return this.cc[b]},PD:w("cc"),qF:function(a){for(var b,c=0,e=this.cc.length;c<e;c++)this.cc[c].id==a&&(b=this.cc.splice(c,1),c--,e=this.cc.length);(a=this.Jd(a))&&a.parentNode&&a.parentNode.removeChild(a);this.uo();return b},Uq:function(a){this.C&&(this.C.innerHTML+="<span _cid=\'"+a.id+"\'>"+a.content+"</span>")},Jd:function(a){var b=Vb.prototype.Jd.call(this); if(Hb(a)){if(b)for(var c=0,e=b.children.length;c<e;c++)if(b.children[c].getAttribute("_cid")==a)return b.children[c]}else return b}});T(wf,{addCopyright:wf.Bw,removeCopyright:wf.qF,getCopyright:wf.pm,getCopyrightCollection:wf.PD}); ');
|
||||
1
public/plugin/offline/modules/draw_jb4osz.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('draw', 'function Ag(){}var Bg=Ag.prototype;Bg.IF=u();Bg.Ao=function(){aa("addLine\\u63a5\\u53e3\\u6ca1\\u6709\\u5b9e\\u73b0")};Bg.setAttribute=function(){aa("setAttribute\\u63a5\\u53e3\\u6ca1\\u6709\\u5b9e\\u73b0")};Bg.ke=function(){aa("setPath\\u63a5\\u53e3\\u6ca1\\u6709\\u5b9e\\u73b0")};Bg.ip=w("Mb");B.jz=Ag; ');
|
||||
1
public/plugin/offline/modules/drawbycanvas_ufwkvb.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('drawbycanvas', 'function Gg(a){this.B=a;this.NQ={strokeweight:"lineWidth",strokecolor:"strokeStyle",fillcolor:"fillStyle",strokeopacity:"globalAlpha",fillopacity:"globalAlpha"};this.Mb="canvas"}Gg.prototype=new B.jz;var Hg=Gg.prototype;Hg.Ao=function(){if(!this.canvas||this.canvas&&!zb(this.canvas)){var a=this.canvas=L("canvas");this.B.Tf().Et.appendChild(a);a.style.position="absolute";a=a.getContext("2d");a.lineCap="round";a.lineJoin="round";a.save();this.zU(this.canvas)}return this.canvas}; Hg.ke=function(a,b,c){if(a&&0!==b[0].length){var e=a.getContext("2d");this.sa(a);var f=parseInt(a.style.top),g=parseInt(a.style.left);e.beginPath();z.mc.Fb(b,function(a){if(0!==a.length){e.moveTo(a[0].x-g,a[0].y-f);for(var b=1,c=a.length;b<c;b++)e.lineTo(a[b].x-g,a[b].y-f)}});this.FR(a,c);"dashed"===c.strokeStyle&&this.HR(e,b,g,f,c)}}; Hg.HR=function(a,b,c,e,f){var g=this;a.beginPath();z.mc.Fb(b,function(b){if(0!==b.length){for(var k=[],m=0,n=b.length;m<n;m++)k.push({x:b[m].x-c,y:b[m].y-e});a.strokeStyle=f.strokeColor||"#3a6bdb";g.GR(a,k,{lineWidth:f.rc||5,interval:2*f.rc||10,lineLength:2*f.rc||10,strokeStyle:g.JS(a.strokeStyle,f.td)})}})}; Hg.GR=function(a,b,c){for(var c=c||{},e=c.Wx||10,f=c.lineWidth||5,g=c.m4||10,c=c.strokeStyle||"#3a6bdb",i=b.length-1,k=0,m=g+e,n=0,o=0;o<i;o++)var p=b[o].x,v=b[o].y,x=b[o+1].x,y=b[o+1].y,n=n+Math.sqrt((x-p)*(x-p)+(y-v)*(y-v));if(n<g)a.strokeStyle=c,a.lineWidth=f,a.lineJoin="round",a.lineCap="round",a.beginPath(),a.moveTo(b[0].x,b[0].y),a.lineTo(b[i].x,b[i].y),a.stroke();else for(n=0;n<i;n++){var p=b[n].x,v=b[n].y,x=b[n+1].x,y=b[n+1].y,o=Math.sqrt((x-p)*(x-p)+(y-v)*(y-v))+k+g,A=m-Math.abs(k);if(k<= m){var E=parseInt(o/m),C=e*(x-p)/o,F=e*(y-v)/o;xMove=g*(x-p)/o;yMove=g*(y-v)/o;startX=p+A*(x-p)/o;startY=v+A*(y-v)/o;tailX=p+(g-Math.abs(k))*(x-p)/o;tailY=v+(g-Math.abs(k))*(y-v)/o;a.beginPath();a.strokeStyle=c;a.lineJoin="round";a.lineCap="round";a.lineWidth=f;D?a.moveTo(D,I):a.moveTo(p,v);0>=k&&a.lineTo(p,v);a.lineTo(tailX,tailY);a.moveTo(startX,startY);D=0;for(I=2*E;D<I;D++)if(D%2)startX+=C,startY+=F,a.moveTo(startX,startY);else{startX+=xMove;startY+=yMove;if(0>(x-startX)*xMove)break;a.lineTo(startX, startY)}a.stroke()}var k=parseInt(o-m*E)-g,D=x-Math.abs(k)*(x-p)/o,I=y-Math.abs(k)*(y-v)/o;n===i-1&&0<k&&(a.beginPath(),a.strokeStyle=c,p=x-k*(x-p)/o,leftY=y-k*(y-v)/o,k<=g?(a.moveTo(p,leftY),a.lineTo(x,y)):(a.moveTo(p,leftY),a.moveTo(p+xMove,leftY+yMove)),a.stroke())}}; Hg.JS=function(a,b){if(4===a.length)var c=parseInt(a.substr(1,1)+a.substr(1,1),16),e=parseInt(a.substr(2,1)+a.substr(2,1),16),f=parseInt(a.substr(3,1)+a.substr(3,1),16);else c=parseInt(a.substr(1,2),16),e=parseInt(a.substr(3,2),16),f=parseInt(a.substr(5,2),16);return c="rgba("+c+","+e+","+f+","+b+")"};Hg.setAttribute=function(a,b,c){if(a){var e=a.getContext("2d"),f=this.Wq(b);try{e[f]=c}catch(g){}a.setAttribute("_"+b,c||"");e.save()}};Hg.Wq=function(a){return this.NQ[a]||a}; Hg.zU=function(a){var b=this.B,c=b.K.lx,e=b.width+2*c,f=b.height+2*c,g=-b.offsetX-c,b=-b.offsetY-c,c=a.getContext("2d"),i={strokeStyle:c.strokeStyle,fillStyle:c.fillStyle,globalAlpha:c.globalAlpha,lineWidth:c.lineWidth,lineCap:"round",lineJoin:"round"};a.setAttribute("width",e);a.setAttribute("height",f);for(var k in i)c[k]=i[k];c.save();a=a.style;a.top=b+"px";a.left=g+"px"};Hg.XQ=function(a){a.clearRect(0,0,9999,9999)}; Hg.FR=function(a,b){var c=a.getContext("2d");c.globalAlpha=a.getAttribute("_fillopacity");0!==c.globalAlpha&&a.getAttribute("_fillcolor")&&c.fill();c.globalAlpha=a.getAttribute("_strokeopacity");0!==c.globalAlpha&&(a.getAttribute("_strokecolor")&&"dashed"!==b.strokeStyle)&&c.stroke()};Hg.sa=function(a){var b=this.B,c=b.K.lx,e=-b.offsetX-c,a=a.style;a.top=-b.offsetY-c+"px";a.left=e+"px"};B.zP=Gg; ');
|
||||
1
public/plugin/offline/modules/drawbysvg_vxyn51.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('drawbysvg', 'function Cg(a){this.B=a;this.NG="http://www.w3.org/2000/svg";this.TU={strokeweight:"stroke-width",strokecolor:"stroke",fillcolor:"fill",strokeopacity:"stroke-opacity",fillopacity:"fill-opacity",strokestyle:"stroke-dasharray"};this.hf=this.Zz();this.Mb="svg"}Cg.prototype=new B.jz;var Dg=Cg.prototype; Dg.Zz=function(){var a=this.hf=L("svg",{},this.NG);a.setAttribute("version","1.1");a.setAttribute("type","system");a.style.position="absolute";this.IF();this.B.Tf().Et.appendChild(a);z.M(a,H()?"touchstart":"mousedown",Cb);return a}; Dg.IF=function(){if(this.hf){var a=this.hf,b=this.B,c=b.K.lx,e=b.width+2*c,f=b.height+2*c,g=-b.offsetX-c,b=-b.offsetY-c;this.setAttribute(a,"x",e+"px");this.setAttribute(a,"y",f+"px");this.setAttribute(a,"viewBox",g+" "+b+" "+e+" "+f);a=a.style;a.top=b+"px";a.left=g+"px";a.width=e+"px";a.height=f+"px"}};Dg.H3=w("hf");Dg.setAttribute=function(a,b,c,e){if(a)return"strokestyle"==b&&(c="solid"==c?0:2*e),a.setAttributeNS(s,this.Wq(b),c||"none"),a};Dg.Wq=function(a){return this.TU[a]||a}; Dg.Ao=function(){var a=L("path",{},this.NG);this.setAttribute(a,"stroke-linejoin","round");this.setAttribute(a,"stroke-linecap","round");this.setAttribute(a,"fill-rule","evenodd");this.hf.appendChild(a);return a};Dg.ke=function(a,b){var c=this.tA(b)||"M -9999,-9999";this.setAttribute(a,"d",c)};Dg.tA=function(a){if(0==a.length)return"";var b=[];z.mc.Fb(a,function(a){if(!(2>a.length)){b.push("M "+a[0].x+" "+a[0].y+" L");for(var e=1,f=a.length;e<f;e++)b.push(a[e].x),b.push(a[e].y)}});return b.join(" ")}; B.ZP=Cg; ');
|
||||
1
public/plugin/offline/modules/drawbyvml_whxmqq.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('drawbyvml', 'function Eg(a){this.B=a;this.dV={strokeweight:"weight",strokecolor:"color",fillcolor:"color",strokeopacity:"opacity",fillopacity:"opacity",strokestyle:"dashstyle"};this.Mb="vml"}Eg.zK={orange:"#ffa500"};Eg.prototype=new B.jz;var Fg=Eg.prototype; Fg.setAttribute=function(a,b,c){a&&(0==b.indexOf("stroke")?a=a.getElementsByTagName("stroke")[0]:0==b.indexOf("fill")&&(a=a.getElementsByTagName("fill")[0]),0<b.indexOf("color")&&(c?(a.on=q,Eg.zK[c]&&(c=Eg.zK[c])):a.on=t),"strokestyle"==b&&(c="solid"==c?"solid":"4 2 1 2"),"strokeweight"==b&&(c+="px"),a[this.Wq(b)]=c||"")};Fg.Wq=function(a){return this.dV[a]||a};Fg.Ao=function(){return Ab(this.B.Tf().Et,\'<v:shape style="behavior:url(#default#VML);z-index:1;width:1px;height:1px;position:absolute;left:0;top:0;"coordsize="1,1" coordorigin="0,0" filled="t" fillcolor="white"><v:stroke style="behavior:url(#default#VML);" endcap="round" oned="true" /><v:fill style="behavior:url(#default#VML)" /></v:shape>\')}; Fg.ke=function(a,b){this.setAttribute(a,"path",this.tA(b));6==z.ca.ia&&(a.style.display="none",a.style.display="")};Fg.tA=function(a){if(0==a.length)return"";var b=[];z.mc.Fb(a,function(a){if(!(2>a.length)){b.push("m "+a[0].x+" "+a[0].y+" l");for(var e=1,f=a.length;e<f;e++)b.push(a[e].x),b.push(a[e].y);b.push("e")}});return b.join(" ")||" "};B.bQ=Eg; ');
|
||||
1
public/plugin/offline/modules/geoctrl_xprajs.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('geoctrl', 'z.extend(Zb.prototype,{initialize:function(a){var b=this;Vb.prototype.initialize.call(b,a);b.Aa();b.pr={"default":B.ka+"images/geolocation-control/mobile/default-40x40.png",loading:B.ka+"images/geolocation-control/mobile/loading-40x40.gif",success:B.ka+"images/geolocation-control/mobile/success-40x40.png",fail:B.ka+"images/geolocation-control/mobile/fail-40x40.png"};b.ij=b.C.children[0];b.FD=b.ij.children[0];b.Xo=b.FD.children[0];b.DD=b.ij.children[1];b.vL=b.DD.children[0].children[0];var c;b.B.addEventListener("moveend", function(){if(c){var a=b.B.Ka();a.lng===c.lng&&a.lat===c.lat?b.Lr(b.pr.success):(b.Lr(b.pr["default"]),b.VQ())}});z.M(b.Xo,"click",function(){b.Lr(b.pr.loading);(new Geolocation({timeout:1E4})).getCurrentPosition(function(e){b.Lr(b.pr.success);if(e.address&&b.j.O_){var f="";e.address.city?f+=e.address.city:e.address.province&&(f+=e.address.province);e.address.district&&(f+=e.address.district);e.address.street&&(f+=e.address.street);e.address.street_number&&(f+=e.address.street_number);b.xU(f)}var f= new J(e.longitude,e.latitude),g=new U(f,{icon:b.j.bN?b.j.bN:new qc(B.ka+"images/geolocation-control/point/position-icon-14x14.png",new O(14,14))});c=f;b.GD=f;a.Ga(g);a.Fd(f,15);e.address&&(b.ds={province:e.address.province||"",city:e.address.city||"",district:e.address.district||"",street:e.address.street||"",streetNumber:e.address.street_number||""},Ra(7001,{longitude:e.longitude,latitude:e.latitude,accuracy:e.accuracy}));e=new P("locationSuccess");e.point=b.GD;e.addressComponent=b.ds;b.dispatchEvent(e)}, function(a){b.Lr(b.pr.fail);var c=new P("locationError");c.code=a.errorCode;c.message=a.uk;b.dispatchEvent(c)})});return b.C},location:function(){var a=this;a.I0.push({});(new Geolocation({timeout:1E4})).getCurrentPosition(function(b){a.GD=new J(b.longitude,b.latitude);b.address&&(a.ds={province:b.address.province||"",city:b.address.city||"",district:b.address.district||"",street:b.address.street||"",streetNumber:b.address.street_number||""});b=new P("locationSuccess");b.point=a.GD;b.addressComponent= a.ds;a.dispatchEvent(b)},function(b){var c=new P("locationError");c.code=b.errorCode;c.message=b.uk;a.dispatchEvent(c)})},xX:function(){return this.ds?this.ds:s},sQ:function(){this.B?this.He(this.B):this.map&&this.He(this.map)},Aa:function(){Vb.prototype.Aa.call(this);this.C.style.cssText="height: 32px;";this.C.innerHTML=this.Vq()},Vq:function(){return[\'<div class="BMap_geolocationContainer" style="height: 32px; margin: 0px; box-sizing: border-box; border: 1px solid #d9d7d5; border-radius: 3px; -webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2); overflow: hidden;">\', \'<div class="BMap_geolocationIconBackground" style="float: left; width: 32px; height: 32px; background-image: url(\\\'\'+B.ka+"images/geolocation-control/mobile/gradient-bg-1x64.png\'); background-size: 1px 32px; background-repeat: repeat-x;\\">",\'<div class="BMap_geolocationIcon" style="width: 32px; height: 32px; cursor: pointer; background-image: url(\\\'\'+B.ka+"images/geolocation-control/mobile/default-40x40.png\'); background-size: 20px 20px; background-repeat: no-repeat; background-position: center center;\\"></div>", "</div>",\'<div class="BMap_geolocationAddress" style="display: none; float: left; min-width: 50px; padding-left: 10px; padding-right: 10px; border-left: 1px solid #d9d7d5; background-image: url(\'+B.ka+\'images/geolocation-control/mobile/gradient-bg-1x64.png); background-size: 1px 32px; background-repeat: repeat-x;">\',\'<div style="height: 32px; display: table-cell; vertical-align: middle;"><div class="BMap_geolocationAddressText" style="font-size: 12px; color: #666666; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; display: block; min-width: 50px; max-width: 200px;"></div></div></div></div>\'].join("")}, Lr:function(a){this.Xo.style.backgroundImage="url(\'"+a+"\')"},xU:function(a){this.DD.style.display="block";this.vL.textContent=a},VQ:function(){this.vL.textContent="";this.DD.style.display="none"}});Zb.prototype.location=Zb.prototype.location;Zb.prototype.getAddressComponent=Zb.prototype.xX; ');
|
||||
1
public/plugin/offline/modules/groundoverlay_ekozhc.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('groundoverlay', 'z.extend(vc.prototype,{ib:function(){if(this.map){this.V||this.Ej();var a=this.map.fa();if(a<this.z.Bs||a>this.z.As)this.U();else{var b=this.z.bb.Ve(),c=this.z.bb.Rf(),a=this.map.Xe(b).x,e=this.map.Xe(c).y,c=this.map.Xe(c).x,b=this.map.Xe(b).y;this.V.style.left=a+"px";this.V.style.top=e+"px";this.V.style.width=c-a+"px";this.V.style.height=b-e+"px";this.show()}}},draw:function(){this.ib()},Ej:function(){if(!this.V){this.V=document.createElement("div");var a=this.V.style;a.cssText="position: absolute; -moz-user-select: none; overflow: hidden;"; a.zIndex=mc.Ck(this.z.bb.Ve().lat);this.z.opacity&&(a.opacity=this.z.opacity,a.filter="alpha(opacity="+100*parseInt(this.z.opacity,10)+")");this.Og=document.createElement("img");this.Og.style.width="100%";this.z.X_&&(this.Og.style.height="100%");this.V.appendChild(this.Og);var b=this;this.Og.onload=function(){b.P1=b.Og.naturalWidth||b.Og.width;b.O1=b.Og.naturalHeight||b.Og.height};this.z.Gm&&(this.Og.src=this.z.Gm);this.map.Tf().KE.appendChild(this.V);b=this;z.M(this.V,"click",function(a){b.dispatchEvent(new P("click"), a)});z.M(this.V,"dblclick",function(a){b.dispatchEvent(new P("dblclick"),a)})}},s_:function(a){this.z.bb=a;this.map&&this.ib();this.V.style.zIndex=mc.Ck(this.z.bb.Ve().lat)},ve:function(){return this.z.bb},HF:function(a){this.z.opacity=a;this.V.style.opacity=a;this.V.style.filter="alpha(opacity="+100*parseInt(a,10)+")"},XX:function(){return this.z.opacity},x_:function(a){this.z.Gm=a;this.Og&&(this.Og.src=a)},KX:function(){return this.z.Gm},p5:function(a){this.z.Bs=a},r3:function(){return this.z.Bs}, o5:function(a){this.z.As=a},q3:function(){return this.z.As}});vc.prototype.setBounds=vc.prototype.s_;vc.prototype.getBounds=vc.prototype.ve;vc.prototype.setOpacity=vc.prototype.HF;vc.prototype.getOpacity=vc.prototype.XX;vc.prototype.setImageURL=vc.prototype.x_;vc.prototype.getImageURL=vc.prototype.KX;vc.prototype.setDispalyOnMinLevel=vc.prototype.n5;vc.prototype.setDispalyOnMaxLevel=vc.prototype.m5; ');
|
||||
1
public/plugin/offline/modules/hotspot_vuwxs4.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('hotspot', 'B.Ye(function(a){function b(a){var b=this.R;b.Qe=[];if(this.Jh)for(var c in this.Jh)if(!(0==c.indexOf("vector_")&&!this.Sb()||0==c.indexOf("tile_")&&this.Sb())){var i=this.Jh[c],k;for(k in i){var m=i[k];if(!(m.Lh>this.fa()||m.Hf<this.fa())){var n=this.$b(m.ga());n.x<this.width&&n.y<this.height&&a.offsetX<n.x+m.Jv[1]&&(a.offsetX>n.x-m.Jv[3]&&a.offsetY>n.y-m.Jv[0]&&a.offsetY<n.y+m.Jv[2])&&b.Qe.push(m)}}}}function c(){a.R.XK&&0<a.R.Qe.length?(a.platform.style.cursor="pointer",a.R.XK=t):(a.R.Qe=[],a.platform.style.cursor= a.K.Vb)}a.R.ju=new uc("",{za:new O(15,-3),Wp:{border:"1px solid #aaa",background:"#fffec2",whiteSpace:"nowrap",font:"12px "+G.fontFamily,mozBoxShadow:"1px 2px 6px #666",webkitBoxShadow:"1px 2px 6px #666",boxShadow:"1px 2px 6px #666",padding:"2px 4px"}});a.addEventListener("mousemove",function(c){if(!(c.fb&&!(c.fb instanceof oc)||c.zb)){var f=this.R,g=f.Qe.slice(0);b.call(this,c);for(var i=f.Qe.slice(0),k=0;k<g.length;k++)for(var m=0;m<i.length;m++)g[k]===i[m]&&(g.splice(k,1),k--,i.splice(m,1),m--); if(0<g.length){var n=new P("onhotspotout");n.spots=g.slice(0);this.dispatchEvent(n)}if(0==f.Qe.length&&!f.$x)this.platform.style.cursor!=this.K.Vb&&(this.platform.style.cursor=this.K.Vb),f.Up&&(clearTimeout(f.Up),f.Up=s),f.QF=setTimeout(function(){f.ju.U()},400);else if(0<i.length&&(this.platform.style.cursor="pointer",n=new P("onhotspotover"),n.spots=i.slice(0),this.dispatchEvent(n),f.Up&&(clearTimeout(f.Up),f.Up=s),f.QF&&(clearTimeout(f.QF),f.QF=s),n.spots[0].eE()))f.Up=setTimeout(function(){f.ju.dd(n.spots[0].eE()); f.ju.sa(c.point);f.ju.show();a.Ga(f.ju)},400)}});a.addEventListener("clickex",function(a){var c=this.R;a.overlay||(0==c.Qe.length&&b.call(this,a),0<c.Qe.length&&(a=new P("onhotspotclick"),a.spots=c.Qe.slice(0),a.spots.sort(function(a,b){return a.ga().lat-b.ga().lat}),this.dispatchEvent(a),c.Qe.length=0))});a.addEventListener("load",c);a.addEventListener("moveend",c);a.addEventListener("zoomend",c);a.addEventListener("dragend",function(){this.R.XK=q})}); ');
|
||||
1
public/plugin/offline/modules/infowindow_wtflsn.js
Normal file
1
public/plugin/offline/modules/local_k0pcpi.js
Normal file
1
public/plugin/offline/modules/map_dbwcej.js
Normal file
1
public/plugin/offline/modules/mapclick_e40viw.js
Normal file
1
public/plugin/offline/modules/marker_00uyqy.js
Normal file
1
public/plugin/offline/modules/markeranimation_rfnmxu.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('markeranimation', 'Ic[1]={options:{duration:400},Cm:[{Zb:0,translate:[0,-500],jc:"ease-in"},{Zb:0.5,translate:[0,0],jc:"ease-out"},{Zb:0.75,translate:[0,-20],jc:"ease-in"},{Zb:1,translate:[0,0],jc:"ease-out"}],du:[{Zb:0,translate:[375,-375],jc:"ease-in"},{Zb:0.5,translate:[0,0],jc:"ease-out"},{Zb:0.75,translate:[15,-15],jc:"ease-in"},{Zb:1,translate:[0,0],jc:"ease-out"}]}; Ic[2]={options:{duration:700,loop:vb},Cm:[{Zb:0,translate:[0,0],jc:"ease-out"},{Zb:0.5,translate:[0,-20],jc:"ease-in"},{Zb:1,translate:[0,0],jc:"ease-out"}],du:[{Zb:0,translate:[0,0],jc:"ease-out"},{Zb:0.5,translate:[15,-15],jc:"ease-in"},{Zb:1,translate:[0,0],jc:"ease-out"}]};Ic[3]={options:{duration:200,fP:q},Cm:[{Zb:0,translate:[0,0],jc:"ease-in"},{Zb:1,translate:[0,-20],jc:"ease-out"}],du:[{Zb:0,translate:[0,0],jc:"ease-in"},{Zb:1,translate:[15,-15],jc:"ease-out"}]}; Ic[4]={options:{duration:500,fP:q},Cm:[{Zb:0,translate:[0,-20],jc:"ease-in"},{Zb:0.5,translate:[0,0],jc:"ease-out"},{Zb:0.75,translate:[0,-10],jc:"ease-in"},{Zb:1,translate:[0,-0.0],jc:"ease-out"}],du:[{Zb:0,translate:[15,-15],jc:"ease-in"},{Zb:0.5,translate:[0,0],jc:"ease-out"},{Zb:0.75,translate:[8,-8],jc:"ease-in"},{Zb:1,translate:[0,0],jc:"ease-out"}]}; ');
|
||||
1
public/plugin/offline/modules/menu_152mop.js
Normal file
1
public/plugin/offline/modules/navictrl_h32mnb.js
Normal file
1
public/plugin/offline/modules/newvectordrawlib_wbnuee.js
Normal file
1
public/plugin/offline/modules/opmb_2c1ejz.js
Normal file
1
public/plugin/offline/modules/oppc_10riq5.js
Normal file
1
public/plugin/offline/modules/othersearch_pwg4ey.js
Normal file
1
public/plugin/offline/modules/panorama_jbqj24.js
Normal file
1
public/plugin/offline/modules/panoramaflash_dm4xq2.js
Normal file
1
public/plugin/offline/modules/pcommon_yqek4k.js
Normal file
1
public/plugin/offline/modules/pointcollection_feabuc.js
Normal file
1
public/plugin/offline/modules/poly_r52vuo.js
Normal file
1
public/plugin/offline/modules/pservice_j5tlrp.js
Normal file
1
public/plugin/offline/modules/route_v4yyam.js
Normal file
1
public/plugin/offline/modules/scommon_oadc3d.js
Normal file
1
public/plugin/offline/modules/style_fkofpc.js
Normal file
1
public/plugin/offline/modules/symbol_cq3a5n.js
Normal file
1
public/plugin/offline/modules/tile_ok3b3m.js
Normal file
1
public/plugin/offline/modules/vector_2hrruc.js
Normal file
1
public/plugin/offline/modules/vectordrawlib_4pdipq.js
Normal file
1
public/plugin/offline/modules/vmlcontext_phwtog.js
Normal file
@@ -0,0 +1 @@
|
||||
_jsload2&&_jsload2('vmlcontext', 'var hg=10,ig=hg/2; function jg(a){this.li=[[1,0,0],[0,1,0],[0,0,1]];this.cN=[];this.TJ=[];this.qk=[];this.lineWidth=1;this.miterLimit=1*hg;this.canvas=a;var b=L("div");b.style.width=a.clientWidth+"px";b.style.height=a.clientHeight+"px";b.style.position="absolute";a.appendChild(b);this.fL=b;this.TM=this.Iw=this.Hw=1;document.styleSheets.canvas_style||(a=document.createStyleSheet(),a.owningElement.id="canvas_style",a.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\\\:shape,g_vml_\\\\:fill,g_vml_\\\\:stroke{behavior:url(#default#VML)}")} function kg(a,b){for(var c=[[1,0,0],[0,1,0],[0,0,1]],e=0;3>e;e++)for(var f=0;3>f;f++){for(var g=0,i=0;3>i;i++)g+=a[e][i]*b[i][f];c[e][f]=g}return c}var lg=jg.prototype;lg.clearRect=function(){this.fL.innerHTML=""};lg.beginPath=function(){this.qk=[]};lg.moveTo=function(a,b){var c=this.fi(a,b);this.qk.push({type:"moveTo",x:c.x,y:c.y});this.rs=c.x;this.ss=c.y};lg.lineTo=function(a,b){var c=this.fi(a,b);this.qk.push({type:"lineTo",x:c.x,y:c.y});this.rs=c.x;this.ss=c.y}; lg.bezierCurveTo=function(a,b,c,e,f,g){mg(this,this.fi(a,b),this.fi(c,e),this.fi(f,g))};function mg(a,b,c,e){a.qk.push({type:"bezierCurveTo",oW:b.x,pW:b.y,qW:c.x,rW:c.y,x:e.x,y:e.y});a.rs=e.x;a.ss=e.y}lg.quadraticCurveTo=function(a,b,c,e){a=this.fi(a,b);c=this.fi(c,e);e={x:this.rs+2/3*(a.x-this.rs),y:this.ss+2/3*(a.y-this.ss)};mg(this,e,{x:e.x+(c.x-this.rs)/3,y:e.y+(c.y-this.ss)/3},c)}; lg.arc=function(a,b,c,e,f,g){var c=c*hg,i=a+Math.cos(e)*c-ig,k=b+Math.sin(e)*c-ig,e=a+Math.cos(f)*c-ig,f=b+Math.sin(f)*c-ig;i==e&&!g&&(i+=0.125);a=this.fi(a,b);i=this.fi(i,k);e=this.fi(e,f);this.qk.push({type:g?"at":"wa",x:a.x,y:a.y,wa:c,X0:i.x,Z0:i.y,W0:e.x,Y0:e.y})};lg.rect=function(a,b,c,e){this.moveTo(a,b);this.lineTo(a+c,b);this.lineTo(a+c,b+e);this.lineTo(a,b+e);this.closePath()}; lg.stroke=function(a){var b=[],c=a?this.fillStyle:this.strokeStyle,e=c.color,c=c.alpha;b.push("<g_vml_:shape",\' filled="\',!!a,\'"\',\' style="position:absolute;width:\',10,"px;height:",10,\'px;"\',\' coordorigin="0 0" coordsize="\',10*hg," ",10*hg,\'"\',\' stroked="\',!a,\'"\',\' path="\');for(var f=s,g=s,i=s,k=s,m=0;m<this.qk.length;m++){var n=this.qk[m];switch(n.type){case "moveTo":b.push(" m ",Math.round(n.x),",",Math.round(n.y));break;case "lineTo":b.push(" l ",Math.round(n.x),",",Math.round(n.y));break;case "close":b.push(" x "); n=s;break;case "bezierCurveTo":b.push(" c ",Math.round(n.oW),",",Math.round(n.pW),",",Math.round(n.qW),",",Math.round(n.rW),",",Math.round(n.x),",",Math.round(n.y));break;case "at":case "wa":b.push(" ",n.type," ",Math.round(n.x-this.Hw*n.wa),",",Math.round(n.y-this.Iw*n.wa)," ",Math.round(n.x+this.Hw*n.wa),",",Math.round(n.y+this.Iw*n.wa)," ",Math.round(n.X0),",",Math.round(n.Z0)," ",Math.round(n.W0),",",Math.round(n.Y0))}if(n){if(f==s||n.x<f)f=n.x;if(i==s||n.x>i)i=n.x;if(g==s||n.y<g)g=n.y;if(k== s||n.y>k)k=n.y}}b.push(\' ">\');a?b.push(\'<g_vml_:fill color="\',e,\'" opacity="\',c,\'" />\'):(a=this.TM*this.lineWidth,1>a&&(c*=a),b.push("<g_vml_:stroke",\' opacity="\',c,\'"\',\' joinstyle="\',this.lineJoin,\'"\',\' miterlimit="\',this.miterLimit,\'"\',\' endcap="\',"square",\'"\',\' weight="\',a,\'px"\',\' color="\',e,\'" />\'));b.push("</g_vml_:shape>");this.fL.insertAdjacentHTML("beforeEnd",b.join(""))};lg.fill=function(){this.stroke(q)};lg.closePath=function(){this.qk.push({type:"close"})}; lg.fi=function(a,b){var c=this.li;return{x:hg*(a*c[0][0]+b*c[1][0]+c[2][0])-ig,y:hg*(a*c[0][1]+b*c[1][1]+c[2][1])-ig}};lg.save=function(){var a={};copyState(this,a);this.TJ.push(a);this.cN.push(this.li);this.li=kg(createMatrixIdentity(),this.li)};lg.restore=function(){copyState(this.TJ.pop(),this);this.li=this.cN.pop()}; function ng(a,b,c){var e;a:{for(e=0;3>e;e++)for(var f=0;2>f;f++)if(!isFinite(b[e][f])||isNaN(b[e][f])){e=t;break a}e=q}e&&(a.li=b,c&&(a.TM=Math.sqrt(Math.abs(b[0][0]*b[1][1]-b[0][1]*b[1][0]))))}lg.translate=function(a,b){ng(this,kg([[1,0,0],[0,1,0],[a,b,1]],this.li),t)};lg.rotate=function(a){var b=Math.cos(a),a=Math.sin(a);ng(this,kg([[b,a,0],[-a,b,0],[0,0,1]],this.li),t)};lg.scale=function(a,b){this.Hw*=a;this.Iw*=b;ng(this,kg([[a,0,0],[0,b,0],[0,0,1]],this.li),q)}; lg.transform=function(a,b,c,e,f,g){ng(this,kg([[a,b,0],[c,e,0],[f,g,1]],this.li),q)};lg.setTransform=function(a,b,c,e,f,g){ng(this,[[a,b,0],[c,e,0],[f,g,1]],q)};B.aQ=jg; ');
|
||||
@@ -303,3 +303,12 @@ export function exportLineData() {
|
||||
responseType: "blob",
|
||||
});
|
||||
}
|
||||
|
||||
// 无锡地图查询
|
||||
export function stationMap(data: object) {
|
||||
return service({
|
||||
url: "/scale/stationMap",
|
||||
method: "post",
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
BIN
src/assets/bdz.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/img/txzcwzj.png
Normal file
|
After Width: | Height: | Size: 916 B |
@@ -20,6 +20,7 @@ interface State {
|
||||
eventDuration: number;
|
||||
realData: []; //实时数据
|
||||
iframeLoad: boolean;
|
||||
showMap: boolean;
|
||||
}
|
||||
|
||||
// 初始状态
|
||||
@@ -37,13 +38,14 @@ const state: State = {
|
||||
eventValue: 0.7,
|
||||
eventDuration: 5,
|
||||
realData: [], //实时数据
|
||||
iframeLoad: false,
|
||||
iframeLoad: false,//无锡接线图是否加载完成
|
||||
showMap: true,//无锡地图显示
|
||||
};
|
||||
|
||||
// 定义Mutation类型
|
||||
enum Mutations {
|
||||
INCREMENT = "INCREMENT",
|
||||
IFRAMELOAD = "IFRAMELOAD",
|
||||
SET_STATE= "SET_STATE",
|
||||
SET_TOKEN = "SET_TOKEN",
|
||||
SET_TIME = "SET-TIME",
|
||||
SET_CONFIG = "SET-CONFIG-TIME",
|
||||
@@ -55,8 +57,8 @@ export default createStore({
|
||||
[Mutations.INCREMENT](state: State) {
|
||||
state.count++;
|
||||
},
|
||||
[Mutations.IFRAMELOAD](state: State, data: boolean) {
|
||||
state.iframeLoad = data;
|
||||
[Mutations.SET_STATE](state: State, data: any) {
|
||||
state[data.key] = data.value;
|
||||
},
|
||||
[Mutations.SET_TOKEN](state: State, data: any) {
|
||||
window.sessionStorage.setItem("token", data.token);
|
||||
@@ -103,8 +105,8 @@ export default createStore({
|
||||
increment({ commit }) {
|
||||
commit(Mutations.INCREMENT);
|
||||
},
|
||||
setIframeLoad({ commit }, data: any) {
|
||||
commit(Mutations.IFRAMELOAD,data);
|
||||
setStateKey({ commit }, data: any) {
|
||||
commit(Mutations.SET_STATE,data);
|
||||
},
|
||||
setTimeType({ commit }, data: any) {
|
||||
commit(Mutations.SET_TIME, data);
|
||||
|
||||
@@ -5,7 +5,7 @@ import store from "@/store/index";
|
||||
|
||||
const service = axios.create({
|
||||
baseURL: "/api",
|
||||
timeout: 60 * 1000,
|
||||
timeout: 60 * 1000 * 3,
|
||||
headers: { "Content-Type": "application/json;charset=utf-8" },
|
||||
});
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ class HttpRequest {
|
||||
getInsideConfig() {
|
||||
const config = {
|
||||
baseURL: this.baseUrl, // 所有的请求地址前缀部分(没有后端请求不用写)
|
||||
timeout: 80000, // 请求超时时间(毫秒)
|
||||
timeout: 60 * 1000 * 3, // 请求超时时间(毫秒)
|
||||
};
|
||||
return config;
|
||||
}
|
||||
|
||||
459
src/views/SagTraceResult_WX/components/bdMap.vue
Normal file
@@ -0,0 +1,459 @@
|
||||
<template>
|
||||
<div v-loading="loading" element-loading-background="#343849c7">
|
||||
<div class="iconBox">
|
||||
<div class="div">
|
||||
<img src="@/assets/bdz.png" alt="" />
|
||||
<span>变电站</span>
|
||||
</div>
|
||||
|
||||
<!-- <div class="div">
|
||||
<img src="@/assets/img/txzcwzj.png" alt="" />
|
||||
<span>监测点</span>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="bmSelect">
|
||||
<el-select
|
||||
v-model="value"
|
||||
@change="setIcon"
|
||||
placeholder="变电站筛选"
|
||||
filterable
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 150px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in siteList"
|
||||
:key="item.stationName"
|
||||
:label="item.stationName"
|
||||
:value="item.stationName"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<baidu-map
|
||||
ref="mapRef"
|
||||
class="bm-view"
|
||||
:max-zoom="15"
|
||||
:min-zoom="10"
|
||||
:zoom="zoom"
|
||||
@zoomend="syncCenterAndZoom"
|
||||
@moveend="checkMapData"
|
||||
@ready="handler"
|
||||
:center="center"
|
||||
:scroll-wheel-zoom="false"
|
||||
:double-click-zoom="false"
|
||||
>
|
||||
<!-- 线-->
|
||||
<!-- <div v-if="zoom > 13">
|
||||
<bm-polyline
|
||||
:path="path"
|
||||
v-for="(path, index) in polyline"
|
||||
:key="index"
|
||||
></bm-polyline>
|
||||
</div> -->
|
||||
|
||||
<!-- 变电站-->
|
||||
<template>
|
||||
<bm-marker
|
||||
:position="path"
|
||||
v-for="path in siteList"
|
||||
:key="path.subId"
|
||||
:icon="path.icon"
|
||||
@click="pointClick(path)"
|
||||
></bm-marker>
|
||||
</template>
|
||||
<!-- 点 -->
|
||||
<!-- <div maxZoom="12">
|
||||
<bm-marker
|
||||
:position="path"
|
||||
v-for="path in areaLineInfo"
|
||||
:key="path.lineId"
|
||||
:icon="path.icon"
|
||||
@click="pointClick(path)"
|
||||
></bm-marker>
|
||||
</div> -->
|
||||
<bm-marker
|
||||
:position="infoWindowPoint"
|
||||
:icon="{ url: '1', size: { width: 0, height: 0 } }"
|
||||
>
|
||||
<bm-info-window
|
||||
:show="infoWindowPoint.show"
|
||||
@close="infoWindowPoint.show = false"
|
||||
>
|
||||
</bm-info-window>
|
||||
</bm-marker>
|
||||
</baidu-map>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, nextTick, onMounted } from "vue";
|
||||
import { stationMap } from "@/api/statistics/index";
|
||||
import { useStore } from "vuex";
|
||||
// import { BmlMarkerClusterer } from "vue-baidu-map-3x";
|
||||
const emit = defineEmits(["pointClick"]);
|
||||
const store = useStore();
|
||||
const mapRef = ref<any>(null); // 地图容器的ref
|
||||
const mapInstance: any = ref(null); // 百度地图实例
|
||||
const BMapInstance: any = ref(null); // BMap对象
|
||||
const loading = ref(false);
|
||||
const dataList: any = ref([]);
|
||||
const polyline = ref<any>([]);
|
||||
const zoom = ref(11);
|
||||
const areaLineInfo = ref<any>([]);
|
||||
const siteList = ref<any>([]);
|
||||
const infoWindowPoint = ref<any>({
|
||||
lng: 0,
|
||||
lat: 0,
|
||||
show: false,
|
||||
});
|
||||
const center = ref({
|
||||
lng: 120.124367,
|
||||
lat: 31.555421,
|
||||
});
|
||||
const value = ref("");
|
||||
const handler = async ({ BMap, map }: any) => {
|
||||
if (!BMap.MarkerClusterer) {
|
||||
// await import("/offline/libs/MarkerClusterer_min.js");
|
||||
}
|
||||
mapInstance.value = map;
|
||||
BMapInstance.value = BMap;
|
||||
|
||||
// 监听地图容器的鼠标滚轮事件
|
||||
const mapDom = mapRef.value.$el; // 获取地图DOM元素
|
||||
mapDom.addEventListener("mousewheel", handleMapWheel, { passive: false });
|
||||
};
|
||||
|
||||
// 点击变电站\监测点
|
||||
const markerClick = (e: any) => {
|
||||
zoom.value = 15;
|
||||
infoWindowPoint.value = e;
|
||||
// infoWindowPoint.value.show = true;
|
||||
center.value.lng = 120.124367;
|
||||
center.value.lat = 31.555421;
|
||||
|
||||
setTimeout(() => {
|
||||
center.value.lng = e.lng;
|
||||
center.value.lat = e.lat + 0.01;
|
||||
}, 0);
|
||||
};
|
||||
// 点击监测点
|
||||
const pointClick = (e: any) => {
|
||||
emit("pointClick", e);
|
||||
store.dispatch("setStateKey", { key: "showMap", value: false });
|
||||
};
|
||||
|
||||
const init = () => {
|
||||
loading.value = true;
|
||||
siteList.value = [];
|
||||
polyline.value = [];
|
||||
dataList.value = [];
|
||||
areaLineInfo.value = [];
|
||||
stationMap({
|
||||
deptId: store.state.deptId,
|
||||
type: store.state.timeType,
|
||||
startTime: store.state.timeValue[0],
|
||||
endTime: store.state.timeValue[1],
|
||||
}).then((res: any) => {
|
||||
dataList.value = res.data;
|
||||
// dataList.value = [
|
||||
// {
|
||||
// stationId: 156,
|
||||
// stationName: "110kV北京电视台变",
|
||||
// gdName: "检修分公司",
|
||||
// longitude: 120.33,
|
||||
// latitude: 31.52,
|
||||
// lineCount: 1,
|
||||
// eventCount: 1,
|
||||
// lineEventDetails: [
|
||||
// // {
|
||||
// // gdName: "检修分公司",
|
||||
// // pictureId: "5debb8bd0ce26527675eedffd74a3198",
|
||||
// // pictureName: "无锡线上",
|
||||
// // },
|
||||
// {
|
||||
// gdName: "检修分公司",
|
||||
// pictureId: "35b1301833e3fdfc872b1a27a17c7245",
|
||||
// pictureName: "无锡修改1011--工程部",
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ];
|
||||
let data = dataList.value;
|
||||
let r = 0.0035;
|
||||
let list = data.filter((item: any) => item.lat != 0);
|
||||
list.forEach((item: any) => {
|
||||
// 变电站图标
|
||||
item.icon = {
|
||||
url: new URL("@/assets/bdz.png", import.meta.url).href,
|
||||
size: {
|
||||
width: 40,
|
||||
height: 40,
|
||||
},
|
||||
};
|
||||
// if (
|
||||
// item.lineEventDetails?.length > 10 &&
|
||||
// item.lineEventDetails?.length < 100
|
||||
// ) {
|
||||
// r = 0.0055;
|
||||
// } else if (item.lineEventDetails.length >= 100) {
|
||||
// r = 0.01055;
|
||||
// }
|
||||
// item.lng = item.longitude;
|
||||
// item.lat = item.latitude;
|
||||
// item.lineEventDetails.forEach((val: any, i: number) => {
|
||||
// val.lng =
|
||||
// item.longitude +
|
||||
// r * Math.cos((2 * Math.PI * i) / item.lineEventDetails.length);
|
||||
// val.lat =
|
||||
// item.latitude +
|
||||
// r * Math.sin((2 * Math.PI * i) / item.lineEventDetails.length);
|
||||
// // 监测点图标
|
||||
// val.icon = {
|
||||
// url: new URL("@/assets/img/txzcwzj.png", import.meta.url).href,
|
||||
// size: {
|
||||
// width: 40,
|
||||
// height: 40,
|
||||
// },
|
||||
// };
|
||||
|
||||
// polyline.value.push([
|
||||
// {
|
||||
// lng: item.lng,
|
||||
// lat: item.lat,
|
||||
// },
|
||||
// {
|
||||
// lng: val.lng,
|
||||
// lat: val.lat,
|
||||
// },
|
||||
// ]);
|
||||
// });
|
||||
|
||||
// areaLineInfo.value.push(...item.lineEventDetails);
|
||||
});
|
||||
|
||||
siteList.value = list;
|
||||
|
||||
// zoom.value = 12;
|
||||
setTimeout(() => {
|
||||
loading.value = false;
|
||||
}, 0);
|
||||
});
|
||||
};
|
||||
const moveenFlag = ref(true);
|
||||
|
||||
const checkMapData = () => {
|
||||
if (!mapInstance.value || !BMapInstance.value || !moveenFlag.value) return;
|
||||
|
||||
// 获取地图容器
|
||||
const container = mapInstance.value.getContainer();
|
||||
|
||||
setTimeout(() => {
|
||||
try {
|
||||
// 1. 获取所有图片瓦片
|
||||
const tiles = Array.from(container.querySelectorAll("img"));
|
||||
|
||||
// 2. 检查是否有离线地图瓦片
|
||||
const hasOfflineTiles = tiles.some((tile: any) => {
|
||||
// 确保tile是有效的DOM元素
|
||||
if (!tile || !tile.src) return false;
|
||||
|
||||
// 检查是否是离线瓦片
|
||||
return tile.src.includes("/plugin/offline/tiles/");
|
||||
});
|
||||
|
||||
// 3. 如果没有离线瓦片,回到默认位置
|
||||
if (!hasOfflineTiles) {
|
||||
console.warn("当前区域无离线地图数据,将返回默认位置");
|
||||
|
||||
// 使用正确的BMap.Point创建方式
|
||||
const point = new BMapInstance.value.Point(120.124367,31.555421);
|
||||
|
||||
// 平滑移动并设置合适缩放级别
|
||||
mapInstance.value.panTo(point);
|
||||
mapInstance.value.setZoom(11);
|
||||
// zoom.value = 12;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("地图检测出错:", error);
|
||||
}
|
||||
}, 1000); // 适当缩短延迟时间
|
||||
};
|
||||
|
||||
// 处理地图滚轮缩放,修正scale导致的坐标偏移
|
||||
const handleMapWheel = (e: WheelEvent) => {
|
||||
e.preventDefault();
|
||||
if (!mapInstance.value || !BMapInstance.value) return;
|
||||
|
||||
// 1. 获取当前缩放比例(假设你通过scale变量控制,需替换为你的实际scale值)
|
||||
const scaleWidth: any = window.sessionStorage.getItem("scaleWidth"); // 你的水平缩放比例
|
||||
const scaleHeight: any = window.sessionStorage.getItem("scaleheight"); // 你的垂直缩放比例
|
||||
|
||||
// 2. 获取地图容器的位置和尺寸(原始DOM尺寸,未被scale影响)
|
||||
const rect = mapRef.value.$el.getBoundingClientRect();
|
||||
|
||||
// 3. 计算鼠标在地图容器内的原始坐标(未修正)
|
||||
const mouseXRaw = e.clientX - rect.left;
|
||||
const mouseYRaw = e.clientY - rect.top;
|
||||
|
||||
// 4. 修正坐标:除以缩放比例,得到scale前的原始坐标(地图实际识别的坐标)
|
||||
const mouseX = mouseXRaw / scaleWidth;
|
||||
const mouseY = mouseYRaw / scaleHeight;
|
||||
|
||||
// 5. 将修正后的坐标转换为百度地图的经纬度
|
||||
const point = new BMapInstance.value.Pixel(mouseX, mouseY);
|
||||
const lngLat = mapInstance.value.pixelToPoint(point); // 像素坐标转经纬度
|
||||
|
||||
// 6. 执行缩放(滚轮向上放大,向下缩小)
|
||||
const zoomDelta = e.deltaY < 0 ? 1 : -1; // 滚轮方向
|
||||
const newZoom = mapInstance.value.getZoom() + zoomDelta;
|
||||
if (newZoom < 10 || newZoom > 15) return; // 限制缩放范围(百度地图默认范围)
|
||||
|
||||
// 7. 缩放时保持鼠标指向的位置不变(核心:先缩放再移中心点)
|
||||
mapInstance.value.setZoom(newZoom);
|
||||
mapInstance.value.setCenter(lngLat); // 让鼠标指向的位置成为新中心
|
||||
};
|
||||
const syncCenterAndZoom = (e: any) => {
|
||||
zoom.value = e.target.getZoom();
|
||||
checkMapData();
|
||||
};
|
||||
//点击过滤位置
|
||||
const setIcon = (e: string) => {
|
||||
moveenFlag.value = false;
|
||||
siteList.value.forEach((item: any) => {
|
||||
if (item.stationName == e) {
|
||||
center.value.lng = 120.124367;
|
||||
center.value.lat = 31.555421;
|
||||
setTimeout(() => {
|
||||
center.value.lng = item.lng;
|
||||
center.value.lat = item.lat + 0.01;
|
||||
infoWindowPoint.value = item;
|
||||
infoWindowPoint.value.show = true;
|
||||
zoom.value = 15;
|
||||
}, 0);
|
||||
}
|
||||
});
|
||||
setTimeout(() => {
|
||||
moveenFlag.value = true;
|
||||
}, 1500);
|
||||
};
|
||||
onMounted(() => {
|
||||
init();
|
||||
});
|
||||
|
||||
defineExpose({
|
||||
setIcon,
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@use "@/assets/scss/index.scss";
|
||||
.flex {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 600px;
|
||||
}
|
||||
.bm-view {
|
||||
width: 100%;
|
||||
height: 980px;
|
||||
}
|
||||
.iconBox {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
left: 10px;
|
||||
z-index: 1;
|
||||
width: 110px;
|
||||
height: 40px;
|
||||
padding: 10px;
|
||||
background: #ffffff10 !important;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
|
||||
font-size: 12px;
|
||||
|
||||
.div {
|
||||
display: flex;
|
||||
margin-bottom: 5px;
|
||||
|
||||
img {
|
||||
height: 20px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(.el-descriptions__title) {
|
||||
color: #fff;
|
||||
}
|
||||
:deep(.el-descriptions__content) {
|
||||
color: #fff;
|
||||
// width: 100%;
|
||||
}
|
||||
|
||||
:deep(.el-descriptions__body) {
|
||||
color: #fff;
|
||||
background-color: rgb(0 0 0 / 0%) !important;
|
||||
}
|
||||
:deep(.el-descriptions__label) {
|
||||
color: #fff;
|
||||
// display: inline-block;
|
||||
width: 80px;
|
||||
text-align: right; /* 右对齐 */
|
||||
}
|
||||
:deep(.BMap_pop .BMap_center) {
|
||||
background-color: #343849c7;
|
||||
}
|
||||
.descriptionsBox {
|
||||
max-height: 100px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.BMap_cpyCtrl {
|
||||
display: none;
|
||||
}
|
||||
.anchorBL {
|
||||
display: none;
|
||||
} /* 地图容器样式 */
|
||||
.baidu-map-container {
|
||||
/* 消除可能的缝隙 */
|
||||
line-height: 0;
|
||||
font-size: 0;
|
||||
}
|
||||
/* .BMap_pop div {
|
||||
background-color: #343849c7 !important;
|
||||
} */
|
||||
.BMap_top,
|
||||
.BMap_bottom {
|
||||
background-color: #343849c7 !important;
|
||||
}
|
||||
/* .BMap_pop div:nth-child(1) {
|
||||
background-color: #343849c7 !important;
|
||||
} */
|
||||
.BMap_pop > div:nth-child(1) > div,
|
||||
.BMap_pop > div:nth-child(3) > div,
|
||||
.BMap_pop > div:nth-child(5) > div,
|
||||
.BMap_pop > div:nth-child(7) > div {
|
||||
background-color: #343849c7 !important;
|
||||
}
|
||||
.BMap_pop > div:nth-child(8) > img {
|
||||
display: none;
|
||||
}
|
||||
.BMap_pop > div:nth-child(8) {
|
||||
/* 设置边框宽度和颜色,上边框为可见颜色,其他边框为透明 */
|
||||
width: 0 !important;
|
||||
height: 0 !important;
|
||||
border-left: 20px solid transparent;
|
||||
border-right: 20px solid transparent;
|
||||
border-top: 20px solid #343849c7; /* 倒三角的颜色 */
|
||||
transform: translateX(-26px) translateY(24px);
|
||||
/* 可选:添加阴影增强视觉效果 */
|
||||
/* box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); */
|
||||
}
|
||||
.bmSelect {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
z-index: 2000;
|
||||
}
|
||||
</style>
|
||||
@@ -623,6 +623,7 @@ watch(flag, (newVal) => {
|
||||
setTimeout(() => {
|
||||
if (flag.value == 0) {
|
||||
initHasEventList();
|
||||
|
||||
// flag 变化后重新绑定事件
|
||||
bindRankingClickEvent();
|
||||
}
|
||||
@@ -635,6 +636,29 @@ watch(flag, (newVal) => {
|
||||
}
|
||||
}, 100);
|
||||
});
|
||||
watch(
|
||||
() => store.state.showMap,
|
||||
(newVal) => {
|
||||
if (newVal) {
|
||||
return;
|
||||
}
|
||||
setTimeout(() => {
|
||||
if (flag.value == 0) {
|
||||
initHasEventList();
|
||||
|
||||
// flag 变化后重新绑定事件
|
||||
bindRankingClickEvent();
|
||||
}
|
||||
if (flag.value == 2) {
|
||||
renderChart2();
|
||||
initHasUpEventList();
|
||||
}
|
||||
if (flag.value == 1) {
|
||||
callHarmOneImageApi(getFirstTableData.value, getTimes.value);
|
||||
}
|
||||
}, 100);
|
||||
}
|
||||
);
|
||||
|
||||
// 暂降记录个数
|
||||
const initialData = () => {
|
||||
@@ -688,11 +712,9 @@ const initialAggregation = () => {
|
||||
tableData.splice(0, tableData.length);
|
||||
});
|
||||
};
|
||||
|
||||
const interval = ref(null);
|
||||
// 提取发送消息到iframe的公共方法
|
||||
const sendMessageToIframe = (type: string, payload: any) => {
|
||||
// console.log(123,store.state.iframeLoad);
|
||||
|
||||
// window.parent.postMessage(
|
||||
// {
|
||||
// type,
|
||||
@@ -701,6 +723,10 @@ const sendMessageToIframe = (type: string, payload: any) => {
|
||||
// "*"
|
||||
// );
|
||||
// 如果 iframe 已加载完成,直接发送消息
|
||||
if (store.state.showMap) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (store.state.iframeLoad) {
|
||||
window.parent.postMessage(
|
||||
{
|
||||
@@ -711,9 +737,13 @@ const sendMessageToIframe = (type: string, payload: any) => {
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (interval.value) {
|
||||
clearInterval(interval.value);
|
||||
interval.value = null;
|
||||
}
|
||||
|
||||
// 如果未加载完成,每 1 秒尝试发送一次
|
||||
const interval = setInterval(() => {
|
||||
interval.value = setInterval(() => {
|
||||
console.log("等待 iframe 加载,1 秒后重试...");
|
||||
if (store.state.iframeLoad) {
|
||||
// 加载完成后发送消息并清除定时器
|
||||
@@ -724,7 +754,7 @@ const sendMessageToIframe = (type: string, payload: any) => {
|
||||
},
|
||||
"*" // 建议替换为具体域名
|
||||
);
|
||||
clearInterval(interval);
|
||||
clearInterval(interval.value);
|
||||
}
|
||||
}, 1000);
|
||||
};
|
||||
@@ -857,7 +887,7 @@ const analysisClick = (row: any) => {
|
||||
|
||||
const dataObject = {
|
||||
eventList: [...eventList.value],
|
||||
color: "#1dd1a1",
|
||||
color: "#03de6d",
|
||||
maxResponsibilityMonitorId: [...maxResponsibilityMonitorId.value],
|
||||
maxColor: "#f9065b",
|
||||
};
|
||||
@@ -1186,7 +1216,7 @@ const callHarmOneImageApi = (row: any, selectedTime: string) => {
|
||||
const dataObject = {
|
||||
eventListAll: [JSON.parse(JSON.stringify(eventListAll.value))],
|
||||
eventList: [...eventList.value],
|
||||
color: "#09ee06",
|
||||
color: "#cf552d",
|
||||
maxResponsibilityMonitorId: [...maxResponsibilityMonitorId.value],
|
||||
maxColor: "#c708fe",
|
||||
backgroundPointId: [...backgroundPoint.value],
|
||||
@@ -1267,7 +1297,7 @@ const handleChildClose = () => {
|
||||
const init = () => {
|
||||
initialData();
|
||||
initialAggregation();
|
||||
initHasEventList();
|
||||
// initHasEventList();
|
||||
initialResponsibilityList();
|
||||
// getInfoListAmplify();
|
||||
tableInfoAmplify();
|
||||
|
||||
@@ -65,22 +65,9 @@
|
||||
<Edit @click="editd(item)" />
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
|
||||
<!-- <el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
content="修改项目"
|
||||
placement="top"
|
||||
>
|
||||
<Edit
|
||||
style="margin-left: 5px; width: 16px"
|
||||
class="xiaoshou color"
|
||||
@click="editd(item)"
|
||||
/> </el-tooltip
|
||||
> -->
|
||||
</span>
|
||||
<div style="display: flex; justify-content: end">
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
v-if="item.active == 0"
|
||||
class="color"
|
||||
:icon="Compass"
|
||||
@@ -95,7 +82,7 @@
|
||||
style="padding: 3px 0; color: #82bd51"
|
||||
type="text"
|
||||
>已激活</el-button
|
||||
>
|
||||
> -->
|
||||
<el-button
|
||||
class="color"
|
||||
:icon="Share"
|
||||
@@ -163,17 +150,21 @@
|
||||
placeholder="请输入项目名称"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="工程项目" prop="projectIds">
|
||||
<el-form-item label="变电站名称">
|
||||
<el-select
|
||||
v-model="ruleForm.projectIds"
|
||||
v-model="ruleForm.substionIds"
|
||||
placeholder="请选择"
|
||||
:popper-append-to-body="false"
|
||||
popper-class="custom-select-dropdown"
|
||||
multiple
|
||||
>
|
||||
<el-option label="Zone one111" value="shanghai" />
|
||||
<el-option label="Zone two" value="beijing" />
|
||||
<el-option
|
||||
v-for="item in dataList"
|
||||
:key="item.id"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
:disabled="item.bindFlag==true"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="项目排序" prop="orderBy">
|
||||
<el-input v-model="ruleForm.orderBy" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
@@ -218,11 +209,14 @@ import {
|
||||
active,
|
||||
getActive,
|
||||
} from "@/api/manage_wx/index";
|
||||
import { stationMap } from "@/api/statistics/index";
|
||||
import { useStore } from "vuex";
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: "project-change", project: { id: string; name: string }): void;
|
||||
}>();
|
||||
|
||||
const store = useStore();
|
||||
const projectData = ref([]);
|
||||
|
||||
// 系统配置弹框
|
||||
@@ -240,6 +234,8 @@ const firstForm = ref({
|
||||
id: "",
|
||||
});
|
||||
|
||||
const dataList = ref([]); //变电站
|
||||
|
||||
const params = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
@@ -251,6 +247,7 @@ interface RuleForm {
|
||||
projectIds: [];
|
||||
orderBy: string;
|
||||
remark: string;
|
||||
substionIds:[];
|
||||
}
|
||||
|
||||
const formSize = ref("default");
|
||||
@@ -260,17 +257,18 @@ const ruleForm = reactive<RuleForm>({
|
||||
projectIds: [],
|
||||
orderBy: "100",
|
||||
remark: "",
|
||||
substionIds:[],
|
||||
});
|
||||
|
||||
const rules = reactive<FormRules<RuleForm>>({
|
||||
name: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
|
||||
projectIds: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
// projectIds: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: "请选择",
|
||||
// trigger: "change",
|
||||
// },
|
||||
// ],
|
||||
orderBy: [
|
||||
{
|
||||
required: true,
|
||||
@@ -280,6 +278,17 @@ const rules = reactive<FormRules<RuleForm>>({
|
||||
],
|
||||
});
|
||||
|
||||
const init = () => {
|
||||
stationMap({
|
||||
deptId: store.state.deptId,
|
||||
type: store.state.timeType,
|
||||
startTime: store.state.timeValue[0],
|
||||
endTime: store.state.timeValue[1],
|
||||
}).then((res: any) => {
|
||||
dataList.value = res.data;
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
fetachData();
|
||||
});
|
||||
@@ -342,6 +351,7 @@ const onSubmitadd = () => {
|
||||
orderBy: "100",
|
||||
projectIds: ["1dd1b076e104f15459ac401fc1b902c4"],
|
||||
remark: "",
|
||||
substionIds:[],
|
||||
});
|
||||
//Object.keys(ruleForm).forEach((key) => delete ruleForm[key]); //生效,但是有默认值的,一进去会直接报校验
|
||||
};
|
||||
@@ -359,6 +369,7 @@ const editd = (row: any) => {
|
||||
orderBy: row.orderBy,
|
||||
projectIds: row.projectIds,
|
||||
remark: row.remark,
|
||||
substionIds:row.substionIds,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -526,6 +537,7 @@ const activeItem = (item: any) => {
|
||||
|
||||
const open = () => {
|
||||
dialogVisible.value = true;
|
||||
init();
|
||||
};
|
||||
defineExpose({
|
||||
open,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
type="primary"
|
||||
color="#223772"
|
||||
@click="showDetailClick"
|
||||
v-if="iframeLoaded"
|
||||
v-if="iframeLoaded && !store.state.showMap"
|
||||
>
|
||||
<span v-if="props.currentFlag == 0">暂降溯源</span>
|
||||
<span v-if="props.currentFlag == 1">谐波溯源</span>
|
||||
|
||||
@@ -1,27 +1,34 @@
|
||||
<template>
|
||||
<div class="plan">
|
||||
<!-- src=" http://192.168.1.128:3001/zutai/?id=44368e72a2e594d14ebaf317f0f6ad00&&name=decodeURI(APP测试项目)&&flag=true&&wxqr=true#/" -->
|
||||
<!-- <iframe
|
||||
src="http://192.168.1.62:8088/zutai/?id=0944fe372e90daeefd040916a105ac8b&&name=测试组态编辑器&&preview=true#/preview"
|
||||
<bdMap
|
||||
v-show="store.state.showMap"
|
||||
width="100%"
|
||||
height="100%"
|
||||
frameborder="0"
|
||||
></iframe> -->
|
||||
@pointClick="pointClick"
|
||||
></bdMap>
|
||||
|
||||
<!-- 添加加载事件监听 -->
|
||||
<iframe
|
||||
v-if="!store.state.showMap"
|
||||
:src="iframeSrc"
|
||||
width="100%"
|
||||
height="100%"
|
||||
frameborder="0"
|
||||
scrolling="no"
|
||||
id="iframeLeft"
|
||||
:key="keyof"
|
||||
@load="onIframeLoad"
|
||||
></iframe>
|
||||
<el-button class="backButton" @click="backButton" size="small" :icon="Back"
|
||||
>返回</el-button
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, watch, onMounted, onUnmounted } from "vue";
|
||||
import { getActive } from "@/api/manage_wx/index";
|
||||
import { Back } from "@element-plus/icons-vue";
|
||||
import bdMap from "./bdMap.vue";
|
||||
import { useStore } from "vuex";
|
||||
const store = useStore();
|
||||
const props = defineProps<{
|
||||
@@ -29,7 +36,7 @@ const props = defineProps<{
|
||||
}>();
|
||||
|
||||
const iframeSrc = ref("");
|
||||
|
||||
const keyof = ref(0);
|
||||
// 监听 props 变化
|
||||
watch(
|
||||
() => props.project,
|
||||
@@ -48,6 +55,11 @@ watch(
|
||||
},
|
||||
{ immediate: true, deep: true }
|
||||
);
|
||||
// 点击监测点传入 接线图id
|
||||
const pointClick = (row: any) => {
|
||||
setUrl(row.configId, row.configName);
|
||||
keyof.value += 1;
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
// 监听来自 eventStatistics 组件的消息
|
||||
@@ -55,23 +67,26 @@ onMounted(() => {
|
||||
getActive({}).then((res: any) => {
|
||||
if (res.code == "A0000") {
|
||||
// window.location.origin
|
||||
iframeSrc.value =
|
||||
window.location.origin +
|
||||
// "http://192.168.1.128:4001" +
|
||||
`/zutai/?id=${res.data.id}&&name=${encodeURIComponent(
|
||||
res.data.name
|
||||
)}&&preview=true&&display=true&&graphicDisplay=wx#/preview`;
|
||||
setUrl(res.data.id, res.data.name);
|
||||
}
|
||||
});
|
||||
// 子页面
|
||||
const iframe = document.getElementById("iframeLeft");
|
||||
|
||||
// 监听 iframe 加载完成事件
|
||||
iframe.addEventListener("load", function () {
|
||||
// 通知父页面:我已加载完毕
|
||||
store.dispatch("setIframeLoad", true);
|
||||
});
|
||||
});
|
||||
const setUrl = (url: string, nam: string) => {
|
||||
iframeSrc.value =
|
||||
window.location.origin +
|
||||
// "http://192.168.1.179:4001" +
|
||||
`/zutai/?id=${url}&&name=${encodeURIComponent(
|
||||
nam
|
||||
)}&&preview=true&&display=true&&graphicDisplay=wx#/preview`;
|
||||
// const iframe = document.getElementById("iframeLeft");
|
||||
// if (iframe) {
|
||||
// // 监听 iframe 加载完成事件
|
||||
// iframe.addEventListener("load", function () {
|
||||
// // 通知父页面:我已加载完毕
|
||||
// store.dispatch("setStateKey", { key: "iframeLoad", value: true });
|
||||
// });
|
||||
// }
|
||||
};
|
||||
|
||||
onUnmounted(() => {
|
||||
// 清理事件监听器
|
||||
@@ -80,6 +95,7 @@ onUnmounted(() => {
|
||||
|
||||
// iframe 加载完成回调 添加加载事件监听
|
||||
const onIframeLoad = () => {
|
||||
store.dispatch("setStateKey", { key: "iframeLoad", value: true });
|
||||
// console.log("iframe 加载完成");
|
||||
// 通知 securityDetail.vue 组件 iframe 已加载完成
|
||||
window.postMessage(
|
||||
@@ -117,6 +133,13 @@ const sendKeysToIframe = (keyList: string[]) => {
|
||||
); // 在生产环境中应该指定具体的域名而不是 '*'
|
||||
}
|
||||
};
|
||||
// 返回地图
|
||||
const backButton = () => {
|
||||
store.dispatch("setStateKey", { key: "iframeLoad", value: false });
|
||||
store.dispatch("setStateKey", { key: "showMap", value: true });
|
||||
|
||||
// window.removeEventListener("message", handleMessage);
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.plan {
|
||||
@@ -124,4 +147,10 @@ const sendKeysToIframe = (keyList: string[]) => {
|
||||
height: 990px;
|
||||
padding: 5px;
|
||||
}
|
||||
.backButton {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
z-index: 1;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -104,11 +104,11 @@
|
||||
/>
|
||||
<IframeDia
|
||||
:event-list="eventListData as []"
|
||||
style="position: absolute; top: 0px; right: 0px; left: 0px"
|
||||
style="position: absolute; top: 0px; right: 0px; left: 0px;z-index: 10;"
|
||||
/>
|
||||
<!-- 图元颜色提示框 -->
|
||||
<div
|
||||
v-if="!showDetail"
|
||||
v-if="!store.state.showMap && !showDetail"
|
||||
style="
|
||||
position: absolute;
|
||||
left: 0px;
|
||||
@@ -124,42 +124,27 @@
|
||||
<span class="iconfont blink-basic" style="color: #375db4"
|
||||
></span
|
||||
>
|
||||
<!-- <img
|
||||
src="@/assets/icon/传输设备 (3).png"
|
||||
style="width: 20px; height: 20px"
|
||||
class="blink-basic"
|
||||
/> -->
|
||||
<div style="margin-left: 10px; font-size: 12px">
|
||||
暂降发生测点
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex" v-if="currentFlag == 1">
|
||||
<!-- <img
|
||||
src="@/assets/icon/传输设备 (4).png"
|
||||
style="width: 20px; height: 20px"
|
||||
class="blink-basic"
|
||||
/> -->
|
||||
<span class="iconfont blink-basic" style="color:#0936f4"
|
||||
<span class="iconfont blink-basic" style="color: #0936f4"
|
||||
></span
|
||||
>
|
||||
<div style="margin-left: 10px; font-size: 12px">背景测点</div>
|
||||
</div>
|
||||
<div style="display: flex">
|
||||
<!-- <img
|
||||
src="@/assets/icon/传输设备 (2).png"
|
||||
style="width: 20px; height: 20px"
|
||||
class="blink-basic"
|
||||
/> -->
|
||||
<span
|
||||
v-if="currentFlag == 0"
|
||||
class="iconfont blink-basic"
|
||||
style="color: #1dd1a1"
|
||||
style="color: #03de6d"
|
||||
></span
|
||||
>
|
||||
<span
|
||||
v-if="currentFlag == 1"
|
||||
class="iconfont blink-basic"
|
||||
style="color: #09ee06"
|
||||
style="color: #cf552d"
|
||||
></span
|
||||
>
|
||||
<span
|
||||
@@ -175,11 +160,6 @@
|
||||
</div>
|
||||
</div>
|
||||
<div style="display: flex" v-if="currentFlag != 2">
|
||||
<!-- <img
|
||||
src="@/assets/icon/传输设备 (1).png"
|
||||
style="width: 20px; height: 20px"
|
||||
class="blink-basic"
|
||||
/> -->
|
||||
<span
|
||||
v-if="currentFlag == 0"
|
||||
class="iconfont blink-basic"
|
||||
@@ -243,6 +223,9 @@ import datePicker from "@/components/datePicker/index.vue";
|
||||
import Management from "./components/manage/index.vue";
|
||||
import SecurityDetail from "./components/manage/securityDetail.vue";
|
||||
import IframeDia from "./components/manage/iframeDia.vue";
|
||||
import { useStore } from "vuex";
|
||||
|
||||
const store = useStore();
|
||||
|
||||
// 传给iframe页面的参数
|
||||
const currentProject = ref<{ id: string; name: string } | null>(null);
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
v-for="(value, index) in infoWindowPoint.objName.split(
|
||||
';'
|
||||
)"
|
||||
style="white-space: nowrap"
|
||||
style="white-space: nowrap; font-size: 13px"
|
||||
>
|
||||
{{ value }}
|
||||
</div>
|
||||
@@ -198,8 +198,8 @@ const markerClick = (e: any) => {
|
||||
zoom.value = 15;
|
||||
infoWindowPoint.value = e;
|
||||
infoWindowPoint.value.show = true;
|
||||
center.value.lng = 116.404367;
|
||||
center.value.lat = 39.915421;
|
||||
center.value.lng = e.lng;
|
||||
center.value.lat = e.lat+ 0.01000001;;
|
||||
|
||||
setTimeout(() => {
|
||||
center.value.lng = e.lng;
|
||||
@@ -285,41 +285,41 @@ const init = () => {
|
||||
const moveenFlag = ref(true);
|
||||
|
||||
const checkMapData = () => {
|
||||
if (!mapInstance.value || !BMapInstance.value || !moveenFlag.value) return;
|
||||
// if (!mapInstance.value || !BMapInstance.value || !moveenFlag.value) return;
|
||||
|
||||
// 获取地图容器
|
||||
const container = mapInstance.value.getContainer();
|
||||
// // 获取地图容器
|
||||
// const container = mapInstance.value.getContainer();
|
||||
|
||||
setTimeout(() => {
|
||||
try {
|
||||
// 1. 获取所有图片瓦片
|
||||
const tiles = Array.from(container.querySelectorAll("img"));
|
||||
// setTimeout(() => {
|
||||
// try {
|
||||
// // 1. 获取所有图片瓦片
|
||||
// const tiles = Array.from(container.querySelectorAll("img"));
|
||||
|
||||
// 2. 检查是否有离线地图瓦片
|
||||
const hasOfflineTiles = tiles.some((tile: any) => {
|
||||
// 确保tile是有效的DOM元素
|
||||
if (!tile || !tile.src) return false;
|
||||
// // 2. 检查是否有离线地图瓦片
|
||||
// const hasOfflineTiles = tiles.some((tile: any) => {
|
||||
// // 确保tile是有效的DOM元素
|
||||
// if (!tile || !tile.src) return false;
|
||||
|
||||
// 检查是否是离线瓦片
|
||||
return tile.src.includes("/plugin/offline/tiles/");
|
||||
});
|
||||
// // 检查是否是离线瓦片
|
||||
// return tile.src.includes("/plugin/offline/tiles/");
|
||||
// });
|
||||
|
||||
// 3. 如果没有离线瓦片,回到默认位置
|
||||
if (!hasOfflineTiles) {
|
||||
console.warn("当前区域无离线地图数据,将返回默认位置");
|
||||
// // 3. 如果没有离线瓦片,回到默认位置
|
||||
// if (!hasOfflineTiles) {
|
||||
// console.warn("当前区域无离线地图数据,将返回默认位置");
|
||||
|
||||
// 使用正确的BMap.Point创建方式
|
||||
const point = new BMapInstance.value.Point(116.404367, 39.915421);
|
||||
// // 使用正确的BMap.Point创建方式
|
||||
// const point = new BMapInstance.value.Point(116.404367, 39.915421);
|
||||
|
||||
// 平滑移动并设置合适缩放级别
|
||||
mapInstance.value.panTo(point);
|
||||
mapInstance.value.setZoom(12);
|
||||
// zoom.value = 12;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("地图检测出错:", error);
|
||||
}
|
||||
}, 1000); // 适当缩短延迟时间
|
||||
// // 平滑移动并设置合适缩放级别
|
||||
// mapInstance.value.panTo(point);
|
||||
// mapInstance.value.setZoom(12);
|
||||
// // zoom.value = 12;
|
||||
// }
|
||||
// } catch (error) {/
|
||||
// console.error("地图检测出错:", error);
|
||||
// }
|
||||
// }, 1000); // 适当缩短延迟时间
|
||||
};
|
||||
|
||||
// 处理地图滚轮缩放,修正scale导致的坐标偏移
|
||||
|
||||
@@ -1,25 +1,56 @@
|
||||
<!--报表导出-->
|
||||
<template>
|
||||
<el-dialog :close-on-click-modal="false" draggable v-model="machineVisible" :title="title" width="500">
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
draggable
|
||||
v-model="machineVisible"
|
||||
:title="title"
|
||||
width="500"
|
||||
>
|
||||
<div>
|
||||
<div class="smsConfig">
|
||||
<el-form :model="form" inline label-width="auto" class=" ml30 mt10">
|
||||
<el-form :model="form" inline label-width="auto" class="ml30 mt10">
|
||||
<el-form-item label="时间">
|
||||
<el-date-picker v-model="timeValue" size="small" type="daterange" :disabled-date="isFutureDate"
|
||||
style="width: 250px; margin-right: 10px" unlink-panels :clearable="false" range-separator="至"
|
||||
start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" />
|
||||
<el-date-picker
|
||||
v-model="timeValue"
|
||||
size="small"
|
||||
type="datetimerange"
|
||||
:disabled-date="isFutureDate"
|
||||
style="width: 250px; margin-right: 10px"
|
||||
unlink-panels
|
||||
:clearable="false"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="部门集合">
|
||||
<el-select v-model="form.deptList" placeholder="请选择部门集合" style="width: 250px" size="small" multiple
|
||||
collapse-tags collapse-tags-tooltip>
|
||||
<el-select
|
||||
v-model="form.deptList"
|
||||
placeholder="请选择部门集合"
|
||||
style="width: 250px"
|
||||
size="small"
|
||||
multiple
|
||||
collapse-tags
|
||||
collapse-tags-tooltip
|
||||
>
|
||||
<template #header>
|
||||
<el-checkbox v-model="checkAll" :indeterminate="indeterminate" @change="handleCheckAll">
|
||||
<el-checkbox
|
||||
v-model="checkAll"
|
||||
:indeterminate="indeterminate"
|
||||
@change="handleCheckAll"
|
||||
>
|
||||
全部
|
||||
</el-checkbox>
|
||||
</template>
|
||||
<el-option v-for="item in deptLists" :key="item.deptsIndex" :label="item.deptsname"
|
||||
:value="item.deptsIndex" />
|
||||
<el-option
|
||||
v-for="item in deptLists"
|
||||
:key="item.deptsIndex"
|
||||
:label="item.deptsname"
|
||||
:value="item.deptsIndex"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -32,7 +63,9 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button :icon="Close" @click="setUp" size="small">取消</el-button>
|
||||
<el-button type="primary" :icon="Check" @click="save" size="small">确定</el-button>
|
||||
<el-button type="primary" :icon="Check" @click="save" size="small"
|
||||
>确定</el-button
|
||||
>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@@ -41,7 +74,7 @@ import { ref, watch, inject, onMounted } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { Check, Close } from "@element-plus/icons-vue";
|
||||
import { getDept, exportForms } from "@/api/statistics/index";
|
||||
import type { CheckboxValueType } from 'element-plus'
|
||||
import type { CheckboxValueType } from "element-plus";
|
||||
import { useStore } from "vuex";
|
||||
const store = useStore();
|
||||
const machineVisible = ref(false);
|
||||
@@ -50,8 +83,8 @@ const timeValue = ref([]);
|
||||
const deptLists = ref();
|
||||
//form表单校验规则
|
||||
const emit = defineEmits(["flushed"]);
|
||||
const checkAll = ref(false)
|
||||
const indeterminate = ref(false)
|
||||
const checkAll = ref(false);
|
||||
const indeterminate = ref(false);
|
||||
const form = ref({
|
||||
searchBeginTime: "",
|
||||
searchEndTime: "",
|
||||
@@ -88,28 +121,28 @@ const init = () => {
|
||||
// }
|
||||
// })
|
||||
watch(
|
||||
() => form.value.deptList, // 使用函数返回值的形式
|
||||
() => form.value.deptList, // 使用函数返回值的形式
|
||||
(val) => {
|
||||
if (val.length == 0) {
|
||||
checkAll.value = false
|
||||
indeterminate.value = false
|
||||
checkAll.value = false;
|
||||
indeterminate.value = false;
|
||||
} else if (val.length == deptLists.value.length) {
|
||||
checkAll.value = true
|
||||
indeterminate.value = false
|
||||
checkAll.value = true;
|
||||
indeterminate.value = false;
|
||||
} else {
|
||||
indeterminate.value = true
|
||||
indeterminate.value = true;
|
||||
}
|
||||
},
|
||||
{ deep: true } // 添加深度监听选项
|
||||
)
|
||||
{ deep: true } // 添加深度监听选项
|
||||
);
|
||||
const handleCheckAll = (val: CheckboxValueType) => {
|
||||
indeterminate.value = false
|
||||
indeterminate.value = false;
|
||||
if (val) {
|
||||
form.value.deptList = deptLists.value.map((_) => _.deptsIndex)
|
||||
form.value.deptList = deptLists.value.map((_) => _.deptsIndex);
|
||||
} else {
|
||||
form.value.deptList = []
|
||||
form.value.deptList = [];
|
||||
}
|
||||
}
|
||||
};
|
||||
const save = () => {
|
||||
if (!timeValue.value[0]) {
|
||||
ElMessage.warning("请选择时间!");
|
||||
@@ -122,9 +155,8 @@ const save = () => {
|
||||
|
||||
(form.value.deptId = store.state.deptId),
|
||||
(form.value.searchBeginTime = timeValue.value[0]),
|
||||
(form.value.searchEndTime = timeValue.value[1]
|
||||
? timeValue.value[1].split(" ")[0] + " 23:59:59"
|
||||
: "");
|
||||
(form.value.searchEndTime = timeValue.value[1]);
|
||||
|
||||
exportForms(form.value).then((res: any) => {
|
||||
let blob = new Blob([res], {
|
||||
type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8",
|
||||
|
||||