Files
frontend-app/pages/rwa_package/rwa/rwa.vue
T

211 lines
5.4 KiB
Vue
Raw Normal View History

2025-08-06 20:25:41 +08:00
<template>
2025-11-11 18:27:56 +08:00
<view class="content top-view">
2025-11-11 20:16:15 +08:00
2025-11-11 18:27:56 +08:00
<view class="top-panel">
2025-11-11 20:16:15 +08:00
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
<Header bgColor="rgba(0,0,0,0)" color="#fff" title="数字积分兑换" style="min-height:88rpx;" />
2025-11-11 18:27:56 +08:00
<text class="text-24 text-white" style="margin-top:24rpx">股东行权</text>
<text class="text-88 text-white text-bold" style="margin-top:24rpx">{{ curData ? curData.curAmount : 0 }}
<text class="text-44 text-white">数字积分(TBC)</text>
</text>
<view class="btn-view">
<view class="left-btn" @click="onLeft">
<up-image src="/static/rwa/tx.png" style="margin-right:5rpx;margin-top:2rpx" width="18" height="18" bgColor="#f1f6ff00" />
<text class="text-zi text-32" style="margin-left:5rpx;line-height: 1.2;">兑换</text>
2025-08-06 20:25:41 +08:00
</view>
2025-11-11 18:27:56 +08:00
<view class="right-btn" @click="onRight">
<up-image src="/static/rwa/jl.png" style="margin-right:5rpx;margin-top:2rpx" width="18" height="18" bgColor="#f1f6ff00" />
<text class="text-white text-32" style="margin-left:5rpx;line-height: 1.2;">记录</text>
2025-08-06 20:25:41 +08:00
</view>
</view>
</view>
2025-11-11 18:27:56 +08:00
<view class="bottom-panel">
<view class="bottom-head-view">
<text class="text-32 text-bold text-zu1">股东账户</text>
2025-08-06 20:25:41 +08:00
</view>
2025-11-11 18:27:56 +08:00
<view class="bottom-list">
<view class="list-box" v-if="dataList.length">
<AccountItemTwo :dataItem="item" @jie="onJie"
v-for="(item,index) in dataList" :key="index"></AccountItemTwo>
</view>
<view class="no-box" v-else>
<up-image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/kzt.png" width="100" height="100"
bgColor="#f1f6ff00"></up-image>
<text class="text-32 text-fu1" style="margin-top:32rpx">暂无账户数据~</text>
2025-08-06 20:25:41 +08:00
</view>
</view>
</view>
2025-11-11 18:27:56 +08:00
2025-11-11 10:35:43 +08:00
<ShuTips :itemShow="tipsShow" @close="onClose" @ok="onOk"></ShuTips>
2025-11-11 18:27:56 +08:00
<up-toast ref="uToastRef"></up-toast>
2025-08-06 20:25:41 +08:00
</view>
</template>
<script>
2025-11-11 18:27:56 +08:00
import { getExchUsers,unbindExchUsers,getAcctBalance } from '@/api/finance.js';
2025-08-06 20:25:41 +08:00
import { formatDate } from '@/utils/index.js';
2025-11-11 18:27:56 +08:00
import TopSafe from '@/components/common/top-safe.nvue'
import Header from '@/components/common/header.vue';
2025-11-11 10:35:43 +08:00
import ShuTips from '@/pages/rwa_package/account/components/shu-tips.vue';
2025-11-11 18:27:56 +08:00
import AccountItemTwo from '@/pages/rwa_package/account/components/account-item-two.vue'
2025-08-06 20:25:41 +08:00
export default {
2025-11-11 18:27:56 +08:00
components: { Header, TopSafe,ShuTips,AccountItemTwo },
2025-08-06 20:25:41 +08:00
data() {
return {
2025-11-11 18:27:56 +08:00
dataList:[],
2025-11-11 10:35:43 +08:00
tipsShow:false,
2025-11-11 18:27:56 +08:00
curData:null
};
2025-08-06 20:25:41 +08:00
},
2025-11-11 18:27:56 +08:00
onLoad(option) {
},
onShow(){
this.acctBalance();
this.exchUsers()
2025-08-06 20:25:41 +08:00
},
methods: {
2025-11-11 18:27:56 +08:00
exchUsers(){
getExchUsers().then(res=>{
if (res && res.bizcode === 100) {
2025-11-11 20:16:15 +08:00
this.dataList = res.data.entitys ? res.data.entitys : [];
2025-11-11 18:27:56 +08:00
}
})
},
onJie(item){
let params = {
accountId:item.id
}
unbindExchUsers(params).then(resp=>{
if (resp && resp.bizcode === 100) {
this.$refs.uToastRef.show({
type: 'success',
message: '解绑成功',
});
this.exchUsers()
}
})
},
onRight(){
uni.navigateTo({
url: '/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=rwa',
})
},
onLeft(){
this.tipsShow = true;
},
2025-11-11 10:35:43 +08:00
onClose(){
this.tipsShow = false;
},
onOk(index){
if(index == 0){
uni.navigateTo({
2025-11-11 18:27:56 +08:00
url: '/pages/rwa_package/account/shu',
2025-11-11 10:35:43 +08:00
})
}else if(index == 1){
uni.navigateTo({
2025-11-11 20:16:15 +08:00
url: '/pages/rwa_package/rwa_withdrawal/rwa_withdrawal',
2025-11-11 10:35:43 +08:00
})
}
this.onClose();
},
2025-11-11 18:27:56 +08:00
acctBalance() {
getAcctBalance().then(resp=>{
if (resp && resp.bizcode === 100) {
this.curData = null;
resp.data.forEach(item=>{
if(item.categoty == 'vcoin'){
this.curData = item;
2025-08-06 20:25:41 +08:00
}
})
}
2025-11-11 18:27:56 +08:00
});
2025-08-06 20:25:41 +08:00
},
}
}
</script>
<style lang="scss" scoped>
2025-11-11 18:27:56 +08:00
.top-view{
2025-08-06 20:25:41 +08:00
background: linear-gradient(90deg, $app-zt-color, #AE61FA);
2025-11-11 18:27:56 +08:00
.bottom-panel{
width:100%;
display: flex;
flex-direction: column;
2025-11-11 20:16:15 +08:00
height:calc(100vh - 418rpx - 32rpx - var(--status-bar-height));
2025-11-11 18:27:56 +08:00
background-color: #fff;
border-radius: 24rpx 24rpx 0 0;
2025-11-11 20:16:15 +08:00
padding: 0 32rpx 32rpx;
2025-11-11 18:27:56 +08:00
margin-top:32rpx;
box-sizing: border-box;
.bottom-head-view{
width:100%;
height:88rpx;
min-height:88rpx;
2025-08-06 20:25:41 +08:00
display: flex;
2025-11-11 18:27:56 +08:00
flex-direction: column;
2025-08-06 20:25:41 +08:00
justify-content: center;
2025-11-11 18:27:56 +08:00
}
.bottom-list{
width:100%;
height:calc(100% - 88rpx);
overflow-y: auto;
display: flex;
flex-direction: column;
.no-box{
width:100%;
margin-top:100rpx;
2025-08-06 20:25:41 +08:00
display: flex;
2025-11-11 18:27:56 +08:00
flex-direction: column;
align-items: center;
2025-08-06 20:25:41 +08:00
}
2025-11-11 18:27:56 +08:00
2025-08-06 20:25:41 +08:00
}
}
2025-11-11 20:16:15 +08:00
2025-11-11 18:27:56 +08:00
.top-panel{
width:100%;
display: flex;
flex-direction: column;
2025-11-11 20:16:15 +08:00
min-height:calc(330rpx + 88rpx + var(--status-bar-height));
2025-11-11 18:27:56 +08:00
padding: 0 32rpx;
box-sizing: border-box;
.btn-view{
width:100%;
height:88rpx;
min-height:88rpx;
margin-top:32rpx;
display: flex;
flex-direction: row;
justify-content: space-between;
.left-btn{
width:48%;
height:100%;
background-color: #fff;
align-items: center;
justify-content: center;
display: flex;
border-radius: 16rpx;
}
.right-btn{
width:48%;
height:100%;
background-color: rgba(0,0,0,0);
border:2rpx solid #fff;
box-sizing: border-box;
align-items: center;
justify-content: center;
display: flex;
border-radius: 16rpx;
}
}
2025-08-06 20:25:41 +08:00
}
}
</style>