//app.js import { systemInfo, routers, isFn, getGlobalVal, getWxUserInfoSetting, getUpdateManager } from './utils/util.js' import { WxLogin, FirstWxLogin, GetMineInfo } from './utils/api.js' const { reLaunch, redirectTo } = routers() App({ onLaunch: function (options) { this.globalData.options = options getUpdateManager() wx.getSystemInfo({ success: e => { let modelmes = e.model; if (modelmes.search('iPhone X' || 'iPhone 11') != -1) { this.globalData.isIphoneX = true } } }) wx.onMemoryWarning(function (e) { console.log('onMemoryWarningReceive', e) }) }, onShow: function (options) { this.globalData.options = options }, onHide: function (e) { }, onError: function (e) { wx.showToast({ title: '程序执行失败', icon: 'none' }) }, onPageNotFound: function (e) { wx.showToast({ title: '没有找到对应页面', icon: 'none' }) setTimeout(() => { redirectTo({ url: 'pages/index/index' }) }, 2000) }, /** * 初始化 */ init: function () { // redirectTo({ url: 'president/pages/home/home' }) // reLaunch({ url: 'dispatcher/pages/withdraw/withdraw'}) // reLaunch({ url: 'dispatcher/pages/dispatch_go/dispatch_go'}) // reLaunch({ url: 'parents/pages/home/home'}) // reLaunch({ url: 'dispatcher/pages/home/home' }) // return const userInfo = getGlobalVal('userInfo') getWxUserInfoSetting((type, res) => { // if (type != 1 || !userInfo) { // redirectTo({ url: 'pages/wx_authority/wx_authority' }) // return // } this.globalData.userInfo = userInfo wx.checkSession({ success: res => { const arr1 = ['accessToken', 'userInfo', 'userId'] const arr2 = ['vipList', 'vip', 'vipIndex', 'vipId'] const temp = {} for (let i in arr1) { temp[arr1[i]] = getGlobalVal(arr1[i]) } for (let i in arr2) { temp[arr2[i]] = getGlobalVal(arr2[i], `${arr2[i]}_${temp['userId']}`) } for (let i in temp) { this.globalData[i] = temp[i] } this.permissionsJumpFn() }, fail: res => { this.login() } }) }) }, /** * 获取微信code */ getWxloginCode: function (cb) { wx.login({ success: res => { if (isFn(cb)) cb(res.code) }, fail: res => { wx.showToast({ title: '获取微信code失败', icon: 'none' }) } }) }, /** * 获取微信用户信息 */ login: function () { this.getWxloginCode(code => { WxLogin({ data: { code } }).then(this.handleLogin).catch(e => { if (e.data.code == '888') { redirectTo({ url: 'pages/wx_authority/wx_authority' }) } }) }) }, /** * 处理登录信息 */ handleLogin: function (res) { const { accessToken, userId, isDispatcher, list } = res.data const arr = { accessToken, userId, isDispatcher, list } for (let i in arr) { this.globalData[i] = arr[i] wx.setStorageSync(i, arr[i]) } this.permissionsJumpFn() }, /** * 权限跳转 */ permissionsJumpFn: function (e) { const { tempOptions, options } = this.globalData const isDispatcher = getGlobalVal('isDispatcher') const userId = getGlobalVal('userId') const libId = getGlobalVal(`dispatchLibId_${userId}`) const userInfo = getGlobalVal('userInfo') const { query = {}, scene, path } = options || tempOptions let url = '' if (query && query.type > 1) { url = path ? path : 'pages/index/index' } else { // url = 'dispatcher/pages/sweeped_books/sweeped_books' if (isDispatcher == 1) { if (!userInfo) { redirectTo({ url: 'pages/wx_authority/wx_authority' }) return } if (libId) { // url = 'dispatcher/pages/dispatch_leave/dispatch_leave' url = 'dispatcher/pages/dispatch_go/dispatch_go' } else { url = 'dispatcher/pages/home/home' } } else if (isDispatcher == 3) { // console.log('111') if (!userInfo) { redirectTo({ url: 'pages/wx_authority/wx_authority' }) return } url = 'president/pages/home/home' } else { url = 'parents/pages/main/main' this.getVipList() } } const paras = { ...query, url, scene } // console.log(this.globalData) // console.log(paras) if (isFn(reLaunch)) reLaunch({ url, paras }) this.globalData.options = tempOptions }, /** * 获取会员卡列表 */ getVipList: function () { const continuousFn = { fn: this.getVipList, param: { ...arguments } } const userId = getGlobalVal('userId') const vipId = getGlobalVal('vipId', `vipId_${userId}`) const { noVipListToastText } = this.globalData const fn = (i, v) => { this.globalData['vip'] = v wx.setStorageSync(`vip_${userId}`, v) this.globalData['vipIndex'] = i wx.setStorageSync(`vipIndex_${userId}`, i) this.globalData['vipId'] = v['vip_id'] wx.setStorageSync(`vipId_${userId}`, v['vip_id']) } GetMineInfo({ continuousFn }).then(res => { const { vipList = null } = res.data if (vipList.length > 0) { let isSame = false for (let i in vipList) { if (vipList[i]['vip_id'] == vipId) { isSame = true fn(i, vipList[i]) break } } if (!isSame) { fn(0, vipList[0]) } this.globalData['vipList'] = vipList wx.setStorageSync(`vipList_${userId}`, vipList) } else { wx.showToast({ title: noVipListToastText, icon: 'none' }) } }) }, /** * 保存微信用户数据 */ saveUserInfo: function (res, code) { const { accessToken, userId } = this.globalData const { encryptedData, iv, signature, userInfo } = res const user = Object.assign(userInfo, { encryptedData, iv, signature }) FirstWxLogin({ data: { code, ...user } }).then(res => { this.globalData.userInfo = user wx.setStorageSync('userInfo', user) wx.setStorageSync('hiddenModel', true) wx.setStorageSync('isfirstLogin', true) wx.setStorageSync('hiddenGetallModel', true) wx.setStorageSync('infofrominput', []) this.handleLogin(res) }) }, /** * 是否有会员卡服务 */ hasVipService: function () { const vipId = getGlobalVal('vipId') if (vipId) { return true } else { wx.showToast({ title: this.globalData.noVipServiceToastText, icon: 'none' }) return false } }, /** * 是否有当前图书馆服务 */ hasLibraryService: function () { const { stype = 0, id } = getGlobalVal('library') if (!id) { wx.showToast({ title: this.globalData.noLibraryToastText, icon: 'none' }) return false } else { if (stype == 1) { return true } else { wx.showToast({ title: this.globalData.noLibraryServiceToastText, icon: 'none' }) return false } } }, /** * 全局变量 */ globalData: { systemInfo, wechatsys: systemInfo.version + ' ' + systemInfo.SDKVersion, phoneimei: '', phonesys: systemInfo.system, phonetype: systemInfo.brand + ' ' + systemInfo.model, version: '1.3.3', platform: '3', build: '1.3.3', initStatus: 0, loginTime: 0, appid: 'wxe9cdca7c3365e448', // host: 'https://t.sharingschool.com/gz', // baseImgUrl: 'https://img.sharingschool.com', // thumbnail: '?x-oss-process=image/resize,m_fill,h_300,w_200', host: 'https://xt.sharingschool.com/gz', baseImgUrl: 'https://xtimg.sharingschool.com', thumbnail: '!t200x300.jpg', tempOptions: { query: {}, path: 'pages/index/index', scene: 1001 }, options: null, continuousFn: null, accessToken: null, userId: null, vipList: null, vip: null, vipIndex: null, vipId: null, userInfo: null, isIphoneX:null, noVipListToastText: '您尚未开通私塾家共享图书馆借阅服务,请就近至私塾家共享图书馆开通服务', noVipServiceToastText: '您非本馆会员,无法进行此操作,如想继续操作可联系管理员', noLibraryServiceToastText: '您非本馆会员,无法进行此操作,请切换到您所在的馆继续操作', noLibraryToastText: '您暂未选择图书馆,请回到首页进行定位匹配', noBorrowToastText: '您已经预约过此书', qrcodeInvalidToastText: '二维码已失效', borrowToastText: '此书库存有货,点击我想借阅将在下一次调书时移至您的服务所在馆', reservationsToastText: '您可直接扫描书本上二维码借阅,也可预约,如预约,其他人将暂时不可借。', wishToastText: '更多人将此书加入心愿单会成为我们的优先采购书籍' } })