11 changed files with 1103 additions and 848 deletions
@ -1,125 +1,144 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.MinePool }}</navigation> |
|||
<view class="poolContent"> |
|||
<!-- pool选择框 --> |
|||
<view class="pool-item" v-for="(item, index) in 4" :key="index"> |
|||
<u-icon class="icon" :name="'../../static/mine/img_mine01.png'" size="92rpx" width="92rpx"></u-icon> |
|||
<view class="right"> |
|||
<view class="title">0.1 BTC 30 days</view> |
|||
<view class="description">every time lock 0.1 BTC,Lock 30 Mine poolLock,to produce 300 ACTA per 1 |
|||
day</view> |
|||
</view> |
|||
<u-button class="button" @click="gotoDetails(index)" color="#00E8A2" throttleTime="500">{{ i18n.OpenMine }}</u-button> |
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.MinePool }}</navigation> |
|||
<view class="poolContent"> |
|||
<!-- pool选择框 --> |
|||
<view class="pool-item" v-for="(item, index) in mineCon.mineList" :key="index"> |
|||
<u-icon class="icon" :name="mineCon.imgAddress+item.imgMobile" size="92rpx" width="92rpx"></u-icon> |
|||
<view class="right"> |
|||
<view class="title">{{item.name}}</view> |
|||
<view class="description">{{item.remarks}}</view> |
|||
</view> |
|||
<u-button class="button" @click="gotoDetails(item,index)" color="#00E8A2" throttleTime="500" :disabled="item.status!='open'"> |
|||
{{ i18n.OpenMine }}</u-button> |
|||
</view> |
|||
|
|||
<u-empty :text="i18n.Dataisempty" mode="data" v-if="mineCon.mineList.length==0"></u-empty> |
|||
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText" |
|||
:nomore-text="nomoreText" v-if="mineCon.mineList.length" height="80" /> |
|||
|
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "mine", |
|||
data() { |
|||
return { |
|||
pageState: 'coinRecharge', |
|||
coin: '', |
|||
USDTPopupShow: false, |
|||
USDTRadioValue: '', |
|||
selectNumberValue: 100, |
|||
selectMethod: '1', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("mine"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
gotoDetails(index) { |
|||
console.log(index); |
|||
uni.navigateTo({ |
|||
url: `/pages/mine/mineDetails?id=${index}` |
|||
}); |
|||
}, |
|||
|
|||
}, |
|||
} |
|||
import api from '@/utils/api' |
|||
import constant from '@/utils/constant.js'; |
|||
export default { |
|||
name: "mine", |
|||
data() { |
|||
return { |
|||
mineCon:[], |
|||
pageState: 'coinRecharge', |
|||
coin: '', |
|||
USDTPopupShow: false, |
|||
USDTRadioValue: '', |
|||
selectNumberValue: 100, |
|||
selectMethod: '1', |
|||
isLoadMore: false, //是否加载中 |
|||
loadStatus: 'loadmore', |
|||
loadingText: this.$t("login").toload, |
|||
loadmoreText: this.$t("login").pullup, |
|||
nomoreText: this.$t("login").Nomore, |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("mine"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
this.getMine() |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
//获取挖矿产品列表 |
|||
getMine() { |
|||
this.isLoadMore = true |
|||
api.mineList().then(res => { |
|||
this.mineCon=res |
|||
this.loadStatus = 'nomore' |
|||
}) |
|||
}, |
|||
gotoDetails(item,index) { |
|||
uni.navigateTo({ |
|||
url: `/pages/mine/mineDetails?id=${item.id}&imgAddress=${this.mineCon.imgAddress}` |
|||
}); |
|||
}, |
|||
|
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.poolContent { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 60rpx; |
|||
|
|||
|
|||
.pool-item { |
|||
position: relative; |
|||
background: #211F32; |
|||
margin-top: 32rpx; |
|||
padding: 32rpx 24rpx; |
|||
background-image: url(../../static/mine/Line.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 630rpx 2rpx; |
|||
|
|||
.icon { |
|||
display: inline-block; |
|||
width: 92rpx; |
|||
margin-top: 10rpx; |
|||
margin-right: 28rpx; |
|||
border-radius: 16rpx; |
|||
vertical-align: top; |
|||
} |
|||
|
|||
.right { |
|||
display: inline-block; |
|||
width: 460rpx; |
|||
|
|||
.title { |
|||
font-weight: 600; |
|||
width: 460rpx; |
|||
height: 52rpx; |
|||
line-height: 52rpx; |
|||
font-size: 32rpx; |
|||
} |
|||
|
|||
.description { |
|||
width: 460rpx; |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
.button { |
|||
height: 64rpx; |
|||
line-height:64rpx; |
|||
font-size: 28rpx; |
|||
color: #15141F !important; |
|||
margin-top: 48rpx; |
|||
border-radius: 16rpx; |
|||
text-align: center; |
|||
font-weight: 600; |
|||
} |
|||
|
|||
&:last-child{ |
|||
margin-bottom: 80rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
} |
|||
.main { |
|||
|
|||
.poolContent { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 60rpx; |
|||
|
|||
|
|||
.pool-item { |
|||
position: relative; |
|||
background: #211F32; |
|||
margin-top: 32rpx; |
|||
padding: 32rpx 24rpx; |
|||
background-image: url(../../static/mine/Line.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 630rpx 2rpx; |
|||
|
|||
.icon { |
|||
display: inline-block; |
|||
width: 92rpx; |
|||
margin-top: 10rpx; |
|||
margin-right: 28rpx; |
|||
border-radius: 16rpx; |
|||
vertical-align: top; |
|||
} |
|||
|
|||
.right { |
|||
display: inline-block; |
|||
width: 460rpx; |
|||
|
|||
.title { |
|||
font-weight: 600; |
|||
width: 460rpx; |
|||
height: 52rpx; |
|||
line-height: 52rpx; |
|||
font-size: 32rpx; |
|||
} |
|||
|
|||
.description { |
|||
width: 460rpx; |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
.button { |
|||
height: 64rpx; |
|||
line-height: 64rpx; |
|||
font-size: 28rpx; |
|||
color: #15141F !important; |
|||
margin-top: 48rpx; |
|||
border-radius: 16rpx; |
|||
text-align: center; |
|||
font-weight: 600; |
|||
} |
|||
|
|||
&:last-child { |
|||
margin-bottom: 80rpx; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
} |
|||
</style> |
|||
|
@ -1,233 +1,276 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.MineDetails }}<view slot="right" class="right" @click="goto('mineRecord')">{{ i18n.Record }} |
|||
</view> |
|||
</navigation> |
|||
<view class="content"> |
|||
<view class="card"> |
|||
<view class="top"> |
|||
<u-icon class="icon" :name="'../../static/mine/coinLogo.png'" size="80rpx" width="80rpx"></u-icon> |
|||
<view class="title">{{ i18n.YourBTC }}</view> |
|||
<view class="coinValue">{{ coinValue }}</view> |
|||
</view> |
|||
<view class="bottom"> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.LockBTC }}</view> |
|||
<view class="value">0.1</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.dayproduce }}</view> |
|||
<view class="value">300 ACTA</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.MinLockTime }}</view> |
|||
<view class="value">30{{ i18n.days }}</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
<input class="input" v-model="codeValue" focus :placeholder="i18n.invuteCode" |
|||
placeholder-style="color:#A1A0A8" /> |
|||
<view class="allItem"> |
|||
<input class="input" v-model="coinQuantity" :placeholder="i18n.lockBTC" |
|||
placeholder-style="color:#A1A0A8" /> |
|||
<view class="all">{{ i18n.ALL }}</view> |
|||
</view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="true">{{ i18n.LockBTCBtn }} |
|||
</u-button> |
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.MineDetails }} |
|||
<view slot="right" class="right" @click="goto('mineRecord')">{{ i18n.Record }} |
|||
</view> |
|||
</navigation> |
|||
<view class="content"> |
|||
<view class="card"> |
|||
<view class="top"> |
|||
<u-icon class="icon" :name="imgAddress+detail.mineDetails.imgMobile" size="80rpx" width="80rpx"> |
|||
</u-icon> |
|||
<view class="title">{{ detail.mineDetails.name }}</view> |
|||
<view class="coinValue">{{ detail.userCapital }} <text |
|||
style="font-size: 26rpx;">{{detail.mineDetails.baseCoin}}</text> </view> |
|||
</view> |
|||
<view class="bottom"> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.LockBTC }}</view> |
|||
<view class="value">{{ detail.mineDetails.limitMin }}</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.dayproduce }}</view> |
|||
<view class="value">{{ detail.mineDetails.price }} {{ detail.mineDetails.profitCoin }}</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.MinLockTime }}</view> |
|||
<view class="value">{{ detail.mineDetails.day}}{{ i18n.days }}</view> |
|||
</view> |
|||
</view> |
|||
|
|||
</view> |
|||
<!-- <input class="input" v-model="info.inviteCode" focus :placeholder="i18n.invuteCode" |
|||
placeholder-style="color:#A1A0A8" :disabled="detail.inviteCode" /> --> |
|||
<view class="allItem"> |
|||
<input class="input" v-model="info.amount" :placeholder="i18n.lockBTC" |
|||
placeholder-style="color:#A1A0A8" /> |
|||
<view class="all" @click="info.amount=detail.userCapital">{{ i18n.ALL }}</view> |
|||
</view> |
|||
|
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="lockBTCBtned" @click="Lock"> |
|||
{{ i18n.LockBTCBtn }} |
|||
</u-button> |
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import uniCopy from '@/utils/uni-copy' |
|||
export default { |
|||
name: "mineDetails", |
|||
data() { |
|||
return { |
|||
coinValue: 1000.001, |
|||
codeValue: '', |
|||
coinQuantity: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("mine"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
goto(page) { |
|||
// console.log(page); |
|||
let url = ''; |
|||
switch (page) { |
|||
case 'mineRecord': |
|||
url = '/pages/mine/mineRecord' |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
if (url) { |
|||
// console.log(url); |
|||
uni.navigateTo({ |
|||
url, |
|||
}); |
|||
} |
|||
|
|||
}, |
|||
USDTRadioChange(e) { |
|||
console.log(e); |
|||
}, |
|||
|
|||
copyAddress(value = "") { |
|||
console.log(value) |
|||
uniCopy({ |
|||
content: value, |
|||
success: (res) => { |
|||
uni.showToast({ |
|||
title: "复制成功", |
|||
duration: 3000, |
|||
}) |
|||
}, |
|||
error: (e) => { |
|||
uni.showToast({ |
|||
title: e, |
|||
icon: 'none', |
|||
duration: 2000, |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
}, |
|||
} |
|||
import uniCopy from '@/utils/uni-copy' |
|||
import api from '@/utils/api' |
|||
import constant from '@/utils/constant.js'; |
|||
export default { |
|||
name: "mineDetails", |
|||
data() { |
|||
return { |
|||
id:null, |
|||
info: { |
|||
productId: null, |
|||
amount: null, |
|||
// inviteCode: null, |
|||
}, |
|||
coinValue: 1000.001, |
|||
codeValue: '', |
|||
coinQuantity: '', |
|||
detail: {}, |
|||
imgAddress: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("mine"); |
|||
}, |
|||
lockBTCBtned() { |
|||
if (!this.info.amount && !this.info.amount) { |
|||
return true; |
|||
} else { |
|||
return false; |
|||
} |
|||
} |
|||
}, |
|||
onLoad(res) { |
|||
this.id=res.id |
|||
this.getMineDetail(this.id) |
|||
this.imgAddress = res.imgAddress |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
// 瓊슥뭔찜穀웁끓틔땐데 |
|||
Lock() { |
|||
api.mineSubmit(this.info).then(res => { |
|||
uni.$u.toast(this.$t("login").Purchasesucceeded) |
|||
setTimeout(()=>{ |
|||
this.getMineDetail(this.id) |
|||
},1200) |
|||
}) |
|||
}, |
|||
//삿혤穀웁끓틔圈헙 |
|||
getMineDetail(id) { |
|||
api.showMineDetails({ |
|||
mineId: id |
|||
}).then(res => { |
|||
this.detail = res |
|||
this.info.productId = this.detail.mineDetails.id |
|||
|
|||
}) |
|||
}, |
|||
goto(page) { |
|||
// console.log(page); |
|||
let url = ''; |
|||
switch (page) { |
|||
case 'mineRecord': |
|||
url = '/pages/mine/mineRecord' |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
if (url) { |
|||
// console.log(url); |
|||
uni.navigateTo({ |
|||
url, |
|||
}); |
|||
} |
|||
|
|||
}, |
|||
USDTRadioChange(e) { |
|||
console.log(e); |
|||
}, |
|||
|
|||
copyAddress(value = "") { |
|||
console.log(value) |
|||
uniCopy({ |
|||
content: value, |
|||
success: (res) => { |
|||
uni.showToast({ |
|||
title: "鸚띶댍�먨뒣", |
|||
duration: 3000, |
|||
}) |
|||
}, |
|||
error: (e) => { |
|||
uni.showToast({ |
|||
title: e, |
|||
icon: 'none', |
|||
duration: 2000, |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.right { |
|||
position: absolute; |
|||
right: 32rpx; |
|||
font-size: 24rpx; |
|||
} |
|||
|
|||
.content { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 32rpx; |
|||
|
|||
.card { |
|||
margin-top: 40rpx; |
|||
height: 274rpx; |
|||
padding: 0 24rpx; |
|||
background-image: url(../../static/mine/bg_mine.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 686rpx 274rpx; |
|||
|
|||
.top { |
|||
display: flex; |
|||
height: 132rpx; |
|||
border-bottom: 2rpx solid rgba(255, 255, 255, 0.2); |
|||
|
|||
.icon { |
|||
margin: 0 24rpx 0 16rpx; |
|||
} |
|||
|
|||
.title { |
|||
font-size: 28rpx; |
|||
line-height: 136rpx; |
|||
} |
|||
|
|||
.coinValue { |
|||
flex: 1; |
|||
text-align: right; |
|||
font-size: 68rpx; |
|||
line-height: 144rpx; |
|||
padding-right: 20rpx; |
|||
} |
|||
} |
|||
|
|||
.bottom { |
|||
display: flex; |
|||
height: 140rpx; |
|||
padding: 0 20rpx; |
|||
|
|||
.item { |
|||
flex: 1; |
|||
|
|||
.title { |
|||
font-size: 20rpx; |
|||
line-height: 64rpx; |
|||
} |
|||
|
|||
.value { |
|||
font-size: 35rpx; |
|||
line-height: 40rpx; |
|||
font-weight: 600; |
|||
} |
|||
|
|||
&:nth-child(1) { |
|||
text-align: left; |
|||
} |
|||
|
|||
&:nth-child(2) { |
|||
text-align: center; |
|||
} |
|||
|
|||
&:nth-child(3) { |
|||
text-align: right; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
.input { |
|||
margin-top: 32rpx; |
|||
height: 112rpx; |
|||
background: #323045; |
|||
border-radius: 32rpx; |
|||
padding-left: 32rpx; |
|||
font-size: 26rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
.allItem { |
|||
position: relative; |
|||
|
|||
.all { |
|||
position: absolute; |
|||
display: inline; |
|||
font-size: 20rpx; |
|||
color: #00E8A2; |
|||
top: 44rpx; |
|||
right: 30rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
.button { |
|||
margin-top: 60rpx; |
|||
border-radius: 32rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
color: #15141F !important; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
} |
|||
} |
|||
.main { |
|||
|
|||
.right { |
|||
position: absolute; |
|||
right: 32rpx; |
|||
font-size: 24rpx; |
|||
} |
|||
|
|||
.content { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 32rpx; |
|||
|
|||
.card { |
|||
margin-top: 40rpx; |
|||
height: 274rpx; |
|||
padding: 0 24rpx; |
|||
background-image: url(../../static/mine/bg_mine.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 686rpx 274rpx; |
|||
|
|||
.top { |
|||
display: flex; |
|||
height: 132rpx; |
|||
border-bottom: 2rpx solid rgba(255, 255, 255, 0.2); |
|||
|
|||
.icon { |
|||
margin: 0 24rpx 0 16rpx; |
|||
} |
|||
|
|||
.title { |
|||
font-size: 28rpx; |
|||
line-height: 136rpx; |
|||
} |
|||
|
|||
.coinValue { |
|||
flex: 1; |
|||
text-align: right; |
|||
font-size: 48rpx; |
|||
line-height: 144rpx; |
|||
padding-right: 20rpx; |
|||
} |
|||
} |
|||
|
|||
.bottom { |
|||
display: flex; |
|||
height: 140rpx; |
|||
padding: 0 20rpx; |
|||
|
|||
.item { |
|||
flex: 1; |
|||
|
|||
.title { |
|||
font-size: 20rpx; |
|||
line-height: 64rpx; |
|||
} |
|||
|
|||
.value { |
|||
font-size: 35rpx; |
|||
line-height: 40rpx; |
|||
font-weight: 600; |
|||
} |
|||
|
|||
&:nth-child(1) { |
|||
text-align: left; |
|||
} |
|||
|
|||
&:nth-child(2) { |
|||
text-align: center; |
|||
} |
|||
|
|||
&:nth-child(3) { |
|||
text-align: right; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
|
|||
.input { |
|||
margin-top: 32rpx; |
|||
height: 112rpx; |
|||
background: #323045; |
|||
border-radius: 32rpx; |
|||
padding-left: 32rpx; |
|||
font-size: 26rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
.allItem { |
|||
position: relative; |
|||
|
|||
.all { |
|||
position: absolute; |
|||
display: inline; |
|||
font-size: 20rpx; |
|||
color: #00E8A2; |
|||
top: 44rpx; |
|||
right: 30rpx; |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
.button { |
|||
margin-top: 60rpx; |
|||
border-radius: 32rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
color: #15141F !important; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
} |
|||
} |
|||
</style> |
|||
|
@ -1,258 +1,345 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.Subscription }}</navigation> |
|||
<view class="body"> |
|||
<!-- 倒计时 --> |
|||
<view class="countDown"> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Days }}</view> |
|||
<view class="value">20</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Hours }}</view> |
|||
<view class="value">8</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Minutes }}</view> |
|||
<view class="value">47</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Seconds }}</view> |
|||
<view class="value">9</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- input --> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="SubscribeCount" color="#A1A0A8" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.PleaseChooseCoin"> |
|||
</u-input> |
|||
<view class="selectCoin" @click="USDTPopupShow = true">USDT |
|||
</view> |
|||
</view> |
|||
<!-- total --> |
|||
<key-value-row :keyName="i18n.Total" :value="'≈ 993.64069952 ACTA'" :size="'24rpx'" :leftColor="'#A1A0A8'" |
|||
:rightColor="'#A1A0A8'"></key-value-row> |
|||
|
|||
<!-- 按钮 --> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500">{{ |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<navigation>{{ i18n.Subscription }}</navigation> |
|||
<view class="body"> |
|||
<!-- 倒计时 --> |
|||
<view class="countDown"> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Days }}</view> |
|||
<view class="value">{{day}}</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Hours }}</view> |
|||
<view class="value">{{hr}}</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Minutes }}</view> |
|||
<view class="value">{{min}}</view> |
|||
</view> |
|||
<view class="item"> |
|||
<view class="title">{{ i18n.Seconds }}</view> |
|||
<view class="value">{{sec}}</view> |
|||
</view> |
|||
</view> |
|||
|
|||
<!-- input --> |
|||
<view class="input-item"> |
|||
<u-input class="input" v-model="SubscribeCount" color="#A1A0A8" fontSize="32rpx" border="none" |
|||
:placeholder="i18n.PleaseChooseCoin" @focus="SubscribeCount=''"> |
|||
</u-input> |
|||
<view class="selectCoin" @click="USDTPopupShow = true">{{deinfo.sysCoinInfo.coinCode}} |
|||
</view> |
|||
</view> |
|||
<!-- total --> |
|||
<key-value-row :keyName="i18n.Total" :value="'≈'+coinPirce+deinfo.coins[0].code" :size="'24rpx'" |
|||
:leftColor="'#A1A0A8'" :rightColor="'#A1A0A8'"></key-value-row> |
|||
|
|||
<!-- 按钮 --> |
|||
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="SubscribeNowed" @click="subscribe">{{ |
|||
i18n.SubscribeNow |
|||
}} |
|||
</u-button> |
|||
</u-button> |
|||
|
|||
<!-- ProjectDetails --> |
|||
<view class="contentTitle"> |
|||
<view class="ProjectDetails">{{ i18n.ProjectDetails }}</view> |
|||
<view class="videoBtn">{{ i18n.Video }}</view> |
|||
<view class="whiteBook">{{ i18n.WhiteBook }}</view> |
|||
</view> |
|||
<!-- ProjectDetails --> |
|||
<view class="contentTitle"> |
|||
<view class="ProjectDetails">{{ i18n.ProjectDetails }}</view> |
|||
<view class="videoBtn" @click="getContact('video')">{{ i18n.Video }}</view> |
|||
<view class="whiteBook" @click="getContact('book')">{{ i18n.WhiteBook }}</view> |
|||
</view> |
|||
|
|||
<!-- 文字内容 --> |
|||
<view class="content">Access to COVID-19 Tools Accelerator (ACTA) is a fully decentralized financial (DeFi) |
|||
ecosystem with blockchain as the underlying architecture, 100% decentralized exchange, 100% free |
|||
trading, 100% customized trading model, 100% cross-chain support. We have pre-customized two trading |
|||
models, ACTA/BTC and ACTA/USDT. ACTA/BTC is the mainstream currency with stable appreciation space; |
|||
ACTA/USDT is a stable settlement virtual currency which can be 1:1 freely convertible with US dollars. |
|||
ACTA is the leader of the global digital encryption currency decentralized market. |
|||
<!-- 文字内容 --> |
|||
<view class="content">{{des}}</view> |
|||
|
|||
Full name of the token: Access to COVID-19 Tools Accelerator |
|||
|
|||
ACTA total circulation: 1,200,000,000.00 |
|||
|
|||
ICO Price: 0.02 USDT |
|||
|
|||
ICO Time: From December 12,2021 to March 12, 2022</view> |
|||
|
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; |
|||
import UButton from '../../uview-ui/components/u-button/u-button' |
|||
export default { |
|||
name: "subscriptionDetails", |
|||
data() { |
|||
return { |
|||
SubscribeCount: 0, |
|||
DonatePopupShow: false, |
|||
USDTPopupShow: false, |
|||
DonatePopupDisabled: true, |
|||
coinInfo: {}, |
|||
rules: {}, |
|||
radioValue: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("subscription"); |
|||
}, |
|||
}, |
|||
onLoad() { |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() { }, |
|||
methods: { |
|||
radioChange(e) { |
|||
// console.log(e); |
|||
} |
|||
}, |
|||
components: { UButton, KeyValueRow } |
|||
} |
|||
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; |
|||
import UButton from '../../uview-ui/components/u-button/u-button' |
|||
import api from '@/utils/api' |
|||
import constant from '@/utils/constant.js'; |
|||
export default { |
|||
name: "subscriptionDetails", |
|||
data() { |
|||
return { |
|||
// 计算的价格 |
|||
coinPirce: 0, |
|||
toLiveBtn: '', |
|||
_interval: null, |
|||
des: '', |
|||
SubscribeCount: 0, |
|||
DonatePopupShow: false, |
|||
USDTPopupShow: false, |
|||
DonatePopupDisabled: true, |
|||
coinInfo: {}, |
|||
rules: {}, |
|||
radioValue: '', |
|||
baseURL: '', |
|||
deinfo: {}, |
|||
day: '', |
|||
hr: '', |
|||
min: '', |
|||
sec: '', |
|||
}; |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("subscription"); |
|||
}, |
|||
SubscribeNowed() { |
|||
if (this.SubscribeCount == 0 || !this.SubscribeCount || isNaN(this.SubscribeCount)) { |
|||
return true |
|||
} else { |
|||
return false |
|||
} |
|||
} |
|||
}, |
|||
watch: { |
|||
SubscribeCount: { |
|||
handler(newName, oldName) { |
|||
this.SubscribeCount = newName |
|||
this.coinPirce = newName / this.deinfo.sysCoinInfo.initalPrice |
|||
this.coinPirce = parseFloat(this.coinPirce.toPrecision(10)) |
|||
this.coinPirce = String(this.coinPirce) |
|||
this.coinPirce = this.coinPirce.substring(0, this.coinPirce.indexOf(".") + 9); |
|||
} |
|||
} |
|||
}, |
|||
|
|||
onLoad(res) { |
|||
this.baseURL = constant.BASE_URL |
|||
this.getDetail(res.id); |
|||
// console.log(this.$t('login.emailInputMessage')); |
|||
}, |
|||
onShow() {}, |
|||
methods: { |
|||
//提交申购订单 |
|||
subscribe() { |
|||
api.exchangeCoin({ |
|||
baseSymbol: this.deinfo.coins[0].code, |
|||
coinSymbol: this.deinfo.sysCoinInfo.coinCode, |
|||
baseAmount: this.SubscribeCount, |
|||
}).then(res => { |
|||
uni.$u.toast(this.$t("login").Successfulsubscription) |
|||
}) |
|||
}, |
|||
//当离开页面时,清除倒计时 |
|||
beforeDestroy() { |
|||
clearInterval(this._interval) |
|||
}, |
|||
// 倒计时事件 |
|||
countdown(e) { |
|||
const that = this |
|||
that._interval = setInterval(() => { |
|||
if (e == 0) { |
|||
// 计时结束,清除缓存 |
|||
clearInterval(that._interval) |
|||
} else { |
|||
e-- |
|||
let day = parseInt(e / 60 / 60 / 24) |
|||
let hr = parseInt(e / 60 / 60 % 24) |
|||
let min = parseInt(e / 60 % 60) |
|||
let sec = parseInt(e % 60) |
|||
this.day = day > 9 ? day : '0' + day |
|||
this.hr = hr > 9 ? hr : '0' + hr |
|||
this.min = min > 9 ? min : '0' + min |
|||
this.sec = sec > 9 ? sec : '0' + sec |
|||
that.toLiveBtn = `${this.day}天${this.hr}时${this.min}分${this.sec}秒` |
|||
} |
|||
}, 1000); |
|||
}, |
|||
|
|||
radioChange(e) { |
|||
// console.log(e); |
|||
}, |
|||
// 跳转视频和pdfe |
|||
getContact(e) { |
|||
let url; |
|||
if (e == 'video') { |
|||
url = this.deinfo.sysCoinInfo.videoWebsite |
|||
} else { |
|||
url = this.deinfo.sysCoinInfo.whitePaperWebsite |
|||
} |
|||
// #ifdef APP-PLUS |
|||
plus.runtime.openURL(url); |
|||
// #endif |
|||
// #ifdef H5 |
|||
window.location.href = url |
|||
// #endif |
|||
}, |
|||
// 申购详情 |
|||
getDetail(e) { |
|||
api.subscription({ |
|||
coinCode: e, |
|||
}).then(res => { |
|||
this.deinfo = res; |
|||
this.des = this.deinfo.sysCoinInfo.info |
|||
this.deinfo.lefttime=this.deinfo.lefttime/1000 |
|||
this.countdown(this.deinfo.lefttime) |
|||
}) |
|||
}, |
|||
}, |
|||
components: { |
|||
UButton, |
|||
KeyValueRow |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 48rpx; |
|||
|
|||
.countDown { |
|||
margin-top: 60rpx; |
|||
height: 248rpx; |
|||
background-image: url(../../static/subscription/RoundedRectangle.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 654rpx 248rpx; |
|||
color: #15141F; |
|||
padding: 36rpx 28rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-around; |
|||
box-sizing: border-box; |
|||
|
|||
.item { |
|||
width: 140rpx; |
|||
height: 174rpx; |
|||
font-weight: bold; |
|||
|
|||
|
|||
.title { |
|||
font-size: 32rpx; |
|||
text-align: center; |
|||
} |
|||
|
|||
.value { |
|||
margin-top: 10rpx; |
|||
font-size: 96rpx; |
|||
text-align: center; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.input-item { |
|||
position: relative; |
|||
overflow: hidden; |
|||
height: 124rpx; |
|||
line-height: 124rpx; |
|||
background: #323045; |
|||
margin: 32rpx 0; |
|||
border-radius: 32rpx; |
|||
padding: 0 40rpx; |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
width: 80%; |
|||
height: 124rpx; |
|||
} |
|||
|
|||
.selectCoin { |
|||
position: absolute; |
|||
width: 150rpx; |
|||
height: 54rpx; |
|||
top: 36rpx; |
|||
right: 0rpx; |
|||
line-height: 56rpx; |
|||
font-size: 36rpx; |
|||
padding: 0; |
|||
color: #fff; |
|||
} |
|||
} |
|||
|
|||
.button { |
|||
margin-top: 38rpx; |
|||
margin-bottom: 48rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.contentTitle { |
|||
position: relative; |
|||
margin-bottom: 32rpx; |
|||
|
|||
.ProjectDetails { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
.videoBtn { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 184rpx; |
|||
width: 134rpx; |
|||
height: 48rpx; |
|||
line-height: 48rpx; |
|||
background: #F2FE8D; |
|||
border-radius: 8rpx; |
|||
text-align: right; |
|||
color: #15141F; |
|||
font-size: 24rpx; |
|||
font-weight: bold; |
|||
box-sizing: border-box; |
|||
padding: 0 16rpx; |
|||
|
|||
&::before { |
|||
display: block; |
|||
position: absolute; |
|||
content: ''; |
|||
background-image: url(../../static/subscription/ic_play.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 32rpx; |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
top: 8rpx; |
|||
left: 10rpx; |
|||
} |
|||
} |
|||
|
|||
.whiteBook { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0rpx; |
|||
width: 164rpx; |
|||
height: 48rpx; |
|||
line-height: 48rpx; |
|||
background: #F2FE8D; |
|||
border-radius: 8rpx; |
|||
text-align: center; |
|||
color: #15141F; |
|||
font-size: 24rpx; |
|||
font-weight: bold; |
|||
box-sizing: border-box; |
|||
} |
|||
} |
|||
|
|||
|
|||
.content { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
margin-bottom: 48rpx; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
.main { |
|||
|
|||
.body { |
|||
overflow: hidden; |
|||
margin-top: 200rpx; |
|||
padding: 0 48rpx; |
|||
|
|||
.countDown { |
|||
margin-top: 60rpx; |
|||
height: 248rpx; |
|||
background-image: url(../../static/subscription/RoundedRectangle.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 654rpx 248rpx; |
|||
color: #15141F; |
|||
padding: 36rpx 28rpx; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-around; |
|||
box-sizing: border-box; |
|||
|
|||
.item { |
|||
// width: 140rpx; |
|||
height: 174rpx; |
|||
font-weight: bold; |
|||
|
|||
|
|||
.title { |
|||
font-size: 32rpx; |
|||
text-align: center; |
|||
} |
|||
|
|||
.value { |
|||
margin-top: 10rpx; |
|||
font-size: 96rpx; |
|||
text-align: center; |
|||
} |
|||
} |
|||
|
|||
} |
|||
|
|||
.input-item { |
|||
position: relative; |
|||
overflow: hidden; |
|||
height: 124rpx; |
|||
line-height: 124rpx; |
|||
background: #323045; |
|||
margin: 32rpx 0; |
|||
border-radius: 32rpx; |
|||
padding: 0 40rpx; |
|||
|
|||
/deep/.u-form-item__body { |
|||
padding: 0; |
|||
} |
|||
|
|||
.input { |
|||
width: 80%; |
|||
height: 124rpx; |
|||
} |
|||
|
|||
.selectCoin { |
|||
position: absolute; |
|||
width: 150rpx; |
|||
height: 54rpx; |
|||
top: 36rpx; |
|||
right: 0rpx; |
|||
line-height: 56rpx; |
|||
font-size: 36rpx; |
|||
padding: 0; |
|||
color: #fff; |
|||
} |
|||
} |
|||
|
|||
.button { |
|||
margin-top: 38rpx; |
|||
margin-bottom: 48rpx; |
|||
height: 112rpx; |
|||
line-height: 112rpx; |
|||
border-radius: 32rpx; |
|||
font-size: 32rpx; |
|||
color: #15141F !important; |
|||
font-weight: bold; |
|||
} |
|||
|
|||
.contentTitle { |
|||
position: relative; |
|||
margin-bottom: 32rpx; |
|||
|
|||
.ProjectDetails { |
|||
font-size: 32rpx; |
|||
color: #fff; |
|||
} |
|||
|
|||
.videoBtn { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 184rpx; |
|||
width: 134rpx; |
|||
height: 48rpx; |
|||
line-height: 48rpx; |
|||
background: #F2FE8D; |
|||
border-radius: 8rpx; |
|||
text-align: right; |
|||
color: #15141F; |
|||
font-size: 24rpx; |
|||
font-weight: bold; |
|||
box-sizing: border-box; |
|||
padding: 0 16rpx; |
|||
|
|||
&::before { |
|||
display: block; |
|||
position: absolute; |
|||
content: ''; |
|||
background-image: url(../../static/subscription/ic_play.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 32rpx; |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
top: 8rpx; |
|||
left: 10rpx; |
|||
} |
|||
} |
|||
|
|||
.whiteBook { |
|||
position: absolute; |
|||
top: 0; |
|||
right: 0rpx; |
|||
width: 164rpx; |
|||
height: 48rpx; |
|||
line-height: 48rpx; |
|||
background: #F2FE8D; |
|||
border-radius: 8rpx; |
|||
text-align: center; |
|||
color: #15141F; |
|||
font-size: 24rpx; |
|||
font-weight: bold; |
|||
box-sizing: border-box; |
|||
} |
|||
} |
|||
|
|||
|
|||
.content { |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
margin-bottom: 48rpx; |
|||
line-height: 40rpx; |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
|
|||
} |
|||
</style> |
|||
|
@ -1,164 +1,202 @@ |
|||
<template> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<view class="nav-head"> |
|||
<view class="navItem" @click="pageState = 'product'" :class="{ select: pageState === 'product' }"> |
|||
{{ i18n.Product }} |
|||
</view> |
|||
<view class="navItem" @click="pageState = 'pending'" :class="{ select: pageState === 'pending' }"> |
|||
{{ i18n.Pending }} |
|||
</view> |
|||
<view class="navItem" @click="pageState = 'complete'" :class="{ select: pageState === 'complete' }"> |
|||
{{ i18n.Complete }} |
|||
</view> |
|||
</view> |
|||
<!-- Product 产品列表 --> |
|||
<view class="cardList"> |
|||
<view class="card" v-for="(item, index) in 10" :key="index" @click="gotoDetails(index)"> |
|||
<!-- 卡片条件渲染 --> |
|||
<!-- product --> |
|||
<card-header v-if="pageState === 'product'" :iconName="'../../static/maskets/bye.png'" |
|||
:title="'BTC(Bitcoin)'" :rightName="i18n.Subscribe" :hasBtn="true" :btnColor="'#00E8A2'"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'product'"> |
|||
<key-value-row :keyName="i18n.STLTotalCirculation" :value="'23989'"></key-value-row> |
|||
<key-value-row :keyName="i18n.PrivateSalePrice" :value="'284145.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.ICOTime" :value="'2022/08/06-2022/08/31'"></key-value-row> |
|||
</view> |
|||
|
|||
|
|||
<!-- pending --> |
|||
<card-header v-if="pageState === 'pending'" :iconName="'../../static/maskets/bye.png'" |
|||
:title="'973430980989323445'" :rightName="'Pending'" fontColor="#00E8A2"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'pending'"> |
|||
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row> |
|||
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> |
|||
</view> |
|||
|
|||
|
|||
<!-- complete --> |
|||
<card-header v-if="pageState === 'complete'" :iconName="'../../static/maskets/bye.png'" |
|||
:title="'973430980989323445'" :rightName="'complete'" fontColor="#00E8A2"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'complete'"> |
|||
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row> |
|||
<key-value-row :keyName="i18n.ConfirmAmount" :value="'999'" :leftColor="'#F2FE8D'" |
|||
:rightColor="'#F2FE8D'"></key-value-row> |
|||
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.CheckTheNumberoOfUSDT" :value="'2000'" :leftColor="'#F2FE8D'" |
|||
:rightColor="'#F2FE8D'"> |
|||
</key-value-row> |
|||
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> |
|||
|
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
|
|||
<!-- tabBar --> |
|||
<tab-bar :selectActive="4"></tab-bar> |
|||
</view> |
|||
<view class="main"> |
|||
<!-- nav --> |
|||
<view class="nav-head"> |
|||
<view class="navItem" @click="pageState = 'product'" :class="{ select: pageState === 'product' }"> |
|||
{{ i18n.Product }} |
|||
</view> |
|||
<view class="navItem" @click="pageState = 'pending'" :class="{ select: pageState === 'pending' }"> |
|||
{{ i18n.Pending }} |
|||
</view> |
|||
<view class="navItem" @click="pageState = 'complete'" :class="{ select: pageState === 'complete' }"> |
|||
{{ i18n.Complete }} |
|||
</view> |
|||
</view> |
|||
<!-- Product 产品列表 --> |
|||
<view class="cardList"> |
|||
<view class="card" v-for="(item, index) in info" :key="index" @click="gotoDetails(item,index)"> |
|||
<!-- 卡片条件渲染 --> |
|||
<!-- product --> |
|||
<card-header v-if="pageState === 'product'" :iconName="baseURL+'/coins/'+item.coinCode+'.png'" |
|||
:title="item.fullName" |
|||
:rightName="item.status=='open'?'Subscribe':item.status=='close'?'Ended':'Coming soon'" |
|||
:hasBtn="true" :btnColor="item.status=='open'?'#00E8A2':item.status=='close'?'#A1A0A8':'#F2FE8D'"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'product'"> |
|||
<key-value-row :keyName="i18n.STLTotalCirculation" :value="item.issueAmount"></key-value-row> |
|||
<key-value-row :keyName="i18n.PrivateSalePrice" :value="item.initalPrice+item.coinCode"> |
|||
</key-value-row> |
|||
<key-value-row :keyName="i18n.ICOTime" :value="item.startDate"></key-value-row> |
|||
</view> |
|||
|
|||
|
|||
<!-- pending --> |
|||
<card-header v-if="pageState === 'pending'" :iconName="'../../static/maskets/bye.png'" |
|||
:title="'973430980989323445'" :rightName="'Pending'" fontColor="#00E8A2"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'pending'"> |
|||
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row> |
|||
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> |
|||
</view> |
|||
|
|||
|
|||
<!-- complete --> |
|||
<card-header v-if="pageState === 'complete'" :iconName="'../../static/maskets/bye.png'" |
|||
:title="'973430980989323445'" :rightName="'complete'" fontColor="#00E8A2"> |
|||
</card-header> |
|||
<view class="dataBody" v-if="pageState === 'complete'"> |
|||
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row> |
|||
<key-value-row :keyName="i18n.ConfirmAmount" :value="'999'" :leftColor="'#F2FE8D'" |
|||
:rightColor="'#F2FE8D'"></key-value-row> |
|||
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row> |
|||
<key-value-row :keyName="i18n.CheckTheNumberoOfUSDT" :value="'2000'" :leftColor="'#F2FE8D'" |
|||
:rightColor="'#F2FE8D'"> |
|||
</key-value-row> |
|||
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> |
|||
|
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
<u-empty :text="i18n.Dataisempty" mode="data" v-if="info.length==0"></u-empty> |
|||
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText" |
|||
:nomore-text="nomoreText" v-if="info.length" height="80" /> |
|||
<!-- tabBar --> |
|||
<tab-bar :selectActive="4"></tab-bar> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import CardHeader from '../../components/cardHeader/cardHeader.vue'; |
|||
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; |
|||
export default { |
|||
components: { KeyValueRow, CardHeader }, |
|||
name: 'subscription', |
|||
data() { |
|||
return { |
|||
pageState: 'product', // 当前页签状态 |
|||
} |
|||
}, |
|||
onLoad() { |
|||
|
|||
}, |
|||
onShow() { |
|||
|
|||
}, |
|||
onHide() { |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t('subscription') |
|||
} |
|||
}, |
|||
methods: { |
|||
gotoDetails(index) { |
|||
if (this.pageState !== 'product') return |
|||
uni.navigateTo({ |
|||
url: `/pages/subscription/details?id=${index}` |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
|
|||
import CardHeader from '../../components/cardHeader/cardHeader.vue'; |
|||
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; |
|||
import api from '@/utils/api' |
|||
import constant from '@/utils/constant.js'; |
|||
export default { |
|||
components: { |
|||
KeyValueRow, |
|||
CardHeader |
|||
}, |
|||
name: 'subscription', |
|||
data() { |
|||
return { |
|||
baseURL: '', |
|||
userInfoObj: [], |
|||
isLoadMore: false, //是否加载中 |
|||
loadStatus: 'loadmore', |
|||
loadingText: this.$t("login").toload, |
|||
loadmoreText: this.$t("login").pullup, |
|||
nomoreText: this.$t("login").Nomore, |
|||
info: [], |
|||
pageState: 'product', // 当前页签状态 |
|||
form: { |
|||
pageNumber: 1, |
|||
pageSize: 20, |
|||
type: 'crypto', |
|||
}, |
|||
} |
|||
}, |
|||
onLoad() { |
|||
}, |
|||
onShow() { |
|||
this.baseURL = constant.BASE_URL |
|||
this.getGoods(); |
|||
}, |
|||
onHide() {}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t('subscription') |
|||
} |
|||
}, |
|||
methods: { |
|||
getGoods() { |
|||
api.subscriptionList().then(res => { |
|||
this.info = res; |
|||
this.isLoadMore = true |
|||
this.loadStatus = 'nomore' |
|||
}) |
|||
}, |
|||
gotoDetails(i, index) { |
|||
if (this.pageState !== 'product') return |
|||
if (i.status == 'close') { |
|||
uni.$u.toast(this.$t("subscription").Subcompleted) |
|||
return; |
|||
} |
|||
if (i.status == 'unstart') { |
|||
uni.$u.toast(this.$t("subscription").Substarted) |
|||
return; |
|||
} |
|||
uni.navigateTo({ |
|||
url: `/pages/subscription/details?id=${i.coinCode}` |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.main { |
|||
padding-bottom: 198rpx; // 避免底部TabBar盖住内容 |
|||
/deep/ .cardHeader .button { |
|||
width: 160rpx; |
|||
} |
|||
|
|||
.main { |
|||
padding-bottom: 198rpx; // 避免底部TabBar盖住内容 |
|||
|
|||
.nav-head { |
|||
overflow: hidden; |
|||
position: fixed; |
|||
top: 0rpx; |
|||
height: 80rpx; |
|||
font-size: 24rpx; |
|||
color: #fff; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
z-index: 8; |
|||
background-color: #15141F; |
|||
padding: 94rpx 48rpx 0; |
|||
.nav-head { |
|||
overflow: hidden; |
|||
position: fixed; |
|||
top: 0rpx; |
|||
height: 80rpx; |
|||
font-size: 24rpx; |
|||
color: #fff; |
|||
display: flex; |
|||
justify-content: space-around; |
|||
align-items: center; |
|||
z-index: 8; |
|||
background-color: #15141F; |
|||
padding: 94rpx 48rpx 0; |
|||
|
|||
|
|||
.navItem { |
|||
width: 218rpx; |
|||
height: 80rpx; |
|||
line-height: 80rpx; |
|||
text-align: center; |
|||
color: #0b7e60; |
|||
font-size: 28rpx; |
|||
border-bottom: 10rpx solid #0b7e60; |
|||
} |
|||
.navItem { |
|||
width: 218rpx; |
|||
height: 80rpx; |
|||
line-height: 80rpx; |
|||
text-align: center; |
|||
color: #0b7e60; |
|||
font-size: 28rpx; |
|||
border-bottom: 10rpx solid #0b7e60; |
|||
} |
|||
|
|||
.select { |
|||
color: #00E8A2; |
|||
border-bottom: 10rpx solid #00E8A2; |
|||
} |
|||
.select { |
|||
color: #00E8A2; |
|||
border-bottom: 10rpx solid #00E8A2; |
|||
} |
|||
|
|||
} |
|||
} |
|||
|
|||
|
|||
.cardList { |
|||
margin-top: 212rpx; |
|||
.cardList { |
|||
margin-top: 212rpx; |
|||
|
|||
.card { |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
margin: 32rpx; |
|||
.card { |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
margin: 32rpx; |
|||
|
|||
|
|||
|
|||
.dataBody { |
|||
box-sizing: border-box; |
|||
padding: 32rpx; |
|||
} |
|||
} |
|||
} |
|||
.dataBody { |
|||
box-sizing: border-box; |
|||
padding: 32rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
} |
|||
} |
|||
</style> |
|||
|
Loading…
Reference in new issue