From e6b2e8e3f5f9d74d1956d6f620e51e51b9e31e1a Mon Sep 17 00:00:00 2001 From: Fdily <2949549024@qq.com> Date: Fri, 24 Apr 2026 15:10:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odcs2.com/src/App.vue | 13 +- odcs2.com/src/components/headerTop.vue | 2 +- odcs2.com/src/router/index.js | 1 + odcs2.com/src/views/Home/common/login.vue | 4 +- .../src/views/rollHome/common/rolldetial.vue | 1356 +++++++---------- odcs2.com/src/views/rollHome/index.vue | 815 +++++----- 6 files changed, 946 insertions(+), 1245 deletions(-) diff --git a/odcs2.com/src/App.vue b/odcs2.com/src/App.vue index 67ac99c..c884371 100644 --- a/odcs2.com/src/App.vue +++ b/odcs2.com/src/App.vue @@ -1,7 +1,7 @@ diff --git a/odcs2.com/src/router/index.js b/odcs2.com/src/router/index.js index 7cd16d7..5143a0e 100644 --- a/odcs2.com/src/router/index.js +++ b/odcs2.com/src/router/index.js @@ -149,6 +149,7 @@ const routes = [ path: "/rolldetial", name: "rolldetial", component: () => import("../views/rollHome/common/rolldetial.vue"), + meta: { hideHeader: true }, }, { path: "/index2", diff --git a/odcs2.com/src/views/Home/common/login.vue b/odcs2.com/src/views/Home/common/login.vue index 2cfb955..560dd3c 100644 --- a/odcs2.com/src/views/Home/common/login.vue +++ b/odcs2.com/src/views/Home/common/login.vue @@ -13,10 +13,10 @@
登录
- +
- +
- -
{{ obj.rollTypeName || "加载中" }}
-
- 玩法说明 + +
+
+ +
+ {{ (USER_INFO && USER_INFO.nickName) || '' }} +
+ +
+ +
{{ obj.rollName || obj.rollTypeName || '加载中' }}
+
玩法说明
- -
-
-
-
-
-
{{ obj.rollTypeName }}
-
{{ obj.rollName }}
-
-
-
- - - - {{ obj.ornamentsNum }} -
-
- - - - {{ obj.currentPeopleNum }} / {{ obj.peopleNum }} -
-
- - - - - - {{ obj.totalOrnamentsPrice }} -
-
-
-
-
- 参与条件:{{ - obj.minRecharge == 0 - ? "所有用户均可参与" - : `自开启之日起充值${obj.minRecharge}即可参与` - }} -
-
房间简介:{{ obj.description || "暂无" }}
-
-
-
-
- 开奖时间 -
- {{ obj.endTime }} -
- -
-
-
- - - - -
加入房间
-
-
- - - - -
已结束
-
-
- - - - -
加入房间
-
-
-
-
-
-
- -
-
-
- 奖池 -
-
- 获奖名单 -
-
- 参与人员 -
-
-
-
-
- - -
-
- -
+ +
+ +
+ +
+
距离开奖时间剩余
+
+
+ {{ obj.rollStatus == '0' ? countdown.h : '00' }} +
-
{{ item.ornamentName }}
-
- - {{ item.price }} +
:
+
+ {{ obj.rollStatus == '0' ? countdown.m : '00' }} + +
+
:
+
+ {{ obj.rollStatus == '0' ? countdown.s : '00' }} +
-
-
暂无
+ +
+
+ + {{ obj.totalOrnamentsPrice }} +
+
+ 👤 + {{ obj.currentPeopleNum }} +
+
+ 🏠 + {{ obj.ornamentsNum }} +
+
-
-
- -
- -
-
- -
-
-
{{ item.ornamentName }}
+ +
+
立即参与
+
已结束
+
+ +
+ 已有 {{ obj.currentPeopleNum }} 人参与 +
+
-
-
- -
- -
- - {{ item.ornamentsPrice }} -
-
+ +
+
包含奖品
+
+
+
+ {{ item.price }}
+
+ +
+
{{ item.ornamentName }}
-
暂无
-
-
-
- -
- -
- -
-
-
暂无
+
+ {{ showAllPrizes ? '收起' : '查看全部' }} + {{ showAllPrizes ? '▲' : '▼' }}
+ + +
+
获奖名单
+
+
+
+ {{ item.ornamentsPrice }} +
+
+ +
+
+
+ +
+ {{ item.holderUserNickName || item.nickName }} +
+
+
+
暂无获奖记录
+
+ + +
+
参与名单
+
+
+
+ +
+
{{ item.nickName }}
+
+
+
暂无参与者
+
+
-
- 取消 -
+ @click="close(); playAudio();" + >取消
- 加入 -
+ @click="join(); playAudio();" + >加入
@@ -398,7 +186,21 @@ import { getRollPrizePool, endRoll, } from "@/api/index"; +import { mapState } from 'vuex'; export default { + computed: { + ...mapState(['USER_INFO']), + loginAvatar() { + const avatar = this.USER_INFO && this.USER_INFO.avatar; + if (!avatar || !avatar.trim()) return this.defaultAvatar; + const baseUrl = 'http://95.40.65.4:8081'; + const oldHost = 'http://154.12.94.229:8080'; + const trimmed = avatar.trim(); + if (trimmed.startsWith(oldHost)) return baseUrl + trimmed.slice(oldHost.length); + if (/^(http|https):\/\//i.test(trimmed)) return trimmed; + return baseUrl + trimmed; + }, + }, data() { return { pass: "", @@ -406,6 +208,9 @@ export default { id: localStorage.getItem("rollid"), obj: {}, playerList: [], + showAllPrizes: false, + countdown: { h: '00', m: '00', s: '00' }, + countdownTimer: null, defaultAvatar: require("@/assets/images/default-header.png"), // 价格 → 本地奖品图片映射 priceImgMap: { @@ -445,8 +250,16 @@ export default { this.RollPlayers(); this.RollPrizePool(); this.RollOpenPrize(); - // this.$router.replace("/zxcvbnm"); - // this.$router.push("/zxcvbnm"); + // autoJoin: 如果是从列表页点击“立即加入”跳转过来 + if (localStorage.getItem('autoJoin') === '1') { + localStorage.removeItem('autoJoin'); + this.$nextTick(() => { + setTimeout(() => { this.handlejoin(); }, 600); + }); + } + }, + beforeDestroy() { + if (this.countdownTimer) clearInterval(this.countdownTimer); }, methods: { ceshi() { @@ -595,8 +408,28 @@ export default { return b.price - a.price; }); console.log("getDetial", this.obj); + // 启动倒计时 + if (this.obj.endTime && this.obj.rollStatus == '0') { + this.startCountdown(this.obj.endTime); + } }); }, + startCountdown(endTimeStr) { + if (this.countdownTimer) clearInterval(this.countdownTimer); + const pad = n => String(n).padStart(2, '0'); + const tick = () => { + const now = new Date().getTime(); + const end = new Date(endTimeStr.replace(/-/g, '/')).getTime(); + let diff = Math.max(0, Math.floor((end - now) / 1000)); + const h = Math.floor(diff / 3600); + diff -= h * 3600; + const m = Math.floor(diff / 60); + const s = diff - m * 60; + this.countdown = { h: pad(h), m: pad(m), s: pad(s) }; + }; + tick(); + this.countdownTimer = setInterval(tick, 1000); + }, getAvatar(avatar) { if (!avatar || !avatar.trim()) return this.defaultAvatar; const baseUrl = 'http://95.40.65.4:8081'; @@ -626,354 +459,386 @@ export default { .home { width: 100%; margin: 0 auto; + min-height: 100vh; background: #0e1227; - padding: 0 2%; -} -.finish { - border: 2px solid #4e4e4e; -} -.txt_finish { - color: #4e4e4e; -} -.anchor { - border: 2px solid #3fa2c7; -} -.txt_anchor { - color: #3fa2c7; -} -.official { - // border: 2px solid #12d7ff; -} -.txt_official { - color: #12d7ff; + padding: 0 3%; + box-sizing: border-box; + overflow-y: auto; } .header_top { width: 100%; - height: 56px; - border-radius: 0px 0px 0px 0px; - opacity: 1; + padding: 8px 0; + display: flex; + flex-direction: column; + gap: 6px; +} +/* 第一行:头像 + 昵称 */ +.header_row1 { + display: flex !important; + flex-direction: row !important; + align-items: center; + gap: 10px; + width: 100%; +} +/* 第二行:返回 + 房间名 + 玩法说明 */ +.header_row2 { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + width: 100%; +} +.header_room_name { + font-size: 16px; + font-weight: bold; + color: #f0c040; + flex: 1; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding: 0 8px; +} +.header_rule_btn { + color: #fff; + font-size: 12px; + text-decoration: underline; + cursor: pointer; + flex-shrink: 0; +} +.header_avatar_wrap { + width: 58px; + height: 58px; + border-radius: 50%; + overflow: hidden; + border: 2px solid rgba(255,255,255,0.25); + flex-shrink: 0; + .header_avatar_img { + width: 100%; + height: 100%; + object-fit: cover; + } +} +.header_nickname { + font-size: 13px; + font-weight: bold; + color: #fff; + max-width: 100px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.header_back_btn { + flex-shrink: 0; + margin-left: 4px; +} + +/* 顶部整体卡片 */ +.top_card_wrap { + background: rgba(255,255,255,0.06); + border: 1px solid rgba(255,255,255,0.12); + border-radius: 14px; + padding: 16px 16px 14px; + margin-bottom: 18px; +} +.top_card_inner { display: flex; align-items: center; justify-content: space-between; - - div:first-child { - } - - div:last-child { - color: #fff; - font-size: 12px; - text-decoration: underline; - line-height: 1.5; - } + margin-bottom: 16px; } - -.header { - // border-radius: 15px; - overflow: hidden; - width: 100%; - // height: 196px; - // background: linear-gradient( - // 211deg, - // rgba(114, 116, 119, 0.1) 0%, - // rgba(50, 52, 54, 0.05) 100% - // ); +.top_card_left { + flex: 1; display: flex; flex-direction: column; - justify-content: space-between; -} - -.icon { - width: 20px; - height: 20px; -} - -.room_top { - height: 53px; - - @media (max-width: 550px) { - height: 27px; + align-items: center; + .countdown_label { + font-size: 13px; + color: rgba(200,180,255,0.85); + margin-bottom: 10px; + text-align: center; } - - .room_title { - width: 49%; - - .room_type { - width: 70px; - height: 35px; - background: #323436; - // border-radius: 70px 70px 70px 70px; - margin-right: 7px; - - @media (max-width: 550px) { + .countdown_boxes { + display: flex; + align-items: center; + gap: 6px; + .cd_box { + background: rgba(255,255,255,0.12); + border-radius: 6px; + padding: 6px 12px; + display: flex; + flex-direction: column; + align-items: center; + min-width: 48px; + .cd_num { + font-size: 24px; + font-weight: bold; + color: #fff; + line-height: 1.2; + } + .cd_unit { font-size: 10px; - width: 50px; - height: 25px; + color: rgba(200,180,255,0.7); } } + .cd_sep { + font-size: 22px; + color: #fff; + font-weight: bold; + margin-bottom: 14px; + } + } +} +.detail_stats { + display: flex; + flex-direction: column; + gap: 8px; + align-items: flex-end; + flex-shrink: 0; + .stat_item { + font-size: 13px; + color: #fff; + display: flex; + align-items: center; + gap: 4px; + .stat_icon { font-size: 14px; } + } +} +.top_card_btn_row { + display: flex; + justify-content: center; + margin-bottom: 10px; + .join_btn { + width: 70%; + height: 44px; + border-radius: 8px; + background: linear-gradient(90deg, #f0a030 0%, #e06010 100%); + color: #fff; + font-size: 17px; + font-weight: bold; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 4px 16px rgba(240,160,48,0.35); + } + .join_btn_ended { + width: 70%; + height: 44px; + border-radius: 8px; + background: rgba(80,80,80,0.5); + color: #999; + font-size: 17px; + font-weight: bold; + display: flex; + align-items: center; + justify-content: center; + } +} +.top_card_count { + text-align: center; + font-size: 13px; + color: rgba(200,180,255,0.8); + .join_count_num { + color: #f0c040; + font-weight: bold; + } +} - .room_name { - width: 137px; +/* 模块标题 */ +.section_title { + font-size: 15px; + font-weight: bold; + color: #fff; + margin-bottom: 12px; + padding-left: 4px; + border-left: 3px solid #f0a030; +} + +/* 奖品区 */ +.prize_section { + background: rgba(255,255,255,0.04); + border-radius: 12px; + padding: 14px 12px; + margin-bottom: 14px; +} +.prize_grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 8px; + .prize_item { + background: rgba(255,255,255,0.06); + border-radius: 10px; + padding: 8px 6px; + display: flex; + flex-direction: column; + align-items: center; + .prize_price { + font-size: 11px; + color: #f0c040; + margin-bottom: 4px; + align-self: flex-start; + } + .prize_img_wrap { + width: 70px; + height: 52px; + display: flex; + align-items: center; + justify-content: center; + img { + max-width: 100%; + max-height: 100%; + object-fit: contain; + } + } + .prize_name { + font-size: 10px; + color: rgba(255,255,255,0.7); + margin-top: 4px; + max-width: 80px; + white-space: nowrap; overflow: hidden; text-overflow: ellipsis; - white-space: nowrap; - - @media (max-width: 550px) { - font-size: 12px; - } } - } - - .room_detial { - width: 49%; - font-size: 13px; - @media (max-width: 550px) { - font-size: 10px; - } - } - - .detial_public { - .icon { - margin-right: 2px; - - @media (max-width: 550px) { - width: 14px; - height: 14px; - } - } - } -} - -.room_center { - width: 100%; - padding: 0 20px; - text-align: left; - font-size: 11px; - position: relative; - - // @media (max-width: 550px) { - // font-size: 8px; - // } - .condition { - position: absolute; - top: 15px; - right: 46px; - } -} - -.room_bottom { - margin-top: 9px; - background: rgba(50, 52, 54, 0.2); - - @media (max-width: 550px) { - height: 50px; - } - - .bottom_left { - width: 49%; - font-size: 13px; - line-height: 1.5; - - // @media (max-width: 550px) { - // font-size: 8px; - // } - } - - .bottom_right { - width: 49%; - height: 100%; - position: relative; - - .btn { - width: 100%; - height: 100%; - - @media (max-width: 550px) { - position: absolute; - right: -26px; - bottom: -4px; - } - } - - .ic { - font-size: 21px; - position: absolute; - right: 61px; - top: 50%; - transform: translateY(-50%); - - @media (max-width: 550px) { - font-size: 15px; - } - } - } -} - -.main { - margin-top: 14px; - - .main_top { - margin: 0 auto; - - width: 322px; - height: 42px; - background: url('../../../assets/pinxiangBottom_top.png') no-repeat center center; - background-size: 100% 100%; - opacity: 1; - color: rgba(114, 116, 119, 1); - - @media (max-width: 550px) { - width: 230px; - font-size: 10px; - height: 30px; - } - - .btn { - width: 98px; - height: 35px; - - @media (max-width: 550px) { - width: 70px; - height: 25px; - } - } - - .active { - transition: all 0.3s linear; - background: url('../../../assets/pinxiangBottom_text_bg.png') no-repeat center center; - background-size: cover; - color: #fff; - } - } - - .main_main { - margin-top: 14px; - height: 340px; - overflow-y: auto; - &::-webkit-scrollbar { - width: 2px; - } - - &::-webkit-scrollbar-thumb { - background: #3fa2c7; - border-radius: 5px; - } - - @media (max-width: 550px) { - &::-webkit-scrollbar { - width: 2px; - } - } - .main_w { - width: 100%; - position: relative; - height: 175px; - background-color: rgba(50, 52, 54, 0.25); - background-size: 100% 100%; - // justify-content: space-around; - border-radius: 14px 14px 14px 14px; - font-size: 13px; - - @media (max-width: 550px) { - height: 125px; - font-size: 9px; - } - .goodsNum { - position: absolute; - top: 10px; - right: 10px; - background-color: #045228; - color: white; - // padding: 5px; - display: flex; - justify-content: center; - align-items: center; - width: 30px; - height: 20px; - border-radius: 5px; - } - .main_w_0 { - width: 80%; - background-size: 100% 100%; - background-position: center; - background-repeat: no-repeat; - .main_w_0_img { - width: 100%; - position: relative; - img { - position: absolute; - top: 0; - left: 0; - } - } - .main_w_0_img::before { - padding-top: 74%; - content: ""; - display: block; - } - - .money-money { - .money { - width: 13px; - height: 13px; - } - } - } - - .main_w_1 { - width: 80%; - .main_w_1_img { - width: 100%; - position: relative; - img { - position: absolute; - top: 0; - left: 0; - } - } - .main_w_1_img::before { - padding-top: 74%; - content: ""; - display: block; - } - .money-money { - .money { - width: 13px; - height: 13px; - } - } - } - - .main_w_1_1 { - width: 73%; - } - - .avatar { - width: 28px; - height: 28px; - overflow: hidden; - border-radius: 50%; - - @media (max-width: 550px) { - width: 20px; - height: 20px; - } - } - } - - .main_w_2 { - width: 70px; - height: 70px; + .award_avatar { + width: 28px; + height: 28px; border-radius: 50%; overflow: hidden; - - // @media (max-width: 550px) { - // width: 50px; - // height: 50px; - // font-size: 9px; - // } + margin-top: 4px; + img { width: 100%; height: 100%; object-fit: cover; } } } } +.view_all { + text-align: center; + color: rgba(200,180,255,0.8); + font-size: 13px; + margin-top: 12px; + cursor: pointer; + .view_arrow { margin-left: 4px; } +} + +/* 获奖名单大格展示 */ +.award_section { + background: rgba(255,255,255,0.04); + border-radius: 12px; + padding: 14px 12px; + margin-bottom: 14px; +} +.award_grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 10px; + @media (min-width: 500px) { + grid-template-columns: repeat(4, 1fr); + } + .award_item { + background: rgba(255,255,255,0.07); + border-radius: 10px; + padding: 10px 8px 8px; + display: flex; + flex-direction: column; + align-items: center; + .award_price { + font-size: 12px; + color: #f0c040; + margin-bottom: 6px; + align-self: flex-start; + } + .award_img_wrap { + width: 80px; + height: 64px; + display: flex; + align-items: center; + justify-content: center; + img { + max-width: 100%; + max-height: 100%; + object-fit: contain; + mix-blend-mode: screen; + } + } + .award_name { + font-size: 11px; + color: rgba(255,255,255,0.75); + margin-top: 6px; + max-width: 90px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + } + .award_user { + display: flex; + align-items: center; + gap: 5px; + margin-top: 8px; + width: 100%; + .award_user_avatar { + width: 26px; + height: 26px; + border-radius: 50%; + overflow: hidden; + flex-shrink: 0; + img { width: 100%; height: 100%; object-fit: cover; } + } + .award_user_name { + font-size: 11px; + color: rgba(255,255,255,0.65); + max-width: 60px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + } +} + +/* 参与名单 */ +.players_section { + background: rgba(255,255,255,0.04); + border-radius: 12px; + padding: 14px 12px; + margin-bottom: 14px; +} +.players_list { + display: flex; + flex-wrap: wrap; + gap: 14px; + .player_item { + display: flex; + flex-direction: column; + align-items: center; + width: 56px; + .player_avatar { + width: 52px; + height: 52px; + border-radius: 50%; + overflow: hidden; + border: 2px solid rgba(255,255,255,0.15); + img { width: 100%; height: 100%; object-fit: cover; } + } + .player_name { + font-size: 10px; + color: rgba(255,255,255,0.65); + margin-top: 4px; + max-width: 56px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + } + } +} +.no_player { + color: rgba(255,255,255,0.35); + font-size: 13px; + text-align: center; + padding: 20px 0; +} + +/* 密码弹框 */ .isjoin_bg { position: fixed; width: 525px; @@ -981,127 +846,71 @@ export default { left: 50%; top: 0; transform: translateX(-50%); - padding-top: 10px; background: rgba(0, 0, 0, 0.85); z-index: 5; - - @media (max-width: 550px) { - width: 100%; - } - + @media (max-width: 550px) { width: 100%; } .lvbu { - border-radius: 21px 21px 21px 21px; + border-radius: 21px; width: 100%; - left: 0; - top: 0; - height: 100%; - background: linear-gradient( - -219deg, - #1f3a58 0%, - rgba(32, 29, 48, 0) 40%, - rgba(248, 125, 81, 0) 100% - ); + background: linear-gradient(-219deg, #1f3a58 0%, rgba(32,29,48,0) 40%, rgba(248,125,81,0) 100%); position: absolute; } - .isjoin { width: 90%; margin: 0 auto; position: relative; top: 15%; - height: 231px; + height: 200px; background: rgba(16, 17, 21, 1); border-radius: 21px; - - @media (max-width: 550px) { - height: 182px; - } - - .isjoin_money { - font-size: 23px; - margin: 10% auto 0; - - @media (max-width: 550px) { - font-size: 17px; - } - } - - .isjoin_title { - font-size: 28px; - - @media (max-width: 550px) { - font-size: 22px; - } - } - + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 16px; + @media (max-width: 550px) { height: 182px; } .isjoin_btn { width: 98%; - margin: 10% auto 0; + display: flex; + justify-content: space-around; position: relative; z-index: 2; - font-size: 23px; - + font-size: 20px; .isjoin_btn_console { width: 40%; height: 42px; - background: linear-gradient( - 360deg, - rgba(114, 116, 119, 0.5) 0%, - rgba(114, 116, 119, 0.25) 100% - ); - opacity: 1; + background: linear-gradient(360deg, rgba(114,116,119,0.5) 0%, rgba(114,116,119,0.25) 100%); border: 2px solid #727477; - - @media (max-width: 550px) { - border: 1px solid #727477; - width: 154px; - height: 33px; - font-size: 17px; - } + border-radius: 4px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; } - .isjoin_btn_true { width: 40%; height: 42px; background: #1f3a58; - - opacity: 1; border: 2px solid #3fa2c7; - - @media (max-width: 550px) { - border: 1px solid #3fa2c7; - width: 154px; - height: 33px; - font-size: 17px; - } + border-radius: 4px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; } } } } -// .inputPass { -// outline: 0; -// width: 90%; -// height: 30px; -// z-index: 2; -// } .roll_serch { z-index: 2; - width: 64%; + width: 80%; height: 42px; - padding: 0 2% 0 5%; + padding: 0 5%; background: #323436; - border-radius: 70px 70px 70px 70px; - opacity: 1; + border-radius: 70px; display: flex; align-items: center; - justify-content: space-between; - - @media (max-width: 550px) { - height: 30px; - - font-size: 11px; - } input { width: 100%; height: 100%; @@ -1112,31 +921,12 @@ export default { background-color: #323436; text-indent: 10px; outline: none; - - @media (max-width: 550px) { - font-size: 11px; - } } } -.empty { - height: 15px; -} -.roomType0{ - width: 100%; - height: 10px; - background-size:100% 100%; -} -.top-bg{ - background: url('../../../assets/room-top.png') no-repeat; - background-size: cover; -} -.bot-bg{ - background: url('../../../assets/room-bottom.png') no-repeat; - background-size: cover; -} -.room_content{ - background: url('../../../assets/room-content.png') repeat-y; - background-size: cover; - +.price_diamond { color: #f0c040; } +.textover-f { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } diff --git a/odcs2.com/src/views/rollHome/index.vue b/odcs2.com/src/views/rollHome/index.vue index 00dd45b..514ab9e 100644 --- a/odcs2.com/src/views/rollHome/index.vue +++ b/odcs2.com/src/views/rollHome/index.vue @@ -1,249 +1,118 @@