Authored by 邱骏

Merge branch 'feature/2019/1230-community-article' of http://git.yoho.cn/fe/xian…

…yu-ufo-app-web into feature/2019/1230-community-article
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
33 <waterFallList 33 <waterFallList
34 :listData="recommendArticleList" 34 :listData="recommendArticleList"
35 :item-w="344" :gutter-w="15" 35 :item-w="344" :gutter-w="15"
  36 + @update-praise="onUpdatePraise"
36 > 37 >
37 </waterFallList> 38 </waterFallList>
38 </ClientOnly> 39 </ClientOnly>
@@ -114,6 +115,12 @@ export default { @@ -114,6 +115,12 @@ export default {
114 } else { 115 } else {
115 this.$yoho.auth(); 116 this.$yoho.auth();
116 } 117 }
  118 + },
  119 + onUpdatePraise({articleId, status}) {
  120 + this.updatePraiseStatus({
  121 + articleId,
  122 + status
  123 + });
117 } 124 }
118 } 125 }
119 }; 126 };
1 const FETCH_DETAIL_INFO = 'FETCH_DETAIL_INFO'; 1 const FETCH_DETAIL_INFO = 'FETCH_DETAIL_INFO';
2 const UPDATE_ARTICLE_PRAISE_INFO = 'UPDATE_ARTICLE_PRAISE_INFO'; 2 const UPDATE_ARTICLE_PRAISE_INFO = 'UPDATE_ARTICLE_PRAISE_INFO';
3 -const FETCH_RECOMMEND_ARTICLES = 'FETCH_RECOMMEND_ARTICLES'; 3 +const FETCH_RECCOMMEND_ARTICLES = 'FETCH_RECCOMMEND_ARTICLES';
  4 +const UPDATE_RECCOMMEND_ARTICLES_PRAISE = 'UPDATE_RECCOMMEND_ARTICLES_PRAISE';
4 5
5 import { UPDATE_ARTICLE_PRAISE } from './list/types'; 6 import { UPDATE_ARTICLE_PRAISE } from './list/types';
6 7
@@ -34,6 +35,7 @@ export default function() { @@ -34,6 +35,7 @@ export default function() {
34 if (res.code === 200) { 35 if (res.code === 200) {
35 commit(`article/articleList/${UPDATE_ARTICLE_PRAISE}`, {articleId, status}, {root: true}); 36 commit(`article/articleList/${UPDATE_ARTICLE_PRAISE}`, {articleId, status}, {root: true});
36 commit(UPDATE_ARTICLE_PRAISE_INFO); 37 commit(UPDATE_ARTICLE_PRAISE_INFO);
  38 + commit(UPDATE_RECCOMMEND_ARTICLES_PRAISE, {articleId, status});
37 } 39 }
38 }, 40 },
39 async fetchRecommendArticle({commit}, {articleId}) { 41 async fetchRecommendArticle({commit}, {articleId}) {
@@ -42,7 +44,7 @@ export default function() { @@ -42,7 +44,7 @@ export default function() {
42 }); 44 });
43 45
44 if (res.code === 200) { 46 if (res.code === 200) {
45 - commit(FETCH_RECOMMEND_ARTICLES, res.data); 47 + commit(FETCH_RECCOMMEND_ARTICLES, res.data);
46 } 48 }
47 } 49 }
48 }, 50 },
@@ -60,7 +62,25 @@ export default function() { @@ -60,7 +62,25 @@ export default function() {
60 praiseCount: hasPraise === 'Y' ? praiseCount - 1 : praiseCount + 1 62 praiseCount: hasPraise === 'Y' ? praiseCount - 1 : praiseCount + 1
61 }; 63 };
62 }, 64 },
63 - [FETCH_RECOMMEND_ARTICLES](state, list = []) { 65 + [UPDATE_RECCOMMEND_ARTICLES_PRAISE](state, {articleId, status}) {
  66 + let article = state.recommendArticleList.find(item => +item.articleId === +articleId);
  67 +
  68 + if (article && article.articleId === parseInt(articleId, 10)) {
  69 + if (article.praiseCount === 0 && status === 0) {
  70 + article.praiseCount += 1;
  71 + article.hasPraised = 'Y';
  72 + } else if (article.praiseCount > 0) {
  73 + if (status === 0) {
  74 + article.praiseCount += 1;
  75 + article.hasPraised = 'Y';
  76 + } else {
  77 + article.praiseCount -= 1;
  78 + article.hasPraised = 'N';
  79 + }
  80 + }
  81 + }
  82 + },
  83 + [FETCH_RECCOMMEND_ARTICLES](state, list = []) {
64 state.recommendArticleList = list.map((item)=> { 84 state.recommendArticleList = list.map((item)=> {
65 let imageHeight = item.imageHeight; 85 let imageHeight = item.imageHeight;
66 let imageWidth = item.imageWidth; 86 let imageWidth = item.imageWidth;