武田基因病B开发环境
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.0 KiB

2 months ago
/* 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
2 months ago
// url: 'https://m.wtx.hbraas.com',
// upFileUrl: 'https://m.wtx.hbraas.com/',
// imageUrl: 'https://m.wtx.hbraas.com/GeneB/',
2 months ago
// pro
2 months ago
// appid:wx96104303877e3fd9
url: 'https://m.gene.hbsaas.com',
upFileUrl: 'https://m.gene.hbsaas.com/',
imageUrl: 'https://m.gene.hbsaas.com/GeneB/',
2 months ago
Timestamp: new Date().getTime(),
2 months ago
scene: {},
loginState: '',
isLogin: 0, // 0 未登录 1 已登录
2 months ago
isReg: 0,
userId: '',
guestPrivacyAgree: false,
2 months ago
// anyWhere: true,
anyWhere: false,
userInfo: {},
},
onLaunch() {
2 months ago
this.autoUpdate()
2 months ago
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 }
}
2 months ago
this.startLogin()
2 months ago
},
startLogin() {
wx.login({
2 months ago
success: (res) => {
2 months ago
wx.ajax({
method: 'GET',
2 months ago
url: '?r=wtx/user/init-login',
2 months ago
data: {
code: res.code,
},
}).then((res) => {
2 months ago
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
2 months ago
})
},
})
},
2 months ago
waitLogin() {
2 months ago
let time: number
return new Promise((resolve: (value?) => void) => {
if (this.globalData.loginState) {
2 months ago
resolve()
2 months ago
return
}
time = setInterval(() => {
if (this.globalData.loginState) {
clearInterval(time)
2 months ago
resolve()
2 months ago
}
}, 500)
})
},
mpBehavior(data: { PageName: string }) {
2 months ago
wx.ajax({
method: 'POST',
url: '?r=wtx/mp-behavior/add',
data: data,
loading: false,
showMsg: false,
}).then((res) => {
console.log('res: ', res)
})
2 months ago
},
2 months ago
getUserInfo() {
return wx.ajax({
method: 'GET',
url: '?r=wtx/user/userinfo',
2 months ago
})
},
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: '您可删除当前小程序,重新打开尝试',
})
})
},
})