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.

106 lines
2.7 KiB

3 weeks ago
/**
* 使
* 1app.js const page = require('xx/xx/page);
* 2app.js onLaunch Page = page
*/
const originalPage = Page
const noSharePath = [
'patient/pages/login/index',
'patient/pages/familyScan/index',
'patient/pages/entryInfo/index',
'doctor/pages/login/index',
]
function page(config: WechatMiniprogram.Page.Instance<WechatMiniprogram.IAnyObject, WechatMiniprogram.IAnyObject>) {
const originalOnLoad = config.onLoad
config.onLoad = function (options) {
setImageParams(this)
setNavBar(this)
if (originalOnLoad) {
originalOnLoad.call(this, options)
}
}
const originalOnPageScroll = config.onPageScroll
config.onPageScroll = function (options): void {
const scrollTop = options?.scrollTop
let background = 'transparent'
if (Number(scrollTop) > 20) {
background = '#ffffff'
}
this.setData({
background,
})
if (originalOnPageScroll) {
originalOnPageScroll.call(this, options)
}
}
const originalOnShareAppMessage = config.onShareAppMessage
config.onShareAppMessage = function (options) {
if (originalOnShareAppMessage) {
return originalOnShareAppMessage.call(this, options)
} else {
const date = new Date()
const Timestamp = date.getTime()
const pages = getCurrentPages()
const currentPage = pages[pages.length - 1]
let url = currentPage.route
const options = currentPage.options
let urlWithArgs = `${url}?`
for (const key in options) {
const value = options[key]
urlWithArgs += `${key}=${value}&`
}
urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)
const isNoShare = noSharePath.some((path) => url.includes(path))
let imageUrl = ''
if (isNoShare) {
url = 'pages/start/index'
imageUrl = `${getApp().globalData.imageUrl}share.png?t=${Timestamp}`
}
return {
title: '血友病B 基因疗法数字化平台',
path: url,
imageUrl,
}
}
}
config.handleMakePhoneCall = function () {
wx.makePhoneCall({
phoneNumber: '4008102299',
})
}
return originalPage(config)
}
function setImageParams(
currPage: WechatMiniprogram.Page.Instance<WechatMiniprogram.IAnyObject, WechatMiniprogram.IAnyObject>,
) {
const date = new Date()
const Timestamp = date.getTime()
currPage.setData({
imageUrl: getApp().globalData.imageUrl,
Timestamp,
})
}
function setNavBar(
currPage: WechatMiniprogram.Page.Instance<WechatMiniprogram.IAnyObject, WechatMiniprogram.IAnyObject>,
) {
currPage.setData({
background: 'transparent',
pageTop: wx.getMenuButtonBoundingClientRect().bottom,
})
}
export default page