@@ -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 () => {
< / script >
< template >
< view class = "container" >
< image src = "../static/choose-battle-mode.png" mode = "widthFix" / >
< view class = "target-options-header" >
< view class = "target-options-header-line-left" > < / view >
< image class = "target-options-header-title-img" src = "../static/choose-battle-mode.png" mode = "widthFix" / >
< view class = "target-options-header-line-right" > < / view >
< / view >
< view class = "create-options" >
< view
: class = "{ 'battle-btn': true, 'battle-choosen': battleMode === 1 }"
@@ -80,6 +86,25 @@ const createRoom = debounce(async () => {
< text > 乱斗模式 ( 3 - 10 人 ) < / text >
< / view >
< / view >
< view class = "target-options-header" >
< view class = "target-options-header-line-left" > < / view >
< view class = "target-options-header-title" > 选择靶纸 < / view >
< view class = "target-options-header-line-right" > < / view >
< / view >
< view class = "target-options" >
< view
: class = "{ 'battle-btn': true, 'battle-choosen': targetMode === 1 }"
@click ="() => (targetMode = 1)"
>
< text > 20 厘米全环靶 < / text >
< / view >
< view
: class = "{ 'battle-btn': true, 'battle-choosen': targetMode === 2 }"
@click ="() => (targetMode = 2)"
>
< text > 40 厘米全环靶 < / text >
< / view >
< / view >
< SButton :onClick = "createRoom" > 创建房间 < / SButton >
< / view >
< / template >
@@ -91,6 +116,7 @@ const createRoom = debounce(async () => {
display : flex ;
flex - direction : column ;
align - items : center ;
padding - top : 44 rpx ;
}
. container > image : first - child {
width : 45 % ;
@@ -105,6 +131,50 @@ const createRoom = debounce(async () => {
justify - content : center ;
margin - bottom : 15 px ;
}
. target - options - header {
display : flex ;
align - items : center ;
justify - content : center ;
margin - bottom : 24 rpx ;
}
. target - options - header - title - img {
width : 196 rpx ;
height : 40 rpx ;
}
. target - options - header - title {
width : 112 rpx ;
height : 40 rpx ;
font - family : PingFang SC , PingFang SC ;
font - weight : 400 ;
font - size : 28 rpx ;
text - align : center ;
font - style : normal ;
text - transform : none ;
color : # FFEFBA ;
margin : 0 18 rpx ;
}
. target - options - header - line - left {
width : 214 rpx ;
height : 0 rpx ;
border - radius : 0 rpx 0 rpx 0 rpx 0 rpx ;
border : 1 rpx solid ;
border - image : linear - gradient ( 90 deg , rgba ( 133 , 119 , 96 , 0 ) , rgba ( 133 , 119 , 96 , 1 ) ) 1 1 ;
}
. target - options - header - line - right {
width : 214 rpx ;
height : 0 rpx ;
border - radius : 0 rpx 0 rpx 0 rpx 0 rpx ;
border : 1 rpx solid ;
border - image : linear - gradient ( 90 deg , rgba ( 133 , 119 , 96 , 1 ) , rgba ( 133 , 119 , 96 , 0 ) ) 1 1 ;
}
. target - options {
width : 100 % ;
padding : 0 10 px ;
display : flex ;
gap : 12 px ;
justify - content : center ;
margin - bottom : 15 px ;
}
. battle - btn {
width : 45 % ;
height : 55 px ;