feat: 前端全量更新 - 含所有本次需求
- 移除秒合约页面及UI - 合约页Tab改为Position Held/Transaction Record - 存款/提款/转账页增加BTC/ETH - 资产页重构(用户信息+盈亏+多语言) - 注册页改版(匹配新设计稿) - 日文全面翻译+首页菜单多语言 - 代理专属注册链接支持(?code=) - 10个locale文件同步更新
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
<template>
|
||||
<view >
|
||||
<myNav title="佣金明细"></myNav>
|
||||
<view class="padding">
|
||||
<view class="top grid col-1 padding align-center text-white">
|
||||
<view class="">
|
||||
<view class="">{{i18n.mine.share.total}}(USDT)</view>
|
||||
<view class="margin-top text-bold text-xl">{{usdt || 0}}</view>
|
||||
<!-- <view class="margin-top-sm">≈ {{usdt_cny || 0}} CNY</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="flex justify-between align-center text-gray padding-lr text-xs font-30">
|
||||
<view class="flex-sub">
|
||||
{{i18n.mine.share.miaoshu}}
|
||||
</view>
|
||||
<view class="flex-sub text-center">
|
||||
{{i18n.mine.share.yongjin}}
|
||||
</view>
|
||||
<view class="flex-twice text-right">
|
||||
{{i18n.mine.share.time}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex justify-between padding-lr padding-tb-xs align-center" v-for="(item,index) in list">
|
||||
<view class="flex-sub">
|
||||
{{item.description}}
|
||||
</view>
|
||||
<view class="flex-sub text-center">
|
||||
{{item.price}}
|
||||
</view>
|
||||
<view class="flex-twice text-right">
|
||||
{{item.createtime}}
|
||||
</view>
|
||||
</view>
|
||||
<p class="text-center margin-t-20 text-gray" v-if="list.length == 0">{{i18n.mine.share.no}}</p>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
pageNum:0,
|
||||
list:[],
|
||||
pages:"",
|
||||
data:"",
|
||||
usdt_cny:'',
|
||||
usdt:'',
|
||||
}
|
||||
},
|
||||
onShow:function(){
|
||||
this.reList()
|
||||
this.getInfo()
|
||||
},
|
||||
onReachBottom:function(){
|
||||
this.getList()
|
||||
},
|
||||
computed: {
|
||||
i18n() {
|
||||
return this.$t('message');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
//时间戳转换
|
||||
formatDate(date) {
|
||||
var date = new Date(date);
|
||||
var YY = date.getFullYear() + '-';
|
||||
var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
||||
var DD = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate());
|
||||
var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
|
||||
var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ":";
|
||||
var ss = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
|
||||
return YY + MM + DD + " " + hh + mm + ss;
|
||||
// return MM + DD + " " + hh + mm;
|
||||
},
|
||||
getInfo(){
|
||||
this.http('api/user/my_commission', {
|
||||
pageSize:20,
|
||||
pageNum:1,
|
||||
}).then(res => {
|
||||
if(res.code == 1){
|
||||
this.usdt = res.data.usdt
|
||||
this.usdt_cny = res.data.usdt_cny
|
||||
}
|
||||
})
|
||||
},
|
||||
reList(){
|
||||
this.pageNum = 0
|
||||
this.list = []
|
||||
this.pages = ""
|
||||
this.getList()
|
||||
},
|
||||
getList(){
|
||||
if(this.pages <= this.pageNum && this.pages!==""){
|
||||
return
|
||||
}
|
||||
this.http('api/user/my_commission', {
|
||||
pageSize:20,
|
||||
pageNum:this.pageNum+1,
|
||||
}).then(res => {
|
||||
if(res.code == 1){
|
||||
this.list = this.list.concat(res.data.data.data)
|
||||
this.pages = res.data.data.last_page
|
||||
if(res.data.data.data.length==0){
|
||||
console.log("??????????")
|
||||
}else{
|
||||
this.pageNum++
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page{
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
.top{
|
||||
background-size: 100% 100%;
|
||||
width: 100%;
|
||||
height: 250rpx;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,132 @@
|
||||
<template>
|
||||
<view class="padding-b-120" :style="'background-color: '+theme.bg+';color: '+theme.text" style="height: 100vh;">
|
||||
<myNav :title="i18n.mine.share.title"></myNav>
|
||||
|
||||
<view class="width-440 margin-0-auto margin-t-100 height-468">
|
||||
<image class="width-440 height-468" src="/static/imgs/my/fenxiang@2x.png" mode=""></image>
|
||||
</view>
|
||||
<view class="borderBox">
|
||||
<text class="font-32 color-0165EE">{{i18n.mine.share.code}}</text>
|
||||
<image class="width-200 height-200" :src="qrcCode?qrcCode:'/static/APEClogo@2x.png'" mode=""></image>
|
||||
<text @click="copy(referral_code)" class="font-36 numbold-font color-0165EE">{{referral_code}}</text>
|
||||
<view @click="save()" class="copyBtn">{{i18n.mine.share.copy}}</view>
|
||||
</view>
|
||||
|
||||
<view class="bottomBox" :style="'background-color: '+theme.fu_bg">
|
||||
<view @click="router.push('/pages/my/share/team')" class="width-300 margin-0-auto height-100b padding-w-20 flex align-center justify-around">
|
||||
<image class="width-28 height-22" src="/static/imgs/my/team@2x.png" mode=""></image>
|
||||
<text class="font-30">{{i18n.mine.share.team}}</text>
|
||||
</view>
|
||||
<!-- <view class="height-17 margin-w-50" style="border: 1px solid #0165EE;"></view>
|
||||
<view @click="router.push('/pages/my/share/commission')" class="width-300 height-100b padding-w-20 flex align-center justify-around">
|
||||
<image class="width-22 height-28" src="/static/imgs/my/mingxi@2x.png" mode=""></image>
|
||||
<text class="font-30 color-333333">佣金明细</text>
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import clipboard from "@/components/clipboard.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
referral_code: "",
|
||||
qrcCode:'',
|
||||
theme:'',
|
||||
}
|
||||
},
|
||||
onLoad: function() {
|
||||
this.getInfo()
|
||||
},
|
||||
onShow:function(){
|
||||
if (uni.getStorageSync("theme") == "dark") {
|
||||
this.theme = this.$store.state.darkTheme
|
||||
}else{
|
||||
this.theme = this.$store.state.lightTheme
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
i18n() {
|
||||
return this.$t('message');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
save(){
|
||||
var that = this;
|
||||
uni.saveImageToPhotosAlbum({
|
||||
filePath: that.qrcCode,
|
||||
success(res) {
|
||||
that.tos(that.i18n.mine.share.codeSuceed)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 复制地址
|
||||
copy(data) {
|
||||
// #ifndef H5
|
||||
clipboard.setText(data);
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
let result
|
||||
let textarea = document.createElement("textarea")
|
||||
textarea.value = data
|
||||
textarea.readOnly = "readOnly"
|
||||
document.body.appendChild(textarea)
|
||||
textarea.select() // 选中文本内容
|
||||
textarea.setSelectionRange(0, data.length)
|
||||
result = document.execCommand("copy")
|
||||
textarea.remove()
|
||||
// #endif
|
||||
this.tos(this.i18n.mine.share.copySuceed)
|
||||
},
|
||||
getInfo() {
|
||||
this.post('/my/get_share').then(res => {
|
||||
if (res.code == 1) {
|
||||
// console.log(res)
|
||||
this.referral_code = res.data.referral_code
|
||||
this.qrcCode = res.data.qrcode
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.borderBox{
|
||||
width: 600rpx;
|
||||
height: 584rpx;
|
||||
margin: 20rpx auto;
|
||||
padding: 50rpx 0;
|
||||
// background: #EFF6FF;
|
||||
border: 1rpx dashed #3ECEB2;
|
||||
border-radius: 10rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.copyBtn{
|
||||
width: 278rpx;
|
||||
height: 72rpx;
|
||||
background: linear-gradient(180deg, #52F3C9 0%, #3ECEB2 100%);
|
||||
box-shadow: 0rpx 6rpx 10rpx rgba(61, 128, 212, 0.12);
|
||||
border-radius: 6rpx;
|
||||
font-size: 36rpx;
|
||||
text-align: center;
|
||||
line-height: 72rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
.bottomBox{
|
||||
width: 100%;
|
||||
height: 120rpx;
|
||||
padding: 0 70rpx;
|
||||
// background: #EFF6FF;
|
||||
position: fixed;
|
||||
bottom: 0rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,128 @@
|
||||
<template>
|
||||
<view>
|
||||
<z-paging :language="$i18n.locale" ref="paging" v-model="list" @query="queryList" :pageSize="20"
|
||||
:style="'background-color: '+theme.bg+';color: '+theme.text">
|
||||
<!-- 下拉刷新 -->
|
||||
<custom-refresher slot="refresher" slot-scope="{refresherStatus}" :status="refresherStatus">
|
||||
</custom-refresher>
|
||||
|
||||
<!-- 头部 -->
|
||||
<myNav slot="top" :title="i18n.mine.share.team"></myNav>
|
||||
<!-- 身体 -->
|
||||
<view>
|
||||
<view class="width-100b height-200 padding-w-45 flex align-center justify-between">
|
||||
<view class="top1">
|
||||
<text class="font-26 color-white" style="opacity: 0.5;">{{i18n.mine.share.num}}</text>
|
||||
<text class="font-34 numbold-font color-white">{{team_num}}{{i18n.mine.share.ren}}</text>
|
||||
</view>
|
||||
<view class="top2">
|
||||
<text class="font-26 color-white" style="opacity: 0.5;">{{i18n.mine.share.today}}</text>
|
||||
<text class="font-34 numbold-font color-white">{{team_today}}{{i18n.mine.share.ren}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="width-100b height-70 flex direction-column align-center justify-center">
|
||||
<text class="font-26 bold-font">{{i18n.mine.share.my}}</text>
|
||||
<view class="width-48 height-4 margin-t-13" style="background-color: #3ECEB2;"></view>
|
||||
</view>
|
||||
|
||||
<view class="listBox" :style="'background-color: '+theme.fu_bg+';color: '+theme.fu_text"
|
||||
v-for="(item,index) in list" :key="index">
|
||||
<text class="font-28 bold-font">{{item.nickname}}</text>
|
||||
<text class="font-24 nummedium-font">{{item.jointime}}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</z-paging>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
team_num: 0,
|
||||
team_today: 0,
|
||||
|
||||
list: [],
|
||||
theme: '',
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
i18n() {
|
||||
return this.$t('message');
|
||||
},
|
||||
},
|
||||
onShow() {
|
||||
if (uni.getStorageSync("theme") == "dark") {
|
||||
this.theme = this.$store.state.darkTheme
|
||||
} else {
|
||||
this.theme = this.$store.state.lightTheme
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
team_head() {
|
||||
this.post('/my/team_head').then(res => {
|
||||
if (res.code == 1) {
|
||||
this.team_num = res.data.team_num
|
||||
this.team_today = res.data.team_today
|
||||
}
|
||||
})
|
||||
},
|
||||
queryList(pageNo, pageSize) {
|
||||
setTimeout(() => {
|
||||
this.post('/my/team_push', {
|
||||
page: pageNo,
|
||||
page_num: pageSize
|
||||
}).then(res => {
|
||||
if (res.code == 1) {
|
||||
console.log(res)
|
||||
this.$refs.paging.complete(res.data.data);
|
||||
}
|
||||
})
|
||||
this.team_head()
|
||||
}, 500)
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.top1 {
|
||||
background-image: url(../../../static/imgs/my/top1@2x.png);
|
||||
background-repeat: repeat;
|
||||
background-size: 100% 100%;
|
||||
width: 312rpx;
|
||||
height: 154rpx;
|
||||
padding: 28rpx 45rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.top2 {
|
||||
background-image: url(../../../static/imgs/my/top2@2x.png);
|
||||
background-repeat: repeat;
|
||||
background-size: 100% 100%;
|
||||
width: 312rpx;
|
||||
height: 154rpx;
|
||||
padding: 28rpx 45rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.listBox {
|
||||
width: 100%;
|
||||
height: 160rpx;
|
||||
/* background: #FFFFFF; */
|
||||
padding: 34rpx 45rpx;
|
||||
margin: 0 auto 12rpx;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
justify-content: space-between;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user