feat: 券商功能

This commit is contained in:
2026-01-10 15:53:01 +08:00
parent 0d7f520dc4
commit 20fe8528e3
9 changed files with 737 additions and 541 deletions
+23 -15
View File
@@ -18,11 +18,11 @@
bgColor="#f1f6ff00" bgColor="#f1f6ff00"
></up-image> ></up-image>
<view class="mine_info"> <view class="mine_info">
<view class="mine_info_name" > <view class="mine_info_name">
<text style="margin-right: 20rpx">{{ <text style="margin-right: 20rpx">{{
currentUserData.nickname || "信任桥用户" currentUserData.nickname || "信任桥用户"
}}</text> }}</text>
<view class="level" @click="jumpToTrustBridge"> <view class="level" @click="jumpToTrustBridge">
<up-image <up-image
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/mine/rz.png" src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/mine/rz.png"
style="margin-right: 8rpx; margin-top: 6rpx" style="margin-right: 8rpx; margin-top: 6rpx"
@@ -154,7 +154,7 @@
</view> </view>
</view> </view>
<!-- 入驻 --> <!-- 入驻 -->
<!-- #ifndef MP-WEIXIN --> <!-- #ifndef MP-WEIXIN -->
<!-- <view class="mine_content_comm_warp mine_top_comm_warp mine_tool_warp"> <!-- <view class="mine_content_comm_warp mine_top_comm_warp mine_tool_warp">
<view class="mine_tool_title">入驻信任桥</view> <view class="mine_tool_title">入驻信任桥</view>
<view class="settled_list"> <view class="settled_list">
@@ -478,12 +478,12 @@ export default {
url: "https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/mine/tool_cw.png", url: "https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/mine/tool_cw.png",
path: "/pages/rwa_package/dongjian/finance", path: "/pages/rwa_package/dongjian/finance",
}, },
// { {
// id: 11, id: 11,
// title: "股东行权", title: "股东行权",
// url: "https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/mine/tool_gdxq.png", url: "https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/mine/tool_gdxq.png",
// path: "/pages/rwa_package/rwa/rwa", path: "/pages/rwa_package/rwa/rwa",
// }, },
// { // {
// id:1, // id:1,
// title:"IM聊天", // title:"IM聊天",
@@ -528,11 +528,13 @@ export default {
}, },
jumpToTrustBridge() { jumpToTrustBridge() {
// 跳转到指定的信任桥地址 // 跳转到指定的信任桥地址
const isAgentLogin = this.currentUserData?.isAgentLogin ? Number(this.currentUserData?.isAgentLogin) : 0; const isAgentLogin = this.currentUserData?.isAgentLogin
if(isAgentLogin){ ? Number(this.currentUserData?.isAgentLogin)
: 0;
if (isAgentLogin) {
uni.navigateTo({ uni.navigateTo({
url:'/pages/mine_package/mild-shopping/mild-shopping' url: "/pages/mine_package/mild-shopping/mild-shopping",
}) });
} }
}, },
/** /**
@@ -551,8 +553,14 @@ export default {
console.log("currentUserData", this.currentUserData); console.log("currentUserData", this.currentUserData);
let path = let path =
"/pages/mine_package/mine_authentication/mine_authentication"; "/pages/mine_package/mine_authentication/mine_authentication";
if (currentUserData && Object.keys(currentUserData).length !== 0 && currentUserData.certStatus && currentUserData.certStatus !== 0) { if (
path = "/pages/mine_package/mine_authentication_ok/mine_authentication_ok" currentUserData &&
Object.keys(currentUserData).length !== 0 &&
currentUserData.certStatus &&
currentUserData.certStatus !== 0
) {
path =
"/pages/mine_package/mine_authentication_ok/mine_authentication_ok";
} }
uni.navigateTo({ uni.navigateTo({
url: path, url: path,
@@ -1,121 +1,130 @@
<template> <template>
<view class="shop-item-view" v-if="dataItem"> <view class="shop-item-view" v-if="dataItem" @click="onSelect">
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/alpha.png" v-if="dataItem.name != 'WALLET'"></image> <image
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" v-else></image> src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/alpha.png"
<view class="shop-mid-view-one" v-if="dataItem.name != 'WALLET'"> v-if="dataItem.name != 'WALLET'"
<text class="text-32 text-zu1 text-overflow">{{dataItem.account}}</text> ></image>
</view> <image
<view class="shop-mid-view" v-else> src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png"
<text class="text-32 text-zu1 text-overflow">BNB Smart Chain(BEP20)</text> v-else
<text class="text-32 text-fu1 text-overflow">{{address}}</text> ></image>
</view> <view class="shop-mid-view-one" v-if="dataItem.name != 'WALLET'">
<view class="biao-view"> <text class="text-32 text-zu1 text-overflow">{{ dataItem.account }}</text>
<text class="text-20 text-zi" style="line-height: 1.2;">{{dataItem.name != 'WALLET' ? 'Alpha账户' : '区块链账户'}}</text> </view>
</view> <view class="shop-mid-view" v-else>
<view class="jie-bind" @click="onJie"> <text class="text-30 text-fu1 text-overflow">{{ address }}</text>
<text class="text-zu1 text-24">解绑</text> <view class="jie-bind" @click.stop="onJie"> 解绑 </view>
</view> </view>
</view> <view class="biao-view">
<text class="text-20 text-zi" style="line-height: 1.2">{{
dataItem.name != "WALLET" ? "Alpha账户" : "券商登记地址"
}}</text>
</view>
</view>
</template> </template>
<script> <script>
import func from "@/utils/func.js";
export default {
props: {
dataItem: {
type: Object,
default: null,
},
},
computed: {
address() {
let tmp = "";
console.log("this.data", this.dataItem);
if (this.dataItem && this.dataItem.name == "WALLET") {
this.dataItem.address = this.maskAddress(this.dataItem.account);
tmp = this.dataItem.address;
}
return tmp;
},
},
mounted() {},
methods: {
maskAddress(address) {
return "******" + address.slice(-4);
},
import func from '@/utils/func.js'; onJie() {
export default { this.$emit("jie", this.dataItem);
props:{ },
dataItem:{ onSelect() {
type:Object, this.$emit("select", this.dataItem);
default:null },
}, },
};
},
computed:{
address(){
let tmp = '';
console.log('this.data',this.dataItem)
if(this.dataItem && this.dataItem.name == 'WALLET'){
this.dataItem.address = func.addressTurn(this.dataItem.account,6);
tmp = this.dataItem.address;
}
return tmp;
}
},
mounted(){
},
methods: {
onJie(){
this.$emit('jie',this.dataItem);
}
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.shop-item-view{ .shop-item-view {
width:100%; width: 100%;
min-height:152rpx; min-height: 152rpx;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
padding: 32rpx 28rpx; padding: 28rpx 28rpx;
box-sizing: border-box; box-sizing: border-box;
position: relative; position: relative;
border-radius: 12rpx; border-radius: 12rpx;
overflow: hidden; overflow: hidden;
background-color: #fff; background-color: #fff;
margin-top:24rpx; margin-top: 24rpx;
border:2rpx solid #e3e3e3; border: 2rpx solid #e3e3e3;
.jie-bind{ .jie-bind {
height:48rpx; width: 112rpx;
width:112rpx; height: 48rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius:24rpx; border-radius: 24rpx;
position: absolute; color: #666;
right:32rpx; font-size: 24rpx;
bottom:24rpx; // position: absolute;
background-color: #F3F3F3; // right:32rpx;
} // bottom:24rpx;
.biao-view{ background-color: #f3f3f3;
padding: 0 12rpx; }
display: flex; .biao-view {
align-items: center; padding: 0 12rpx;
justify-content: center; display: flex;
height:36rpx; align-items: center;
min-height:36rpx; justify-content: center;
position: absolute; height: 36rpx;
border-radius: 0px 12rpx 0px 12rpx; min-height: 36rpx;
top:0; position: absolute;
right:0; border-radius: 0px 12rpx 0px 12rpx;
background-color: #F2EBFE; top: 0;
right: 0;
} background-color: #f2ebfe;
}
.shop-mid-view{
margin:0 24rpx;
display: flex;
flex:1;
height:88rpx;
min-height:88rpx;
flex-direction: column;
justify-content: space-between;
}
.shop-mid-view-one{
margin:0 24rpx;
display: flex;
flex:1;
height:88rpx;
min-height:88rpx;
flex-direction: column;
justify-content: center;
}
image{
width:88rpx;
min-width:88rpx;
height:88rpx;
}
}
.shop-mid-view {
margin-left: 24rpx;
display: flex;
flex: 1;
height: 88rpx;
min-height: 88rpx;
// flex-direction: column;
align-items: center;
justify-content: space-between;
}
.shop-mid-view-one {
margin: 0 24rpx;
display: flex;
flex: 1;
height: 88rpx;
min-height: 88rpx;
flex-direction: column;
justify-content: center;
}
image {
width: 88rpx;
min-width: 88rpx;
height: 88rpx;
}
}
</style> </style>
@@ -1,212 +1,225 @@
<template> <template>
<u-popup :show="itemShow" mode="bottom" bgColor="transparent"> <u-popup :show="itemShow" mode="bottom" bgColor="transparent">
<view class="select-item"> <view class="select-item">
<view class="select-head"> <view class="select-head">
<view></view> <view></view>
<text class="text-28 text-fu1">选择地址</text> <text class="text-28 text-fu1">选择地址</text>
<u-icon name="close" color="#333" size="16" @click="onClose"></u-icon> <u-icon name="close" color="#333" size="16" @click="onClose"></u-icon>
</view> </view>
<view class="item-mid-view" v-if="data.length"> <view class="item-mid-view" v-if="data.length">
<view class="item-mid-list" @click="onOk(item)" v-for="(item,index) in data" :key="item.id"> <view
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" style="min-width:88rpx;heihgt:88rpx;"></image> class="item-mid-list"
<view class="item-mid-li"> @click="onOk(item)"
<text class="text-32 text-zu1">BNB Smart Chain(BEP20)</text> v-for="(item, index) in data"
<text class="text-28 text-fu">{{item.addressOne}}</text> :key="item.id"
</view> >
</view> <image
</view> src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png"
<view class="item-mid-view-two" @click="onAdd" v-if="!data.length"> style="min-width: 88rpx; heihgt: 88rpx"
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png" class="no-data-black"></image> ></image>
<text class="text-28 text-fu mt-48">{{`请先绑定一个区块链账户,用于收款`}}</text> <view class="item-mid-li">
<view class="add-btn mt-48"> <text class="text-32 text-zu1">券商登记地址</text>
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png" style="margin-right:5rpx;"></image> <text class="text-28 text-fu">{{ item.addressOne }}</text>
<text class="text-32 text-zi text-bold" style="margin-left:5rpx;">添加</text> </view>
</view> </view>
</view> </view>
<!-- <view class="item-bottom-btn" v-if="data.length"> <view class="item-mid-view-two" @click="onAdd" v-if="!data.length">
<image
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/no_black_data.png"
class="no-data-black"
></image>
<text class="text-28 text-fu mt-48">{{
`请先绑定一个区块链账户,用于收款`
}}</text>
<view class="add-btn mt-48">
<image
src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/add.png"
style="margin-right: 5rpx"
></image>
<text class="text-32 text-zi text-bold" style="margin-left: 5rpx"
>添加</text
>
</view>
</view>
<!-- <view class="item-bottom-btn" v-if="data.length">
<MyBtn @ok="onOk" text="确定"></MyBtn> <MyBtn @ok="onOk" text="确定"></MyBtn>
</view> --> </view> -->
</view> </view>
</u-popup> </u-popup>
</template> </template>
<script> <script>
import MyBtn from "@/components/common/my-btn.vue";
import func from "@/utils/func.js";
export default {
data() {
return {
itemSelect: "",
};
},
components: { MyBtn },
props: {
itemShow: {
type: Boolean,
default: false,
},
itemData: {
type: Array,
default: [],
},
type: {
type: [Number, String],
default: "0",
},
},
computed: {
data() {
let tmp = [];
if (this.itemData && this.itemData.length) {
this.itemData.forEach((item) => {
console.log("item", item);
import MyBtn from '@/components/common/my-btn.vue' item.addressOne = "******" + item.account.slice(-4);
import func from '@/utils/func.js'; });
export default { tmp = this.itemData;
data() { }
return { return tmp || [];
itemSelect:'' },
} },
},
components: { MyBtn },
props:{
itemShow:{
type:Boolean,
default:false
},
itemData:{
type:Array,
default:[]
},
type:{
type:[Number,String],
default:'0'
}
},
computed:{
data(){
let tmp = [];
if(this.itemData && this.itemData.length){
this.itemData.forEach(item=>{
console.log('item',item)
item.addressOne = func.addressTurn(item.account,6);
})
tmp = this.itemData;
}
return tmp || [];
}
},
mounted(){ mounted() {},
}, methods: {
methods: { onOk(item) {
onOk(item){ this.$emit("ok", item);
this.$emit('ok',item); },
}, onAdd() {
onAdd(){ this.$emit("add");
this.$emit('add'); },
}, onClose() {
onClose(){ this.$emit("close");
this.$emit('close'); },
} },
} };
}
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.add-btn{ .add-btn {
width:100%; width: 100%;
height:72rpx; height: 72rpx;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border:2rpx solid #7934f6; border: 2rpx solid #7934f6;
border-radius: 8rpx; border-radius: 8rpx;
image{ image {
width:32rpx; width: 32rpx;
height:32rpx; height: 32rpx;
} }
} }
.select-item{ .select-item {
width:100%; width: 100%;
min-height:724rpx; min-height: 724rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding: 0 32rpx 24rpx; padding: 0 32rpx 24rpx;
box-sizing: border-box; box-sizing: border-box;
background-color: #fff; background-color: #fff;
border-radius: 24rpx 24rpx 0 0; border-radius: 24rpx 24rpx 0 0;
.item-bottom-btn{ .item-bottom-btn {
width:100%; width: 100%;
margin-top:24rpx; margin-top: 24rpx;
min-height:88rpx; min-height: 88rpx;
display: flex; display: flex;
} }
.item-mid-view-two{ .item-mid-view-two {
width:100%; width: 100%;
height:564rpx; height: 564rpx;
min-height:564rpx; min-height: 564rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
.no-data-black{ .no-data-black {
width:120rpx; width: 120rpx;
height:120rpx; height: 120rpx;
margin-top:120rpx; margin-top: 120rpx;
} }
.add-btn{ .add-btn {
width:248rpx; width: 248rpx;
height:72rpx; height: 72rpx;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border:2rpx solid #7934f6; border: 2rpx solid #7934f6;
border-radius: 12rpx; border-radius: 12rpx;
image{ image {
width:32rpx; width: 32rpx;
height:32rpx; height: 32rpx;
} }
} }
}
} .item-mid-view {
.item-mid-view{ width: 100%;
width:100%; height: 564rpx;
height:564rpx; min-height: 564rpx;
min-height:564rpx; display: flex;
display: flex; flex-direction: column;
flex-direction: column; align-items: center;
align-items: center; overflow-y: auto;
overflow-y: auto; .item-mid-list {
.item-mid-list{ display: flex;
display: flex; flex-direction: row;
flex-direction: row; width: 98%;
width:98%; height: 152rpx;
height:152rpx; min-height: 152rpx;
min-height:152rpx; border-radius: 8rpx;
border-radius: 8rpx; margin-top: 24rpx;
margin-top:24rpx; background: #ffffff;
background: #FFFFFF; border: 1px solid #e3e3e3;
border: 1px solid #E3E3E3; padding: 32rpx;
padding: 32rpx; box-sizing: border-box;
box-sizing: border-box; position: relative;
position: relative; .item-mid-li {
.item-mid-li{ margin-left: 24rpx;
margin-left:24rpx; flex: 1;
flex:1; display: flex;
display: flex; flex-direction: column;
flex-direction: column; justify-content: space-between;
justify-content: space-between; height: 88rpx;
height:88rpx; }
} .show-item-left {
.show-item-left{ display: flex;
display: flex; flex-direction: column;
flex-direction: column; height: 88rpx;
height:88rpx; min-height: 88rpx;
min-height:88rpx; margin-left: 24rpx;
margin-left:24rpx; }
.item-right-btn {
} display: flex;
.item-right-btn{ align-items: center;
display: flex; justify-content: center;
align-items: center; background-color: #f3f3f3;
justify-content: center; border-radius: 24rpx;
background-color: #f3f3f3; position: absolute;
border-radius: 24rpx; right: 28rpx;
position: absolute; }
right:28rpx; image {
} width: 88rpx;
image{ height: 88rpx;
width:88rpx; border-radius: 44rpx;
height:88rpx; }
border-radius: 44rpx; }
} }
.select-head {
} width: 100%;
height: 88rpx;
} min-height: 88rpx;
.select-head{ display: flex;
width:100%; flex-direction: row;
height:88rpx; justify-content: space-between;
min-height:88rpx; align-items: center;
display: flex; }
flex-direction: row; }
justify-content: space-between;
align-items: center;
}
}
</style> </style>
@@ -9,8 +9,8 @@
<view class="select-box" @click="onOk(0)"> <view class="select-box" @click="onOk(0)">
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/shu_0.png"></image> <image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/shu_0.png"></image>
<view class="select-box-one"> <view class="select-box-one">
<text class="text-32 text-zu1">区块链数字积分</text> <text class="text-32 text-zu1">券商地址登记</text>
<text class="text-26 text-fu1">通过区块链兑换</text> <text class="text-26 text-fu1">通过券商兑换</text>
</view> </view>
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon> <u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
</view> </view>
+6 -6
View File
@@ -1,13 +1,13 @@
<template> <template>
<view class="content"> <view class="content">
<TopSafe bgColor="#fff"></TopSafe> <TopSafe bgColor="#fff"></TopSafe>
<Header bgColor="#fff" title="兑换区块链数字积分" > <Header bgColor="#fff" title="兑换数字积分" >
<template v-slot:right> <template v-slot:right>
<text class="text-32 text-zi" @click="onRight">记录</text> <text class="text-32 text-zi" @click="onRight">记录</text>
</template> </template>
</Header> </Header>
<view class="setting-view"> <view class="setting-view">
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换地址</text> <text class="text-32 text-fu" style="margin:54rpx 0 32rpx">券商登记地址</text>
<view class="input-box"> <view class="input-box">
<input style="flex:1" <input style="flex:1"
placeholder="请输入或选择地址" placeholder="请输入或选择地址"
@@ -16,11 +16,11 @@
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/right_icon.png" class="right-img" @click="onSelectAddress"></image> <image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/right_icon.png" class="right-img" @click="onSelectAddress"></image>
</view> </view>
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">主网络</text> <!-- <text class="text-32 text-fu" style="margin:54rpx 0 32rpx">主网络</text>
<view class="input-box" style="marign-top:32rpx"> <view class="input-box" style="marign-top:32rpx">
<text class="text-32" :style="{color:inputTwo ? '#333' : '#C1C5C9'}">{{inputTwo ? inputTwo : '请选择网络'}}</text> <text class="text-32" :style="{color:inputTwo ? '#333' : '#C1C5C9'}">{{inputTwo ? inputTwo : '请选择网络'}}</text>
<u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon> <u-icon name="arrow-right" color="#999" size="14" class="select-icon"></u-icon>
</view> </view> -->
<text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换金额 <text class="text-32 text-fu" style="margin:54rpx 0 32rpx">兑换金额
<text class="text-zi" @click="jumpSettingPwd">《共享计划终止协议》</text> <text class="text-zi" @click="jumpSettingPwd">《共享计划终止协议》</text>
@@ -48,10 +48,10 @@
</view> </view>
</view> </view>
<view class="bottom-btn"> <view class="bottom-btn">
<view class="bottom-top"> <!-- <view class="bottom-top">
<image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/icon.png"></image> <image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/new/icon.png"></image>
<text class="text-24 text-zi">为了保障用户体验感,额外赠送0.0001主网gas</text> <text class="text-24 text-zi">为了保障用户体验感,额外赠送0.0001主网gas</text>
</view> </view> -->
<view class="bottom-view"> <view class="bottom-view">
<view class="bottom-left"> <view class="bottom-left">
<text class="text-24 text-fu1">到账数量</text> <text class="text-24 text-fu1">到账数量</text>
+6
View File
@@ -90,6 +90,12 @@
<text class="text-64 text-zu1 ">{{curData.totalProfitSharing || 0}}</text> <text class="text-64 text-zu1 ">{{curData.totalProfitSharing || 0}}</text>
</text> </text>
</view> </view>
<view class="top-head-1" v-if="curTopTwo == 1">
<text class="text-32 text-zu1 text-bold">利润</text>
<text class="text-48 text-zu1 text-bold">¥
<text class="text-64 text-zu1 ">{{curData.profitAmount || 0}}</text>
</text>
</view>
<view class="top-line"></view> <view class="top-line"></view>
<view class="top-head"> <view class="top-head">
<text class="text-32 text-zu1 text-bold">商城分配数据</text> <text class="text-32 text-zu1 text-bold">商城分配数据</text>
+349 -190
View File
@@ -1,211 +1,370 @@
<template> <template>
<view class="content top-view"> <view class="content top-view">
<TopSafe bgColor="rgba(0,0,0,0)"></TopSafe> <TopSafe bgColor="rgba(0,0,0,0)"></TopSafe>
<Header bgColor="rgba(0,0,0,0)" color="#fff" title="数字积分兑换" style="min-height:88rpx;" /> <Header
<view class="top-panel"> bgColor="rgba(0,0,0,0)"
color="#fff"
<text class="text-24 text-white" style="margin-top:24rpx">股东行权</text> title="数字积分兑换"
<text class="text-88 text-white text-bold" style="margin-top:24rpx">{{ curData ? curData.curAmount : 0 }} style="min-height: 88rpx"
<text class="text-44 text-white">数字积分(TBC)</text> />
</text> <view class="top-panel">
<view class="btn-view"> <text class="text-24 text-white" style="margin-top: 24rpx">股东行权</text>
<view class="left-btn" @click="onLeft"> <text class="text-88 text-white text-bold" style="margin-top: 24rpx"
<up-image src="/static/rwa/tx.png" style="margin-right:5rpx;margin-top:2rpx" width="18" height="18" bgColor="#f1f6ff00" /> >{{ curData ? curData.curAmount : 0 }}
<text class="text-zi text-32" style="margin-left:5rpx;line-height: 1.2;">兑换</text> <text class="text-44 text-white">数字积分(TBC)</text>
</view> </text>
<view class="right-btn" @click="onRight"> <view class="btn-view">
<up-image src="/static/rwa/jl.png" style="margin-right:5rpx;margin-top:2rpx" width="18" height="18" bgColor="#f1f6ff00" /> <view class="left-btn" @click="onLeft">
<text class="text-white text-32" style="margin-left:5rpx;line-height: 1.2;">记录</text> <up-image
</view> src="/static/rwa/tx.png"
</view> style="margin-right: 5rpx; margin-top: 2rpx"
</view> width="18"
<view class="bottom-panel"> height="18"
<view class="bottom-head-view"> bgColor="#f1f6ff00"
<text class="text-32 text-bold text-zu1">股东账户</text> />
</view> <text
<view class="bottom-list"> class="text-zi text-32"
<view class="list-box" v-if="dataList.length"> style="margin-left: 5rpx; line-height: 1.2"
<AccountItemTwo :dataItem="item" @jie="onJie" >兑换</text
v-for="(item,index) in dataList" :key="index"></AccountItemTwo> >
</view> </view>
<view class="no-box" v-else> <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
>
</view>
</view>
</view>
<view class="bottom-panel">
<view class="bottom-head-view">
<text class="text-32 text-bold text-zu1">股东账户</text>
</view>
<view class="bottom-list">
<view class="list-box" v-if="dataList.length">
<AccountItemTwo
:dataItem="item"
@jie="onJie"
@select="onSelect"
v-for="(item, index) in dataList"
:key="index"
></AccountItemTwo>
</view>
<view class="add-address" @click="onAdd">
<up-image
src="/static/rwa/add.png"
style="margin-right: 5rpx; margin-top: 2rpx"
width="12"
height="12"
bgColor="#f1f6ff00"
/>
<text
class="text-zi text-32"
style="margin-left: 5rpx; line-height: 1.2"
>券商登记地址</text
>
</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" <up-image src="https://cex-pub.s3.ap-southeast-1.amazonaws.com/static/kzt.png" width="100" height="100"
bgColor="#f1f6ff00"></up-image> bgColor="#f1f6ff00"></up-image>
<text class="text-32 text-fu1" style="margin-top:32rpx">暂无账户数据~</text> <text class="text-32 text-fu1" style="margin-top:32rpx">暂无账户数据~</text>
</view> </view> -->
</view> </view>
</view> </view>
<ShuTips :itemShow="tipsShow" @close="onClose" @ok="onOk"></ShuTips> <ShuTips :itemShow="tipsShow" @close="onClose" @ok="onOk"></ShuTips>
<up-toast ref="uToastRef"></up-toast> <up-toast ref="uToastRef"></up-toast>
</view>
<u-popup :show="addAddressShow" mode="bottom" bgColor="transparent">
<view class="add-address-item">
<view class="select-head">
<view></view>
<text class="text-28 text-fu1">复制地址</text>
<u-icon
name="close"
color="#333"
size="16"
@click="addAddressShow = false"
></u-icon>
</view>
<view class="select-box" @click="copyData(selectAddress.address)">
<view class="select-box-one"> {{ selectAddress.address }} </view>
<up-image
src="/static/common/copy.png"
width="17"
height="17"
bgColor="#f1f6ff00"
style="margin-top: 8rpx"
></up-image>
</view>
<view class="add-address-tip">
<up-image
src="/static/common/tips.png"
width="16"
height="16"
bgColor="#f1f6ff00"
style="margin-right: 8rpx"
/>
复制链接到浏览器修改!
</view>
</view>
</u-popup>
</view>
</template> </template>
<script> <script>
import {
import { getExchUsers,unbindExchUsers,getAcctBalance } from '@/api/finance.js'; getExchUsers,
import { formatDate } from '@/utils/index.js'; unbindExchUsers,
import TopSafe from '@/components/common/top-safe.nvue' getAcctBalance,
import Header from '@/components/common/header.vue'; } from "@/api/finance.js";
import ShuTips from '@/pages/rwa_package/account/components/shu-tips.vue'; import { copyData } from "@/utils/index.js";
import AccountItemTwo from '@/pages/rwa_package/account/components/account-item-two.vue' import { TOKEN_NAME, getStorageFun } from "@/utils/auth.js";
import TopSafe from "@/components/common/top-safe.nvue";
import Header from "@/components/common/header.vue";
import ShuTips from "@/pages/rwa_package/account/components/shu-tips.vue";
import AccountItemTwo from "@/pages/rwa_package/account/components/account-item-two.vue";
export default { export default {
components: { Header, TopSafe,ShuTips,AccountItemTwo }, components: { Header, TopSafe, ShuTips, AccountItemTwo },
data() { data() {
return { return {
dataList:[], dataList: [],
tipsShow:false, tipsShow: false,
curData:null curData: null,
}; addAddressShow: false,
}, selectAddress: {
onLoad(option) { address: `https://taddr.alpha-group.top?token=${getStorageFun(
TOKEN_NAME
)}`,
},
};
},
onLoad(option) {},
onShow() {
this.acctBalance();
this.exchUsers();
},
methods: {
copyData,
exchUsers() {
getExchUsers({ name: "WALLET" }).then((res) => {
if (res && res.bizcode === 100) {
this.dataList = res.data.entitys ? res.data.entitys : [];
}
});
},
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();
onShow(){ }
this.acctBalance(); });
this.exchUsers() },
}, onRight() {
methods: { uni.navigateTo({
exchUsers(){ url: "/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=rwa",
getExchUsers({name:'WALLET'}).then(res=>{ });
if (res && res.bizcode === 100) { },
this.dataList = res.data.entitys ? res.data.entitys : []; onLeft() {
} this.tipsShow = true;
}) },
}, onClose() {
onJie(item){ this.tipsShow = false;
let params = { },
accountId:item.id onOk(index) {
} if (index == 0) {
unbindExchUsers(params).then(resp=>{ uni.navigateTo({
if (resp && resp.bizcode === 100) { url: "/pages/rwa_package/account/shu",
this.$refs.uToastRef.show({ });
type: 'success', } else if (index == 1) {
message: '解绑成功', uni.navigateTo({
}); url: "/pages/rwa_package/rwa_withdrawal/rwa_withdrawal",
});
this.exchUsers() }
} this.onClose();
}) },
}, acctBalance() {
onRight(){ getAcctBalance().then((resp) => {
uni.navigateTo({ if (resp && resp.bizcode === 100) {
url: '/pages/rwa_package/rwa_withdrawal_log/rwa_withdrawal_log?back=rwa', this.curData = null;
}) resp.data.forEach((item) => {
}, if (item.categoty == "vcoin") {
onLeft(){ this.curData = item;
this.tipsShow = true; }
}, });
onClose(){ }
this.tipsShow = false; });
}, },
onOk(index){ onAdd() {
if(index == 0){ this.addAddressShow = true;
uni.navigateTo({ },
url: '/pages/rwa_package/account/shu', onSelect(item) {
}) // this.selectAddress = item;
}else if(index == 1){ // this.addAddressShow = true;
uni.navigateTo({ },
url: '/pages/rwa_package/rwa_withdrawal/rwa_withdrawal', },
}) };
}
this.onClose();
},
acctBalance() {
getAcctBalance().then(resp=>{
if (resp && resp.bizcode === 100) {
this.curData = null;
resp.data.forEach(item=>{
if(item.categoty == 'vcoin'){
this.curData = item;
}
})
}
});
},
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.top-view{ .top-view {
background: linear-gradient(90deg, $app-zt-color, #AE61FA); background: linear-gradient(90deg, $app-zt-color, #ae61fa);
.bottom-panel{ .bottom-panel {
width:100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height:calc(100vh - 418rpx - 32rpx - var(--status-bar-height)); height: calc(100vh - 418rpx - 32rpx - var(--status-bar-height));
background-color: #fff; background-color: #fff;
border-radius: 24rpx 24rpx 0 0; border-radius: 24rpx 24rpx 0 0;
padding: 0 32rpx 32rpx; padding: 0 32rpx 32rpx;
margin-top:32rpx; margin-top: 32rpx;
box-sizing: border-box; box-sizing: border-box;
.bottom-head-view{ .bottom-head-view {
width:100%; width: 100%;
height:88rpx; height: 88rpx;
min-height:88rpx; min-height: 88rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
}
.bottom-list {
width: 100%;
height: calc(100% - 88rpx);
overflow-y: auto;
display: flex;
flex-direction: column;
.no-box {
width: 100%;
margin-top: 100rpx;
display: flex;
flex-direction: column;
align-items: center;
}
}
.add-address {
display: flex;
justify-content: center;
align-items: center;
border-radius: 12rpx;
border: 1px solid #e3e3e3;
color: #7934f6;
font-size: 28rpx;
height: 120rpx;
margin-top: 26rpx;
}
}
.top-panel {
width: 100%;
display: flex;
flex-direction: column;
min-height: calc(330rpx + var(--status-bar-height));
padding: 0 32rpx;
box-sizing: border-box;
} .btn-view {
.bottom-list{ width: 100%;
width:100%; height: 88rpx;
height:calc(100% - 88rpx); min-height: 88rpx;
overflow-y: auto; margin-top: 32rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: row;
.no-box{ justify-content: space-between;
width:100%; .left-btn {
margin-top:100rpx; width: 48%;
display: flex; height: 100%;
flex-direction: column; background-color: #fff;
align-items: center; 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;
}
}
}
}
} .add-address-item {
} width: 100%;
min-height: 588rpx;
display: flex;
flex-direction: column;
align-items: center;
padding: 0 32rpx 24rpx;
box-sizing: border-box;
background-color: #fff;
border-radius: 24rpx 24rpx 0 0;
.select-box {
width: 100%;
height: 80rpx;
background: rgba(121, 52, 246, 0.05);
border-radius: 16rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 32rpx;
box-sizing: border-box;
margin-top: 32rpx;
position: relative;
font-size: 28rpx;
color: #7934f6;
.top-panel{ .select-icon {
width:100%; position: absolute;
display: flex; right: 28rpx;
flex-direction: column; }
min-height:calc(330rpx + var(--status-bar-height));
padding: 0 32rpx;
box-sizing: border-box;
.btn-view{ .select-box-one {
width:100%; overflow: hidden; /* 1. 超出隐藏 */
height:88rpx; white-space: nowrap; /* 2. 不换行 */
min-height:88rpx; text-overflow: ellipsis; /* 3. 省略号 */
margin-top:32rpx; width: 590rpx;
display: flex; }
flex-direction: row; }
justify-content: space-between;
.left-btn{ .add-address-tip {
width:48%; width: 100%;
height:100%; display: flex;
background-color: #fff; font-size: 24rpx;
align-items: center; color: #666;
justify-content: center; margin-top: 24rpx;
display: flex; }
border-radius: 16rpx; .select-head {
} width: 100%;
.right-btn{ height: 88rpx;
width:48%; min-height: 88rpx;
height:100%; display: flex;
background-color: rgba(0,0,0,0); flex-direction: row;
border:2rpx solid #fff; justify-content: space-between;
box-sizing: border-box; align-items: center;
align-items: center; }
justify-content: center;
display: flex;
border-radius: 16rpx;
}
}
}
} }
</style> </style>
@@ -102,7 +102,8 @@ export default {
this.logList = [...this.logList, ...newData]; // 将新数据添加到列表中 this.logList = [...this.logList, ...newData]; // 将新数据添加到列表中
this.logList.forEach(item=>{ this.logList.forEach(item=>{
if(item.name == 'WALLET'){ if(item.name == 'WALLET'){
item.account = func.addressTurn(item.account,6) item.account = "******" + item.account.slice(-4);
// item.account = func.addressTurn(item.account,6)
} }
}) })
this.form.page++; // 页码加1 this.form.page++; // 页码加1
+4 -4
View File
@@ -2,11 +2,11 @@
// export const BASE_URL="http://cl55un59859.vicp.fun:24346"; // 测试环境 // export const BASE_URL="http://cl55un59859.vicp.fun:24346"; // 测试环境
export const BASE_URL = "https://api.tbmall.xin"; //生产 // export const BASE_URL = "https://api.tbmall.xin"; //生产
export const MILD_BASE_URL = "https://agent.tbmall.xin/"; //中台生产 // export const MILD_BASE_URL = "https://agent.tbmall.xin/"; //中台生产
// export const BASE_URL ='https://api.o.tbmall.xin'; // 本地测试 export const BASE_URL ='https://api.o.tbmall.xin'; // 本地测试
// export const MILD_BASE_URL = "https://agent.o.tbmall.xin/"; //中台测试 export const MILD_BASE_URL = "https://agent.o.tbmall.xin/"; //中台测试
export const SHARE_URL = 'https://h.tbmall.xin'; export const SHARE_URL = 'https://h.tbmall.xin';