app.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // app.ts
  2. import { api_login, api_queryUserInfo } from './api/login';
  3. const config = require("./config");
  4. App<IAppOption>({
  5. globalData: {
  6. baseUrl: config?.baseUrl,
  7. appId: '',
  8. deviceNum: '', // 设备信息
  9. isLogin: false, // 是否登录
  10. userInfo: {} as any
  11. },
  12. onLaunch() {
  13. // 展示本地存储能力
  14. // const logs = wx.getStorageSync('logs') || []
  15. // logs.unshift(Date.now())
  16. // wx.setStorageSync('logs', logs)
  17. wx.showLoading({
  18. mask: true,
  19. title: "加载中...",
  20. });
  21. this.setAppId();
  22. // 登录
  23. wx.login({
  24. success: async (res) => {
  25. this.onLogin(res.code)
  26. },
  27. })
  28. },
  29. setAppId() {
  30. //获取当前小程序appId
  31. const accountInfo = wx.getAccountInfoSync();
  32. this.globalData.appId = accountInfo.miniProgram.appId;
  33. // wxRequest.config.appid = accountInfo.miniProgram.appId;
  34. //先设置appid再引入接口文件,防止appid未更新问题
  35. // require("./utils/request/api.js");
  36. // 获取设备信息
  37. const deviceInfo = wx.getDeviceInfo()
  38. // 品牌 设备型号 操作系统及版本 客户端平台
  39. const deviceNum = deviceInfo.brand + '-' + deviceInfo.model + '-' + deviceInfo.platform + '-' + deviceInfo.system
  40. this.globalData.deviceNum = deviceNum
  41. },
  42. // userInfoReadyCallback(result) {
  43. // console.log(result, 'result')
  44. // }
  45. /** 微信登录 */
  46. async onLogin(code: string) {
  47. try {
  48. // 开始登录
  49. const { data } = await api_login({
  50. autoRegister: false,
  51. client_id: 'cooleshow-student-wxlite',
  52. client_secret: 'cooleshow-student-wxlite',
  53. deviceNum: this.globalData.deviceNum,
  54. extra: '',
  55. grant_type: 'password',
  56. loginType: 'WECHAT_MA',
  57. multiUser: false,
  58. username: this.globalData.appId,
  59. password: code
  60. })
  61. if(data.code === 200) {
  62. const userToken = data.data.token_type + " " + data.data.access_token;
  63. wx.setStorageSync("token", userToken);
  64. this.globalData.isLogin = true;
  65. const users = await api_queryUserInfo({ wxAppId: this.globalData.appId })
  66. if(users.data.code === 200) {
  67. this.globalData.userInfo = users.data.data
  68. } else {
  69. wx.removeStorageSync("token");
  70. this.globalData.isLogin = false
  71. }
  72. console.log(users)
  73. } else {
  74. this.globalData.isLogin = false;
  75. }
  76. } catch {}
  77. wx.hideLoading()
  78. }
  79. })