app.ts 2.7 KB

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