删除 Responsive_Xxx 环境变量,仅仅根据设备类型,并读取 pageJson.topWindow 来完美实现响应式
This commit is contained in:
parent
1ac2a685a3
commit
b43f13b887
25
usertool.js
25
usertool.js
@ -13,7 +13,6 @@ export default {
|
|||||||
WHITE_BUTTON: 'default',
|
WHITE_BUTTON: 'default',
|
||||||
|
|
||||||
// [todo] 能否把这些默认值放到 export 以外?
|
// [todo] 能否把这些默认值放到 export 以外?
|
||||||
RESPONSIVE_TABBAR_AUTOHIDE_WIDTH_THRESHOLD_DEFAULT: 0,
|
|
||||||
BACKEND_DEFAULT: 'SERVER', // 服务器 SERVER 或云服务 UNICLOUD
|
BACKEND_DEFAULT: 'SERVER', // 服务器 SERVER 或云服务 UNICLOUD
|
||||||
|
|
||||||
thisPage() {
|
thisPage() {
|
||||||
@ -94,21 +93,17 @@ export default {
|
|||||||
// uni.showTabBar({})
|
// uni.showTabBar({})
|
||||||
|
|
||||||
// #ifdef H5
|
// #ifdef H5
|
||||||
|
// 响应式方案:仅仅根据当前设备类型,如果是 PC 大屏幕,则始终显示 topWindow 并且隐藏顶部 navibar 和底部 tabBar。
|
||||||
|
const envar = this.envar || wo?.envar
|
||||||
|
if (pagesJson?.topWindow) {
|
||||||
if (uni.getSystemInfoSync().model==='PC') {
|
if (uni.getSystemInfoSync().model==='PC') {
|
||||||
const envar = this.envar || wo?.envar || {}
|
if (window.screen.width > (pagesJson?.topWindow?.matchMedia?.minWidth || 0)) {
|
||||||
if (envar.Responsive_Tabbar==='AUTOHIDE') {
|
|
||||||
if (window.screen.width > (envar.Responsive_Tabbar_Autohide_Width_Threshold || this.RESPONSIVE_TABBAR_AUTOHIDE_WIDTH_THRESHOLD_DEFAULT)) {
|
|
||||||
uni.hideTabBar()
|
uni.hideTabBar()
|
||||||
|
// 不知为何,同一个二级页面,如果第二次进入,就仍然会显示 navibar, 必须通过 setTimeout 执行才能彻底隐藏。
|
||||||
|
setTimeout(()=>{ document.getElementsByTagName('uni-page-head')?.[0]?.remove() },0)
|
||||||
}
|
}
|
||||||
uni.onWindowResize(({size})=>{
|
|
||||||
if (size.windowWidth > (envar.Responsive_Tabbar_Autohide_Width_Threshold || this.RESPONSIVE_TABBAR_AUTOHIDE_WIDTH_THRESHOLD_DEFAULT)) {
|
|
||||||
uni.hideTabBar()
|
|
||||||
}else {
|
}else {
|
||||||
uni.showTabBar()
|
document.getElementsByTagName('uni-top-window')?.[0]?.remove() // hide topWindow
|
||||||
}
|
|
||||||
})
|
|
||||||
}else if (envar.Responsive_Tabbar==='ALWAYSHIDE') {
|
|
||||||
uni.hideTabBar()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// #endif
|
// #endif
|
||||||
@ -177,6 +172,7 @@ export default {
|
|||||||
}) {
|
}) {
|
||||||
const thisRoute = this.thisPage()?.route || 'VueApp' // 立刻保存 this.thisPage().route,因为在调用后台后,可能已切换到了其他页面。
|
const thisRoute = this.thisPage()?.route || 'VueApp' // 立刻保存 this.thisPage().route,因为在调用后台后,可能已切换到了其他页面。
|
||||||
const startTime = new Date().toJSON()
|
const startTime = new Date().toJSON()
|
||||||
|
let url = undefined
|
||||||
let result = {}
|
let result = {}
|
||||||
if (backend === 'UNICLOUD') {
|
if (backend === 'UNICLOUD') {
|
||||||
let { /* success, header, requestedId, */ result: resultCloud = {} } = await uniCloud
|
let { /* success, header, requestedId, */ result: resultCloud = {} } = await uniCloud
|
||||||
@ -206,8 +202,7 @@ export default {
|
|||||||
apiWhat[key] = JSON.stringify(apiWhat[key])
|
apiWhat[key] = JSON.stringify(apiWhat[key])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const url = this.makeServerUrl(`${apiVersion}/${apiWho}/${apiTodo}`)
|
url = this.makeServerUrl(`${apiVersion}/${apiWho}/${apiTodo}`)
|
||||||
process.env.NODE_ENV === 'development' && console.log('%c '+JSON.stringify({url}), 'color:blue')
|
|
||||||
let [error, { statusCode, header, errMsg, data: resultServer = {} } = {}] = await uni.request({
|
let [error, { statusCode, header, errMsg, data: resultServer = {} } = {}] = await uni.request({
|
||||||
method: httpMethod,
|
method: httpMethod,
|
||||||
url: url,
|
url: url,
|
||||||
@ -234,7 +229,7 @@ export default {
|
|||||||
if (process.env.NODE_ENV === 'development') {
|
if (process.env.NODE_ENV === 'development') {
|
||||||
console.log(
|
console.log(
|
||||||
'%c '+JSON.stringify({startTime:startTime, page:thisRoute, endTime:new Date().toJSON()}) +
|
'%c '+JSON.stringify({startTime:startTime, page:thisRoute, endTime:new Date().toJSON()}) +
|
||||||
' %c '+ JSON.stringify({ backend, apiWho, apiTodo, apiWhat }) +
|
' %c '+ JSON.stringify({ backend, apiWho, apiTodo, apiWhat, url }) +
|
||||||
' %c '+ JSON.stringify(result),
|
' %c '+ JSON.stringify(result),
|
||||||
'color:blue', 'background:skyblue', 'background:magenta') // 不知为何,直接用 result 会输出一个奇怪的对象,要主动添加 JSON.stringify 才按照期望输出。
|
'color:blue', 'background:skyblue', 'background:magenta') // 不知为何,直接用 result 会输出一个奇怪的对象,要主动添加 JSON.stringify 才按照期望输出。
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user