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