46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
// custom-tab-bar — 三 Tab + 中央状态化「遛狗」FAB(docs/04 §2)
|
||
const store = require('../utils/store.js');
|
||
|
||
Component({
|
||
data: {
|
||
selected: 1, // 0=记录 1=我的
|
||
// walkState: idle | walking | paused —— 决定中央 FAB 颜色与文案
|
||
walkState: 'idle',
|
||
},
|
||
|
||
lifetimes: {
|
||
attached() {
|
||
this.syncWalkState();
|
||
},
|
||
},
|
||
|
||
pageLifetimes: {
|
||
show() {
|
||
this.syncWalkState();
|
||
},
|
||
},
|
||
|
||
methods: {
|
||
syncWalkState() {
|
||
const session = store.getWalkSession();
|
||
this.setData({ walkState: session ? session.status : 'idle' });
|
||
},
|
||
|
||
switchTab(e) {
|
||
const { path, index } = e.currentTarget.dataset;
|
||
this.setData({ selected: index });
|
||
wx.switchTab({ url: path });
|
||
},
|
||
|
||
// 中央「遛狗」按钮:进行中→回遛狗页;空闲→开始(单狗直进/多狗弹层)
|
||
onCenterTap() {
|
||
if (this.data.walkState !== 'idle') {
|
||
wx.navigateTo({ url: '/pages/walking/walking' });
|
||
return;
|
||
}
|
||
// TODO 阶段2:单狗直接进 walking;多狗触发 multi-dog-sheet
|
||
wx.navigateTo({ url: '/pages/walking/walking' });
|
||
},
|
||
},
|
||
});
|