18 changed files with 2379 additions and 1901 deletions
@ -1,419 +1,459 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation :bgTransparent=true>{{ i18n.CharityDetails }}</navigation> |
|||
<view class="body"> |
|||
<view class="titleBody"> |
|||
<!-- 海报 --> |
|||
<u--image class="img" :showLoading="true" src="../../static/charity/Rectangle 2.png" width="750rpx" |
|||
height="762rpx"></u--image> |
|||
<!-- 文章标题 --> |
|||
<view class="title">New Balance Raff Simons Bright </view> |
|||
</view> |
|||
|
|||
<view class="contentBody"> |
|||
<view class="about">{{ i18n.About }}</view> |
|||
<!-- 文字内容 --> |
|||
<view class="content">Minimum deposit amount: 10 USDT. Deposit less than the minimum amount will not be |
|||
posted |
|||
and cannot be returned |
|||
This address is your latest deposit address. When the system receives deposit, it will be |
|||
automatically |
|||
credited to the account。The transfer needs to be confirmed by the entire blockchain network. When it |
|||
reaches 10 network confirmations, your USDT will be automatically deposit into the account。 |
|||
Minimum deposit amount: 10 USDT. Deposit less than the minimum amount will not be posted and cannot |
|||
be |
|||
returned |
|||
This address is your latest deposit address. When the system receives deposit, it will be |
|||
automatically |
|||
credited to the account。The transfer needs to be confirmed by the entire blockchain network. When it |
|||
reaches 10 network confirmations, your USDT will be automatically deposit into the account。Minimum |
|||
deposit amount: 10 USDT. Deposit less than the minimum amount will not be posted and cannot be |
|||
returned |
|||
This address is your latest deposit address. When the </view> |
|||
<!-- 捐赠详情 --> |
|||
<view class="Participants"> |
|||
<view class="title">{{ i18n.Participants }}</view> |
|||
<!-- 进度条 --> |
|||
<u-line-progress class="progressbar" :showText="false" :percentage="50" activeColor="#00E8A2" |
|||
height="32rpx"> |
|||
</u-line-progress> |
|||
<!-- 百分比 --> |
|||
<view class="progress">50%</view> |
|||
<!-- 捐赠用户头像 --> |
|||
<view class="userIconList"> |
|||
<u--image v-for="(item, index) in 10" :key="index" class="userIcon" :showLoading="true" |
|||
src="../../static/charity/Ellipse 502.png" width="64rpx" height="64rpx"></u--image> |
|||
</view> |
|||
|
|||
</view> |
|||
<!-- 按钮 --> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="DonatePopupShow = true">{{ |
|||
i18n.DonateNow |
|||
}} |
|||
</u-button> |
|||
|
|||
<!-- DonateNow按钮通知弹出层 --> |
|||
<u-popup class="DonatePopup" :show="DonatePopupShow" round="40rpx" mode="bottom" |
|||
@close="DonatePopupShow = false" @open="DonatePopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="DonatePopupShow = false"></view> |
|||
<u--form class="form" :model="coinInfo" :rules="rules" ref="form1" errorType="toast"> |
|||
<!-- coin选择框 --> |
|||
<u-form-item class="input-item" prop="verificationCode" ref="item1"> |
|||
<u-input class="input" v-model="coinInfo.verificationCode" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.PleaseChooseCoin"> |
|||
</u-input> |
|||
<view class="selectCoinBtn" @click="USDTPopupShow = true">USDT |
|||
</view> |
|||
</u-form-item> |
|||
<view class="Available">{{ i18n.AvailableBlance }}:0USDT</view> |
|||
<!-- 数量 --> |
|||
<u-form-item class="input-item" prop="number" ref="item1"> |
|||
<u-input class="input" v-model="coinInfo.number" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.Quantity"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 密码 --> |
|||
<u-form-item class="input-item" prop="password" ref="item1"> |
|||
<u-input class="input" v-model="coinInfo.password" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.WithdrawalPassword"> |
|||
</u-input> |
|||
</u-form-item> |
|||
|
|||
</u--form> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="DonatePopupDisabled" |
|||
@click="DonatePopupShow = false">{{ i18n.DonateNow }} |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
<!-- USDT按钮通知弹出层 --> |
|||
|
|||
<u-popup class="USDTPopup" :show="USDTPopupShow" round="40rpx" mode="bottom" |
|||
@close="USDTPopupShow = false" @open="USDTPopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="USDTPopupShow = false"></view> |
|||
<scroll-view scroll-y="true" style="height: 580rpx;" scroll-with-animation="true" |
|||
@touchmove.stop.prevent=""> |
|||
<radio-group class="radioGroup" @change="radioChange" v-model="radioValue"> |
|||
<label class="checkBox" v-for="(item, index) in 40" :key="index"> |
|||
<view class="icon"> |
|||
<u-icon name="../../static/maskets/bye.png" size="52rpx" width="52rpx"></u-icon> |
|||
</view> |
|||
<view class="iconName"> |
|||
<view class="top">USDT</view> |
|||
<view class="bottom">BTC</view> |
|||
</view> |
|||
|
|||
<radio color="#00E8A2" shape="square"></radio> |
|||
</label> |
|||
|
|||
</radio-group> |
|||
</scroll-view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="USDTPopupShow = false">OK |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
|
|||
</view> |
|||
|
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation :bgTransparent=true>{{ i18n.CharityDetails }}</navigation> |
|||
<view class="body"> |
|||
<view class="titleBody"> |
|||
<!-- 海报 --> |
|||
<u--image class="img" :showLoading="true" :src="baseURL+detail.charityDetails.img" width="750rpx" |
|||
height="762rpx"></u--image> |
|||
<!-- 文章标题 --> |
|||
<view class="title">{{detail.charityDetails.title}}</view> |
|||
</view> |
|||
|
|||
<view class="contentBody"> |
|||
<view class="about">{{ i18n.About }}</view> |
|||
<!-- 文字内容 --> |
|||
<view class="content" v-html="detail.charityDetails.content"></view> |
|||
<!-- 捐赠详情 --> |
|||
<view class="Participants"> |
|||
<view class="title">{{ i18n.Participants }}</view> |
|||
<!-- 进度条 --> |
|||
<u-line-progress class="progressbar" :showText="false" :percentage="detail.charityDetails.percentage" activeColor="#00E8A2" |
|||
height="32rpx"> |
|||
</u-line-progress> |
|||
<!-- 百分比 --> |
|||
<view class="progress">{{detail.charityDetails.percentage}}%</view> |
|||
<!-- 捐赠用户头像 --> |
|||
<view class="userIconList"> |
|||
<u--image v-for="(item, index) in detail.headerImgList" :key="index" class="userIcon" :showLoading="true" |
|||
:src="baseURL+item.headImgPath" width="64rpx" height="64rpx"></u--image> |
|||
</view> |
|||
|
|||
</view> |
|||
<!-- 按钮 --> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="DonatePopupShow = true" :disabled="detail.charityDetails.status!='open'"> |
|||
{{detail.charityDetails.status!='open'?i18n.Closeddonation:i18n.DonateNow}} |
|||
</u-button> |
|||
|
|||
<!-- DonateNow按钮通知弹出层 --> |
|||
<u-popup class="DonatePopup" :show="DonatePopupShow" round="40rpx" mode="bottom" |
|||
@close="DonatePopupShow = false" @open="DonatePopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="DonatePopupShow = false"></view> |
|||
<u--form class="form" :model="coinInfo" :rules="rules" ref="form1" errorType="toast"> |
|||
<!-- coin选择框 --> |
|||
<u-form-item class="input-item" prop="coinCode" ref="item1"> |
|||
<u-input class="input" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.PleaseChooseCoin" :disabled="true"> |
|||
</u-input> |
|||
<view class="selectCoinBtn" @click="USDTPopupShow = true">{{coinInfo.coinCode}} |
|||
</view> |
|||
</u-form-item> |
|||
<view class="Available">{{ i18n.AvailableBlance }}:{{detail.userCapital}}{{" "}}{{detail.coins[0].enname}}</view> |
|||
<!-- 数量 --> |
|||
<u-form-item class="input-item" prop="amount" ref="item1"> |
|||
<u-input class="input" v-model="coinInfo.amount" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.Quantity"> |
|||
</u-input> |
|||
</u-form-item> |
|||
<!-- 密码 --> |
|||
<u-form-item class="input-item" prop="payPassword" ref="item1"> |
|||
<u-input class="input" v-model="coinInfo.payPassword" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.WithdrawalPassword"> |
|||
</u-input> |
|||
</u-form-item> |
|||
|
|||
</u--form> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="DonatePopupDisabled" |
|||
@click="donate" :throttleTime="500">{{ i18n.DonateNow }} |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
<!-- USDT按钮通知弹出层 --> |
|||
|
|||
<u-popup class="USDTPopup" :show="USDTPopupShow" round="40rpx" mode="bottom" |
|||
@close="USDTPopupShow = false" @open="USDTPopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="USDTPopupShow = false"></view> |
|||
<scroll-view scroll-y="true" style="height: 580rpx;" scroll-with-animation="true" |
|||
@touchmove.stop.prevent=""> |
|||
<radio-group class="radioGroup" v-model="radioValue"> |
|||
<label class="checkBox" v-for="(item, index) in detail.coins" :key="index" @click="radioChange(item)"> |
|||
<view class="icon"> |
|||
<u-icon :name="baseURL+'/coins/'+item.enname+'.png'" size="52rpx" width="52rpx"></u-icon> |
|||
</view> |
|||
<view class="iconName"> |
|||
<view class="top">{{item.enname}}</view> |
|||
<view class="bottom">{{item.useCapital}}{{" "}}{{item.code}}</view> |
|||
</view> |
|||
<radio color="#00E8A2" shape="square" :checked="coinInfo.coinCode==item.enname"></radio> |
|||
</label> |
|||
|
|||
</radio-group> |
|||
</scroll-view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="USDTPopupShow = false">OK |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
|
|||
</view> |
|||
|
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import UButton from '../../uview-ui/components/u-button/u-button' |
|||
export default { |
|||
name: "charityDetails", |
|||
data() { |
|||
return { |
|||
DonatePopupShow: false, |
|||
USDTPopupShow: false, |
|||
DonatePopupDisabled: true, |
|||
coinInfo: {}, |
|||
rules: {}, |
|||
radioValue: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("charity"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
radioChange(e) { |
|||
// console.log(e); |
|||
} |
|||
}, |
|||
components: { UButton } |
|||
} |
|||
import UButton from '../../uview-ui/components/u-button/u-button' |
|||
import api from '@/utils/api' |
|||
import constant from '@/utils/constant.js'; |
|||
import md5 from 'js-md5' |
|||
export default { |
|||
name: "charityDetails", |
|||
data() { |
|||
return { |
|||
id:'', |
|||
baseURL:'', |
|||
DonatePopupShow: false, |
|||
USDTPopupShow: false, |
|||
coinInfo: { |
|||
amount:null, |
|||
coinCode:null, |
|||
payPassword:null, |
|||
}, |
|||
rules: { |
|||
|
|||
}, |
|||
radioValue: '', |
|||
detail:{}, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("charity"); |
|||
}, |
|||
DonatePopupDisabled() { |
|||
if (this.coinInfo.amount && this.coinInfo.coinCode && this.coinInfo.payPassword) { |
|||
return false |
|||
} else { |
|||
return true |
|||
} |
|||
} |
|||
}, |
|||
onLoad(res) { |
|||
this.baseURL = constant.BASE_URL |
|||
this.id=res.id |
|||
this.getDetail(this.id) |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 捐赠 |
|||
donate() { |
|||
if(this.coinInfo.amount>this.detail.userCapital){ |
|||
uni.$u.toast(this.$t("login").Insufficient) |
|||
return; |
|||
} |
|||
let coinInfo = { |
|||
charityId:this.detail.charityDetails.id, |
|||
amount:this.coinInfo.amount, |
|||
coinCode:this.coinInfo.coinCode2, |
|||
payPassword:md5(this.coinInfo.payPassword), |
|||
} |
|||
api.charitySubmit(coinInfo).then(res => { |
|||
uni.$u.toast(this.$t("login").Donationsucceeded) |
|||
setTimeout(()=>{ |
|||
this.getDetail(this.id) |
|||
this.DonatePopupShow = false |
|||
},600) |
|||
|
|||
}) |
|||
|
|||
}, |
|||
radioChange(e) { |
|||
this.coinInfo.coinCode=e.enname |
|||
this.coinInfo.coinCode2=e.code |
|||
}, |
|||
getDetail(id) { |
|||
api.showCharityDetails({ |
|||
charityId:id |
|||
}).then(res => { |
|||
this.detail=res; |
|||
this.coinInfo.coinCode=this.detail.coins[0].enname |
|||
this.coinInfo.coinCode2=this.detail.coins[0].code |
|||
}) |
|||
}, |
|||
}, |
|||
components: { |
|||
UButton |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
|
|||
.titleBody { |
|||
position: relative; |
|||
height: 762rpx; |
|||
|
|||
.title { |
|||
position: absolute; |
|||
bottom: 48rpx; |
|||
font-size: 40rpx; |
|||
font-weight: 800; |
|||
z-index: 20; |
|||
margin: 0 48rpx; |
|||
} |
|||
} |
|||
|
|||
.contentBody { |
|||
padding: 0 48rpx; |
|||
|
|||
.about { |
|||
margin: 32rpx 0; |
|||
font-size: 32rpx; |
|||
color: #A2A0A8; |
|||
} |
|||
|
|||
.content { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
margin-bottom: 48rpx; |
|||
} |
|||
|
|||
.Participants { |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
padding: 32rpx; |
|||
|
|||
.title { |
|||
font-size: 28rpx; |
|||
height: 40rpx; |
|||
line-height: 40rpx; |
|||
margin-bottom: 20rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
// .progressBody{ |
|||
.progressbar { |
|||
vertical-align: top; |
|||
display: inline-block; |
|||
width: 426rpx; |
|||
margin: 8rpx 0; |
|||
} |
|||
|
|||
.progress { |
|||
margin-left: 20rpx; |
|||
display: inline-block; |
|||
width: 144rpx; |
|||
height: 48rpx; |
|||
line-height: 48rpx; |
|||
font-size: 32rpx; |
|||
} |
|||
|
|||
|
|||
.userIconList { |
|||
height: 104rpx; |
|||
|
|||
.userIcon { |
|||
overflow: hidden; |
|||
border-radius: 64rpx; |
|||
display: inline-block; |
|||
margin-left: -20rpx; |
|||
margin-top: 34rpx; |
|||
|
|||
&:first-child { |
|||
margin-left: 0; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.button { |
|||
margin-top: 64rpx; |
|||
margin-bottom: 120rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.DonatePopup { |
|||
.content { |
|||
height: 844rpx; |
|||
|
|||
/deep/.u-button--disabled { |
|||
background-color: #A1A0A8 !important; |
|||
border-color: #A1A0A8 !important; |
|||
} |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.form { |
|||
font-size: 32rpx; |
|||
margin: 0 32rpx; |
|||
|
|||
.Available { |
|||
height: 44rpx; |
|||
margin: 32rpx 0; |
|||
font-size: 28rpx; |
|||
} |
|||
|
|||
.input-item { |
|||
overflow: hidden; |
|||
height: 124rpx; |
|||
line-height: 124rpx; |
|||
background: #323045; |
|||
margin-bottom: 48rpx; |
|||
border-radius: 32rpx; |
|||
padding: 0 40rpx; |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
height: 124rpx; |
|||
} |
|||
|
|||
.selectCoinBtn { |
|||
position: relative; |
|||
width: 150rpx; |
|||
height: 54rpx; |
|||
right: 0rpx; |
|||
line-height: 56rpx; |
|||
font-size: 36rpx; |
|||
padding: 0; |
|||
color: #fff; |
|||
|
|||
&::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: 12rpx; |
|||
right: 10rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 0 48rpx; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
.USDTPopup { |
|||
.content { |
|||
height: 844rpx; |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.radioGroup { |
|||
height: 580rpx; |
|||
|
|||
.checkBox { |
|||
height: 84rpx; |
|||
width: 670rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
margin: 0 40rpx 32rpx; |
|||
|
|||
.icon { |
|||
width: 84rpx; |
|||
height: 84rpx; |
|||
border-radius: 20rpx; |
|||
overflow: hidden; |
|||
display: inline-block; |
|||
box-sizing: border-box; |
|||
background: #323045; |
|||
padding: 16rpx; |
|||
margin-right: 20rpx; |
|||
} |
|||
|
|||
.iconName { |
|||
width: 520rpx; |
|||
|
|||
.top { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
|
|||
.bottom { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
/deep/.uni-radio-input { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 16rpx; |
|||
background: #323045; |
|||
} |
|||
|
|||
/deep/.uni-radio-input-checked::before { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 40rpx 48rpx; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
/deep/ .u-input{ |
|||
background: #323045 !important; |
|||
} |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
|
|||
.titleBody { |
|||
position: relative; |
|||
height: 762rpx; |
|||
|
|||
.title { |
|||
position: absolute; |
|||
bottom: 48rpx; |
|||
font-size: 40rpx; |
|||
font-weight: 800; |
|||
z-index: 20; |
|||
margin: 0 48rpx; |
|||
} |
|||
} |
|||
|
|||
.contentBody { |
|||
padding: 0 48rpx; |
|||
|
|||
.about { |
|||
margin: 32rpx 0; |
|||
font-size: 32rpx; |
|||
color: #A2A0A8; |
|||
} |
|||
|
|||
.content { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
margin-bottom: 48rpx; |
|||
} |
|||
|
|||
.Participants { |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
padding: 32rpx; |
|||
|
|||
.title { |
|||
font-size: 28rpx; |
|||
height: 40rpx; |
|||
line-height: 40rpx; |
|||
margin-bottom: 20rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
// .progressBody{ |
|||
.progressbar { |
|||
vertical-align: top; |
|||
display: inline-block; |
|||
width: 426rpx; |
|||
margin: 8rpx 0; |
|||
} |
|||
|
|||
.progress { |
|||
margin-left: 20rpx; |
|||
display: inline-block; |
|||
width: 144rpx; |
|||
height: 48rpx; |
|||
line-height: 48rpx; |
|||
font-size: 32rpx; |
|||
} |
|||
|
|||
|
|||
.userIconList { |
|||
height: 104rpx; |
|||
|
|||
.userIcon { |
|||
overflow: hidden; |
|||
border-radius: 64rpx; |
|||
display: inline-block; |
|||
margin-left: -20rpx; |
|||
margin-top: 34rpx; |
|||
|
|||
&:first-child { |
|||
margin-left: 0; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.button { |
|||
margin-top: 64rpx; |
|||
margin-bottom: 120rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.DonatePopup { |
|||
.content { |
|||
height: 844rpx; |
|||
|
|||
/deep/.u-button--disabled { |
|||
background-color: #A1A0A8 !important; |
|||
border-color: #A1A0A8 !important; |
|||
} |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.form { |
|||
font-size: 32rpx; |
|||
margin: 0 32rpx; |
|||
|
|||
.Available { |
|||
height: 44rpx; |
|||
margin: 32rpx 0; |
|||
font-size: 28rpx; |
|||
} |
|||
|
|||
.input-item { |
|||
overflow: hidden; |
|||
height: 124rpx; |
|||
line-height: 124rpx; |
|||
background: #323045; |
|||
margin-bottom: 48rpx; |
|||
border-radius: 32rpx; |
|||
padding: 0 40rpx; |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
height: 124rpx; |
|||
} |
|||
|
|||
.selectCoinBtn { |
|||
position: relative; |
|||
width: 150rpx; |
|||
height: 54rpx; |
|||
right: 0rpx; |
|||
line-height: 56rpx; |
|||
font-size: 36rpx; |
|||
padding: 0; |
|||
color: #fff; |
|||
|
|||
&::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: 12rpx; |
|||
right: 10rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 0 48rpx; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
.USDTPopup { |
|||
.content { |
|||
height: 844rpx; |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.radioGroup { |
|||
height: 580rpx; |
|||
|
|||
.checkBox { |
|||
height: 84rpx; |
|||
width: 670rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
margin: 0 40rpx 32rpx; |
|||
|
|||
.icon { |
|||
width: 84rpx; |
|||
height: 84rpx; |
|||
border-radius: 20rpx; |
|||
overflow: hidden; |
|||
display: inline-block; |
|||
box-sizing: border-box; |
|||
background: #323045; |
|||
padding: 16rpx; |
|||
margin-right: 20rpx; |
|||
} |
|||
|
|||
.iconName { |
|||
width: 520rpx; |
|||
|
|||
.top { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
|
|||
.bottom { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
/deep/.uni-radio-input { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 16rpx; |
|||
background: #323045; |
|||
} |
|||
|
|||
/deep/.uni-radio-input-checked::before { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 40rpx 48rpx; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,118 +1,168 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- 列表 --> |
|||
<view class="charityList"> |
|||
<view class="item" v-for="(item, index) in 10" :key="index" @click="goto(index)"> |
|||
<u--image class="img" :showLoading="true" src="../../static/charity/Rectangle 2.png" width="318rpx" |
|||
height="230rpx"></u--image> |
|||
<view class="title">New Balance Raff Simons Bright Bright </view> |
|||
<view class="target">Target: $1309348</view> |
|||
<u-line-progress class="progressbar" :showText="(index * 10) > 18" :percentage="index * 10" |
|||
activeColor="#00E8A2" height="22rpx"> |
|||
</u-line-progress> |
|||
</view> |
|||
</view> |
|||
<!-- tabBar --> |
|||
<tab-bar :selectActive="3"></tab-bar> |
|||
</view> |
|||
<view class="main"> |
|||
<!-- 列表 --> |
|||
<view class="charityList"> |
|||
<view class="item" v-for="(item, index) in userInfoObj" :key="index" @click="goto(item.id)"> |
|||
<u--image class="img" :showLoading="true" :src="baseURL+item.img" width="318rpx" |
|||
height="230rpx"></u--image> |
|||
<view class="title">{{item.title}} </view> |
|||
<view class="target">Target: {{item.targetAmount}}{{" "}}{{coinTypeInfo.system_cropto_code}}</view> |
|||
<u-line-progress class="progressbar" :percentage="item.percentage" |
|||
activeColor="#00E8A2" height="22rpx"> |
|||
</u-line-progress> |
|||
</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" /> |
|||
<!-- tabBar --> |
|||
<tab-bar :selectActive="3"></tab-bar> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: 'charity', |
|||
data() { |
|||
return { |
|||
|
|||
} |
|||
}, |
|||
onLoad() { |
|||
|
|||
}, |
|||
onShow() { |
|||
|
|||
}, |
|||
onHide() { |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t('markets') |
|||
} |
|||
}, |
|||
methods: { |
|||
goto(index) { |
|||
uni.navigateTo({ |
|||
url: `/pages/charity/details?id=${index}` |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
|
|||
import api from '@/utils/api' |
|||
import constant from '@/utils/constant.js'; |
|||
export default { |
|||
name: 'charity', |
|||
data() { |
|||
return { |
|||
isLoadMore: false, //是否加载中 |
|||
loadStatus: 'loadmore', |
|||
loadingText: this.$t("login").toload, |
|||
loadmoreText: this.$t("login").pullup, |
|||
nomoreText: this.$t("login").Nomore, |
|||
form: { |
|||
pageNumber: 1, |
|||
pageSize: 20, |
|||
ways: 'exchange', |
|||
}, |
|||
userInfoObj: [], |
|||
baseURL:'', |
|||
} |
|||
}, |
|||
onLoad() { |
|||
this.baseURL = constant.BASE_URL |
|||
this.getList() |
|||
}, |
|||
onShow() { |
|||
|
|||
}, |
|||
onHide() {}, |
|||
onReachBottom() { |
|||
if (!this.isLoadMore) { |
|||
this.form.pageNumber += 1 |
|||
this.getList(); |
|||
} |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t('markets') |
|||
}, |
|||
// 获取币种 |
|||
coinTypeInfo(){ |
|||
return uni.getStorageSync('coinTypeInfo') |
|||
} |
|||
}, |
|||
methods: { |
|||
// 获取商品列表 |
|||
getList() { |
|||
this.isLoadMore = true |
|||
api.charityList(this.form).then(res => { |
|||
if (res.charityList.content.length) { |
|||
if (this.form.pageNumber > 1) { |
|||
this.userInfoObj = this.userInfoObj.concat(res.charityList.content) |
|||
} else { |
|||
this.userInfoObj = res.charityList.content |
|||
} |
|||
if (this.userInfoObj.length >= Number(res.charityList.totalElements)) { // 判断接口返回数据量小于请求数据量,则表示此为最后一页 |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
} else { |
|||
this.isLoadMore = false |
|||
} |
|||
} else { |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
this.userInfoObj = [] |
|||
} |
|||
|
|||
this.$forceUpdate() |
|||
}) |
|||
}, |
|||
goto(index) { |
|||
uni.navigateTo({ |
|||
url: `/pages/charity/details?id=${index}` |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
padding-bottom: 198rpx; // 避免底部TabBar盖住内容 |
|||
|
|||
.charityList { |
|||
// width: 318rpx; |
|||
margin: 120rpx 38rpx 0 40rpx; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
flex-wrap: wrap; |
|||
|
|||
.item { |
|||
position: relative; |
|||
width: 318rpx; |
|||
height: 430rpx; |
|||
box-sizing: border-box; |
|||
background-color: #323045; |
|||
border-radius: 20rpx; |
|||
margin-bottom: 32rpx; |
|||
|
|||
/deep/.img { |
|||
overflow: hidden; |
|||
border-radius: 20rpx; |
|||
} |
|||
|
|||
.title { |
|||
height: 72rpx; |
|||
line-height: 35rpx; |
|||
font-size: 32rpx; |
|||
margin: 24rpx 20rpx 12rpx; |
|||
// 超出字符省略成... |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
display: -webkit-box; //兼容 |
|||
word-wrap: break-word; |
|||
white-space: normal !important; |
|||
-webkit-line-clamp: 2; //显示行数 |
|||
-webkit-box-orient: vertical; |
|||
} |
|||
|
|||
.target { |
|||
height: 40rpx; |
|||
line-height: 40rpx; |
|||
color: $mainColor; |
|||
font-size: 26rpx; |
|||
margin-left: 20rpx; |
|||
} |
|||
|
|||
.progressbar { |
|||
margin: 12rpx 20rpx 0; |
|||
|
|||
/deep/.u-line-progress__text { |
|||
color: #000; |
|||
font-size: 16rpx; |
|||
transform: scale(0.66) // 字体超过12px以下的需要缩放 8/12 =0.666 |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
.main { |
|||
padding-bottom: 198rpx; // 避免底部TabBar盖住内容 |
|||
|
|||
.charityList { |
|||
// width: 318rpx; |
|||
margin: 120rpx 38rpx 0 40rpx; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
flex-wrap: wrap; |
|||
|
|||
.item { |
|||
position: relative; |
|||
width: 318rpx; |
|||
height: 430rpx; |
|||
box-sizing: border-box; |
|||
background-color: #323045; |
|||
border-radius: 20rpx; |
|||
margin-bottom: 32rpx; |
|||
|
|||
/deep/.img { |
|||
overflow: hidden; |
|||
border-radius: 20rpx; |
|||
} |
|||
|
|||
.title { |
|||
height: 72rpx; |
|||
line-height: 35rpx; |
|||
font-size: 32rpx; |
|||
margin: 24rpx 20rpx 12rpx; |
|||
// 超出字符省略成... |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
display: -webkit-box; //兼容 |
|||
word-wrap: break-word; |
|||
white-space: normal !important; |
|||
-webkit-line-clamp: 2; //显示行数 |
|||
-webkit-box-orient: vertical; |
|||
} |
|||
|
|||
.target { |
|||
height: 40rpx; |
|||
line-height: 40rpx; |
|||
color: $mainColor; |
|||
font-size: 26rpx; |
|||
margin-left: 20rpx; |
|||
} |
|||
|
|||
.progressbar { |
|||
margin: 12rpx 20rpx 0; |
|||
|
|||
/deep/.u-line-progress__text { |
|||
color: #000; |
|||
font-size: 16rpx; |
|||
transform: scale(0.66) // 字体超过12px以下的需要缩放 8/12 =0.666 |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
</style> |
|||
|
File diff suppressed because it is too large
@ -1,78 +1,129 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.ModifyWithdrawalPassword }}</navigation> |
|||
<view class="body"> |
|||
<u-input class="input" type="password" v-model="oldPassword" color="#A1A0A8" fontSize="28rpx" border="none" |
|||
:placeholder="i18n.PleaseEnterTheOldPassword"> |
|||
</u-input> |
|||
<u-input class="input" type="password" v-model="newPassword" color="#A1A0A8" fontSize="28rpx" border="none" |
|||
:placeholder="i18n.CreateNewPassword"> |
|||
</u-input> |
|||
|
|||
<!-- 修改登录密码按钮 --> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="disabled"> |
|||
{{ i18n.Confirm }} |
|||
</u-button> |
|||
</view> |
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.ModifyWithdrawalPassword }}</navigation> |
|||
<view class="body"> |
|||
<u-input class="input" type="password" v-model="oldPassword" color="#A1A0A8" fontSize="28rpx" border="none" |
|||
:placeholder="i18n.PleaseEnterTheOldPassword"> |
|||
</u-input> |
|||
<u-input class="input" type="password" v-model="password" color="#A1A0A8" fontSize="28rpx" border="none" |
|||
:placeholder="i18n.CreateNewPassword"> |
|||
</u-input> |
|||
<u-input class="input" type="password" v-model="confirmPassword" color="#A1A0A8" fontSize="28rpx" border="none" |
|||
:placeholder="i18n.confirmPassword"> |
|||
</u-input> |
|||
<!-- 修改登录密码按钮 :disabled="disabled"--> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500"> |
|||
{{ i18n.Confirm }} |
|||
</u-button> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "changeWithdrawalPassword", |
|||
data() { |
|||
return { |
|||
oldPassword: '', |
|||
newPassword: '', |
|||
disabled: true, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
import api from '@/utils/api' |
|||
import md5 from 'js-md5' |
|||
export default { |
|||
name: "changeWithdrawalPassword", |
|||
data() { |
|||
return { |
|||
oldPassword: '', |
|||
password: '', |
|||
confirmPassword: '', |
|||
|
|||
disabled: true, |
|||
// 密码格式对不对 |
|||
isCanPassword: false, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
watch: { |
|||
'password': { |
|||
handler(newValue) { |
|||
const numberReg = /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[A-Za-z0-9 _]{6,20}$/ |
|||
this.isCanPassword = numberReg.test(newValue) |
|||
} |
|||
}, |
|||
}, |
|||
onLoad() {}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 输入密码 |
|||
changePassword() { |
|||
if (!this.password) { |
|||
uni.$u.toast(this.$t("login").passwordInputMessage) |
|||
return |
|||
} |
|||
if (!this.isCanPassword) { |
|||
let message = this.$t("login").passwordRule |
|||
uni.$u.toast(message) |
|||
return |
|||
} |
|||
// 验证重复输入的密码 |
|||
if (this.password !== this.confirmPassword) { |
|||
uni.$u.toast(this.$t("login").passwordConfirm) |
|||
return |
|||
} |
|||
|
|||
if (!this.oldPassword) { |
|||
uni.$u.toast(this.$t("login").PleaseEnterTheOldPassword) |
|||
return |
|||
} |
|||
let userInfo = { |
|||
oldPassword: md5(this.oldPassword), |
|||
password: md5(this.password), |
|||
confirmPassword: md5(this.confirmPassword), |
|||
} |
|||
api.updatePayPassword(userInfo).then(res => { |
|||
setTimeout(() => { |
|||
uni.showToast({ |
|||
title: this.$t("me").ModifiedSuccessfully |
|||
}) |
|||
}, 600) |
|||
uni.navigateBack({}) |
|||
}) |
|||
|
|||
|
|||
}, |
|||
} |
|||
}, |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 64rpx; |
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 64rpx; |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
background: #211F32; |
|||
margin: 32rpx 0; |
|||
border-radius: 32rpx; |
|||
padding-left: 32rpx !important; |
|||
} |
|||
.input { |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
background: #211F32; |
|||
margin: 32rpx 0; |
|||
border-radius: 32rpx; |
|||
padding-left: 32rpx !important; |
|||
} |
|||
|
|||
|
|||
.button { |
|||
position: relative; |
|||
height: 112rpx; |
|||
margin-top: 680rpx; |
|||
border-radius: 32rpx; |
|||
font-weight: 600; |
|||
color: #15141F !important; |
|||
font-size: 32rpx !important; |
|||
} |
|||
.button { |
|||
position: relative; |
|||
height: 112rpx; |
|||
margin-top: 680rpx; |
|||
border-radius: 32rpx; |
|||
font-weight: 600; |
|||
color: #15141F !important; |
|||
font-size: 32rpx !important; |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,114 +1,167 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.Notification }}</navigation> |
|||
<view class="body"> |
|||
<view class="userItem" v-for="(item, index) in 4" :key="index" @click="gotoDetails(index)"> |
|||
<u-icon class="icon" :name="'../../static/home/ic_proclamation.png'" size="60rpx" width="60rpx"> |
|||
</u-icon> |
|||
<view class="content"> |
|||
<view class="title">Please contact customer service on the top-left corner for identity verification |
|||
on your firstPlease contactservice on firstPlease contact customer service on the top-left |
|||
corner for identity Please contact customer service on the top-left corner for identity |
|||
verification on your firstPlease contactservice on firstPlease contact customer service on the |
|||
top-left corner for identity Please contact customer service on the top-left corner for identity |
|||
verification on your firstPlease contactservice on firstPlease contact customer ser</view> |
|||
<view class="date">{{ i18n.Release }}: 2022/08/06 14:51:34</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.Notification }}</navigation> |
|||
<view class="body"> |
|||
<view class="userItem" v-for="(item, index) in userInfoObj" :key="index" @click="gotoDetails(item.id)"> |
|||
<u-icon class="icon" :name="'../../static/home/ic_proclamation.png'" size="60rpx" width="60rpx"> |
|||
</u-icon> |
|||
<view class="content"> |
|||
<view class="title">{{item.title}}</view> |
|||
<view class="date">{{ i18n.Release }}: {{item.timestr}}</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> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "notification", |
|||
data() { |
|||
return { |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
gotoDetails(index) { |
|||
console.log(index); |
|||
uni.navigateTo({ |
|||
url: `/pages/me/notificationDetails?id=${index}` |
|||
}); |
|||
} |
|||
}, |
|||
} |
|||
import api from '@/utils/api' |
|||
export default { |
|||
name: "notification", |
|||
data() { |
|||
return { |
|||
isLoadMore: false, //是否加载中 |
|||
loadStatus: 'loadmore', |
|||
loadingText: this.$t("login").toload, |
|||
loadmoreText: this.$t("login").pullup, |
|||
nomoreText: this.$t("login").Nomore, |
|||
form: { |
|||
pageNumber: 1, |
|||
pageSize: 20, |
|||
}, |
|||
userInfoObj: [], |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onReachBottom() { |
|||
if (!this.isLoadMore) { |
|||
this.form.pageNumber += 1 |
|||
this.getRecordList(); |
|||
} |
|||
}, |
|||
onLoad() { |
|||
this.getRecordList() |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 公告列表 |
|||
getRecordList() { |
|||
this.isLoadMore = true |
|||
api.notices(this.form).then(res => { |
|||
if (res.length) { |
|||
if (this.form.pageNumber > 1) { |
|||
this.userInfoObj = this.userInfoObj.concat(res) |
|||
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 |
|||
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.length)) { // 判断接口返回数据量小于请求数据量,则表示此为最后一页 |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
} else { |
|||
this.isLoadMore = false |
|||
} |
|||
} else { |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
this.userInfoObj = [] |
|||
} |
|||
|
|||
this.$forceUpdate() |
|||
}) |
|||
}, |
|||
gotoDetails(index) { |
|||
uni.navigateTo({ |
|||
url: `/pages/me/notificationDetails?id=${index}` |
|||
}); |
|||
} |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 24rpx; |
|||
|
|||
.userItem { |
|||
position: relative; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
display: flex; |
|||
margin-top: 32rpx; |
|||
height: 218rpx; |
|||
overflow: hidden; |
|||
box-sizing: border-box; |
|||
|
|||
.icon { |
|||
height: 60rpx; |
|||
margin-left: 20rpx; |
|||
margin-right: 12rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
|
|||
.content { |
|||
overflow: hidden; |
|||
margin-top: 20rpx; |
|||
height: 218rpx; |
|||
|
|||
.title { |
|||
width: 574rpx; |
|||
height: 116rpx; |
|||
font-size: 28rpx; |
|||
padding-right: 36rpx; |
|||
// 超出字符省略成... |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
word-wrap: break-word; |
|||
display: -webkit-box; //兼容 |
|||
white-space: normal !important; |
|||
-webkit-line-clamp: 3; //显示行数 |
|||
-webkit-box-orient: vertical; |
|||
} |
|||
|
|||
.date { |
|||
width: 610rpx; |
|||
height: 64rpx; |
|||
line-height: 64rpx; |
|||
font-size: 28rpx; |
|||
color: #A1A0A8; |
|||
border-top: 1px solid #323045; |
|||
margin-top: 16rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 24rpx; |
|||
|
|||
.userItem { |
|||
position: relative; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
display: flex; |
|||
margin-top: 32rpx; |
|||
height: 218rpx; |
|||
overflow: hidden; |
|||
box-sizing: border-box; |
|||
|
|||
.icon { |
|||
height: 60rpx; |
|||
margin-left: 20rpx; |
|||
margin-right: 12rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
|
|||
.content { |
|||
overflow: hidden; |
|||
margin-top: 20rpx; |
|||
height: 218rpx; |
|||
|
|||
.title { |
|||
width: 574rpx; |
|||
height: 116rpx; |
|||
font-size: 28rpx; |
|||
padding-right: 36rpx; |
|||
// 超出字符省略成... |
|||
overflow: hidden; |
|||
text-overflow: ellipsis; |
|||
word-wrap: break-word; |
|||
display: -webkit-box; //兼容 |
|||
white-space: normal !important; |
|||
-webkit-line-clamp: 3; //显示行数 |
|||
-webkit-box-orient: vertical; |
|||
} |
|||
|
|||
.date { |
|||
width: 610rpx; |
|||
height: 64rpx; |
|||
line-height: 64rpx; |
|||
font-size: 28rpx; |
|||
color: #A1A0A8; |
|||
border-top: 1px solid #323045; |
|||
margin-top: 16rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
</style> |
|||
|
@ -1,100 +1,103 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.NotificationDetails }}</navigation> |
|||
<view class="body"> |
|||
<view class="userItem"> |
|||
<view class="content"> |
|||
<view class="title">Please contact customer service on the top-left corner for identity verification |
|||
on your firstPlease contactservice on firstPlease contact customer service on the top-left |
|||
corner for identity Please contact customer service on </view> |
|||
<view class="article">Please contact customer service on the top-left corner for identity |
|||
verification on your firstPlease contactservice on firstPlease contact customer service on the |
|||
top-left corner for identity Please contact customer service on the top-left corner for identity |
|||
verification on your firstPlease contactservice on firstPlease contact customer service on the |
|||
top-left corner for identity Please contact customer service on the top-left corner for identity |
|||
verification on your firstPlease contactservice on firstPlease contact customer ser</view> |
|||
|
|||
<view class="date">{{ i18n.Release }}: 2022/08/06 14:51:34</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.NotificationDetails }}</navigation> |
|||
<view class="body"> |
|||
<view class="userItem"> |
|||
<view class="content"> |
|||
<view class="title">{{detail.title}}</view> |
|||
<view class="article" v-html="detail.content"></view> |
|||
|
|||
<view class="date">{{ i18n.Release }}: {{detail.timestr}}</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "notificationDetails", |
|||
data() { |
|||
return { |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
|
|||
}, |
|||
} |
|||
import api from '@/utils/api' |
|||
export default { |
|||
name: "notificationDetails", |
|||
data() { |
|||
return { |
|||
detail:{}, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad(res) { |
|||
this.getNoticeDetail(res.id) |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
getNoticeDetail(id){ |
|||
api.noticeDetail({ |
|||
noticeId: id |
|||
}).then(res => { |
|||
this.detail=res |
|||
this.detail.timestr = this.$index.formatyymmddhhmmss(this.detail.addTime) |
|||
}) |
|||
}, |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 24rpx; |
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 24rpx; |
|||
|
|||
.userItem { |
|||
position: relative; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
margin-top: 20rpx; |
|||
overflow: hidden; |
|||
box-sizing: border-box; |
|||
.userItem { |
|||
position: relative; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
margin-top: 20rpx; |
|||
overflow: hidden; |
|||
box-sizing: border-box; |
|||
|
|||
.content { |
|||
overflow: hidden; |
|||
.content { |
|||
overflow: hidden; |
|||
|
|||
.title { |
|||
width: 640rpx; |
|||
font-size: 28rpx; |
|||
padding: 20rpx 32rpx; |
|||
.title { |
|||
width: 640rpx; |
|||
font-size: 28rpx; |
|||
padding: 20rpx 32rpx; |
|||
|
|||
} |
|||
} |
|||
|
|||
.article { |
|||
border-top: 2rpx solid #323045; |
|||
padding: 20rpx 32rpx; |
|||
font-size: 28rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
.article { |
|||
border-top: 2rpx solid #323045; |
|||
padding: 20rpx 32rpx; |
|||
font-size: 28rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
.date { |
|||
width: 610rpx; |
|||
height: 64rpx; |
|||
line-height: 64rpx; |
|||
font-size: 28rpx; |
|||
color: #A1A0A8; |
|||
border-top: 2rpx solid #323045; |
|||
margin-top: 16rpx; |
|||
padding: 0 32rpx; |
|||
} |
|||
} |
|||
.date { |
|||
width: 610rpx; |
|||
height: 64rpx; |
|||
line-height: 64rpx; |
|||
font-size: 28rpx; |
|||
color: #A1A0A8; |
|||
border-top: 2rpx solid #323045; |
|||
margin-top: 16rpx; |
|||
padding: 0 32rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,355 +1,367 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.WalletHistory }}</navigation> |
|||
<view class="body"> |
|||
<view class="form"> |
|||
<!-- coin选择框 --> |
|||
<view class="text">{{ i18n.SelectCurrency }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.PleaseChooseCoin"> |
|||
</u-input> |
|||
<view class="downSelect" @click="USDTPopupShow = true"></view> |
|||
</view> |
|||
<!-- form地址选择框 --> |
|||
<view class="text">{{ i18n.From }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.OptionAccount"> |
|||
</u-input> |
|||
<view class="downSelect" @click="accountPopupShow = true"></view> |
|||
</view> |
|||
<!-- to地址选择框 --> |
|||
<view class="text">{{ i18n.To }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.TradingAccount"> |
|||
</u-input> |
|||
<view class="downSelect" @click="accountPopupShow = true"></view> |
|||
</view> |
|||
<!-- 数量 --> |
|||
<view class="text">{{ i18n.TransferNumber }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.PleaseEnterNumber"> |
|||
</u-input> |
|||
<view class="numberDownSelect">USDT <view class="all">{{i18n.ALL}}</view> |
|||
</view> |
|||
</view> |
|||
<view class="Usable">{{ i18n.Usable }} <view class="number">560878.90000000</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 按钮 --> |
|||
<u-button class="transferButton" color="#00E8A2" throttleTime="500">{{ |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.Transfer }}</navigation> |
|||
<view class="body"> |
|||
<view class="form"> |
|||
<!-- coin选择框 --> |
|||
<view class="text">{{ i18n.SelectCurrency }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.PleaseChooseCoin"> |
|||
</u-input> |
|||
<view class="downSelect" @click="USDTPopupShow = true"></view> |
|||
</view> |
|||
<!-- form地址选择框 --> |
|||
<view class="text">{{ i18n.From }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.OptionAccount"> |
|||
</u-input> |
|||
<view class="downSelect" @click="accountPopupShow = true"></view> |
|||
</view> |
|||
<!-- to地址选择框 --> |
|||
<view class="text">{{ i18n.To }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.TradingAccount"> |
|||
</u-input> |
|||
<view class="downSelect" @click="accountPopupShow = true"></view> |
|||
</view> |
|||
<!-- 数量 --> |
|||
<view class="text">{{ i18n.TransferNumber }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="coin" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.PleaseEnterNumber"> |
|||
</u-input> |
|||
<view class="numberDownSelect">USDT <view class="all">{{i18n.ALL}}</view> |
|||
</view> |
|||
</view> |
|||
<view class="Usable">{{ i18n.Usable }} |
|||
<view class="number">{{info.userCapital}}{{info.coinCode}}</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- 按钮 --> |
|||
<u-button class="transferButton" color="#00E8A2" throttleTime="500">{{ |
|||
i18n.Transfer |
|||
}}</u-button> |
|||
|
|||
<!-- USDT按钮通知弹出层 --> |
|||
<u-popup class="USDTPopup" :show="USDTPopupShow" round="40rpx" mode="bottom" @close="USDTPopupShow = false" |
|||
@open="USDTPopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="USDTPopupShow = false"></view> |
|||
<scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" @touchmove.stop.prevent=""> |
|||
<radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue"> |
|||
<label class="checkBox" v-for="(item, index) in 10" :key="index"> |
|||
<view class="icon"> |
|||
<u-icon name="../../static/maskets/bye.png" size="52rpx" width="52rpx"></u-icon> |
|||
</view> |
|||
<view class="iconName"> |
|||
<view class="top">USDT</view> |
|||
<view class="bottom">BTC</view> |
|||
</view> |
|||
|
|||
<radio color="#00E8A2" shape="square"></radio> |
|||
</label> |
|||
|
|||
</radio-group> |
|||
</scroll-view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="USDTPopupShow = false">OK |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
<!-- account账户按钮通知弹出层 --> |
|||
<u-popup class="accountPopup" :show="accountPopupShow" round="40rpx" mode="bottom" |
|||
@close="accountPopupShow = false" @open="accountPopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="accountPopupShow = false"></view> |
|||
<scroll-view scroll-y="true" style="height: 200rpx;" scroll-with-animation="true" @touchmove.stop.prevent=""> |
|||
<radio-group class="radioGroup" @change="accountRadioChange" v-model="accountRadioValue"> |
|||
<label class="checkBox" v-for="(item, index) in 3" :key="index"> |
|||
<view class="name">Option account</view> |
|||
<radio color="#00E8A2" shape="square"></radio> |
|||
</label> |
|||
|
|||
</radio-group> |
|||
</scroll-view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="accountPopupShow = false">OK |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
</view> |
|||
|
|||
</view> |
|||
<!-- USDT按钮通知弹出层 --> |
|||
<u-popup class="USDTPopup" :show="USDTPopupShow" round="40rpx" mode="bottom" @close="USDTPopupShow = false" |
|||
@open="USDTPopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="USDTPopupShow = false"></view> |
|||
<scroll-view scroll-y="true" style="height: 432rpx;" scroll-with-animation="true" |
|||
@touchmove.stop.prevent=""> |
|||
<radio-group class="radioGroup" @change="USDTRadioChange" v-model="USDTRadioValue"> |
|||
<label class="checkBox" v-for="(item, index) in 10" :key="index"> |
|||
<view class="icon"> |
|||
<u-icon name="../../static/maskets/bye.png" size="52rpx" width="52rpx"></u-icon> |
|||
</view> |
|||
<view class="iconName"> |
|||
<view class="top">USDT</view> |
|||
<view class="bottom">BTC</view> |
|||
</view> |
|||
|
|||
<radio color="#00E8A2" shape="square"></radio> |
|||
</label> |
|||
|
|||
</radio-group> |
|||
</scroll-view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="USDTPopupShow = false">OK |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
<!-- account账户按钮通知弹出层 --> |
|||
<u-popup class="accountPopup" :show="accountPopupShow" round="40rpx" mode="bottom" |
|||
@close="accountPopupShow = false" @open="accountPopupShow = true" bgColor="#211F32"> |
|||
<view class="content"> |
|||
<view class="close" @click="accountPopupShow = false"></view> |
|||
<scroll-view scroll-y="true" style="height: 200rpx;" scroll-with-animation="true" |
|||
@touchmove.stop.prevent=""> |
|||
<radio-group class="radioGroup" @change="accountRadioChange" v-model="accountRadioValue"> |
|||
<label class="checkBox" v-for="(item, index) in 3" :key="index"> |
|||
<view class="name">Option account</view> |
|||
<radio color="#00E8A2" shape="square"></radio> |
|||
</label> |
|||
|
|||
</radio-group> |
|||
</scroll-view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" @click="accountPopupShow = false">OK |
|||
</u-button> |
|||
</view> |
|||
</u-popup> |
|||
|
|||
</view> |
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "transfer", |
|||
data() { |
|||
return { |
|||
coin: '', |
|||
USDTPopupShow: false, |
|||
accountPopupShow: false, |
|||
USDTRadioValue: '', |
|||
accountRadioValue: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
USDTRadioChange(e) { |
|||
console.log(e); |
|||
}, |
|||
accountRadioChange(e) { |
|||
console.log(e); |
|||
} |
|||
|
|||
}, |
|||
} |
|||
import api from '@/utils/api' |
|||
export default { |
|||
name: "transfer", |
|||
data() { |
|||
return { |
|||
info:{}, |
|||
coin: '', |
|||
USDTPopupShow: false, |
|||
accountPopupShow: false, |
|||
USDTRadioValue: '', |
|||
accountRadioValue: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
this.getInfo() |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
getInfo() { |
|||
api.getTransferConfig({}).then(res => { |
|||
console.log(res) |
|||
this.info=res |
|||
}) |
|||
}, |
|||
USDTRadioChange(e) { |
|||
console.log(e); |
|||
}, |
|||
accountRadioChange(e) { |
|||
console.log(e); |
|||
} |
|||
|
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
.body { |
|||
.form { |
|||
margin: 232rpx 32rpx 0; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
padding: 0 32rpx; |
|||
overflow: hidden; |
|||
|
|||
.text { |
|||
margin: 32rpx 0 20rpx; |
|||
font-size: 32rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
.input-item { |
|||
position: relative; |
|||
background: #323045; |
|||
border-radius: 32rpx; |
|||
|
|||
.input { |
|||
width: 400rpx; |
|||
height: 112rpx; |
|||
padding-left: 40rpx !important; |
|||
} |
|||
|
|||
.downSelect { |
|||
position: absolute; |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
top: 36rpx; |
|||
right: 32rpx; |
|||
background-image: url(../../static/me/ic_input_arrow_down.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 32rpx; |
|||
|
|||
|
|||
} |
|||
|
|||
.numberDownSelect { |
|||
position: absolute; |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
top: 36rpx; |
|||
right: 148rpx; |
|||
|
|||
.all { |
|||
padding-left: 16rpx; |
|||
display: inline; |
|||
font-size: 28rpx; |
|||
color: #00E8A2; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.Usable { |
|||
margin: 32rpx 0; |
|||
color: #FFFFFF; |
|||
font-size: 12px; |
|||
|
|||
.number { |
|||
display: inline; |
|||
color: #00E8A2; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.transferButton { |
|||
box-sizing: border-box; |
|||
margin: 64rpx 32rpx; |
|||
width: 686rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.USDTPopup { |
|||
.content { |
|||
height: 730rpx; |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.radioGroup { |
|||
height: 432rpx; |
|||
|
|||
.checkBox { |
|||
height: 84rpx; |
|||
width: 670rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
margin: 0 40rpx 32rpx; |
|||
|
|||
.icon { |
|||
width: 84rpx; |
|||
height: 84rpx; |
|||
border-radius: 20rpx; |
|||
overflow: hidden; |
|||
display: inline-block; |
|||
box-sizing: border-box; |
|||
background: #323045; |
|||
padding: 16rpx; |
|||
margin-right: 20rpx; |
|||
} |
|||
|
|||
.iconName { |
|||
width: 520rpx; |
|||
|
|||
.top { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
|
|||
.bottom { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
/deep/.uni-radio-input { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 16rpx; |
|||
background: #323045; |
|||
} |
|||
|
|||
/deep/.uni-radio-input-checked::before { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 40rpx 48rpx; |
|||
border-radius: 32rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
.accountPopup { |
|||
.content { |
|||
height: 484rpx; |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.radioGroup { |
|||
height: 200rpx; |
|||
|
|||
.checkBox { |
|||
height: 84rpx; |
|||
width: 670rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
margin: 0 40rpx 32rpx; |
|||
|
|||
.name { |
|||
width: 600rpx; |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
/deep/.uni-radio-input { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 16rpx; |
|||
background: #323045; |
|||
} |
|||
|
|||
/deep/.uni-radio-input-checked::before { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
.main { |
|||
.body { |
|||
.form { |
|||
margin: 232rpx 32rpx 0; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
padding: 0 32rpx; |
|||
overflow: hidden; |
|||
|
|||
.text { |
|||
margin: 32rpx 0 20rpx; |
|||
font-size: 32rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
.input-item { |
|||
position: relative; |
|||
background: #323045; |
|||
border-radius: 32rpx; |
|||
|
|||
.input { |
|||
width: 400rpx; |
|||
height: 112rpx; |
|||
padding-left: 40rpx !important; |
|||
} |
|||
|
|||
.downSelect { |
|||
position: absolute; |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
top: 36rpx; |
|||
right: 32rpx; |
|||
background-image: url(../../static/me/ic_input_arrow_down.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 32rpx; |
|||
|
|||
|
|||
} |
|||
|
|||
.numberDownSelect { |
|||
position: absolute; |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
top: 36rpx; |
|||
right: 148rpx; |
|||
|
|||
.all { |
|||
padding-left: 16rpx; |
|||
display: inline; |
|||
font-size: 28rpx; |
|||
color: #00E8A2; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.Usable { |
|||
margin: 32rpx 0; |
|||
color: #FFFFFF; |
|||
font-size: 12px; |
|||
|
|||
.number { |
|||
display: inline; |
|||
color: #00E8A2; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.transferButton { |
|||
box-sizing: border-box; |
|||
margin: 64rpx 32rpx; |
|||
width: 686rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
.USDTPopup { |
|||
.content { |
|||
height: 730rpx; |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.radioGroup { |
|||
height: 432rpx; |
|||
|
|||
.checkBox { |
|||
height: 84rpx; |
|||
width: 670rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
margin: 0 40rpx 32rpx; |
|||
|
|||
.icon { |
|||
width: 84rpx; |
|||
height: 84rpx; |
|||
border-radius: 20rpx; |
|||
overflow: hidden; |
|||
display: inline-block; |
|||
box-sizing: border-box; |
|||
background: #323045; |
|||
padding: 16rpx; |
|||
margin-right: 20rpx; |
|||
} |
|||
|
|||
.iconName { |
|||
width: 520rpx; |
|||
|
|||
.top { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
|
|||
.bottom { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
/deep/.uni-radio-input { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 16rpx; |
|||
background: #323045; |
|||
} |
|||
|
|||
/deep/.uni-radio-input-checked::before { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 40rpx 48rpx; |
|||
border-radius: 32rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
.accountPopup { |
|||
.content { |
|||
height: 484rpx; |
|||
|
|||
.close { |
|||
margin: 48rpx 346rpx; |
|||
width: 58rpx; |
|||
height: 20rpx; |
|||
background-image: url(../../static/charity/Turn.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 58rpx 20rpx; |
|||
} |
|||
|
|||
.radioGroup { |
|||
height: 200rpx; |
|||
|
|||
.checkBox { |
|||
height: 84rpx; |
|||
width: 670rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
margin: 0 40rpx 32rpx; |
|||
|
|||
.name { |
|||
width: 600rpx; |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
/deep/.uni-radio-input { |
|||
width: 48rpx; |
|||
height: 48rpx; |
|||
border-radius: 16rpx; |
|||
background: #323045; |
|||
} |
|||
|
|||
/deep/.uni-radio-input-checked::before { |
|||
font-size: 36rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.button { |
|||
width: 654rpx; |
|||
margin: 20rpx 48rpx; |
|||
border-radius: 32rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
color: #15141F !important; |
|||
} |
|||
.button { |
|||
width: 654rpx; |
|||
margin: 20rpx 48rpx; |
|||
border-radius: 32rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
color: #15141F !important; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,137 +1,192 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.WalletHistory }}</navigation> |
|||
<!-- headBtn --> |
|||
<view class="head"> |
|||
<view class="headItem" @click="pageState = 'balance'" :class="{ select: pageState === 'balance' }"> |
|||
{{ i18n.Balance }} |
|||
</view> |
|||
<view class="headItem" @click="pageState = 'contarct'" :class="{ select: pageState === 'contarct' }"> |
|||
{{ i18n.Contarct }} |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="cardList"> |
|||
<view class="card" v-for="(item, index) in 4" :key="index"> |
|||
<!-- 卡片条件渲染 --> |
|||
<!-- balance --> |
|||
<card-header v-if="pageState === 'balance'" |
|||
:iconName="`../../static/me/${(0 + +balanceTestValue) > 0 ? 'ic_wallet_add' : 'ic_wallet_minus'}.png`" |
|||
:title="'973430980989323445'" :rightName="balanceTestValue" |
|||
:fontColor="`${(0 + +balanceTestValue) > 0 ? '#00E8A2' : '#F4506A'}`"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'balance'"> |
|||
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> |
|||
<view class="text">Postscript : ontact customer service on the top-left corner for identity verific |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
<!-- contarct --> |
|||
<card-header v-if="pageState === 'contarct'" |
|||
:iconName="`../../static/me/${(0 + +contarctTestValue) > 0 ? 'ic_wallet_add' : 'ic_wallet_minus'}.png`" |
|||
:title="'973430980989323445'" :rightName="contarctTestValue" |
|||
:fontColor="`${(0 + +contarctTestValue) > 0 ? '#00E8A2' : '#F4506A'}`"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'contarct'"> |
|||
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> |
|||
<view class="text">Postscript : ontact customer service on the top-left corner for identity verific |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
|
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.WalletHistory }}</navigation> |
|||
<!-- headBtn --> |
|||
<view class="head"> |
|||
<view class="headItem" @click="getType('exchange')" :class="{ select: form.ways === 'exchange' }"> |
|||
{{ i18n.Balance }} |
|||
</view> |
|||
<view class="headItem" @click="getType('contract')" :class="{ select: form.ways === 'contract' }"> |
|||
{{ i18n.Contarct }} |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="cardList"> |
|||
<view class="card" v-for="(item, index) in userInfoObj" :key="index"> |
|||
<!-- 卡片条件渲染 --> |
|||
<!-- balance --> |
|||
<card-header v-if="form.ways === 'exchange'" |
|||
:iconName="`../../static/me/${ item.isIncome=='yes' ? 'ic_wallet_add' : 'ic_wallet_minus'}.png`" |
|||
:title="item.witId" :rightName="`${ item.isIncome=='yes' ? '+' : '-'}`+item.amount+' '+item.coinCode" |
|||
:fontColor="`${item.isIncome=='yes'? '#00E8A2' : '#F4506A'}`"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="form.ways === 'exchange'"> |
|||
<key-value-row :keyName="i18n.Status" :value="item.status"></key-value-row> |
|||
<key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row> |
|||
<view class="text">Postscript : {{item.witType}} |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
<!-- contarct --> |
|||
<card-header v-if="form.ways === 'contract'" |
|||
:iconName="`../../static/me/${ item.isIncome=='yes' ? 'ic_wallet_add' : 'ic_wallet_minus'}.png`" |
|||
:title="item.witId" :rightName="`${ item.isIncome=='yes' ? '+' : '-'}`+item.amount+item.coinCode" |
|||
:fontColor="`${item.isIncome=='yes'? '#00E8A2' : '#F4506A'}`"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="form.ways === 'contract'"> |
|||
<key-value-row :keyName="i18n.Status" :value="item.status"></key-value-row> |
|||
<key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row> |
|||
<view class="text">Postscript : {{item.witType}} |
|||
</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> |
|||
</template> |
|||
|
|||
<script> |
|||
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; |
|||
import CardHeader from '../../components/cardHeader/cardHeader.vue'; |
|||
export default { |
|||
components: { KeyValueRow, CardHeader }, |
|||
name: "walletHistory", |
|||
data() { |
|||
return { |
|||
pageState: 'balance', |
|||
balanceTestValue: '+100', //测试用数据 |
|||
contarctTestValue: '-100', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
|
|||
|
|||
}, |
|||
} |
|||
import api from '@/utils/api' |
|||
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; |
|||
import CardHeader from '../../components/cardHeader/cardHeader.vue'; |
|||
export default { |
|||
components: { |
|||
KeyValueRow, |
|||
CardHeader |
|||
}, |
|||
name: "walletHistory", |
|||
data() { |
|||
return { |
|||
isLoadMore: false, //是否加载中 |
|||
loadStatus: 'loadmore', |
|||
loadingText: this.$t("login").toload, |
|||
loadmoreText: this.$t("login").pullup, |
|||
nomoreText: this.$t("login").Nomore, |
|||
form: { |
|||
pageNumber: 1, |
|||
pageSize: 20, |
|||
ways: 'exchange', |
|||
}, |
|||
userInfoObj: [], |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("me"); |
|||
}, |
|||
}, |
|||
onReachBottom() { |
|||
if (!this.isLoadMore) { |
|||
this.form.pageNumber += 1 |
|||
this.getRecordList(); |
|||
} |
|||
}, |
|||
onLoad() { |
|||
this.getRecordList(); |
|||
}, |
|||
onShow() { |
|||
}, |
|||
methods: { |
|||
getType(type){ |
|||
this.form.ways=type |
|||
this.getRecordList() |
|||
}, |
|||
// 账单记录 |
|||
getRecordList() { |
|||
this.isLoadMore = true |
|||
api.billList(this.form).then(res => { |
|||
if (res.content.length) { |
|||
if (this.form.pageNumber > 1) { |
|||
this.userInfoObj = this.userInfoObj.concat(res.content) |
|||
} else { |
|||
this.userInfoObj = res.content |
|||
} |
|||
if (this.userInfoObj.length >= Number(res.count)) { // 判断接口返回数据量小于请求数据量,则表示此为最后一页 |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
} else { |
|||
this.isLoadMore = false |
|||
} |
|||
} else { |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
this.userInfoObj = [] |
|||
} |
|||
|
|||
this.$forceUpdate() |
|||
}) |
|||
}, |
|||
|
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.head { |
|||
margin-top: 200rpx; |
|||
margin-left: 60rpx; |
|||
width: 632rpx; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
padding: 48rpx 0; |
|||
|
|||
.headItem { |
|||
width: 300rpx; |
|||
height: 68rpx; |
|||
line-height: 68rpx; |
|||
background: #211F32; |
|||
border-radius: 16rpx; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
color: #A1A0A8; |
|||
|
|||
&.select { |
|||
background: #00E8A2; |
|||
color: #15141F; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
.cardList { |
|||
padding-bottom: 40rpx; |
|||
|
|||
.card { |
|||
overflow: hidden; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
margin: 0 32rpx 32rpx; |
|||
|
|||
|
|||
|
|||
.dataBody { |
|||
box-sizing: border-box; |
|||
padding: 32rpx; |
|||
|
|||
.text { |
|||
margin-top: 20rpx; |
|||
padding: 10rpx 16rpx; |
|||
background: #323045; |
|||
border-radius: 8rpx; |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
.main { |
|||
|
|||
.head { |
|||
margin-top: 200rpx; |
|||
margin-left: 60rpx; |
|||
width: 632rpx; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
padding: 48rpx 0; |
|||
|
|||
.headItem { |
|||
width: 300rpx; |
|||
height: 68rpx; |
|||
line-height: 68rpx; |
|||
background: #211F32; |
|||
border-radius: 16rpx; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
color: #A1A0A8; |
|||
|
|||
&.select { |
|||
background: #00E8A2; |
|||
color: #15141F; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
.cardList { |
|||
padding-bottom: 40rpx; |
|||
|
|||
.card { |
|||
overflow: hidden; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
margin: 0 32rpx 32rpx; |
|||
|
|||
|
|||
|
|||
.dataBody { |
|||
box-sizing: border-box; |
|||
padding: 32rpx; |
|||
|
|||
.text { |
|||
margin-top: 20rpx; |
|||
padding: 10rpx 16rpx; |
|||
background: #323045; |
|||
border-radius: 8rpx; |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
</style> |
|||
|
@ -1,138 +1,211 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ pageState === 'addBank' ? i18n.AddBankInformation : i18n.EditBankInformation }}</navigation> |
|||
<view class="content"> |
|||
<view class="inputBody"> |
|||
<view class="title">{{ i18n.FirstName }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="name" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.enterName"> |
|||
</u-input> |
|||
</view> |
|||
<view class="title">{{ i18n.Account }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="account" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.enterAccount"> |
|||
</u-input> |
|||
</view> |
|||
</view> |
|||
<view class="inputBody"> |
|||
<view class="title">{{ i18n.BankName }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="bankName" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.enterBankName"> |
|||
</u-input> |
|||
</view> |
|||
<view class="title">{{ i18n.BankCode }}</view> |
|||
<view class="input-item"> |
|||
<u-input class="input" type="password" v-model="bankCode" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.enterBankCode"> |
|||
</u-input> |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="btnIsCanClick">{{ i18n.Confirm }} |
|||
</u-button> |
|||
|
|||
</view> |
|||
|
|||
|
|||
|
|||
|
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ pageState === 'addBank' ? i18n.AddBankInformation : i18n.EditBankInformation }}</navigation> |
|||
<view class="content"> |
|||
<u--form class="form" :model="bankInfo" :rules="rules" ref="uForm" errorType="toast"> |
|||
<view class="inputBody"> |
|||
<view class="title">{{ i18n.FirstName }}</view> |
|||
<view class="input-item"> |
|||
<u-form-item class="input-item" prop="acctName" ref="item1"> |
|||
<u-input class="input" v-model="bankInfo.acctName" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.enterName"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</view> |
|||
<view class="title">{{ i18n.Account }}</view> |
|||
<view class="input-item"> |
|||
<u-form-item class="input-item" prop="acctId" ref="item1"> |
|||
<u-input class="input" v-model="bankInfo.acctId" color="#fff" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.enterAccount"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</view> |
|||
</view> |
|||
<view class="inputBody"> |
|||
<view class="title">{{ i18n.BankName }}</view> |
|||
<view class="input-item"> |
|||
<u-form-item class="input-item" prop="email" ref="item1"> |
|||
<u-input class="input" v-model="bankInfo.bankName" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.enterBankName"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</view> |
|||
<view class="title">{{ i18n.BankCode }}</view> |
|||
<view class="input-item"> |
|||
<u-form-item class="input-item" prop="bankCode" ref="item1"> |
|||
<u-input class="input" v-model="bankInfo.bankCode" color="#fff" fontSize="32rpx" |
|||
border="none" :placeholder="i18n.enterBankCode"> |
|||
</u-input> |
|||
</u-form-item> |
|||
</view> |
|||
</view> |
|||
</u--form> |
|||
|
|||
<u-button class="button" color="#00E8A2" :throttleTime="500" :disabled="btnIsCanClick" @click="bank"> |
|||
{{ i18n.Confirm }} |
|||
</u-button> |
|||
|
|||
</view> |
|||
|
|||
|
|||
|
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "withdrawalRecord", |
|||
data() { |
|||
return { |
|||
pageState: 'addBank', // 页面状态,是添加还是编辑银行卡 |
|||
name: '', |
|||
account: '', |
|||
bankName: '', |
|||
bankCode: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("withdrawal"); |
|||
}, |
|||
btnIsCanClick() { // 按钮是否可以点击 |
|||
if (this.name && this.account && this.bankName && this.bankCode) { |
|||
return false; // 有值才可以点 |
|||
} else { |
|||
return true |
|||
} |
|||
} |
|||
}, |
|||
onLoad(option) { |
|||
console.log(option); |
|||
this.pageState = option.mode || 'addBank'; |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
change(e) { |
|||
console.log(e); |
|||
} |
|||
|
|||
}, |
|||
} |
|||
import api from '@/utils/api' |
|||
export default { |
|||
name: "withdrawalRecord", |
|||
data() { |
|||
return { |
|||
rules: { |
|||
acctName: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('withdrawal').enterName, |
|||
trigger: ['blur', 'change'], |
|||
}, |
|||
bankName: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('withdrawal').enterBankName, |
|||
trigger: ['blur', 'change'] |
|||
}, |
|||
acctId: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('withdrawal').enterAccount, |
|||
trigger: ['blur', 'change'] |
|||
}, |
|||
bankCode: { |
|||
type: 'string', |
|||
required: true, |
|||
message: this.$t('withdrawal').enterBankCode, |
|||
trigger: ['blur', 'change'] |
|||
}, |
|||
}, |
|||
bankInfo: { |
|||
bankCode: null, |
|||
bankName: null, |
|||
acctName: null, |
|||
acctId: null, |
|||
}, |
|||
pageState: 'addBank', // 页面状态,是添加还是编辑银行卡 |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("withdrawal"); |
|||
}, |
|||
btnIsCanClick() { |
|||
if (this.bankInfo.bankCode && this.bankInfo.bankName && this.bankInfo.acctName && this.bankInfo.acctId) { |
|||
return false |
|||
} else { |
|||
return true |
|||
} |
|||
} |
|||
}, |
|||
onLoad(option) { |
|||
this.getBank() |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 获取银行卡信息 |
|||
getBank() { |
|||
api.bankCardInfo().then(res => { |
|||
this.bankInfo = res; |
|||
if (this.bankInfo.id) { |
|||
this.pageState = 'editBank' || 'addBank'; |
|||
} |
|||
}) |
|||
}, |
|||
// 修改或添加银行卡 |
|||
bank() { |
|||
this.$refs.uForm.validate().then(res => { |
|||
let bankInfo = { |
|||
bankCode: this.bankInfo.bankCode, |
|||
bankName: this.bankInfo.bankName, |
|||
acctName: this.bankInfo.acctName, |
|||
acctId: this.bankInfo.acctId, |
|||
} |
|||
if (this.bankInfo.id) { |
|||
bankInfo.id = this.bankInfo.id |
|||
} |
|||
api.bindBank(bankInfo).then(res => { |
|||
if (this.bankInfo.id) { |
|||
uni.$u.toast(this.$t("me").ModifiedSuccessfully) |
|||
} else { |
|||
uni.$u.toast(this.$t("me").addSuccessfully) |
|||
} |
|||
setTimeout(() => { |
|||
uni.navigateBack({}) |
|||
}, 600) |
|||
}) |
|||
}).catch(errors => { |
|||
console.log('err') |
|||
}) |
|||
}, |
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.content { |
|||
margin-top: 200rpx; |
|||
padding: 32rpx; |
|||
|
|||
.inputBody { |
|||
overflow: hidden; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
padding: 32rpx; |
|||
margin-bottom: 32rpx; |
|||
|
|||
.title { |
|||
font-size: 32rpx; |
|||
color: #A1A0A8; |
|||
margin-bottom: 20rpx; |
|||
} |
|||
|
|||
.input-item { |
|||
height: 112rpx; |
|||
background: #323045; |
|||
border-radius: 32rpx; |
|||
padding-left: 40rpx; |
|||
margin-bottom: 20rpx; |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
.button { |
|||
position: fixed; |
|||
bottom: 40rpx; |
|||
width: 686rpx; |
|||
box-sizing: border-box; |
|||
height: 112rpx; |
|||
background: #00E8A2; |
|||
border-radius: 32rpx; |
|||
font-weight: 700; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
/deep/ .u-form-item__body { |
|||
padding: 0 0; |
|||
} |
|||
|
|||
.main { |
|||
|
|||
.content { |
|||
margin-top: 200rpx; |
|||
padding: 32rpx; |
|||
|
|||
.inputBody { |
|||
overflow: hidden; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
padding: 32rpx; |
|||
margin-bottom: 32rpx; |
|||
|
|||
.title { |
|||
font-size: 32rpx; |
|||
color: #A1A0A8; |
|||
margin-bottom: 20rpx; |
|||
} |
|||
|
|||
.input-item { |
|||
height: 112rpx; |
|||
background: #323045; |
|||
border-radius: 32rpx; |
|||
padding-left: 40rpx; |
|||
margin-bottom: 20rpx; |
|||
|
|||
.input { |
|||
height: 112rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
|
|||
.button { |
|||
position: fixed; |
|||
bottom: 40rpx; |
|||
width: 686rpx; |
|||
box-sizing: border-box; |
|||
height: 112rpx; |
|||
background: #00E8A2; |
|||
border-radius: 32rpx; |
|||
font-weight: 700; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
</style> |
|||
|
Loading…
Reference in new issue