瀏覽代碼

feat: 修改消息交互

linwenxin 1 年之前
父節點
當前提交
ccb7064aa9
共有 2 個文件被更改,包括 33 次插入13 次删除
  1. 1 0
      src/pages/message/index.vue
  2. 32 13
      src/pages/message/msgView.vue

+ 1 - 0
src/pages/message/index.vue

@@ -32,6 +32,7 @@
             </view>
           </view>
         </view>
+        <Loading v-if="!list.length" :loadStatus="2" :dataList="list" />
       </scroll-view>
     </view>
   </view>

+ 32 - 13
src/pages/message/msgView.vue

@@ -127,7 +127,16 @@
     onShow() {
       // #ifdef H5
       this.getGoods()
-      this.getNewList()
+      this.getMsgList(2, () => {
+        this.getNewList()
+        this.$nextTick(() => {
+          uni.createSelectorQuery().select('.message_view_scroll').boundingClientRect(data => {
+            uni.createSelectorQuery().select('.scrollviewDiv').boundingClientRect(data2 => {
+              this.scrollTop = data2.height - data.height
+            }).exec()
+          }).exec()
+        })
+      })
       // #endif
     },
     onHide() {
@@ -137,6 +146,13 @@
       }
       // #endif
     },
+    destroyed() {
+      // #ifdef H5
+      if (this.timeId) {
+        clearTimeout(this.timeId)
+      }
+      // #endif
+    },
     methods: {
       // #ifdef H5
       getGoods() {
@@ -145,25 +161,28 @@
         }
         api.postJson('/goods/detail', {
           id: this.pam.goodsId,
-        }).then(res => {
+        }, false).then(res => {
           this.goodsDetail = res.data
-          console.log(res)
         })
       },
       getNewList() {
         if (this.timeId) {
           clearTimeout(this.timeId)
         }
-        this.getMsgList(0, () => {
-          this.timeId = setTimeout(this.getNewList, 3000)
-          uni.createSelectorQuery().select('.message_view_scroll').boundingClientRect(data => {
-            uni.createSelectorQuery().select('.scrollviewDiv').boundingClientRect(data2 => {
-              if ((this.scrollTop + data.height + 10) >= data2.height) {
-                this.scrollTop = data2.height
-              }
-            }).exec()
-          }).exec()
-        })
+        uni.createSelectorQuery().select('.scrollviewDiv').boundingClientRect(data1 => {
+          this.getMsgList(0, () => {
+            this.timeId = setTimeout(this.getNewList, 3000)
+            this.$nextTick(() => {
+              uni.createSelectorQuery().select('.message_view_scroll').boundingClientRect(data => {
+                uni.createSelectorQuery().select('.scrollviewDiv').boundingClientRect(data2 => {
+                  if (data1.height - data.height - this.scrollTop < 10) {
+                    this.scrollTop = data2.height - data.height
+                  }
+                }).exec()
+              }).exec()
+            })
+          })
+        }).exec()
       },
       getMsgList(flag, cb) {
         api.postJson('/user/talk/list', {