| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- require('./utils/mixins_core')
- import fetchutil from './utils/http'
- // app.ts
- App({
- globalData: {
- userInfo: '',
- hasAvatar: ''
- },
- watch(key, method) {
- var obj = this.globalData;
- //加个前缀生成隐藏变量,防止死循环发生
- let ori = obj[key]; //obj[key]这个不能放在Object.defineProperty里
- if (ori) { //处理已经声明的变量,绑定处理
- method(ori);
- }
- Object.defineProperty(obj, key, {
- configurable: true,
- enumerable: true,
- set: function (value) {
- this['_' + key] = value;
- method(value);
- },
- get: function () {
- // 在其他界面调用key值的时候,这里就会执行。
- if (typeof this['_' + key] == 'undefined') {
- if (ori) {
- //这里读取数据的时候隐藏变量和 globalData设置不一样,所以要做同步处理
- this['_' + key] = ori;
- return ori;
- } else {
- return undefined;
- }
- } else {
- return this['_' + key];
- }
- }
- })
- },
- login() {
- wx.login({
- success: res => {
- fetchutil.get(`api/wx/login/${res.code}`, {}, {}).then((response) => {
- wx.setStorageSync('token', response.data.token)
- this.globalData.userInfo = {
- ...this.globalData.userInfo,
- ...response.data.wxUser
- }
- this.globalData.hasAvatar = response.data.wxUser.avatarUrl
- console.log(response);
- })
- // 获取用户手机号
- // fetchutil.get(`api/wx/getPhone/${res.code}`, {}, {}).then((res) => {
- // console.log('获取用户手机号', res);
- // })
- },
- })
- },
- onLaunch() {
- let token = wx.getStorageSync('token')
- if (token) {
- fetchutil.get(`api/wx/checkToken`, {}, {}).then((response) => {
- if (!response.data) {
- this.login()
- }
- }).catch(() => {
- // @ts-ignore
- this.login()
- })
- } else {
- // @ts-ignore
- this.login()
- }
- },
- })
|