12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- Component({
- properties: {
- changeCommunity: {
- type: Object,
- value: {}
- },
- community: {
- type: Object,
- value: {}
- },
- visible: {
- type: Boolean,
- value: false
- },
- canChange: {
- type: Boolean,
- value: true
- },
- groupInfo: {
- type: Object,
- value: {
- group_name: '社区',
- owner_name: '团长'
- }
- },
- cancelFn: {
- type: Boolean,
- value: false
- }
- },
- attached() {
- this.countDistance()
- },
- methods: {
- countDistance: function () {
- let that = this;
- wx.getLocation({
- type: 'wgs84',
- success(res) {
- let {changeCommunity, community} = that.data;
- const latitude = res.latitude;
- const longitude = res.longitude;
- let lat1 = community.lat || '';
- let lon1 = community.lon || '';
- let lat2 = changeCommunity.lat || '';
- let lon2 = community.lon || '';
- if(lat1 && lon1 && lat2 && lon2) {
- let distance1 = that.getDistance(latitude, longitude, lat1, lon1);
- let distance2 = that.getDistance(latitude, longitude, lat2, lon2);
- community.distance = "距您"+distance1.toFixed(2)+"km";
- changeCommunity.distance = "距您"+distance2.toFixed(2)+"km";
- that.setData({ community, changeCommunity })
- }
- }
- })
- },
- getDistance: function (lat1, lng1, lat2, lng2) {
- var radLat1 = lat1 * Math.PI / 180.0;
- var radLat2 = lat2 * Math.PI / 180.0;
- var a = radLat1 - radLat2;
- var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
- var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
- Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
- s = s * 6378.137;
- s = Math.round(s * 10000) / 10000;
- return s;
- },
- switchCommunity: function (e) {
- let type = e.currentTarget.dataset.type;
- if (type == 0 || !this.data.canChange) {
- this.closeModal();
- } else {
- this.data.canChange && this.triggerEvent('changeComunity'), getApp().globalData.goodsListCarCount = [];
- }
- },
- closeModal: function () {
- this.data.cancelFn && this.triggerEvent('noChange');
- this.setData({
- visible: false
- })
- }
- }
- })
|