diff --git a/package-lock.json b/package-lock.json index df041da..bc844e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "SYZBH5Server", + "name": "h5Server", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "SYZBH5Server", + "name": "h5Server", "version": "0.1.0", "dependencies": { "@better-scroll/mouse-wheel": "^2.5.1", diff --git a/package.json b/package.json index 52f663c..6d91074 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,11 @@ { - "name": "SYZBH5Server", + "name": "h5Server", "version": "0.1.0", "private": true, "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", - "lint": "vue-cli-service lint", - "package": "up release-super dist -p syzbh5 SYZBH5Server -C -t ./template", - "release": "npm run build && npm run package", - "deploy": "up upload .upchina/SYZBH5Server.tar.gz -a DemoVideoDev -s SYZBH5Server" + "lint": "vue-cli-service lint" }, "dependencies": { "@better-scroll/mouse-wheel": "^2.5.1", diff --git a/src/App.vue b/src/App.vue index fd9512c..b652427 100644 --- a/src/App.vue +++ b/src/App.vue @@ -46,6 +46,7 @@ if (terminalType === "App") { diff --git a/src/views/Circle/hooks/useChatData.js b/src/views/Circle/hooks/useChatData.js index 85cb929..bf02dec 100644 --- a/src/views/Circle/hooks/useChatData.js +++ b/src/views/Circle/hooks/useChatData.js @@ -1,4 +1,4 @@ -import { ref, onMounted, nextTick } from "vue"; +import { ref, onMounted, nextTick } from "vue"; import { getMessageList } from "@/api/circle"; import BScroll from "@better-scroll/core"; import PullDown from "@better-scroll/pull-down"; @@ -14,30 +14,33 @@ export default function useChatData({ id, className, type }) { let bs = ref(); const isPullingDown = ref(false); const msgListRef = ref(); - const msgList = ref([]) + const msgList = ref([]); + const loading = ref(false); const getLiveHisMsg = async () => { + loading.value = true; if (isPullingDown.value) return; isPullingDown.value = true; - let preHisHeight + let preHisHeight; let ret = await getMessageList({ - groupId: id, - lastId: msgList.value[0]?.id, - size: 10, - type, - }) + groupId: id, + lastId: msgList.value[0]?.id, + size: 10, + type, + }); if (ret.code === 0) { - let list = ret.data.list.reverse() || [] + let list = ret.data.list.reverse() || []; hasNext.value = ret.data.hasNext; preHisHeight = msgListRef.value.clientHeight; - msgList.value = list.concat(msgList.value) + msgList.value = list.concat(msgList.value); if (!hasNext.value) { bs.value && bs.value.closePullDown(); } } isPullingDown.value = false; finishPullDown(preHisHeight); + loading.value = false; }; const finishPullDown = (preHisHeight) => { @@ -52,21 +55,21 @@ export default function useChatData({ id, className, type }) { // WebSocket推送的消息 const pushNewMsg = (msg) => { - msgList.value.push(msg) - nextTick(()=>{ - let isBottom = bs.value.maxScrollY+20 >= bs.value.y + msgList.value.push(msg); + nextTick(() => { + let isBottom = bs.value.maxScrollY + 20 >= bs.value.y; bs.value && bs.value.refresh(); - if(isBottom) { + if (isBottom) { bs.value && bs.value.scrollTo(0, bs.value.maxScrollY, 0); } - }) - } + }); + }; // 刷新消息 const refreshMsg = () => { - msgList.value = [] - getLiveHisMsg() - } + msgList.value = []; + getLiveHisMsg(); + }; let wrapper; onMounted(async () => { @@ -108,6 +111,7 @@ export default function useChatData({ id, className, type }) { bs, msgList, pushNewMsg, - refreshMsg + refreshMsg, + loading, }; } diff --git a/src/views/Circle/index.vue b/src/views/Circle/index.vue index 7f1b6bd..a68288b 100644 --- a/src/views/Circle/index.vue +++ b/src/views/Circle/index.vue @@ -1,15 +1,17 @@