aa
jiangping
2024-08-02 7dc29ed74ebaa8a0e66f68264d9a13f95dc3af21
wechat_jiaxuan/app.js
@@ -1,36 +1,126 @@
import {
  wxLoginCustomer
  wxLoginCustomer,
  getMemberInfo
} from './api/index'
import CustomHook from 'spa-custom-hooks';
let globalData = {
  token: wx.getStorageSync('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 member = wx.getStorageSync('member')
    if (member) {
    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 {
          // 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('登录失败!')
              }
@@ -44,7 +134,26 @@
        }
      })
    }
  },
  onShow(options) {
    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')