import { inputSync, nextTick, doAfterLogin } from "../../../../../utils/tools"; import { wxShowModal, wxRequestPost, wxRequestGet, wxRedirectTo, wxNavigateTo } from "../../../../../utils/promise-wx-api"; const app = getApp(); const testPic = "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3015922630,3907554494&fm=26&gp=0.jpg"; // 初始化表单数据 const iniFmData = { topicId: "", operateReason: "" }; const iniCloseFmData = { topicId: "", operateReason: "", closedStatus:'' }; Page({ data: { groupId: "", firstLoaded: false, customerId: "", gridId: "", gridName: "", info: { groupName: "", leaderFlag: "member" // leader member }, topics: { loading: false, page: 1, pageSize: 10, isNone: false, state: "", // discussing closed list: [ // { // topicId: "1", // releaseUserHeadPhoto: testPic, // firstPhoto: testPic, // releaseUserName: "大王", // topicContent: // "哈哈哈哈哈哈哈。哈哈哈哈。。。哈哈哈哈。。哈哈哈哈。。哈哈哈哈。。哈哈哈哈。。哈。。", // status: "discussing", // discussing closed // releaseUserFlag: "other", // me other // releaseTime: "2011-11-11 12:22" // }, // { // topicId: "2", // releaseUserHeadPhoto: testPic, // firstPhoto: "", // releaseUserName: "小小王", // topicContent: "哈哈哈嘻嘻嘻嘻嘻哈。。", // status: "closed", // discussing closed // releaseUserFlag: "me", // me other // releaseTime: "2011-11-11 12:22" // } ] }, isShowedFiltrateListPanle: false, focusedTopicId: "", resolved:true,//关闭话题radio showedCloseTopicPanel: false, showedShieldTopicPanel: false, fmData: { ...iniFmData }, closeFmData:{ ...iniCloseFmData } }, async onLoad(query) { wx.showLoading({ title: '', mask: true }); await doAfterLogin(); const { customerId, gridId, currentGridName } = app.globalData; this.setData({ customerId, gridId, gridName: currentGridName }); const { gid } = query; this.setData({ groupId: gid }); await this.getApiData(); wx.hideLoading(); }, onReachBottom() { this.getTopicList(); }, inputSync, showFiltrateListPanel() { this.setData({ isShowedFiltrateListPanle: true }); }, hideFiltrateListPanel() { this.setData({ isShowedFiltrateListPanle: false }); }, filtrateList(e) { const { target: { dataset: { state } } } = e; const { topics } = this.data; if (topics.state !== state) { topics.state = state; this.setData({ topics }); this.refreshTopicList(); } }, handleTapRootNode() { this.hideFiltrateListPanel(); }, focuseTopic(e) { const { target: { dataset: { id } } } = e; let { focusedTopicId } = this.data; if (typeof id === "undefined" || id === focusedTopicId) { focusedTopicId = ""; } else { focusedTopicId = id; } console.log(focusedTopicId); this.setData({ focusedTopicId }); }, blurTopic() { this.setData({ focusedTopicId: "" }); }, // 屏蔽话题 shieldTopic() { let { fmData, focusedTopicId, showedShieldTopicPanel } = this.data; fmData.topicId = focusedTopicId; showedShieldTopicPanel = true; this.setData({ fmData, showedShieldTopicPanel }); }, // 确认屏蔽 async confirmShieldTopic() { const { fmData } = this.data; if (fmData.operateReason === "") { return wx.showToast({ title: "屏蔽理由不能为空。", icon: "none", duration: 1500 }); } wx.showLoading({ title: "请求中", mask: true }); const { data: { data: { code, data } }, msg } = await wxRequestPost("resi/group/topic/hidetopic", fmData, { // isMock: true }); wx.hideLoading(); if (msg === "success" && code === 0) { wx.showToast({ title: "屏蔽成功。", duration: 1500 }); let { topics } = this.data; topics.list = topics.list.filter(item => { return item.topicId !== fmData.topicId; }); this.setData({ topics }); this.cancelShieldTopic(); } else { console.log("屏蔽失败。", data); wx.showToast({ title: "网络错误", icon: "none", duration: 1500 }); } }, // 取消屏蔽 cancelShieldTopic() { this.setData({ showedShieldTopicPanel: false, fmData: { ...iniFmData } }); this.blurTopic(); }, // 关闭话题 closeTopic() { let { closeFmData, focusedTopicId, showedCloseTopicPanel } = this.data; closeFmData.topicId = focusedTopicId; showedCloseTopicPanel = true; this.setData({ closeFmData, showedCloseTopicPanel, resolved:true }); }, // 确认关闭话题 async confirmCloseTopic() { const { closeFmData } = this.data; if (closeFmData.operateReason === "") { return wx.showToast({ title: "关闭理由不能为空。", icon: "none", duration: 1500 }); } closeFmData.closedStatus = this.data.resolved?"resolved":"unresolved"; wx.showLoading({ title: "请求中", mask: true }); const { data: { data: { code, data } }, msg } = await wxRequestPost("resi/group/topic/closetopic", closeFmData, { // isMock: true }); wx.hideLoading(); if (msg === "success" && code === 0) { wx.showToast({ title: "关闭话题成功。", duration: 1500 }); let { topics } = this.data; topics.list = topics.list.map(item => { if (item.topicId === closeFmData.topicId) { item.status = "closed"; } return item; }); this.setData({ topics }); this.cancelCloseTopic(); } }, // 取消关闭话题 cancelCloseTopic() { this.setData({ showedCloseTopicPanel: false, closeFmData: { ...iniCloseFmData } }); this.blurTopic(); }, closeRadioChange(e){ let {value} = e.detail if(value==='resolved'){ this.setData({resolved:true}) }else{ this.setData({resolved:false}) } }, translateTopic(e) { console.log(e.currentTarget.dataset.topicid) let topicId = e.currentTarget.dataset.topicid wx.navigateTo({ url: `../topicToDiscussion/index?topicid=${topicId}` }) }, async getApiData() { this.getTopicList(); await this.getInfo(); }, // 获取小组详情 async getInfo() { const { groupId } = this.data; const { data: { data: { code, data } }, msg } = await wxRequestPost( "resi/group/group/getgroupsummarize", { groupId }, { // isMock: true } ); if (msg === "success" && code === 0) { let { info } = this.data; info.groupName = data.groupName; info.leaderFlag = data.leaderFlag; this.setData({ info }); } }, // 刷新评论列表 refreshTopicList() { this.resetTopicList(); this.getTopicList(); }, // 重置评论列表 resetTopicList() { let { topics } = this.data; topics.list = []; topics.page = 1; topics.isNone = false; this.setData({ topics }); }, // 获取评论列表 async getTopicList() { const { groupId, topics } = this.data; // 如果正在加载或没有更多,返回 if (topics.loading || topics.isNone) return; topics.loading = true; this.setData({ topics }); const { data: { data: { code, data } }, msg } = await wxRequestPost( "resi/group/topic/getpasttopiclist", { groupId, status: topics.state, pageNo: topics.page, pageSize: topics.pageSize }, { // isMock: true } ); topics.loading = false; if (msg === "success" && code === 0) { let newList = data .map(item => { if (!item.releaseUserName) { item.releaseUserName = "匿名用户"; } return item; }) .filter( item => topics.list.findIndex(sItem => sItem.topicId === item.topicId) === -1 ); topics.list = topics.list.concat(newList); topics.page = topics.page + 1; if (data.length < topics.pageSize) { topics.isNone = true; } } this.setData({ topics }); } });