import { getIssueList, getProjectList} from "../../utils/api" import { formatTimestamp } from "../../utils/common" Page({ data: { issueList: [], loadMoreVisible: false, loadMoreType: "none", preloadVisible: false, timestamp: "", pageNo: 1, pageSize: 10, projectList: [], type: "project", searchInputValue: "", searchTimer: "" }, onLoad (options) { if (options.type) { this.setData({ type: options.type }) } }, onReady () { this.pullDownRefresh = this.selectComponent("#pulldown-refresh") }, onPageScroll (e) { this.pullDownRefresh.onPageScroll(e) }, onReachBottom () { this.setData({ loadMoreVisible: true }) if (this.data.loadMoreType === "loading") { this.setData({ pageNo: this.data.pageNo + 1 }) if (this.data.type === "issue") { this.pullDownGetIssueList() } else if (this.data.type === "project") { this.pulldownGetProjectList() } } }, // 下拉刷新 获取议题列表 getIssueList () { this.setData({ timestamp: formatTimestamp(), preloadVisible: true, issueList: [], pageNo: 1 }) const para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp, searchContent: this.data.searchInputValue, orderType: "0", firstCategoryCode: "" } getIssueList(para).then(res => { console.log("获取议题列表", res) this.setData({ issueList: [...res.data], preloadVisible: false, loadMoreType: res.data.length === 10 ? "loading" : "none" }) }).catch(err => { this.setData({ issueList: [], preloadVisible: false, loadMoreType: "none", loadMoreVisible: false }) console.log(err) }).finally(() => { this.pullDownRefresh.stopRefresh() }) }, // 上拉加载更多 pullDownGetIssueList () { const para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp, searchContent: this.data.searchInputValue, orderType: "0", firstCategoryCode: "" } getIssueList(para).then(res => { console.log("获取议题列表", res) this.setData({ issueList: [...this.data.issueList,...res.data], preloadVisible: false, loadMoreType: res.data.length === 10 ? "loading" : "none" }) }).catch(err => { this.setData({ issueList: [], preloadVisible: false, loadMoreType: "none", loadMoreVisible: false }) console.log(err) }) }, // 跳转详情 navigateToIssueDetail (e) { wx.navigateTo({ url: `/subpages/discussion/pages/discussionDetail/discussionDetail?type=issue&detailId=${e.detail.issueId}` }) }, // 下拉刷新 获取 项目列表接口 getProjectList () { this.setData({ timestamp: formatTimestamp(), pageNo: 1, preloadVisible: true, loadMoreVisible: false, projectList: [], }) const para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp, searchContent: this.data.searchInputValue, categoryCode: "" } getProjectList(para).then(res => { console.log("获取项目列表", res) this.setData({ projectList: [...res.data], preloadVisible: false, loadMoreType: res.data.length === 10 ? "loading" : "none" }) }).catch(err => { this.setData({ projectList: [], preloadVisible: false, loadMoreType: "none" }) console.log(err) }).finally(() => { this.pullDownRefresh.stopRefresh() }) }, // 上拉加载 项目列表 pulldownGetProjectList () { const para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp, searchContent: this.data.searchInputValue, categoryCode: "" } getProjectList(para).then(res => { console.log("获取项目列表", res) this.setData({ projectList: [...this.data.projectList,...res.data], preloadVisible: false, loadMoreType: res.data.length === 10 ? "loading" : "none" }) }).catch(err => { this.setData({ projectList: [], preloadVisible: false, loadMoreType: "none" }) console.log(err) }) }, // 跳转到项目详情 navigateToProjectDetail (e) { wx.navigateTo({ url: `/subpages/discussion/pages/discussionDetail/discussionDetail?type=project&detailId=${e.detail.projectId}` }) }, // 下拉刷新 searchPullDownRefresh () { if (this.data.searchInputValue) { if (this.data.type === "issue") { this.getIssueList() } else if (this.data.type === "project") { this.getProjectList() } } else { this.pullDownRefresh.stopRefresh() this.setData({ issueList: [], projectList: [] }) } }, // input 框 双向绑定 bindSearchInput (e) { this.setData({ searchInputValue: e.detail.value }) }, debounceSearch () { clearTimeout(this.data.searchTimer) this.data.searchTimer = setTimeout(() => { this.search() }, 500) }, search () { if (this.data.searchInputValue) { if (this.data.type === "issue") { this.getIssueList() } else if (this.data.type === "project") { this.getProjectList() } } else { this.setData({ issueList: [], projectList: [] }) } } })