app.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. // app.js
  2. App({
  3. onLaunch () {
  4. // 用户默认登录
  5. // 微信小程序流程
  6. function user (app) {
  7. return new Promise((resolve, reject) => {
  8. const accountinfo = wx.getAccountInfoSync();
  9. app.globalData.appid = accountinfo.miniProgram.appId;
  10. // login登录
  11. wx.login({
  12. success: res => {
  13. let code = res.code;
  14. app.globalData.code = code;
  15. // 账号信息
  16. wx.getUserInfo({
  17. success: function (res) {
  18. let { encryptedData, iv, userInfo } = res;
  19. app.globalData.encryptedData = encryptedData;
  20. app.globalData.iv = iv;
  21. app.globalData.avatarUrl = userInfo.avatarUrl;
  22. resolve();
  23. }
  24. })
  25. },
  26. fail: function () {
  27. reject("wx.login获取失败")
  28. },
  29. })
  30. })
  31. }
  32. //用户自动登录
  33. function login (app) {
  34. return new Promise((resolve, reject) => {
  35. let { code, appid } = app.globalData, token = '';
  36. app.globalData.axios({
  37. url: "/account/code2Session/",
  38. method: "post",
  39. data: { code, appid },
  40. success (res) {
  41. wx.setStorage({
  42. data: '',
  43. key: 'token',
  44. })
  45. try { token = res.data.data.token; } catch (err) { };
  46. !!token ? wx.setStorage({
  47. data: 'JWT ' + token,
  48. key: 'token',
  49. }) : '';
  50. let data = res.data.data;
  51. let user = {
  52. lock: !!token,
  53. ...data
  54. }
  55. app.globalData = { ...app.globalData, user };
  56. resolve(token);
  57. }
  58. })
  59. })
  60. }
  61. user(this).then(res => login(this)).then(res => {
  62. if (!!res) {
  63. // this.globalData({})
  64. console.log(this.globalData)
  65. }
  66. }).catch(res => this.globalData.error(res))
  67. // 请求用户地址
  68. this.globalData["useraddress"] = {
  69. name: "张三",
  70. tel: "188xxxx5629",
  71. lock: true, //默认
  72. address: "北京北京市房山区东海道场"
  73. };
  74. },
  75. globalData: {
  76. // 定义tabber
  77. tabber: {
  78. tabberlist: [{
  79. name: '首页',
  80. url: "/pages/index/index", //对应路径
  81. icon: "home-o",//不自定义图片,使用vant的图标
  82. }, {
  83. name: "我的",
  84. url: "/pages/login/login",
  85. src: "",
  86. icon: "friends-o",
  87. }],//跳转链接
  88. active: 0,//默认活动窗口
  89. activeColor: "#1989fa",//选中时的颜色
  90. inactiveColor: "#7d7e80",//未选中时的颜色
  91. },
  92. // 用户登录状态
  93. user: {
  94. lock: false,
  95. name: '未登录',
  96. tel: "",
  97. face: "https://img.yzcdn.cn/vant/cat.jpeg",
  98. },
  99. // 支付时,用户地址
  100. useraddress: {},
  101. // 全局请求方法
  102. axios ({ url: _url = '', method: _method = 'post', data: _data = {}, success: _success = () => { }, complete: _complete = () => { } }) {
  103. let globalurl = "http://192.168.2.45:8887", error = (data) => {
  104. console.log(data)
  105. };
  106. return new Promise(resolve => {
  107. wx.request({
  108. url: globalurl + _url,
  109. method: _method,
  110. header: {
  111. 'Content-Type': 'application/x-www-form-urlencoded',
  112. 'Authorization': !wx.getStorageSync('token') ? '' : wx.getStorageSync('token')
  113. },
  114. success (res) {
  115. if (!!res.data.msg) {
  116. error(res.data.msg);
  117. return false;
  118. }
  119. _success(res)
  120. },
  121. data: _data,
  122. fail () {
  123. error("请求失败")
  124. },
  125. complete () {
  126. _complete();
  127. resolve()
  128. }
  129. })
  130. })
  131. },
  132. }
  133. })