From 8c48216a75f03aa252716d089ec15b1c8f4d5856 Mon Sep 17 00:00:00 2001 From: linyimin <18316471919@139.com> Date: Mon, 20 Apr 2026 17:43:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A5=BD=E5=8F=8B=E7=BA=A6=E6=88=98?= =?UTF-8?q?=E9=80=89=E6=8B=A920=E3=80=8140=E5=8E=98=E7=B1=B3=E9=9D=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis.js | 3 +- src/components/CreateRoom.vue | 76 +++++++++++++++++++++++++++++++++-- src/components/SModal.vue | 1 + src/pages/friend-battle.vue | 2 +- 4 files changed, 77 insertions(+), 5 deletions(-) diff --git a/src/apis.js b/src/apis.js index 243c34c..fa8e4f6 100644 --- a/src/apis.js +++ b/src/apis.js @@ -216,10 +216,11 @@ export const getPractiseAPI = async (id) => { return request("GET", `/user/practice/get?id=${id}`); }; -export const createRoomAPI = (gameType, teamSize) => { +export const createRoomAPI = (gameType, teamSize, targetType) => { return request("POST", "/user/createroom", { gameType, teamSize, + targetType, }); }; diff --git a/src/components/CreateRoom.vue b/src/components/CreateRoom.vue index 549b9ab..e34d7d7 100644 --- a/src/components/CreateRoom.vue +++ b/src/components/CreateRoom.vue @@ -18,6 +18,7 @@ const props = defineProps({ }); const battleMode = ref(1); +const targetMode = ref(1); const loading = ref(false); const roomNumber = ref(""); @@ -35,13 +36,14 @@ const createRoom = debounce(async () => { try { const result = await createRoomAPI( battleMode.value === 2 ? 2 : 1, - battleMode.value === 2 ? 10 : size + battleMode.value === 2 ? 10 : size, + targetMode.value*20, ); if (result.number) { props.onConfirm(); await joinRoomAPI(result.number); uni.navigateTo({ - url: "/pages/battle-room?roomNumber=" + result.number, + url: "/pages/battle-room?roomNumber=" + result.number + "&target=" + targetMode.value, }); } } catch (error) { @@ -53,7 +55,11 @@ const createRoom = debounce(async () => { @@ -91,6 +116,7 @@ const createRoom = debounce(async () => { display: flex; flex-direction: column; align-items: center; + padding-top: 44rpx; } .container > image:first-child { width: 45%; @@ -105,6 +131,50 @@ const createRoom = debounce(async () => { justify-content: center; margin-bottom: 15px; } +.target-options-header{ + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 24rpx; +} +.target-options-header-title-img{ + width: 196rpx; + height: 40rpx; +} +.target-options-header-title{ + width: 112rpx; + height: 40rpx; + font-family: PingFang SC, PingFang SC; + font-weight: 400; + font-size: 28rpx; + text-align: center; + font-style: normal; + text-transform: none; + color: #FFEFBA; + margin: 0 18rpx; +} +.target-options-header-line-left{ + width: 214rpx; + height: 0rpx; + border-radius: 0rpx 0rpx 0rpx 0rpx; + border: 1rpx solid; + border-image: linear-gradient(90deg, rgba(133, 119, 96, 0), rgba(133, 119, 96, 1)) 1 1; +} +.target-options-header-line-right{ + width: 214rpx; + height: 0rpx; + border-radius: 0rpx 0rpx 0rpx 0rpx; + border: 1rpx solid; + border-image: linear-gradient(90deg, rgba(133, 119, 96, 1), rgba(133, 119, 96, 0)) 1 1; +} +.target-options { + width: 100%; + padding: 0 10px; + display: flex; + gap: 12px; + justify-content: center; + margin-bottom: 15px; +} .battle-btn { width: 45%; height: 55px; diff --git a/src/components/SModal.vue b/src/components/SModal.vue index 5ac9769..ffcebb8 100644 --- a/src/components/SModal.vue +++ b/src/components/SModal.vue @@ -88,6 +88,7 @@ watch( transform: translateY(100%); transition: all 0.3s ease; position: relative; + background-color: #372E1D; } .modal-content > image:first-child { width: 100%; diff --git a/src/pages/friend-battle.vue b/src/pages/friend-battle.vue index bd36307..b7e4072 100644 --- a/src/pages/friend-battle.vue +++ b/src/pages/friend-battle.vue @@ -169,7 +169,7 @@ onLoad(async (options) => { {{ warnning }}