Showing
6 changed files
with
37 additions
and
17 deletions
| @@ -9,7 +9,7 @@ | @@ -9,7 +9,7 @@ | ||
| 9 | <view> | 9 | <view> |
| 10 | <view class="name Semibold">{{seller.sellername}}</view> | 10 | <view class="name Semibold">{{seller.sellername}}</view> |
| 11 | <view wx:if="{{hasSlogan && seller.slogan}}" class="slogan">“{{seller.slogan}}”</view> | 11 | <view wx:if="{{hasSlogan && seller.slogan}}" class="slogan">“{{seller.slogan}}”</view> |
| 12 | - <view class="text">{{seller.cate[0].name?seller.cate[0].name+' | ':''}}距当前位置{{seller.distance}}</view> | 12 | + <view class="text">{{seller.cate[0].name?seller.cate[0].name+' | ':''}}{{seller.distance?('距当前位置'+seller.distance):''}}</view> |
| 13 | <view wx:if="{{hasStat}}" class="stat"> | 13 | <view wx:if="{{hasStat}}" class="stat"> |
| 14 | <stat stat="{{seller.score}}"></stat> | 14 | <stat stat="{{seller.score}}"></stat> |
| 15 | </view> | 15 | </view> |
| 1 | // components/userinfo/getpos.js | 1 | // components/userinfo/getpos.js |
| 2 | +let failCount=0; | ||
| 2 | Component({ | 3 | Component({ |
| 3 | /** | 4 | /** |
| 4 | * 组件的属性列表 | 5 | * 组件的属性列表 |
| 5 | */ | 6 | */ |
| 6 | - properties: {}, | 7 | + properties: { |
| 8 | + hasAllowFail:{ | ||
| 9 | + type:Boolean, | ||
| 10 | + value:false, | ||
| 11 | + } | ||
| 12 | + }, | ||
| 7 | 13 | ||
| 8 | /** | 14 | /** |
| 9 | * 组件的初始数据 | 15 | * 组件的初始数据 |
| @@ -19,10 +25,19 @@ Component({ | @@ -19,10 +25,19 @@ Component({ | ||
| 19 | getPos(){ | 25 | getPos(){ |
| 20 | this._getPos().then(res => { | 26 | this._getPos().then(res => { |
| 21 | console.log('wx.getLocation.then', res); | 27 | console.log('wx.getLocation.then', res); |
| 28 | + failCount=0; | ||
| 22 | this.triggerEvent("pos",res); | 29 | this.triggerEvent("pos",res); |
| 23 | }).catch((e) => { | 30 | }).catch((e) => { |
| 24 | - console.log('wx.getLocation.catch', e); | ||
| 25 | - if(e.errCode==2){//定位失败 | 31 | + console.log('wx.getLocation.catch', failCount,e); |
| 32 | + if(this.data.hasAllowFail){ | ||
| 33 | + this.triggerEvent("pos",{ | ||
| 34 | + latitude: '', | ||
| 35 | + longitude: '', | ||
| 36 | + }); | ||
| 37 | + return; | ||
| 38 | + } | ||
| 39 | + if(failCount>2){//定位失败 | ||
| 40 | + failCount=0; | ||
| 26 | wx.showModal({ | 41 | wx.showModal({ |
| 27 | title:'定位失败', | 42 | title:'定位失败', |
| 28 | content:'请开启位置服务', | 43 | content:'请开启位置服务', |
| @@ -44,12 +59,13 @@ Component({ | @@ -44,12 +59,13 @@ Component({ | ||
| 44 | header: '定位失败', | 59 | header: '定位失败', |
| 45 | body: '需要地理位置授权' | 60 | body: '需要地理位置授权' |
| 46 | }).show(); | 61 | }).show(); |
| 62 | + failCount=0; | ||
| 47 | } else { | 63 | } else { |
| 64 | + failCount=failCount+1; | ||
| 48 | setTimeout(() => { | 65 | setTimeout(() => { |
| 49 | this.getPos() | 66 | this.getPos() |
| 50 | }, 500) | 67 | }, 500) |
| 51 | } | 68 | } |
| 52 | - | ||
| 53 | }) | 69 | }) |
| 54 | }, | 70 | }, |
| 55 | _getPos(){ | 71 | _getPos(){ |
| @@ -115,11 +115,13 @@ Page({ | @@ -115,11 +115,13 @@ Page({ | ||
| 115 | this.offset+=1 | 115 | this.offset+=1 |
| 116 | } | 116 | } |
| 117 | sellers.forEach((seller,si) => { | 117 | sellers.forEach((seller,si) => { |
| 118 | - seller.distance = parseInt(seller.distance); | ||
| 119 | - if (seller.distance > 1000) { | ||
| 120 | - seller.distance = (seller.distance / 1000).toFixed(2) + '公里' | ||
| 121 | - } else { | ||
| 122 | - seller.distance += '米'; | 118 | + if(seller.distance){ |
| 119 | + seller.distance = parseInt(seller.distance); | ||
| 120 | + if (seller.distance > 1000) { | ||
| 121 | + seller.distance = (seller.distance / 1000).toFixed(2) + '公里' | ||
| 122 | + } else { | ||
| 123 | + seller.distance += '米'; | ||
| 124 | + } | ||
| 123 | } | 125 | } |
| 124 | if(seller.seller_tel){ | 126 | if(seller.seller_tel){ |
| 125 | seller.seller_tel=seller.seller_tel.split(','); | 127 | seller.seller_tel=seller.seller_tel.split(','); |
| @@ -13,4 +13,4 @@ | @@ -13,4 +13,4 @@ | ||
| 13 | <view class="seller flex-vc" wx:if="{{!hasMore}}">没有更多了</view> | 13 | <view class="seller flex-vc" wx:if="{{!hasMore}}">没有更多了</view> |
| 14 | </view> | 14 | </view> |
| 15 | </view> | 15 | </view> |
| 16 | -<getpos bindpos="onpos" id="getpos"></getpos> | ||
| 16 | +<getpos bindpos="onpos" id="getpos" hasAllowFail></getpos> |
| @@ -109,11 +109,13 @@ Page({ | @@ -109,11 +109,13 @@ Page({ | ||
| 109 | this.offset+=1 | 109 | this.offset+=1 |
| 110 | } | 110 | } |
| 111 | sellers.forEach((seller,si) => { | 111 | sellers.forEach((seller,si) => { |
| 112 | - seller.distance = parseInt(seller.distance); | ||
| 113 | - if (seller.distance > 1000) { | ||
| 114 | - seller.distance = (seller.distance / 1000).toFixed(2) + '公里' | ||
| 115 | - } else { | ||
| 116 | - seller.distance += '米'; | 112 | + if(seller.distance) { |
| 113 | + seller.distance = parseInt(seller.distance); | ||
| 114 | + if (seller.distance > 1000) { | ||
| 115 | + seller.distance = (seller.distance / 1000).toFixed(2) + '公里' | ||
| 116 | + } else { | ||
| 117 | + seller.distance += '米'; | ||
| 118 | + } | ||
| 117 | } | 119 | } |
| 118 | if(seller.seller_tel){ | 120 | if(seller.seller_tel){ |
| 119 | seller.seller_tel=seller.seller_tel.split(','); | 121 | seller.seller_tel=seller.seller_tel.split(','); |
| @@ -13,4 +13,4 @@ | @@ -13,4 +13,4 @@ | ||
| 13 | <view class="flex-vc" wx:if="{{!hasMore}}">没有更多了</view> | 13 | <view class="flex-vc" wx:if="{{!hasMore}}">没有更多了</view> |
| 14 | </view> | 14 | </view> |
| 15 | </view> | 15 | </view> |
| 16 | -<getpos bindpos="onpos" id="getpos"></getpos> | ||
| 16 | +<getpos bindpos="onpos" id="getpos" hasAllowFail></getpos> |
-
Please register or login to post a comment