login.js 4.23 KB
import request from './request'
import config from '@/config.js'
import aes from '@/common/aes.js'

function pcLogin(data) {
  return request({
    // url: '/login',
    url: `${config.baseUrl_api}/loginZtx`,
    method: 'post',
    headers: {
      isToken: false
    },
    params: data
  }).then((res) => {
    uni.setStorageSync('token', 'Bearer ' + res.data.token)
  })
    .then(getInfo)
}

function bindIdcCode(idcCode) {
  return request({
    url: `${config.baseUrl_api}/bind?idcCode=${idcCode}`,
    method: 'post'
  })
}

function h5Login(userName) {
  return request({
    url: `/h5Login`,
    method: 'post',
    params: {
      username: userName
    }
  }).then((res) => {
    uni.setStorageSync('token', 'Bearer ' + res.data.token)
  }).then(getInfo)
}

function h5LoginAuto() {
  const userName = uni.getStorageSync('userName')
  if (userName) {
    return h5Login(userName)
  } else {
    uni.redirectTo({
      url: '/pages/index/login'
    })
    return Promise.reject()
  }
}

function logout() {
  return request({
    url: '/logout',
    method: 'post'
  }).then(() => {
    uni.removeStorageSync('token')
    uni.removeStorageSync('userName')
  })
}

function getCodeImg() {
  return request({
    url: `${config.baseUrl_api}/captchaImage`,
    method: 'get'
  })
}

// 代退图形认证的获取手机验证码
function getSmsCode(data) {
  return request({
    url: '/captchaSmsWithCaptchaImage',
    method: 'post',
    params: data
  })
}

function loginByPhone(phonenumber, code) {
  const data = {
    phonenumber,
    code
  }
  return request({
    url: `${config.baseUrl_api}/userLoginByPhoneForPc`,
    method: 'post',
    params: data
  }).then((res) => {
    uni.setStorageSync('token', 'Bearer ' + res.data.token)
  }).then(getInfo)
}

// 获取用户详细信息
function getInfo() {
  let app
  return request({
    url: `${config.baseUrl_api}/getInfoForPc`,
    method: 'get'
  }).then(res => {
	     app = getApp()
    const user = res.data.user
    uni.setStorageSync('userName', user.userName)
    uni.setStorageSync('perId', aes.encrypt(user.userId))
    app.globalData.userInfo = user
  }).catch(() => {
    app = getApp()
	  uni.removeStorageSync('token')
	  uni.removeStorageSync('userName')
	  app.globalData.isLogin = false
  })
}

// 团队会员用户注册接口
function groupMemberRegister(data) {
  return request({
    url: '/groupMemberRegister',
    method: 'post',
    params: data
  })
}
// 获取道馆信息
function getMyOwnMemberInfo() {
  return request({
    url: '/member/info/getMyOwnMemberInfo',
    method: 'get'
  }).then(res => {
    const app = getApp()
    app.globalData.authenticationStatus = res.data.authenticationStatus
    app.globalData.memberInfo = res.data.memberInfo
    app.globalData.isExam = res.data?.dept?.isExam
  })
}

// for match
function getWxUserPhone(phoneRes) {
  const currUser = uni.getStorageSync('currUser')
  // getNowOpenId()
  const nowOpenId = uni.getStorageSync('nowOpenId')
  return request({
    url: `/system/wx/updateMobile?openId=${nowOpenId}`,
    method: 'POST',
    params: {
      appId: appId,
      userId: currUser.id,
      encryptedData: phoneRes.encryptedData,
      errMsg: phoneRes.errMsg,
      iv: phoneRes.iv,
      rawData: phoneRes.rawData,
      signature: phoneRes.signature
    }
  }).then((res) => {
    const user = res.data
    // uni.setStorageSync('token', 'Bearer '+ user.token);
    uni.setStorageSync('token', user.token)
    uni.setStorageSync('currUser', user)
    return user
  })
}

function checkUserAuth(path) {
  const app = getApp()
  if (app.globalData.isLogin) {
    if (app.globalData.userInfo.perId) {
      return true
    } else {
      uni.navigateTo({
        url: '/myCenter/personInfo/index?path=' + encodeURIComponent(path)
      })
      return false
    }
  } else {
    uni.navigateTo({
      url: '/pages/index/login?path=' + encodeURIComponent(path)
    })
    return false
  }
}

export {
  pcLogin,
  getInfo,
  getCodeImg,
  getSmsCode,
  h5Login,
  h5LoginAuto,
  loginByPhone,
  groupMemberRegister,
  getMyOwnMemberInfo,
  logout,
  getWxUserPhone,
  checkUserAuth,
  bindIdcCode
}