app.ts 2.5 KB

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