You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
379 lines
9.2 KiB
379 lines
9.2 KiB
<template>
|
|
<view class="main">
|
|
<!-- nav -->
|
|
<navigation>{{ i18n.ChooseAddress }}
|
|
<view slot="right" class="right" @click="editFlag = !editFlag;">{{
|
|
editFlag ? i18n.OK : i18n.Edit
|
|
}}
|
|
</view>
|
|
</navigation>
|
|
|
|
<!-- #ifdef APP-PLUS -->
|
|
<view class="content">
|
|
<!-- #endif -->
|
|
<!-- #ifdef H5 -->
|
|
<view class="content" style="margin-top: 100rpx;">
|
|
<!-- #endif -->
|
|
|
|
<view class="message-item">
|
|
{{ i18n.message4 }}
|
|
</view>
|
|
<view class="message-item last">
|
|
{{ i18n.message5 }}
|
|
</view>
|
|
<view class="card" v-if="userInfoObj.length > 0">
|
|
<view class="dataBody" v-for="(item, index) in userInfoObj" :key="index">
|
|
<view class="coinTitle">{{item.coinEnname}}</view>
|
|
<!-- v-for="(addressItem, addressIndex) in 2" :key="addressIndex" -->
|
|
<view class="addressItem"
|
|
@click="itemClick(index, item)">
|
|
<view class="radio"
|
|
:class="{ select: (editCoinIndex === index && editCoinAddressIndex === item.id) }"
|
|
v-if="editFlag"></view>
|
|
<view class="addressInfo">
|
|
<view class="addressTitle">{{item.remark}}</view>
|
|
<view class="address">{{item.address}}</view>
|
|
<view class="time">{{item.timestr}}</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"
|
|
:title="i18n.WarmTips" :content='i18n.WarmTipsText' @confirm="deleteAddress" @cancel="modalShow = false"
|
|
confirmColor="#00E8A2" cancelColor="#96959E">
|
|
</u-modal>
|
|
<!-- 编辑按钮 -->
|
|
<view class="buttonBg">
|
|
<u-button class="button" :color="editFlag ? '#F4506A' : '#00E8A2'" throttleTime="500" @click="btnClick"
|
|
:disabled="btnIsCanClick">
|
|
{{ editFlag ? i18n.DeleteAddress : i18n.AddAddress }}
|
|
</u-button>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
|
|
import api from '@/utils/api'
|
|
import constant from '@/utils/constant.js';
|
|
export default {
|
|
components: {
|
|
KeyValueRow
|
|
},
|
|
name: "chooseAddress",
|
|
data() {
|
|
return {
|
|
// 币种代码
|
|
coinCode:'',
|
|
coinList: [{}],
|
|
coinAddressList: [{}],
|
|
editFlag: false, // 是否在编辑状态
|
|
editCoinIndex: '',
|
|
editCoinAddressIndex: '',
|
|
coinAddress: 'SDIHJSD9809U9ERF9IOU0980970',
|
|
currentCoin: 'USDT',
|
|
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: {
|
|
i18n() {
|
|
return this.$t("withdrawal");
|
|
},
|
|
btnIsCanClick() { // 按钮是否可以点击
|
|
if (this.editFlag) {
|
|
// console.log(`${this.editCoinIndex}` ? false : true);
|
|
return `${this.editCoinIndex}` ? false : true; // 在编辑模式,有值才能点
|
|
} else {
|
|
return false; // 不在编辑模式始终可以点
|
|
}
|
|
}
|
|
},
|
|
onLoad(res) {
|
|
// 1)用户选好币种后,如果用户点击choose到 Choose address页面,只展示用户已选择币种的地址,withdrawAddressList接口可以传多一个参数coinCode,
|
|
//如果用户不是从withdrawl页面进到地址页,则展示全部币种的地址,而个人中心进去地址页和添加地址才是所有币种的
|
|
// 2)从提现界面的choose进入地址页,点击添加地址,币种不能选择,只能添加提现界面所选币种的地址,也只显示提现界面选择币种的地址列表
|
|
if(res.coinCode){
|
|
// 传后台的
|
|
this.form.coinCode=res.coinCode2
|
|
// 回显到页面的
|
|
this.coinCode=res.coinCode
|
|
this.getList()
|
|
}
|
|
},
|
|
onShow() {
|
|
this.getList()
|
|
},
|
|
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) {
|
|
console.log(index, addressIndex)
|
|
// 编辑模式下
|
|
if (this.editFlag) {
|
|
// console.log(index, addressIndex);
|
|
if (this.editCoinIndex === index && this.editCoinAddressIndex === addressIndex.id) { // 取消选择
|
|
this.editCoinIndex = '';
|
|
this.editCoinAddressIndex = '';
|
|
} else { // 选择
|
|
this.editCoinIndex = index;
|
|
this.editCoinAddressIndex = addressIndex.id;
|
|
}
|
|
} else {
|
|
// 选择地址情况下 点击地址返回传参有问题 可能要通用vuex解决
|
|
uni.$emit('coinAddressChang', {
|
|
coinid: addressIndex.id,
|
|
coinAddress: addressIndex.address,
|
|
});
|
|
uni.navigateBack()
|
|
|
|
}
|
|
|
|
},
|
|
btnClick() {
|
|
// 在编辑模式弹出确认框
|
|
if (this.editFlag) {
|
|
this.modalShow = true
|
|
|
|
} else {
|
|
// 在非编辑模式下直接跳转
|
|
uni.navigateTo({
|
|
url:'/pages/withdrawal/addAddress?coinCode2='+this.form.coinCode +'&'+ 'coinCode='+this.coinCode
|
|
});
|
|
}
|
|
},
|
|
|
|
deleteAddress() {
|
|
this.modalShow = false;
|
|
// 删除地址
|
|
api.withdrawAddressDel({
|
|
addressId:this.editCoinAddressIndex,
|
|
}).then(res => {
|
|
uni.$u.toast(this.$t("login").Deletesucceeded)
|
|
setTimeout(()=>{
|
|
this.getList()
|
|
},600)
|
|
})
|
|
},
|
|
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
/deep/ .u-modal__content__text{
|
|
color: #96959E;
|
|
}
|
|
.main {
|
|
|
|
.right {
|
|
width: 82rpx;
|
|
height: 56rpx;
|
|
line-height: 56rpx;
|
|
position: absolute;
|
|
right: 32rpx;
|
|
font-size: 24rpx;
|
|
background: rgba(246, 166, 9, 0.1);
|
|
border-radius: 8px;
|
|
color: #FFBC1F;
|
|
}
|
|
|
|
|
|
.content {
|
|
margin-top: 200rpx;
|
|
padding: 40rpx;
|
|
|
|
.message-item {
|
|
padding: 0 16rpx;
|
|
font-size: 24rpx;
|
|
color: #A1A0A8;
|
|
line-height: 36rpx;
|
|
|
|
&.last {
|
|
margin-bottom: 30rpx;
|
|
}
|
|
}
|
|
|
|
|
|
.card {
|
|
|
|
.dataBody {
|
|
margin-bottom: 32rpx;
|
|
padding: 32rpx;
|
|
box-sizing: border-box;
|
|
background: #211F32;
|
|
border-radius: 20rpx;
|
|
|
|
.coinTitle {
|
|
font-size: 24rpx;
|
|
line-height: 28rpx;
|
|
margin-bottom: 32rpx;
|
|
}
|
|
|
|
.addressItem {
|
|
flex: 0 1 50%;
|
|
height: 180rpx;
|
|
box-sizing: border-box;
|
|
padding: 32rpx 0;
|
|
border-top: 2rpx solid #323045;
|
|
display: flex;
|
|
|
|
.radio {
|
|
margin-top: 32rpx;
|
|
margin-right: 24rpx;
|
|
box-sizing: border-box;
|
|
width: 48rpx;
|
|
height: 48rpx;
|
|
background: #323045;
|
|
border: 3rpx solid #DCDBE0;
|
|
border-radius: 16rpx;
|
|
|
|
|
|
&.select {
|
|
background-image: url(../../static/withdrawal/Checkbox_pr.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 48rpx;
|
|
border: none;
|
|
}
|
|
}
|
|
|
|
.addressInfo {
|
|
width: 590rpx;
|
|
.addressTitle {
|
|
position: relative;
|
|
font-size: 24rpx;
|
|
margin-bottom: 20rpx;
|
|
word-break: break-all;
|
|
|
|
&::after {
|
|
display: block;
|
|
position: absolute;
|
|
content: '';
|
|
background-image: url(../../static/charity/ic_ma_arrow_down.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 32rpx;
|
|
width: 32rpx;
|
|
height: 32rpx;
|
|
top: 0rpx;
|
|
right: -18rpx;
|
|
transform: rotate(270deg);
|
|
}
|
|
}
|
|
|
|
.address {
|
|
font-size: 24rpx;
|
|
line-height: 28rpx;
|
|
color: #A1A0A8;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.time {
|
|
font-size: 24rpx;
|
|
line-height: 28rpx;
|
|
color: #A1A0A8;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
&:last-child {
|
|
margin-bottom: 160rpx;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
/deep/.u-popup__content {
|
|
background: #323045;
|
|
|
|
.u-modal__title {
|
|
color: #fff;
|
|
}
|
|
|
|
.u-modal__content__text {
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
.buttonBg {
|
|
position: fixed;
|
|
bottom: 0rpx;
|
|
.button {
|
|
width: 670rpx;
|
|
box-sizing: border-box;
|
|
height: 112rpx;
|
|
margin-bottom: 40rpx;
|
|
border-radius: 32rpx;
|
|
font-weight: 700;
|
|
font-size: 32rpx;
|
|
color: #15141F !important;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
</style>
|
|
|