Browse Source

update,合并请求

lrf402788946 5 years ago
parent
commit
8bdca19496
2 changed files with 34 additions and 10 deletions
  1. 16 10
      src/pages/newsList/views/list.vue
  2. 18 0
      src/store/news.js

+ 16 - 10
src/pages/newsList/views/list.vue

@@ -44,7 +44,7 @@ export default {
   },
   methods: {
     ...mapMutations(['setLoading']),
-    ...mapActions(['siteOperation', 'columnOperation', 'newsOperation']),
+    ...mapActions(['siteOperation', 'columnOperation', 'newsOperation', 'getAllNewsInfo']),
     async getSite() {
       let site = sessionStorage.getItem('site');
       if (!site) {
@@ -72,14 +72,20 @@ export default {
       data.parent_id = news_type === '1' ? item.id : item.content_id;
       let res = await this.newsOperation({ type: 'list', data: data });
       if (`${res.errcode}` === '0') {
-        for (const val of res.data) {
-          let result = await this.newsOperation({ type: 'search', data: { id: val.id } });
-          if (`${result.errcode}` === '0') {
-            val.content = result.data.content;
-          } else {
-            this.$message.error(result.errmsg ? result.errmsg : 'error');
-          }
-        }
+        // for (const val of res.data) {
+        //   let result = await this.newsOperation({ type: 'search', data: { id: val.id } });
+        //   if (`${result.errcode}` === '0') {
+        //     val.content = result.data.content;
+        //   } else {
+        //     this.$message.error(result.errmsg ? result.errmsg : 'error');
+        //   }
+        // }
+        let infos = await this.getAllNewsInfo(res.data.map(i => i._id));
+        res.data.map(i => {
+          let content = infos.find(f => f._id === i._id);
+          i.content = _.get(content, `content`);
+          return i;
+        });
         return res;
       } else {
         this.$message.error(res.errmsg ? res.errmsg : 'error');
@@ -96,7 +102,7 @@ export default {
       } else {
         target.page = 1;
         target.skip = 0;
-        target.limit = this.$limit || 10;
+        target.limit = this.$limit || 6;
       }
       //数据处理
       if (target.type === 'bugList' || target.type === 'column') {

+ 18 - 0
src/store/news.js

@@ -41,6 +41,24 @@ export const actions = {
     let arr = _.flattenDeep(_.flattenDeep(result).map(item => item.data));
     return arr;
   },
+  async getAllNewsInfo({ commit, dispatch }, payload) {
+    let toGet = () => {
+      let res = [];
+      for (const item of payload) {
+        res.push(
+          dispatch('newsOperation', {
+            type: 'search',
+            data: { id: item },
+          })
+        );
+      }
+      return res;
+    };
+    let result = await axios.all(toGet());
+    //降维
+    let arr = _.flattenDeep(result.map(item => item.data));
+    return arr;
+  },
   // 信息管理
   async newsOperation({ state }, { type, data }) {
     let { skip, limit } = data;