GamePortrait/node_modules/.cache/babel-loader/5252f676aa765e02ef4d9d38cfcde621af221e6e20e5430bf0d6136bcf0504e3.json

1 line
53 KiB
JSON

{"ast":null,"code":"import \"core-js/modules/es.array.push.js\";\nimport { baccaratData, nnData, toningData, diceData, rouletteData } from \"@/utils/common\";\nimport { ref, computed, reactive, watch, onUnmounted } from \"vue\";\nimport { useStore } from \"vuex\";\nimport { useRouter, useRoute } from \"vue-router\";\nimport TableBaccarat from \"./TableBaccarat.vue\";\nimport TableLonghu from \"./TableLonghu.vue\";\nimport TableBullbull from \"./TableBullbull.vue\";\nimport TableToning from \"./TableToning.vue\";\nimport TableDice from \"./TableDice.vue\";\nimport TableRouletteFrench from \"./TableRouletteFrench.vue\";\nimport TableRouletteEuropean from \"./TableRouletteEuropean.vue\";\nimport { showToast } from \"vant\";\nimport { audioMp3 } from \"@/assets/js/sound.js\";\nexport default {\n name: \"PlayTable\",\n components: {\n TableBaccarat,\n TableLonghu,\n TableBullbull,\n TableToning,\n TableDice,\n TableRouletteFrench,\n TableRouletteEuropean\n },\n props: {\n game_id: {\n type: [String, Number],\n default: 1\n },\n table_id: {\n type: [String, Number],\n default: null\n },\n number_tab_id: {\n type: [String, Number],\n default: null\n },\n sendMode: {\n type: String,\n default: \"\"\n },\n is_scavenging: {\n type: [String, Number],\n default: 0\n },\n winArray: {\n type: Array,\n default: () => []\n },\n bet_amount_msg: {\n type: Object,\n default: () => ({\n // 百家乐&龙虎\n ...baccaratData.amount,\n // 牛牛\n ...nnData.amount,\n // 色碟\n ...toningData.amount,\n // 骰宝\n ...diceData.amount,\n // 轮盘\n ...rouletteData.amount\n })\n },\n can_bet_big_small: {\n type: [String, Number],\n default: 1\n },\n can_bet_luck_six: {\n type: [String, Number],\n default: 1\n },\n limit_money: {\n type: [String, Number],\n default: null\n },\n limit_money_pair: {\n type: [String, Number],\n default: null\n },\n limit_money_tie: {\n type: [String, Number],\n default: null\n },\n tableData: {\n type: [Object],\n default: () => {}\n }\n },\n setup(props) {\n let virtuallyTimer = null; //虚假下注定循环时器\n const store = useStore();\n const route = useRoute();\n const router = useRouter();\n const touch = ref(null);\n const openGameTimes = ref(0);\n const Type = computed(() => store.state.config.$Type);\n const Lang = computed(() => store.state.config.$lang);\n const online = computed(() => store.state.config.online);\n const betInfo = computed(() => store.state.socket.betInfo);\n const chooseChip = computed(() => store.state.app.chooseChip);\n const chipArry = computed(() => store.state.config.chipArry);\n const userInfo = computed(() => store.state.app.userInfo);\n const showOtherChip = computed(() => store.state.config.showOtherChip);\n const baccarat_type = computed(() => store.state.config.baccaratType);\n const rouletteType = computed(() => store.state.config.roulette_type);\n const breakOff = data => {\n let new_data;\n try {\n new_data = JSON.parse(JSON.stringify(data));\n } catch (err) {\n new_data = data;\n console.log(err);\n }\n return new_data;\n };\n const downChip = reactive({\n // 百家乐&龙虎\n ...breakOff(baccaratData.amount),\n // 牛牛\n ...breakOff(nnData.amount),\n // 色碟\n ...breakOff(toningData.amount),\n // 骰宝\n ...breakOff(diceData.amount),\n // 轮盘\n ...breakOff(rouletteData.amount)\n });\n const sendChip = reactive({\n // 百家乐&龙虎\n ...breakOff(baccaratData.amount),\n // 牛牛\n ...breakOff(nnData.amount),\n // 色碟\n ...breakOff(toningData.amount),\n // 骰宝\n ...breakOff(diceData.amount),\n // 轮盘\n ...breakOff(rouletteData.amount)\n });\n const chipArray = reactive({\n // 百家乐&龙虎\n ...breakOff(baccaratData.array),\n // 牛牛\n ...breakOff(nnData.array),\n // 色碟\n ...breakOff(toningData.array),\n // 骰宝\n ...breakOff(diceData.array),\n // 轮盘\n ...breakOff(rouletteData.array)\n });\n // 随机数生成\n const getRndInteger = (min, max) => {\n return Math.floor(Math.random() * (max - min)) + min;\n };\n const downBet = (e, type) => {\n store.commit(\"app/standbyTime\");\n const {\n value: chip,\n key\n } = chooseChip.value;\n if (props.sendMode == \"startBetCountDown\") {\n if (type == \"luck_six_amount\" && props.can_bet_luck_six != 1) {\n showToast(Lang.value[Type.value].to_bet_fail_7);\n } else if ((type == \"big_amount\" || type == \"small_amount\") && props.can_bet_big_small != 1) {\n showToast(Lang.value[Type.value].to_bet_fail_8);\n } else {\n touch.value = type;\n let chipVal = chip;\n // 轮盘法式四大特殊下注\n if (type == \"theThird\") {\n chipVal = chipVal * 6;\n } else if (type == \"orphans\") {\n chipVal = chipVal * 5;\n } else if (type == \"neighborsOfZero\") {\n chipVal = chipVal * 9;\n } else if (type == \"zeroGame\") {\n chipVal = chipVal * 4;\n }\n sendChip[type] = chipVal + (sendChip[type] || 0);\n downChip[type] = chipVal + (downChip[type] || 0);\n chipArray[type].push({\n x: `calc(${getRndInteger(30, 90)}% - 0.69rem)`,\n y: `calc(${getRndInteger(50, 90)}% - 0.55rem)`,\n key: `chip_${key}`,\n type: \"self\",\n uid: userInfo.value.id,\n value: chipVal\n });\n audioMp3([\"push\"]).Play();\n }\n }\n };\n const nameArray = [\n // 百家乐&龙虎\n ...baccaratData.key,\n // 牛牛\n ...nnData.key,\n // 色碟\n ...toningData.key,\n // 骰宝\n ...diceData.key,\n // 轮盘\n ...rouletteData.key];\n\n // 取消下注\n const cancelChip = () => {\n nameArray.forEach(key => {\n chipArray[key] = chipArray[key].filter(v => v.type != \"self\");\n downChip[key] = 0;\n sendChip[key] = 0;\n const socketChipArray = chipArray[key].filter(v => v.type == \"socket\");\n if (socketChipArray.length > 0) {\n socketChipArray.forEach(v => {\n downChip[key] = downChip[key] + v.value;\n });\n }\n touch.value = null;\n });\n };\n\n // 确认下注\n const confirmChip = () => {\n if (props.sendMode == \"startBetCountDown\") {\n touch.value = null;\n const betName = nameArray.filter(key => downChip[key] > 0);\n const downBet = {};\n if (betName.length > 0) {\n betName.forEach(v => {\n downBet[v] = sendChip[v];\n });\n }\n const sendData = {\n mode: \"toBet\",\n table_id: props.table_id,\n number_tab_id: props.number_tab_id\n };\n // 是否免佣\n if (props.game_id == 1) {\n sendData.baccarat_type = baccarat_type.value;\n }\n // 骰宝\n if (props.game_id == 7) {\n sendData.amount = downBet;\n }\n // 轮盘\n if (props.game_id == 8) {\n sendData.roulette_type = rouletteType.value;\n sendData.amount = downBet;\n }\n store.dispatch(\"socket/sendMsg\", {\n ...sendData,\n ...downBet\n });\n nameArray.forEach(key => {\n sendChip[key] = 0;\n });\n } else {\n showToast(Lang.value[Type.value].msg_game_not_start);\n cancelChip();\n audioMp3([\"alert\"]).Play();\n }\n };\n // 清空下注区筹码\n const resetChip = state => {\n let isHave = false;\n nameArray.forEach(key => {\n if (downChip[key] > 0) {\n isHave = true;\n }\n chipArray[key] = [];\n downChip[key] = 0;\n sendChip[key] = 0;\n touch.value = null;\n });\n if (isHave && !state) {\n audioMp3([\"push\"]).Play();\n }\n };\n // 洗牌排序\n const disorder = arr => {\n let clonrArr = arr.concat(),\n len = clonrArr.length,\n index = null;\n for (let i = 0; i < len; i++) {\n index = Math.floor(Math.random() * clonrArr.length);\n [clonrArr[index], clonrArr[i]] = [clonrArr[i], clonrArr[index]];\n }\n // 返回结果\n return clonrArr;\n };\n // 虚拟下注\n const virtuallyDownBet = () => {\n let typeArray = [];\n if (props.game_id == 1) {\n typeArray = [\"banker_amount\", \"player_amount\", \"tie_amount\", \"banker_pair_amount\", \"player_pair_amount\"];\n if (props.can_bet_luck_six == 1) {\n typeArray = [...typeArray, \"luck_six_amount\"];\n }\n if (props.can_bet_big_small == 1) {\n typeArray = [...typeArray, \"big_amount\", \"small_amount\"];\n }\n } else if (props.game_id == 2) {\n typeArray = [\"banker_amount\", \"player_amount\", \"tie_amount\"];\n } else if (props.game_id == 4 || props.game_id == 5) {\n typeArray = [...nnData.key];\n } else if (props.game_id == 6) {\n typeArray = [...toningData.key];\n } else if (props.game_id == 7) {\n typeArray = [...diceData.key];\n } else if (props.game_id == 8) {\n typeArray = [...rouletteData.key];\n }\n const cut = getRndInteger(1, 9);\n const virtuallyChipArry = disorder(chipArry.value.slice(0, cut));\n typeArray = disorder(typeArray);\n const people = getRndInteger(1, 8);\n // 限红限制\n // limit_money: \"10-10000\"\n // limit_money_pair: \"20-10000\"\n // limit_money_tie: \"20-10000\"\n let normalLimit = 10000,\n // pairLimit = 10000,\n tieLimit = 10000;\n try {\n if (props.limit_money) {\n normalLimit = props.limit_money.split(\"-\")[1];\n }\n if (props.limit_money_tie) {\n tieLimit = props.limit_money_tie.split(\"-\")[1];\n }\n // if (props.limit_money_pair) {\n // pairLimit = props.limit_money_pair.split(\"-\")[1]\n // }\n } catch (err) {\n console.log(err);\n }\n for (let i = people; i--; i > 0) {\n let {\n value: chip,\n key\n } = virtuallyChipArry[getRndInteger(0, virtuallyChipArry.length - 1)];\n const type = typeArray[getRndInteger(0, typeArray.length)];\n if ([\"banker_pair_amount\", \"player_pair_amount\"].includes(type)) {\n // 对子限红\n if (chip > tieLimit * 0.5) {\n chip = chipArry.value[0].chip;\n key = chipArry.value[0].key;\n }\n } else if ([\"tie_amount\"].includes(type)) {\n // 和限红\n if (chip > tieLimit * 0.5) {\n chip = chipArry.value[0].chip;\n key = chipArry.value[0].key;\n }\n } else if ([\"big_amount\", \"small_amount\", \"luck_six_amount\"].includes(type)) {\n if (chip > normalLimit * 0.3) {\n chip = chipArry.value[0].chip;\n key = chipArry.value[0].key;\n }\n } else {\n // 其他限红\n if (chip > normalLimit * 0.5) {\n chip = chipArry.value[0].chip;\n key = chipArry.value[0].key;\n }\n }\n\n // console.log(type, chip, props)\n chipArray[type].push({\n x: `calc(${getRndInteger(30, 90)}% - 0.69rem)`,\n y: `calc(${getRndInteger(50, 90)}% - 0.55rem)`,\n key: `chip_${key}`,\n type: \"virtually\",\n uid: 0,\n value: chip\n });\n const virtuallyData = {\n table_id: props.table_id,\n sendMode: \"toBet\",\n betAmountMsg: {\n [type]: chip\n }\n };\n store.dispatch(\"socket/updateVirtually\", virtuallyData);\n }\n };\n // 离开销毁\n onUnmounted(() => {\n // console.log(\"离开页面\", virtuallyTimer)\n store.commit(\"socket/updateBetInfo\", []);\n clearInterval(virtuallyTimer);\n virtuallyTimer = null;\n nameArray.forEach(key => {\n downChip[key] = 0;\n });\n });\n // 监听路由切换\n watch(() => [route.query], () => {\n openGameTimes.value = 0;\n resetChip();\n clearInterval(virtuallyTimer);\n virtuallyTimer = null;\n }, {\n immediate: true,\n deep: true\n });\n // 过滤虚拟下注筹码\n watch(() => [showOtherChip.value], ([val]) => {\n if (val) {\n nameArray.forEach(key => {\n chipArray[key] = chipArray[key].filter(v => v.type != \"virtually\");\n downChip[key] = 0;\n sendChip[key] = 0;\n const socketChipArray = chipArray[key].filter(v => v.type == \"socket\");\n if (socketChipArray.length > 0) {\n socketChipArray.forEach(v => {\n downChip[key] = downChip[key] + v.value;\n });\n }\n });\n }\n }, {\n immediate: true,\n deep: true\n });\n watch(() => [props.sendMode], ([mode]) => {\n if (mode == \"startBetCountDown\") {\n if (showOtherChip.value) {\n if (virtuallyTimer == null) {\n virtuallyTimer = setInterval(() => {\n virtuallyDownBet();\n }, 1000);\n }\n } else {\n clearInterval(virtuallyTimer);\n }\n } else if (mode == \"toBet\") {\n openGameTimes.value = 0;\n nameArray.forEach(key => {\n chipArray[key].forEach(v => {\n if (v.type == \"self\") {\n v.type = \"socket\";\n }\n });\n });\n } else if (mode == \"endBet\") {\n cancelChip();\n clearInterval(virtuallyTimer);\n virtuallyTimer = null;\n } else if (mode == \"startBet\") {\n const outRoomTimes = store.state.config.outRoomTimes;\n // 记录开局次数 操过N次不下注退出房间\n if (openGameTimes.value >= outRoomTimes) {\n router.replace({\n name: store.state.app.routerStack\n });\n } else {\n openGameTimes.value += 1;\n }\n }\n });\n watch(() => [online.value, betInfo.value], ([onlineValue, betInfoValue]) => {\n if (onlineValue) {\n if (betInfoValue.length > 0) {\n // console.log(betInfoValue)\n betInfoValue.forEach(v => {\n if (v.table_id == props.table_id) {\n nameArray.forEach(key => {\n if (v.game_id == 6) {\n downChip[key] = parseInt(v.toning_amount[key] || 0);\n } else if (v.game_id == 7) {\n downChip[key] = parseInt(v.dice_amount[key] || 0);\n } else if (v.game_id == 8) {\n store.commit(\"config/rouletteLockTable\", true);\n store.commit(\"config/switchRouletteType\", v.roulette_type);\n downChip[key] = parseInt(v.roulette_amount[key] || 0);\n } else {\n downChip[key] = parseInt(v[key] || 0);\n }\n });\n }\n });\n }\n }\n }, {\n immediate: true,\n deep: true\n });\n return {\n Type,\n Lang,\n downChip,\n touch,\n chipArray,\n baccarat_type,\n rouletteType,\n downBet,\n resetChip,\n cancelChip,\n confirmChip\n };\n }\n};","map":{"version":3,"names":["baccaratData","nnData","toningData","diceData","rouletteData","ref","computed","reactive","watch","onUnmounted","useStore","useRouter","useRoute","TableBaccarat","TableLonghu","TableBullbull","TableToning","TableDice","TableRouletteFrench","TableRouletteEuropean","showToast","audioMp3","name","components","props","game_id","type","String","Number","default","table_id","number_tab_id","sendMode","is_scavenging","winArray","Array","bet_amount_msg","Object","amount","can_bet_big_small","can_bet_luck_six","limit_money","limit_money_pair","limit_money_tie","tableData","setup","virtuallyTimer","store","route","router","touch","openGameTimes","Type","state","config","$Type","Lang","$lang","online","betInfo","socket","chooseChip","app","chipArry","userInfo","showOtherChip","baccarat_type","baccaratType","rouletteType","roulette_type","breakOff","data","new_data","JSON","parse","stringify","err","console","log","downChip","sendChip","chipArray","array","getRndInteger","min","max","Math","floor","random","downBet","e","commit","value","chip","key","to_bet_fail_7","to_bet_fail_8","chipVal","push","x","y","uid","id","Play","nameArray","cancelChip","forEach","filter","v","socketChipArray","length","confirmChip","betName","sendData","mode","dispatch","msg_game_not_start","resetChip","isHave","disorder","arr","clonrArr","concat","len","index","i","virtuallyDownBet","typeArray","cut","virtuallyChipArry","slice","people","normalLimit","tieLimit","split","includes","virtuallyData","betAmountMsg","clearInterval","query","immediate","deep","val","setInterval","outRoomTimes","replace","routerStack","onlineValue","betInfoValue","parseInt","toning_amount","dice_amount","roulette_amount"],"sources":["/Users/li/Desktop/work/work2/OG/GamePortrait/src/components/PlayTable/Index.vue"],"sourcesContent":["<template>\n <div\n class=\"playtable\"\n :class=\"{\n unclick: [\n 'endBet',\n 'startRob',\n 'startRobCountDown',\n 'toRob',\n 'sendScanResult'\n ].includes(sendMode)\n }\"\n >\n <!-- 百家乐 -->\n <TableBaccarat\n v-if=\"game_id == 1\"\n class=\"view\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :baccarat_type=\"baccarat_type\"\n :can_bet_big_small=\"can_bet_big_small\"\n :can_bet_luck_six=\"can_bet_luck_six\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n <!-- 龙虎 -->\n <TableLonghu\n v-if=\"game_id == 2\"\n class=\"view\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n <!-- 牛牛 -->\n <TableBullbull\n v-if=\"game_id == 4 || game_id == 5\"\n class=\"view\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :game_id=\"game_id\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n <!-- 色碟 -->\n <TableToning\n v-if=\"game_id == 6\"\n class=\"view\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n <!-- 骰宝 -->\n <TableDice\n v-if=\"game_id == 7\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n <!-- 轮盘 -->\n\n <template v-if=\"game_id == 8\">\n <Transition\n name=\"custom-classes\"\n enter-active-class=\"animate__animated animate__faster animate__fadeInLeft\"\n leave-active-class=\"animate__animated animate__faster animate__fadeOutLeft\"\n >\n <TableRouletteFrench\n v-if=\"rouletteType == 'french'\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n </Transition>\n <Transition\n name=\"custom-classes\"\n enter-active-class=\"animate__animated animate__faster animate__fadeInRight\"\n leave-active-class=\"animate__animated animate__faster animate__fadeOutRight\"\n >\n <TableRouletteEuropean\n v-if=\"rouletteType == 'european'\"\n :bet_amount_msg=\"bet_amount_msg\"\n :winArray=\"winArray\"\n :downChip=\"downChip\"\n :chipArray=\"chipArray\"\n :touch=\"touch\"\n :tableData=\"tableData\"\n @downBet=\"downBet\"\n @confirmChip=\"confirmChip\"\n @cancelChip=\"cancelChip\"\n />\n </Transition>\n </template>\n </div>\n</template>\n\n<script>\nimport {\n baccaratData,\n nnData,\n toningData,\n diceData,\n rouletteData\n} from \"@/utils/common\"\nimport { ref, computed, reactive, watch, onUnmounted } from \"vue\"\nimport { useStore } from \"vuex\"\nimport { useRouter, useRoute } from \"vue-router\"\nimport TableBaccarat from \"./TableBaccarat.vue\"\nimport TableLonghu from \"./TableLonghu.vue\"\nimport TableBullbull from \"./TableBullbull.vue\"\nimport TableToning from \"./TableToning.vue\"\nimport TableDice from \"./TableDice.vue\"\nimport TableRouletteFrench from \"./TableRouletteFrench.vue\"\nimport TableRouletteEuropean from \"./TableRouletteEuropean.vue\"\nimport { showToast } from \"vant\"\nimport { audioMp3 } from \"@/assets/js/sound.js\"\nexport default {\n name: \"PlayTable\",\n components: {\n TableBaccarat,\n TableLonghu,\n TableBullbull,\n TableToning,\n TableDice,\n TableRouletteFrench,\n TableRouletteEuropean\n },\n props: {\n game_id: {\n type: [String, Number],\n default: 1\n },\n table_id: {\n type: [String, Number],\n default: null\n },\n number_tab_id: {\n type: [String, Number],\n default: null\n },\n sendMode: {\n type: String,\n default: \"\"\n },\n is_scavenging: {\n type: [String, Number],\n default: 0\n },\n winArray: {\n type: Array,\n default: () => []\n },\n bet_amount_msg: {\n type: Object,\n default: () => ({\n // 百家乐&龙虎\n ...baccaratData.amount,\n // 牛牛\n ...nnData.amount,\n // 色碟\n ...toningData.amount,\n // 骰宝\n ...diceData.amount,\n // 轮盘\n ...rouletteData.amount\n })\n },\n can_bet_big_small: {\n type: [String, Number],\n default: 1\n },\n can_bet_luck_six: {\n type: [String, Number],\n default: 1\n },\n limit_money: {\n type: [String, Number],\n default: null\n },\n limit_money_pair: {\n type: [String, Number],\n default: null\n },\n limit_money_tie: {\n type: [String, Number],\n default: null\n },\n tableData: {\n type: [Object],\n default: () => {}\n }\n },\n setup(props) {\n let virtuallyTimer = null //虚假下注定循环时器\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n const touch = ref(null)\n const openGameTimes = ref(0)\n const Type = computed(() => store.state.config.$Type)\n const Lang = computed(() => store.state.config.$lang)\n const online = computed(() => store.state.config.online)\n const betInfo = computed(() => store.state.socket.betInfo)\n const chooseChip = computed(() => store.state.app.chooseChip)\n const chipArry = computed(() => store.state.config.chipArry)\n const userInfo = computed(() => store.state.app.userInfo)\n const showOtherChip = computed(() => store.state.config.showOtherChip)\n const baccarat_type = computed(() => store.state.config.baccaratType)\n const rouletteType = computed(() => store.state.config.roulette_type)\n const breakOff = (data) => {\n let new_data\n try {\n new_data = JSON.parse(JSON.stringify(data))\n } catch (err) {\n new_data = data\n console.log(err)\n }\n return new_data\n }\n const downChip = reactive({\n // 百家乐&龙虎\n ...breakOff(baccaratData.amount),\n // 牛牛\n ...breakOff(nnData.amount),\n // 色碟\n ...breakOff(toningData.amount),\n // 骰宝\n ...breakOff(diceData.amount),\n // 轮盘\n ...breakOff(rouletteData.amount)\n })\n const sendChip = reactive({\n // 百家乐&龙虎\n ...breakOff(baccaratData.amount),\n // 牛牛\n ...breakOff(nnData.amount),\n // 色碟\n ...breakOff(toningData.amount),\n // 骰宝\n ...breakOff(diceData.amount),\n // 轮盘\n ...breakOff(rouletteData.amount)\n })\n const chipArray = reactive({\n // 百家乐&龙虎\n ...breakOff(baccaratData.array),\n // 牛牛\n ...breakOff(nnData.array),\n // 色碟\n ...breakOff(toningData.array),\n // 骰宝\n ...breakOff(diceData.array),\n // 轮盘\n ...breakOff(rouletteData.array)\n })\n // 随机数生成\n const getRndInteger = (min, max) => {\n return Math.floor(Math.random() * (max - min)) + min\n }\n const downBet = (e, type) => {\n store.commit(\"app/standbyTime\")\n const { value: chip, key } = chooseChip.value\n if (props.sendMode == \"startBetCountDown\") {\n if (type == \"luck_six_amount\" && props.can_bet_luck_six != 1) {\n showToast(Lang.value[Type.value].to_bet_fail_7)\n } else if (\n (type == \"big_amount\" || type == \"small_amount\") &&\n props.can_bet_big_small != 1\n ) {\n showToast(Lang.value[Type.value].to_bet_fail_8)\n } else {\n touch.value = type\n let chipVal = chip\n // 轮盘法式四大特殊下注\n if (type == \"theThird\") {\n chipVal = chipVal * 6\n } else if (type == \"orphans\") {\n chipVal = chipVal * 5\n } else if (type == \"neighborsOfZero\") {\n chipVal = chipVal * 9\n } else if (type == \"zeroGame\") {\n chipVal = chipVal * 4\n }\n sendChip[type] = chipVal + (sendChip[type] || 0)\n downChip[type] = chipVal + (downChip[type] || 0)\n chipArray[type].push({\n x: `calc(${getRndInteger(30, 90)}% - 0.69rem)`,\n y: `calc(${getRndInteger(50, 90)}% - 0.55rem)`,\n key: `chip_${key}`,\n type: \"self\",\n uid: userInfo.value.id,\n value: chipVal\n })\n audioMp3([\"push\"]).Play()\n }\n }\n }\n const nameArray = [\n // 百家乐&龙虎\n ...baccaratData.key,\n // 牛牛\n ...nnData.key,\n // 色碟\n ...toningData.key,\n // 骰宝\n ...diceData.key,\n // 轮盘\n ...rouletteData.key\n ]\n\n // 取消下注\n const cancelChip = () => {\n nameArray.forEach((key) => {\n chipArray[key] = chipArray[key].filter((v) => v.type != \"self\")\n downChip[key] = 0\n sendChip[key] = 0\n const socketChipArray = chipArray[key].filter((v) => v.type == \"socket\")\n if (socketChipArray.length > 0) {\n socketChipArray.forEach((v) => {\n downChip[key] = downChip[key] + v.value\n })\n }\n touch.value = null\n })\n }\n\n // 确认下注\n const confirmChip = () => {\n if (props.sendMode == \"startBetCountDown\") {\n touch.value = null\n const betName = nameArray.filter((key) => downChip[key] > 0)\n const downBet = {}\n if (betName.length > 0) {\n betName.forEach((v) => {\n downBet[v] = sendChip[v]\n })\n }\n const sendData = {\n mode: \"toBet\",\n table_id: props.table_id,\n number_tab_id: props.number_tab_id\n }\n // 是否免佣\n if (props.game_id == 1) {\n sendData.baccarat_type = baccarat_type.value\n }\n // 骰宝\n if (props.game_id == 7) {\n sendData.amount = downBet\n }\n // 轮盘\n if (props.game_id == 8) {\n sendData.roulette_type = rouletteType.value\n sendData.amount = downBet\n }\n store.dispatch(\"socket/sendMsg\", {\n ...sendData,\n ...downBet\n })\n nameArray.forEach((key) => {\n sendChip[key] = 0\n })\n } else {\n showToast(Lang.value[Type.value].msg_game_not_start)\n cancelChip()\n audioMp3([\"alert\"]).Play()\n }\n }\n // 清空下注区筹码\n const resetChip = (state) => {\n let isHave = false\n nameArray.forEach((key) => {\n if (downChip[key] > 0) {\n isHave = true\n }\n chipArray[key] = []\n downChip[key] = 0\n sendChip[key] = 0\n touch.value = null\n })\n if (isHave && !state) {\n audioMp3([\"push\"]).Play()\n }\n }\n // 洗牌排序\n const disorder = (arr) => {\n let clonrArr = arr.concat(),\n len = clonrArr.length,\n index = null\n for (let i = 0; i < len; i++) {\n index = Math.floor(Math.random() * clonrArr.length)\n ;[clonrArr[index], clonrArr[i]] = [clonrArr[i], clonrArr[index]]\n }\n // 返回结果\n return clonrArr\n }\n // 虚拟下注\n const virtuallyDownBet = () => {\n let typeArray = []\n if (props.game_id == 1) {\n typeArray = [\n \"banker_amount\",\n \"player_amount\",\n \"tie_amount\",\n \"banker_pair_amount\",\n \"player_pair_amount\"\n ]\n if (props.can_bet_luck_six == 1) {\n typeArray = [...typeArray, \"luck_six_amount\"]\n }\n if (props.can_bet_big_small == 1) {\n typeArray = [...typeArray, \"big_amount\", \"small_amount\"]\n }\n } else if (props.game_id == 2) {\n typeArray = [\"banker_amount\", \"player_amount\", \"tie_amount\"]\n } else if (props.game_id == 4 || props.game_id == 5) {\n typeArray = [...nnData.key]\n } else if (props.game_id == 6) {\n typeArray = [...toningData.key]\n } else if (props.game_id == 7) {\n typeArray = [...diceData.key]\n } else if (props.game_id == 8) {\n typeArray = [...rouletteData.key]\n }\n const cut = getRndInteger(1, 9)\n const virtuallyChipArry = disorder(chipArry.value.slice(0, cut))\n typeArray = disorder(typeArray)\n const people = getRndInteger(1, 8)\n // 限红限制\n // limit_money: \"10-10000\"\n // limit_money_pair: \"20-10000\"\n // limit_money_tie: \"20-10000\"\n let normalLimit = 10000,\n // pairLimit = 10000,\n tieLimit = 10000\n try {\n if (props.limit_money) {\n normalLimit = props.limit_money.split(\"-\")[1]\n }\n if (props.limit_money_tie) {\n tieLimit = props.limit_money_tie.split(\"-\")[1]\n }\n // if (props.limit_money_pair) {\n // pairLimit = props.limit_money_pair.split(\"-\")[1]\n // }\n } catch (err) {\n console.log(err)\n }\n for (let i = people; i--; i > 0) {\n let { value: chip, key } =\n virtuallyChipArry[getRndInteger(0, virtuallyChipArry.length - 1)]\n const type = typeArray[getRndInteger(0, typeArray.length)]\n\n if ([\"banker_pair_amount\", \"player_pair_amount\"].includes(type)) {\n // 对子限红\n if (chip > tieLimit * 0.5) {\n chip = chipArry.value[0].chip\n key = chipArry.value[0].key\n }\n } else if ([\"tie_amount\"].includes(type)) {\n // 和限红\n if (chip > tieLimit * 0.5) {\n chip = chipArry.value[0].chip\n key = chipArry.value[0].key\n }\n } else if (\n [\"big_amount\", \"small_amount\", \"luck_six_amount\"].includes(type)\n ) {\n if (chip > normalLimit * 0.3) {\n chip = chipArry.value[0].chip\n key = chipArry.value[0].key\n }\n } else {\n // 其他限红\n if (chip > normalLimit * 0.5) {\n chip = chipArry.value[0].chip\n key = chipArry.value[0].key\n }\n }\n\n // console.log(type, chip, props)\n chipArray[type].push({\n x: `calc(${getRndInteger(30, 90)}% - 0.69rem)`,\n y: `calc(${getRndInteger(50, 90)}% - 0.55rem)`,\n key: `chip_${key}`,\n type: \"virtually\",\n uid: 0,\n value: chip\n })\n const virtuallyData = {\n table_id: props.table_id,\n sendMode: \"toBet\",\n betAmountMsg: { [type]: chip }\n }\n store.dispatch(\"socket/updateVirtually\", virtuallyData)\n }\n }\n // 离开销毁\n onUnmounted(() => {\n // console.log(\"离开页面\", virtuallyTimer)\n store.commit(\"socket/updateBetInfo\", [])\n clearInterval(virtuallyTimer)\n virtuallyTimer = null\n nameArray.forEach((key) => {\n downChip[key] = 0\n })\n })\n // 监听路由切换\n watch(\n () => [route.query],\n () => {\n openGameTimes.value = 0\n resetChip()\n clearInterval(virtuallyTimer)\n virtuallyTimer = null\n },\n { immediate: true, deep: true }\n )\n // 过滤虚拟下注筹码\n watch(\n () => [showOtherChip.value],\n ([val]) => {\n if (val) {\n nameArray.forEach((key) => {\n chipArray[key] = chipArray[key].filter((v) => v.type != \"virtually\")\n downChip[key] = 0\n sendChip[key] = 0\n const socketChipArray = chipArray[key].filter(\n (v) => v.type == \"socket\"\n )\n if (socketChipArray.length > 0) {\n socketChipArray.forEach((v) => {\n downChip[key] = downChip[key] + v.value\n })\n }\n })\n }\n },\n { immediate: true, deep: true }\n )\n watch(\n () => [props.sendMode],\n ([mode]) => {\n if (mode == \"startBetCountDown\") {\n if (showOtherChip.value) {\n if (virtuallyTimer == null) {\n virtuallyTimer = setInterval(() => {\n virtuallyDownBet()\n }, 1000)\n }\n } else {\n clearInterval(virtuallyTimer)\n }\n } else if (mode == \"toBet\") {\n openGameTimes.value = 0\n nameArray.forEach((key) => {\n chipArray[key].forEach((v) => {\n if (v.type == \"self\") {\n v.type = \"socket\"\n }\n })\n })\n } else if (mode == \"endBet\") {\n cancelChip()\n clearInterval(virtuallyTimer)\n virtuallyTimer = null\n } else if (mode == \"startBet\") {\n const outRoomTimes = store.state.config.outRoomTimes\n // 记录开局次数 操过N次不下注退出房间\n if (openGameTimes.value >= outRoomTimes) {\n router.replace({ name: store.state.app.routerStack })\n } else {\n openGameTimes.value += 1\n }\n }\n }\n )\n watch(\n () => [online.value, betInfo.value],\n ([onlineValue, betInfoValue]) => {\n if (onlineValue) {\n if (betInfoValue.length > 0) {\n // console.log(betInfoValue)\n betInfoValue.forEach((v) => {\n if (v.table_id == props.table_id) {\n nameArray.forEach((key) => {\n if (v.game_id == 6) {\n downChip[key] = parseInt(v.toning_amount[key] || 0)\n } else if (v.game_id == 7) {\n downChip[key] = parseInt(v.dice_amount[key] || 0)\n } else if (v.game_id == 8) {\n store.commit(\"config/rouletteLockTable\", true)\n store.commit(\"config/switchRouletteType\", v.roulette_type)\n downChip[key] = parseInt(v.roulette_amount[key] || 0)\n } else {\n downChip[key] = parseInt(v[key] || 0)\n }\n })\n }\n })\n }\n }\n },\n { immediate: true, deep: true }\n )\n return {\n Type,\n Lang,\n downChip,\n touch,\n chipArray,\n baccarat_type,\n rouletteType,\n downBet,\n resetChip,\n cancelChip,\n confirmChip\n }\n }\n}\n</script>\n<style lang=\"scss\" scoped>\n/* 深色豪华主题配色 */\n$dark-bg: #0d0d0d;\n$card-bg: #1e1e1e;\n$border-color: #333;\n$gold: #c5a059;\n\n.playtable {\n width: 100%;\n height: 100%;\n position: relative;\n z-index: 8;\n .view {\n // width: 17.35rem;\n height: 2.7rem;\n position: absolute;\n // bottom: 0.25rem;\n // left: 50%;\n // margin-left: -8.675rem;\n left: 3rem;\n right: 3rem;\n bottom: 0.25rem;\n\n border-radius: 10px;\n transform: perspective(400px) rotateX(24deg);\n border: 1px solid $border-color;\n box-sizing: border-box;\n background: rgba(30, 30, 30, 0.95);\n }\n}\n.unclick {\n ::v-deep {\n .list .item .chip-view {\n background: rgba(98, 74, 4, 0.4);\n }\n .dice {\n .ratio {\n background: rgba(98, 74, 4, 0.4);\n }\n .fourth {\n background: rgba(98, 74, 4, 0.4);\n }\n .fifth .center .bottom {\n background: rgba(98, 74, 4, 0.4);\n }\n }\n .roulette {\n .french {\n .the_third,\n .orphans,\n .neighbors_of_zero,\n .zero_game {\n background: none !important;\n }\n }\n }\n }\n}\n::v-deep {\n .banker {\n color: #fe8365;\n }\n .palyer {\n color: #12a2e6;\n }\n .bpair {\n color: #fe8365;\n }\n .ppair {\n color: #12a2e6;\n }\n .tie {\n color: #75e7af;\n }\n .min {\n border-top-left-radius: 10px;\n color: #f3c866;\n }\n .max {\n border-top-right-radius: 10px;\n color: #f3c866;\n }\n}\n</style>\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}