<template>
|
<div class="pb-120 assetsCenter">
|
<div class="flex justify-between px-52 pt-31 box-border">
|
<div class="flex-1 items-center text-center textColor1" v-for="(item, index) in typeList " :key="'type' + index"
|
@click="onTabs(index)">
|
<div class="font-32 text-center lh-53">{{ item.type }}</div>
|
</div>
|
</div>
|
<div class="flex mx-52 mt-17">
|
<span class="flex-1 border-b-color " :class="{ active_color: tab === 0 }"></span>
|
<span class="flex-1 border-b-color" :class="{ active_color: tab === 1 }"></span>
|
<span class="flex-1 border-b-color" :class="{ active_color: tab === 2 }"></span>
|
<span class="flex-1 border-b-color" :class="{ active_color: tab === 3 }"></span>
|
</div>
|
<over-view v-if="tab === 0" :funds="funds" :key="tab"></over-view>
|
<as-sets v-if="tab === 1" :funds="funds" :key="tab"></as-sets>
|
<contract v-if="tab === 2" :funds="funds" :index="index" :key="tab"></contract>
|
<financial v-if="tab === 3" :funds="funds" :index="index" :key="tab"></financial>
|
|
</div>
|
</template>
|
|
<script>
|
|
import AsSets from "@/components/assetsCenter/assets"
|
import OverView from "@/components/assetsCenter/overview"
|
import Contract from "@/components/assetsCenter/contract"
|
import Financial from "@/components/assetsCenter/financial"
|
import Axios from "@/API/assets"
|
export default {
|
name: "assets-index",
|
components: {
|
AsSets,
|
OverView,
|
Contract,
|
Financial
|
},
|
data() {
|
return {
|
type: 'left', //left 从左往右 right 从有王座
|
list: [],
|
timer: null,
|
tab: 0,
|
index: 0, // 每个组件的二级tab
|
funds: {},
|
typeList: [
|
{
|
type: this.$t('总览'),
|
},
|
{
|
type: this.$t('现货账户'),
|
},
|
{
|
type: this.$t('合约'),
|
|
},
|
{
|
type: this.$t('理财'),
|
},
|
]
|
}
|
},
|
methods: {
|
onTabs(val) {
|
if (this.tab < val) {
|
this.type = 'right'
|
} else {
|
this.type = 'left'
|
}
|
console.log(val)
|
this.tab = val
|
},
|
getAssets() {
|
Axios.GetAllAssets().then((res) => {
|
const { code, data } = res
|
if (code) {
|
//console.log('总资产数据',data)
|
this.funds = data
|
}
|
})
|
},
|
},
|
created() {
|
this.getAssets()
|
this.timer = setInterval(() => {
|
this.getAssets()
|
}, 5000)
|
if (Object.hasOwnProperty.call(this.$route.query, 'tab')) {
|
this.tab = this.$route.query.tab / 1
|
this.index = this.$route.query.index ? this.$route.query.index * 1 : 0
|
}
|
},
|
activated() {
|
clearInterval(this.timer)
|
this.timer = setInterval(() => {
|
this.getAssets()
|
}, 5000)
|
this.index = 0
|
},
|
deactivated() {
|
clearInterval(this.timer)
|
this.timer = null
|
},
|
beforeDestroy() {
|
clearInterval(this.timer)
|
this.timer = null
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.assetsCenter {
|
width: 100%;
|
box-sizing: border-box;
|
}
|
|
.active_color {
|
@include themify() {
|
border-bottom: 5px solid themed("color_main") !important;
|
}
|
|
border-radius: 2.208px;
|
}
|
|
.left-enter-active,
|
.left-leave-active,
|
.right-enter-active,
|
.right-leave-active {
|
will-change: transform;
|
transition: all 500ms;
|
}
|
|
.left-leave-active,
|
.right-leave-active {
|
display: none;
|
}
|
|
.left-enter {
|
opacity: 0;
|
transform: translate3d(-100%, 0, 0);
|
}
|
|
.left-leave {
|
opacity: 0;
|
transform: translate3d(100%, 0, 0)
|
}
|
|
.right-enter {
|
opacity: 0;
|
transform: translate3d(100%, 0, 0);
|
}
|
|
.right-leave {
|
opacity: 0;
|
transform: translate3d(-100%, 0, 0)
|
}
|
</style>
|