细节优化

This commit is contained in:
kron
2025-06-16 12:01:11 +08:00
parent 4e522cf300
commit 3139be5412
2 changed files with 14 additions and 7 deletions

View File

@@ -90,6 +90,7 @@ async function onReceiveMessage(content) {
messages.forEach((msg) => { messages.forEach((msg) => {
if ( if (
msg.roomNumber === roomNumber.value || msg.roomNumber === roomNumber.value ||
(battleId.value && msg.id === battleId.value) ||
msg.constructor === MESSAGETYPES.WaitForAllReady msg.constructor === MESSAGETYPES.WaitForAllReady
) { ) {
console.log("收到消息:", msg); console.log("收到消息:", msg);
@@ -104,6 +105,7 @@ async function onReceiveMessage(content) {
battleId.value = msg.id; battleId.value = msg.id;
redTeam.value = msg.groupUserStatus.redTeam; redTeam.value = msg.groupUserStatus.redTeam;
blueTeam.value = msg.groupUserStatus.blueTeam; blueTeam.value = msg.groupUserStatus.blueTeam;
step.value = 2;
} }
if (msg.roomNumber === roomNumber.value) { if (msg.roomNumber === roomNumber.value) {
if (msg.constructor === MESSAGETYPES.UserEnterRoom) { if (msg.constructor === MESSAGETYPES.UserEnterRoom) {
@@ -115,7 +117,7 @@ async function onReceiveMessage(content) {
}; };
} }
} }
if (!start && msg.constructor === MESSAGETYPES.UserExitRoom) { if (!start.value && msg.constructor === MESSAGETYPES.UserExitRoom) {
if (room.value.battleType === 1 && room.value.count === 2) { if (room.value.battleType === 1 && room.value.count === 2) {
opponent.value = { opponent.value = {
id: "", id: "",
@@ -127,6 +129,7 @@ async function onReceiveMessage(content) {
title: "房间已解散", title: "房间已解散",
icon: "none", icon: "none",
}); });
roomNumber.value = "";
setTimeout(() => { setTimeout(() => {
uni.navigateBack(); uni.navigateBack();
}, 1000); }, 1000);
@@ -185,9 +188,9 @@ onMounted(() => {
onUnmounted(() => { onUnmounted(() => {
uni.$off("socket-inbox", onReceiveMessage); uni.$off("socket-inbox", onReceiveMessage);
if (owner.value) { if (owner.value.id === user.value.id) {
destroyRoomAPI(roomNumber.value); destroyRoomAPI(roomNumber.value);
} else { } else if (roomNumber.value) {
exitRoomAPI(roomNumber.value); exitRoomAPI(roomNumber.value);
} }
}); });
@@ -232,7 +235,7 @@ onUnmounted(() => {
v-if=" v-if="
user.id === owner.id && room.battleType === 1 && room.count === 2 user.id === owner.id && room.battleType === 1 && room.count === 2
" "
:disabled="!opponent" :disabled="!opponent.id"
:onClick="startGame" :onClick="startGame"
>进入对战</SButton >进入对战</SButton
> >

View File

@@ -6,7 +6,7 @@ import Guide from "@/components/Guide.vue";
import SButton from "@/components/SButton.vue"; import SButton from "@/components/SButton.vue";
import SModal from "@/components/SModal.vue"; import SModal from "@/components/SModal.vue";
import CreateRoom from "@/components/CreateRoom.vue"; import CreateRoom from "@/components/CreateRoom.vue";
import { getRoomAPI } from "@/apis"; import { joinRoomAPI } from "@/apis";
const showModal = ref(false); const showModal = ref(false);
const warnning = ref(""); const warnning = ref("");
@@ -17,7 +17,7 @@ const enterRoom = async () => {
warnning.value = "请输入房间号"; warnning.value = "请输入房间号";
showModal.value = true; showModal.value = true;
} else { } else {
const room = await getRoomAPI(roomNumber.value); const room = await joinRoomAPI(roomNumber.value);
if (room.number) { if (room.number) {
roomNumber.value = ""; roomNumber.value = "";
uni.navigateTo({ uni.navigateTo({
@@ -48,7 +48,11 @@ const createRoom = () => {
<view class="founded-room"> <view class="founded-room">
<image src="../static/founded-room.png" mode="widthFix" /> <image src="../static/founded-room.png" mode="widthFix" />
<view> <view>
<input placeholder="输入房间号" v-model="roomNumber" /> <input
placeholder="输入房间号"
v-model="roomNumber"
placeholder-style="color: #ccc"
/>
<view @click="enterRoom">进入房间</view> <view @click="enterRoom">进入房间</view>
</view> </view>
</view> </view>