const state = { list: [], unread_count: 0, top_unread_items: [], settings: {bg:""} }; const mutations = { SET_LIST(state, list) { state.list = [...list]; }, SET_UNREAD_COUNT(state, count) { state.unread_count = count; }, SET_TOP_UNREAD_ITEMS(state, data) { state.top_unread_items = [...data]; }, SET_SETTINGS(state, data) { state.settings = {...data}; }, }; const actions = { async getFriendCircleList({ commit},params) { uni.$u.http.get('/friendcircle/list',params).then(res=>{ commit("SET_LIST", res.data); }).catch(e=>{ console.log(e); uni.$u.toast("获取信息失败"); }) }, async getFriendCircleInfo({ commit, state}) { uni.$u.http.get('/friendcircle/info').then(data=>{ //console.log("获取朋友圈信息",data); commit("SET_UNREAD_COUNT", data.unread_count); commit("SET_TOP_UNREAD_ITEMS", data.top_unread_items); commit("SET_SETTINGS", data.settings); }).catch(e=>{ uni.$u.toast("获取信息失败"); }) }, async comment({ commit, state},params) { return new Promise((resolve,reject)=>{ uni.$u.http.post('/friendcircle/comment',params).then(data=>{ console.log("评论成功",data); const index = state.list.findIndex(i => i.id ==params.id); if(index>=0){ state.list[index].comments.unshift(data); resolve(data); }else{ reject(data); } }).catch(e=>{ console.log("评论失败",e); uni.$u.toast("评论失败"); reject(e); }) }) }, async like({commit, state},params) { return new Promise((resolve,reject)=>{ uni.$u.http.post('/friendcircle/like',params).then(data=>{ console.log("点赞成功",data); const index = state.list.findIndex(i => i.id ==params.id); //console.log("index",index); if(index>=0){ if(data.is_liked){ state.list[index].likes.push({ user_id:params.user_id, nickname:params.nickname, avatar:params.avatar }); state.list[index].is_liked = params.is_liked; }else{ const likes = state.list[index].likes.filter((item)=>{ item.user_id != params.user_id }); state.list[index].likes = likes; state.list[index].is_liked = params.is_liked; } resolve(data); }else{ reject(data); } }).catch(e=>{ console.log("点赞失败",e); uni.$u.toast("点赞失败"); reject(e); }) }) }, async updateUnreadCount({commit,state},v) { commit("SET_UNREAD_COUNT", state.unread_count+v); }, async deleteFriendCircleList({commit,state},params){ uni.$u.http.post('/friendcircle/delete',params).then(res=>{ var list = state.list.filter(item=>{ return item.id!=params.id; }) commit("SET_LIST", list); }).catch(e=>{ console.log(e); uni.$u.toast(typeof e == Object ? e?.msg : e); }) } }; export default { namespaced: true, state, mutations, actions, };