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%;
pointer-events: none;
}
&.chip_1w,
&.chip_2w,
&.chip_5w,
&.chip_10w {
&:after {
background-image: url("~@/assets/images/chip/rect_active.png");
}
}
}
&.chip_1s {
background-image: url("~@/assets/images/chip/1s.png");
// Vietnam K format chips
&.chip_10k {
background-image: url("~@/assets/images/chip/10k.png");
}
&.chip_5s {
background-image: url("~@/assets/images/chip/5s.png");
&.chip_20k {
background-image: url("~@/assets/images/chip/20k.png");
}
&.chip_1b {
background-image: url("~@/assets/images/chip/1b.png");
&.chip_50k {
background-image: url("~@/assets/images/chip/50k.png");
}
&.chip_2b {
background-image: url("~@/assets/images/chip/2b.png");
&.chip_100k {
background-image: url("~@/assets/images/chip/100k.png");
}
&.chip_5b {
background-image: url("~@/assets/images/chip/5b.png");
&.chip_200k {
background-image: url("~@/assets/images/chip/200k.png");
}
&.chip_1k {
background-image: url("~@/assets/images/chip/1k.png");
&.chip_500k {
background-image: url("~@/assets/images/chip/500k.png");
}
&.chip_2k {
background-image: url("~@/assets/images/chip/2k.png");
&.chip_1000k {
background-image: url("~@/assets/images/chip/1000k.png");
}
&.chip_5k {
background-image: url("~@/assets/images/chip/5k.png");
&.chip_2000k {
background-image: url("~@/assets/images/chip/2000k.png");
}
&.chip_1w {
background-image: url("~@/assets/images/chip/1w.png");
&.chip_5000k {
background-image: url("~@/assets/images/chip/5000k.png");
}
&.chip_2w {
background-image: url("~@/assets/images/chip/2w.png");
&.chip_10000k {
background-image: url("~@/assets/images/chip/10000k.png");
}
&.chip_5w {
background-image: url("~@/assets/images/chip/5w.png");
&.chip_20000k {
background-image: url("~@/assets/images/chip/20000k.png");
}
&.chip_10w {
background-image: url("~@/assets/images/chip/10w.png");
&.chip_50000k {
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 {
flex: 1;
flex: 1 1 auto;
position: relative;
width: 100%;
min-height: 360px;
max-height: 50vh;
min-height: 200px;
background: #000;
order: 1;
overflow: hidden;

View File

@ -91,7 +91,7 @@
</template>
</div>
<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>
@ -126,6 +126,7 @@
const Type = computed(() => store.state.config.$Type)
const Lang = computed(() => store.state.config.$lang)
const wayType = computed(() => store.state.config.hallWayType)
const userInfo = computed(() => store.state.app.userInfo)
const routerName = computed(() => router.currentRoute.value.name)
const list = computed(() => {
const allTableData = store.state.app.allTableData
@ -304,6 +305,7 @@
list,
textType,
wayType,
userInfo,
getSendMode,
getTextVal,
routerName,

View File

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

View File

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

View File

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

View File

@ -300,8 +300,8 @@ export default {
const downBet = (e, type) => {
store.commit("app/standbyTime")
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) {
showToast(Lang.value[Type.value].to_bet_fail_7)
} else if (
@ -334,7 +334,7 @@ export default {
})
audioMp3(["push"]).Play()
}
// }
}
}
const nameArray = [
// &

View File

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

View File

@ -23,7 +23,7 @@
></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}_banker_times`]">
<div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}_banker_times`] }}
{{ $fk(bet_amount_msg[`amount_${pName}_banker_times`]) }}
</div>
<confirmBet
@confirm="confirmChip"
@ -53,7 +53,7 @@
></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}_banker`]">
<div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}_banker`] }}
{{ $fk(bet_amount_msg[`amount_${pName}_banker`]) }}
</div>
<confirmBet
@confirm="confirmChip"
@ -84,7 +84,7 @@
></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}_times`]">
<div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}_times`] }}
{{ $fk(bet_amount_msg[`amount_${pName}_times`]) }}
</div>
<confirmBet
@confirm="confirmChip"
@ -114,7 +114,7 @@
></chipView>
<div class="money" v-if="bet_amount_msg[`amount_${pName}`]">
<div class="coin-icon"></div>
{{ bet_amount_msg[`amount_${pName}`] }}
{{ $fk(bet_amount_msg[`amount_${pName}`]) }}
</div>
<confirmBet
@confirm="confirmChip"
@ -296,25 +296,27 @@ $text-red: #f56c6c;
.money {
position: absolute;
bottom: 1px;
top: 1px;
left: 50%;
transform: translateX(-50%) scale(0.5);
transform-origin: center bottom;
transform: translateX(-50%);
background: rgba(0,0,0,0.85);
padding: 2px 4px;
padding: 1px 6px;
border-radius: 4px;
color: #ffd700;
font-size: 9px;
font-size: 11px;
white-space: nowrap;
display: flex;
align-items: center;
gap: 1px;
gap: 2px;
z-index: 100;
pointer-events: none;
max-width: 95%; /* 防止溢出格子 */
overflow: hidden;
text-overflow: ellipsis;
.coin-icon {
width: 6px;
height: 6px;
width: 8px;
height: 8px;
flex-shrink: 0;
border-radius: 50%;
background: #ffd700;
@ -340,4 +342,31 @@ $text-red: #f56c6c;
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>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -38,22 +38,22 @@
<span>
{{ tableData.price_banker }}/1({{ Lang[Type].is_commission }})
</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].player }}</span>
<span>{{ tableData.price_player }}</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 2">
<span>{{ Lang[Type].dragon }}</span>
<span>{{ tableData.price_dragon }}</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 2">
<span>{{ Lang[Type].tiger }}</span>
<span>{{ tableData.price_tiger }}</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div
class="list"
@ -67,32 +67,32 @@
: tableData.price_tie_dt
}}
</span>
<span>{{ tableData.limit_money_tie }}</span>
<span>{{ $fk(userLimitTie) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].p_banker }}</span>
<span>{{ tableData.price_pair }}</span>
<span>{{ tableData.limit_money_pair }}</span>
<span>{{ $fk(userLimitPair) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].p_player }}</span>
<span>{{ tableData.price_pair }}</span>
<span>{{ tableData.limit_money_pair }}</span>
<span>{{ $fk(userLimitPair) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].big }}</span>
<span>0.5</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].small }}</span>
<span>1.5</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div class="list" v-if="tableData.game_id == 1">
<span>{{ Lang[Type].luckSix }}</span>
<span>12~20</span>
<span>{{ tableData.limit_money }}</span>
<span>{{ $fk(userLimit) }}</span>
</div>
<div
class="list"
@ -105,7 +105,7 @@
>
<span>{{ Lang[Type].limit }}</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>
@ -128,11 +128,19 @@ export default {
const showTableInfo = computed(() => store.state.config.showTableInfo)
const Type = computed(() => store.state.config.$Type)
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)
return {
Type,
Lang,
showTableInfo
showTableInfo,
userInfo,
userLimit,
userLimitTie,
userLimitPair
}
}
}

View File

@ -77,42 +77,45 @@ export default {
background-repeat: no-repeat;
background-position: center;
//
&.chip_1s {
background-image: url("~@/assets/images/chip/1s.png");
// - Vietnam K format
&.chip_10k {
background-image: url("~@/assets/images/chip/10k.png");
}
&.chip_5s {
background-image: url("~@/assets/images/chip/5s.png");
&.chip_20k {
background-image: url("~@/assets/images/chip/20k.png");
}
&.chip_1b {
background-image: url("~@/assets/images/chip/1b.png");
&.chip_50k {
background-image: url("~@/assets/images/chip/50k.png");
}
&.chip_2b {
background-image: url("~@/assets/images/chip/2b.png");
&.chip_100k {
background-image: url("~@/assets/images/chip/100k.png");
}
&.chip_5b {
background-image: url("~@/assets/images/chip/5b.png");
&.chip_200k {
background-image: url("~@/assets/images/chip/200k.png");
}
&.chip_1k {
background-image: url("~@/assets/images/chip/1k.png");
&.chip_500k {
background-image: url("~@/assets/images/chip/500k.png");
}
&.chip_2k {
background-image: url("~@/assets/images/chip/2k.png");
&.chip_1000k {
background-image: url("~@/assets/images/chip/1000k.png");
}
&.chip_5k {
background-image: url("~@/assets/images/chip/5k.png");
&.chip_2000k {
background-image: url("~@/assets/images/chip/2000k.png");
}
&.chip_1w {
background-image: url("~@/assets/images/chip/1w.png");
&.chip_5000k {
background-image: url("~@/assets/images/chip/5000k.png");
}
&.chip_2w {
background-image: url("~@/assets/images/chip/2w.png");
&.chip_10000k {
background-image: url("~@/assets/images/chip/10000k.png");
}
&.chip_5w {
background-image: url("~@/assets/images/chip/5w.png");
&.chip_20000k {
background-image: url("~@/assets/images/chip/20000k.png");
}
&.chip_10w {
background-image: url("~@/assets/images/chip/10w.png");
&.chip_50000k {
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">
{{ data.money }}
{{ $fk(data.money) }}
{{
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>
@ -98,14 +98,14 @@ $red-highlight: #ff3b3b;
background: rgba(197, 160, 89, 0.95);
border-radius: 1rem;
color: #000;
font-size: 0.28rem;
padding: 0.03rem 0.08rem;
font-size: 12px;
padding: 2px 8px;
border: 1px solid $gold;
font-weight: 600;
z-index: 1000;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
white-space: nowrap;
margin-top: 0.06rem; /* 在按钮下方,与按钮保持间距 */
margin-top: 4px;
}
.btn-box {
display: flex;

View File

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

View File

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

View File

@ -70,14 +70,14 @@
<!-- 2. Balance -->
<div class="nav-item balance-info">
<div class="icon money-icon"></div>
<div class="text">{{ userInfo.money }}</div>
<span class="currency-symbol"></span>
<div class="text">{{ $fk(userInfo.money) }}</div>
</div>
<!-- 3. Table Limit -->
<div class="nav-item limit-info">
<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>
<!-- 4. Right Controls (Camera, etc.) -->
@ -169,7 +169,7 @@
<!-- 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)">
<PlayWay :tableData="tableData"></PlayWay>
<PlayWay ref="playWayRef" :tableData="tableData"></PlayWay>
<!-- Poker for Baccarat/Dragon Tiger (overlay style) -->
<Poker
class="pokerView"
@ -193,9 +193,33 @@
></RouletteResult>
</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
v-model:show="switchtabshow"
position="bottom"
@ -256,6 +280,7 @@ import {
getUserBetDice,
getUserBetRoulette
} from "@/utils/api"
import { formatK } from "@/utils/common"
export default {
name: "playView",
@ -282,6 +307,7 @@ export default {
const hideVideo = ref(true)
const table_id = ref(null)
const chipTable = ref(null)
const playWayRef = ref(null)
const currentRate = ref(0)
const switchtabshow = ref(false)
const isSwitchtab = ref(false)
@ -397,6 +423,7 @@ export default {
}
const userInfo = computed(() => store.state.app.userInfo)
const nnGame = computed(() => tableData.value && (tableData.value.game_id == 4 || tableData.value.game_id == 5))
//
const offCamera = () => {
store.commit("config/switchVideo", !switchVideo.value)
@ -805,11 +832,11 @@ export default {
Lang.value[Type.value].msg_balance +
"</span></div>" +
'<div class="item"><span>' +
data.amount +
formatK(data.amount) +
"</span><span>" +
returnFloat(data.win_total) +
formatK(returnFloat(data.win_total)) +
"</span><span>" +
data.end_money +
formatK(data.end_money) +
"</span></div>",
className: "alert",
confirmButtonText: Lang.value[Type.value].Confirm
@ -844,11 +871,11 @@ export default {
'<div class="item"><span>' +
v.name +
"</span><span>" +
v.amount +
formatK(v.amount) +
"</span><span>" +
text +
"</span><span>" +
v.win_amount +
formatK(v.win_amount) +
"</span></div>"
}
})
@ -869,7 +896,7 @@ export default {
title:
Lang.value[Type.value].msg_win_lose +
"" +
returnFloat(data.win_total),
formatK(returnFloat(data.win_total)),
message: html,
className: "alert",
confirmButtonText: Lang.value[Type.value].Confirm
@ -1200,6 +1227,7 @@ export default {
videoConfig,
hideVideo,
userInfo,
nnGame,
tableData,
switchVideo,
router,
@ -1235,7 +1263,9 @@ export default {
closeSwitchView,
toggleVide,
switchRouletteType,
videoUrl
videoUrl,
playWayRef,
Lang
}
}
}
@ -1299,7 +1329,7 @@ $gold: #c5a059;
}
&.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; }
}
@ -1344,11 +1374,13 @@ $gold: #c5a059;
width: 100%;
height: 100%; /* Full height, Nav is now inside */
position: relative;
overflow: hidden;
overflow-y: auto;
overflow-x: hidden;
/* 1. Video Container (Top) - Flex Grow */
.video-container {
flex: 1; /* Grow to fill available space */
flex: 1 1 auto; /* 自适应但不被过度压缩 */
min-height: 200px;
position: relative;
width: 100%;
background: #000;
@ -1398,12 +1430,14 @@ $gold: #c5a059;
top: 10px;
left: 10px;
z-index: 2005; /* Highest priority */
width: 30px;
height: 30px;
width: 36px;
height: 36px;
background-image: url("~@/assets/images/icon/back.png");
background-size: contain;
background-repeat: no-repeat;
background-position: center;
/* 亮白色滤镜,让返回键更显眼 */
filter: brightness(0) invert(1) drop-shadow(0 0 4px rgba(255, 255, 255, 0.8));
}
/* Overlay Camera Icon */
@ -1472,12 +1506,12 @@ $gold: #c5a059;
/* 4. Game Table Area (New Flex Item) */
.game-area-block {
width: 100%;
height: 200px; /* Fixed height for table area */
height: 172px; /* 缩小28px给问路条 */
flex-shrink: 0;
position: relative;
background: transparent;
z-index: 10;
overflow: hidden;
overflow: visible;
/* NN/TC mode - same as other games */
&.nn-mode {
@ -1521,10 +1555,10 @@ $gold: #c5a059;
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 {
width: 100%;
height: 40px; /* 减小高度 */
height: 120px; /* 2行布局上行庄家+闲一,下行闲二+闲三 */
flex-shrink: 0;
position: relative;
z-index: 20;
@ -1533,45 +1567,49 @@ $gold: #c5a059;
overflow: hidden;
::v-deep .nn-compact {
/* Override default poker-box styles for compact mode */
.poker-box.nn {
position: relative !important;
height: 100% !important;
width: 100% !important;
display: flex !important;
flex-direction: row !important;
align-items: center !important;
justify-content: space-around !important;
padding: 2px 4px !important;
flex-wrap: wrap !important;
padding: 4px !important;
box-sizing: border-box !important;
background: transparent !important;
.list {
flex: 1 !important;
height: 100% !important;
width: 50% !important;
height: 50% !important;
flex: none !important;
min-width: 0 !important;
padding: 0 2px !important;
border-left: 1px solid #444 !important;
padding: 2px 6px !important;
border-bottom: 1px solid #333 !important;
border-left: none !important;
display: flex !important;
flex-direction: row !important;
align-items: center !important;
justify-content: center !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 {
position: relative !important;
display: block !important;
font-size: 8px !important;
padding: 2px 3px !important;
font-size: 11px !important;
padding: 2px 5px !important;
border-radius: 2px !important;
white-space: nowrap !important;
margin-right: 2px !important;
margin-right: 4px !important;
flex-shrink: 0 !important;
/* 确保颜色样式正确应用 */
&.red {
background: #ff494b !important;
color: #fff !important;
@ -1587,10 +1625,10 @@ $gold: #c5a059;
width: auto !important;
left: 50% !important;
top: auto !important;
bottom: 2px !important;
bottom: 1px !important;
transform: translateX(-50%) !important;
font-size: 10px !important;
padding: 1px 4px !important;
font-size: 11px !important;
padding: 1px 6px !important;
margin: 0 !important;
background: rgba(0, 0, 0, 0.7) !important;
border-radius: 2px !important;
@ -1598,9 +1636,9 @@ $gold: #c5a059;
}
.item {
width: 16px !important;
height: 22px !important;
margin: 0 -3px !important;
width: 30px !important;
height: 42px !important;
margin: 0 -2px !important;
margin-top: 0 !important;
padding: 0 !important;
@ -1706,7 +1744,7 @@ $gold: #c5a059;
/* NN/TC mode - larger roadmap */
&.nn-mode {
height: 130px;
height: 180px;
}
/* Deep overrides to ensure standard layout and white background support */
@ -1733,6 +1771,72 @@ $gold: #c5a059;
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>