import http from '../../../utils/api' Page({ data: { // 分类数据 categories: [ { name: '全部', value: 'all' }, { name: '系统公告', value: 'system', tagBg: '#e9efff', importanceColor: '#3b82f6' }, { name: '活动通知', value: 'activity', tagBg: '#f3e8ff', importanceColor: '#8b5cf6' }, { name: '紧急提醒', value: 'urgent', tagBg: '#ffe4e2', importanceColor: '#ef4444' }, { name: '学术讲座', value: 'academic', tagBg: '#dcfce7', importanceColor: '#10b981' }, { name: '校园生活', value: 'campus', tagBg: '#fff3cd', importanceColor: '#f59e0b' }, ], currentCategory: 'all', // 当前选中分类 searchKeyword: '', // 搜索关键字 noticeList: [], // 渲染列表数据 pageIndex: 1, // 页码 pageSize: 8, // 每页条数 hasMore: true, // 是否有更多 loading: false, // 首次加载/加载中 refreshing: false, // 下拉刷新状态 mockTotal: 28, // 模拟总条数 }, onLoad() { // this.loadFirstPage(); this.getdisaster() }, // 通知公告 getdisaster(){ http.disaster({ data:{}, success: res => { console.log(111,res); this.setData({ noticeList:res.rows }) } }) }, // 切换分类 switchCategory(e) { const category = e.currentTarget.dataset.category; if (category === this.data.currentCategory) return; this.setData({ currentCategory: category }); this.loadFirstPage(); }, // 搜索输入 onSearchInput(e) { this.setData({ searchKeyword: e.detail.value }); }, // 执行搜索(确认或点击清空后也会触发重置) handleSearch() { this.loadFirstPage(); }, // 清空搜索框 clearSearch() { this.setData({ searchKeyword: '' }, () => { this.loadFirstPage(); }); }, // 上拉加载更多 loadMore() { const { hasMore, loading, refreshing } = this.data; if (!hasMore || loading || refreshing) return; this.setData({ loading: true }); this.fetchNotices(false); }, // 下拉刷新 onRefresh() { this.setData({ refreshing: true }); // 重置到第一页 this.setData({ pageIndex: 1, hasMore: true }, () => { this.fetchNotices(true); }); }, // 查看详情 (仅跳转示意) viewDetail(e) { const id = e.currentTarget.dataset.id; wx.showToast({ title: `查看公告 ${id}`, icon: 'none' }); // 实际开发: wx.navigateTo... } })