1 line
8.4 KiB
JavaScript
1 line
8.4 KiB
JavaScript
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["pages-station-index"],{"48ce":function(t,i,n){"use strict";n("6a54");var a=n("f5bd").default;Object.defineProperty(i,"__esModule",{value:!0}),i.list=void 0;var e=a(n("3318")),o={list:"station/list"};i.list=function(t){return e.default.get(o.list,t)}},"5b28":function(t,i,n){var a=n("db22");a.__esModule&&(a=a.default),"string"===typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);var e=n("967d").default;e("24ad42b8",a,!0,{sourceMap:!1,shadowMode:!1})},"8b16":function(t,i,n){"use strict";n("6a54");var a=n("3639").default;Object.defineProperty(i,"__esModule",{value:!0}),i.default=void 0,n("c223"),n("bf0f"),n("aa9c"),n("fd3c"),n("aa77"),n("64aa");var e=a(n("48ce")),o={data:function(){return{userLocation:{latitude:0,longitude:0},markers:[],scale:13,now:{}}},mounted:function(){this.getUserLocation()},methods:{getUserLocation:function(){var t=this;uni.authorize({scope:"scope.userLocation",success:function(){uni.getLocation({type:"wgs84",success:function(i){t.userLocation.latitude=i.latitude,t.userLocation.longitude=i.longitude,uni.setStorageSync("latitude",i.latitude),uni.setStorageSync("longitude",i.longitude),t.getRegion(i.latitude,i.longitude).then((function(n){uni.setStorageSync("province",n.province),uni.setStorageSync("city",n.city),uni.setStorageSync("district",n.district),t.mapapiStation(i.latitude,i.longitude)})).catch((function(t){console.error("获取区域信息失败:",t)}))},fail:function(t){console.error("获取位置失败",t)}})},fail:function(t){console.error("授权失败",t)}})},mapapiStation:function(t,i){var n=this,a="https://apis.map.qq.com/ws/place/v1/search?key=".concat("67NBZ-MHUH4-ODCU2-KNPZW-3OGJF-ARBRQ","&keyword=中国石油&boundary=nearby(").concat(t,",").concat(i,",1000)&page_size=20");return new Promise((function(t,i){uni.request({url:a,method:"GET",success:function(i){for(var a=[],e=i.data.data,o=0;o<e.length;o++)a.push({iconPath:"/static/marker.png",id:o,name:e[o].title,latitude:e[o].location.lat,longitude:e[o].location.lng,address:e[o].address,distance:(e[o]._distance/1e3).toFixed(2),width:32,height:32});n.markers=a,n.now=a[0],t(a)},fail:function(t){console.error("请求失败:",t),i(t)}})}))},getRegion:function(t,i){var n="https://apis.map.qq.com/ws/geocoder/v1/?location=".concat(t,",").concat(i,"&key=").concat("67NBZ-MHUH4-ODCU2-KNPZW-3OGJF-ARBRQ");return new Promise((function(t,i){uni.request({url:n,method:"GET",success:function(n){var a=n.data;if(0===a.status){var e=a.result.address,o=a.result.address_component.province,s=a.result.address_component.city,c=a.result.address_component.district,r={address:e,province:o,city:s,district:c};t(r)}else console.error("逆地理编码失败:",a.message),i(a.message)},fail:function(t){console.error("请求失败:",t),i(t)}})}))},getStationList:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,i=this;return new Promise((function(n,a){e.list({page:t}).then((function(t){var a=t.data.list;i.markers=a,i.getRegion(a[0].latitude,a[0].longitude).then((function(t){a[0].address=t.address})).catch((function(t){console.error("获取区域信息失败:",t)})),i.now=a[0],n(a)}))}))},updateDistances:function(){var t=this;this.markers=this.markers.map((function(i){return i.distance=t.calculateDistance(t.userLocation.latitude,t.userLocation.longitude,i.latitude,i.longitude),i}))},calculateDistance:function(t,i,n,a){var e=this.rad(t),o=this.rad(n),s=e-o,c=this.rad(i)-this.rad(a),r=2*Math.asin(Math.sqrt(Math.pow(Math.sin(s/2),2)+Math.cos(e)*Math.cos(o)*Math.pow(Math.sin(c/2),2)));return r*=6378.137,r=Math.round(1e4*r)/1e4,r.toFixed(2)},rad:function(t){return t*Math.PI/180},onMarkerTap:function(t){var i=t.detail.markerId,n=this.markers.find((function(t){return t.id===i}));n&&(this.now=n)},clickcontrol:function(){uni.createMapContext("map",this).moveToLocation({latitude:this.userLocation.latitude,longitude:this.userLocation.longitude})},navigate:function(){uni.openLocation({latitude:Number(this.now.latitude),longitude:Number(this.now.longitude),name:this.now.name,address:this.now.address,scale:18})},oil:function(){this.$navTo("pages/goods/list?location=1")}}};i.default=o},a1fd:function(t,i,n){"use strict";n.r(i);var a=n("caf6"),e=n("c250");for(var o in e)["default"].indexOf(o)<0&&function(t){n.d(i,t,(function(){return e[t]}))}(o);n("b8ed");var s=n("828b"),c=Object(s["a"])(e["default"],a["b"],a["c"],!1,null,"0f843550",null,!1,a["a"],void 0);i["default"]=c.exports},b8ed:function(t,i,n){"use strict";var a=n("5b28"),e=n.n(a);e.a},c250:function(t,i,n){"use strict";n.r(i);var a=n("8b16"),e=n.n(a);for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(i,t,(function(){return a[t]}))}(o);i["default"]=e.a},caf6:function(t,i,n){"use strict";n.d(i,"b",(function(){return a})),n.d(i,"c",(function(){return e})),n.d(i,"a",(function(){}));var a=function(){var t=this,i=t.$createElement,n=t._self._c||i;return n("v-uni-view",{staticClass:"container"},[n("v-uni-map",{staticStyle:{width:"100%",height:"100vh"},attrs:{id:"map",latitude:t.userLocation.latitude,longitude:t.userLocation.longitude,markers:t.markers,"show-location":!0,scale:t.scale},on:{markertap:function(i){arguments[0]=i=t.$handleEvent(i),t.onMarkerTap.apply(void 0,arguments)}}},[n("v-uni-cover-image",{staticClass:"img-map1",attrs:{src:"/static/center.png"}}),n("v-uni-cover-image",{staticClass:"img-map2",attrs:{src:"/static/locate.png"},on:{click:function(i){arguments[0]=i=t.$handleEvent(i),t.clickcontrol.apply(void 0,arguments)}}})],1),n("v-uni-view",{staticClass:"station-list"},[void 0!=t.now.id?n("v-uni-view",{staticClass:"station-item"},[n("v-uni-view",{staticClass:"station-info"},[n("v-uni-text",{staticClass:"station-name"},[t._v(t._s(t.now.name))]),n("v-uni-view",[n("v-uni-text",{staticClass:"station-distance"},[t._v("距您 "+t._s(t.now.distance)+"km")]),n("v-uni-text",{staticClass:"station-addres"},[t._v(t._s(t.now.address))])],1),n("v-uni-view",{staticClass:"station-oil"},[n("v-uni-text",[t._v("0#")]),n("v-uni-text",[t._v("92#")]),n("v-uni-text",[t._v("95#")])],1),n("v-uni-view",{staticClass:"station-time-info"},[n("v-uni-view",{staticClass:"time-info-time"},[t._v("00:00-23:59 营业")]),n("v-uni-view",{staticClass:"time-info-plan"},[n("v-uni-text",[t._v("便利点")]),n("v-uni-text",[t._v("卫生间")])],1)],1)],1),n("v-uni-view",{staticClass:"station-action"},[n("v-uni-button",{staticClass:"navigate-button",on:{click:function(i){arguments[0]=i=t.$handleEvent(i),t.navigate()}}},[t._v("导航加油站")]),n("v-uni-button",{staticClass:"navigate-button",on:{click:function(i){arguments[0]=i=t.$handleEvent(i),t.oil()}}},[t._v("去购券")])],1)],1):n("v-uni-view",{staticClass:"station-item"},[n("v-uni-view",{staticClass:"station-info"},[n("v-uni-text",{staticClass:"station-name"},[t._v("您所在的城市,暂无可用加油站")])],1)],1)],1)],1)},e=[]},db22:function(t,i,n){var a=n("c86c");i=a(!1),i.push([t.i,".container[data-v-0f843550]{display:flex;flex-direction:column;align-items:center}.station-list[data-v-0f843550]{width:100%;padding:%?20?%;position:fixed;bottom:%?80?%;height:%?300?%}.station-item[data-v-0f843550]{padding:%?20?%;background-color:#fff;margin-bottom:%?10?%;border-radius:%?12?%;box-shadow:0 0 %?10?% rgba(0,0,0,.1);height:%?350?%}.station-info[data-v-0f843550]{height:%?250?%;display:flex;flex-direction:column;gap:%?10?%}.station-name[data-v-0f843550]{font-size:%?35?%;font-weight:700;color:#333}.station-distance[data-v-0f843550]{font-size:%?26?%;margin-top:%?4?%;margin-right:%?25?%}.station-oil[data-v-0f843550]{display:flex;gap:%?12?%}.station-oil uni-text[data-v-0f843550]{background-color:#5983b1;color:#f0f8ff;padding:%?4?% %?8?%;font-size:12px;border-radius:4px}.station-time-info[data-v-0f843550]{display:flex;align-items:center;gap:%?20?%}.station-time-info .time-info-time[data-v-0f843550]{font-size:%?26?%;color:#666}.station-time-info .time-info-plan[data-v-0f843550]{font-size:%?24?%;display:flex;gap:%?10?%}.station-time-info .time-info-plan uni-text[data-v-0f843550]{padding:%?4?%;border:%?1?% solid #007aff;color:#007aff;border-radius:%?8?%}.navigate-button[data-v-0f843550]{padding:%?4?% %?14?%;background-color:#007aff;color:#fff;border:none;border-radius:%?4?%;font-size:%?22?%;width:%?150?%}.navigate-button[data-v-0f843550]:active{background-color:#005bb5}.station-action[data-v-0f843550]{display:flex}.img-map1[data-v-0f843550]{width:%?60?%;height:%?60?%;position:fixed;bottom:47%;left:46%}.img-map2[data-v-0f843550]{width:%?60?%;height:%?60?%;position:fixed;bottom:30vh;right:2vh;background-color:#fff;border-radius:5px}",""]),t.exports=i}}]); |