Compare commits

...

10 Commits

Author SHA1 Message Date
li
b326cffa95 fix: 返回键显眼度优化+龙虎字色互换+金额标签防裁切+牛牛作废功能
1. 游戏页面返回键:放大至36px,添加亮白色滤镜+外发光阴影
2. 龙虎下注盘:龙字改红色、虎字改蓝色,边框阴影同步互换
3. 所有游戏金额标签防裁切:
   - 牛牛/百家乐/龙虎:加max-width:95%防溢出
   - 骰宝/轮盘:修正left:-3px→0px防左侧裁切
   - 所有游戏:加z-index确保金额在筹码上方
   - 牛牛边缘格子:金额和预扣标签偏移处理
4. 后端(Pro/Waybill.php):新增牛牛作废本局retreated_nn()方法

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:44:41 +08:00
li
025289c43d feat: 牛牛牌面区改为2×2网格布局+路单加大+页面可滚动
- poker-section 从40px扩大到120px,牌面改为2×2网格(上行庄家+闲一,下行闲二+闲三)
- 单张牌从16×22px放大到30×42px,点数清晰可辨
- 路单区nn-mode从130px扩大到180px
- .view容器开启overflow-y:auto,内容超出屏幕可下滑
- 视频区flex自适应+min-height:200px保底
2026-02-11 23:59:21 +08:00
li
db55b8d20c feat: 牛牛单独限红前端显示 + 大厅/桌台信息/游戏界面牛牛桌显示牛牛限红 2026-02-11 19:53:50 +08:00
li
1353a6bfce fix: 游戏页面货币符号从¥改为越南盾₫ 2026-02-11 16:44:33 +08:00
li
6e6cd9772b revert: 回滚问路面板相关修改,恢复原始布局 2026-02-11 02:24:21 +08:00
li
8378fd0c5f refactor: 问路栏独立放在路单底部,不遮挡路单不挤统计栏 2026-02-11 02:20:41 +08:00
li
e453548f5c refactor: 问路面板从路单区域移到顶部统计栏最右侧,不再遮挡路单 2026-02-11 02:15:44 +08:00
li
55f89ee6a0 fix: 缩小问路面板避免遮挡小路曱甴路 + 清理debug日志修复构建 2026-02-11 02:10:27 +08:00
li
f60818e993 fix: 缩小庄问路/闲问路面板尺寸,避免遮挡小路和曱甴路 2026-02-11 02:08:04 +08:00
li
80a80760fb feat(chip): 更新筹码配置为越南 K 格式
为越南客户优化筹码显示,将筹码面值改为 K 后缀格式:
- 10K, 20K, 50K, 100K, 200K, 500K (默认显示)
- 1,000K, 2,000K, 5,000K, 10,000K, 20,000K, 50,000K, 100,000K

修改内容:
- config.js: 更新 chipArry 配置数组
- PlayChip.vue: 更新筹码选择组件样式映射
- chipView.vue: 更新下注区域筹码显示样式
- base.scss: 更新筹码设置弹窗样式
- 新增 13 个 K 格式筹码图片

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:23:03 +08:00
37 changed files with 445 additions and 372 deletions

BIN
src/assets/images/chip.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

View File

@ -201,50 +201,46 @@ body {
background-size: 100% 100%; background-size: 100% 100%;
pointer-events: none; pointer-events: none;
} }
&.chip_1w,
&.chip_2w,
&.chip_5w,
&.chip_10w {
&:after {
background-image: url("~@/assets/images/chip/rect_active.png");
}
}
} }
&.chip_1s { // Vietnam K format chips
background-image: url("~@/assets/images/chip/1s.png"); &.chip_10k {
background-image: url("~@/assets/images/chip/10k.png");
} }
&.chip_5s { &.chip_20k {
background-image: url("~@/assets/images/chip/5s.png"); background-image: url("~@/assets/images/chip/20k.png");
} }
&.chip_1b { &.chip_50k {
background-image: url("~@/assets/images/chip/1b.png"); background-image: url("~@/assets/images/chip/50k.png");
} }
&.chip_2b { &.chip_100k {
background-image: url("~@/assets/images/chip/2b.png"); background-image: url("~@/assets/images/chip/100k.png");
} }
&.chip_5b { &.chip_200k {
background-image: url("~@/assets/images/chip/5b.png"); background-image: url("~@/assets/images/chip/200k.png");
} }
&.chip_1k { &.chip_500k {
background-image: url("~@/assets/images/chip/1k.png"); background-image: url("~@/assets/images/chip/500k.png");
} }
&.chip_2k { &.chip_1000k {
background-image: url("~@/assets/images/chip/2k.png"); background-image: url("~@/assets/images/chip/1000k.png");
} }
&.chip_5k { &.chip_2000k {
background-image: url("~@/assets/images/chip/5k.png"); background-image: url("~@/assets/images/chip/2000k.png");
} }
&.chip_1w { &.chip_5000k {
background-image: url("~@/assets/images/chip/1w.png"); background-image: url("~@/assets/images/chip/5000k.png");
} }
&.chip_2w { &.chip_10000k {
background-image: url("~@/assets/images/chip/2w.png"); background-image: url("~@/assets/images/chip/10000k.png");
} }
&.chip_5w { &.chip_20000k {
background-image: url("~@/assets/images/chip/5w.png"); background-image: url("~@/assets/images/chip/20000k.png");
} }
&.chip_10w { &.chip_50000k {
background-image: url("~@/assets/images/chip/10w.png"); background-image: url("~@/assets/images/chip/50000k.png");
}
&.chip_100000k {
background-image: url("~@/assets/images/chip/100000k.png");
} }
} }

View File

@ -362,11 +362,10 @@ $tie-green: #27ae60;
/* 视频区域容器 - 最大化显示完整视频 */ /* 视频区域容器 - 最大化显示完整视频 */
.video { .video {
flex: 1; flex: 1 1 auto;
position: relative; position: relative;
width: 100%; width: 100%;
min-height: 360px; min-height: 200px;
max-height: 50vh;
background: #000; background: #000;
order: 1; order: 1;
overflow: hidden; overflow: hidden;

View File

@ -91,7 +91,7 @@
</template> </template>
</div> </div>
<div class="right"> <div class="right">
{{ Lang[Type].limit }} {{ item.limit_money }} {{ Lang[Type].limit }} {{ $fk((item.game_id == 4 || item.game_id == 5) && userInfo.limit_low_nn > 0 ? (userInfo.limit_low_nn + '-' + userInfo.limit_high_nn) : (userInfo.limit_low + '-' + userInfo.limit_high)) }}
</div> </div>
</div> </div>
</div> </div>
@ -126,6 +126,7 @@
const Type = computed(() => store.state.config.$Type) const Type = computed(() => store.state.config.$Type)
const Lang = computed(() => store.state.config.$lang) const Lang = computed(() => store.state.config.$lang)
const wayType = computed(() => store.state.config.hallWayType) const wayType = computed(() => store.state.config.hallWayType)
const userInfo = computed(() => store.state.app.userInfo)
const routerName = computed(() => router.currentRoute.value.name) const routerName = computed(() => router.currentRoute.value.name)
const list = computed(() => { const list = computed(() => {
const allTableData = store.state.app.allTableData const allTableData = store.state.app.allTableData
@ -304,6 +305,7 @@
list, list,
textType, textType,
wayType, wayType,
userInfo,
getSendMode, getSendMode,
getTextVal, getTextVal,
routerName, routerName,

View File

@ -10,7 +10,7 @@
/> />
<div class="user"> <div class="user">
<div class="name">{{ userInfo.username }}</div> <div class="name">{{ userInfo.username }}</div>
<div class="money">{{ userInfo.money }}</div> <div class="money">{{ $fk(userInfo.money) }}</div>
</div> </div>
</template> </template>
<template #title>{{ Lang[Type].game_hall }}</template> <template #title>{{ Lang[Type].game_hall }}</template>

View File

@ -21,12 +21,12 @@
</div> </div>
<div class="box"> <div class="box">
<div class="name">{{ item.name }}</div> <div class="name">{{ item.name }}</div>
<div class="money">{{ item.money }}</div> <div class="money">{{ $fk(item.money) }}</div>
</div> </div>
<div class="box"> <div class="box">
<div class="item down"> <div class="item down">
<span class="lab">{{ Lang[Type].place_bet }}</span> <span class="lab">{{ Lang[Type].place_bet }}</span>
<span>{{ item.win }}</span> <span>{{ $fk(item.win) }}</span>
</div> </div>
<div class="item time"> <div class="item time">
<span class="lab">{{ Lang[Type].to_win }}</span> <span class="lab">{{ Lang[Type].to_win }}</span>

View File

@ -83,20 +83,20 @@ export default {
display: none; /* Hide text, use image text */ display: none; /* Hide text, use image text */
} }
/* Map classes to images */ /* Map classes to images - Vietnam K format */
&.chip_1s, &.chip_10 { background-image: url("~@/assets/images/chip/1s.png"); } &.chip_10k { background-image: url("~@/assets/images/chip/10k.png"); }
&.chip_20k { background-image: url("~@/assets/images/chip/20k.png"); }
&.chip_5s, &.chip_50 { background-image: url("~@/assets/images/chip/5s.png"); } &.chip_50k { background-image: url("~@/assets/images/chip/50k.png"); }
&.chip_1b, &.chip_100 { background-image: url("~@/assets/images/chip/1b.png"); } &.chip_100k { background-image: url("~@/assets/images/chip/100k.png"); }
&.chip_2b, &.chip_200 { background-image: url("~@/assets/images/chip/2b.png"); } &.chip_200k { background-image: url("~@/assets/images/chip/200k.png"); }
&.chip_5b, &.chip_500 { background-image: url("~@/assets/images/chip/5b.png"); } &.chip_500k { background-image: url("~@/assets/images/chip/500k.png"); }
&.chip_1k, &.chip_1000 { background-image: url("~@/assets/images/chip/1k.png"); } &.chip_1000k { background-image: url("~@/assets/images/chip/1000k.png"); }
&.chip_2k, &.chip_2000 { background-image: url("~@/assets/images/chip/2k.png"); } &.chip_2000k { background-image: url("~@/assets/images/chip/2000k.png"); }
&.chip_5k, &.chip_5000 { background-image: url("~@/assets/images/chip/5k.png"); } &.chip_5000k { background-image: url("~@/assets/images/chip/5000k.png"); }
&.chip_1w, &.chip_10000 { background-image: url("~@/assets/images/chip/1w.png"); } &.chip_10000k { background-image: url("~@/assets/images/chip/10000k.png"); }
&.chip_2w { background-image: url("~@/assets/images/chip/2w.png"); } &.chip_20000k { background-image: url("~@/assets/images/chip/20000k.png"); }
&.chip_5w { background-image: url("~@/assets/images/chip/5w.png"); } &.chip_50000k { background-image: url("~@/assets/images/chip/50000k.png"); }
&.chip_10w { background-image: url("~@/assets/images/chip/10w.png"); } &.chip_100000k { background-image: url("~@/assets/images/chip/100000k.png"); }
} }
} }
</style> </style>

View File

@ -300,8 +300,8 @@ export default {
const downBet = (e, type) => { const downBet = (e, type) => {
store.commit("app/standbyTime") store.commit("app/standbyTime")
const { value: chip, key } = chooseChip.value const { value: chip, key } = chooseChip.value
// ,便 //
// if (props.sendMode == "startBetCountDown") { if (props.sendMode == "startBetCountDown") {
if (type == "luck_six_amount" && props.can_bet_luck_six != 1) { if (type == "luck_six_amount" && props.can_bet_luck_six != 1) {
showToast(Lang.value[Type.value].to_bet_fail_7) showToast(Lang.value[Type.value].to_bet_fail_7)
} else if ( } else if (
@ -334,7 +334,7 @@ export default {
}) })
audioMp3(["push"]).Play() audioMp3(["push"]).Play()
} }
// } }
} }
const nameArray = [ const nameArray = [
// & // &

View File

@ -15,7 +15,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.player_amount"> <div class="money" v-if="bet_amount_msg.player_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.player_amount }} {{ $fk(bet_amount_msg.player_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -42,7 +42,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.tie_amount"> <div class="money" v-if="bet_amount_msg.tie_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.tie_amount }} {{ $fk(bet_amount_msg.tie_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -68,7 +68,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.banker_amount"> <div class="money" v-if="bet_amount_msg.banker_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.banker_amount }} {{ $fk(bet_amount_msg.banker_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -98,7 +98,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.small_amount"> <div class="money" v-if="bet_amount_msg.small_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.small_amount }} {{ $fk(bet_amount_msg.small_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -125,7 +125,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.player_pair_amount"> <div class="money" v-if="bet_amount_msg.player_pair_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.player_pair_amount }} {{ $fk(bet_amount_msg.player_pair_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -152,7 +152,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.banker_pair_amount"> <div class="money" v-if="bet_amount_msg.banker_pair_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.banker_pair_amount }} {{ $fk(bet_amount_msg.banker_pair_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -179,7 +179,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.big_amount"> <div class="money" v-if="bet_amount_msg.big_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.big_amount }} {{ $fk(bet_amount_msg.big_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -398,25 +398,27 @@ $text-green: #22ac38;
.money { .money {
position: absolute; position: absolute;
bottom: 1px; top: 1px;
left: 50%; left: 50%;
transform: translateX(-50%) scale(0.5); transform: translateX(-50%);
transform-origin: center bottom;
background: rgba(0,0,0,0.85); background: rgba(0,0,0,0.85);
padding: 2px 4px; padding: 1px 6px;
border-radius: 4px; border-radius: 4px;
color: #ffd700; color: #ffd700;
font-size: 9px; font-size: 11px;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
align-items: center; align-items: center;
gap: 1px; gap: 2px;
z-index: 100; z-index: 100;
pointer-events: none; pointer-events: none;
max-width: 95%; /* 防止溢出格子 */
overflow: hidden;
text-overflow: ellipsis;
.coin-icon { .coin-icon {
width: 6px; width: 8px;
height: 6px; height: 8px;
flex-shrink: 0; flex-shrink: 0;
border-radius: 50%; border-radius: 50%;
background: #ffd700; background: #ffd700;

View File

@ -23,7 +23,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}_banker_times`]"> <div class="money" v-if="bet_amount_msg[`amount_${pName}_banker_times`]">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}_banker_times`] }} {{ $fk(bet_amount_msg[`amount_${pName}_banker_times`]) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -53,7 +53,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}_banker`]"> <div class="money" v-if="bet_amount_msg[`amount_${pName}_banker`]">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}_banker`] }} {{ $fk(bet_amount_msg[`amount_${pName}_banker`]) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -84,7 +84,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}_times`]"> <div class="money" v-if="bet_amount_msg[`amount_${pName}_times`]">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}_times`] }} {{ $fk(bet_amount_msg[`amount_${pName}_times`]) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -114,7 +114,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}`]"> <div class="money" v-if="bet_amount_msg[`amount_${pName}`]">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}`] }} {{ $fk(bet_amount_msg[`amount_${pName}`]) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -296,25 +296,27 @@ $text-red: #f56c6c;
.money { .money {
position: absolute; position: absolute;
bottom: 1px; top: 1px;
left: 50%; left: 50%;
transform: translateX(-50%) scale(0.5); transform: translateX(-50%);
transform-origin: center bottom;
background: rgba(0,0,0,0.85); background: rgba(0,0,0,0.85);
padding: 2px 4px; padding: 1px 6px;
border-radius: 4px; border-radius: 4px;
color: #ffd700; color: #ffd700;
font-size: 9px; font-size: 11px;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
align-items: center; align-items: center;
gap: 1px; gap: 2px;
z-index: 100; z-index: 100;
pointer-events: none; pointer-events: none;
max-width: 95%; /* 防止溢出格子 */
overflow: hidden;
text-overflow: ellipsis;
.coin-icon { .coin-icon {
width: 6px; width: 8px;
height: 6px; height: 8px;
flex-shrink: 0; flex-shrink: 0;
border-radius: 50%; border-radius: 50%;
background: #ffd700; background: #ffd700;
@ -340,4 +342,31 @@ $text-red: #f56c6c;
height: 28px; height: 28px;
} }
} }
/* 边缘cell的confirmBet按钮偏移防止超出屏幕 */
.player-section:last-child .bet-cell:last-child :deep(.touch-view .btn-box) {
transform: translateX(-30%);
}
.player-section:first-child .bet-cell:first-child :deep(.touch-view .btn-box) {
transform: translateX(30%);
}
/* 边缘cell的confirmBet预扣金额偏移防止超出屏幕与icon按钮同理 */
.player-section:last-child .bet-cell:last-child :deep(.touch-view .num) {
transform: translateX(-30%);
}
.player-section:first-child .bet-cell:first-child :deep(.touch-view .num) {
transform: translateX(30%);
}
/* 边缘cell的金额标签偏移防止超出屏幕与icon按钮同理 */
.player-section:first-child .bet-cell:first-child .cell-content > .money {
left: 0;
transform: translateX(0);
}
.player-section:last-child .bet-cell:last-child .cell-content > .money {
left: auto;
right: 0;
transform: translateX(0);
}
</style> </style>

View File

@ -23,7 +23,7 @@
<span class="points blue">4-10</span> <span class="points blue">4-10</span>
<span>1:1</span> <span>1:1</span>
</div> </div>
<div class="money">{{ bet_amount_msg.small || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.small || 0) }}</div>
</div> </div>
<div class="cols"> <div class="cols">
<div class="ratio">1:10</div> <div class="ratio">1:10</div>
@ -47,7 +47,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_1"></span> <span class="span dice_1"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_11 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_11 || 0) }}</div>
</div> </div>
<!-- two_22 --> <!-- two_22 -->
<div class="item"> <div class="item">
@ -69,7 +69,7 @@
<span class="span dice_2"></span> <span class="span dice_2"></span>
<span class="span dice_2"></span> <span class="span dice_2"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_22 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_22 || 0) }}</div>
</div> </div>
<!-- two_33 --> <!-- two_33 -->
<div class="item"> <div class="item">
@ -91,7 +91,7 @@
<span class="span dice_3"></span> <span class="span dice_3"></span>
<span class="span dice_3"></span> <span class="span dice_3"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_33 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_33 || 0) }}</div>
</div> </div>
</div> </div>
<div class="cols"> <div class="cols">
@ -117,7 +117,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_1"></span> <span class="span dice_1"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.three_111 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.three_111 || 0) }}</div>
</div> </div>
<!-- three_222 --> <!-- three_222 -->
<div class="item"> <div class="item">
@ -140,7 +140,7 @@
<span class="span dice_2"></span> <span class="span dice_2"></span>
<span class="span dice_2"></span> <span class="span dice_2"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.three_222 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.three_222 || 0) }}</div>
</div> </div>
<!-- three_333 --> <!-- three_333 -->
<div class="item"> <div class="item">
@ -163,7 +163,7 @@
<span class="span dice_3"></span> <span class="span dice_3"></span>
<span class="span dice_3"></span> <span class="span dice_3"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.three_333 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.three_333 || 0) }}</div>
</div> </div>
</div> </div>
<div class="cols triplet"> <div class="cols triplet">
@ -220,7 +220,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="money">{{ bet_amount_msg.leopard || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.leopard || 0) }}</div>
</div> </div>
</div> </div>
<div class="cols"> <div class="cols">
@ -246,7 +246,7 @@
<span class="span dice_4"></span> <span class="span dice_4"></span>
<span class="span dice_4"></span> <span class="span dice_4"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.three_444 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.three_444 || 0) }}</div>
</div> </div>
<!-- three_555 --> <!-- three_555 -->
<div class="item"> <div class="item">
@ -269,7 +269,7 @@
<span class="span dice_5"></span> <span class="span dice_5"></span>
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.three_555 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.three_555 || 0) }}</div>
</div> </div>
<!-- three_666 --> <!-- three_666 -->
<div class="item"> <div class="item">
@ -292,7 +292,7 @@
<span class="span dice_6"></span> <span class="span dice_6"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.three_666 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.three_666 || 0) }}</div>
</div> </div>
</div> </div>
<div class="cols"> <div class="cols">
@ -317,7 +317,7 @@
<span class="span dice_4"></span> <span class="span dice_4"></span>
<span class="span dice_4"></span> <span class="span dice_4"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_44 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_44 || 0) }}</div>
</div> </div>
<!-- two_55 --> <!-- two_55 -->
<div class="item"> <div class="item">
@ -339,7 +339,7 @@
<span class="span dice_5"></span> <span class="span dice_5"></span>
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_55 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_55 || 0) }}</div>
</div> </div>
<!-- two_66 --> <!-- two_66 -->
<div class="item"> <div class="item">
@ -361,7 +361,7 @@
<span class="span dice_6"></span> <span class="span dice_6"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_66 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_66 || 0) }}</div>
</div> </div>
</div> </div>
<div class="cols item big"> <div class="cols item big">
@ -384,7 +384,7 @@
<span class="points red">11-17</span> <span class="points red">11-17</span>
<span>1:1</span> <span>1:1</span>
</div> </div>
<div class="money">{{ bet_amount_msg.big || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.big || 0) }}</div>
</div> </div>
</div> </div>
<div class="list second"> <div class="list second">
@ -408,7 +408,7 @@
<span class="big">4</span> <span class="big">4</span>
<span>1:60</span> <span>1:60</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_4 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_4 || 0) }}</div>
</div> </div>
<!-- number_5 --> <!-- number_5 -->
<div class="item"> <div class="item">
@ -430,7 +430,7 @@
<span class="big">5</span> <span class="big">5</span>
<span>1:30</span> <span>1:30</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_5 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_5 || 0) }}</div>
</div> </div>
<!-- number_6 --> <!-- number_6 -->
<div class="item"> <div class="item">
@ -452,7 +452,7 @@
<span class="big">6</span> <span class="big">6</span>
<span>1:18</span> <span>1:18</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_6 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_6 || 0) }}</div>
</div> </div>
<!-- number_7 --> <!-- number_7 -->
<div class="item"> <div class="item">
@ -474,7 +474,7 @@
<span class="big">7</span> <span class="big">7</span>
<span>1:12</span> <span>1:12</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_7 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_7 || 0) }}</div>
</div> </div>
<!-- number_8 --> <!-- number_8 -->
<div class="item"> <div class="item">
@ -496,7 +496,7 @@
<span class="big">8</span> <span class="big">8</span>
<span>1:8</span> <span>1:8</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_8 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_8 || 0) }}</div>
</div> </div>
<!-- number_9 --> <!-- number_9 -->
<div class="item"> <div class="item">
@ -518,7 +518,7 @@
<span class="big">9</span> <span class="big">9</span>
<span>1:6</span> <span>1:6</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_9 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_9 || 0) }}</div>
</div> </div>
<!-- number_10 --> <!-- number_10 -->
<div class="item"> <div class="item">
@ -540,7 +540,7 @@
<span class="big">10</span> <span class="big">10</span>
<span>1:6</span> <span>1:6</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_10 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_10 || 0) }}</div>
</div> </div>
<!-- number_11 --> <!-- number_11 -->
<div class="item"> <div class="item">
@ -562,7 +562,7 @@
<span class="big">11</span> <span class="big">11</span>
<span>1:6</span> <span>1:6</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_11 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_11 || 0) }}</div>
</div> </div>
<!-- number_12 --> <!-- number_12 -->
<div class="item"> <div class="item">
@ -584,7 +584,7 @@
<span class="big">12</span> <span class="big">12</span>
<span>1:6</span> <span>1:6</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_12 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_12 || 0) }}</div>
</div> </div>
<!-- number_13 --> <!-- number_13 -->
<div class="item"> <div class="item">
@ -606,7 +606,7 @@
<span class="big">13</span> <span class="big">13</span>
<span>1:8</span> <span>1:8</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_13 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_13 || 0) }}</div>
</div> </div>
<!-- number_14 --> <!-- number_14 -->
<div class="item"> <div class="item">
@ -628,7 +628,7 @@
<span class="big">14</span> <span class="big">14</span>
<span>1:12</span> <span>1:12</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_14 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_14 || 0) }}</div>
</div> </div>
<!-- number_15 --> <!-- number_15 -->
<div class="item"> <div class="item">
@ -650,7 +650,7 @@
<span class="big">15</span> <span class="big">15</span>
<span>1:18</span> <span>1:18</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_15 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_15 || 0) }}</div>
</div> </div>
<!-- number_16 --> <!-- number_16 -->
<div class="item"> <div class="item">
@ -672,7 +672,7 @@
<span class="big">16</span> <span class="big">16</span>
<span>1:30</span> <span>1:30</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_16 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_16 || 0) }}</div>
</div> </div>
<!-- number_17 --> <!-- number_17 -->
<div class="item"> <div class="item">
@ -694,7 +694,7 @@
<span class="big">17</span> <span class="big">17</span>
<span>1:60</span> <span>1:60</span>
</div> </div>
<div class="money">{{ bet_amount_msg.number_17 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.number_17 || 0) }}</div>
</div> </div>
</div> </div>
<div class="list third"> <div class="list third">
@ -718,7 +718,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_2"></span> <span class="span dice_2"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_12 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_12 || 0) }}</div>
</div> </div>
<!-- two_13 --> <!-- two_13 -->
<div class="item"> <div class="item">
@ -740,7 +740,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_3"></span> <span class="span dice_3"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_13 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_13 || 0) }}</div>
</div> </div>
<!-- two_14 --> <!-- two_14 -->
<div class="item"> <div class="item">
@ -762,7 +762,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_4"></span> <span class="span dice_4"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_14 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_14 || 0) }}</div>
</div> </div>
<!-- two_15 --> <!-- two_15 -->
<div class="item"> <div class="item">
@ -784,7 +784,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_15 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_15 || 0) }}</div>
</div> </div>
<!-- two_16 --> <!-- two_16 -->
<div class="item"> <div class="item">
@ -806,7 +806,7 @@
<span class="span dice_1"></span> <span class="span dice_1"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_16 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_16 || 0) }}</div>
</div> </div>
<!-- two_23 --> <!-- two_23 -->
<div class="item"> <div class="item">
@ -828,7 +828,7 @@
<span class="span dice_2"></span> <span class="span dice_2"></span>
<span class="span dice_3"></span> <span class="span dice_3"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_23 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_23 || 0) }}</div>
</div> </div>
<!-- two_24 --> <!-- two_24 -->
<div class="item"> <div class="item">
@ -850,7 +850,7 @@
<span class="span dice_2"></span> <span class="span dice_2"></span>
<span class="span dice_4"></span> <span class="span dice_4"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_24 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_24 || 0) }}</div>
</div> </div>
<!-- two_25 --> <!-- two_25 -->
<div class="item"> <div class="item">
@ -872,7 +872,7 @@
<span class="span dice_2"></span> <span class="span dice_2"></span>
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_25 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_25 || 0) }}</div>
</div> </div>
<!-- two_26 --> <!-- two_26 -->
<div class="item"> <div class="item">
@ -894,7 +894,7 @@
<span class="span dice_2"></span> <span class="span dice_2"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_26 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_26 || 0) }}</div>
</div> </div>
<!-- two_34 --> <!-- two_34 -->
<div class="item"> <div class="item">
@ -916,7 +916,7 @@
<span class="span dice_3"></span> <span class="span dice_3"></span>
<span class="span dice_4"></span> <span class="span dice_4"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_34 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_34 || 0) }}</div>
</div> </div>
<!-- two_35 --> <!-- two_35 -->
<div class="item"> <div class="item">
@ -938,7 +938,7 @@
<span class="span dice_3"></span> <span class="span dice_3"></span>
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_35 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_35 || 0) }}</div>
</div> </div>
<!-- two_36 --> <!-- two_36 -->
<div class="item"> <div class="item">
@ -960,7 +960,7 @@
<span class="span dice_3"></span> <span class="span dice_3"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_36 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_36 || 0) }}</div>
</div> </div>
<!-- two_45 --> <!-- two_45 -->
<div class="item"> <div class="item">
@ -982,7 +982,7 @@
<span class="span dice_4"></span> <span class="span dice_4"></span>
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_45 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_45 || 0) }}</div>
</div> </div>
<!-- two_46 --> <!-- two_46 -->
<div class="item"> <div class="item">
@ -1004,7 +1004,7 @@
<span class="span dice_4"></span> <span class="span dice_4"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_46 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_46 || 0) }}</div>
</div> </div>
<!-- two_56 --> <!-- two_56 -->
<div class="item"> <div class="item">
@ -1026,7 +1026,7 @@
<span class="span dice_5"></span> <span class="span dice_5"></span>
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.two_56 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.two_56 || 0) }}</div>
</div> </div>
</div> </div>
<div class="list fourth">1:5</div> <div class="list fourth">1:5</div>
@ -1051,7 +1051,7 @@
<span class="big blue">{{ Lang[Type].odd }}</span> <span class="big blue">{{ Lang[Type].odd }}</span>
<span>1:1</span> <span>1:1</span>
</div> </div>
<div class="money">{{ bet_amount_msg.singular || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.singular || 0) }}</div>
</div> </div>
<div class="cols center"> <div class="cols center">
<div class="top"> <div class="top">
@ -1074,7 +1074,7 @@
<div class="dice-box"> <div class="dice-box">
<span class="span dice_1"></span> <span class="span dice_1"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.living_1 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.living_1 || 0) }}</div>
</div> </div>
<!-- living_2 --> <!-- living_2 -->
<div class="item"> <div class="item">
@ -1095,7 +1095,7 @@
<div class="dice-box"> <div class="dice-box">
<span class="span dice_2"></span> <span class="span dice_2"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.living_2 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.living_2 || 0) }}</div>
</div> </div>
<!-- living_3 --> <!-- living_3 -->
<div class="item"> <div class="item">
@ -1116,7 +1116,7 @@
<div class="dice-box"> <div class="dice-box">
<span class="span dice_3"></span> <span class="span dice_3"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.living_3 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.living_3 || 0) }}</div>
</div> </div>
<!-- living_4 --> <!-- living_4 -->
<div class="item"> <div class="item">
@ -1137,7 +1137,7 @@
<div class="dice-box"> <div class="dice-box">
<span class="span dice_4"></span> <span class="span dice_4"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.living_4 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.living_4 || 0) }}</div>
</div> </div>
<!-- living_5 --> <!-- living_5 -->
<div class="item"> <div class="item">
@ -1158,7 +1158,7 @@
<div class="dice-box"> <div class="dice-box">
<span class="span dice_5"></span> <span class="span dice_5"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.living_5 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.living_5 || 0) }}</div>
</div> </div>
<!-- living_6 --> <!-- living_6 -->
<div class="item"> <div class="item">
@ -1179,7 +1179,7 @@
<div class="dice-box"> <div class="dice-box">
<span class="span dice_6"></span> <span class="span dice_6"></span>
</div> </div>
<div class="money">{{ bet_amount_msg.living_6 || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.living_6 || 0) }}</div>
</div> </div>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -1208,7 +1208,7 @@
<span class="big red">{{ Lang[Type].even }}</span> <span class="big red">{{ Lang[Type].even }}</span>
<span>1:1</span> <span>1:1</span>
</div> </div>
<div class="money">{{ bet_amount_msg.plural || 0 }}</div> <div class="money">{{ $fk(bet_amount_msg.plural || 0) }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -1348,12 +1348,13 @@ export default {
position: absolute; position: absolute;
font-size: 0.24rem; font-size: 0.24rem;
font-weight: normal; font-weight: normal;
left: -3px; left: 0px;
bottom: -3px; bottom: -3px;
transform: scale(0.5); transform: scale(0.5);
pointer-events: none; pointer-events: none;
color: #ddd; color: #ddd;
vertical-align: bottom; vertical-align: bottom;
z-index: 10; /* 确保金额在筹码上方 */
&::before { &::before {
display: inline-block; display: inline-block;
content: "总"; content: "总";

View File

@ -14,7 +14,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.banker_amount"> <div class="money" v-if="bet_amount_msg.banker_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.banker_amount }} {{ $fk(bet_amount_msg.banker_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -41,7 +41,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.tie_amount"> <div class="money" v-if="bet_amount_msg.tie_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.tie_amount }} {{ $fk(bet_amount_msg.tie_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -65,7 +65,7 @@
></chipView> ></chipView>
<div class="money" v-if="bet_amount_msg.player_amount"> <div class="money" v-if="bet_amount_msg.player_amount">
<div class="coin-icon"></div> <div class="coin-icon"></div>
{{ bet_amount_msg.player_amount }} {{ $fk(bet_amount_msg.player_amount) }}
</div> </div>
<confirmBet <confirmBet
@confirm="confirmChip" @confirm="confirmChip"
@ -179,13 +179,13 @@ $text-green: #22ac38;
box-shadow: 0 4px 6px rgba(0,0,0,0.3); box-shadow: 0 4px 6px rgba(0,0,0,0.3);
&.dragon-cell { &.dragon-cell {
border-color: $text-blue; border-color: $text-red;
box-shadow: 0 0 10px rgba(64, 158, 255, 0.3); box-shadow: 0 0 10px rgba(245, 108, 108, 0.3);
} }
&.tiger-cell { &.tiger-cell {
border-color: $text-red; border-color: $text-blue;
box-shadow: 0 0 10px rgba(245, 108, 108, 0.3); box-shadow: 0 0 10px rgba(64, 158, 255, 0.3);
} }
&.tie-cell { &.tie-cell {
@ -222,8 +222,8 @@ $text-green: #22ac38;
font-weight: bold; font-weight: bold;
text-shadow: 0 1px 2px #000, 0 0 5px currentColor; text-shadow: 0 1px 2px #000, 0 0 5px currentColor;
&.dragon { color: $text-blue; } &.dragon { color: $text-red; }
&.tiger { color: $text-red; } &.tiger { color: $text-blue; }
&.tie { color: $text-green; } &.tie { color: $text-green; }
} }
} }
@ -238,25 +238,27 @@ $text-green: #22ac38;
.money { .money {
position: absolute; position: absolute;
bottom: 1px; top: 1px;
left: 50%; left: 50%;
transform: translateX(-50%) scale(0.5); transform: translateX(-50%);
transform-origin: center bottom;
background: rgba(0,0,0,0.85); background: rgba(0,0,0,0.85);
padding: 2px 4px; padding: 1px 6px;
border-radius: 4px; border-radius: 4px;
color: #ffd700; color: #ffd700;
font-size: 9px; font-size: 11px;
white-space: nowrap; white-space: nowrap;
display: flex; display: flex;
align-items: center; align-items: center;
gap: 1px; gap: 2px;
z-index: 100; z-index: 100;
pointer-events: none; pointer-events: none;
max-width: 95%; /* 防止溢出格子 */
overflow: hidden;
text-overflow: ellipsis;
.coin-icon { .coin-icon {
width: 6px; width: 8px;
height: 6px; height: 8px;
flex-shrink: 0; flex-shrink: 0;
border-radius: 50%; border-radius: 50%;
background: #ffd700; background: #ffd700;

View File

@ -1270,12 +1270,13 @@ export default {
position: absolute; position: absolute;
font-size: 0.24rem; font-size: 0.24rem;
font-weight: normal; font-weight: normal;
left: -3px; left: 0px;
bottom: -3px; bottom: -3px;
transform: scale(0.5); transform: scale(0.5);
pointer-events: none; pointer-events: none;
color: #ddd; color: #ddd;
vertical-align: bottom; vertical-align: bottom;
z-index: 10; /* 确保金额在筹码上方 */
&::before { &::before {
display: inline-block; display: inline-block;
content: "总"; content: "总";

View File

@ -1351,12 +1351,13 @@ export default {
position: absolute; position: absolute;
font-size: 0.24rem; font-size: 0.24rem;
font-weight: normal; font-weight: normal;
left: -3px; left: 0px;
bottom: -3px; bottom: -3px;
transform: scale(0.5); transform: scale(0.5);
pointer-events: none; pointer-events: none;
color: #ddd; color: #ddd;
vertical-align: bottom; vertical-align: bottom;
z-index: 10; /* 确保金额在筹码上方 */
&::before { &::before {
display: inline-block; display: inline-block;
content: "总"; content: "总";

View File

@ -26,7 +26,7 @@
<div class="proportion"> <div class="proportion">
<span>1:12</span> <span>1:12</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_zero }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_zero) }}</div>
</div> </div>
<!-- --> <!-- -->
<div class="item"> <div class="item">
@ -48,7 +48,7 @@
<span class="big">{{ Lang[Type].even }}</span> <span class="big">{{ Lang[Type].even }}</span>
<span>1:0.96</span> <span>1:0.96</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_plural }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_plural) }}</div>
</div> </div>
<!-- --> <!-- -->
<div class="item"> <div class="item">
@ -70,7 +70,7 @@
<span class="big">{{ Lang[Type].odd }}</span> <span class="big">{{ Lang[Type].odd }}</span>
<span>1:0.96</span> <span>1:0.96</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_singular }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_singular) }}</div>
</div> </div>
<!-- 4 --> <!-- 4 -->
<div class="item"> <div class="item">
@ -97,7 +97,7 @@
<div class="proportion"> <div class="proportion">
<span>1:12</span> <span>1:12</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_four }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_four) }}</div>
</div> </div>
</div> </div>
<div class="list"> <div class="list">
@ -126,7 +126,7 @@
<div class="proportion"> <div class="proportion">
<span>1:2.6</span> <span>1:2.6</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_one }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_one) }}</div>
</div> </div>
<!-- --> <!-- -->
<div class="item"> <div class="item">
@ -148,7 +148,7 @@
<span class="big">{{ Lang[Type].small }}</span> <span class="big">{{ Lang[Type].small }}</span>
<span>1:0.96</span> <span>1:0.96</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_small }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_small) }}</div>
</div> </div>
<!-- --> <!-- -->
<div class="item"> <div class="item">
@ -170,7 +170,7 @@
<span class="big">{{ Lang[Type].big }}</span> <span class="big">{{ Lang[Type].big }}</span>
<span>1:0.96</span> <span>1:0.96</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_big }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_big) }}</div>
</div> </div>
<!-- 3 --> <!-- 3 -->
<div class="item"> <div class="item">
@ -197,7 +197,7 @@
<div class="proportion"> <div class="proportion">
<span>1:2.6</span> <span>1:2.6</span>
</div> </div>
<div class="money">{{ bet_amount_msg.toning_three }}</div> <div class="money">{{ $fk(bet_amount_msg.toning_three) }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -367,6 +367,7 @@ $text-secondary: #888;
color: $text-secondary; color: $text-secondary;
vertical-align: bottom; vertical-align: bottom;
pointer-events: none; pointer-events: none;
z-index: 10; /* 确保金额在筹码上方 */
&::before { &::before {
display: inline-block; display: inline-block;
content: "总"; content: "总";

View File

@ -57,35 +57,6 @@
<div class="road-box"> <div class="road-box">
<canvas class="canvas" ref="refItem"></canvas> <canvas class="canvas" ref="refItem"></canvas>
<!-- Ask Way Overlay (Bottom Right) -->
<div class="ask-panel" v-if="[1,2].includes(tableData.game_id)">
<div class="ask-group banker" @click="askWay('banker')">
<div class="ask-title text-red">{{ Lang[Type].askbanker }}</div>
<div class="ask-icons">
<span class="dot hollow red" v-if="autoaskData.BbigEyeRoadisshow && autoaskData.BbigEyeRoadcolor == 'red'"></span>
<span class="dot hollow blue" v-if="autoaskData.BbigEyeRoadisshow && autoaskData.BbigEyeRoadcolor == 'blue'"></span>
<span class="dot solid red" v-if="autoaskData.Bpathwayisshow && autoaskData.Bpathwaycolor == 'red'"></span>
<span class="dot solid blue" v-if="autoaskData.Bpathwayisshow && autoaskData.Bpathwaycolor == 'blue'"></span>
<span class="dot slash red" v-if="autoaskData.Broachisshow && autoaskData.Broachcolor == 'red'"></span>
<span class="dot slash blue" v-if="autoaskData.Broachisshow && autoaskData.Broachcolor == 'blue'"></span>
</div>
</div>
<div class="ask-group player" @click="askWay('player')">
<div class="ask-title text-blue">{{ Lang[Type].askplayer }}</div>
<div class="ask-icons">
<span class="dot hollow red" v-if="autoaskData.PbigEyeRoadisshow && autoaskData.PbigEyeRoadcolor == 'red'"></span>
<span class="dot hollow blue" v-if="autoaskData.PbigEyeRoadisshow && autoaskData.PbigEyeRoadcolor == 'blue'"></span>
<span class="dot solid red" v-if="autoaskData.Ppathwayisshow && autoaskData.Ppathwaycolor == 'red'"></span>
<span class="dot solid blue" v-if="autoaskData.Ppathwayisshow && autoaskData.Ppathwaycolor == 'blue'"></span>
<span class="dot slash red" v-if="autoaskData.Proachisshow && autoaskData.Proachcolor == 'red'"></span>
<span class="dot slash blue" v-if="autoaskData.Proachisshow && autoaskData.Proachcolor == 'blue'"></span>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -271,73 +242,6 @@ export default {
display: block; display: block;
} }
/* Ask Panel - Integrated into grid (bottom 3 rows, far right) */
.ask-panel {
position: absolute;
right: 0;
bottom: 0;
width: 25%; /* Roughly 6/24 of width */
height: 50%; /* Covers bottom 3 rows (50% of 6 rows) */
display: flex;
background: #fff;
border-left: 1px solid #eee;
border-top: 1px solid #eee;
z-index: 10;
.ask-group {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
&.banker {
border-right: 1px solid #f5f5f5;
}
.ask-title {
font-size: 11px !important;
font-weight: 500;
color: #333;
margin-bottom: 2px;
white-space: nowrap;
}
.ask-icons {
display: flex;
gap: 4px;
align-items: center;
.dot {
display: inline-block;
&.solid {
width: 10px;
height: 10px;
border-radius: 50%;
&.red { background: #e40000; }
&.blue { background: #0056ee; }
}
&.hollow {
width: 8px;
height: 8px;
border-radius: 50%;
border: 1.5px solid;
&.red { border-color: #e40000; }
&.blue { border-color: #0056ee; }
}
&.slash {
width: 2px;
height: 10px;
transform: rotate(-45deg);
border-radius: 1px;
&.red { background: #e40000; }
&.blue { background: #0056ee; }
}
}
}
}
}
} }
} }

View File

@ -169,9 +169,9 @@
</td> </td>
<td>{{ item.create_time }}</td> <td>{{ item.create_time }}</td>
<td>{{ item.money_before_bet }}</td> <td>{{ $fk(item.money_before_bet) }}</td>
<td>{{ item.amount }}</td> <td>{{ $fk(item.amount) }}</td>
<td>{{ item.win_total }}</td> <td>{{ $fk(item.win_total) }}</td>
</tr> </tr>
</table> </table>
</div> </div>
@ -194,9 +194,9 @@
<td>{{ item.id }}</td> <td>{{ item.id }}</td>
<td>{{ item.mode }}</td> <td>{{ item.mode }}</td>
<td>{{ item.create_time }}</td> <td>{{ item.create_time }}</td>
<td>{{ item.old_money }}</td> <td>{{ $fk(item.old_money) }}</td>
<td>{{ item.new_money }}</td> <td>{{ $fk(item.new_money) }}</td>
<td>{{ item.amount }}</td> <td>{{ $fk(item.amount) }}</td>
</tr> </tr>
</table> </table>
</div> </div>
@ -213,7 +213,7 @@
<table class="bd"> <table class="bd">
<tr v-for="item in tableData" :key="item.id"> <tr v-for="item in tableData" :key="item.id">
<td>{{ item.id }}</td> <td>{{ item.id }}</td>
<td>{{ item.money }}</td> <td>{{ $fk(item.money) }}</td>
<td>{{ item.table_name }}</td> <td>{{ item.table_name }}</td>
<td>{{ item.create_time }}</td> <td>{{ item.create_time }}</td>
</tr> </tr>
@ -254,22 +254,22 @@
class="alldown" class="alldown"
v-if="type == 1 || type == 2 || type == 4 || type == 5" v-if="type == 1 || type == 2 || type == 4 || type == 5"
> >
{{ $lang[$Type].Totalbet }} {{ alldown }} {{ $lang[$Type].Totalbet }} {{ $fk(alldown) }}
</span> </span>
<span <span
class="allwin" class="allwin"
v-if="type == 1 || type == 2 || type == 4 || type == 5" v-if="type == 1 || type == 2 || type == 4 || type == 5"
> >
{{ $lang[$Type].TotalWin }} {{ returnFloat(allwin) }} {{ $lang[$Type].TotalWin }} {{ $fk(returnFloat(allwin)) }}
</span> </span>
<span class="allwin" v-if="type == 10"> <span class="allwin" v-if="type == 10">
{{ $lang[$Type].Upperscore }} {{ recharge_amount }} {{ $lang[$Type].Upperscore }} {{ $fk(recharge_amount) }}
</span> </span>
<span class="allwin" v-if="type == 11"> <span class="allwin" v-if="type == 11">
{{ $lang[$Type].Subordinate }} {{ recharge_amount }} {{ $lang[$Type].Subordinate }} {{ $fk(recharge_amount) }}
</span> </span>
<span class="allwin" v-if="type == 12"> <span class="allwin" v-if="type == 12">
{{ $lang[$Type].Pagerewarded }} {{ recharge_amount }} {{ $lang[$Type].Pagerewarded }} {{ $fk(recharge_amount) }}
</span> </span>
</div> </div>
</section> </section>
@ -298,8 +298,8 @@
<!-- <td>{{item.table_name}}</td> --> <!-- <td>{{item.table_name}}</td> -->
<td>{{ item.user_bet }}</td> <td>{{ item.user_bet }}</td>
<td>{{ item.card_result }}</td> <td>{{ item.card_result }}</td>
<td>{{ item.amount }}</td> <td>{{ $fk(item.amount) }}</td>
<td>{{ item.win_total }}</td> <td>{{ $fk(item.win_total) }}</td>
<td>{{ item.create_time }}</td> <td>{{ item.create_time }}</td>
</tr> </tr>
</table> </table>
@ -341,9 +341,9 @@
{{ $lang[$Type].Next }} {{ $lang[$Type].Next }}
</span> </span>
<span class="alldown"> <span class="alldown">
{{ $lang[$Type].Totalbet }} {{ roballdown }} {{ $lang[$Type].Totalbet }} {{ $fk(roballdown) }}
</span> </span>
<span class="allwin">{{ $lang[$Type].TotalWin }} {{ roballwin }}</span> <span class="allwin">{{ $lang[$Type].TotalWin }} {{ $fk(roballwin) }}</span>
</div> </div>
</section> </section>
</div> </div>

View File

@ -38,22 +38,22 @@
<span> <span>
{{ tableData.price_banker }}/1({{ Lang[Type].is_commission }}) {{ tableData.price_banker }}/1({{ Lang[Type].is_commission }})
</span> </span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 1"> <div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].player }}</span> <span>{{ Lang[Type].player }}</span>
<span>{{ tableData.price_player }}</span> <span>{{ tableData.price_player }}</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 2"> <div class="list" v-if="tableData.game_id == 2">
<span>{{ Lang[Type].dragon }}</span> <span>{{ Lang[Type].dragon }}</span>
<span>{{ tableData.price_dragon }}</span> <span>{{ tableData.price_dragon }}</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 2"> <div class="list" v-if="tableData.game_id == 2">
<span>{{ Lang[Type].tiger }}</span> <span>{{ Lang[Type].tiger }}</span>
<span>{{ tableData.price_tiger }}</span> <span>{{ tableData.price_tiger }}</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div <div
class="list" class="list"
@ -67,32 +67,32 @@
: tableData.price_tie_dt : tableData.price_tie_dt
}} }}
</span> </span>
<span>{{ tableData.limit_money_tie }}</span> <span>{{ $fk(userLimitTie) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 1"> <div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].p_banker }}</span> <span>{{ Lang[Type].p_banker }}</span>
<span>{{ tableData.price_pair }}</span> <span>{{ tableData.price_pair }}</span>
<span>{{ tableData.limit_money_pair }}</span> <span>{{ $fk(userLimitPair) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 1"> <div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].p_player }}</span> <span>{{ Lang[Type].p_player }}</span>
<span>{{ tableData.price_pair }}</span> <span>{{ tableData.price_pair }}</span>
<span>{{ tableData.limit_money_pair }}</span> <span>{{ $fk(userLimitPair) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 1"> <div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].big }}</span> <span>{{ Lang[Type].big }}</span>
<span>0.5</span> <span>0.5</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 1"> <div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].small }}</span> <span>{{ Lang[Type].small }}</span>
<span>1.5</span> <span>1.5</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div class="list" v-if="tableData.game_id == 1"> <div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].luckSix }}</span> <span>{{ Lang[Type].luckSix }}</span>
<span>12~20</span> <span>12~20</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk(userLimit) }}</span>
</div> </div>
<div <div
class="list" class="list"
@ -105,7 +105,7 @@
> >
<span>{{ Lang[Type].limit }}</span> <span>{{ Lang[Type].limit }}</span>
<span>1</span> <span>1</span>
<span>{{ tableData.limit_money }}</span> <span>{{ $fk((tableData.game_id == 4 || tableData.game_id == 5) && userInfo.limit_low_nn > 0 ? (userInfo.limit_low_nn + '-' + userInfo.limit_high_nn) : userLimit) }}</span>
</div> </div>
</div> </div>
</div> </div>
@ -128,11 +128,19 @@ export default {
const showTableInfo = computed(() => store.state.config.showTableInfo) const showTableInfo = computed(() => store.state.config.showTableInfo)
const Type = computed(() => store.state.config.$Type) const Type = computed(() => store.state.config.$Type)
const Lang = computed(() => store.state.config.$lang) const Lang = computed(() => store.state.config.$lang)
const userInfo = computed(() => store.state.app.userInfo)
const userLimit = computed(() => userInfo.value.limit_low + '-' + userInfo.value.limit_high)
const userLimitTie = computed(() => userInfo.value.limit_low_tie + '-' + userInfo.value.limit_high_tie)
const userLimitPair = computed(() => userInfo.value.limit_low_pair + '-' + userInfo.value.limit_high_pair)
console.log(props) console.log(props)
return { return {
Type, Type,
Lang, Lang,
showTableInfo showTableInfo,
userInfo,
userLimit,
userLimitTie,
userLimitPair
} }
} }
} }

View File

@ -77,42 +77,45 @@ export default {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
// // - Vietnam K format
&.chip_1s { &.chip_10k {
background-image: url("~@/assets/images/chip/1s.png"); background-image: url("~@/assets/images/chip/10k.png");
} }
&.chip_5s { &.chip_20k {
background-image: url("~@/assets/images/chip/5s.png"); background-image: url("~@/assets/images/chip/20k.png");
} }
&.chip_1b { &.chip_50k {
background-image: url("~@/assets/images/chip/1b.png"); background-image: url("~@/assets/images/chip/50k.png");
} }
&.chip_2b { &.chip_100k {
background-image: url("~@/assets/images/chip/2b.png"); background-image: url("~@/assets/images/chip/100k.png");
} }
&.chip_5b { &.chip_200k {
background-image: url("~@/assets/images/chip/5b.png"); background-image: url("~@/assets/images/chip/200k.png");
} }
&.chip_1k { &.chip_500k {
background-image: url("~@/assets/images/chip/1k.png"); background-image: url("~@/assets/images/chip/500k.png");
} }
&.chip_2k { &.chip_1000k {
background-image: url("~@/assets/images/chip/2k.png"); background-image: url("~@/assets/images/chip/1000k.png");
} }
&.chip_5k { &.chip_2000k {
background-image: url("~@/assets/images/chip/5k.png"); background-image: url("~@/assets/images/chip/2000k.png");
} }
&.chip_1w { &.chip_5000k {
background-image: url("~@/assets/images/chip/1w.png"); background-image: url("~@/assets/images/chip/5000k.png");
} }
&.chip_2w { &.chip_10000k {
background-image: url("~@/assets/images/chip/2w.png"); background-image: url("~@/assets/images/chip/10000k.png");
} }
&.chip_5w { &.chip_20000k {
background-image: url("~@/assets/images/chip/5w.png"); background-image: url("~@/assets/images/chip/20000k.png");
} }
&.chip_10w { &.chip_50000k {
background-image: url("~@/assets/images/chip/10w.png"); background-image: url("~@/assets/images/chip/50000k.png");
}
&.chip_100000k {
background-image: url("~@/assets/images/chip/100000k.png");
} }
} }
} }

View File

@ -13,10 +13,10 @@
<!-- 总下注金额 - 独立定位在中间 --> <!-- 总下注金额 - 独立定位在中间 -->
<div class="num" v-show="data.money > 0"> <div class="num" v-show="data.money > 0">
{{ data.money }} {{ $fk(data.money) }}
{{ {{
data.times data.times
? `${Lang[Type].withhold}${data.money * (data.game_id == 4 ? 4 : 19)}` ? `${Lang[Type].withhold}${$fk(data.money * (data.game_id == 4 ? 4 : 19))}`
: "" : ""
}} }}
</div> </div>
@ -98,14 +98,14 @@ $red-highlight: #ff3b3b;
background: rgba(197, 160, 89, 0.95); background: rgba(197, 160, 89, 0.95);
border-radius: 1rem; border-radius: 1rem;
color: #000; color: #000;
font-size: 0.28rem; font-size: 12px;
padding: 0.03rem 0.08rem; padding: 2px 8px;
border: 1px solid $gold; border: 1px solid $gold;
font-weight: 600; font-weight: 600;
z-index: 1000; z-index: 1000;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
white-space: nowrap; white-space: nowrap;
margin-top: 0.06rem; /* 在按钮下方,与按钮保持间距 */ margin-top: 4px;
} }
.btn-box { .btn-box {
display: flex; display: flex;

View File

@ -5,7 +5,9 @@ import { vants } from "@/plugins/vant.config"
import "@/plugins/fox.config" import "@/plugins/fox.config"
import "@/plugins/sound.config" import "@/plugins/sound.config"
import App from "@/App.vue" import App from "@/App.vue"
import { formatK } from "@/utils/common"
const app = createApp(App) const app = createApp(App)
vants(app) vants(app)
app.config.globalProperties.$fk = formatK
app.use(store).use(router).mount("#app") app.use(store).use(router).mount("#app")

View File

@ -40,17 +40,19 @@ const state = {
$lang: { cn, tw, en, yn, kr, tl, in: In }, $lang: { cn, tw, en, yn, kr, tl, in: In },
$Type: localStorage.getItem("language") || "en", $Type: localStorage.getItem("language") || "en",
chipArry: [ chipArry: [
{ key: "1s", show: true, value: 10 }, { key: "10k", show: true, value: 10000 },
{ key: "20k", show: true, value: 20000 },
{ key: "5s", show: true, value: 50 }, { key: "50k", show: true, value: 50000 },
{ key: "1b", show: true, value: 100 }, { key: "100k", show: true, value: 100000 },
{ key: "5b", show: true, value: 500 }, { key: "200k", show: true, value: 200000 },
{ key: "1k", show: true, value: 1000 }, { key: "500k", show: true, value: 500000 },
{ key: "5k", show: true, value: 5000 }, { key: "1000k", show: false, value: 1000000 },
{ key: "1w", show: false, value: 10000 }, { key: "2000k", show: false, value: 2000000 },
{ key: "2w", show: false, value: 20000 }, { key: "5000k", show: false, value: 5000000 },
{ key: "5w", show: false, value: 50000 }, { key: "10000k", show: false, value: 10000000 },
{ key: "10w", show: false, value: 100000 } { key: "20000k", show: false, value: 20000000 },
{ key: "50000k", show: false, value: 50000000 },
{ key: "100000k", show: false, value: 100000000 }
], ],
soundList: {}, soundList: {},
online: false, online: false,

View File

@ -1,3 +1,18 @@
// 金额格式化为K
const formatK = (val) => {
if (val === null || val === undefined || val === '') return val
if (typeof val === 'string' && val.includes('-')) {
return val.split('-').map(s => formatK(isNaN(s) ? s : Number(s))).join('-')
}
const n = Number(val)
if (isNaN(n)) return val
if (n >= 1000 || n <= -1000) {
const k = n / 1000
return (k % 1 === 0 ? k.toFixed(0) : k) + 'K'
}
return val
}
// 百家乐&龙虎 // 百家乐&龙虎
const baccaratData = { const baccaratData = {
key: [ key: [
@ -633,6 +648,7 @@ const updateBetAmount = (tableData, data) => {
} }
export { export {
formatK,
sendScanResult, sendScanResult,
resetCardInfo, resetCardInfo,
updateBetAmount, updateBetAmount,

View File

@ -70,14 +70,14 @@
<!-- 2. Balance --> <!-- 2. Balance -->
<div class="nav-item balance-info"> <div class="nav-item balance-info">
<div class="icon money-icon"></div> <span class="currency-symbol"></span>
<div class="text">{{ userInfo.money }}</div> <div class="text">{{ $fk(userInfo.money) }}</div>
</div> </div>
<!-- 3. Table Limit --> <!-- 3. Table Limit -->
<div class="nav-item limit-info"> <div class="nav-item limit-info">
<div class="icon limit-icon"></div> <div class="icon limit-icon"></div>
<div class="text">{{ tableData && tableData.limit_money }}</div> <div class="text">{{ $fk(nnGame && userInfo.limit_low_nn > 0 ? (userInfo.limit_low_nn + '-' + userInfo.limit_high_nn) : (userInfo.limit_low + '-' + userInfo.limit_high)) }}</div>
</div> </div>
<!-- 4. Right Controls (Camera, etc.) --> <!-- 4. Right Controls (Camera, etc.) -->
@ -169,7 +169,7 @@
<!-- 4. Roadmap (Bottom Section, Fixed Height or Flex Basis) --> <!-- 4. Roadmap (Bottom Section, Fixed Height or Flex Basis) -->
<div class="roadmap-container" :class="{ 'nn-mode': tableData && (tableData.game_id == 4 || tableData.game_id == 5) }" @click.stop="closeSwitchView(false)"> <div class="roadmap-container" :class="{ 'nn-mode': tableData && (tableData.game_id == 4 || tableData.game_id == 5) }" @click.stop="closeSwitchView(false)">
<PlayWay :tableData="tableData"></PlayWay> <PlayWay ref="playWayRef" :tableData="tableData"></PlayWay>
<!-- Poker for Baccarat/Dragon Tiger (overlay style) --> <!-- Poker for Baccarat/Dragon Tiger (overlay style) -->
<Poker <Poker
class="pokerView" class="pokerView"
@ -193,9 +193,33 @@
></RouletteResult> ></RouletteResult>
</div> </div>
</div> <!-- 5. Ask Way Bar (独立问路条仅百家乐/龙虎) -->
<div class="ask-bar" v-if="tableData && [1,2].includes(tableData.game_id)">
<div class="ask-btn banker" @click="playWayRef?.askWay('banker')">
<span class="ask-label text-red">{{ Lang[Type].askbanker }}</span>
<div class="ask-dots">
<span class="dot hollow red" v-if="playWayRef?.autoaskData?.BbigEyeRoadisshow && playWayRef?.autoaskData?.BbigEyeRoadcolor == 'red'"></span>
<span class="dot hollow blue" v-if="playWayRef?.autoaskData?.BbigEyeRoadisshow && playWayRef?.autoaskData?.BbigEyeRoadcolor == 'blue'"></span>
<span class="dot solid red" v-if="playWayRef?.autoaskData?.Bpathwayisshow && playWayRef?.autoaskData?.Bpathwaycolor == 'red'"></span>
<span class="dot solid blue" v-if="playWayRef?.autoaskData?.Bpathwayisshow && playWayRef?.autoaskData?.Bpathwaycolor == 'blue'"></span>
<span class="dot slash red" v-if="playWayRef?.autoaskData?.Broachisshow && playWayRef?.autoaskData?.Broachcolor == 'red'"></span>
<span class="dot slash blue" v-if="playWayRef?.autoaskData?.Broachisshow && playWayRef?.autoaskData?.Broachcolor == 'blue'"></span>
</div>
</div>
<div class="ask-btn player" @click="playWayRef?.askWay('player')">
<span class="ask-label text-blue">{{ Lang[Type].askplayer }}</span>
<div class="ask-dots">
<span class="dot hollow red" v-if="playWayRef?.autoaskData?.PbigEyeRoadisshow && playWayRef?.autoaskData?.PbigEyeRoadcolor == 'red'"></span>
<span class="dot hollow blue" v-if="playWayRef?.autoaskData?.PbigEyeRoadisshow && playWayRef?.autoaskData?.PbigEyeRoadcolor == 'blue'"></span>
<span class="dot solid red" v-if="playWayRef?.autoaskData?.Ppathwayisshow && playWayRef?.autoaskData?.Ppathwaycolor == 'red'"></span>
<span class="dot solid blue" v-if="playWayRef?.autoaskData?.Ppathwayisshow && playWayRef?.autoaskData?.Ppathwaycolor == 'blue'"></span>
<span class="dot slash red" v-if="playWayRef?.autoaskData?.Proachisshow && playWayRef?.autoaskData?.Proachcolor == 'red'"></span>
<span class="dot slash blue" v-if="playWayRef?.autoaskData?.Proachisshow && playWayRef?.autoaskData?.Proachcolor == 'blue'"></span>
</div>
</div>
</div>
<!-- Moved Switch Views to Root View Level for Full Height Overlay --> </div>
<van-popup <van-popup
v-model:show="switchtabshow" v-model:show="switchtabshow"
position="bottom" position="bottom"
@ -256,6 +280,7 @@ import {
getUserBetDice, getUserBetDice,
getUserBetRoulette getUserBetRoulette
} from "@/utils/api" } from "@/utils/api"
import { formatK } from "@/utils/common"
export default { export default {
name: "playView", name: "playView",
@ -282,6 +307,7 @@ export default {
const hideVideo = ref(true) const hideVideo = ref(true)
const table_id = ref(null) const table_id = ref(null)
const chipTable = ref(null) const chipTable = ref(null)
const playWayRef = ref(null)
const currentRate = ref(0) const currentRate = ref(0)
const switchtabshow = ref(false) const switchtabshow = ref(false)
const isSwitchtab = ref(false) const isSwitchtab = ref(false)
@ -397,6 +423,7 @@ export default {
} }
const userInfo = computed(() => store.state.app.userInfo) const userInfo = computed(() => store.state.app.userInfo)
const nnGame = computed(() => tableData.value && (tableData.value.game_id == 4 || tableData.value.game_id == 5))
// //
const offCamera = () => { const offCamera = () => {
store.commit("config/switchVideo", !switchVideo.value) store.commit("config/switchVideo", !switchVideo.value)
@ -805,11 +832,11 @@ export default {
Lang.value[Type.value].msg_balance + Lang.value[Type.value].msg_balance +
"</span></div>" + "</span></div>" +
'<div class="item"><span>' + '<div class="item"><span>' +
data.amount + formatK(data.amount) +
"</span><span>" + "</span><span>" +
returnFloat(data.win_total) + formatK(returnFloat(data.win_total)) +
"</span><span>" + "</span><span>" +
data.end_money + formatK(data.end_money) +
"</span></div>", "</span></div>",
className: "alert", className: "alert",
confirmButtonText: Lang.value[Type.value].Confirm confirmButtonText: Lang.value[Type.value].Confirm
@ -844,11 +871,11 @@ export default {
'<div class="item"><span>' + '<div class="item"><span>' +
v.name + v.name +
"</span><span>" + "</span><span>" +
v.amount + formatK(v.amount) +
"</span><span>" + "</span><span>" +
text + text +
"</span><span>" + "</span><span>" +
v.win_amount + formatK(v.win_amount) +
"</span></div>" "</span></div>"
} }
}) })
@ -869,7 +896,7 @@ export default {
title: title:
Lang.value[Type.value].msg_win_lose + Lang.value[Type.value].msg_win_lose +
"" + "" +
returnFloat(data.win_total), formatK(returnFloat(data.win_total)),
message: html, message: html,
className: "alert", className: "alert",
confirmButtonText: Lang.value[Type.value].Confirm confirmButtonText: Lang.value[Type.value].Confirm
@ -1200,6 +1227,7 @@ export default {
videoConfig, videoConfig,
hideVideo, hideVideo,
userInfo, userInfo,
nnGame,
tableData, tableData,
switchVideo, switchVideo,
router, router,
@ -1235,7 +1263,9 @@ export default {
closeSwitchView, closeSwitchView,
toggleVide, toggleVide,
switchRouletteType, switchRouletteType,
videoUrl videoUrl,
playWayRef,
Lang
} }
} }
} }
@ -1299,7 +1329,7 @@ $gold: #c5a059;
} }
&.balance-info { &.balance-info {
.money-icon { background-image: url("~@/assets/images/icon/money.png"); } .currency-symbol { color: $gold; font-size: 14px; font-weight: bold; }
.text { color: $gold; font-family: monospace; font-size: 14px; } .text { color: $gold; font-family: monospace; font-size: 14px; }
} }
@ -1344,11 +1374,13 @@ $gold: #c5a059;
width: 100%; width: 100%;
height: 100%; /* Full height, Nav is now inside */ height: 100%; /* Full height, Nav is now inside */
position: relative; position: relative;
overflow: hidden; overflow-y: auto;
overflow-x: hidden;
/* 1. Video Container (Top) - Flex Grow */ /* 1. Video Container (Top) - Flex Grow */
.video-container { .video-container {
flex: 1; /* Grow to fill available space */ flex: 1 1 auto; /* 自适应但不被过度压缩 */
min-height: 200px;
position: relative; position: relative;
width: 100%; width: 100%;
background: #000; background: #000;
@ -1398,12 +1430,14 @@ $gold: #c5a059;
top: 10px; top: 10px;
left: 10px; left: 10px;
z-index: 2005; /* Highest priority */ z-index: 2005; /* Highest priority */
width: 30px; width: 36px;
height: 30px; height: 36px;
background-image: url("~@/assets/images/icon/back.png"); background-image: url("~@/assets/images/icon/back.png");
background-size: contain; background-size: contain;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
/* 亮白色滤镜,让返回键更显眼 */
filter: brightness(0) invert(1) drop-shadow(0 0 4px rgba(255, 255, 255, 0.8));
} }
/* Overlay Camera Icon */ /* Overlay Camera Icon */
@ -1472,12 +1506,12 @@ $gold: #c5a059;
/* 4. Game Table Area (New Flex Item) */ /* 4. Game Table Area (New Flex Item) */
.game-area-block { .game-area-block {
width: 100%; width: 100%;
height: 200px; /* Fixed height for table area */ height: 172px; /* 缩小28px给问路条 */
flex-shrink: 0; flex-shrink: 0;
position: relative; position: relative;
background: transparent; background: transparent;
z-index: 10; z-index: 10;
overflow: hidden; overflow: visible;
/* NN/TC mode - same as other games */ /* NN/TC mode - same as other games */
&.nn-mode { &.nn-mode {
@ -1521,10 +1555,10 @@ $gold: #c5a059;
border-top: 1px solid #333; border-top: 1px solid #333;
} }
/* 3. Poker Section for NN/TC - Compact horizontal layout */ /* 3. Poker Section for NN/TC - 2x2 Grid layout */
.poker-section { .poker-section {
width: 100%; width: 100%;
height: 40px; /* 减小高度 */ height: 120px; /* 2行布局上行庄家+闲一,下行闲二+闲三 */
flex-shrink: 0; flex-shrink: 0;
position: relative; position: relative;
z-index: 20; z-index: 20;
@ -1533,45 +1567,49 @@ $gold: #c5a059;
overflow: hidden; overflow: hidden;
::v-deep .nn-compact { ::v-deep .nn-compact {
/* Override default poker-box styles for compact mode */
.poker-box.nn { .poker-box.nn {
position: relative !important; position: relative !important;
height: 100% !important; height: 100% !important;
width: 100% !important; width: 100% !important;
display: flex !important; display: flex !important;
flex-direction: row !important; flex-wrap: wrap !important;
align-items: center !important; padding: 4px !important;
justify-content: space-around !important;
padding: 2px 4px !important;
box-sizing: border-box !important; box-sizing: border-box !important;
background: transparent !important; background: transparent !important;
.list { .list {
flex: 1 !important; width: 50% !important;
height: 100% !important; height: 50% !important;
flex: none !important;
min-width: 0 !important; min-width: 0 !important;
padding: 0 2px !important; padding: 2px 6px !important;
border-left: 1px solid #444 !important; border-bottom: 1px solid #333 !important;
border-left: none !important;
display: flex !important; display: flex !important;
flex-direction: row !important; flex-direction: row !important;
align-items: center !important; align-items: center !important;
justify-content: center !important; justify-content: center !important;
position: relative !important; position: relative !important;
box-sizing: border-box !important;
&:first-child { /* 右列加左边框 */
border-left: none !important; &:nth-child(2n) {
border-left: 1px solid #444 !important;
}
/* 下行去掉底边框 */
&:nth-child(n+3) {
border-bottom: none !important;
} }
.title { .title {
position: relative !important; position: relative !important;
display: block !important; display: block !important;
font-size: 8px !important; font-size: 11px !important;
padding: 2px 3px !important; padding: 2px 5px !important;
border-radius: 2px !important; border-radius: 2px !important;
white-space: nowrap !important; white-space: nowrap !important;
margin-right: 2px !important; margin-right: 4px !important;
flex-shrink: 0 !important; flex-shrink: 0 !important;
/* 确保颜色样式正确应用 */
&.red { &.red {
background: #ff494b !important; background: #ff494b !important;
color: #fff !important; color: #fff !important;
@ -1587,10 +1625,10 @@ $gold: #c5a059;
width: auto !important; width: auto !important;
left: 50% !important; left: 50% !important;
top: auto !important; top: auto !important;
bottom: 2px !important; bottom: 1px !important;
transform: translateX(-50%) !important; transform: translateX(-50%) !important;
font-size: 10px !important; font-size: 11px !important;
padding: 1px 4px !important; padding: 1px 6px !important;
margin: 0 !important; margin: 0 !important;
background: rgba(0, 0, 0, 0.7) !important; background: rgba(0, 0, 0, 0.7) !important;
border-radius: 2px !important; border-radius: 2px !important;
@ -1598,9 +1636,9 @@ $gold: #c5a059;
} }
.item { .item {
width: 16px !important; width: 30px !important;
height: 22px !important; height: 42px !important;
margin: 0 -3px !important; margin: 0 -2px !important;
margin-top: 0 !important; margin-top: 0 !important;
padding: 0 !important; padding: 0 !important;
@ -1706,7 +1744,7 @@ $gold: #c5a059;
/* NN/TC mode - larger roadmap */ /* NN/TC mode - larger roadmap */
&.nn-mode { &.nn-mode {
height: 130px; height: 180px;
} }
/* Deep overrides to ensure standard layout and white background support */ /* Deep overrides to ensure standard layout and white background support */
@ -1733,6 +1771,72 @@ $gold: #c5a059;
display: block !important; display: block !important;
} }
} }
/* 5. Ask Way Bar - 独立问路条 */
.ask-bar {
width: 100%;
height: 28px;
flex-shrink: 0;
display: flex;
background: #fff;
border-top: 1px solid #eee;
z-index: 20;
.ask-btn {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
cursor: pointer;
&.banker {
border-right: 1px solid #eee;
}
.ask-label {
font-size: 11px;
font-weight: 500;
white-space: nowrap;
}
.text-red { color: #e40000; }
.text-blue { color: #0056ee; }
.ask-dots {
display: flex;
gap: 4px;
align-items: center;
.dot {
display: inline-block;
&.solid {
width: 10px;
height: 10px;
border-radius: 50%;
&.red { background: #e40000; }
&.blue { background: #0056ee; }
}
&.hollow {
width: 8px;
height: 8px;
border-radius: 50%;
border: 1.5px solid;
&.red { border-color: #e40000; }
&.blue { border-color: #0056ee; }
}
&.slash {
width: 2px;
height: 10px;
transform: rotate(-45deg);
border-radius: 1px;
&.red { background: #e40000; }
&.blue { background: #0056ee; }
}
}
}
}
}
} }
} }
</style> </style>