1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- require('./utils/mixins_core')
- import fetchutil from './utils/http'
- // app.ts
- App<IAppOption>({
- globalData: {
- // @ts-ignore
- userInfo:'',
- hasAvatar: ''
- },
- // @ts-ignore
- watch(key, method) {
- var obj = this.globalData;
- //加个前缀生成隐藏变量,防止死循环发生
- // @ts-ignore
- 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];
- }
- }
- })
- },
- // @ts-ignore
- login() {
- // 登录
- wx.login({
- success: res => {
- fetchutil.get(`wxLogin/${res.code}`, {}, {}).then((response: any) => {
- wx.setStorageSync('token', response.data.token)
- this.globalData.userInfo = {
- ...this.globalData.userInfo,
- ...response.data.wxUser
- }
- // @ts-ignore
- this.globalData.hasAvatar = response.data.wxUser.avatarUrl
- })
- // 发送 res.code 到后台换取 openId, sessionKey, unionId
- },
- })
- },
- onLaunch() {
-
- // // @ts-ignore
- // this.login()
- let token = wx.getStorageSync('token')
- if (token) {
- fetchutil.get(`wxCheckToken`, {}, {}).then((response:any) => {
- this.globalData.userInfo = {
- ...this.globalData.userInfo,
- ...response.data
- }
- // @ts-ignore
- this.globalData.hasAvatar = response.data.avatarUrl
- }).catch(()=>{
- // @ts-ignore
- this.login()
- })
- } else {
- // @ts-ignore
- this.login()
- }
- },
- })
|