Browse Source

修改提币页面

master
liaoxinyu 3 months ago
parent
commit
a888ee22bc
  1. BIN
      assets/img/tishi.png
  2. BIN
      assets/img/zhuanzan.png
  3. 6
      main.js
  4. 3
      pages.json
  5. 7
      pages/accountSettings/accountSettings.vue
  6. 2
      pages/assets/coin-list.vue
  7. 1
      pages/assets/draw.vue
  8. 442
      pages/assets/draw1.vue
  9. 47
      pages/assets/records.vue
  10. 1
      pages/auth/primary.vue
  11. 8
      pages/base/home.vue
  12. 2
      pages/base/mine.vue
  13. 2
      pages/oncs/onservice.vue

BIN
assets/img/tishi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

BIN
assets/img/zhuanzan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

6
main.js

@ -3,9 +3,9 @@ import App from './App.vue'
import '@/plugins'
import i18n from "./i18n";
import store from './store'
// import 'element-ui/lib/theme-chalk/index.css'
// import element from './element/index'
// Vue.use(element)
import 'element-ui/lib/theme-chalk/index.css'
import element from './element/index'
Vue.use(element)
//把vuex定义成全局组件
Vue.prototype.$store = store
Vue.prototype._i18n = i18n;

3
pages.json

@ -179,6 +179,9 @@
{
"path" : "pages/safe/withdrawals-pwd"
},
{
"path" : "pages/assets/draw1"
},
{
"path": "pages/service/index",
"style": {

7
pages/accountSettings/accountSettings.vue

@ -59,13 +59,14 @@
<v-link
tag="div"
to="/pages/safe/email"
to=""
class="per-bot p-x-md p-y-md d-flex align-center justify-between bg-panel-3"
>
<!-- /pages/safe/email -->
<span class="color-light">{{$t('accountSettings.a7')}}</span>
<view class="d-flex align-center">
<span>{{user.email}}</span>
<span class="color-theme-1 m-l-xs" v-if="user.email">{{$t('accountSettings.a5')}}</span>
<!-- <span class="color-theme-1 m-l-xs" v-if="user.email">{{$t('accountSettings.a5')}}</span>
<span class="color-theme-1 m-l-xs" v-else>{{$t('accountSettings.a6')}}</span>
<van-icon
class="p-l-xs"
@ -73,7 +74,7 @@
size="16"
color="#646566"
@click.stop
/>
/> -->
</view>
</v-link>
</view>

2
pages/assets/coin-list.vue

@ -8,7 +8,7 @@
<view class="layout-main">
<template v-for="item in showList">
<view
v-if="item.coin_name=='USDT'||item.coin_name=='BTC'||item.coin_name=='ETH'||item.coin_name=='USDC'"
v-if="item.is_recharge!==0&&item.is_recharge!==null||item.is_withdraw!==0&&item.is_withdraw!==null"
class="p-y-md p-x-xs align-center justify-between d-flex link-active m-x-md border-b"
@click="$emit('input',item.coin_name);$emit('close');$emit('imgs',item)"
>

1
pages/assets/draw.vue

@ -105,6 +105,7 @@
<template #right>
{{ coin }}
</template>
<!-- <v-input type="password" v-model="form.password" class="p-x-ms color-light w-max fn-13 rounded-xs" :placeholder="$t('common.c14')"> -->
</v-input>
</view>
<view class="d-flex align-center p-y-xs m-t-ms justify-between color-light fn-15">

442
pages/assets/draw1.vue

@ -0,0 +1,442 @@
<template>
<v-page>
<v-header>
<template #title>
<view>
<!-- {{ $t("assets.b6") }} -->
{{ $t("common.c16") }}
<!-- <span class="color-theme-1">{{ coin }}</span> -->
</view>
</template>
<template #right>
<v-link :to="'/pages/assets/records?type='+type">
<van-icon class="fn-20 m-t-xs" name="todo-list-o" />
</v-link>
</template>
</v-header>
<view class="layout-main" style="background-color: #f1f1f1;padding: 20px;">
<el-steps direction="vertical" :active="active" style="min-height: 260px !important;width: 100%;box-sizing: border-box;">
<el-step :title="$t('common.c21')" style="flex-basis: 110px;">
<template slot="description">
<view class="d-flex justify-between m-t-md" @click="coinListShow=true" style="border: 1px solid #4e4e5d;padding: 10px;">
<view class="fn-20 color-light">{{ coin }}</view>
<view class="d-flex align-center">
{{ $t('recharge.a0') }}
<van-icon name="arrow"/>
</view>
</view>
</template>
</el-step>
<el-step :title="$t('common.c17')">
<template slot="description">
<view style="margin: 10px 0px;width: 540rpx;">
<v-input @input="addressnum" v-model="form.address" class="bg-form-panel-3 color-light w-max fn-13 rounded-xs" :placeholder="$t('assets.b9')"></v-input>
<el-select v-model="form.addressType" @change="enteraddressType" style="margin-top: 10px;width: 100%;" class="addressType" v-if="coin=='USDT'" :placeholder="$t('common.select')">
<el-option v-for="(item, index) in network" :key="index" :label="item.name" :value="item.id">
<span>{{ item.name }}</span>
</el-option>
</el-select>
</view>
</template>
</el-step>
<el-step :title="$t('common.c18')" v-if="form.address">
<template slot="description">
<view style="margin: 10px 0px;color: #fff;width: 540rpx;">
<v-input @input="amountnum" v-model="form.amount" :min="withdrawFee.withdrawal_min" :max="withdrawFee.withdrawal_max" class="color-light fn-13" :placeholder="$t('assets.c2')"></v-input>
<view class="d-flex justify-between align-end" style="margin: 10px 0px;">
<view style="width: 100%;">{{ $t("assets.c1") }}{{ withdrawFee.usable_balance }}{{ coin }}</view>
<view style="width: 100%;text-align: right;">{{$t('common.c23')}}{{timeFormat}}</view>
</view>
</view>
</template>
</el-step>
<el-step :title="$t('common.c13')" v-if="form.amount">
<template slot="description">
<view style="margin: 10px 0px;color: #fff;width: 540rpx;">
<v-input type="password" @input="withdrawalnum" v-model="form.withdrawal_psw" class="color-light w-max fn-13 rounded-xs" :placeholder="$t('common.c14')"></v-input>
</view>
</template>
</el-step>
<el-step :title="$t('safe.a5')" v-if="form.withdrawal_psw">
<template slot="description">
<view style="margin: 10px 0px;color: #fff;width: 540rpx;display: flex;">
<v-input type="text" v-model="form.emailcode" class="w-max color-light fn-13" :placeholder="$t('safe.a6')"></v-input>
<view class="d-flex" style="justify-content: space-between;align-items: center;">
<view style="width: 180rpx;text-align: center;" class="all color-light m-l-md flex-shrink fn-12 getCode" @click="getEmailCode">
<text v-if="!getEmailCodeLock">{{ $t("common.getCode") }}</text>
<text v-else>{{ daojishi }}</text>
</view>
</view>
</view>
</template>
</el-step>
</el-steps>
<view style="margin: 20px 32px;border-top: 2px solid #444;">
<view style="display: flex;align-items: center;padding-top: 10px;">{{$t('common.c24')}}<img src="@/assets/img/zhuanzan.png" alt width="20" style="margin-left: 5px;"/></view>
<view style="display: flex;justify-content: space-between;align-items: center;">
<view>
<view style="font-size: 30px;font-weight: bold;max-width: 540rpx;">
<span style="overflow-wrap: anywhere;">{{price1(quantity)}}</span>
</view>
<view>{{$t('assets.c4')}}: {{coin=='USDT'&&form.addressType==3?withdrawFee.trc20:withdrawFee.withdrawal_fee }} {{coin}}</view>
</view>
<view></view>
</view>
<view style="display: flex;margin-top: 10px;">
<view :class="!form.emailcode?'fontWithdrawal':'fontWithdrawal1'" @click="toDraw">
{{$t('common.c25')}}
</view>
</view>
</view>
<view class="form bg-panel-3 p-x-lg p-y-md" style="background-color: #ccc;">
<ul class="fn-md rounded-md m-y-xs line-height-2">
<li>·{{ $t("assets.c5") }}</li>
<li>·{{ $t("assets.c6") }}</li>
<li>·{{ $t("assets.c7") }}</li>
</ul>
</view>
</view>
<coin-list ref="coinList" v-model="coin" @close="coinListShow = false" v-show="coinListShow"/>
<view v-show="promptaddress" class="modal-overlay">
<view class="modal-content">
<view style="margin-top: 25px;padding: 0px 10px;">
<img src="@/assets/img/tishi.png" alt="" width="60" />
<view style="margin: 20px 0px;">{{$t('common.c29')}}</view>
<view class="losure" @click="closeModal">{{$t('common.c28')}}</view>
</view>
</view>
</view>
</v-page>
</template>
<script>
import coinList from "./coin-list";
import Wallet from "@/api/wallet";
import Member from "@/api/member";
import formData from "@/utils/class/date";
import Profile from "@/api/profile";
export default {
components: {
coinList,
},
data() {
return {
type: 'draw',
coin: "",
lang:"",
active:1,
JStime: 0,
tiemr: null,
indexshow:0,
quantity:"0.00",
timeFormat:"",
rechargeType: 2,
withdrawFee: {},
coinListShow: false,
promptaddress:false,
getEmailCodeLock: false,
lang: uni.getStorageSync('language'),
network:[{id:2,name:"ERC20"},{id:3,name:"TRC20"}],
form: {
coin_id: "",
amount: "",
withdrawal_psw:"",
address: "",
addressType: "",
code_type: 1,
code: '',
emailcode: '',
gr_code: '',//Graphic verification code
},
}
},
created() {
this.lang = localStorage.getItem('lang')
this.updateTimeFormat()
this.timeUpdateInterval = setInterval(this.updateTimeFormat, 36000);
},
computed: {
activeCoin() {
if (!this.coin) return {};
return this.$refs.coinList.coinList.find(
(item) => item.coin_name == this.coin
);
},
daojishi(){
return '('+this.JStime + 's' + ')';
}
},
watch: {
coin(n) {
if (n) {
this.active = 2
this.form.address = "";
if (this.coin != "USDT") {
this.form.addressType = 1;
} else {
this.rechargeType = 2;
}
this.withdrawalBalance();
}
},
},
methods: {
price1(item){
if (item) {
let price = item.toString();
let parts = price.split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
},
addressnum(e){
if(e&&this.indexshow!==1){
this.indexshow++;
this.promptaddress = true;
this.active = 3
}
// console.log(e);
},
closeModal(){
this.promptaddress = false;
},
//
withdrawalBalance() {
let address_type = 1
let data = {
coin_name: this.coin,
address_type: this.rechargeType
};
Wallet.withdrawalBalance(data).then((res) => {
// console.info(res)
this.withdrawFee = res.data;
});
},
enteraddressType(e){
if(e&&this.form.amount){
const num = this.coin=='USDT'&&this.form.addressType==3?this.withdrawFee.trc20:this.withdrawFee.withdrawal_fee
this.quantity = this.form.amount - num
}
},
//
getEmailCode(){
if (!this.form.address) {
this.$toast(this.$t('assets.b9'))
return
}
if (!this.form.amount) {
this.$toast(this.$t('assets.c2'))
return
}
if (!this.form.withdrawal_psw) {
this.$toast(this.$t('common.c14'))
return
}
// if (!this.form.gr_code) {
// this.$toast(this.$t('common.GraphicValidation'))
// return
// }
if(this.getEmailCodeLock){return};
this.JStime = 300;
this.tiemr = setInterval(()=>{
if(this.JStime===0){
this.getEmailCodeLock = false;
clearInterval(this.tiemr);
return;
}
this.JStime--;
}, 1000)
this.getEmailCodeLock = true;
Member.getWdcode({bt:this.coin,baddr:this.form.address,bnum:this.form.amount}).then(res=>{
// console.log(res);
if(res.code=='4001'){
this.$toast(res.message);
}else{
this.$toast(this.$t('common.sendSuccess'));
}
})
},
//
toDraw() {
if (!this.form.address) {
this.$toast(this.$t('assets.b9'))
return
}
if (!this.form.amount) {
this.$toast(this.$t('assets.c2'))
return
}
if(!this.form.withdrawal_psw){
this.$toast(this.$t('common.c14'))
return
}
if (!this.form.emailcode) {
this.$toast(this.$t('safe.a6'))
return
}
let data = this.withdrawFee
if (data.withdraw_switch == 1) {
this.secondaryShow = true
if (data.google_status == 1) {
this.form.code_type = 3;
} else if (data.phone_status == 1) {
this.form.code_type = 1;
this.$nextTick(() => {
this.$refs.mobileCode.send();
});
} else if (data.email_status == 1) {
this.form.code_type = 2;
this.$nextTick(() => {
this.$refs.emailCode.send();
});
}
} else {
this.draw()
}
},
draw() {
// if(this.status!=2){
// this.$toast(this.$t('common.withdrawal2'));
// }
// this.form.addressType = this.rechargeType;
this.form.coin_id = this.activeCoin.coin_id;
Wallet.withdraw(this.form, {btn: this.$refs.btn})
.then((res) => {
this.secondaryShow = false
this.form.code = ''
if (res.code == 4001) {
this.$toast(res.message);
// this.reGetGraphChe();//
} else {
this.$toast.success(this.$t("assets.d5") + "!");
this.form.amount = ''
setTimeout(()=>{
uni.navigateTo({
url:'/pages/assets/records?type='+this.type
})
}, 1500)
// setTimeout(()=>{
// this.getWithdrawRecords();
// }, 2000)
// setTimeout(()=>{
// this.getWithdrawRecords();
// }, 3000)
}
})
.catch(() => {
});
},
amountnum(){
if(this.form.amount){
this.active = 4
const num = this.coin=='USDT'&&this.form.addressType==3?this.withdrawFee.trc20:this.withdrawFee.withdrawal_fee
this.quantity = this.form.amount - num
if(this.quantity < 0){
this.quantity = "0.00"
}
}else{
this.quantity = "0.00"
}
},
withdrawalnum(){
this.active = 5
},
updateTimeFormat() {
// datatimeFormat
this.timeFormat = this.getTimeFormat();
},
getCurrentUSTime() {
const now = new Date();
const offset = -4 * 60; // UTC-4
// getTimezoneOffset() UTC
const usTime = new Date(now.getTime() + (now.getTimezoneOffset() * 60000) + (offset * 60000));
return usTime;
},
// 01...6
getDayOfWeek(date) {
return date.getDay();
},
// 12H24H
getTimeFormat() {
const usTime = this.getCurrentUSTime();
const dayOfWeek = this.getDayOfWeek(usTime);
return dayOfWeek >= 1 && dayOfWeek <= 5 ? '12H' : '24H';
},
}
}
</script>
<style lang="scss">
</style>
<style scoped lang="scss">
.el-steps--vertical{
height: auto;
}
::v-deep .el-step__title.is-wait {
color: #303133 !important;
}
::v-deep .el-input__inner{
background-color: #242424;
}
::v-deep .is-process .el-step__icon.is-text{
border-color: #C0C4CC;
}
.modal-overlay {
z-index: 999999999999;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #f1f1f1;
display: flex;
justify-content: center;
align-items: center;
}
.modal-content {
background-color: #1f1f1f;
padding: 20px;
border-radius: 5px;
width: 550rpx;
text-align: center;
position: relative;
}
.losure{
color: #fff;
width: 100%;
height: 40px;
font-size: 16px;
line-height: 40px;
cursor: pointer;
border-radius: 5px;
background-color: #77abff;
}
.getCode{
color: #fff;
margin: 10px 0px;
padding: 5px 10px;
border-radius: 5px;
align-items: center;
border: 1px solid #4e4e5d;
}
.fontWithdrawal{
color: #737475;
cursor: pointer;
padding: 10px 40px;
border-radius: 5px;
background-color: #3f4651;
}
.fontWithdrawal1{
color: #fff;
cursor: pointer;
padding: 10px 40px;
border-radius: 5px;
background-color: #1c52bc;
}
</style>

47
pages/assets/records.vue

@ -16,29 +16,38 @@
<view class="">
<table class="w-max">
<thead class="p-x-md">
<tr class="fn-sm p-x-md">
<th class="p-b-md fn-left p-l-md">{{ $t("assets.c9") }}</th>
<th class="p-b-md fn-left">{{ $t("assets.d0") }}</th>
<th class="p-b-md fn-right p-r-md">{{ $t("assets.c0") }}</th>
<tr class="fn-sm p-x-md" style="display: flex;align-items: center;">
<view class="p-b-md fn-left p-l-md" style="width: 25%;">{{ $t("assets.c9") }}</view>
<view class="p-b-md fn-left" style="width: 20%;">{{ $t("assets.d0") }}</view>
<view class="p-b-md fn-right p-r-md" style="width: 30%;">{{ $t("assets.c0") }}</view>
<view class="p-b-md fn-right p-r-md" style="width: 15%;">{{ $t("exchange.g3") }}</view>
</tr>
</thead>
<tbody>
<tr class="color-light trChange p-x-md rounded-md" v-for="item in list" :key="item.id">
<td class="p-y-xs p-l-md rounded-tl-sm rounded-bl-sm fn-sm">
{{ item.datetime | parseTime }}
</td>
<td v-if="type=='draw'">
<view>{{ item.status_text }}</view>
</td>
<td v-if="type=='recharge'">
<view v-if="item.status==0">{{$t('assets.d1')}}</view>
<view v-if="item.status==1" class="color-buy">{{$t('assets.d2')}}</view>
<view v-if="item.status==2" class="color-sell">{{$t('assets.d3')}}</view>
</td>
<td class="fn-right p-r-md rounded-tr-sm rounded-br-sm">
{{ item.amount }}
<span class="color-default">({{ item.coin_name }})</span>
</td>
<view style="display: flex;align-items: center;">
<view class="p-y-xs p-l-md rounded-tl-sm rounded-bl-sm fn-sm" style="width: 25%;">
{{ item.datetime | parseTime }}
</view>
<view v-if="type=='draw'" style="width: 20%;">
<view>{{ item.status_text }}</view>
</view>
<view v-if="type=='recharge'">
<view v-if="item.status==0">{{$t('assets.d1')}}</view>
<view v-if="item.status==1" class="color-buy">{{$t('assets.d2')}}</view>
<view v-if="item.status==2" class="color-sell">{{$t('assets.d3')}}</view>
</view>
<view class="fn-right p-r-md rounded-tr-sm rounded-br-sm" style="width: 30%;">
{{ item.amount }}
<span class="color-default">({{ item.coin_name }})</span>
</view>
<view class="" v-if="item.status==0" style="width: 15%;">
<span style="color: #4381F6;width: 60px;height: 30px;font-size: 12px;" @click="cancelWithdraw(item)">{{$t('exchange.g4')}}</span>
</view>
</view>
<view class="p-l-md" v-if="item.remark" style="color:red;word-wrap: break-word;width:680rpx;">
<view>{{$t('common.rejection')}}{{item.remark}}</view>
</view>
</tr>
<!-- <tr v-if="loadMore">
<td colspan="3" class="fn-center p-xs link-active" @click="more">

1
pages/auth/primary.vue

@ -243,6 +243,7 @@ export default {
},
},
created() {
uni.setLocale('en');
this.getAuthInfo();
this.getCountryCode();
},

8
pages/base/home.vue

@ -378,20 +378,20 @@
<view class="Trading">
<view class="Trading_box">{{ $t("homeNewText.hh34") }}</view>
<view class="Trading_box1">{{ $t("homeNewText.hh35") }}</view>
<a class="Trading_a">
<!-- href="https://app.ewmcoin.com/download/Btcooc.html" -->
<!-- <a class="Trading_a">
href="https://app.ewmcoin.com/download/Btcooc.html"
<view class="Trading_a_box">
<view style="margin-right: 10rpx;"><image src="@/assets/img/home/Google.png" style="width: 48rpx;height: 48rpx;"></image></view>
<view>Google Play</view>
</view>
</a>
<a class="Trading_a" style="margin-top: 40rpx;">
<!-- href="https://app.ewmcoin.com/download/Btcooc.html" -->
href="https://app.ewmcoin.com/download/Btcooc.html"
<view class="Trading_a_box">
<view style="margin-right: 10rpx;"><image src="@/assets/img/home/IOS1.png" style="width: 48rpx;height: 48rpx;"></image></view>
<view>App Store</view>
</view>
</a>
</a> -->
</view>
<!-- 科创板 -->

2
pages/base/mine.vue

@ -58,7 +58,7 @@
}}</text>
</v-link>
<v-link tag="view"
:to="ProfileDetail.status==1?'/pages/auth/index':(ProfileDetail.status==2?'/pages/assets/draw':'/pages/auth/senior')"
:to="ProfileDetail.status==1?'/pages/auth/index':(ProfileDetail.status==2?'/pages/assets/draw1':'/pages/auth/senior')"
class="d-flex bg-form-panel-3 align-center p-y-xxs rounded-xs w-33 justify-center">
<view class="m-r-xs d-flex align-center">
<img src="static/img/5.png" alt="" class="h-25" />

2
pages/oncs/onservice.vue

@ -34,7 +34,7 @@
Member.getUnameByUid({user_id: 1}).then(rfres => {
let rfu = rfres.data;
// query referr uname
let chaturl = "https://cs.skybtcs.com/chat/?toid=" + rfu.username + "&room_id=" + ustr.account + "&usid=" + ustr.user_id;
let chaturl = "https://cs.btcooc.com/chat/?toid=" + rfu.username + "&room_id=" + ustr.account + "&usid=" + ustr.user_id;
//this.csurl += rfres.username+"&room_id="+ustr.account+"&usid="+ustr.user_id;
// console.log("dd",chaturl);
this.csurl = chaturl;

Loading…
Cancel
Save