Browse Source

解决冲突

master
vee 3 years ago
parent
commit
c5e5c17e07
  1. 7
      App.vue
  2. 12
      components/tabBar/tabBar.vue
  3. 1
      pages/home/index.vue
  4. 2
      pages/me/changeWithdrawalPassword.vue
  5. 196
      pages/me/donateRecord.vue
  6. 292
      pages/me/myTeam.vue
  7. 253
      pages/mine/mine.vue
  8. 493
      pages/mine/mineDetails.vue
  9. 96
      pages/mine/mineRecord.vue
  10. 577
      pages/subscription/details.vue
  11. 391
      pages/subscription/index.vue
  12. 5
      pages/withdrawal/withdrawal.vue
  13. 2
      pages/withdrawal/withdrawalRecord.vue
  14. BIN
      static/me/myTeambg.png
  15. 8
      utils/language/en_US.js

7
App.vue

@ -37,7 +37,12 @@ export default {
margin: 0; margin: 0;
} }
/deep/ .u-empty{
position: absolute;
top: 150%;
left: 50%;
transform: translateX(-50%);
}
page { page {

12
components/tabBar/tabBar.vue

@ -192,18 +192,6 @@ export default {
display: flex; display: flex;
z-index: 8; z-index: 8;
box-sizing: border-box; box-sizing: border-box;
&::after {
display: block;
position: absolute;
content: '';
background: #fff;
width: 268rpx;
height: 10rpx;
border-radius: 10rpx;
top: 140rpx;
left: 242rpx;
}
} }
.tabbar_item { .tabbar_item {

1
pages/home/index.vue

@ -152,7 +152,6 @@ Blame
this.baseURL = constant.BASE_URL this.baseURL = constant.BASE_URL
this.getbanner(); this.getbanner();
this.noticeList(); this.noticeList();
this.getContact()
}, },
onShow() { onShow() {
// //

2
pages/me/changeWithdrawalPassword.vue

@ -13,7 +13,7 @@
:placeholder="i18n.confirmPassword"> :placeholder="i18n.confirmPassword">
</u-input> </u-input>
<!-- 修改登录密码按钮 :disabled="disabled"--> <!-- 修改登录密码按钮 :disabled="disabled"-->
<u-button class="button" color="#00E8A2" throttleTime="500"> <u-button class="button" color="#00E8A2" throttleTime="500" @click="changePassword">
{{ i18n.Confirm }} {{ i18n.Confirm }}
</u-button> </u-button>
</view> </view>

196
pages/me/donateRecord.vue

@ -1,60 +1,62 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.DonateRecord }}</navigation> <navigation>{{ i18n.DonateRecord }}</navigation>
<view class="body"> <view class="body">
<view class="card" v-for="(item, index) in userInfoObj" :key="index"> <view class="card" v-for="(item, index) in userInfoObj" :key="index">
<u-icon class="icon" :name="'../../static/me/img_donate.png'" size="64rpx" width="64rpx"></u-icon> <u-icon class="icon" :name="'../../static/me/img_donate.png'" size="64rpx" width="64rpx"></u-icon>
<view class="content"> <view class="content">
<key-value-row class="title" :keyName="item.title" :value="item.amount" :leftColor="'#fff'" <key-value-row class="title" :keyName="item.title" :value="item.amount" :leftColor="'#fff'"
:rightColor="'#F2FE8D'"> :rightColor="'#F2FE8D'">
</key-value-row> </key-value-row>
<view class="date">{{item.timestr}}</view> <view class="date">{{item.timestr}}</view>
</view> </view>
</view> </view>
</view> </view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0"></u-empty> <u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText" <u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="userInfoObj.length" height="80" /> :nomore-text="nomoreText" v-if="userInfoObj.length" height="80" />
</view> </view>
</template> </template>
<script> <script>
import api from '@/utils/api' import api from '@/utils/api'
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
export default { export default {
components: { KeyValueRow }, components: {
name: "donateRecord", KeyValueRow
data() { },
return { name: "donateRecord",
isLoadMore: false, // data() {
loadStatus: 'loadmore', return {
loadingText: this.$t("login").toload, isLoadMore: false, //
loadmoreText: this.$t("login").pullup, loadStatus: 'loadmore',
nomoreText: this.$t("login").Nomore, loadingText: this.$t("login").toload,
form: { loadmoreText: this.$t("login").pullup,
pageNumber: 1, nomoreText: this.$t("login").Nomore,
pageSize: 20, form: {
pageNumber: 1,
pageSize: 20,
},
userInfoObj: [],
};
},
computed: {
i18n() {
return this.$t("me");
}, },
userInfoObj: [], },
}; onReachBottom() {
}, if (!this.isLoadMore) {
computed: { this.form.pageNumber += 1
i18n() { this.getList();
return this.$t("me"); }
}, },
}, onLoad() {
onReachBottom() { this.getList()
if (!this.isLoadMore) { },
this.form.pageNumber += 1 onShow() {},
this.getList(); methods: {
}
},
onLoad() {
this.getList()
},
onShow() { },
methods: {
getList() { getList() {
this.isLoadMore = true this.isLoadMore = true
api.charityRecord(this.form).then(res => { api.charityRecord(this.form).then(res => {
@ -91,63 +93,63 @@ export default {
this.$forceUpdate() this.$forceUpdate()
}) })
}, },
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.body { .body {
overflow: hidden; overflow: hidden;
margin-top: 200rpx; margin-top: 200rpx;
padding: 0 32rpx; padding: 0 32rpx;
.card { .card {
height: 148rpx; height: 148rpx;
position: relative; position: relative;
background: #211F32; background: #211F32;
border-radius: 32rpx; border-radius: 32rpx;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 32rpx; margin-top: 32rpx;
.icon { .icon {
margin: -20rpx 12rpx 0 20rpx; margin: -20rpx 12rpx 0 20rpx;
border-radius: 20rpx; border-radius: 20rpx;
} }
.content { .content {
width: 558rpx; width: 558rpx;
.title { .title {
width: 558rpx; width: 558rpx;
height: 36rpx; height: 36rpx;
line-height: 36rpx; line-height: 36rpx;
margin-top: 32rpx; margin-top: 32rpx;
font-size: 28rpx; font-size: 28rpx;
/deep/.u-text__value { /deep/.u-text__value {
font-weight: 600 !important; font-weight: 600 !important;
} }
} }
.date { .date {
width: 558rpx; width: 558rpx;
height: 36rpx; height: 36rpx;
line-height: 36rpx; line-height: 36rpx;
font-size: 28rpx; font-size: 28rpx;
margin-top: 12rpx; margin-top: 12rpx;
color: #A1A0A8; color: #A1A0A8;
} }
} }
} }
} }
} }
</style> </style>

292
pages/me/myTeam.vue

@ -1,94 +1,214 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.MyTeam }}</navigation> <navigation>{{ i18n.MyTeam }}</navigation>
<view class="body"> <view class="body">
<view class="userItem" v-for="(item, index) in 4" :key="index"> <view class="top flex">
<u-icon class="icon" :name="'../../static/me/Ellipse 85.png'" size="92rpx" width="92rpx"></u-icon> <view class="item">
<view> <view class="t1">
<view class="email">krichjmadif0985@gmail.com</view> 394
<view class="date">2022/08/06</view> </view>
<u-button class="button" color="#F2FE8D" throttleTime="500">{{ i18n.Fresh }}</u-button> <view class="t2">
</view> Number of clionts
</view> </view>
</view> </view>
</view> <view class="item">
<view class="t1">
0
</view>
<view class="t2">
Earnlings yesterday
</view>
</view>
<view class="item">
<view class="t1">
9343492
</view>
<view class="t2">
Total income
</view>
</view>
</view>
<u-subsection :list="list" activeColor="#00E8A2" inactiveColor="#fff" :current="curNow"
@change="sectionChange" bgColor="#211F32"></u-subsection>
<view class="container">
<table class="table">
<thead class="thead">
<tr>
<td>User</td>
<td>Financial funds</td>
<td>Time</td>
</tr>
</thead>
<tbody class="tbody">
<tr>
<td>98374354705</td>
<td>349849</td>
<td>2021.10.14</td>
</tr>
<tr>
<td>98374354705</td>
<td>349849</td>
<td>2021.10.14</td>
</tr>
<tr>
<td>98374354705</td>
<td>349849</td>
<td>2021.10.14</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
</template> </template>
<script> <script>
export default { export default {
name: "myTeam", name: "myTeam",
data() { data() {
return { return {
}; list: ['My client', 'Income record'],
}, // keyName
computed: { // list: [{name: ''}, {name: ''}, {name: ''}],
i18n() { curNow: 0,
return this.$t("me");
}, };
}, },
onLoad() { computed: {
}, i18n() {
onShow() { }, return this.$t("me");
methods: { },
},
}, onLoad() {},
} onShow() {},
methods: {
sectionChange(index) {
this.curNow = index;
}
},
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .table{
width: 100%;
.body { text-align: center;
overflow: hidden; border-collapse: collapse;
margin-top: 200rpx; .thead{
padding: 0 32rpx; height: 84rpx;
line-height: 84rpx;
.userItem { tr{
position: relative; td{
background: #211F32; color: #A1A0A8;
border-radius: 32rpx; font-size: 24rpx;
display: flex; }
flex-wrap: wrap; }
margin-top: 32rpx; }
.tbody{
.icon { tr{
height: 160rpx; height: 84rpx;
margin-left: 20rpx; line-height: 84rpx;
margin-right: 26rpx; border-top: 2rpx solid #323045 !important;
} td{
color: #fff;
.email { font-size: 24rpx;
width: 520rpx; }
height: 52rpx; }
line-height: 52rpx; }
margin-top: 28rpx; }
font-size: 32rpx; .container {
} padding: 0 32rpx;
}
.date {
width: 180rpx; /deep/ .u-subsection--button {
height: 52rpx; height: 80rpx;
line-height: 52rpx; }
font-size: 28rpx;
} /deep/ .u-subsection--button__bar {
background: #323045;
.button { height: 80rpx;
position: absolute; }
top: 72rpx;
right: 32rpx; .flex {
width: 120rpx; display: flex;
height: 48rpx; align-items: center;
line-height: 48rpx; justify-content: space-between;
font-size: 28rpx; }
color: #15141F !important;
margin-left: 200rpx; .top {
margin-top: 20rpx; padding: 68rpx 32rpx;
border-radius: 16rpx; background: url('@/static/me/myTeambg.png') no-repeat;
} background-size: cover;
}
.item {
} text-align: center;
line-height: 60rpx;
} }
.t2 {
font-size: 24rpx;
color: #A1A0A8;
}
.t1 {
color: #00E8A2;
font-size: 32rpx;
font-weight: bolder;
}
}
.main {
.body {
overflow: hidden;
margin-top: 200rpx;
.userItem {
position: relative;
background: #211F32;
border-radius: 32rpx;
display: flex;
flex-wrap: wrap;
margin-top: 32rpx;
.icon {
height: 160rpx;
margin-left: 20rpx;
margin-right: 26rpx;
}
.email {
width: 520rpx;
height: 52rpx;
line-height: 52rpx;
margin-top: 28rpx;
font-size: 32rpx;
}
.date {
width: 180rpx;
height: 52rpx;
line-height: 52rpx;
font-size: 28rpx;
}
.button {
position: absolute;
top: 72rpx;
right: 32rpx;
width: 120rpx;
height: 48rpx;
line-height: 48rpx;
font-size: 28rpx;
color: #15141F !important;
margin-left: 200rpx;
margin-top: 20rpx;
border-radius: 16rpx;
}
}
}
}
</style> </style>

253
pages/mine/mine.vue

@ -1,125 +1,144 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.MinePool }}</navigation> <navigation>{{ i18n.MinePool }}</navigation>
<view class="poolContent"> <view class="poolContent">
<!-- pool选择框 --> <!-- pool选择框 -->
<view class="pool-item" v-for="(item, index) in 4" :key="index"> <view class="pool-item" v-for="(item, index) in mineCon.mineList" :key="index">
<u-icon class="icon" :name="'../../static/mine/img_mine01.png'" size="92rpx" width="92rpx"></u-icon> <u-icon class="icon" :name="mineCon.imgAddress+item.imgMobile" size="92rpx" width="92rpx"></u-icon>
<view class="right"> <view class="right">
<view class="title">0.1 BTC 30 days</view> <view class="title">{{item.name}}</view>
<view class="description">every time lock 0.1 BTC,Lock 30 Mine poolLock,to produce 300 ACTA per 1 <view class="description">{{item.remarks}}</view>
day</view> </view>
</view> <u-button class="button" @click="gotoDetails(item,index)" color="#00E8A2" throttleTime="500" :disabled="item.status!='open'">
<u-button class="button" @click="gotoDetails(index)" color="#00E8A2" throttleTime="500">{{ i18n.OpenMine }}</u-button> {{ i18n.OpenMine }}</u-button>
</view> </view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="mineCon.mineList.length==0"></u-empty>
</view> <u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="mineCon.mineList.length" height="80" />
</view> </view>
</view>
</template> </template>
<script> <script>
export default { import api from '@/utils/api'
name: "mine", import constant from '@/utils/constant.js';
data() { export default {
return { name: "mine",
pageState: 'coinRecharge', data() {
coin: '', return {
USDTPopupShow: false, mineCon:[],
USDTRadioValue: '', pageState: 'coinRecharge',
selectNumberValue: 100, coin: '',
selectMethod: '1', USDTPopupShow: false,
}; USDTRadioValue: '',
}, selectNumberValue: 100,
computed: { selectMethod: '1',
i18n() { isLoadMore: false, //
return this.$t("mine"); loadStatus: 'loadmore',
}, loadingText: this.$t("login").toload,
}, loadmoreText: this.$t("login").pullup,
onLoad() { nomoreText: this.$t("login").Nomore,
}, };
onShow() { }, },
methods: { computed: {
gotoDetails(index) { i18n() {
console.log(index); return this.$t("mine");
uni.navigateTo({ },
url: `/pages/mine/mineDetails?id=${index}` },
}); 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.poolContent { .poolContent {
overflow: hidden; overflow: hidden;
margin-top: 200rpx; margin-top: 200rpx;
padding: 0 60rpx; padding: 0 60rpx;
.pool-item { .pool-item {
position: relative; position: relative;
background: #211F32; background: #211F32;
margin-top: 32rpx; margin-top: 32rpx;
padding: 32rpx 24rpx; padding: 32rpx 24rpx;
background-image: url(../../static/mine/Line.png); background-image: url(../../static/mine/Line.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 630rpx 2rpx; background-size: 630rpx 2rpx;
.icon { .icon {
display: inline-block; display: inline-block;
width: 92rpx; width: 92rpx;
margin-top: 10rpx; margin-top: 10rpx;
margin-right: 28rpx; margin-right: 28rpx;
border-radius: 16rpx; border-radius: 16rpx;
vertical-align: top; vertical-align: top;
} }
.right { .right {
display: inline-block; display: inline-block;
width: 460rpx; width: 460rpx;
.title { .title {
font-weight: 600; font-weight: 600;
width: 460rpx; width: 460rpx;
height: 52rpx; height: 52rpx;
line-height: 52rpx; line-height: 52rpx;
font-size: 32rpx; font-size: 32rpx;
} }
.description { .description {
width: 460rpx; width: 460rpx;
font-size: 24rpx; font-size: 24rpx;
color: #A1A0A8; color: #A1A0A8;
} }
} }
.button { .button {
height: 64rpx; height: 64rpx;
line-height:64rpx; line-height: 64rpx;
font-size: 28rpx; font-size: 28rpx;
color: #15141F !important; color: #15141F !important;
margin-top: 48rpx; margin-top: 48rpx;
border-radius: 16rpx; border-radius: 16rpx;
text-align: center; text-align: center;
font-weight: 600; font-weight: 600;
} }
&:last-child{ &:last-child {
margin-bottom: 80rpx; margin-bottom: 80rpx;
} }
} }
} }
} }
</style> </style>

493
pages/mine/mineDetails.vue

@ -1,233 +1,276 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.MineDetails }}<view slot="right" class="right" @click="goto('mineRecord')">{{ i18n.Record }} <navigation>{{ i18n.MineDetails }}
</view> <view slot="right" class="right" @click="goto('mineRecord')">{{ i18n.Record }}
</navigation> </view>
<view class="content"> </navigation>
<view class="card"> <view class="content">
<view class="top"> <view class="card">
<u-icon class="icon" :name="'../../static/mine/coinLogo.png'" size="80rpx" width="80rpx"></u-icon> <view class="top">
<view class="title">{{ i18n.YourBTC }}</view> <u-icon class="icon" :name="imgAddress+detail.mineDetails.imgMobile" size="80rpx" width="80rpx">
<view class="coinValue">{{ coinValue }}</view> </u-icon>
</view> <view class="title">{{ detail.mineDetails.name }}</view>
<view class="bottom"> <view class="coinValue">{{ detail.userCapital }} <text
<view class="item"> style="font-size: 26rpx;">{{detail.mineDetails.baseCoin}}</text> </view>
<view class="title">{{ i18n.LockBTC }}</view> </view>
<view class="value">0.1</view> <view class="bottom">
</view> <view class="item">
<view class="item"> <view class="title">{{ i18n.LockBTC }}</view>
<view class="title">{{ i18n.dayproduce }}</view> <view class="value">{{ detail.mineDetails.limitMin }}</view>
<view class="value">300 ACTA</view> </view>
</view> <view class="item">
<view class="item"> <view class="title">{{ i18n.dayproduce }}</view>
<view class="title">{{ i18n.MinLockTime }}</view> <view class="value">{{ detail.mineDetails.price }} {{ detail.mineDetails.profitCoin }}</view>
<view class="value">30{{ i18n.days }}</view> </view>
</view> <view class="item">
</view> <view class="title">{{ i18n.MinLockTime }}</view>
<view class="value">{{ detail.mineDetails.day}}{{ i18n.days }}</view>
</view> </view>
<input class="input" v-model="codeValue" focus :placeholder="i18n.invuteCode" </view>
placeholder-style="color:#A1A0A8" />
<view class="allItem"> </view>
<input class="input" v-model="coinQuantity" :placeholder="i18n.lockBTC" <!-- <input class="input" v-model="info.inviteCode" focus :placeholder="i18n.invuteCode"
placeholder-style="color:#A1A0A8" /> placeholder-style="color:#A1A0A8" :disabled="detail.inviteCode" /> -->
<view class="all">{{ i18n.ALL }}</view> <view class="allItem">
</view> <input class="input" v-model="info.amount" :placeholder="i18n.lockBTC"
placeholder-style="color:#A1A0A8" />
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="true">{{ i18n.LockBTCBtn }} <view class="all" @click="info.amount=detail.userCapital">{{ i18n.ALL }}</view>
</u-button> </view>
</view>
<u-button class="button" color="#00E8A2" throttleTime="500" :disabled="lockBTCBtned" @click="Lock">
{{ i18n.LockBTCBtn }}
</view> </u-button>
</view>
</view>
</template> </template>
<script> <script>
import uniCopy from '@/utils/uni-copy' import uniCopy from '@/utils/uni-copy'
export default { import api from '@/utils/api'
name: "mineDetails", import constant from '@/utils/constant.js';
data() { export default {
return { name: "mineDetails",
coinValue: 1000.001, data() {
codeValue: '', return {
coinQuantity: '', id:null,
}; info: {
}, productId: null,
computed: { amount: null,
i18n() { // inviteCode: null,
return this.$t("mine"); },
}, coinValue: 1000.001,
}, codeValue: '',
onLoad() { coinQuantity: '',
}, detail: {},
onShow() { }, imgAddress: '',
methods: { };
goto(page) { },
// console.log(page); computed: {
let url = ''; i18n() {
switch (page) { return this.$t("mine");
case 'mineRecord': },
url = '/pages/mine/mineRecord' lockBTCBtned() {
break; if (!this.info.amount && !this.info.amount) {
default: return true;
break; } else {
} return false;
if (url) { }
// console.log(url); }
uni.navigateTo({ },
url, onLoad(res) {
}); this.id=res.id
} this.getMineDetail(this.id)
this.imgAddress = res.imgAddress
}, },
USDTRadioChange(e) { onShow() {},
console.log(e); methods: {
}, //
Lock() {
copyAddress(value = "") { api.mineSubmit(this.info).then(res => {
console.log(value) uni.$u.toast(this.$t("login").Purchasesucceeded)
uniCopy({ setTimeout(()=>{
content: value, this.getMineDetail(this.id)
success: (res) => { },1200)
uni.showToast({ })
title: "复制成功", },
duration: 3000, //
}) getMineDetail(id) {
}, api.showMineDetails({
error: (e) => { mineId: id
uni.showToast({ }).then(res => {
title: e, this.detail = res
icon: 'none', this.info.productId = this.detail.mineDetails.id
duration: 2000,
}) })
} },
}) 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.right { .right {
position: absolute; position: absolute;
right: 32rpx; right: 32rpx;
font-size: 24rpx; font-size: 24rpx;
} }
.content { .content {
overflow: hidden; overflow: hidden;
margin-top: 200rpx; margin-top: 200rpx;
padding: 0 32rpx; padding: 0 32rpx;
.card { .card {
margin-top: 40rpx; margin-top: 40rpx;
height: 274rpx; height: 274rpx;
padding: 0 24rpx; padding: 0 24rpx;
background-image: url(../../static/mine/bg_mine.png); background-image: url(../../static/mine/bg_mine.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 686rpx 274rpx; background-size: 686rpx 274rpx;
.top { .top {
display: flex; display: flex;
height: 132rpx; height: 132rpx;
border-bottom: 2rpx solid rgba(255, 255, 255, 0.2); border-bottom: 2rpx solid rgba(255, 255, 255, 0.2);
.icon { .icon {
margin: 0 24rpx 0 16rpx; margin: 0 24rpx 0 16rpx;
} }
.title { .title {
font-size: 28rpx; font-size: 28rpx;
line-height: 136rpx; line-height: 136rpx;
} }
.coinValue { .coinValue {
flex: 1; flex: 1;
text-align: right; text-align: right;
font-size: 68rpx; font-size: 48rpx;
line-height: 144rpx; line-height: 144rpx;
padding-right: 20rpx; padding-right: 20rpx;
} }
} }
.bottom { .bottom {
display: flex; display: flex;
height: 140rpx; height: 140rpx;
padding: 0 20rpx; padding: 0 20rpx;
.item { .item {
flex: 1; flex: 1;
.title { .title {
font-size: 20rpx; font-size: 20rpx;
line-height: 64rpx; line-height: 64rpx;
} }
.value { .value {
font-size: 35rpx; font-size: 35rpx;
line-height: 40rpx; line-height: 40rpx;
font-weight: 600; font-weight: 600;
} }
&:nth-child(1) { &:nth-child(1) {
text-align: left; text-align: left;
} }
&:nth-child(2) { &:nth-child(2) {
text-align: center; text-align: center;
} }
&:nth-child(3) { &:nth-child(3) {
text-align: right; text-align: right;
} }
} }
} }
} }
.input { .input {
margin-top: 32rpx; margin-top: 32rpx;
height: 112rpx; height: 112rpx;
background: #323045; background: #323045;
border-radius: 32rpx; border-radius: 32rpx;
padding-left: 32rpx; padding-left: 32rpx;
font-size: 26rpx; font-size: 26rpx;
color: #fff; color: #fff;
} }
.allItem { .allItem {
position: relative; position: relative;
.all { .all {
position: absolute; position: absolute;
display: inline; display: inline;
font-size: 20rpx; font-size: 20rpx;
color: #00E8A2; color: #00E8A2;
top: 44rpx; top: 44rpx;
right: 30rpx; right: 30rpx;
} }
} }
.button { .button {
margin-top: 60rpx; margin-top: 60rpx;
border-radius: 32rpx; border-radius: 32rpx;
height: 112rpx; height: 112rpx;
line-height: 112rpx; line-height: 112rpx;
color: #15141F !important; color: #15141F !important;
font-weight: bold; font-weight: bold;
} }
} }
} }
</style> </style>

96
pages/mine/mineRecord.vue

@ -2,37 +2,48 @@
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.MinePool }}</navigation> <navigation>{{ i18n.MinePool }}</navigation>
<!-- 数据为空格显示 --> <u-empty :show="userInfoObj.length === 0" marginTop="350rpx" :text="i18n.NoData" textColor="#818197"
<u-empty :show="dataList.length === 0" marginTop="350rpx" :text="i18n.NoData" textColor="#818197" textSize="36rpx" icon="../../static/mine/img_data.png"></u-empty>
textSize="36rpx" icon="../../static/mine/img_data.png"></u-empty>
<!-- 列表 --> <!-- 列表 -->
<view class="content" v-if="dataList.length > 0"> <view class="content" v-if="userInfoObj.length > 0">
<view class="dataBody" v-for="(item, index) in 4" :key="index"> <view class="dataBody" v-for="(item, index) in userInfoObj" :key="index">
<key-value-row :keyName="i18n.BaseCoin" :value="'100BTC'"></key-value-row> <key-value-row :keyName="i18n.BaseCoin" :value="item.amount+item.baseCoin"></key-value-row>
<key-value-row :keyName="i18n.ProfitCoin" :value="'CEH'"></key-value-row> <key-value-row :keyName="i18n.ProfitCoin" :value="item.profitCoin"></key-value-row>
<key-value-row :keyName="i18n.DayRebate" :value="'75000'"></key-value-row> <key-value-row :keyName="i18n.DayRebate" :value="item.price"></key-value-row>
<u-divider text="" lineColor="#B9C1D9"></u-divider> <u-divider text="" lineColor="#B9C1D9"></u-divider>
<key-value-row :keyName="i18n.RebateDay" :value="'0/120'"></key-value-row> <key-value-row :keyName="i18n.RebateDay" :value="item.rebateDay+'/'+item.day"></key-value-row>
<key-value-row :keyName="i18n.RebateAmount" :value="'150000/9000000'"></key-value-row> <key-value-row :keyName="i18n.RebateAmount" :value="item.rebateAmount+'/'+item.deadAmount"></key-value-row>
<u-divider text="" lineColor="#B9C1D9"></u-divider> <u-divider text="" lineColor="#B9C1D9"></u-divider>
<key-value-row :keyName="i18n.AddTime" :value="'2022/08/06 14:50:34'"></key-value-row> <key-value-row :keyName="i18n.AddTime" :value="item.timestr"></key-value-row>
<key-value-row :keyName="i18n.ReleaseTime" :value="'2022/08/06 14:50:34'"></key-value-row> <key-value-row :keyName="i18n.ReleaseTime" :value="item.timestr2"></key-value-row>
</view> </view>
</view> </view>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="userInfoObj.length" height="80" />
</view> </view>
</template> </template>
<script> <script>
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
import api from '@/utils/api'
import constant from '@/utils/constant.js';
export default { export default {
components: { KeyValueRow }, components: { KeyValueRow },
name: "mineRecord", name: "mineRecord",
data() { data() {
return { return {
dataList: [{}], form: {
pageNumber: 1,
pageSize: 20,
},
baseURL: '',
isLoadMore: false, //
loadStatus: 'loadmore',
loadingText: this.$t("login").toload,
loadmoreText: this.$t("login").pullup,
nomoreText: this.$t("login").Nomore,
userInfoObj: [],
}; };
}, },
computed: { computed: {
@ -40,11 +51,60 @@ export default {
return this.$t("mine"); return this.$t("mine");
}, },
}, },
onReachBottom() {
if (!this.isLoadMore) {
this.form.pageNumber += 1
this.getList();
}
},
onLoad() { onLoad() {
this.getList()
}, },
onShow() { }, onShow() { },
methods: { methods: {
getList() {
this.isLoadMore = true
api.mineRecord(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
if (this.userInfoObj[i].releaseTime) {
this.userInfoObj[i].timestr2 = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].releaseTime)
}
}
} else {
this.userInfoObj = res.content
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
if (this.userInfoObj[i].releaseTime) {
this.userInfoObj[i].timestr2 = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].releaseTime)
}
}
}
if (this.userInfoObj.length >= Number(res.totalElements)) { //
this.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
}
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
}
this.$forceUpdate()
})
},
}, },
} }
</script> </script>
@ -78,4 +138,4 @@ export default {
} }
</style> </style>

577
pages/subscription/details.vue

@ -1,258 +1,345 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<navigation>{{ i18n.Subscription }}</navigation> <navigation>{{ i18n.Subscription }}</navigation>
<view class="body"> <view class="body">
<!-- 倒计时 --> <!-- 倒计时 -->
<view class="countDown"> <view class="countDown">
<view class="item"> <view class="item">
<view class="title">{{ i18n.Days }}</view> <view class="title">{{ i18n.Days }}</view>
<view class="value">20</view> <view class="value">{{day}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="title">{{ i18n.Hours }}</view> <view class="title">{{ i18n.Hours }}</view>
<view class="value">8</view> <view class="value">{{hr}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="title">{{ i18n.Minutes }}</view> <view class="title">{{ i18n.Minutes }}</view>
<view class="value">47</view> <view class="value">{{min}}</view>
</view> </view>
<view class="item"> <view class="item">
<view class="title">{{ i18n.Seconds }}</view> <view class="title">{{ i18n.Seconds }}</view>
<view class="value">9</view> <view class="value">{{sec}}</view>
</view> </view>
</view> </view>
<!-- input --> <!-- input -->
<view class="input-item"> <view class="input-item">
<u-input class="input" v-model="SubscribeCount" color="#A1A0A8" fontSize="32rpx" border="none" <u-input class="input" v-model="SubscribeCount" color="#A1A0A8" fontSize="32rpx" border="none"
:placeholder="i18n.PleaseChooseCoin"> :placeholder="i18n.PleaseChooseCoin" @focus="SubscribeCount=''">
</u-input> </u-input>
<view class="selectCoin" @click="USDTPopupShow = true">USDT <view class="selectCoin" @click="USDTPopupShow = true">{{deinfo.sysCoinInfo.coinCode}}
</view> </view>
</view> </view>
<!-- total --> <!-- total -->
<key-value-row :keyName="i18n.Total" :value="'≈ 993.64069952 ACTA'" :size="'24rpx'" :leftColor="'#A1A0A8'" <key-value-row :keyName="i18n.Total" :value="'≈'+coinPirce+deinfo.coins[0].code" :size="'24rpx'"
:rightColor="'#A1A0A8'"></key-value-row> :leftColor="'#A1A0A8'" :rightColor="'#A1A0A8'"></key-value-row>
<!-- 按钮 --> <!-- 按钮 -->
<u-button class="button" color="#00E8A2" throttleTime="500">{{ <u-button class="button" color="#00E8A2" throttleTime="500" :disabled="SubscribeNowed" @click="subscribe">{{
i18n.SubscribeNow i18n.SubscribeNow
}} }}
</u-button> </u-button>
<!-- ProjectDetails --> <!-- ProjectDetails -->
<view class="contentTitle"> <view class="contentTitle">
<view class="ProjectDetails">{{ i18n.ProjectDetails }}</view> <view class="ProjectDetails">{{ i18n.ProjectDetails }}</view>
<view class="videoBtn">{{ i18n.Video }}</view> <view class="videoBtn" @click="getContact('video')">{{ i18n.Video }}</view>
<view class="whiteBook">{{ i18n.WhiteBook }}</view> <view class="whiteBook" @click="getContact('book')">{{ i18n.WhiteBook }}</view>
</view> </view>
<!-- 文字内容 --> <!-- 文字内容 -->
<view class="content">Access to COVID-19 Tools Accelerator (ACTA) is a fully decentralized financial (DeFi) <view class="content">{{des}}</view>
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.
Full name of the token: Access to COVID-19 Tools Accelerator </view>
</view>
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>
</template> </template>
<script> <script>
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
import UButton from '../../uview-ui/components/u-button/u-button' import UButton from '../../uview-ui/components/u-button/u-button'
export default { import api from '@/utils/api'
name: "subscriptionDetails", import constant from '@/utils/constant.js';
data() { export default {
return { name: "subscriptionDetails",
SubscribeCount: 0, data() {
DonatePopupShow: false, return {
USDTPopupShow: false, //
DonatePopupDisabled: true, coinPirce: 0,
coinInfo: {}, toLiveBtn: '',
rules: {}, _interval: null,
radioValue: '', des: '',
}; SubscribeCount: 0,
}, DonatePopupShow: false,
computed: { USDTPopupShow: false,
i18n() { DonatePopupDisabled: true,
return this.$t("subscription"); coinInfo: {},
}, rules: {},
}, radioValue: '',
onLoad() { baseURL: '',
// console.log(this.$t('login.emailInputMessage')); deinfo: {},
}, day: '',
onShow() { }, hr: '',
methods: { min: '',
radioChange(e) { sec: '',
// console.log(e); };
} },
}, computed: {
components: { UButton, KeyValueRow } 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { .main {
.body { .body {
overflow: hidden; overflow: hidden;
margin-top: 200rpx; margin-top: 200rpx;
padding: 0 48rpx; padding: 0 48rpx;
.countDown { .countDown {
margin-top: 60rpx; margin-top: 60rpx;
height: 248rpx; height: 248rpx;
background-image: url(../../static/subscription/RoundedRectangle.png); background-image: url(../../static/subscription/RoundedRectangle.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 654rpx 248rpx; background-size: 654rpx 248rpx;
color: #15141F; color: #15141F;
padding: 36rpx 28rpx; padding: 36rpx 28rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-around; justify-content: space-around;
box-sizing: border-box; box-sizing: border-box;
.item { .item {
width: 140rpx; // width: 140rpx;
height: 174rpx; height: 174rpx;
font-weight: bold; font-weight: bold;
.title { .title {
font-size: 32rpx; font-size: 32rpx;
text-align: center; text-align: center;
} }
.value { .value {
margin-top: 10rpx; margin-top: 10rpx;
font-size: 96rpx; font-size: 96rpx;
text-align: center; text-align: center;
} }
} }
} }
.input-item { .input-item {
position: relative; position: relative;
overflow: hidden; overflow: hidden;
height: 124rpx; height: 124rpx;
line-height: 124rpx; line-height: 124rpx;
background: #323045; background: #323045;
margin: 32rpx 0; margin: 32rpx 0;
border-radius: 32rpx; border-radius: 32rpx;
padding: 0 40rpx; padding: 0 40rpx;
/deep/.u-form-item__body { /deep/.u-form-item__body {
padding: 0; padding: 0;
} }
.input { .input {
width: 80%; width: 80%;
height: 124rpx; height: 124rpx;
} }
.selectCoin { .selectCoin {
position: absolute; position: absolute;
width: 150rpx; width: 150rpx;
height: 54rpx; height: 54rpx;
top: 36rpx; top: 36rpx;
right: 0rpx; right: 0rpx;
line-height: 56rpx; line-height: 56rpx;
font-size: 36rpx; font-size: 36rpx;
padding: 0; padding: 0;
color: #fff; color: #fff;
} }
} }
.button { .button {
margin-top: 38rpx; margin-top: 38rpx;
margin-bottom: 48rpx; margin-bottom: 48rpx;
height: 112rpx; height: 112rpx;
line-height: 112rpx; line-height: 112rpx;
border-radius: 32rpx; border-radius: 32rpx;
font-size: 32rpx; font-size: 32rpx;
color: #15141F !important; color: #15141F !important;
font-weight: bold; font-weight: bold;
} }
.contentTitle { .contentTitle {
position: relative; position: relative;
margin-bottom: 32rpx; margin-bottom: 32rpx;
.ProjectDetails { .ProjectDetails {
font-size: 32rpx; font-size: 32rpx;
color: #fff; color: #fff;
} }
.videoBtn { .videoBtn {
position: absolute; position: absolute;
top: 0; top: 0;
right: 184rpx; right: 184rpx;
width: 134rpx; width: 134rpx;
height: 48rpx; height: 48rpx;
line-height: 48rpx; line-height: 48rpx;
background: #F2FE8D; background: #F2FE8D;
border-radius: 8rpx; border-radius: 8rpx;
text-align: right; text-align: right;
color: #15141F; color: #15141F;
font-size: 24rpx; font-size: 24rpx;
font-weight: bold; font-weight: bold;
box-sizing: border-box; box-sizing: border-box;
padding: 0 16rpx; padding: 0 16rpx;
&::before { &::before {
display: block; display: block;
position: absolute; position: absolute;
content: ''; content: '';
background-image: url(../../static/subscription/ic_play.png); background-image: url(../../static/subscription/ic_play.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 32rpx; background-size: 32rpx;
width: 32rpx; width: 32rpx;
height: 32rpx; height: 32rpx;
top: 8rpx; top: 8rpx;
left: 10rpx; left: 10rpx;
} }
} }
.whiteBook { .whiteBook {
position: absolute; position: absolute;
top: 0; top: 0;
right: 0rpx; right: 0rpx;
width: 164rpx; width: 164rpx;
height: 48rpx; height: 48rpx;
line-height: 48rpx; line-height: 48rpx;
background: #F2FE8D; background: #F2FE8D;
border-radius: 8rpx; border-radius: 8rpx;
text-align: center; text-align: center;
color: #15141F; color: #15141F;
font-size: 24rpx; font-size: 24rpx;
font-weight: bold; font-weight: bold;
box-sizing: border-box; box-sizing: border-box;
} }
} }
.content { .content {
font-size: 24rpx; font-size: 24rpx;
color: #A1A0A8; color: #A1A0A8;
margin-bottom: 48rpx; margin-bottom: 48rpx;
} line-height: 40rpx;
}
}
}
}
}
</style> </style>

391
pages/subscription/index.vue

@ -1,164 +1,277 @@
<template> <template>
<view class="main"> <view class="main">
<!-- nav --> <!-- nav -->
<view class="nav-head"> <view class="nav-head">
<view class="navItem" @click="pageState = 'product'" :class="{ select: pageState === 'product' }"> <view class="navItem" @click="pageState = 'product',getInfo('product')"
{{ i18n.Product }} :class="{ select: pageState === 'product' }">
</view> {{ i18n.Product }}
<view class="navItem" @click="pageState = 'pending'" :class="{ select: pageState === 'pending' }"> </view>
{{ i18n.Pending }} <view class="navItem" @click="pageState = 'pending',getInfo('pending')"
</view> :class="{ select: pageState === 'pending' }">
<view class="navItem" @click="pageState = 'complete'" :class="{ select: pageState === 'complete' }"> {{ i18n.Pending }}
{{ i18n.Complete }} </view>
</view> <view class="navItem" @click="pageState = 'complete',getInfo('complete')"
</view> :class="{ select: pageState === 'complete' }">
<!-- Product 产品列表 --> {{ i18n.Complete }}
<view class="cardList"> </view>
<view class="card" v-for="(item, index) in 10" :key="index" @click="gotoDetails(index)"> </view>
<!-- 卡片条件渲染 --> <!-- Product 产品列表 -->
<!-- product --> <view class="cardList">
<card-header v-if="pageState === 'product'" :iconName="'../../static/maskets/bye.png'" <view class="card" v-for="(item, index) in info" :key="index" @click="gotoDetails(item,index)"
:title="'BTC(Bitcoin)'" :rightName="i18n.Subscribe" :hasBtn="true" :btnColor="'#00E8A2'"> v-if="pageState === 'product'">
</card-header> <!-- 卡片条件渲染 -->
<view class="dataBody" v-if="pageState === 'product'"> <!-- product -->
<key-value-row :keyName="i18n.STLTotalCirculation" :value="'23989'"></key-value-row> <card-header v-if="pageState === 'product'" :iconName="baseURL+'/coins/'+item.coinCode+'.png'"
<key-value-row :keyName="i18n.PrivateSalePrice" :value="'284145.61'"></key-value-row> :title="item.fullName"
<key-value-row :keyName="i18n.ICOTime" :value="'2022/08/06-2022/08/31'"></key-value-row> :rightName="item.status=='open'?'Subscribe':item.status=='close'?'Ended':'Coming soon'"
</view> :hasBtn="true" :btnColor="item.status=='open'?'#00E8A2':item.status=='close'?'#A1A0A8':'#F2FE8D'">
</card-header>
<view class="dataBody" v-if="pageState === 'product'">
<!-- pending --> <key-value-row :keyName="i18n.STLTotalCirculation" :value="item.issueAmount"></key-value-row>
<card-header v-if="pageState === 'pending'" :iconName="'../../static/maskets/bye.png'" <key-value-row :keyName="i18n.PrivateSalePrice" :value="item.initalPrice+item.coinCode">
:title="'973430980989323445'" :rightName="'Pending'" fontColor="#00E8A2"> </key-value-row>
</card-header> <key-value-row :keyName="i18n.ICOTime" :value="item.timestr"></key-value-row>
<view class="dataBody" v-if="pageState === 'pending'"> </view>
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row> </view>
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row> <view class="card" v-for="(item, index) in userInfoObj" :key="index" v-if="pageState === 'pending'">
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row> <!-- pending -->
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> <card-header v-if="pageState === 'pending'" :iconName="baseURL+'/coins/'+item.coinSymbol+'.png'"
</view> :title="item.orderNo" :rightName="item.status" :fontColor="item.status=='undone'?'#A1A0A8':item.status=='cancel'?'#F4506A':'#00E8A2'">
</card-header>
<view class="dataBody" v-if="pageState === 'pending'">
<!-- complete --> <key-value-row :keyName="i18n.Price" :value="item.pendingPrice"></key-value-row>
<card-header v-if="pageState === 'complete'" :iconName="'../../static/maskets/bye.png'" <key-value-row :keyName="i18n.Quantity" :value="item.pendingAmount"></key-value-row>
:title="'973430980989323445'" :rightName="'complete'" fontColor="#00E8A2"> <key-value-row :keyName="i18n.USDT" :value="parseInt(item.usdtPrice,16)"></key-value-row>
</card-header> <key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row>
<view class="dataBody" v-if="pageState === 'complete'"> </view>
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row> </view>
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row>
<key-value-row :keyName="i18n.ConfirmAmount" :value="'999'" :leftColor="'#F2FE8D'" <view class="card" v-for="(item, index) in userInfoObj" :key="index" v-if="pageState === 'complete'">
:rightColor="'#F2FE8D'"></key-value-row> <!-- complete -->
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row> <card-header v-if="pageState === 'complete'" :iconName="baseURL+'/coins/'+item.coinSymbol+'.png'"
<key-value-row :keyName="i18n.CheckTheNumberoOfUSDT" :value="'2000'" :leftColor="'#F2FE8D'" :title="item.orderNo" :rightName="item.status" :fontColor="item.status=='undone'?'#A1A0A8':item.status=='cancel'?'#F4506A':'#00E8A2'">
:rightColor="'#F2FE8D'"> </card-header>
</key-value-row> <view class="dataBody" v-if="pageState === 'complete'">
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row> <key-value-row :keyName="i18n.Price" :value="item.pendingPrice"></key-value-row>
<key-value-row :keyName="i18n.Quantity" :value="item.pendingAmount"></key-value-row>
</view> <key-value-row :keyName="i18n.ConfirmAmount" :value="item.tradeAmount" :leftColor="'#F2FE8D'"
:rightColor="'#F2FE8D'"></key-value-row>
</view> <key-value-row :keyName="i18n.USDT" :value="parseInt(item.usdtPrice,16)"></key-value-row>
</view> <key-value-row :keyName="i18n.CheckTheNumberoOfUSDT" :value="item.realAmount" :leftColor="'#F2FE8D'"
:rightColor="'#F2FE8D'">
</key-value-row>
<key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row>
<!-- tabBar -->
<tab-bar :selectActive="4"></tab-bar> </view>
</view> </view>
</view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="info.length==0&&pageState=='product'"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="info.length&&pageState=='product'" height="80" />
<!-- 申购记录的为空提示 -->
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0" v-show="pageState=='undone'||pageState=='complete'"></u-empty>
<u-loadmore :status="loadStatus2" :loading-text="loadingText2" :loadmore-text="loadmoreText2"
:nomore-text="nomoreText2" v-if="userInfoObj.length" height="80" />
<!-- tabBar -->
<tab-bar :selectActive="4"></tab-bar>
</view>
</template> </template>
<script> <script>
import CardHeader from '../../components/cardHeader/cardHeader.vue'; import CardHeader from '../../components/cardHeader/cardHeader.vue';
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
export default { import api from '@/utils/api'
components: { KeyValueRow, CardHeader }, import constant from '@/utils/constant.js';
name: 'subscription', export default {
data() { components: {
return { KeyValueRow,
pageState: 'product', // CardHeader
} },
}, name: 'subscription',
onLoad() { data() {
return {
}, baseURL: '',
onShow() { userInfoObj: [],
isLoadMore: false, //
}, loadStatus: 'loadmore',
onHide() { loadingText: this.$t("login").toload,
}, loadmoreText: this.$t("login").pullup,
computed: { nomoreText: this.$t("login").Nomore,
i18n() { info: [],
return this.$t('subscription') pageState: 'product', //
} form: {
}, pageNumber: 1,
methods: { pageSize: 20,
gotoDetails(index) { status: '',
if (this.pageState !== 'product') return },
uni.navigateTo({ //
url: `/pages/subscription/details?id=${index}` isLoadMore2: false, //
}); loadStatus2: 'loadmore',
} loadingText2: this.$t("login").toload,
} loadmoreText2: this.$t("login").pullup,
} nomoreText2: this.$t("login").Nomore,
}
},
onLoad() {},
onShow() {
this.baseURL = constant.BASE_URL
this.getGoods();
},
onHide() {},
computed: {
i18n() {
return this.$t('subscription')
}
},
methods: {
// product
getInfo(e) {
this.info=[];
this.userInfoObj=[]
if (e == 'product') {
this.getGoods()
}
if (e == 'pending') {
this.form.status = 'undone'
this.getList()
}
if (e == 'complete') {
this.form.status = 'complete'
this.getList()
}
},
//
getList() {
this.isLoadMore2 = true
api.subscriptionRecord(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
} else {
this.userInfoObj = res.content
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
}
if (this.userInfoObj.length >= Number(res.totalElements)) { //
this.isLoadMore2 = true
this.loadStatus2 = 'nomore'
} else {
this.isLoadMore2 = false
}
} else {
this.isLoadMore2 = true
this.loadStatus2 = 'nomore'
this.userInfoObj = []
}
this.$forceUpdate()
})
},
//
getGoods() {
api.subscriptionList().then(res => {
this.info = res;
this.isLoadMore = true
this.loadStatus = 'nomore'
for (var i = 0; i < this.info.length; i++) {
if (this.info[i].startDate) {
this.info[i].timestr = this.$index.formatyymmddhhmmss(this.info[
i].startDate)
}
}
})
},
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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.main { /deep/ .cardHeader .button {
padding-bottom: 198rpx; // TabBar width: 160rpx;
}
.main {
padding-bottom: 198rpx; // TabBar
.nav-head { .nav-head {
overflow: hidden; overflow: hidden;
position: fixed; position: fixed;
top: 0rpx; top: 0rpx;
height: 80rpx; height: 80rpx;
font-size: 24rpx; font-size: 24rpx;
color: #fff; color: #fff;
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
align-items: center; align-items: center;
z-index: 8; z-index: 8;
background-color: #15141F; background-color: #15141F;
padding: 94rpx 48rpx 0; padding: 94rpx 48rpx 0;
.navItem { .navItem {
width: 218rpx; width: 218rpx;
height: 80rpx; height: 80rpx;
line-height: 80rpx; line-height: 80rpx;
text-align: center; text-align: center;
color: #0b7e60; color: #0b7e60;
font-size: 28rpx; font-size: 28rpx;
border-bottom: 10rpx solid #0b7e60; border-bottom: 10rpx solid #0b7e60;
} }
.select { .select {
color: #00E8A2; color: #00E8A2;
border-bottom: 10rpx solid #00E8A2; border-bottom: 10rpx solid #00E8A2;
} }
} }
.cardList { .cardList {
margin-top: 212rpx; margin-top: 212rpx;
.card { .card {
background: #211F32; background: #211F32;
border-radius: 32rpx; border-radius: 32rpx;
margin: 32rpx; margin: 32rpx;
.dataBody { .dataBody {
box-sizing: border-box; box-sizing: border-box;
padding: 32rpx; padding: 32rpx;
} }
} }
} }
} }
</style> </style>

5
pages/withdrawal/withdrawal.vue

@ -166,6 +166,7 @@
import api from '@/utils/api' import api from '@/utils/api'
import constant from '@/utils/constant.js'; import constant from '@/utils/constant.js';
import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue'; import KeyValueRow from '../../components/KeyValueRow/KeyValueRow.vue';
import md5 from 'js-md5'
export default { export default {
components: { components: {
KeyValueRow KeyValueRow
@ -255,14 +256,14 @@
tranAmt: this.coinInfo.tranAmt, tranAmt: this.coinInfo.tranAmt,
addressId: this.coinInfo.addressId, addressId: this.coinInfo.addressId,
coinCode: this.coinInfo.coinCode2, coinCode: this.coinInfo.coinCode2,
payPassword: this.coinInfo.payPassword payPassword:md5(this.coinInfo.payPassword),
} }
}else{ }else{
info={ info={
type: this.coinInfo.type, type: this.coinInfo.type,
tranAmt: this.coinInfo.tranAmt, tranAmt: this.coinInfo.tranAmt,
addressId: this.coinInfo.addressId, addressId: this.coinInfo.addressId,
payPassword: this.coinInfo.payPassword payPassword:md5(this.coinInfo.payPassword),
} }
} }
api.withdraw(info).then(res => { api.withdraw(info).then(res => {

2
pages/withdrawal/withdrawalRecord.vue

@ -64,7 +64,7 @@
<view style="padding:20rpx 32rpx;"> <view style="padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.USDTRate" :value="item.usdtRate"></key-value-row> <key-value-row :keyName="i18n.USDTRate" :value="item.usdtRate"></key-value-row>
<!-- --> <!-- -->
<key-value-row :keyName="i18n.USDT" :value="parseInt(item.channelAmount,16)"></key-value-row> <key-value-row :keyName="i18n.USDT" :value="item.usdt"></key-value-row>
</view> </view>
<view style="border-top: 2rpx solid #323045;padding:20rpx 32rpx;"> <view style="border-top: 2rpx solid #323045;padding:20rpx 32rpx;">
<key-value-row :keyName="i18n.CardNo" :value="item.acctId"> <key-value-row :keyName="i18n.CardNo" :value="item.acctId">

BIN
static/me/myTeambg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

8
utils/language/en_US.js

@ -10,6 +10,8 @@ export default {
}, },
// 登陆相关页面 // 登陆相关页面
login: { login: {
Purchasesucceeded:'Purchase succeeded',
Successfulsubscription:'Successful subscription',
Withdrawalsucceeded:'Withdrawal succeeded', Withdrawalsucceeded:'Withdrawal succeeded',
Deletesucceeded:'Delete succeeded', Deletesucceeded:'Delete succeeded',
Savesucceeded:'Saved successfully', Savesucceeded:'Saved successfully',
@ -194,11 +196,12 @@ export default {
//mine //mine
mine: { mine: {
Dataisempty:'Data is empty',
MinePool: 'Mine pool', MinePool: 'Mine pool',
OpenMine: 'Open mine', OpenMine: 'Open mine',
MineDetails: 'Mine details', MineDetails: 'Mine details',
Record: 'Record', Record: 'Record',
Dataisempty:'Data is empty',
YourBTC: 'Your BTC', YourBTC: 'Your BTC',
LockBTC: 'Lock BTC', LockBTC: 'Lock BTC',
dayproduce: '1 day produce', dayproduce: '1 day produce',
@ -303,6 +306,9 @@ export default {
// 申购页面相关 subscription // 申购页面相关 subscription
subscription: { subscription: {
Subcompleted:'Subscription has been completed',
Substarted:'Subscription has not started',
Dataisempty:'Data is empty',
// 公共 // 公共
Product: 'Product', Product: 'Product',
Pending: 'Pending', Pending: 'Pending',

Loading…
Cancel
Save