feat: migrate static pages to native tabbar
This commit is contained in:
97
packages/tcm/pages/section/index.js
Normal file
97
packages/tcm/pages/section/index.js
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user