const app = getApp() Page({ data: { // 搜索关键词 keyword: '', // 时间筛选 startDate: '', endDate: '', // 药师列表 pharmacistList: [] as any[], totalCount: 0, // 分页 page: 1, pageSize: 20, loading: false, hasMore: true, pagination: { count: 0, page: 0, pages: 0, }, }, onLoad() { // 地推端药师页面,仅允许地推人员访问 app.waitLogin({ types: [3] }).then(() => { this.getPharmacistList() }) }, // 获取药师列表 getPharmacistList() { if (this.data.loading || !this.data.hasMore) return this.setData({ loading: true }) wx.ajax({ method: 'GET', url: '/app/promoter/promoter/pharmacist-list', data: { keyword: this.data.keyword, startDate: this.data.startDate, endDate: this.data.endDate, page: this.data.page, pageSize: this.data.pageSize, }, }).then((res: any) => { const list = res.list || [] const currentPage = this.data.page const total = res.total || 0 const pages = Math.ceil(total / this.data.pageSize) this.setData({ pharmacistList: [...this.data.pharmacistList, ...list], totalCount: total, page: currentPage + 1, hasMore: currentPage < pages, loading: false, pagination: { count: total, page: currentPage, pages, }, }) }).catch(() => { this.setData({ loading: false }) }) }, // 搜索药师 handleSearch(e: WechatMiniprogram.CustomEvent) { this.setData({ keyword: e.detail.value, page: 1, pharmacistList: [], hasMore: true, pagination: { count: 0, page: 0, pages: 0, }, }) this.getPharmacistList() }, // 开始时间选择 handleStartDateChange(e: WechatMiniprogram.CustomEvent) { const startDate = e.detail.value const { endDate } = this.data // 如果已选择结束时间,验证开始时间不能大于结束时间 if (endDate && startDate > endDate) { wx.showToast({ title: '开始时间不能大于结束时间', icon: 'none', }) return } this.setData({ startDate, page: 1, pharmacistList: [], hasMore: true, pagination: { count: 0, page: 0, pages: 0, }, }) this.getPharmacistList() }, // 结束时间选择 handleEndDateChange(e: WechatMiniprogram.CustomEvent) { const endDate = e.detail.value const { startDate } = this.data // 如果已选择开始时间,验证结束时间不能小于开始时间 if (startDate && endDate < startDate) { wx.showToast({ title: '结束时间不能小于开始时间', icon: 'none', }) return } this.setData({ endDate, page: 1, pharmacistList: [], hasMore: true, pagination: { count: 0, page: 0, pages: 0, }, }) this.getPharmacistList() }, // 页面上拉触底事件 onReachBottom() { if (this.data.loading || !this.data.hasMore) { return } this.getPharmacistList() }, // 查看详情 handleInfo(e: WechatMiniprogram.CustomEvent) { const { id } = e.currentTarget.dataset wx.navigateTo({ url: `/ground/pages/stat/index?id=${id}`, }) }, }) export {}