Browse Source

提现充值划转等完成

master
j1ack 3 years ago
parent
commit
25ea09dd83
  1. 172
      pages/me/transfer.vue
  2. 185
      pages/recharge/recharge.vue
  3. 139
      pages/recharge/rechargeRecord.vue
  4. 84
      pages/withdrawal/addAddress.vue
  5. 122
      pages/withdrawal/chooseAddress.vue
  6. 204
      pages/withdrawal/withdrawal.vue
  7. 149
      pages/withdrawal/withdrawalRecord.vue
  8. 7
      utils/language/en_US.js
  9. 1624
      utils/qrCode/wxqrcode.js

172
pages/me/transfer.vue

@ -7,7 +7,7 @@
<!-- coin选择框 --> <!-- coin选择框 -->
<view class="text">{{ i18n.SelectCurrency }}</view> <view class="text">{{ i18n.SelectCurrency }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.coinCode" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.PleaseChooseCoin"> :placeholder="i18n.PleaseChooseCoin">
</u-input> </u-input>
<view class="downSelect" @click="USDTPopupShow = true"></view> <view class="downSelect" @click="USDTPopupShow = true"></view>
@ -15,7 +15,7 @@
<!-- form地址选择框 --> <!-- form地址选择框 -->
<view class="text">{{ i18n.From }}</view> <view class="text">{{ i18n.From }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.fromWays" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.OptionAccount"> :placeholder="i18n.OptionAccount">
</u-input> </u-input>
<view class="downSelect" @click="accountPopupShow = true"></view> <view class="downSelect" @click="accountPopupShow = true"></view>
@ -23,27 +23,30 @@
<!-- to地址选择框 --> <!-- to地址选择框 -->
<view class="text">{{ i18n.To }}</view> <view class="text">{{ i18n.To }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.toWays" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.TradingAccount"> :placeholder="i18n.TradingAccount">
</u-input> </u-input>
<view class="downSelect" @click="accountPopupShow = true"></view> <view class="downSelect" @click="accountPopupShowTo = true"></view>
</view> </view>
<!-- 数量 --> <!-- 数量 -->
<view class="text">{{ i18n.TransferNumber }}</view> <view class="text">{{ i18n.TransferNumber }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.tranAmt" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.PleaseEnterNumber"> :placeholder="i18n.PleaseEnterNumber">
</u-input> </u-input>
<view class="numberDownSelect">USDT <view class="all">{{i18n.ALL}}</view> <view class="numberDownSelect">{{coinInfo.coinCode||''}}
<view class="all" @click="coinInfo.tranAmt=coinWayInfo.userCapital">{{i18n.ALL}}</view>
</view> </view>
</view> </view>
<view class="Usable">{{ i18n.Usable }} <view class="Usable">{{ i18n.Usable }}
<view class="number">{{info.userCapital}}{{info.coinCode}}</view>
<view class="number">{{coinWayInfo.userCapital>=0?coinWayInfo.userCapital:info.userCapital}}{{coinWayInfo.coinCode?coinWayInfo.coinCode:info.coinCode}}</view>
</view> </view>
</view> </view>
<!-- 按钮 --> <!-- 按钮 -->
<u-button class="transferButton" color="#00E8A2" throttleTime="500">{{ <u-button class="transferButton" color="#00E8A2" throttleTime="500" :disabled="!transferDis"
@click="transfer">{{
i18n.Transfer i18n.Transfer
}}</u-button> }}</u-button>
@ -55,47 +58,79 @@
<scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" <scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true"
@touchmove.stop.prevent=""> @touchmove.stop.prevent="">
<radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue"> <radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue">
<label class="checkBox" v-for="(item, index) in 10" :key="index"> <label class="checkBox" v-for="(item, index) in info.coinList" :key="index"
@click="radioChange(item)">
<view class="icon"> <view class="icon">
<u-icon name="../../static/maskets/bye.png" size="52rpx" width="52rpx"></u-icon> <u-icon :name="baseURL+'/coins/'+item.enname+'.png'" size="52rpx" width="52rpx">
</u-icon>
</view> </view>
<view class="iconName"> <view class="iconName">
<view class="top">USDT</view> <view class="top">{{item.enname}}</view>
<view class="bottom">BTC</view> <view class="bottom">{{item.useCapital}}{{" "}}{{item.code}}</view>
</view> </view>
<radio color="#00E8A2" shape="square" :checked="coinInfo.coinCode==item.enname"></radio>
<radio color="#00E8A2" shape="square"></radio>
</label> </label>
</radio-group> </radio-group>
</scroll-view> </scroll-view>
<u-button class="button" color="#00E8A2" throttleTime="500" @click="USDTPopupShow = false">OK <u-button class="button" color="#00E8A2" throttleTime="500" @click="getCoin">OK
</u-button> </u-button>
</view> </view>
</u-popup> </u-popup>
<!-- account账户按钮通知弹出层 --> <!-- account账户按钮form通知弹出层 -->
<u-popup class="accountPopup" :show="accountPopupShow" round="40rpx" mode="bottom" <u-popup class="accountPopup" :show="accountPopupShow" round="40rpx" mode="bottom"
@close="accountPopupShow = false" @open="accountPopupShow = true" bgColor="#211F32"> @close="accountPopupShow = false" @open="accountPopupShow = true" bgColor="#211F32">
<view class="content"> <view class="content">
<view class="close" @click="accountPopupShow = false"></view> <view class="close" @click="accountPopupShow = false"></view>
<scroll-view scroll-y="true" style="height: 200rpx;" scroll-with-animation="true" <scroll-view scroll-y="true" style="height: 200rpx;" scroll-with-animation="true"
@touchmove.stop.prevent=""> @touchmove.stop.prevent="">
<radio-group class="radioGroup" @change="accountRadioChange" v-model="accountRadioValue"> <radio-group class="radioGroup" >
<label class="checkBox" v-for="(item, index) in 3" :key="index"> <!-- v-for="(item, index) in 3" :key="index" -->
<view class="name">Option account</view> <label class="checkBox" @click="getAccount('exchange','form')">
<radio color="#00E8A2" shape="square"></radio> <view class="name">Balance account</view>
<radio color="#00E8A2" shape="square" :checked="transCoinInfo.fromWays=='exchange'"></radio>
</label>
<label class="checkBox" @click="getAccount('contract','form')">
<view class="name">Contract account</view>
<radio color="#00E8A2" shape="square" :checked="transCoinInfo.fromWays=='contract'"></radio>
</label>
</radio-group>
</scroll-view>
<u-button class="button" color="#00E8A2" throttleTime="500" @click="getCoinOrAccount">OK
</u-button>
</view>
</u-popup>
<!-- account账户按钮to通知弹出层 -->
<u-popup class="accountPopup" :show="accountPopupShowTo" round="40rpx" mode="bottom"
@close="accountPopupShowTo = false" @open="accountPopupShowTo = true" bgColor="#211F32">
<view class="content">
<view class="close" @click="accountPopupShowTo = false"></view>
<scroll-view scroll-y="true" style="height: 200rpx;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<radio-group class="radioGroup" >
<!-- v-for="(item, index) in 3" :key="index" -->
<label class="checkBox" @click="getAccount('contract','to')">
<view class="name">Contract account</view>
<radio color="#00E8A2" shape="square" :checked="transCoinInfo.toWays=='contract'"></radio>
</label>
<label class="checkBox" @click="getAccount('exchange','to')">
<view class="name">Balance account</view>
<radio color="#00E8A2" shape="square" :checked="transCoinInfo.toWays=='exchange'"></radio>
</label> </label>
</radio-group> </radio-group>
</scroll-view> </scroll-view>
<u-button class="button" color="#00E8A2" throttleTime="500" @click="accountPopupShow = false">OK <u-button class="button" color="#00E8A2" throttleTime="500" @click="getCoinOrAccount">OK
</u-button> </u-button>
</view> </view>
</u-popup> </u-popup>
</view> </view>
</view> </view>
@ -103,14 +138,31 @@
<script> <script>
import api from '@/utils/api' import api from '@/utils/api'
import constant from '@/utils/constant.js';
export default { export default {
name: "transfer", name: "transfer",
data() { data() {
return { return {
info:{}, type:'',
coinWayInfo:{},
transCoinInfo:{
coinCode:null,
fromWays:null,
},
coinCode: null,
coinCode2: null,
coinInfo: {
coinCode: null,
fromWays: null,
toWays: null,
tranAmt: null,
},
baseURL: '',
info: {},
coin: '', coin: '',
USDTPopupShow: false, USDTPopupShow: false,
accountPopupShow: false, accountPopupShow: false,
accountPopupShowTo: false,
USDTRadioValue: '', USDTRadioValue: '',
accountRadioValue: '', accountRadioValue: '',
}; };
@ -119,24 +171,86 @@
i18n() { i18n() {
return this.$t("me"); return this.$t("me");
}, },
transferDis() {
return this.coinInfo.coinCode && this.coinInfo.fromWays && this.coinInfo.toWays && this.coinInfo.tranAmt
},
}, },
onLoad() { onLoad() {
this.baseURL = constant.BASE_URL
this.getInfo() this.getInfo()
}, },
onShow() {}, onShow() {},
methods: { methods: {
//
reset(){
this.type=''
this.coinWayInfo={}
this.transCoinInfo={
coinCode:null,
fromWays:null,
}
this.coinCode=null,
this.coinCode2=null,
this.coinInfo={
coinCode: null,
fromWays: null,
toWays: null,
tranAmt: null,
}
},
getAccount(e,type){
this.type=type
if(type=='form'){
this.transCoinInfo.fromWays=e
}else{
this.transCoinInfo.toWays=e
}
this.$forceUpdate()
},
//
transfer() {
api.transfer(this.coinInfo).then(res => {
uni.$u.toast(this.$t("login").Transfersucceeded)
this.reset()
setTimeout(() => {
this.getInfo()
}, 1200)
})
},
//
radioChange(e) {
this.coinCode = e.enname
this.coinCode2 = e.code
},
//
getCoin() {
this.coinInfo.coinCode = this.coinCode
this.coinInfo.coinCode2 = this.coinCode2
this.USDTPopupShow = false
},
//
getCoinOrAccount() {
this.transCoinInfo.coinCode=this.coinInfo.coinCode2
this.coinInfo.fromWays=this.transCoinInfo.fromWays
this.coinInfo.toWays=this.transCoinInfo.toWays
if(this.type=='to'){
this.accountPopupShowTo = false
return;
}
api.changeCoinWays(this.transCoinInfo).then(res => {
this.coinWayInfo=res
this.accountPopupShow = false
})
},
//
getInfo() { getInfo() {
api.getTransferConfig({}).then(res => { api.getTransferConfig({}).then(res => {
console.log(res) console.log(res)
this.info=res this.info = res
}) })
}, },
USDTRadioChange(e) { USDTRadioChange(e) {},
console.log(e);
},
accountRadioChange(e) {
console.log(e);
}
}, },
} }

185
pages/recharge/recharge.vue

@ -1,39 +1,40 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.Recharge }}<view slot="right" class="right" @click="goto('rechargeRecord')">{{ i18n.Record <navigation>{{ i18n.Recharge }}
<view slot="right" class="right" @click="goto('rechargeRecord')">{{ i18n.Record
}} }}
</view> </view>
</navigation> </navigation>
<!-- headBtn --> <!-- headBtn -->
<view class="head"> <view class="head">
<view class="headItem" @click="pageState = 'coinRecharge'" <view class="headItem" @click="pageState = 'crypto',getRechargeInfo()"
:class="{ select: pageState === 'coinRecharge' }"> :class="{ select: pageState === 'crypto' }">
{{ i18n.CoinRecharge }} {{ i18n.CoinRecharge }}
</view> </view>
<view class="headItem" @click="pageState = 'cashRecharge'" <view class="headItem" @click="pageState = 'online',getRechargeInfo()"
:class="{ select: pageState === 'cashRecharge' }"> :class="{ select: pageState === 'online' }">
{{ i18n.CashRecharge }} {{ i18n.CashRecharge }}
</view> </view>
</view> </view>
<view class="coinContent" v-if="pageState === 'coinRecharge'"> <view class="coinContent" v-if="pageState === 'crypto'">
<!-- coin选择框 --> <!-- coin选择框 -->
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.PleaseChooseCoin"> :placeholder="i18n.PleaseChooseCoin" :disabled="true">
</u-input> </u-input>
<view class="selectCoinBtn" @click="USDTPopupShow = true">USDT <view class="selectCoinBtn" @click="USDTPopupShow = true">{{coin}}
</view> </view>
</view> </view>
<view class="coin-item"> <view class="coin-item">
<view class="QRCode"> <view class="QRCode">
<u-image class="QRCodeImg" src="../../static/me/QR-code.png" width="310rpx" height="310rpx"> <u-image class="QRCodeImg" :src="qr" width="310rpx" height="310rpx">
</u-image> </u-image>
</view> </view>
<view class="CoinAddressTitle">{{ i18n.CoinDepositAddress }}</view> <view class="CoinAddressTitle">{{ i18n.CoinDepositAddress }}</view>
<view class="Copy" @click="copyAddress('123')">{{ i18n.CopyAddress }}</view> <view class="Copy" @click="copyAddress(coinAddress)">{{ i18n.CopyAddress }}</view>
<view class="CoinAddress">{{ 'MBDLNKJ9080FWO83RHFKSJLIRJF9S9890DKJ90' }}</view> <view class="CoinAddress">{{ coinAddress }}</view>
<u-divider text="" :dashed="true"></u-divider> <u-divider text="" :dashed="true"></u-divider>
<view class="ScanQR">{{ i18n.ScanQR }}</view> <view class="ScanQR">{{ i18n.ScanQR }}</view>
</view> </view>
@ -46,18 +47,20 @@
@open="USDTPopupShow = true" bgColor="#211F32"> @open="USDTPopupShow = true" bgColor="#211F32">
<view class="content"> <view class="content">
<view class="close" @click="USDTPopupShow = false"></view> <view class="close" @click="USDTPopupShow = false"></view>
<scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" @touchmove.stop.prevent=""> <scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue"> <radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue">
<label class="checkBox" v-for="(item, index) in 10" :key="index"> <label class="checkBox" v-for="(item, index) in reInfo.coins" :key="index"
@click="radioChange(item)">
<view class="icon"> <view class="icon">
<u-icon name="../../static/maskets/logo.png" size="64rpx" width="64rpx"></u-icon> <u-icon :name="baseURL+'/coins/'+item.code+'.png'" size="52rpx" width="52rpx">
</u-icon>
</view> </view>
<view class="iconName"> <view class="iconName">
<view class="top">USDT</view> <view class="top">{{item.enname}}</view>
<view class="bottom">BTC</view> <view class="bottom">{{item.useCapital}}{{" "}}{{item.code}}</view>
</view> </view>
<radio color="#00E8A2" shape="square" :checked="coin==item.enname"></radio>
<radio color="#00E8A2" shape="square"></radio>
</label> </label>
</radio-group> </radio-group>
@ -69,44 +72,27 @@
</u-popup> </u-popup>
</view> </view>
<view class="cashContent" v-if="pageState === 'cashRecharge'"> <view class="cashContent" v-if="pageState === 'online'">
<view class="enter"> <view class="enter">
<view class="selectTitle">{{ i18n.selectAmount }}</view> <view class="selectTitle">{{ i18n.selectAmount }}</view>
<view class="numberSelect"> <view class="numberSelect">
<view class="item" :class="{ select: selectNumberValue === 100 }" @click="selectNumberValue = 100"> <view :class="{ select: item === onlineInfo.tranAmt }" class="item" v-for="item,index in reInfo.fastAmount" @click="getAmount(item,index)">
$100 {{item}}{{coinTypeInfo.system_coin_code}}
</view>
<view class="item" :class="{ select: selectNumberValue === 200 }" @click="selectNumberValue = 200">
$200
</view> </view>
<view class="item" :class="{ select: selectNumberValue === 300 }" @click="selectNumberValue = 300">
$300
</view> </view>
<view class="item" :class="{ select: selectNumberValue === 1000 }" <input class="input" v-model="onlineInfo.tranAmt" focus :placeholder="i18n.EnterNumber"
@click="selectNumberValue = 1000"> placeholder-style="color:#A1A0A8" />
$1000</view>
<view class="item" :class="{ select: selectNumberValue === 5000 }"
@click="selectNumberValue = 5000">
$5000</view>
<view class="item" :class="{ select: selectNumberValue === 10000 }"
@click="selectNumberValue = 10000">
$10000</view>
</view>
<input class="input" v-model="selectNumberValue" focus :placeholder="i18n.EnterNumber" placeholder-style="color:#A1A0A8" />
</view> </view>
<view class="RechargeMethod"> <view class="RechargeMethod">
<view class="methodTitle">{{ i18n.RechargeMethod }}</view> <view class="methodTitle">{{ i18n.RechargeMethod }}</view>
<view class="methodSelect"> <view class="methodSelect">
<view class="item" :class="{ select: selectMethod === '1' }" @click="selectMethod = '1'"> <view class="item" v-for="item,index in reInfo.payTypes" :class="{ select:item.payType === onlineInfo.payType }" @click="getCoinType(item,index)" >
Online payment1 {{item.typeName}}
</view>
<view class="item" :class="{ select: selectMethod === '2' }" @click="selectMethod = '2'">
Online payment2
</view> </view>
</view> </view>
</view> </view>
<u-button class="button" color="#00E8A2" throttleTime="500">{{ i18n.Submit }} <u-button class="button" color="#00E8A2" throttleTime="500" @click="recharge">{{ i18n.Submit }}
</u-button> </u-button>
</view> </view>
@ -115,28 +101,121 @@
</template> </template>
<script> <script>
import uniCopy from '@/utils/uni-copy' import uniCopy from '@/utils/uni-copy'
export default { import api from '@/utils/api'
import constant from '@/utils/constant.js';
import QR from '@/utils/qrCode/wxqrcode.js'
export default {
name: "recharge", name: "recharge",
data() { data() {
return { return {
pageState: 'coinRecharge', //
coinAddress: null,
baseURL: '',
reInfo: {},
qr: null,
pageState: 'crypto',
//
coin: '', coin: '',
// code
coinCode: '',
USDTPopupShow: false, USDTPopupShow: false,
USDTRadioValue: '', USDTRadioValue: '',
selectNumberValue: 100, selectNumberValue: 100,
selectMethod: '1', selectMethod: '1',
// 线
onlineInfo: {
payType: null,
tranAmt: null,
},
}; };
}, },
computed: { computed: {
i18n() { i18n() {
return this.$t("recharge"); return this.$t("recharge");
}, },
//
coinTypeInfo() {
return uni.getStorageSync('coinTypeInfo')
}
}, },
onLoad() { onLoad() {
this.baseURL = constant.BASE_URL
this.getRechargeInfo()
}, },
onShow() { }, onShow() {},
methods: { methods: {
//
recharge(){
api.recharge(this.onlineInfo).then(res => {
uni.$u.toast(this.$t("login").Rechargesucceeded)
setTimeout(()=>{
this.getRechargeInfo()
},1200)
})
},
//
getAmount(t,i) {
this.onlineInfo.tranAmt=t
},
//
getCoinType(t,i){
this.onlineInfo.payType=t.payType
},
radioChange(e) {
this.coin = e.enname
this.coinCode = e.code
if (!e.address) {
let coinInfo = {
coinCode: e.code
}
// code
api.rechargeAddress(coinInfo).then(res => {
this.coinAddress = res.address
this.qr = this.reInfo.generateQRCodeUrl + this.coinAddress
})
} else {
this.coinAddress = e.address
this.qr = this.reInfo.generateQRCodeUrl + this.coinAddress
}
},
//
getQr(e) {
this.qr = QR.createQrCodeImg(e)
},
getRechargeInfo(e) {
api.rechargeConfig({
type: this.pageState
}).then(res => {
this.reInfo = res
if (this.pageState == 'crypto') {
if (this.reInfo.coins[0].address) {
this.coinAddress = this.reInfo.coins[0].address
let img = this.reInfo.generateQRCodeUrl + this.reInfo.coins[0].address
this.coin = this.reInfo.coins[0].enname
this.coinCode = this.reInfo.coins[0].code
this.getQr(img)
} else {
let coinInfo = {
coinCode: this.reInfo.coins[0].code
}
// code
api.rechargeAddress(coinInfo).then(res => {
this.coinAddress = res.address
this.qr = this.reInfo.generateQRCodeUrl + this.coinAddress
})
}
} else {
this.reInfo.fastAmount = this.reInfo.fastAmount.split(',')
this.onlineInfo.tranAmt=this.reInfo.fastAmount[0]
this.onlineInfo.payType=this.reInfo.payTypes[0].payType
}
})
},
goto(page) { goto(page) {
// console.log(page); // console.log(page);
let url = ''; let url = '';
@ -180,11 +259,11 @@ export default {
}, },
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.right { .right {
position: absolute; position: absolute;
@ -240,14 +319,14 @@ export default {
width: 460rpx; width: 460rpx;
height: 124rpx; height: 124rpx;
display: inline-block; display: inline-block;
background: #211F32 !important;
} }
.selectCoinBtn { .selectCoinBtn {
position: absolute; position: absolute;
width: 170rpx;
height: 54rpx; height: 54rpx;
top: 36rpx; top: 36rpx;
right: 32rpx; right: 65rpx;
line-height: 56rpx; line-height: 56rpx;
font-size: 36rpx; font-size: 36rpx;
padding: 0; padding: 0;
@ -263,7 +342,7 @@ export default {
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
top: 12rpx; top: 12rpx;
right: 10rpx; right: -40rpx;
} }
} }
} }
@ -523,5 +602,5 @@ export default {
} }
</style> </style>

139
pages/recharge/rechargeRecord.vue

@ -4,58 +4,63 @@
<navigation>{{ i18n.RechargeRecord }}</navigation> <navigation>{{ i18n.RechargeRecord }}</navigation>
<!-- headBtn --> <!-- headBtn -->
<view class="head"> <view class="head">
<view class="headItem" @click="pageState = 'coinRecharge'" <view class="headItem" @click="form.type = 'crypto',getList()"
:class="{ select: pageState === 'coinRecharge' }"> :class="{ select: form.type === 'crypto' }">
{{ i18n.CoinRecharge }} {{ i18n.CoinRecharge }}
</view> </view>
<view class="headItem" @click="pageState = 'cashRecharge'" <view class="headItem" @click="form.type = 'online',getList()"
:class="{ select: pageState === 'cashRecharge' }"> :class="{ select:form.type === 'online' }">
{{ i18n.CashRecharge }} {{ i18n.CashRecharge }}
</view> </view>
</view> </view>
<view class="cardList"> <view class="cardList">
<view class="card" v-for="(item, index) in 4" :key="index"> <view class="card" v-for="(item, index) in userInfoObj" :key="index">
<!-- 卡片条件渲染 --> <!-- 卡片条件渲染 -->
<!-- balance --> <!-- balance -->
<card-header v-if="pageState === 'coinRecharge'" iconName="../../static/recharge/money-recive.png" <!-- <card-header v-if="form.type === 'crypto'" iconName="../../static/recharge/money-recive.png"
:title="'904.29483230ACTA'" rightName="Succeed" fontColor="#00E8A2"> :title="'904.29483230ACTA'" rightName="Succeed" fontColor="#00E8A2">
</card-header> -->
<card-header v-if="form.type === 'crypto'" :iconName="baseURL+'/coins/'+item.coinCode+'.png'"
:title="item.tranAmt+item.coinCode"
:rightName="item.orderStatus=='pay_unpaid'?'Unpaid':item.orderStatus=='pay_success'?'Success':
item.orderStatus=='pay_failure'?'Failed':item.orderStatus=='pay_processing'?'Paying':'Closed'"
:fontColor="item.orderStatus=='pay_unpaid'?'#F2FE8D':item.orderStatus=='pay_success'?'#00E8A2':
item.orderStatus=='pay_failure'?'#F4506A':item.orderStatus=='pay_processing'?'#00D1FF':'#A1A0A8'">
</card-header> </card-header>
<view class="dataBody" v-if="pageState === 'coinRecharge'"> <view class="dataBody" v-if="form.type === 'crypto'">
<view style="padding:20rpx 32rpx;"> <view style="padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.OrderID" :value="'293829773920223873676'"></key-value-row> <key-value-row :keyName="i18n.OrderID" :value="item.orderNo"></key-value-row>
<key-value-row :keyName="i18n.Fees" :value="'10.0922'"></key-value-row> <key-value-row :keyName="i18n.Fees" :value="(item.tranAmt-(parseInt(item.realAmount,16)))+item.coinCode"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:50:34'"></key-value-row> <key-value-row :keyName="i18n.Time" :value="item.timestr"></key-value-row>
</view> </view>
<view style="border-top: 2rpx solid #323045;padding:0rpx 32rpx; margin-bottom: 20rpx;"> <view style="border-top: 2rpx solid #323045;padding:0rpx 32rpx; margin-bottom: 20rpx;">
<show-more> <show-more>
<key-value-row :keyName="i18n.Address" :value="'dhiukyfdhi8797979870800'"></key-value-row> <key-value-row :keyName="i18n.Address" :value="item.toAddress"></key-value-row>
<key-value-row :keyName="i18n.Hash" :value="'dhiukyfdhi8797979870800'"></key-value-row> <key-value-row :keyName="i18n.Hash" :value="item.txid"></key-value-row>
<view class="text">Postscript : ontact customer service on the top-left corner for identity
verific
</view>
</show-more> </show-more>
</view> </view>
</view> </view>
<!-- contarct --> <!-- contarct -->
<card-header v-if="pageState === 'cashRecharge'" iconName="../../static/recharge/money-recive.png" <card-header v-if="form.type === 'online'" iconName="../../static/recharge/money-recive.png"
:title="'904.29483230ACTA'" rightName="Succeed" fontColor="#00E8A2"> :title="item.tranAmt+item.coinCode"
:rightName="item.orderStatus=='pay_unpaid'?'Unpaid':item.orderStatus=='pay_success'?'Success':
item.orderStatus=='pay_failure'?'Failed':item.orderStatus=='pay_processing'?'Paying':'Closed'"
:fontColor="item.orderStatus=='pay_unpaid'?'#F2FE8D':item.orderStatus=='pay_success'?'#00E8A2':
item.orderStatus=='pay_failure'?'#F4506A':item.orderStatus=='pay_processing'?'#00D1FF':'#A1A0A8'">
</card-header> </card-header>
<view class="dataBody" v-if="pageState === 'cashRecharge'"> <view class="dataBody" v-if="form.type === 'online'">
<view style="padding:20rpx 32rpx;"> <view style="padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.OrderID" :value="'293829773920223873676'"></key-value-row> <key-value-row :keyName="i18n.OrderID" :value="item.orderNo"></key-value-row>
<key-value-row :keyName="i18n.Fees" :value="'10.0922'"></key-value-row> <key-value-row :keyName="i18n.Fees" :value="(item.tranAmt-(parseInt(item.realAmount,16)))+item.coinCode"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:50:34'"></key-value-row> <key-value-row :keyName="i18n.Time" :value="item.timestr"></key-value-row>
</view> </view>
<view style="border-top: 2rpx solid #323045;padding:0rpx 32rpx; margin-bottom: 20rpx;"> <view style="border-top: 2rpx solid #323045;padding:0rpx 32rpx; margin-bottom: 20rpx;">
<show-more> <show-more>
<key-value-row :keyName="i18n.USDTRate" :value="'19298'"></key-value-row> <key-value-row :keyName="i18n.USDTRate" :value="item.usdtRate"></key-value-row>
<key-value-row :keyName="i18n.USDT" :value="'298237'"></key-value-row> <key-value-row :keyName="i18n.USDT" :value="item.usdtAmount"></key-value-row>
<view class="text">Postscript : ontact customer service on the top-left corner for identity
verific
</view>
</show-more> </show-more>
</view> </view>
@ -65,19 +70,40 @@
</view> </view>
</view> </view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="userInfoObj.length" height="80" />
</view> </view>
</template> </template>
<script> <script>
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
import CardHeader from '../../components/cardHeader/cardHeader.vue'; import CardHeader from '../../components/cardHeader/cardHeader.vue';
import ShowMore from '../../components/showMore/showMore.vue'; import ShowMore from '../../components/showMore/showMore.vue';
export default { import constant from '@/utils/constant.js';
components: { KeyValueRow, CardHeader, ShowMore }, import api from '@/utils/api'
export default {
components: {
KeyValueRow,
CardHeader,
ShowMore
},
name: "rechargeRecord", name: "rechargeRecord",
data() { data() {
return { return {
baseURL:'',
pageState: 'coinRecharge', pageState: 'coinRecharge',
isLoadMore: false, //
loadStatus: 'loadmore',
loadingText: this.$t("login").toload,
loadmoreText: this.$t("login").pullup,
nomoreText: this.$t("login").Nomore,
form: {
pageNumber: 1,
pageSize: 20,
type:'crypto',
},
userInfoObj: [],
}; };
}, },
computed: { computed: {
@ -85,20 +111,63 @@ export default {
return this.$t("recharge"); return this.$t("recharge");
}, },
}, },
onReachBottom() {
if (!this.isLoadMore) {
this.form.pageNumber += 1
this.getList();
}
},
onLoad() { onLoad() {
this.baseURL = constant.BASE_URL
this.getList()
}, },
onShow() { }, onShow() {},
methods: { methods: {
change(e) { change(e) {
console.log(e); console.log(e);
},
getList() {
this.isLoadMore = true
api.rechargeList(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
} }
} else {
this.userInfoObj = res.content
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
}
if (this.userInfoObj.length >= Number(res.totalElements)) { //
this.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
}
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
}
this.$forceUpdate()
})
},
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.head { .head {
margin-top: 200rpx; margin-top: 200rpx;
@ -155,5 +224,5 @@ export default {
} }
} }
} }
</style> </style>

84
pages/withdrawal/addAddress.vue

@ -5,29 +5,29 @@
<view class="body"> <view class="body">
<!-- coin选择框 --> <!-- coin选择框 -->
<view class="choose-item"> <view class="choose-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.coinCode" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.PleaseChooseCoin"> :placeholder="i18n.PleaseChooseCoin">
</u-input> </u-input>
<view class="selectCoinBtn" @click="USDTPopupShow = true">USDT <view class="selectCoinBtn" @click="USDTPopupShow = true">{{coinInfo.coinCode}}
</view> </view>
</view> </view>
<view class="addressBody"> <view class="addressBody">
<view class="address-title">{{ i18n.Address }}</view> <view class="address-title">{{ i18n.Address }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="address" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.address" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.enterAddressTips"> :placeholder="i18n.enterAddressTips">
</u-input> </u-input>
</view> </view>
<view class="address-title">{{ i18n.Remarks }}</view> <view class="address-title">{{ i18n.Remarks }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="remarks" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.remarks" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.enterRemarksTips"> :placeholder="i18n.enterRemarksTips">
</u-input> </u-input>
</view> </view>
</view> </view>
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="btnIsCanClick">{{ i18n.Confirm }} <u-button class="button" color="#00E8A2" throttleTime="500" :disabled="btnIsCanClick" @click="save">{{ i18n.Confirm }}
</u-button> </u-button>
<!-- USDT按钮通知弹出层 --> <!-- USDT按钮通知弹出层 -->
@ -37,16 +37,17 @@
<view class="close" @click="USDTPopupShow = false"></view> <view class="close" @click="USDTPopupShow = false"></view>
<scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" @touchmove.stop.prevent=""> <scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" @touchmove.stop.prevent="">
<radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue"> <radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue">
<label class="checkBox" v-for="(item, index) in 10" :key="index"> <label class="checkBox" v-for="(item, index) in withdrawInfo.coins" :key="index"
@click="radioChange(item)">
<view class="icon"> <view class="icon">
<u-icon name="../../static/maskets/logo.png" size="64rpx" width="64rpx"></u-icon> <u-icon :name="baseURL+'/coins/'+item.code+'.png'" size="52rpx" width="52rpx">
</u-icon>
</view> </view>
<view class="iconName"> <view class="iconName">
<view class="top">USDT</view> <view class="top">{{item.enname}}</view>
<view class="bottom">BTC</view> <view class="bottom">{{item.useCapital}}{{" "}}{{item.code}}</view>
</view> </view>
<radio color="#00E8A2" shape="square" :checked="coinInfo.coinCode==item.enname"></radio>
<radio color="#00E8A2" shape="square"></radio>
</label> </label>
</radio-group> </radio-group>
@ -67,14 +68,25 @@
<script> <script>
import uniCopy from '@/utils/uni-copy' import uniCopy from '@/utils/uni-copy'
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
import api from '@/utils/api'
import constant from '@/utils/constant.js';
export default { export default {
components: { KeyValueRow }, components: { KeyValueRow },
name: "withdrawal", name: "withdrawal",
data() { data() {
return { return {
baseURL:'',
//
selectCoinInfo: {},
coinInfo: {
coinCode:null,
address:null,
remarks:null,
},
//
withdrawInfo: {},
coin: '', coin: '',
address: '', address: '',
address: '',
USDTRadioValue: '', USDTRadioValue: '',
USDTPopupShow: false, USDTPopupShow: false,
@ -85,7 +97,7 @@ export default {
return this.$t("withdrawal"); return this.$t("withdrawal");
}, },
btnIsCanClick() { // btnIsCanClick() { //
if (this.coin && this.address && this.address) { if (this.coinInfo.coinCode && this.coinInfo.address && this.coinInfo.remarks) {
return false; // return false; //
}else{ }else{
return true return true
@ -93,6 +105,8 @@ export default {
} }
}, },
onLoad() { onLoad() {
this.baseURL = constant.BASE_URL
this.getWithConfig()
// //
uni.$on('coinAddressChang', (data) => { uni.$on('coinAddressChang', (data) => {
this.coinAddress = data.coinAddress this.coinAddress = data.coinAddress
@ -104,6 +118,45 @@ export default {
}, },
onShow() { }, onShow() { },
methods: { methods: {
//
save(){
api.withdrawAddressAdd({
coinCode:this.coinInfo.coinCode2,
address:this.coinInfo.address,
remarks:this.coinInfo.remarks,
}).then(res => {
uni.$u.toast(this.$t("login").Savesucceeded)
setTimeout(()=>{
this.coinInfo={
coinCode:null,
address:null,
remarks:null,
coinCode2:null,
}
},1200)
})
},
//
radioChange(e) {
this.selectCoinInfo = e
this.coinInfo.coinCode = e.enname
this.coinInfo.coinCode2 = e.code
},
//
getWithConfig() {
api.withdrawConfig({
type: 'crypto'
}).then(res => {
if (res) {
//
this.withdrawInfo = res
this.coinInfo.coinCode = this.withdrawInfo.coins[0].enname
this.coinInfo.coinCode2 = this.withdrawInfo.coins[0].code
}
})
},
goto(page) { goto(page) {
// console.log(page); // console.log(page);
let url = ''; let url = '';
@ -189,10 +242,9 @@ export default {
.selectCoinBtn { .selectCoinBtn {
position: absolute; position: absolute;
width: 170rpx;
height: 54rpx; height: 54rpx;
top: 36rpx; top: 36rpx;
right: 32rpx; right: 80rpx;
line-height: 56rpx; line-height: 56rpx;
font-size: 36rpx; font-size: 36rpx;
padding: 0; padding: 0;
@ -208,7 +260,7 @@ export default {
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
top: 12rpx; top: 12rpx;
right: 10rpx; right: -50rpx;
} }
} }

122
pages/withdrawal/chooseAddress.vue

@ -1,7 +1,8 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.ChooseAddress }}<view slot="right" class="right" @click="editFlag = !editFlag;">{{ <navigation>{{ i18n.ChooseAddress }}
<view slot="right" class="right" @click="editFlag = !editFlag;">{{
editFlag ? i18n.OK : i18n.Edit editFlag ? i18n.OK : i18n.Edit
}} }}
</view> </view>
@ -13,27 +14,31 @@
<view class="message-item last"> <view class="message-item last">
{{ i18n.message5 }} {{ i18n.message5 }}
</view> </view>
<view class="card" v-if="coinList.length > 0"> <view class="card" v-if="userInfoObj.length > 0">
<view class="dataBody" v-for="(item, index) in 4" :key="index"> <view class="dataBody" v-for="(item, index) in userInfoObj" :key="index">
<view class="coinTitle">USDT</view> <view class="coinTitle">{{item.coinEnname}}</view>
<view class="addressItem" v-for="(addressItem, addressIndex) in 2" :key="addressIndex" <!-- v-for="(addressItem, addressIndex) in 2" :key="addressIndex" -->
@click="itemClick(index, addressIndex)"> <view class="addressItem"
@click="itemClick(index, item)">
<view class="radio" <view class="radio"
:class="{ select: (editCoinIndex === index && editCoinAddressIndex === addressIndex) }" :class="{ select: (editCoinIndex === index && editCoinAddressIndex === item.id) }"
v-if="editFlag"></view> v-if="editFlag"></view>
<view class="addressInfo"> <view class="addressInfo">
<view class="addressTitle">{{ i18n.myOmniAddress }}</view> <view class="addressTitle">{{ i18n.myOmniAddress }}</view>
<view class="address">SDIHJSD9809U9ERF9IOU0980970</view> <view class="address">{{item.address}}</view>
<view class="time">2022/08/06 14:50:34</view> <view class="time">{{item.timestr}}</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="userInfoObj.length" height="80" />
<!-- 确认框 --> <!-- 确认框 -->
<u-modal :show="modalShow" :confirmText="i18n.OK" :cancelText="i18n.Cancel" :showCancelButton="true" <u-modal :show="modalShow" :confirmText="i18n.OK" :cancelText="i18n.Cancel" :showCancelButton="true"
:title="i18n.WarmTips" :content='i18n.WarmTipsText' @confirm="deleteAddress" @cancel="modalShow = false" :title="i18n.WarmTips" :content='i18n.WarmTipsText' @confirm="deleteAddress" @cancel="modalShow = false"
confirmColor="#00E8A2"> confirmColor="#00E8A2" cancelColor="#96959E">
</u-modal> </u-modal>
<!-- 编辑按钮 --> <!-- 编辑按钮 -->
<view class="buttonBg"> <view class="buttonBg">
@ -49,9 +54,13 @@
</template> </template>
<script> <script>
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
export default { import api from '@/utils/api'
components: { KeyValueRow }, import constant from '@/utils/constant.js';
export default {
components: {
KeyValueRow
},
name: "chooseAddress", name: "chooseAddress",
data() { data() {
return { return {
@ -64,6 +73,18 @@ export default {
currentCoin: 'USDT', currentCoin: 'USDT',
modalShow: false, modalShow: false,
isLoadMore: false, //
loadStatus: 'loadmore',
loadingText: this.$t("login").toload,
loadmoreText: this.$t("login").pullup,
nomoreText: this.$t("login").Nomore,
form: {
pageNumber: 1,
pageSize: 20,
type: 'crypto',
},
userInfoObj: [],
}; };
}, },
computed: { computed: {
@ -80,25 +101,63 @@ export default {
} }
}, },
onLoad() { onLoad() {
}, },
onShow() { }, onShow() {
this.getList()
},
methods: { methods: {
getList() {
this.isLoadMore = true
api.withdrawAddressList(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
} else {
this.userInfoObj = res.content
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
}
if (this.userInfoObj.length >= Number(res.totalElements)) { //
this.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
}
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
}
this.$forceUpdate()
})
},
itemClick(index, addressIndex) { itemClick(index, addressIndex) {
console.log(index, addressIndex)
// //
if (this.editFlag) { if (this.editFlag) {
// console.log(index, addressIndex); // console.log(index, addressIndex);
if (this.editCoinIndex === index && this.editCoinAddressIndex === addressIndex) { // if (this.editCoinIndex === index && this.editCoinAddressIndex === addressIndex.id) { //
this.editCoinIndex = ''; this.editCoinIndex = '';
this.editCoinAddressIndex = ''; this.editCoinAddressIndex = '';
} else { // } else { //
this.editCoinIndex = index; this.editCoinIndex = index;
this.editCoinAddressIndex = addressIndex; this.editCoinAddressIndex = addressIndex.id;
} }
} else { } else {
// vuex // vuex
uni.$emit('coinAddressChang', { uni.$emit('coinAddressChang', {
coinAddress: this.coinAddress, coinid: addressIndex.id,
coinAddress: addressIndex.address,
}); });
uni.navigateBack() uni.navigateBack()
@ -109,25 +168,37 @@ export default {
// //
if (this.editFlag) { if (this.editFlag) {
this.modalShow = true this.modalShow = true
} else { } else {
// //
uni.navigateTo({ uni.navigateTo({
url : '/pages/withdrawal/addAddress' url: '/pages/withdrawal/addAddress'
}); });
} }
}, },
deleteAddress() { deleteAddress() {
this.modalShow = false; this.modalShow = false;
console.log('deleteAddress'); //
api.withdrawAddressDel({
addressId:this.editCoinAddressIndex,
}).then(res => {
uni.$u.toast(this.$t("login").Deletesucceeded)
setTimeout(()=>{
this.getList()
},600)
})
}, },
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { /deep/ .u-modal__content__text{
color: #96959E;
}
.main {
.right { .right {
width: 82rpx; width: 82rpx;
@ -174,6 +245,7 @@ export default {
} }
.addressItem { .addressItem {
flex: 0 1 50%;
height: 180rpx; height: 180rpx;
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx 0; padding: 32rpx 0;
@ -200,8 +272,7 @@ export default {
} }
.addressInfo { .addressInfo {
flex: 1; width: 590rpx;
.addressTitle { .addressTitle {
position: relative; position: relative;
font-size: 24rpx; font-size: 24rpx;
@ -226,6 +297,7 @@ export default {
font-size: 24rpx; font-size: 24rpx;
line-height: 28rpx; line-height: 28rpx;
color: #A1A0A8; color: #A1A0A8;
word-break: break-all;
} }
.time { .time {
@ -285,5 +357,5 @@ export default {
} }
</style> </style>

204
pages/withdrawal/withdrawal.vue

@ -1,28 +1,30 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.Withdrawal }}<view slot="right" class="right" @click="goto('withdrawalRecord')">{{ <navigation>{{ i18n.Withdrawal }}
<view slot="right" class="right" @click="goto('withdrawalRecord')">{{
i18n.Record i18n.Record
}} }}
</view> </view>
</navigation> </navigation>
<!-- headBtn --> <!-- headBtn -->
<view class="head"> <view class="head">
<view class="headItem" @click="pageState = 'digitalCurrency'" <view class="headItem" @click="pageState = 'crypto',getWithConfig()"
:class="{ select: pageState === 'digitalCurrency' }"> :class="{ select: pageState === 'crypto' }">
{{ i18n.DigitalCurrency }} {{ i18n.DigitalCurrency }}
</view> </view>
<view class="headItem" @click="pageState = 'onLine'" :class="{ select: pageState === 'onLine' }"> <view class="headItem" @click="pageState = 'online',getWithConfig()"
:class="{ select: pageState === 'online' }">
{{ i18n.OnLine }} {{ i18n.OnLine }}
</view> </view>
</view> </view>
<view class="DCContent" v-if="pageState === 'digitalCurrency'"> <view class="DCContent" v-if="pageState === 'crypto'">
<!-- coin选择框 --> <!-- coin选择框 -->
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.coinCode" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.PleaseChooseCoin"> :placeholder="i18n.PleaseChooseCoin">
</u-input> </u-input>
<view class="selectCoinBtn" @click="USDTPopupShow = true">USDT <view class="selectCoinBtn" @click="USDTPopupShow = true">{{coinInfo.coinCode}}
</view> </view>
</view> </view>
@ -37,21 +39,31 @@
<!-- 分割线 --> <!-- 分割线 -->
<u-divider text="" lineColor="#B9C1D9"></u-divider> <u-divider text="" lineColor="#B9C1D9"></u-divider>
<!-- 可用数量 --> <!-- 可用数量 -->
<key-value-row :keyName="i18n.Quantity" :value="`${i18n.Available} ${AvailableValue} ${currentCoin}`" <key-value-row :keyName="i18n.Quantity"
:value="`${i18n.Available} ${parseInt(selectCoinInfo.useCapital,16)} ${selectCoinInfo.enname}`"
rightColor="#A1A0A8"></key-value-row> rightColor="#A1A0A8"></key-value-row>
<!-- 数量输入框 --> <!-- 数量输入框 -->
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.tranAmt" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.EnterTheQuantity"> :placeholder="i18n.EnterTheQuantity">
</u-input> </u-input>
<view class="all">{{ i18n.ALL }}</view> <view class="all" @click="coinInfo.tranAmt=parseInt(selectCoinInfo.useCapital,16)">{{ i18n.ALL }}
</view>
</view> </view>
<!-- 最低体现金额 --> <!-- 最低体现金额 -->
<key-value-row :keyName="i18n.MinimumWithdrawAmount" size="24rpx" <key-value-row :keyName="i18n.MinimumWithdrawAmount" size="24rpx"
:value="`${AvailableValue} ${currentCoin}`" rightColor="#A1A0A8"></key-value-row> :value="selectCoinInfo.withdrawMinAmount+selectCoinInfo.enname" rightColor="#A1A0A8">
</key-value-row>
<!-- 手续费 --> <!-- 手续费 -->
<key-value-row :keyName="i18n.HandlingFee" size="24rpx" :value="`${AvailableValue} ${currentCoin}`" <key-value-row :keyName="i18n.HandlingFee" size="24rpx"
rightColor="#A1A0A8"></key-value-row> :value="selectCoinInfo.withdrawFeeAmount+selectCoinInfo.enname" rightColor="#A1A0A8">
</key-value-row>
<view class="title">{{ i18n.PaymentPassword }}</view>
<view class="input-item">
<u-input class="input" type="password" v-model="coinInfo.payPassword" color="#fff" fontSize="32rpx"
border="none" :placeholder="i18n.enterPaymentPassword" style="width: 590rpx;">
</u-input>
</view>
</view> </view>
<view class="message-item first"> <view class="message-item first">
{{ i18n.message1 }} {{ i18n.message1 }}
@ -62,7 +74,8 @@
<view class="message-item last"> <view class="message-item last">
{{ i18n.message3 }} {{ i18n.message3 }}
</view> </view>
<u-button class="withdrawBtn" color="#00E8A2" throttleTime="500">{{ i18n.withdraw }} <u-button class="withdrawBtn" color="#00E8A2" throttleTime="500" @click="withdraw('virtual')"
:disabled="virtualWithdraw">{{ i18n.withdraw }}
</u-button> </u-button>
<!-- USDT按钮通知弹出层 --> <!-- USDT按钮通知弹出层 -->
@ -70,18 +83,20 @@
@open="USDTPopupShow = true" bgColor="#211F32"> @open="USDTPopupShow = true" bgColor="#211F32">
<view class="content"> <view class="content">
<view class="close" @click="USDTPopupShow = false"></view> <view class="close" @click="USDTPopupShow = false"></view>
<scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" @touchmove.stop.prevent=""> <scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue"> <radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue">
<label class="checkBox" v-for="(item, index) in 10" :key="index"> <label class="checkBox" v-for="(item, index) in withdrawInfo.coins" :key="index"
@click="radioChange(item)">
<view class="icon"> <view class="icon">
<u-icon name="../../static/maskets/logo.png" size="64rpx" width="64rpx"></u-icon> <u-icon :name="baseURL+'/coins/'+item.code+'.png'" size="52rpx" width="52rpx">
</u-icon>
</view> </view>
<view class="iconName"> <view class="iconName">
<view class="top">USDT</view> <view class="top">{{item.enname}}</view>
<view class="bottom">BTC</view> <view class="bottom">{{item.useCapital}}{{" "}}{{item.code}}</view>
</view> </view>
<radio color="#00E8A2" shape="square" :checked="coinInfo.coinCode==item.enname"></radio>
<radio color="#00E8A2" shape="square"></radio>
</label> </label>
</radio-group> </radio-group>
@ -94,7 +109,7 @@
</u-popup> </u-popup>
</view> </view>
<view class="OLContent" v-if="pageState === 'onLine'"> <view class="OLContent" v-if="pageState === 'online'">
<view class="bankCard" v-if="!ifNextStep"> <view class="bankCard" v-if="!ifNextStep">
<view class="header"> <view class="header">
<view class="bankTitle">{{ i18n.BankCardWithdrawal }}</view> <view class="bankTitle">{{ i18n.BankCardWithdrawal }}</view>
@ -104,10 +119,10 @@
<view class="addBankCardBtn" v-if="!hasBankCard" @click="goto('addBankCard')">{{ i18n.AddBankCard }} <view class="addBankCardBtn" v-if="!hasBankCard" @click="goto('addBankCard')">{{ i18n.AddBankCard }}
</view> </view>
<view class="bankCardInfo" v-if="hasBankCard"> <view class="bankCardInfo" v-if="hasBankCard">
<view class="username">ZHOU JIELUN</view> <view class="username">{{withdrawInfo.bankCard.acctName}}</view>
<view class="BankCardCode">4349 9545 9893 9854 027</view> <view class="BankCardCode">{{withdrawInfo.bankCard.acctId}}</view>
<key-value-row :keyName="'Bank of Melbourne'" size="24rpx" :value="'CODE98Y'" rightColor="#F2FE8D" <key-value-row :keyName="withdrawInfo.bankCard.bankName" size="24rpx"
leftColor="#fff"> :value="withdrawInfo.bankCard.bankCode" rightColor="#F2FE8D" leftColor="#fff">
</key-value-row> </key-value-row>
</view> </view>
@ -119,18 +134,19 @@
<view class="inputBody"> <view class="inputBody">
<view class="title">{{ i18n.WithdrawableAmount }}</view> <view class="title">{{ i18n.WithdrawableAmount }}</view>
<view class="withdrawableAmount-item"> <view class="withdrawableAmount-item">
<view class="withdrawableAmount"> {{ withdrawableAmount }} </view> <view class="withdrawableAmount">{{ withdrawInfo.useCapital}} {{coinTypeInfo.system_coin_code}}
</view>
</view> </view>
<view class="title">{{ i18n.Amount }}</view> <view class="title">{{ i18n.Amount }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="amount" color="#fff" fontSize="32rpx" border="none" <u-input class="input" v-model="coinInfo.tranAmt" color="#fff" fontSize="32rpx" border="none"
:placeholder="i18n.enterAmount"> :placeholder="i18n.enterAmount">
</u-input> </u-input>
</view> </view>
<view class="title">{{ i18n.PaymentPassword }}</view> <view class="title">{{ i18n.PaymentPassword }}</view>
<view class="input-item"> <view class="input-item">
<u-input class="input" type="password" v-model="paymentPassword" color="#fff" fontSize="32rpx" <u-input class="input" type="password" v-model="coinInfo.payPassword" color="#fff"
border="none" :placeholder="i18n.enterPaymentPassword"> fontSize="32rpx" border="none" :placeholder="i18n.enterPaymentPassword">
</u-input> </u-input>
</view> </view>
</view> </view>
@ -146,14 +162,30 @@
</template> </template>
<script> <script>
import uniCopy from '@/utils/uni-copy' import uniCopy from '@/utils/uni-copy'
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import api from '@/utils/api'
export default { import constant from '@/utils/constant.js';
components: { KeyValueRow }, import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
export default {
components: {
KeyValueRow
},
name: "withdrawal", name: "withdrawal",
data() { data() {
return { return {
pageState: 'digitalCurrency', //
selectCoinInfo: {},
coinInfo: {
tranAmt: null,
coinCode: null,
type: 'crypto',
addressId: null,
payPassword: null,
},
//
withdrawInfo: {},
baseURL: '',
pageState: 'crypto',
coinAddress: '', coinAddress: '',
AvailableValue: 3399, AvailableValue: 3399,
currentCoin: 'USDT', currentCoin: 'USDT',
@ -168,13 +200,29 @@ export default {
}; };
}, },
computed: { computed: {
//
coinTypeInfo() {
return uni.getStorageSync('coinTypeInfo')
},
//
virtualWithdraw() {
if (this.coinInfo.tranAmt && this.coinInfo.coinCode && this.coinInfo.type && this.coinInfo.addressId &&
this.coinInfo.payPassword) {
return false;
} else {
return true
}
},
i18n() { i18n() {
return this.$t("withdrawal"); return this.$t("withdrawal");
}, },
btnIsCanClick() { // btnIsCanClick() { //
if (this.hasBankCard && !this.ifNextStep) { // , if (this.hasBankCard && !this.ifNextStep) { // ,
return false; return false;
} if (this.amount && this.paymentPassword && this.ifNextStep) { // , }
if (this.coinInfo.tranAmt && this.coinInfo.coinCode && this.coinInfo.type && this.coinInfo.addressId &&
this.coinInfo.payPassword) {
// ,
return false; return false;
} else { } else {
return true return true
@ -182,17 +230,82 @@ export default {
} }
}, },
onLoad() { onLoad() {
this.baseURL = constant.BASE_URL
// //
uni.$on('coinAddressChang', (data) => { uni.$on('coinAddressChang', (data) => {
this.coinAddress = data.coinAddress this.coinAddress = data.coinAddress
this.coinInfo.addressId = data.coinid
}) })
this.getWithConfig();
}, },
onUnload() { onUnload() {
// //
uni.$off('coinAddressChang'); uni.$off('coinAddressChang');
}, },
onShow() { }, onShow() {
this.getWithConfig();
},
methods: { methods: {
//
withdraw(e) {
let info;
if (e == 'virtual') {
info={
type: this.coinInfo.type,
tranAmt: this.coinInfo.tranAmt,
addressId: this.coinInfo.addressId,
coinCode: this.coinInfo.coinCode2,
payPassword: this.coinInfo.payPassword
}
}else{
info={
type: this.coinInfo.type,
tranAmt: this.coinInfo.tranAmt,
addressId: this.coinInfo.addressId,
payPassword: this.coinInfo.payPassword
}
}
api.withdraw(info).then(res => {
console.log(res)
uni.$u.toast(this.$t("login").Withdrawalsucceeded)
setTimeout(() => {
this.coinInfo = {
tranAmt: null,
coinCode: null,
addressId: null,
payPassword: null,
}
this.getWithConfig()
}, 600)
})
},
//
radioChange(e) {
this.selectCoinInfo = e
this.coinInfo.coinCode = e.enname
this.coinInfo.coinCode2 = e.code
},
//
getWithConfig() {
api.withdrawConfig({
type: this.pageState
}).then(res => {
if (res) {
//
if (this.pageState == 'crypto') {
//
this.withdrawInfo = res
this.coinInfo.coinCode = this.withdrawInfo.coins[0].enname
this.selectCoinInfo = this.withdrawInfo.coins[0]
this.coinInfo.coinCode2 = this.withdrawInfo.coins[0].code
} else {
//
this.withdrawInfo = res
}
}
})
},
goto(page) { goto(page) {
// console.log(page); // console.log(page);
let url = ''; let url = '';
@ -247,17 +360,19 @@ export default {
btnClick() { btnClick() {
if (!this.ifNextStep) { // if (!this.ifNextStep) { //
this.ifNextStep = true this.ifNextStep = true
}else{ // this.coinInfo.type=this.pageState
this.coinInfo.addressId = this.withdrawInfo.bankCard.id
} else { //
this.withdraw()
} }
} }
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.right { .right {
position: absolute; position: absolute;
@ -317,10 +432,9 @@ export default {
.selectCoinBtn { .selectCoinBtn {
position: absolute; position: absolute;
width: 170rpx;
height: 54rpx; height: 54rpx;
top: 36rpx; top: 36rpx;
right: 32rpx; right: 80rpx;
line-height: 56rpx; line-height: 56rpx;
font-size: 36rpx; font-size: 36rpx;
padding: 0; padding: 0;
@ -336,7 +450,7 @@ export default {
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
top: 12rpx; top: 12rpx;
right: 10rpx; right: -40rpx;
} }
} }
@ -684,5 +798,5 @@ export default {
} }
</style> </style>

149
pages/withdrawal/withdrawalRecord.vue

@ -4,35 +4,39 @@
<navigation>{{ i18n.WithdrawalRecord }}</navigation> <navigation>{{ i18n.WithdrawalRecord }}</navigation>
<!-- headBtn --> <!-- headBtn -->
<view class="head"> <view class="head">
<view class="headItem" @click="pageState = 'digitalCurrency'" <view class="headItem" @click="form.type = 'crypto',getList()"
:class="{ select: pageState === 'digitalCurrency' }"> :class="{ select: form.type === 'crypto' }">
{{ i18n.DigitalCurrency }} {{ i18n.DigitalCurrency }}
</view> </view>
<view class="headItem" @click="pageState = 'onLine'" :class="{ select: pageState === 'onLine' }"> <view class="headItem" @click="form.type = 'online',getList()" :class="{ select:form.type=== 'online' }">
{{ i18n.OnLine }} {{ i18n.OnLine }}
</view> </view>
</view> </view>
<view class="cardList"> <view class="cardList">
<view class="card" v-for="(item, index) in 4" :key="index"> <view class="card" v-for="(item, index) in userInfoObj" :key="index">
<!-- 卡片条件渲染 --> <!-- 卡片条件渲染 -->
<!-- balance --> <!-- balance -->
<card-header v-if="pageState === 'digitalCurrency'" iconName="../../static/withdrawal/money-send.png" <card-header v-if="form.type === 'crypto'" :iconName="baseURL+'/coins/'+item.coinCode+'.png'"
:title="'904.29483230ACTA'" rightName="Succeed" fontColor="#00E8A2"> :title="item.tranAmt+item.coinCode"
:rightName="item.orderStatus=='processreview'?'Underreview':item.orderStatus=='processsuccess'?'Success':
item.orderStatus=='processing'?'Processing':item.orderStatus=='processfailed'?'Failed':'Failed'"
:fontColor="item.orderStatus=='processreview'?'#F2FE8D':item.orderStatus=='processsuccess'?'#00E8A2':
item.orderStatus=='processfailed'?'#F4506A':item.orderStatus=='processing'?'#00D1FF':'#A1A0A8'">
</card-header> </card-header>
<view class="dataBody" v-if="pageState === 'digitalCurrency'"> <view class="dataBody" v-if="form.type === 'crypto'">
<view style="padding:20rpx 32rpx;"> <view style="padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.OrderID" :value="'293829773920223873676'"></key-value-row> <key-value-row :keyName="i18n.OrderID" :value="item.orderNo"></key-value-row>
<key-value-row :keyName="i18n.Fees" :value="'10.0922'"></key-value-row> <key-value-row :keyName="i18n.Fees" :value="item.tranFee"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:50:34'"></key-value-row> <key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row>
</view> </view>
<view style="border-top: 2rpx solid #323045;padding:0rpx 32rpx; margin-bottom: 20rpx;"> <view style="border-top: 2rpx solid #323045;padding:0rpx 32rpx; margin-bottom: 20rpx;">
<show-more class="digitalShowMore"> <show-more class="digitalShowMore">
<key-value-row :keyName="i18n.Address" :value="'dhiukyfdhi8797979870800'"></key-value-row> <key-value-row :keyName="i18n.Address" :value="item.toAddress"></key-value-row>
<key-value-row :keyName="i18n.Hash" :value="'dhiukyfdhi8797979870800'"></key-value-row> <key-value-row :keyName="i18n.Hash" :value="item.txid"></key-value-row>
<view class="text">Postscript : ontact customer service on the top-left corner for identity <!-- <view class="text">Postscript : ontact customer service on the top-left corner for identity
verific verific
</view> </view> -->
</show-more> </show-more>
</view> </view>
@ -40,50 +44,76 @@
<!-- contarct --> <!-- contarct -->
<card-header v-if="pageState === 'onLine'" iconName="../../static/withdrawal/money-send.png" <!-- <card-header v-if="form.type === 'online'" iconName="../../static/withdrawal/money-send.png"
:title="'904.29483230ACTA'" rightName="Succeed" fontColor="#00E8A2"> :title="'904.29483230ACTA'" rightName="Succeed" fontColor="#00E8A2">
</card-header> -->
<card-header v-if="form.type === 'crypto'" iconName="../../static/withdrawal/money-send.png"
:title="item.tranAmt+item.coinCode"
:rightName="item.orderStatus=='processreview'?'Underreview':item.orderStatus=='processsuccess'?'Success':
item.orderStatus=='processing'?'Processing':item.orderStatus=='processfailed'?'Failed':'Failed'"
:fontColor="item.orderStatus=='processreview'?'#F2FE8D':item.orderStatus=='processsuccess'?'#00E8A2':
item.orderStatus=='processfailed'?'#F4506A':item.orderStatus=='processing'?'#00D1FF':'#A1A0A8'">
</card-header> </card-header>
<view class="dataBody" v-if="pageState === 'onLine'"> <view class="dataBody" v-if="form.type === 'online'">
<view style="padding:20rpx 32rpx;"> <view style="padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.OrderID" :value="'293829773920223873676'"></key-value-row> <key-value-row :keyName="i18n.OrderID" :value="item.orderNo"></key-value-row>
<key-value-row :keyName="i18n.Fees" :value="'10.0922'"></key-value-row> <key-value-row :keyName="i18n.Fees" :value="item.tranFee"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:50:34'"></key-value-row> <key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row>
</view> </view>
<show-more class="onLineShowMore" style="border-top: 2rpx solid #323045;margin-bottom: 20rpx;"> <show-more class="onLineShowMore" style="border-top: 2rpx solid #323045;margin-bottom: 20rpx;">
<view style="padding:20rpx 32rpx;"> <view style="padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.USDTRate" :value="'19298'"></key-value-row> <key-value-row :keyName="i18n.USDTRate" :value="item.usdtRate"></key-value-row>
<key-value-row :keyName="i18n.USDT" :value="'298237'"></key-value-row> <!-- -->
<key-value-row :keyName="i18n.USDT" :value="parseInt(item.channelAmount,16)"></key-value-row>
</view> </view>
<view style="border-top: 2rpx solid #323045;padding:20rpx 32rpx;"> <view style="border-top: 2rpx solid #323045;padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.CardNo" :value="'4349 9545 9893 9854 027'"> <key-value-row :keyName="i18n.CardNo" :value="item.acctId">
</key-value-row> </key-value-row>
<key-value-row :keyName="i18n.Bank" :value="'Bank of Melbourne'"></key-value-row> <key-value-row :keyName="i18n.Bank" :value="item.bankName"></key-value-row>
<key-value-row :keyName="i18n.Payee" :value="'Zhou jielun'"></key-value-row> <key-value-row :keyName="i18n.Payee" :value="item.acctName"></key-value-row>
<view class="text">Postscript ontact customer service on the top-left corner for identity <!-- <view class="text">Postscript ontact customer service on the top-left corner for identity
verific verific
</view> </view> -->
</view> </view>
</show-more> </show-more>
</view> </view>
</view> </view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="userInfoObj.length" height="80" />
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
import CardHeader from '../../components/cardHeader/cardHeader.vue'; import CardHeader from '../../components/cardHeader/cardHeader.vue';
import ShowMore from '../../components/showMore/showMore.vue'; import ShowMore from '../../components/showMore/showMore.vue';
export default { import constant from '@/utils/constant.js';
components: { KeyValueRow, CardHeader, ShowMore }, import api from '@/utils/api'
export default {
components: {
KeyValueRow,
CardHeader,
ShowMore
},
name: "withdrawalRecord", name: "withdrawalRecord",
data() { data() {
return { return {
pageState: 'digitalCurrency', pageState: 'digitalCurrency',
baseURL: '',
isLoadMore: false, //
loadStatus: 'loadmore',
loadingText: this.$t("login").toload,
loadmoreText: this.$t("login").pullup,
nomoreText: this.$t("login").Nomore,
form: {
pageNumber: 1,
pageSize: 20,
type: 'crypto',
},
userInfoObj: [],
}; };
}, },
computed: { computed: {
@ -91,20 +121,63 @@ export default {
return this.$t("withdrawal"); return this.$t("withdrawal");
}, },
}, },
onReachBottom() {
if (!this.isLoadMore) {
this.form.pageNumber += 1
this.getList();
}
},
onLoad() { onLoad() {
this.baseURL = constant.BASE_URL
this.getList()
}, },
onShow() { }, onShow() {},
methods: { methods: {
getList() {
this.isLoadMore = true
api.withdrawList(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
} else {
this.userInfoObj = res.content
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
}
if (this.userInfoObj.length >= Number(res.totalElements)) { //
this.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
}
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
}
this.$forceUpdate()
})
},
change(e) { change(e) {
console.log(e); console.log(e);
} }
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.head { .head {
margin-top: 200rpx; margin-top: 200rpx;
@ -168,5 +241,5 @@ export default {
} }
} }
} }
</style> </style>

7
utils/language/en_US.js

@ -10,6 +10,11 @@ export default {
}, },
// 登陆相关页面 // 登陆相关页面
login: { login: {
Withdrawalsucceeded:'Withdrawal succeeded',
Deletesucceeded:'Delete succeeded',
Savesucceeded:'Saved successfully',
Rechargesucceeded:'Recharge succeeded',
Transfersucceeded:'Transfer succeeded',
Donationsucceeded:'Donation succeeded', Donationsucceeded:'Donation succeeded',
Insufficient:'Insufficient available balance', Insufficient:'Insufficient available balance',
pullup:'Gently pull up', pullup:'Gently pull up',
@ -155,6 +160,7 @@ export default {
// recharge // recharge
recharge: { recharge: {
Dataisempty:'Data is empty',
Recharge: 'Recharge', Recharge: 'Recharge',
Record: 'Record', Record: 'Record',
CoinRecharge: 'Coin Recharge', CoinRecharge: 'Coin Recharge',
@ -216,6 +222,7 @@ export default {
// withdrawal // withdrawal
withdrawal: { withdrawal: {
Dataisempty:'Data is empty',
Withdrawal: 'Withdrawal', Withdrawal: 'Withdrawal',
Record: 'Record', Record: 'Record',
DigitalCurrency: 'Digital currency', DigitalCurrency: 'Digital currency',

1624
utils/qrCode/wxqrcode.js

File diff suppressed because it is too large
Loading…
Cancel
Save