const api = require("../../../../utils/api") import { getTimestamp } from "../../../../utils/common" const app = getApp() Component({ data: { issueType: "new", pageNo: 1, pageSize: 10, timestamp: "", issueList: [], preloadVisible: true, issueLoadMoreVisible: false, loadMoreType: "loading", selectedIssueId: "" }, lifetimes: { attached () { this.getIssueList () this.pulldownrefresh = this.selectComponent("#pulldownrefresh") this.triggerEvent("getIssueComponent") } }, pageLifetimes: { show () { if (!app.globalData.previewImage) { this.backAndRefreshIssueList() } app.globalData.previewImage = false } }, methods: { // 页面滚动监听 onPageScroll (e) { this.pulldownrefresh.onPageScroll(e) }, onReachBottom () { this.setData({ issueLoadMoreVisible: true }) if (this.data.loadMoreType === "loading") { this.data.pageNo += 1 this.pullDownGetIssueList() } }, // 最新最热 tab切换 changeIssueType () { if (this.data.issueType === "new") { this.setData({ issueType: "hot", preloadVisible: true, issueList: [], pageNo: 1, issueLoadMoreVisible: false }) this.getIssueList() } else { this.setData({ issueType: "new", preloadVisible: true, issueList: [], pageNo: 1, issueLoadMoreVisible: false }) this.getIssueList() } }, // 下拉刷新 获取议题列表 getIssueList () { this.setData({ timestamp: getTimestamp(), preloadVisible: true, issueList: [], pageNo: 1, issueLoadMoreVisible: false }) const para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp, searchContent: "", orderType: this.data.issueType === "new" ? "0" : "1", firstCategoryCode: "" } api.getIssueList(para).then(res => { this.pulldownrefresh.stopRefresh() console.log("获取议题列表", res) this.setData({ issueList: [...res.data], preloadVisible: false, loadMoreType: res.data.length === 10 ? "loading" : "none" }) }).catch(err => { this.pulldownrefresh.stopRefresh() this.setData({ issueList: [], preloadVisible: false, loadMoreType: "none" }) console.log(err) }) }, // 上拉加载更多 pullDownGetIssueList () { const para = { pageIndex: this.data.pageNo, pageSize: this.data.pageSize, timestamp: this.data.timestamp, searchContent: "", orderType: this.data.issueType === "new" ? "0" : "1", firstCategoryCode: "" } api.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" }) console.log(err) }) }, // 跳转详情 navigateToIssueDetail (e) { this.data.selectedIssueId = e.detail.issueId wx.navigateTo({ url: `/subpages/discussion/pages/discussionDetail/discussionDetail?type=issue&detailId=${e.detail.issueId}&showClassify=show` }) }, // 跳转搜索页面 navigateToSearchDiscussion () { wx.navigateTo({ url: "/subpages/discussion/pages/searchDiscussion/searchDiscussion?type=issue" }) }, // 详情回列表,更新状态 backAndRefreshIssueList () { if (this.data.selectedIssueId) { const para = { pageIndex: 1, pageSize: 10, timestamp: this.data.timestamp, searchContent: "", orderType: this.data.issueType === "new" ? "0" : "1", firstCategoryCode: "", issueId: this.data.selectedIssueId } api.getIssueList(para).then(res => { console.log("详情回列表,筛选刷新", res) if (res.data.length === 1) { this.data.issueList.forEach((item,index) => { if (item.id === this.data.selectedIssueId) { this.data.issueList.splice(index, 1, res.data[0]) } }) } else { const index = this.data.issueList.findIndex(item => item.id === this.data.selectedIssueId) this.data.issueList.splice(index, 1) } this.setData({ issueList: this.data.issueList }) }).finally(() => { this.data.selectedIssueId = "" }) } }, //跳转项目列表 goProjectComponent () { this.triggerEvent('goProjectComponent') } } })