feat: migrate static pages to native tabbar

This commit is contained in:
2026-04-23 21:25:24 +08:00
parent f3cd0c3a98
commit cd30f57f2c
116 changed files with 7143 additions and 311 deletions

View File

@@ -0,0 +1,97 @@
const { resolveScene } = require('../../../../utils/static-ux/shared')
const { ROUTES, openStaticRoute } = require('../../../../utils/static-ux/route-map')
const READER_SURFACES = Object.freeze({
'reader-a': {
chapterTitle: '上古天真论',
passages: [
'上古之人,其知道者,法于阴阳,和于术数。',
'食饮有节,起居有常,不妄作劳,故能形与神俱。'
]
},
'reader-b': {
chapterTitle: '太阳病篇',
passages: [
'伤寒者,太阳病也。',
'太阳之为病,脉浮,头项强痛而恶寒。'
]
}
})
function createTcmSectionPageData(rawScene) {
const scene = resolveScene(rawScene, ['reader-a', 'reader-b'], 'reader-a')
const surface = READER_SURFACES[scene]
return {
title: '典籍阅读',
scene,
chapterTitle: surface.chapterTitle,
passages: [...surface.passages],
toolbarVisible: false,
settings: {
fontScale: 1,
lineMode: 'normal',
bgMode: 'default'
},
lineModes: [
{ key: 'compact', label: '紧凑' },
{ key: 'normal', label: '适中' },
{ key: 'relaxed', label: '宽松' }
],
backgroundModes: [
{ key: 'default', label: '默认' },
{ key: 'paper', label: '纸张' },
{ key: 'care', label: '护眼' }
],
catalogItems: [
{
key: 'reader-a',
title: '上古天真论',
route: `${ROUTES.tcm.section}?scene=reader-a`
},
{
key: 'reader-b',
title: '太阳病篇',
route: `${ROUTES.tcm.section}?scene=reader-b`
}
]
}
}
function showNavigate(route) {
openStaticRoute(route, wx)
}
Page({
data: createTcmSectionPageData('reader-a'),
onLoad(options) {
this.setData(createTcmSectionPageData(options.scene))
},
handleToolbarToggle() {
this.setData({
toolbarVisible: !this.data.toolbarVisible
})
},
handleLineModeTap(event) {
this.setData({
'settings.lineMode': event.currentTarget.dataset.mode
})
},
handleBackgroundTap(event) {
this.setData({
'settings.bgMode': event.currentTarget.dataset.mode
})
},
handleCatalogTap(event) {
showNavigate(event.currentTarget.dataset.route)
}
})
module.exports = {
createTcmSectionPageData
}