[AI Generated]: feat(*): 完善数据页切换成员、首页接口对接及我的页缓存信息展示

This commit is contained in:
17792275749
2026-05-15 14:30:30 +08:00
parent e0573857e0
commit fbef06b5c2
11 changed files with 316 additions and 88 deletions
+3 -1
View File
@@ -1,3 +1,5 @@
{
"usingComponents": {}
"usingComponents": {
"select-member-drawer": "/components/selectMemberDrawer/selectMemberDrawer"
}
}
+43 -10
View File
@@ -1,8 +1,5 @@
import { get } from '../../utils/request/index'
/** 加载状态机 */
type LoadStatus = 'idle' | 'loading' | 'loaded'
/** 接口 type 参数:0=全部 1=近7天 2=近30天 3=近3月 */
type RangeType = 0 | 1 | 2 | 3
@@ -69,7 +66,6 @@ function calcAge(birthday: string): number {
Page({
data: {
status: 'idle' as LoadStatus,
activeType: 1 as RangeType,
rangeTabs: [
{ key: 1, label: '近7天' },
@@ -85,18 +81,19 @@ Page({
pageNo: 1,
total: 0,
hasMore: false,
hasData: false,
refresherTriggered: false,
showSelectDrawer: false,
},
onLoad() {
const raw = wx.getStorageSync('userInfo') as StorageUserInfo | null
if (!raw?.userId) return
const storedUserId = raw.userId
const userInfo: PageUserInfo = {
...raw,
sex_dictText: raw.sex === 1 ? '男' : raw.sex === 2 ? '女' : '',
age: calcAge(raw.birthday),
isSelf: String(raw.relationType ?? '') === '1',
isSelf: raw.userId === storedUserId,
}
this.setData({ userInfo })
this.loadData()
@@ -146,12 +143,11 @@ Page({
records,
total,
hasMore: records.length < total,
hasData: records.length > 0,
})
})
.finally(() => {
wx.hideLoading()
this.setData({ status: 'loaded', refresherTriggered: false })
this.setData({ refresherTriggered: false })
})
},
@@ -213,8 +209,45 @@ Page({
})
},
/** 切换成员占位 */
/** 打开切换成员抽屉 */
onTapSwitchMember() {
wx.showToast({ title: '切换成员', icon: 'none' })
this.setData({ showSelectDrawer: true })
},
/** 抽屉关闭 */
onCloseDrawer() {
this.setData({ showSelectDrawer: false })
},
/** 选中成员后更新 userInfo 并重新请求数据 */
onSelectMember(e: WechatMiniprogram.CustomEvent) {
const m = e.detail as {
userId?: string
id: string
name: string
gender: '男' | '女'
age: number
height: number
sex?: number
birthday?: string
relationType?: number | string | null
avatar?: string
}
const selectedUserId = m.userId ?? m.id
const storedUserId = (wx.getStorageSync('userInfo') as StorageUserInfo | null)?.userId ?? ''
const userInfo: PageUserInfo = {
userId: selectedUserId,
realname: m.name,
sex: m.sex ?? (m.gender === '男' ? 1 : 2),
height: m.height,
birthday: m.birthday ?? '',
avatar: m.avatar ?? null,
relationType: m.relationType ?? null,
sex_dictText: m.gender,
age: m.age,
isSelf: selectedUserId === storedUserId,
}
this.setData({ showSelectDrawer: false, userInfo })
this.loadData()
},
})
+9 -2
View File
@@ -69,7 +69,7 @@
</view>
<!-- 有数据:记录列表 -->
<block wx:if="{{ hasData }}">
<block wx:if="{{ records.length }}">
<view class="data-list">
<block wx:for="{{ records }}" wx:key="recordId">
<view class="list" bind:tap="onTapRecord" data-record-id="{{ item.recordId }}">
@@ -85,7 +85,7 @@
</block>
<!-- 无数据:占位 -->
<block wx:elif="{{ status === 'loaded' }}">
<block wx:else>
<view class="empty-state">
<view class="empty-icon">
<image src="/images/home/noData.png" mode="aspectFit"/>
@@ -96,3 +96,10 @@
</view>
</scroll-view>
<select-member-drawer
show="{{ showSelectDrawer }}"
source="history"
bind:select="onSelectMember"
bind:close="onCloseDrawer"
/>