123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- //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: '更多人将此书加入心愿单会成为我们的优先采购书籍'
- }
- })
|