Commit 3be7513d by GiottoMaster

update

parent c1467e66
...@@ -12,7 +12,8 @@ module.exports = { ...@@ -12,7 +12,8 @@ module.exports = {
assetsPublicPath: '/', assetsPublicPath: '/',
proxyTable: { proxyTable: {
'/api': { '/api': {
target:'https://bob.test-hh.com//api/', // 你请求的第三方接口 // target:'https://bob.test-hh.com//api/', // 你请求的第三方接口
target: 'https://97w5xg.tdrart.com/api/',
changeOrigin:true, /* 在本地会创建一个虚拟服务端,然后发送请求的数据, changeOrigin:true, /* 在本地会创建一个虚拟服务端,然后发送请求的数据,
并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题 */ 并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题 */
pathRewrite:{ // 路径重写, pathRewrite:{ // 路径重写,
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div style="width: 100%; min-height: 100vh; background: rgb(237, 241, 255)"> <div style="width: 100%; min-height: 100vh; background: rgb(237, 241, 255)">
<van-nav-bar style="position: fixed; top: 0; left: 0; width: 100%; background-color: #ede9e7" :title="$t('main.addBankCard.title')" left-arrow @click-left="$router.back()" /> <van-nav-bar style="position: fixed; top: 0; left: 0; width: 100%; background-color: #ede9e7" :title="$t('main.addBankCard.title')" left-arrow @click-left="$router.back()" />
<div style="height: 46px"></div> <div style="height: 46px"></div>
<div class="usrse"> <!-- <div class="usrse">
<div class="hgs"> <div class="hgs">
<div class="nams">{{ $t('main.addBankCard.label1') }}</div> <div class="nams">{{ $t('main.addBankCard.label1') }}</div>
<div> <div>
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
</div> </div>
</div> </div>
</div> </div>
<div style="font-size: 0.24rem; color: #98a5b3; text-align: center; box-sizing: border-box; padding: 6px">{{ $t('main.addBankCard.label2') }}</div> <div style="font-size: 0.24rem; color: #98a5b3; text-align: center; box-sizing: border-box; padding: 6px">{{ $t('main.addBankCard.label2') }}</div> -->
<div class="usrse"> <div class="usrse">
<div class="hgs" @click="changShow"> <div class="hgs" @click="changShow">
<div class="nams">{{ $t('main.addBankCard.label3') }}</div> <div class="nams">{{ $t('main.addBankCard.label3') }}</div>
...@@ -120,11 +120,12 @@ export default { ...@@ -120,11 +120,12 @@ export default {
}); });
}, },
bindCard() { bindCard() {
let userInfo = this.$store.state.userInfo
let that = this; let that = this;
if (!that.cardInfo.bank_owner) { // if (!that.cardInfo.bank_owner) {
that.$parent.showTost(0, that.$t('main.addBankCard.toast1')); // that.$parent.showTost(0, that.$t('main.addBankCard.toast1'));
return; // return;
} // }
if (!that.cardInfo.bank) { if (!that.cardInfo.bank) {
that.$parent.showTost(0, that.$t('main.addBankCard.toast2')); that.$parent.showTost(0, that.$t('main.addBankCard.toast2'));
return; return;
...@@ -150,6 +151,7 @@ export default { ...@@ -150,6 +151,7 @@ export default {
return; return;
} }
that.$parent.showLoading(); that.$parent.showLoading();
that.cardInfo.bank_owner = userInfo.realname
that.$apiFun that.$apiFun
.post('/api/bindcard', that.cardInfo) .post('/api/bindcard', that.cardInfo)
.then(res => { .then(res => {
......
<template>
<div class="content">
<div class="head">{{ $t('kefu.tip1') }}</div>
<div class="card" @click="goPage('url')">
<van-image src="static/image/kefu/meiqia2.png"></van-image>
</div>
<div class="card" @click="goPage('telegram_url')">
<van-image src="static/image/kefu/telegram.png"></van-image>
</div>
<div class="card" @click="goPage('line_url')">
<van-image src="static/image/kefu/line.png"></van-image>
</div>
<div class="bottom">{{ $t('kefu.tip2') }}</div>
<div class="bottom">{{ $t('kefu.tip3') }}</div>
</div>
</template>
<script>
export default {
name: 'kefu',
data() {
return {
kefuList: [],
};
},
mounted() {
this.getkefu()
},
methods: {
async getkefu () {
const res = await this.$apiFun.post('/api/getservicerurl', {})
if(res.code === 200) {
this.kefuList = res.data
}
},
goPage(e) {
if(this.kefuList[e]) {
window.open(this.kefuList[e])
}
},
},
}
</script>
<style lang="scss" scoped>
.content {
height: calc(var(--vh) * 100 - 68px);
overflow: auto;
.head {
background: #d7f1fd;
display: flex;
padding: 16px;
font-weight: 500;
font-size: .34rem;
}
.card {
margin: 20px 30px;
border-radius: 10px;
overflow: hidden;
.van-image {
display: block;
}
}
.bottom {
background: #d7f1fd;
padding: 8px 16px;
font-weight: 500;
font-size: .34rem;
}
}
</style>
...@@ -52,6 +52,7 @@ export default { ...@@ -52,6 +52,7 @@ export default {
// } // }
if (type == 1) { if (type == 1) {
that.$parent.openKefu(); that.$parent.openKefu();
// that.$parent.goNav(`/kefu`);
} }
// if (type == 3) { // if (type == 3) {
// that.$parent.goNav(`/zhanzhu`); // that.$parent.goNav(`/zhanzhu`);
......
...@@ -323,6 +323,7 @@ export default { ...@@ -323,6 +323,7 @@ export default {
that.$parent.showTost(0, that.$t('main.login.toast8')); that.$parent.showTost(0, that.$t('main.login.toast8'));
return; return;
} }
console.log('info')
// let code = that.loginInfo.code; // let code = that.loginInfo.code;
// if (!code) { // if (!code) {
// that.$parent.showTost(0, that.$t('main.login.toast6')); // that.$parent.showTost(0, that.$t('main.login.toast6'));
...@@ -335,7 +336,7 @@ export default { ...@@ -335,7 +336,7 @@ export default {
// that.changIndex(); // that.changIndex();
// return; // return;
// } // }
this.$apiFun.getCaipiaoListApi()
that.$parent.showLoading(); that.$parent.showLoading();
that.$apiFun.login(info).then(res => { that.$apiFun.login(info).then(res => {
if (res.code !== 200) { if (res.code !== 200) {
......
...@@ -17,11 +17,12 @@ ...@@ -17,11 +17,12 @@
<div class="nams">{{ $t('main.recharge.label4') }}</div> <div class="nams">{{ $t('main.recharge.label4') }}</div>
<div style="border-bottom: 1px solid #f2f2f2"> <div style="border-bottom: 1px solid #f2f2f2">
<van-cell-group> <van-cell-group>
<van-field :value="bank && bank.bank_no" type="text" :placeholder="$t('main.recharge.placeholder1')" readonly> </van-field> <van-field :value="bank && bank.bank_no" type="text" :placeholder="$t('main.recharge.placeholder1')" readonly class="in1"> </van-field>
</van-cell-group> </van-cell-group>
</div> </div>
</div> </div>
<div class="bans" style="" > <div class="bans" style="" >
<span class="tip11">{{ $t('main.recharge.label37') }}</span>
<p> <p>
<span class="frists"> {{ $t('main.recharge.label36') }} </span><span class="sdsw">{{ bank.bank_no }}</span <span class="frists"> {{ $t('main.recharge.label36') }} </span><span class="sdsw">{{ bank.bank_no }}</span
><span class="copy" @click="doCopy(bank.bank_no)"> {{ $t('main.recharge.label5') }} </span> ><span class="copy" @click="doCopy(bank.bank_no)"> {{ $t('main.recharge.label5') }} </span>
...@@ -690,7 +691,7 @@ export default { ...@@ -690,7 +691,7 @@ export default {
background-image: linear-gradient(180deg, #fff, #f9fcff); background-image: linear-gradient(180deg, #fff, #f9fcff);
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
padding: 20px 30px; padding: 10px 30px 20px;
border-radius: 20px; border-radius: 20px;
box-sizing: border-box; box-sizing: border-box;
margin-bottom: 20px; margin-bottom: 20px;
...@@ -700,7 +701,7 @@ export default { ...@@ -700,7 +701,7 @@ export default {
align-items: center; align-items: center;
padding: 5px 0; padding: 5px 0;
.frists { .frists {
width: 100px; width: 130px;
margin-right: 10px; margin-right: 10px;
} }
.sdsw { .sdsw {
...@@ -710,6 +711,13 @@ export default { ...@@ -710,6 +711,13 @@ export default {
color: #069b71; color: #069b71;
} }
} }
.tip11 {
color: #777;
font-size: 14px;
margin-bottom: 10px;
display: block;
}
} }
.sdg { .sdg {
...@@ -717,4 +725,11 @@ export default { ...@@ -717,4 +725,11 @@ export default {
padding-bottom: 50px; padding-bottom: 50px;
box-sizing: border-box; box-sizing: border-box;
} }
</style> </style>
<style >
.in1 input {
font-size: 14px !important;
}
</style>
\ No newline at end of file
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</van-cell-group> </van-cell-group>
</div> </div>
</div> </div>
<div class="hgs" @click="changShow"> <!-- <div class="hgs" @click="changShow">
<div class="nams">{{ $t('main.userInfo.label4') }}</div> <div class="nams">{{ $t('main.userInfo.label4') }}</div>
<div style="border-bottom: 1px solid #f2f2f2"> <div style="border-bottom: 1px solid #f2f2f2">
<van-cell-group> <van-cell-group>
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
<van-field v-model="email" :placeholder="$t('main.userInfo.placeholder5')" /> <van-field v-model="email" :placeholder="$t('main.userInfo.placeholder5')" />
</van-cell-group> </van-cell-group>
</div> </div>
</div> </div> -->
<van-button type="info" style="margin-top: 20px; width: 100%" @click="isOk">{{ $t('main.userInfo.label7') }}</van-button> <van-button type="info" style="margin-top: 20px; width: 100%" @click="isOk">{{ $t('main.userInfo.label7') }}</van-button>
</div> </div>
<van-datetime-picker style="position: fixed; width: 100%; bottom: 0px; left: 0; background: #f1f1f1" type="date" v-if="showPicker" :min-date="minDate" @confirm="onConfirm" @cancel="changShow" /> <van-datetime-picker style="position: fixed; width: 100%; bottom: 0px; left: 0; background: #f1f1f1" type="date" v-if="showPicker" :min-date="minDate" @confirm="onConfirm" @cancel="changShow" />
...@@ -113,21 +113,21 @@ export default { ...@@ -113,21 +113,21 @@ export default {
let that = this; let that = this;
let info = { email: that.email, mobile: that.mobile, birthday: that.birthday }; let info = { email: that.email, mobile: that.mobile, birthday: that.birthday };
console.log(that.birthday); console.log(that.birthday);
let regExp = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; // let regExp = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;
let regEmail = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/; // let regEmail = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
let dateFormat = /^(\d{4})-(\d{2})-(\d{2})$/; // let dateFormat = /^(\d{4})-(\d{2})-(\d{2})$/;
if (!regExp.test(that.mobile)) { // if (!regExp.test(that.mobile)) {
that.$parent.showTost(0, that.$t('main.userInfo.toast1')); // that.$parent.showTost(0, that.$t('main.userInfo.toast1'));
return; // return;
} // }
if (!regEmail.test(that.email)) { // if (!regEmail.test(that.email)) {
that.$parent.showTost(0, that.$t('main.userInfo.toast2')); // that.$parent.showTost(0, that.$t('main.userInfo.toast2'));
return; // return;
} // }
if (!dateFormat.test(that.birthday)) { // if (!dateFormat.test(that.birthday)) {
that.$parent.showTost(0, that.$t('main.userInfo.toast3')); // that.$parent.showTost(0, that.$t('main.userInfo.toast3'));
return; // return;
} // }
that.$parent.showLoading(); that.$parent.showLoading();
that.$apiFun that.$apiFun
......
...@@ -56,20 +56,20 @@ ...@@ -56,20 +56,20 @@
<div v-else style="color: #cf866b; height: 30px; line-height: 30px; text-align: center">{{ $t('main.withdrawal.label23') }}</div> <div v-else style="color: #cf866b; height: 30px; line-height: 30px; text-align: center">{{ $t('main.withdrawal.label23') }}</div>
</div> </div>
<div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div> <div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div>
<div class="hgs"> <!-- <div class="hgs">
<div class="nams">{{ $t('main.withdrawal.label11') }}</div> <div class="nams">{{ $t('main.withdrawal.label11') }}</div>
<div> <div>
<van-cell-group> <van-cell-group>
<van-field v-model="betAmount" type="text" disabled :placeholder="$t('main.withdrawal.placeholder1')"> </van-field> <van-field v-model="betAmount" type="text" disabled :placeholder="$t('main.withdrawal.placeholder1')"> </van-field>
</van-cell-group> </van-cell-group>
</div> </div>
</div> </div> -->
<div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div> <div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div>
<div class="hgs"> <div class="hgs">
<div class="nams">{{ $t('main.withdrawal.label12') }}</div> <div class="nams">{{ $t('main.withdrawal.label12') }}</div>
<div> <div>
<van-cell-group> <van-cell-group>
<van-field v-model="amount" type="text" :placeholder="$t('main.withdrawal.placeholder2')"> <van-field v-model="amount" type="digit" :placeholder="$t('main.withdrawal.placeholder2')">
<template #button> <van-button size="mini" @click="bigMey($store.state.userInfo.usd_balance)" type="info">{{ $t('main.withdrawal.label13') }}</van-button> </template> <template #button> <van-button size="mini" @click="bigMey($store.state.userInfo.usd_balance)" type="info">{{ $t('main.withdrawal.label13') }}</van-button> </template>
</van-field> </van-field>
</van-cell-group> </van-cell-group>
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
<div class="lasthg" style="padding: 5px 0">{{ $t('main.withdrawal.label19') }}{{ amount ? Math.floor((amount / $store.state.userInfo.withdrawusdtrate) * 100) / 100 - (chanmeyXi == 'ERC20' ? $store.state.userInfo.withdrawcashfee * 1 : $store.state.userInfo.withdrawfeeusdttrc * 1) : '0.00' }}USDT</div> <div class="lasthg" style="padding: 5px 0">{{ $t('main.withdrawal.label19') }}{{ amount ? Math.floor((amount / $store.state.userInfo.withdrawusdtrate) * 100) / 100 - (chanmeyXi == 'ERC20' ? $store.state.userInfo.withdrawcashfee * 1 : $store.state.userInfo.withdrawfeeusdttrc * 1) : '0.00' }}USDT</div>
</div> --> </div> -->
<div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div> <!-- <div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div> -->
</div> </div>
<div class="usrse" v-if="activeName == 2"> <div class="usrse" v-if="activeName == 2">
<div class="hgs" @click="$parent.goNav('/addBankCard')" v-if="usercardLis.length == 0"> <div class="hgs" @click="$parent.goNav('/addBankCard')" v-if="usercardLis.length == 0">
...@@ -121,20 +121,20 @@ ...@@ -121,20 +121,20 @@
</div> </div>
<div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div> <div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div>
<div class="hgs"> <!-- <div class="hgs">
<div class="nams">{{ $t('main.withdrawal.label11') }}</div> <div class="nams">{{ $t('main.withdrawal.label11') }}</div>
<div> <div>
<van-cell-group> <van-cell-group>
<van-field v-model="betAmount" type="text" disabled :placeholder="$t('main.withdrawal.placeholder1')"> </van-field> <van-field v-model="betAmount" type="text" disabled :placeholder="$t('main.withdrawal.placeholder1')"> </van-field>
</van-cell-group> </van-cell-group>
</div> </div>
</div> </div> -->
<div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div> <div style="height: 0.2rem; background: #f8f8f8; width: 100wh"></div>
<div class="hgs"> <div class="hgs">
<div class="nams">{{ $t('main.withdrawal.label12') }}</div> <div class="nams">{{ $t('main.withdrawal.label12') }}</div>
<div> <div>
<van-cell-group> <van-cell-group>
<van-field v-model="amount" type="text" :placeholder="$t('main.withdrawal.placeholder2')"> <van-field v-model="amount" type="digit" :placeholder="$t('main.withdrawal.placeholder2')">
<template #button> <van-button @click="bigMey($store.state.userInfo.balance)" size="mini" type="info">{{ $t('main.withdrawal.label13') }}</van-button> </template> <template #button> <van-button @click="bigMey($store.state.userInfo.balance)" size="mini" type="info">{{ $t('main.withdrawal.label13') }}</van-button> </template>
</van-field> </van-field>
</van-cell-group> </van-cell-group>
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
<div class="nams">{{ $t('main.withdrawal.label12') }}</div> <div class="nams">{{ $t('main.withdrawal.label12') }}</div>
<div> <div>
<van-cell-group> <van-cell-group>
<van-field v-model="amount" type="text" :placeholder="$t('main.withdrawal.placeholder2')"> <van-field v-model="amount" type="digit" :placeholder="$t('main.withdrawal.placeholder2')">
<template #button> <van-button @click="bigMey($store.state.userInfo.agent_balance)" size="mini" type="info">{{ $t('main.withdrawal.label13') }}</van-button> </template> <template #button> <van-button @click="bigMey($store.state.userInfo.agent_balance)" size="mini" type="info">{{ $t('main.withdrawal.label13') }}</van-button> </template>
</van-field> </van-field>
</van-cell-group> </van-cell-group>
......
...@@ -435,6 +435,7 @@ export const main = { ...@@ -435,6 +435,7 @@ export const main = {
label34: '请输入金额在', label34: '请输入金额在',
label35: '之间!', label35: '之间!',
label36: '收款账号', label36: '收款账号',
label37: '完成向以下账户的直接银行转账后,请填写以下信息。',
placeholder1: '选择开户银行', placeholder1: '选择开户银行',
placeholder2: '请输入存款人姓名', placeholder2: '请输入存款人姓名',
placeholder3: '请输入银行卡号', placeholder3: '请输入银行卡号',
...@@ -796,4 +797,10 @@ export const yingkui = { ...@@ -796,4 +797,10 @@ export const yingkui = {
label8: '投注金额', label8: '投注金额',
label9: '中奖金额', label9: '中奖金额',
label10: '昨日收益', label10: '昨日收益',
}
export const kefu = {
tip1: '点击下面您想要的通讯软件的客户中心即可立即连接。',
tip2: '若有任何疑问,可通过Telegram或Line客服中心进行1:1咨询。点击各个Messenger ID后,会自动连接到对应的频道,并获得实时的咨询帮助。',
tip3: '※ 在办公时间以外回复可能会延迟,敬请谅解。',
} }
\ No newline at end of file
...@@ -435,6 +435,7 @@ export const main = { ...@@ -435,6 +435,7 @@ export const main = {
label34: 'Please enter the amount in', label34: 'Please enter the amount in',
label35: 'between!', label35: 'between!',
label36: 'Receiving Account', label36: 'Receiving Account',
label37: 'After completing a direct bank transfer to the account below, please fill out the information below.',
placeholder1: 'Select the bank where you opened an account', placeholder1: 'Select the bank where you opened an account',
placeholder2: 'Please enter the name of the depositor', placeholder2: 'Please enter the name of the depositor',
placeholder3: 'Please enter the bank card number', placeholder3: 'Please enter the bank card number',
...@@ -796,4 +797,10 @@ export const yingkui = { ...@@ -796,4 +797,10 @@ export const yingkui = {
label8: 'Bet amount', label8: 'Bet amount',
label9: 'Winning amount', label9: 'Winning amount',
label10: "Yesterday's profit", label10: "Yesterday's profit",
}
export const kefu = {
tip1: 'Click on the customer center of the messenger you want below to connect immediately.',
tip2: 'If you have any inquiries, you can receive 1:1 consultation through Telegram or Line Customer Center. If you click on each messenger ID, you will be automatically connected to the corresponding channel and will be provided with real-time consultation assistance.',
tip3: '※ Please understand that responses may be delayed outside of business hours.',
} }
\ No newline at end of file
...@@ -438,6 +438,7 @@ export const main = { ...@@ -438,6 +438,7 @@ export const main = {
label34: '입력 가능한 금액 범위:', label34: '입력 가능한 금액 범위:',
label35: '사이에서 입력해 주세요!', label35: '사이에서 입력해 주세요!',
label36: '입금할 은행 계좌번호', label36: '입금할 은행 계좌번호',
label37: '아래 계좌로 직접 계좌이체 완료 후 아래 사항을 작성해주시길 바랍니다.',
placeholder1: '계좌 개설 은행을 선택해 주세요.', placeholder1: '계좌 개설 은행을 선택해 주세요.',
placeholder2: '입금자 성함을 입력해 주세요.', placeholder2: '입금자 성함을 입력해 주세요.',
placeholder3: '은행 계좌번호를 입력해 주세요.', placeholder3: '은행 계좌번호를 입력해 주세요.',
...@@ -799,4 +800,10 @@ export const yingkui = { ...@@ -799,4 +800,10 @@ export const yingkui = {
label8: '배팅 금액', label8: '배팅 금액',
label9: '당첨 금액', label9: '당첨 금액',
label10: '어제 수익', label10: '어제 수익',
}
export const kefu = {
tip1: '아래에서 원하는 메신저의 고객센터를 클릭하시면 바로 연결됩니다.',
tip2: '문의하실 내용이 있을 경우, 텔레그램 또는 라인 고객센터를 통해 1:1 상담이 가능하며, 각 메신저 아이디를 클릭하시면 해당 채널로 자동 연결되며, 실시간으로 상담을 도와드립니다.',
tip3: '※ 운영 시간 외에는 답변이 지연될 수 있는 점 양해 부탁드립니다.',
} }
\ No newline at end of file
...@@ -4,7 +4,7 @@ import Main from '@/components/Main' ...@@ -4,7 +4,7 @@ import Main from '@/components/Main'
import index from '@/components/mode/index' import index from '@/components/mode/index'
import app from '@/components/mode/app' import app from '@/components/mode/app'
import kefu from '@/components/mode/kefu' // import kefu from '@/components/mode/kefu'
import gamePage from '@/components/mode/gamePage' import gamePage from '@/components/mode/gamePage'
import hongbao from '@/components/mode/hongbao' import hongbao from '@/components/mode/hongbao'
import activity from '@/components/mode/activity' import activity from '@/components/mode/activity'
...@@ -57,6 +57,7 @@ import yingkui from '@/components/mine/yingkui' ...@@ -57,6 +57,7 @@ import yingkui from '@/components/mine/yingkui'
import kefu from '@/components/kefu'
...@@ -438,6 +439,15 @@ export default new Router({ ...@@ -438,6 +439,15 @@ export default new Router({
meta: { meta: {
requireAuth: true, requireAuth: true,
} }
},
{
path: '/kefu',
name: 'kefu',
component: kefu,
meta: {
requireAuth: true,
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment