Files
bodyWeight/miniprogram/pages/home/home.ts
T

66 lines
1.5 KiB
TypeScript

import { mockLatestRecord } from '../../mock/home.mock'
import type { WeightRecord } from '../../mock/home.mock'
/** 加载状态机 */
type LoadStatus = 'idle' | 'loading' | 'loaded'
/** 设备信息 */
interface DeviceInfo {
name: string
connected: boolean
}
Page({
data: {
status: 'idle' as LoadStatus,
hasData: false,
device: {
name: '智能体重秤',
connected: false,
} as DeviceInfo,
record: null as WeightRecord | null,
},
onLoad() {
this.loadData()
},
onReady() {},
onShow() {},
onHide() {},
onUnload() {},
onPullDownRefresh() {},
onReachBottom() {},
onShareAppMessage(): WechatMiniprogram.Page.ICustomShareContent {
return {
title: '智能蓝牙秤',
path: '/pages/home/home',
imageUrl: '/images/share/share.jpg',
}
},
/** 加载首页数据(当前使用 mock,后续替换为真实接口) */
loadData() {
this.setData({ status: 'loading' })
// 模拟异步加载
setTimeout(() => {
this.setData({
status: 'loaded',
hasData: true,
record: mockLatestRecord,
})
}, 300)
},
/** 跳转历史数据页 */
onTapHistory() {
wx.switchTab({ url: '/pages/data/data' })
},
/** 切换设备 */
onTapSwitchDevice() {
wx.showToast({ title: '切换设备', icon: 'none' })
},
})