pages-common-map.QbBxT6WS.js 2.7 KB

1
  1. import{d as e,C as a,c as t,U as r,ah as l,b as n,w as o,i as s,f as u,h as i,j as d,t as c,m}from"./index-CCyi7pOT.js";import{_ as p}from"./_plugin-vue_export-helper.BCo6x5W8.js";let v=null;const w=p(e({__name:"map",setup(e){const p=a(0),w=a(0),f=a("配送地址"),y=a(!0),_=a("");let b=null;return t(()=>[{id:1,latitude:p.value,longitude:w.value,title:f.value,callout:{content:f.value,display:"ALWAYS",padding:8,borderRadius:4}}]),r(async e=>{var a;if(p.value=Number(null==e?void 0:e.latitude),w.value=Number(null==e?void 0:e.longitude),f.value=("string"==typeof(a=null==e?void 0:e.address)?decodeURIComponent(a):"")||"配送地址",!Number.isFinite(p.value)||!Number.isFinite(w.value)||Math.abs(p.value)>90||Math.abs(w.value)>180)return _.value="地图坐标无效,请返回后重试",void(y.value=!1);try{const e=await function(){if("undefined"==typeof window)return Promise.reject(new Error("当前端不支持高德 Web 地图"));const e=window;if(e.AMap)return Promise.resolve(e.AMap);if(v)return v;const a=String("b36108977a301e7868f6ee57f00260a8").trim(),t=String("a8483da6ee5786de70d0a407a9e8ee0b").trim();return a?(t&&(e._AMapSecurityConfig={securityJsCode:t}),v=new Promise((t,r)=>{const l=document.createElement("script");l.async=!0,l.src=`https://webapi.amap.com/maps?v=2.0&key=${encodeURIComponent(a)}`;const n=window.setTimeout(()=>{l.remove(),r(new Error("高德地图加载超时,请检查网络或 Key 配置"))},15e3);l.onload=()=>{window.clearTimeout(n),e.AMap?t(e.AMap):r(new Error("高德地图初始化失败"))},l.onerror=()=>{window.clearTimeout(n),l.remove(),r(new Error("高德地图加载失败,请检查域名白名单"))},document.head.appendChild(l)}).catch(e=>{throw v=null,e}),v):Promise.reject(new Error("未配置高德地图 Key"))}();b=new e.Map("water-amap-container",{zoom:16,center:[w.value,p.value],resizeEnable:!0,viewMode:"2D"}),new e.Marker({position:[w.value,p.value],title:f.value,map:b})}catch(t){_.value=t instanceof Error?t.message:"高德地图加载失败"}finally{y.value=!1}}),l(()=>{var e;return null==(e=null==b?void 0:b.destroy)?void 0:e.call(b)}),(e,a)=>{const t=s;return u(),n(t,{class:"map-page"},{default:o(()=>[i(t,{id:"water-amap-container",class:"amap-container"}),y.value?(u(),n(t,{key:0,class:"map-state"},{default:o(()=>[d("地图加载中…")]),_:1})):_.value?(u(),n(t,{key:1,class:"map-state error-state"},{default:o(()=>[d(c(_.value),1)]),_:1})):m("",!0),i(t,{class:"map-card"},{default:o(()=>[i(t,{class:"map-title"},{default:o(()=>[d("位置")]),_:1}),i(t,{class:"map-address"},{default:o(()=>[d(c(f.value),1)]),_:1}),i(t,{class:"map-coordinates"},{default:o(()=>[d(c(p.value.toFixed(6))+", "+c(w.value.toFixed(6)),1)]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-1dd89032"]]);export{w as default};