rk
2025-09-28 2304d7b140c5c5b4bf3a83f9ced8bff37d20c42e
small-program/App.vue
@@ -1,18 +1,99 @@
<script>
   import { mapState } from 'vuex'
   var QQMapWX = require('@/utils/qqmap-wx-jssdk.js')
   export default {
      onLaunch: function() {
         console.log('App Launch')
      computed: {
         ...mapState(['userInfo','openid'])
      },
      onLaunch: function() {
         var that = this;
         that.getLocaltionBiz()
         if (!this.openid || this.openid =='') {
            uni.login({
               provider: 'weixin',
               success: async function (loginRes) {
                  let { code } = loginRes;
                  let res = await that.$u.api.wxLogin({ code })
                  if (res && res.code === 200) {
                     that.$store.commit('setToken', res.data.token)
                     that.$store.commit('setOpenid', res.data.openid)
                     that.$store.commit('setUserInfo', res.data.member)
                  }
               }
            });
         } else {
            var that = this
            let res = this.$u.api.getMemberInfo({}).then(res =>{
               if (res && res.code === 200) {
                  that.$store.commit('setUserInfo', res.data)
               } else {
                  that.$store.commit('setToken','')
                  that.$store.commit('setUserInfo',{})
               }
            })
         }
      },
      onShow: function() {
         console.log('App Show')
      },
      onHide: function() {
         console.log('App Hide')
      },
      methods:{
         getLocaltionBiz(){
            var that =this
            uni.getLocation({
               type: 'wgs84',
               success: (addr) => {
                  const locParam = { latitude: addr.latitude, longitude: addr.longitude };
                  uni.setStorageSync('address', locParam);
                  var address =null
                  const qqmapsdk = new QQMapWX({
                      key: '4PXBZ-JLBC7-LCLXG-P2SZX-C4HYE-LDBLQ' //腾讯地图申请的key(后续需要公司提供,个人开发者额度有限)
                   });
                    // 腾讯地图逆地理编码
                  qqmapsdk.reverseGeocoder({
                     locParam,
                     success: function(res) {
                        console.log(res, '==================获取地址');
                        let info = res.result;
                        locParam.province = info.address_component.province;
                        locParam.city = info.address_component.city;
                        locParam.area = info.address_component.district;
                        locParam.street = info.address_component.street;
                        var ta = info.address  || '地址获取失败' ;
                        if(info.formatted_addresses  && info.formatted_addresses.recommend){
                           ta =info.formatted_addresses.recommend
                        }
                        locParam.address =ta
                        that.$store.commit('setPosition',locParam)
                        that.$isResolve()
                     },
                     fail: (err) => {
                        console.error('获取位置失败===========', err);
                        that.$store.commit('setPosition',locParam)
                        that.$isResolve()
                     }
                  });
                  // that.$store.commit('setPosition',locParam)
                  that.$isResolve()
               },
               fail: (err) => {
                  console.error('获取位置失败', err);
                  that.$isResolve()
               }
            });
         }
      }
   }
</script>
<style lang="scss">
   /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
   @import "uview-ui/index.scss";
   @import "uview-ui/index.scss";
   .toast-custom {
       width: 500px !important;
       font-size: 14px !important;
   }
</style>