| 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 as v}from"./index--EKUGlHU.js";import{_ as m}from"./_plugin-vue_export-helper.BCo6x5W8.js";var p={};let f=null;const w=m(e({__name:"map",setup(e){const m=a(null),w=a(0),_=a(0),y=a("配送地址"),E=a(!0),A=a("");let M=null;return t(()=>[{id:1,latitude:w.value,longitude:_.value,title:y.value,callout:{content:y.value,display:"ALWAYS",padding:8,borderRadius:4}}]),r(async e=>{var a;if(w.value=Number(null==e?void 0:e.latitude),_.value=Number(null==e?void 0:e.longitude),y.value=("string"==typeof(a=null==e?void 0:e.address)?decodeURIComponent(a):"")||"配送地址",!Number.isFinite(w.value)||!Number.isFinite(_.value)||Math.abs(w.value)>90||Math.abs(_.value)>180)return A.value="地图坐标无效,请返回后重试",void(E.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(f)return f;const a=String(p.VITE_AMAP_KEY||"").trim(),t=String(p.VITE_AMAP_SECURITY_CODE||"").trim();return a?(t&&(e._AMapSecurityConfig={securityJsCode:t}),f=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 f=null,e}),f):Promise.reject(new Error("未配置高德地图 Key"))}();if(!m.value)return;M=new e.Map(m.value,{zoom:16,center:[_.value,w.value],resizeEnable:!0,viewMode:"2D"}),new e.Marker({position:[_.value,w.value],title:y.value,map:M})}catch(t){A.value=t instanceof Error?t.message:"高德地图加载失败"}finally{E.value=!1}}),l(()=>{var e;return null==(e=null==M?void 0:M.destroy)?void 0:e.call(M)}),(e,a)=>{const t=s;return u(),n(t,{class:"map-page"},{default:o(()=>[i(t,{ref_key:"mapElement",ref:m,class:"amap-container"},null,512),E.value?(u(),n(t,{key:0,class:"map-state"},{default:o(()=>[d("地图加载中…")]),_:1})):A.value?(u(),n(t,{key:1,class:"map-state error-state"},{default:o(()=>[d(c(A.value),1)]),_:1})):v("",!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(y.value),1)]),_:1}),i(t,{class:"map-coordinates"},{default:o(()=>[d(c(w.value.toFixed(6))+", "+c(_.value.toFixed(6)),1)]),_:1})]),_:1})]),_:1})}}}),[["__scopeId","data-v-9d45de20"]]);export{w as default};
|