liukangdong
2024-08-05 00bf17838b496e6fcfed2e521f9c27f8f0e3e3c7
wechat_jiaxuan/app.js
@@ -1,35 +1,130 @@
import { wxLoginCustomer } from './api/index'
import {
  wxLoginCustomer,
  getMemberInfo
} from './api/index'
import CustomHook from 'spa-custom-hooks';
let globalData = {
  // token: wx.getStorageSync('token'),
  token: '',
  primary: '#B08771',
  bottomLift: ''
}
let pathMap = [
  '/pages/detailDis/product',
  '/pages/detailDis/case',
  '/pages/detailDis/realpic',
  '/pages/consult/detail',
  '/pages/productVideo/index',
]
App({
  globalData: {
    primary: '#B08771',
    bottomLift: ''
  },
  onLaunch: function () {
  globalData,
  onLaunch: function (op) {
    console.log('options', op.query)
    //获取当前设备信息
    const WindowInfo = wx.getWindowInfo()
    if (WindowInfo.safeArea.top > 20) {
      this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom;
      this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom
    }
    //
    const res = wx.getStorageSync('member')
    if (res) {
      this.globalData.userInfo = res
  },
  onShow(op) {
    // 授权登录
    var userId = null
    if (op.query.scene) {
      let temp = op.query.scene.split('_')
      userId = temp[2]
    }
    const token = wx.getStorageSync('token') || ''
    if (token) {
      getMemberInfo({
        isAuth: true
      }).then(res => {
        if (res.code !== 200) {
          setTimeout(() => {
            wx.showLoading({
              title: '正在重新登录...',
              mask: true
            })
          }, 200)
          setTimeout(() => {
            wx.hideLoading()
          }, 1000)
          wx.login({
            timeout: 5000,
            success: (res) => {
              var userId = null
              if (op.query.scene) {
                let temp = op.query.scene.split('_')
                userId = temp[2]
              }
              if (res.code) {
                //发起网络请求
                wxLoginCustomer({
                  code: res.code,
                  userId
                }).then(res => {
                  wx.setStorageSync('token', res.data.token)
                  this.globalData.token = res.data.token
                  if (op.query.scene) {
                    let temp = op.query.scene.split('_')
                    wx.navigateTo({
                      url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
                    })
                  }
                  console.log('拿到token了', res.data.token);
                  if (res && res.data.member) {
                    wx.setStorageSync('member', res.data.member)
                    wx.setStorageSync('openid', res.data.member.openid)
                    wx.setStorageSync('sessionKey', res.data.sessionKey)
                  } else {
                    console.log('登录失败!')
                  }
                })
              } else {
                console.log('登录失败!' + res)
              }
            },
            fail(err) {
              console.log(err)
            }
          })
        } else {
          this.globalData.token = token
          // if (op.query.scene) {
          //   let temp = op.query.scene.split('_')
          //   wx.navigateTo({
          //     url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
          //   })
          // }
        }
      })
    } else {
      // 登录
      // 授权登录
      wx.login({
        timeout: 5000,
        success(res) {
        success: (res) => {
          if (op.query.scene) {
            let temp = op.query.scene.split('_')
            userId = temp[2]
          }
          if (res.code) {
            //发起网络请求
            wxLoginCustomer({
              code: res.code
              code: res.code,
              userId
            }).then(res => {
              console.log(res)
              wx.setStorageSync('token', res.data.token)
              this.globalData.token = res.data.token
              if (op.query.scene) {
                let temp = op.query.scene.split('_')
                wx.navigateTo({
                  url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
                })
              }
              console.log('拿到token了', res.data.token);
              if (res && res.data.member) {
                wx.setStorageSync('member', res.data.member)
                wx.setStorageSync('openid', res.data.member.openid)
                wx.setStorageSync('sessionKey', res.data.sessionKey)
                wx.setStorageSync('token', res.data.token)
              } else {
                console.log('登录失败!')
              }
@@ -43,5 +138,24 @@
        }
      })
    }
    // const token = wx.getStorageSync('token') || ''
    // if(token){
    //   if (options.query.scene) {
    //     let temp = options.query.scene.split('_')
    //     wx.navigateTo({
    //       url: `${pathMap[temp[1]]}?id=${temp[0]}&userId=${temp[2]}`,
    //     })
    //   }
    // }
  }
})
})
CustomHook.install({
  'Login': {
    name: 'Login',
    watchKey: 'token',
    onUpdate(val) {
      //有token则触发此钩子
      return !!val;
    }
  }
}, globalData || 'globalData')