Browse Source

bug修复

threethousanddream 3 months ago
parent
commit
3b82f6a374
4 changed files with 119 additions and 63 deletions
  1. 3 1
      common/api.js
  2. 40 22
      pages/home/home.vue
  3. 40 22
      pages/home/me.vue
  4. 36 18
      pages/home/share.vue

+ 3 - 1
common/api.js

@@ -13,4 +13,6 @@ export const systemAppPage = params => http.get('/bi-api/microApp/page', {params
 // 我的应用列表
 export const mineAppPage = params => http.get('/bi-api/microApp/myPage', {params})
 // 分享大屏列表
-export const getShareList = params => http.get('/bi-api/visual/data/share/page', {params});
+export const getShareList = params => http.get('/bi-api/visual/data/share/page', {params});
+// 获取大屏访问量
+export const getPv = data => http.post('/bi-api/visual/data/visualViewCount', data);

+ 40 - 22
pages/home/home.vue

@@ -22,7 +22,7 @@
               <view class="name">{{ item.title }}</view>
               <view class="describe">所属分类:{{ item.categoryName }}</view>
               <view class="infoBottom">
-                <view class="num"><i class="el-icon-view"></i> 访问量:0</view>
+                <view class="num"><i class="el-icon-view"></i> 访问量:{{ item.count }}</view>
                 <view class="dateTime">{{ item.date }}</view>
               </view>
             </view>
@@ -42,7 +42,7 @@
   </view>
 </template>
 <script>
-import {bigdataList, reportList, classifyList, reportClassList} from '@/common/api.js'
+import {bigdataList, reportList, classifyList, reportClassList, getPv} from '@/common/api.js'
 import moment from 'moment'
 export default {
   data() {
@@ -76,6 +76,20 @@ export default {
     })
   },
   methods: {
+    getCount(data, type) {
+      return new Promise((resolve, reject) => {
+        if (!data.length) {
+          resolve()
+        } else {
+          let visualIds = data.map(i => i.id)
+          getPv({type, visualIds}).then(rr => {
+            let counts = rr.data.reduce((r, i) => ({...r, [i.visualId]: i.viewCount}), {})
+            data.forEach(item => item.count = counts[item.id] || 0)
+            resolve()
+          })
+        }
+      })
+    },
     getData(reload) {
       if (reload) {
         this.params.current = 1
@@ -86,33 +100,37 @@ export default {
       if (this.tabIndex === 0) {
         bigdataList(data).then(res => {
           let data = res.data
-          data.forEach(item => {
-            item.categoryName = this.visualCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
-            item.date = moment(item.createTime).format('YYYY-MM-DD')
+          this.getCount(data, 0).then(() => {
+            data.forEach(item => {
+              item.categoryName = this.visualCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
+              item.date = moment(item.createTime).format('YYYY-MM-DD')
+            })
+            if (data.length) this.params.current++
+            if (reload) {
+              this.dataList = data
+            } else {
+              this.dataList = this.dataList.concat(data)
+            }
+            this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
           })
-          if (data.length) this.params.current++
-          if (reload) {
-            this.dataList = data
-          } else {
-            this.dataList = this.dataList.concat(data)
-          }
-          this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
         }).finally(() => this.loading = false)
       }
       if (this.tabIndex === 1) {
         reportList(data).then(res => {
           let data = res.data
-          data.forEach(item => {
-            item.categoryName = this.reportCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
-            item.date = moment(item.createTime).format('YYYY-MM-DD')
+          this.getCount(data, 1).then(() => {
+            data.forEach(item => {
+              item.categoryName = this.reportCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
+              item.date = moment(item.createTime).format('YYYY-MM-DD')
+            })
+            if (data.length) this.params.current++
+            if (reload) {
+              this.dataList = data
+            } else {
+              this.dataList = this.dataList.concat(data)
+            }
+            this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
           })
-          if (data.length) this.params.current++
-          if (reload) {
-            this.dataList = data
-          } else {
-            this.dataList = this.dataList.concat(data)
-          }
-          this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
         }).finally(() => this.loading = false)
       }
     },

+ 40 - 22
pages/home/me.vue

@@ -22,7 +22,7 @@
               <view class="name">{{ item.title }}</view>
               <view class="describe">所属分类:{{ item.categoryName }}</view>
               <view class="infoBottom">
-                <view class="num"><i class="el-icon-view"></i> 访问量:0</view>
+                <view class="num"><i class="el-icon-view"></i> 访问量:{{ item.count }}</view>
                 <view class="dateTime">{{ item.date }}</view>
               </view>
             </view>
@@ -42,7 +42,7 @@
   </view>
 </template>
 <script>
-import {bigdataList, reportList, classifyList, reportClassList} from '@/common/api.js'
+import {bigdataList, reportList, classifyList, reportClassList, getPv} from '@/common/api.js'
 import moment from 'moment'
 import Cookies from 'js-cookie'
 export default {
@@ -74,6 +74,20 @@ export default {
     })
   },
   methods: {
+    getCount(data, type) {
+      return new Promise((resolve, reject) => {
+        if (!data.length) {
+          resolve()
+        } else {
+          let visualIds = data.map(i => i.id)
+          getPv({type, visualIds}).then(rr => {
+            let counts = rr.data.reduce((r, i) => ({...r, [i.visualId]: i.viewCount}), {})
+            data.forEach(item => item.count = counts[item.id] || 0)
+            resolve()
+          })
+        }
+      })
+    },
     getData(reload) {
       if (reload) {
         this.params.current = 1
@@ -84,33 +98,37 @@ export default {
       if (this.tabIndex === 0) {
         bigdataList(data).then(res => {
           let data = res.data
-          data.forEach(item => {
-            item.categoryName = this.visualCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
-            item.date = moment(item.createTime).format('YYYY-MM-DD')
+          this.getCount(data, 0).then(() => {
+            data.forEach(item => {
+              item.categoryName = this.visualCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
+              item.date = moment(item.createTime).format('YYYY-MM-DD')
+            })
+            if (data.length) this.params.current++
+            if (reload) {
+              this.dataList = data
+            } else {
+              this.dataList = this.dataList.concat(data)
+            }
+            this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
           })
-          if (data.length) this.params.current++
-          if (reload) {
-            this.dataList = data
-          } else {
-            this.dataList = this.dataList.concat(data)
-          }
-          this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
         }).finally(() => this.loading = false)
       }
       if (this.tabIndex === 1) {
         reportList(data).then(res => {
           let data = res.data
-          data.forEach(item => {
-            item.categoryName = this.reportCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
-            item.date = moment(item.createTime).format('YYYY-MM-DD')
+          this.getCount(data, 1).then(() => {
+            data.forEach(item => {
+              item.categoryName = this.reportCategoryPlain.find(i => i.id === item.category)?.categoryValue || ''
+              item.date = moment(item.createTime).format('YYYY-MM-DD')
+            })
+            if (data.length) this.params.current++
+            if (reload) {
+              this.dataList = data
+            } else {
+              this.dataList = this.dataList.concat(data)
+            }
+            this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
           })
-          if (data.length) this.params.current++
-          if (reload) {
-            this.dataList = data
-          } else {
-            this.dataList = this.dataList.concat(data)
-          }
-          this.lastCreateTime = this.dataList[this.dataList.length - 1]?.createTime || ''
         }).finally(() => this.loading = false)
       }
     },

+ 36 - 18
pages/home/share.vue

@@ -20,7 +20,7 @@
             <view class="infoRight">
               <view class="name">{{ item.visualData.title }}</view>
               <view class="infoBottom">
-                <view class="num"><i class="el-icon-view"></i> 访问量:0</view>
+                <view class="num"><i class="el-icon-view"></i> 访问量:{{ item.count }}</view>
                 <view class="dateTime">{{ item.date }}</view>
               </view>
             </view>
@@ -36,7 +36,7 @@
   </view>
 </template>
 <script>
-import {getShareList} from '@/common/api.js'
+import {getShareList, getPv} from '@/common/api.js'
 import moment from 'moment'
 export default {
   data() {
@@ -57,6 +57,20 @@ export default {
     this.getData(true)
   },
   methods: {
+    getCount(data, type) {
+      return new Promise((resolve, reject) => {
+        if (!data.length) {
+          resolve()
+        } else {
+          let visualIds = data.map(i => i.visualData.id)
+          getPv({type, visualIds}).then(rr => {
+            let counts = rr.data.reduce((r, i) => ({...r, [i.visualId]: i.viewCount}), {})
+            data.forEach(item => item.count = counts[item.visualData.id] || 0)
+            resolve()
+          })
+        }
+      })
+    },
     getData(reload) {
       if (reload) {
         this.params.page = 1
@@ -65,29 +79,33 @@ export default {
       if (this.tabIndex === 0) {
         getShareList({...this.params, type: 0}).then(res => {
           let data = res.data.records
-          data.forEach(item => {
-            item.date = moment(item.visualData.createTime).format('YYYY-MM-DD')
+          this.getCount(data, 0).then(() => {
+            data.forEach(item => {
+              item.date = moment(item.visualData.createTime).format('YYYY-MM-DD')
+            })
+            if (data.length) this.params.page++
+            if (reload) {
+              this.dataList = data
+            } else {
+              this.dataList = this.dataList.concat(data)
+            }
           })
-          if (data.length) this.params.page++
-          if (reload) {
-            this.dataList = data
-          } else {
-            this.dataList = this.dataList.concat(data)
-          }
         }).finally(() => this.loading = false)
       }
       if (this.tabIndex === 1) {
         getShareList({...this.params, type: 1}).then(res => {
           let data = res.data.records
-          data.forEach(item => {
-            item.date = moment(item.visualData.createTime).format('YYYY-MM-DD')
+          this.getCount(data, 1).then(() => {
+            data.forEach(item => {
+              item.date = moment(item.visualData.createTime).format('YYYY-MM-DD')
+            })
+            if (data.length) this.params.page++
+            if (reload) {
+              this.dataList = data
+            } else {
+              this.dataList = this.dataList.concat(data)
+            }
           })
-          if (data.length) this.params.page++
-          if (reload) {
-            this.dataList = data
-          } else {
-            this.dataList = this.dataList.concat(data)
-          }
         }).finally(() => this.loading = false)
       }
     },