diff --git a/src/components/AppBackground.vue b/src/components/AppBackground.vue index d27542a..103a8a9 100644 --- a/src/components/AppBackground.vue +++ b/src/components/AppBackground.vue @@ -37,6 +37,12 @@ onMounted(() => { src="../static/app-bg3.png" :style="{ height: capsuleHeight + 'px' }" /> + diff --git a/src/components/BattleFooter.vue b/src/components/BattleFooter.vue index e4e869e..8058aa3 100644 --- a/src/components/BattleFooter.vue +++ b/src/components/BattleFooter.vue @@ -1,4 +1,6 @@ + + + + diff --git a/src/components/ShootProgress2.vue b/src/components/ShootProgress2.vue new file mode 100644 index 0000000..98b2edd --- /dev/null +++ b/src/components/ShootProgress2.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/components/TeamAvatars.vue b/src/components/TeamAvatars.vue new file mode 100644 index 0000000..ffd7edd --- /dev/null +++ b/src/components/TeamAvatars.vue @@ -0,0 +1,94 @@ + + + + + diff --git a/src/constants.js b/src/constants.js index f29ddf6..23705de 100644 --- a/src/constants.js +++ b/src/constants.js @@ -174,3 +174,25 @@ export const getBattleResultTips = ( } return ""; }; + +export const RoundImages = { + "round1":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slggifbnw9snvs.png", + "round2":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgf0swue5xzpd.png", + "round3":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slglkylhmq8beb.png", + "round4":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slggc88nasmxf5.png", + "round5":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgeloitb8mixf.png", + "round6":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgsjbyyuu1des.png", + "round7":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgdysd1wqulj5.png", + "round8":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgm82ny3qjd8m.png", +} + +export const RoundGoldImages = { + "round1":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slg7kfzzwwiwcb.png", + "round2":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgs5htghfh3a9.png", + "round3":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgc9ge3paqkba.png", + "round4":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgehduk96yurp.png", + "round5":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgefz3hdmwbnz.png", + "round6":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgeyb4cqwezgc.png", + "round7":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slggu3tlh97v5p.png", + "round8":"https://static.shelingxingqiu.com/attachment/2025-08-13/dc12slgszmdtmaotch.png", +} \ No newline at end of file diff --git a/src/pages.json b/src/pages.json index 08ba596..018f411 100644 --- a/src/pages.json +++ b/src/pages.json @@ -6,6 +6,9 @@ { "path": "pages/battle-result" }, + { + "path": "pages/team-battle" + }, { "path": "pages/point-book-edit" }, diff --git a/src/pages/battle-room.vue b/src/pages/battle-room.vue index 1f00bd7..8bc65c3 100644 --- a/src/pages/battle-room.vue +++ b/src/pages/battle-room.vue @@ -17,7 +17,12 @@ const room = ref({}); const roomNumber = ref(""); const owner = ref({}); const opponent = ref({}); -const players = ref([]); +const players = ref([ + { name: "player1", team: 1 }, + { name: "player2", team: 0 }, + { name: "player3", team: 2 }, + { name: "player4", team: 1 }, +]); const showModal = ref(false); const battleType = ref(0); @@ -225,6 +230,8 @@ onHide(() => {}); 弓箭手们,人都到齐了吗? 1v1比赛即将开始! + 2v2比赛即将开始! + 3v3比赛即将开始! 大乱斗即将开始! 复制房间号 @@ -263,6 +270,41 @@ onHide(() => {}); :total="room.count || 10" :players="players" /> + + + + + + + 创建者 + + + + + + + + 23232323232 + + + + + + + 22222 + + + + {}); border-radius: 20px; position: relative; } +.all-players { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + height: 83vw; +} +.all-players > image:first-child { + position: absolute; + width: 100%; +} +.all-players > image:nth-child(2) { + width: 25vw; + position: relative; +} +.all-players > view { + position: relative; + width: 42vw; + height: 42vw; + margin-top: 7vw; +} +.all-players > view > view { + position: absolute; + left: 50%; + top: 50%; +} +/* 4个头像 - 正方形排列 */ +.all-players > view > view:nth-child(1):nth-last-child(4) { + transform: translate(-50%, -50%) rotate(-30deg) translateY(-21.5vw) + rotate(30deg); +} +.all-players > view > view:nth-child(2):nth-last-child(3) { + transform: translate(-50%, -50%) rotate(-120deg) translateY(-21.5vw) + rotate(120deg); +} +.all-players > view > view:nth-child(3):nth-last-child(2) { + transform: translate(-50%, -50%) rotate(-210deg) translateY(-21.5vw) + rotate(210deg); +} +.all-players > view > view:nth-child(4):nth-last-child(1) { + transform: translate(-50%, -50%) rotate(-300deg) translateY(-21.5vw) + rotate(300deg); +} +/* 6个头像 - 六边形排列 */ +.all-players > view > view:nth-child(1):nth-last-child(6) { + transform: translate(-50%, -50%) rotate(-30deg) translateY(-21vw) + rotate(30deg); +} +.all-players > view > view:nth-child(2):nth-last-child(5) { + transform: translate(-50%, -50%) rotate(-90deg) translateY(-21vw) + rotate(90deg); +} +.all-players > view > view:nth-child(3):nth-last-child(4) { + transform: translate(-50%, -50%) rotate(-150deg) translateY(-21vw) + rotate(150deg); +} +.all-players > view > view:nth-child(4):nth-last-child(3) { + transform: translate(-50%, -50%) rotate(-210deg) translateY(-21vw) + rotate(210deg); +} +.all-players > view > view:nth-child(5):nth-last-child(2) { + transform: translate(-50%, -50%) rotate(-270deg) translateY(-21vw) + rotate(270deg); +} +.all-players > view > view:nth-child(6):nth-last-child(1) { + transform: translate(-50%, -50%) rotate(-330deg) translateY(-21vw) + rotate(330deg); +} +.all-players > view > view > text { + position: absolute; + background-color: #fed847; + font-size: 8px; + border-radius: 10px; + padding: 1px 0px; + bottom: -20%; + left: calc(50% - 15px); + width: 30px; + text-align: center; +} +.choose-side { + display: flex; +} +.choose-side > view { + width: 50%; +} +.choose-side > view:first-child > view { + background: linear-gradient(270deg, #6a1212 0%, rgba(74, 0, 0, 0) 100%); +} +.choose-side > view:last-child > view { + background: linear-gradient(270deg, rgba(13, 0, 74, 0) 0%, #172a86 100%); +} +.choose-side-left-item, +.choose-side-right-item { + display: flex; + align-items: center; + color: #fff; + border-radius: 12px; + padding: 10px; + align-items: center; + margin: 10px 5px; + position: relative; +} +.choose-side-left-item { + justify-content: flex-end; +} +.choose-side-left-item > text, +.choose-side-right-item > text { + margin: 10px; + max-width: 100px; +} +.choose-side-left-item > button:first-child, +.choose-side-right-item > button:last-child { + position: absolute; + top: 0; +} +.choose-side-left-item > button:first-child > image, +.choose-side-right-item > button:last-child > image { + width: 28px; +} +.choose-side-left-item > button:first-child { + left: 0; +} + +.choose-side-right-item > button:last-child { + right: 0; +} +.choose-side-left-item > button:last-child, +.choose-side-right-item > button:first-child { + background-color: #fff; + border-radius: 50%; + width: 38px; + height: 38px; + display: flex; + justify-content: center; + align-items: center; +} +.choose-side-left-item > button:last-child > image, +.choose-side-right-item > button:first-child > image { + width: 18px; +} diff --git a/src/pages/friend-battle.vue b/src/pages/friend-battle.vue index 72dde77..a0c577c 100644 --- a/src/pages/friend-battle.vue +++ b/src/pages/friend-battle.vue @@ -117,6 +117,7 @@ const onCreateRoom = async () => { src="https://static.shelingxingqiu.com/attachment/2025-07-15/dbcejys872iyun92h6.png" mode="widthFix" /> + @@ -190,39 +191,43 @@ const onCreateRoom = async () => { position: absolute; width: 100%; } -.create-room > view { - margin: 0 30px; - padding-top: 12%; +.create-room > image:nth-of-type(2) { + padding: 15px; + width: 25vw; + position: relative; +} +.create-room > view:nth-child(3) { + margin: 12vw auto; position: relative; display: flex; - flex-direction: column; + align-items: center; + justify-content: center; } .create-room > view > image:first-child { - width: 18vw; - transform: translateX(30%); + width: 19vw; + transform: translateY(-60%); border-radius: 50%; + position: relative; } .create-room > view > image:nth-child(2) { - width: 36vw; - transform: translateX(55%) translateY(-40px); + width: 37vw; + position: relative; } .create-room > view > view:nth-child(3) { - width: 18vw; - height: 18vw; + position: relative; + width: 19vw; + height: 19vw; border-radius: 50%; background-color: #ccc; display: flex; justify-content: center; align-items: center; - transform: translate(290%, -75px); + transform: translateY(60%); } .create-room > view > view:nth-child(3) > image { width: 20px; margin-right: 2px; } -.create-room > view:last-child { - transform: translateY(-100%); -} .warnning { width: 100%; height: 100%; diff --git a/src/pages/team-battle.vue b/src/pages/team-battle.vue new file mode 100644 index 0000000..739832e --- /dev/null +++ b/src/pages/team-battle.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/src/static/add-grey.png b/src/static/add-grey.png new file mode 100644 index 0000000..12d584e Binary files /dev/null and b/src/static/add-grey.png differ diff --git a/src/static/app-bg4.png b/src/static/app-bg4.png new file mode 100644 index 0000000..5362be7 Binary files /dev/null and b/src/static/app-bg4.png differ diff --git a/src/static/room-notfound-title.png b/src/static/room-notfound-title.png new file mode 100644 index 0000000..93b653d Binary files /dev/null and b/src/static/room-notfound-title.png differ diff --git a/src/static/row-bg.png b/src/static/row-bg.png deleted file mode 100644 index f7b8792..0000000 Binary files a/src/static/row-bg.png and /dev/null differ diff --git a/src/static/title-2v2.png b/src/static/title-2v2.png new file mode 100644 index 0000000..f1f40b5 Binary files /dev/null and b/src/static/title-2v2.png differ diff --git a/src/static/title-3v3.png b/src/static/title-3v3.png new file mode 100644 index 0000000..b2c87ee Binary files /dev/null and b/src/static/title-3v3.png differ