Compare commits
2
Commits
bc6561acf9
...
cd64a1c073
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd64a1c073 | ||
|
|
1fe554f907 |
+13
@@ -1,12 +1,17 @@
|
||||
<template>
|
||||
<div id="app" @click="getLastTime">
|
||||
<router-view/>
|
||||
<CustomerServiceWindow ref="csWindow" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { mapState } from 'vuex'
|
||||
import CustomerServiceWindow from './components/updateService/CustomerServiceWindow.vue'
|
||||
export default {
|
||||
name: 'App',
|
||||
components: {
|
||||
CustomerServiceWindow
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
routeName: null,
|
||||
@@ -18,6 +23,14 @@ export default {
|
||||
|
||||
mounted: function() {
|
||||
var _this=this;
|
||||
|
||||
// 监听打开客服窗口的全局事件
|
||||
this.$root.$on('openCustomerService', () => {
|
||||
if (this.$refs.csWindow) {
|
||||
this.$refs.csWindow.open();
|
||||
}
|
||||
});
|
||||
|
||||
clearInterval(window['checkLoginTime']);
|
||||
setTimeout(function(){
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 82 KiB |
@@ -1,9 +1,20 @@
|
||||
<template>
|
||||
<div class="recharge2" >
|
||||
<div class="btn off-btn" @click="offPop"></div>
|
||||
<div class="btn pay2-btn" @click="isShowPop('recharge')">{{Language.recharge_offline2}} 》</div>
|
||||
<div class="btn pay2-btn" v-if="userInfo.area_id != 3" @click="isShowPop('recharge')">{{Language.recharge_offline2}} 》</div>
|
||||
<div class="title">{{Language.recharge_online2}}</div>
|
||||
<iframe class="page" :src="webconfig.PayUrl+'?uid='+userInfo.uid+'&api_token='+userInfo.api_token"></iframe>
|
||||
<!-- 越南 AlinPay 在线充值 -->
|
||||
<div class="view" v-if="userInfo.area_id == 3">
|
||||
<div class="alin-form">
|
||||
<div class="alin-item">
|
||||
<label>{{Language.withdraw_page_withdrawal_amount || '充值金额'}}:</label>
|
||||
<input class="input" type="number" v-model="alinAmount" placeholder="Tối thiểu 1,000,000">
|
||||
</div>
|
||||
<button class="btn alin-submit" @click="submitAlin">{{Language.withdraw_page_confirm || '确认充值'}}</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 其他渠道 iframe -->
|
||||
<iframe v-else class="page" :src="webconfig.PayUrl+'?uid='+userInfo.uid+'&api_token='+userInfo.api_token"></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -14,6 +25,8 @@ import { mapState } from 'vuex'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
alinAmount: '',
|
||||
ApiUrl: JSON.parse(localStorage.getItem('ApiUrl'))
|
||||
}
|
||||
},
|
||||
|
||||
@@ -27,7 +40,39 @@ export default {
|
||||
isShowPop(type){
|
||||
this.$store.dispatch('updatemainPop',{type:type,ishow:true});
|
||||
},
|
||||
|
||||
submitAlin(){
|
||||
if(!this.alinAmount || this.alinAmount <= 0){
|
||||
this.$message({type:'warning', message:'Vui lòng nhập số tiền!'});
|
||||
return;
|
||||
}
|
||||
if(this.alinAmount < 1000000){
|
||||
this.$message({type:'warning', message:'Số tiền tối thiểu là 1,000,000'});
|
||||
return;
|
||||
}
|
||||
var encryptstring = encrypt(JSON.stringify({
|
||||
user_id: this.userInfo.uid,
|
||||
price: this.alinAmount,
|
||||
client: 1,
|
||||
username: this.userInfo.nickname,
|
||||
api_token: this.userInfo.api_token,
|
||||
})).toString();
|
||||
this.$axios.post(this.ApiUrl+'/alin_online_order', {encryptData:encryptstring}).then(
|
||||
response=>{
|
||||
if(response.data.Success==1){
|
||||
const data = JSON.parse(decrypt(response.data.Data));
|
||||
if(data.status == 1 && data.url){
|
||||
window.open(data.url, '_blank');
|
||||
} else {
|
||||
this.$message({type:'error', message: data.message || '充值失败'});
|
||||
}
|
||||
} else {
|
||||
this.$message({type:'error', message: response.data.Msg || '充值失败'});
|
||||
}
|
||||
}).catch(error=>{
|
||||
console.log(error);
|
||||
this.$message({type:'error', message:'充值请求失败'});
|
||||
});
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
...mapState(['userInfo','webconfig','Language'])
|
||||
@@ -77,6 +122,44 @@ export default {
|
||||
width:100%;
|
||||
height: 250px;
|
||||
}
|
||||
.recharge2 .alin-form{
|
||||
padding: 30px 40px;
|
||||
}
|
||||
.recharge2 .alin-item{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.recharge2 .alin-item label{
|
||||
color: #ccc;
|
||||
font-size: 14px;
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.recharge2 .alin-item .input{
|
||||
width: 100%;
|
||||
height: 35px;
|
||||
background: rgba(0,0,0,0.5);
|
||||
border: 1px solid #907545;
|
||||
border-radius: 5px;
|
||||
color: #e5b932;
|
||||
padding: 0 10px;
|
||||
font-size: 14px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.recharge2 .alin-submit{
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
background: linear-gradient(to right, #e5b932, #c5971e);
|
||||
border: none;
|
||||
border-radius: 5px;
|
||||
color: #161107;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.recharge2 .alin-submit:hover{
|
||||
opacity: 0.9;
|
||||
}
|
||||
.recharge2 .page{
|
||||
border: none;
|
||||
width:100%;
|
||||
|
||||
@@ -2,11 +2,22 @@
|
||||
<div class="updatepwd animated bounceInUp" >
|
||||
<div class="title"> {{Language.tip_service}} <button class="close-btn" @click="offPop()">◀ {{Language.close}}</button></div>
|
||||
<div class="lang-set-box">
|
||||
<span class="title">點擊以下圖片聯繫在線客服</span>
|
||||
<a :href="webconfig.customerLink+'&username='+userInfo.nickname+'&nickname='+userInfo.nickname" target="_blank">
|
||||
<img class="s-code" :src="webconfig.ServerQrcode||''"></a>
|
||||
<span class="title">在线客服</span>
|
||||
<div class="service-options">
|
||||
<button class="service-btn" @click="openChatWindow">
|
||||
<i class="icon">💬</i>
|
||||
<span>在线聊天</span>
|
||||
</button>
|
||||
<a v-if="webconfig.customerLink" :href="webconfig.customerLink+'&username='+userInfo.nickname+'&nickname='+userInfo.nickname" target="_blank" class="service-btn">
|
||||
<i class="icon">🔗</i>
|
||||
<span>外部客服</span>
|
||||
</a>
|
||||
</div>
|
||||
<div v-if="webconfig.ServerQrcode" class="qrcode-section">
|
||||
<span class="subtitle">扫码联系客服</span>
|
||||
<img class="s-code" :src="webconfig.ServerQrcode">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -28,6 +39,13 @@ export default {
|
||||
this.$store.dispatch('updatemainPop',{type:'',ishow:false});
|
||||
},
|
||||
|
||||
openChatWindow(){
|
||||
// 关闭当前弹窗
|
||||
this.offPop();
|
||||
// 通过全局事件打开客服窗口(App.vue中的组件)
|
||||
this.$root.$emit('openCustomerService');
|
||||
}
|
||||
|
||||
},
|
||||
computed: {
|
||||
...mapState(['webconfig','Language','userInfo'])
|
||||
@@ -41,8 +59,33 @@ export default {
|
||||
</script>
|
||||
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
||||
<style scoped>
|
||||
.s-code{ width: 100%;}
|
||||
.lang-set-box{padding: 10px; min-height: 100px; text-align: center; margin-top:-35px}
|
||||
.s-code{ width: 200px; margin-top: 10px;}
|
||||
.lang-set-box{padding: 20px; min-height: 100px; text-align: center; margin-top:-35px}
|
||||
.lang-set-box .title{display: block; font-size: 18px; font-weight: bold; color: #fff; margin-bottom: 20px;}
|
||||
.lang-set-box .subtitle{display: block; font-size: 14px; color: #d9ac6b; margin-top: 20px; margin-bottom: 10px;}
|
||||
|
||||
.service-options{display: flex; justify-content: center; gap: 20px; margin-bottom: 20px;}
|
||||
.service-btn{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 120px;
|
||||
height: 100px;
|
||||
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||
border: none;
|
||||
border-radius: 10px;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
transition: transform 0.2s;
|
||||
text-decoration: none;
|
||||
}
|
||||
.service-btn:hover{transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.3);}
|
||||
.service-btn .icon{font-size: 32px; margin-bottom: 8px;}
|
||||
.service-btn span{font-size: 14px; font-weight: bold;}
|
||||
|
||||
.qrcode-section{margin-top: 20px;}
|
||||
|
||||
.updatepwd .btn-item.lang-btn{background: #ccc;}
|
||||
.updatepwd .btn-item.lang-btn.active{ color: #0a4629;
|
||||
background-color: #00e45f;
|
||||
|
||||
@@ -35,14 +35,14 @@
|
||||
<label>{{Language.withdraw_page_bank_name}}:</label>
|
||||
<el-select class="input-box" v-model="recharge_bank" :placeholder="Language.withdraw_page_select_bank">
|
||||
<el-option
|
||||
v-for="item in bankData"
|
||||
v-for="item in (userInfo.area_id == 3 ? vnBankData : bankData)"
|
||||
:key="item.value"
|
||||
:label="item.text"
|
||||
:value="item.text">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="item" v-if="userInfo.area_id != 3">
|
||||
<label>{{Language.withdraw_page_subsidiary}}:</label>
|
||||
<input class="input" type="text" :placeholder="Language.withdraw_page_input" v-model="recharge_bank_branch">
|
||||
</div>
|
||||
@@ -77,7 +77,7 @@
|
||||
<div class="li">
|
||||
<div class="item">
|
||||
<label>{{Language.withdraw_page_withdrawal_amount}}:</label>
|
||||
<input class="input" type="text" v-model="recharge_money" :placeholder="Language.withdraw_page_input" >
|
||||
<input class="input" type="text" v-model="recharge_money" :placeholder="userInfo.area_id == 3 ? 'Tối thiểu 1,000,000 VND' : Language.withdraw_page_input" >
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -99,6 +99,7 @@ export default {
|
||||
return {
|
||||
isClickadd:false,
|
||||
bankData:bankData,
|
||||
vnBankData:[],
|
||||
recharge_name:'',//收款人名
|
||||
recharge_bank:'',//银行
|
||||
recharge_bank_branch:'',//支行
|
||||
@@ -138,6 +139,22 @@ export default {
|
||||
error=>{
|
||||
console.log(error)
|
||||
})
|
||||
// 越南用户加载银行列表
|
||||
if(userInfo.area_id == 3){
|
||||
var encryptBankReq = encrypt(JSON.stringify({
|
||||
user_id:userInfo.uid,
|
||||
api_token:userInfo.api_token,
|
||||
})).toString();
|
||||
this.$axios.post(this.ApiUrl+'/get_bank_list_vn',{encryptData:encryptBankReq}).then(
|
||||
response=>{
|
||||
if(response.data.Success==1){
|
||||
const data=JSON.parse(decrypt(response.data.Data));
|
||||
if(data.status == 1 && data.data){
|
||||
this.vnBankData = data.data.map(function(item){ return {value:item.code, text:item.name}; });
|
||||
}
|
||||
}
|
||||
}).catch(error=>{ console.log(error); })
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
payType(index){
|
||||
@@ -151,9 +168,39 @@ export default {
|
||||
},
|
||||
Submission(){
|
||||
var userInfo=this.userInfo;
|
||||
var isVN = userInfo.area_id == 3;
|
||||
|
||||
// 越南用户走 apply_withdraw_bank,字段不同
|
||||
if(isVN){
|
||||
if(this.recharge_name==''){
|
||||
this.$message({type: 'warning',message: '请填写持卡人名称!'});
|
||||
}else if(this.recharge_bank==''){
|
||||
this.$message({type: 'warning',message: '请选择银行!'});
|
||||
}else if(this.recharge_cardnumber==''){
|
||||
this.$message({type: 'warning',message: '请填写银行卡号!'});
|
||||
}else if(this.recharge_money==''){
|
||||
this.$message({type: 'warning',message: '请填写提现金额!'});
|
||||
}else if(Number(this.recharge_money) < 1000000){
|
||||
this.$message({type: 'warning',message: 'Số tiền rút tối thiểu là 1,000,000 VND'});
|
||||
}else if(this.recharge_money>this.userInfo.money){
|
||||
this.$message({type: 'warning',message: '您的余额没有那么多钱!'});
|
||||
}else{
|
||||
var encryptstring= encrypt(JSON.stringify({
|
||||
user_id:userInfo.uid,
|
||||
account_name:this.recharge_name,
|
||||
account_number:this.recharge_cardnumber,
|
||||
bank_code:this.recharge_bank,
|
||||
bank_name:this.recharge_bank,
|
||||
amount:this.recharge_money,
|
||||
api_token:userInfo.api_token,
|
||||
})).toString();
|
||||
this.postData(encryptstring);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if(this.collectBank==''){
|
||||
//填写提交
|
||||
// console.log('填写提交1')
|
||||
if(this.recharge_name==''){
|
||||
this.$message({type: 'warning',message: '请填写持卡人名称!'});
|
||||
}else if(this.recharge_bank==''){
|
||||
@@ -179,7 +226,6 @@ export default {
|
||||
this.postData(encryptstring);
|
||||
}
|
||||
}else if(this.collectBank!=''&&this.isClickadd==false){ //选择银行卡提交
|
||||
// console.log('选择银行卡提交')
|
||||
if(this.recharge_money==''){
|
||||
this.$message({type: 'warning',message: '请填写提现金额!'});
|
||||
}else if(this.recharge_money>this.userInfo.money){
|
||||
@@ -197,7 +243,6 @@ export default {
|
||||
this.postData(encryptstring);
|
||||
}
|
||||
}else if(this.collectBank!=''&&this.isClickadd==true){ //填写提交
|
||||
// console.log('填写提交')
|
||||
if(this.recharge_name==''){
|
||||
this.$message({type: 'warning',message: '请填写持卡人名称!'});
|
||||
}else if(this.recharge_bank==''){
|
||||
@@ -225,7 +270,9 @@ export default {
|
||||
}
|
||||
},
|
||||
postData(encryptstring){
|
||||
this.$axios.post(this.ApiUrl+'/withdrawal',{encryptData:encryptstring}).then(
|
||||
// 越南用户走 apply_withdraw_bank 接口
|
||||
var url = this.userInfo.area_id == 3 ? '/apply_withdraw_bank' : '/withdrawal';
|
||||
this.$axios.post(this.ApiUrl+url,{encryptData:encryptstring}).then(
|
||||
response=>{
|
||||
if(response.data.Success==1){
|
||||
const data=JSON.parse(decrypt(response.data.Data));
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
<img src="../common/image/entrance/electricthrow.jpg">
|
||||
<span class="btn" >電投登錄入口</span>
|
||||
</div> -->
|
||||
<div class="item right" :class="{'hover':itemIndex==3}" @click="goUrl(2,webconfig.agentUrl)" @mouseenter="ItemHover(3)" @mouseleave="ItemHover(2)">
|
||||
<!-- <div class="item right" :class="{'hover':itemIndex==3}" @click="goUrl(2,webconfig.agentUrl)" @mouseenter="ItemHover(3)" @mouseleave="ItemHover(2)">
|
||||
<img src="../common/image/entrance/agent.jpg">
|
||||
<span class="btn" >代理端登錄入口</span>
|
||||
</div>
|
||||
</div> -->
|
||||
<img class="qrcode animated slideInUp" :src="webconfig.entranceQrcode">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -173,6 +173,7 @@ export default {
|
||||
memo:data.memo,
|
||||
is_sw:data.is_sw,
|
||||
bet_type:data.bet_type,
|
||||
area_id:data.area_id||0,
|
||||
user_limit:{
|
||||
limit_high: data.limit_high||0,
|
||||
limit_high_pair: data.limit_high_pair||0,
|
||||
@@ -286,6 +287,7 @@ export default {
|
||||
memo:data.memo,
|
||||
is_sw:data.is_sw,
|
||||
bet_type:data.bet_type,
|
||||
area_id:data.area_id||0,
|
||||
user_limit:{
|
||||
limit_high: data.limit_high||0,
|
||||
limit_high_pair: data.limit_high_pair||0,
|
||||
@@ -327,6 +329,7 @@ export default {
|
||||
memo:data.memo,
|
||||
is_sw:data.is_sw,
|
||||
bet_type:data.bet_type,
|
||||
area_id:data.area_id||0,
|
||||
user_limit:{
|
||||
limit_high: data.limit_high||0,
|
||||
limit_high_pair: data.limit_high_pair||0,
|
||||
|
||||
@@ -28,6 +28,7 @@ const state = {
|
||||
memo: "",
|
||||
is_sw: 0,
|
||||
bet_type: "",
|
||||
area_id: 0,
|
||||
},
|
||||
tabData: [],
|
||||
asktype: { type: null, isclick: true },
|
||||
@@ -114,6 +115,7 @@ const mutations = {
|
||||
state.userInfo.api_token = value.api_token;
|
||||
state.userInfo.memo = value.memo;
|
||||
state.userInfo.is_sw = value.is_sw;
|
||||
state.userInfo.area_id = value.area_id || 0;
|
||||
(state.userInfo.bet_type = value.bet_type),
|
||||
(state.userInfo.user_limit = value.user_limit || {
|
||||
limit_high: 0,
|
||||
|
||||
@@ -266,6 +266,46 @@ const mutations = {
|
||||
$store.dispatch("updateOneTab", { sendMode, ...data });
|
||||
}
|
||||
},
|
||||
// 客服系统 - 连接成功
|
||||
socket_chat_connected(state, data) {
|
||||
console.log('[Vuex] 收到 chat.connected 事件:', data);
|
||||
// 触发自定义事件,让组件可以监听
|
||||
if (window.__chatConnectedCallback) {
|
||||
window.__chatConnectedCallback(data);
|
||||
}
|
||||
},
|
||||
// 客服系统 - 会话分配
|
||||
socket_chat_session_assigned(state, data) {
|
||||
console.log('[Vuex] 收到 chat.session.assigned 事件:', data);
|
||||
if (window.__chatSessionAssignedCallback) {
|
||||
window.__chatSessionAssignedCallback(data);
|
||||
}
|
||||
},
|
||||
// 客服系统 - 新消息
|
||||
socket_chat_message_new(state, data) {
|
||||
console.log('[Vuex] 收到 chat.message.new 事件:', data);
|
||||
if (window.__chatMessageNewCallback) {
|
||||
window.__chatMessageNewCallback(data);
|
||||
}
|
||||
},
|
||||
// 客服系统 - 会话结束
|
||||
socket_chat_session_ended(state, data) {
|
||||
console.log('[Vuex] 收到 chat.session.ended 事件:', data);
|
||||
if (window.__chatSessionEndedCallback) {
|
||||
window.__chatSessionEndedCallback(data);
|
||||
}
|
||||
},
|
||||
// 客服系统 - 离线通知
|
||||
socket_chat_offline_notice(state, data) {
|
||||
console.log('[Vuex] 收到 chat.offline_notice 事件:', data);
|
||||
if (window.__chatOfflineNoticeCallback) {
|
||||
window.__chatOfflineNoticeCallback(data);
|
||||
}
|
||||
},
|
||||
// 客服系统 - 心跳响应
|
||||
socket_chat_pong(state, data) {
|
||||
// 心跳响应,不需要处理
|
||||
},
|
||||
};
|
||||
|
||||
const actions = {
|
||||
|
||||
+16
-18
@@ -1,36 +1,34 @@
|
||||
{
|
||||
"ApiUrl":"http://192.168.88.251:85/pcapi",
|
||||
"SockUrl":"192.168.88.251:6080",
|
||||
"ServerPort":"6080",
|
||||
"HallUrl": "https://v.yourvideo.com/yg/hall.flv",
|
||||
"LoginLogo": "http://192.168.88.251:85/static/logo/wb_logo.png",
|
||||
"LogoPng": "http://192.168.88.251:85/static/logo/wb_logo.png",
|
||||
"TitlePng": "http://192.168.88.251:85/static/logo/wb_200_60.png",
|
||||
"ApiUrl":"https://api.g7g7.top/pcapi",
|
||||
"SockUrl":"wss://api.g7g7.top",
|
||||
"ServerPort":"443",
|
||||
"HallUrl": "https://v1.yourvideo.com/kr/pRzcSz.flv",
|
||||
"LoginLogo": "https://api.g7g7.top/static/logo/og_logo_180_180.png",
|
||||
"LogoPng": "https://api.g7g7.top/static/logo/og_logo_160_143.png",
|
||||
"TitlePng": "https://api.g7g7.top/static/logo/og_logo_title_200_60.png",
|
||||
|
||||
"entranceQrcode":"http://192.168.88.251:85/static/logo/normal_entranceQrcode.png?v=10",
|
||||
"agentUrl":"http://192.168.88.249",
|
||||
"entranceQrcode":"https://api.g7g7.top/static/logo/og_qrcode.jpg",
|
||||
"agentUrl":"https://agt.g7g7.top",
|
||||
|
||||
"BgMusic": "static/sound/bg.mp3",
|
||||
"IframeUrl": "https://p.abc.com/video.html",
|
||||
"IframeUrl": "https://p.g7g7.top/video.html",
|
||||
"PayUrl": "",
|
||||
"AppUrl": "https://www.abc.com/",
|
||||
"AppQrcode": "http://192.168.88.251:85/static/logo/app_qrcode.png?v=10",
|
||||
"ServerQrcode": "http://192.168.88.251:85/static/logo/cus.jpeg",
|
||||
"customerLink": "https://kf.tvbn018.vip/index/index/home?visiter_id=&visiter_name=&avatar=&groupid=0&business_id=2",
|
||||
"AppUrl": "https://og-w.g7g7.top/",
|
||||
"AppQrcode": "https://api.g7g7.top/static/logo/og_qrcode.png",
|
||||
"ServerQrcode": "https://api.g7g7.top/static/logo/og_service.png",
|
||||
"isCancelBet": "1",
|
||||
"isChipSet": "1",
|
||||
"Title": "WINBEST",
|
||||
"Title": "OG ONLINE CASINO",
|
||||
"baccarat": true,
|
||||
"dt": true,
|
||||
"flopTime": 1000,
|
||||
"videoZoom": false,
|
||||
"nn": false,
|
||||
"nn": true,
|
||||
"multiple": true,
|
||||
"onlyTel": false,
|
||||
"sanka": false,
|
||||
"isUpdateOnline":true,
|
||||
"isRegister":false,
|
||||
"isRecharge":false,
|
||||
"isRecharge":true,
|
||||
"isServerCode":true,
|
||||
"isSetExpired":true,
|
||||
"sound":2,
|
||||
|
||||
Reference in New Issue
Block a user