Page({ data: { // 专家信息(新增在线状态) expertInfo: { avatar: 'https://api.dicebear.com/7.x/avataaars/png?seed=expert_pro&size=140', name: '张振农', specialty: '作物栽培 · 土壤改良', experience: 15, online: true // 在线状态 }, // 聊天申请列表数据 applyList: [], // 分页相关 page: 1, pageSize: 10, hasMore: true, total: 0, }, onLoad() { this.loadApplyList(1); }, // 加载申请列表(增强模拟数据) loadApplyList(page) { const { pageSize } = this.data; wx.showLoading({ title: '加载中...', mask: true }); setTimeout(() => { const mockData = this.generateMockData(page, pageSize); if (page === 1) { this.setData({ applyList: mockData.list, total: mockData.total, hasMore: mockData.hasMore, page: page }); } else { this.setData({ applyList: this.data.applyList.concat(mockData.list), total: mockData.total, hasMore: mockData.hasMore, page: page }); } wx.hideLoading(); }, 600); }, // 生成更丰富的模拟数据(含标签) generateMockData(page, pageSize) { const total = 23; const start = (page - 1) * pageSize; const end = start + pageSize; const hasMore = end < total; const list = []; const seeds = ['farmer1', 'sheep', 'cattle', 'wheat', 'tractor', 'green', 'sun', 'rain', 'soil', 'seed']; const firstNames = ['李', '王', '张', '刘', '赵', '陈', '杨', '周', '吴', '黄']; const farmTypes = ['水稻种植', '牛羊养殖', '果树栽培', '蔬菜大棚', '有机农场', '蜂蜜养殖', '食用菌', '药材种植']; const tagPool = [ ['玉米', '虫害'], ['羊羔', '腹泻'], ['施肥', '建议'], ['土壤', '检测'], ['大棚', '温度'], ['猪病', '防治'], ['果树', '修剪'], ['蜂蜜', '取蜜'] ]; for (let i = start; i < Math.min(end, total); i++) { const id = `apply_${i + 1}`; const userId = `user_${(i % 10) + 1}`; const seedIndex = i % seeds.length; const nameIndex = i % firstNames.length; const typeIndex = (i * 3) % farmTypes.length; const unread = i % 4 === 0 ? 2 : (i % 7 === 0 ? 1 : 0); const statuses = ['pending', 'accepted', 'completed']; const status = statuses[i % 3]; // 随机标签 const tags = tagPool[(i * 2) % tagPool.length]; const time = new Date(Date.now() - (i * 7200000) - Math.floor(Math.random() * 5000000)); const timeStr = `${time.getMonth()+1}.${time.getDate()} ${time.getHours()}:${time.getMinutes().toString().padStart(2,'0')}`; // 更真实的预览消息 let lastMessage = ''; if (i % 5 === 0) lastMessage = '专家您好,我家玉米出现黄叶,能帮看看吗?'; else if (i % 3 === 0) lastMessage = '咨询一下羊羔腹泻的问题,急!'; else if (i % 4 === 0) lastMessage = '请问什么时候方便通话?'; else lastMessage = '请求添加您为咨询顾问'; list.push({ id: id, user: { id: userId, name: firstNames[nameIndex] + (i % 2 === 0 ? '建国' : '秀英') + (i + 1), avatar: `https://api.dicebear.com/7.x/avataaars/png?seed=${seeds[seedIndex]}_${i}&size=96`, farmType: farmTypes[typeIndex], }, applyTime: timeStr, lastMessage: lastMessage, unreadCount: unread, status: status, tags: tags, }); } return { list, total, hasMore, }; }, // 处理点击申请项 handleApply(e) { console.log(111,e); const id = e.currentTarget.dataset.id wx.navigateTo({ url: `/pagesA/pages/expertChat/expertChat?id=${id}`, }) }, loadMore() { const { hasMore, page } = this.data; if (hasMore) { this.loadApplyList(page + 1); } }, onPullDownRefresh() { this.setData({ page: 1, hasMore: true }); this.loadApplyList(1); wx.stopPullDownRefresh(); } });