You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
5.1 KiB
174 lines
5.1 KiB
/* eslint-disable */ |
|
// app.ts |
|
import { request } from './api/request' |
|
import { parseScene } from './utils/util' |
|
const licia = require('miniprogram-licia') |
|
|
|
const dayjs = require('dayjs') |
|
require('/utils/dayjs/day-zh-cn.js') |
|
const relativeTime = require('/utils/dayjs/relativeTime.js') |
|
dayjs.locale('zh-cn') // 全局使用 |
|
dayjs.extend(relativeTime) |
|
|
|
// page |
|
import page from '@/utils/page' |
|
|
|
App<IAppOption>({ |
|
globalData: { |
|
// dev |
|
// appid:wxa4ece062e60e93a5 |
|
// url: 'https://m.wtx.hbraas.com', |
|
// upFileUrl: 'https://m.wtx.hbraas.com/', |
|
// imageUrl: 'https://m.wtx.hbraas.com/GeneB/', |
|
|
|
// pro |
|
// appid:wx96104303877e3fd9 老的正式环境,已弃用 |
|
// appid:wxfc95e2961d481f58 |
|
url: 'https://m.hbgene.hbsaas.com', |
|
upFileUrl: 'https://m.hbgene.hbsaas.com/', |
|
imageUrl: 'https://m.hbgene.hbsaas.com/GeneB/', |
|
Timestamp: new Date().getTime(), |
|
|
|
scene: {}, |
|
|
|
loginState: '', |
|
isLogin: 0, // 0 未登录 1 已登录 |
|
isReg: 0, |
|
userId: '', |
|
guestPrivacyAgree: false, |
|
|
|
// anyWhere: true, |
|
anyWhere: false, |
|
|
|
userInfo: {}, |
|
}, |
|
onLaunch() { |
|
this.autoUpdate() |
|
|
|
Page = page as WechatMiniprogram.Page.Constructor |
|
|
|
wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }) |
|
|
|
wx.setInnerAudioOption({ |
|
obeyMuteSwitch: false, |
|
mixWithOther: false, |
|
}) |
|
}, |
|
onShow(options) { |
|
if (options.query.scene) { |
|
this.globalData.scene = parseScene(options.query.scene) as { workerId: string } |
|
} |
|
this.startLogin() |
|
}, |
|
startLogin() { |
|
wx.login({ |
|
success: (res) => { |
|
wx.ajax({ |
|
method: 'GET', |
|
url: '?r=wtx/user/init-login', |
|
data: { |
|
code: res.code, |
|
}, |
|
}).then((res) => { |
|
this.globalData.loginState = res.loginState |
|
this.globalData.isReg = res.isReg |
|
this.globalData.isLogin = res.isLogin |
|
this.globalData.userId = res.userId |
|
this.globalData.guestPrivacyAgree = res.guestPrivacyAgree |
|
}) |
|
}, |
|
}) |
|
}, |
|
waitLogin() { |
|
let time: number |
|
return new Promise((resolve: (value?) => void) => { |
|
if (this.globalData.loginState) { |
|
resolve() |
|
return |
|
} |
|
time = setInterval(() => { |
|
if (this.globalData.loginState) { |
|
clearInterval(time) |
|
resolve() |
|
} |
|
}, 500) |
|
}) |
|
}, |
|
mpBehavior(data: { PageName: string }) { |
|
wx.ajax({ |
|
method: 'POST', |
|
url: '?r=wtx/mp-behavior/add', |
|
data: data, |
|
loading: false, |
|
showMsg: false, |
|
}).then((res) => { |
|
console.log('res: ', res) |
|
}) |
|
}, |
|
|
|
getUserInfo() { |
|
return wx.ajax({ |
|
method: 'GET', |
|
url: '?r=wtx/user/userinfo', |
|
}) |
|
}, |
|
autoUpdate: function () { |
|
var self = this |
|
// 获取小程序更新机制兼容 |
|
if (wx.canIUse('getUpdateManager')) { |
|
const updateManager = wx.getUpdateManager() |
|
//1. 检查小程序是否有新版本发布 |
|
updateManager.onCheckForUpdate(function (res) { |
|
// 请求完新版本信息的回调 |
|
if (res.hasUpdate) { |
|
//检测到新版本,需要更新,给出提示 |
|
wx.showModal({ |
|
title: '更新提示', |
|
content: '检测到新版本,是否下载新版本并重启小程序?', |
|
success: function (res) { |
|
if (res.confirm) { |
|
//2. 用户确定下载更新小程序,小程序下载及更新静默进行 |
|
self.downLoadAndUpdate(updateManager) |
|
} else if (res.cancel) { |
|
//用户点击取消按钮的处理,如果需要强制更新,则给出二次弹窗,如果不需要,则这里的代码都可以删掉了 |
|
wx.showModal({ |
|
title: '温馨提示~', |
|
content: '本次版本更新涉及到新的功能添加,旧版本无法正常访问的哦~', |
|
showCancel: false, //隐藏取消按钮 |
|
confirmText: '确定更新', //只保留确定更新按钮 |
|
success: function (res) { |
|
if (res.confirm) { |
|
//下载新版本,并重新应用 |
|
self.downLoadAndUpdate(updateManager) |
|
} |
|
}, |
|
}) |
|
} |
|
}, |
|
}) |
|
} |
|
}) |
|
} else { |
|
// 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示 |
|
wx.showModal({ |
|
title: '提示', |
|
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。', |
|
}) |
|
} |
|
}, |
|
downLoadAndUpdate: function (updateManager) { |
|
//静默下载更新小程序新版本 |
|
updateManager.onUpdateReady(function () { |
|
wx.hideLoading() |
|
//新的版本已经下载好,调用 applyUpdate 应用新版本并重启 |
|
updateManager.applyUpdate() |
|
}) |
|
updateManager.onUpdateFailed(function () { |
|
// 新的版本下载失败 |
|
wx.showModal({ |
|
title: '新版本更新失败', |
|
content: '您可删除当前小程序,重新打开尝试', |
|
}) |
|
}) |
|
}, |
|
})
|
|
|