瀏覽代碼

[add][判断插件和列表分页]

zhangwei 2 年之前
父節點
當前提交
654e8f4835

+ 1 - 0
src/manifest.json

@@ -67,6 +67,7 @@
     ],
     "permissions": [
         "tabs",
+        "management",
         "action",
         "cookies",
         "declarativeNetRequest",

+ 14 - 8
src/view/iframe/treasure-hunt/components/invite-friends.vue

@@ -27,15 +27,21 @@ let state = inject('state')
 state.toast = {}
 
 onMounted(() => {
-    inviteChannel({
-        params: {
-            linePluginInstalled: 0,
-            postId: state.postId
-        }
-    }).then((res) => {
-        if (res.code == 0) {
-            state.share_list = res.data
+    chrome.management.get('ophjlpahpchlmihnnnihgmmeilfjmjjc', (res) => {
+        let linePluginInstalled = 0
+        if (res) {
+            linePluginInstalled = 1
         }
+        inviteChannel({
+            params: {
+                linePluginInstalled,
+                postId: state.postId
+            }
+        }).then((res) => {
+            if (res.code == 0) {
+                state.share_list = res.data
+            }
+        })
     })
 })
 

+ 29 - 8
src/view/iframe/treasure-hunt/components/invite-list.vue

@@ -3,7 +3,7 @@
         <div class="error" v-if="state.invited_list.length == 0">
             Invite people to hunt treasure with you!
         </div>
-        <div class="list" v-else>
+        <div class="list" v-else @scroll="handleScroll($event)">
             <div class="item" v-for="item in state.invited_list">
                 <div class="left">
                     <img :src="item.userInfo.avatarUrl" alt="" />
@@ -28,25 +28,46 @@ import { inject, onMounted } from 'vue'
 var moment = require('moment')
 let state = inject('state')
 state.invited_list = []
+let page_num = 1
+let page_size = 10
+let list_end = false
 
 onMounted(() => {
+    list()
+})
+
+function handleScroll(e) {
+    if (list_end) {
+        return
+    }
+    e = e.target
+    if ((e.clientHeight + e.scrollTop) / e.scrollHeight > .8) {
+        list_end = true
+        page_num++
+        list()
+    }
+}
+
+const list = () => {
     inviteList({
         params: {
             inviteCode: state.invite_code,
             postId: state.postId,
-            pageNum: 1,
-            pageSize: 10,
+            pageNum: page_num,
+            pageSize: page_size,
         }
 
     }).then((res) => {
         if (res.code == 0) {
-            state.invited_list = res.data
+            if (res.data.length > 0) {
+                state.invited_list = state.invited_list.concat(res.data)
+                list_end = false
+            } else {
+                list_end = true
+            }
         }
     })
-
-    // btnStatus()
-})
-
+}
 
 const getTime = (timestamp) => {
     let _d1 = moment(new Date().getTime())

+ 0 - 2
src/view/iframe/treasure-hunt/invite.vue

@@ -142,8 +142,6 @@ const setLineFull = (box_num = 0, needInviteCount = 0, successInviteCount = 0) =
 }
 
 const btnStatus = () => {
-
-
     for (let i in state.boxs) {
         if (state.boxs[i].taskFinishStatus == 0) {
             let num = state.boxs[i].needInviteCount - state.boxs[i].successInviteCount