Files
ysdH5/pages/account/myBalance.vue
2023-06-21 17:19:58 +08:00

299 lines
8.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view>
<view class="balance">
<image class="balanceBack" src="https://card.ysd-bs.com/storage/materials/2021/09/01/balance-back.png" mode="widthFix"></image>
<view class="balanceCont">
<view class="balanceCont-name">余额积分</view>
<view class="balanceCont-number">
<text></text>{{ number }}
</view>
</view>
<navigator hover-class="none" url="/pages/account/myProfit" class="balanceUrl">我的收益<image src="/static/img/balance-icon-row.png" mode="aspectFill"></image></navigator>
</view>
<navigator hover-class="none" url="/pages/account/withdrawal_form" class="label">
<view class="labelLeft">
<image class="labelLeft-img" src="/static/img/balance-icon-00.png"></image>
<view class="labelLeft-name">提现</view>
</view>
<image class="labelLeft-arrow" src="/static/icon/rightsArrow.png"></image>
</navigator>
<navigator hover-class="none" :url="'/pages/account/withdrawal_record?status=' + '' + '&idx=0'" class="label">
<view class="labelLeft">
<image class="labelLeft-img" src="/static/img/balance-icon-01.png"></image>
<view class="labelLeft-name">提现记录</view>
</view>
<image class="labelLeft-arrow" src="/static/icon/rightsArrow.png"></image>
</navigator>
<!-- 收益订单列表 -->
<view class="record">
<view class="integra-cont-title">
<view class="record-title">收益订单列表</view>
</view>
<block v-if="accounts.length > 0">
<navigator hover-class="none" :url="'/pages/account/myBalance_list?id=' + item.order_id + '&type=' + item.order_type" class="record-list" v-for="(item, index) in accounts" :key="index">
<view class="accounts-title">{{ item.right }}</view>
<view class="accounts-user">
<image class="accounts-user-icon" src="/static/img/accountsIcon_00.png"></image>
<view class="accounts-user-name"><text>{{ item.user.nickname }}</text>{{ item.user.username }}</view>
</view>
<view class="accounts-user">
<image class="accounts-user-icon" src="/static/img/accountsIcon_01.png"></image>
<view class="accounts-user-name">{{ item.created_at }}</view>
</view>
<view class="accounts-more"><image src="/static/icon/arrow_tips.png"></image></view>
</navigator>
<view class="pagesLoding" v-if="lodingStats">
<block v-if="page.has_more">
<image class="pagesLoding-icon" src="/static/icon/refresh_loding.gif" mode="widthFix"></image>加载中...
</block>
<block v-else>
没有更多了~
</block>
</view>
</block>
<!-- 暂无内容 -->
<view class="recommend-hint" v-else>
<image src="/static/img/null_icon.png"></image>
<view>抱歉目前暂无内容~</view>
</view>
</view>
</view>
</template>
<script>
import { logs, profits } from '@/apis/interfaces/user'
export default {
data() {
return {
number : '', // 账户余额
accounts : '', // 账户列表
page: {
has_more: false
}, // 下一页
lodingStats: false // 数据加载完渲染
}
},
onLoad() {
// 获取余额数量
logs({
type : 'balance',
channel : '',
page : ''
}).then(res=>{
this.number = res.account.balance
})
},
onShow() {
// 获取账变记录
this.accountInfo();
},
methods: {
// 获取余额数量
accountInfo(page) {
profits({
page : page
}).then(res=>{
let newStores = this.accounts,
newData = []
if(page == 1 || page == undefined) newStores = []
newData = newStores.concat(res.data)
this.accounts = newData
this.page = res.page
this.lodingStats = false
uni.stopPullDownRefresh()
})
},
// 上拉加载
onReachBottom(){
this.lodingStats = true
let pageNumber = this.page.current
if(this.page.has_more){
pageNumber++
this.page = pageNumber
this.storesInfo('', pageNumber)
}
}
}
}
</script>
<style lang="scss" scoped>
/* 背景 */
.balance {
position: relative;
}
.balanceBack {
width: 100vw;
display: block;
}
.balanceCont {
position: absolute;
width: 100%;
left: 0;
top: 0;
text-align: center;
padding: 70rpx 0 0;
box-sizing: border-box;
}
.balanceCont-name {
color: #717171;
margin-bottom: 20rpx;
}
.balanceCont-number {
color: #ffd890;
font-size: 80rpx;
font-weight: 600;
}
.balanceCont-number text {
font-size: 50rpx;
padding-right: 10rpx;
}
.balanceUrl {
position: absolute;
right: 0;
top: 30rpx;
background-color: #37332d;
font-size: 28rpx;
border-radius: 40rpx 0 0 40rpx;
line-height: 68rpx;
border: 2rpx solid #887351;
padding-left: 30rpx;
color: #ead2a5;
display: flex;
}
.balanceUrl image {
width: 54rpx;
height: 54rpx;
margin-top: 9rpx;
}
/* 提现 */
.label {
background-color: white;
margin-bottom: 30rpx;
display: flex;
height: 100rpx;
line-height: 100rpx;
}
.labelLeft {
display: flex;
flex: 1;
}
.labelLeft-img {
width: 54rpx;
height: 54rpx;
margin: 23rpx 20rpx;
}
.labelLeft-arrow {
width: 44rpx;
height: 44rpx;
margin: 28rpx 0;
}
/* 账变记录 */
.record-title {
padding: 0 30rpx;
box-sizing: border-box;
color: #404040;
font-weight: 600;
font-size: 36rpx;
line-height: 60prx;
margin: 40rpx 0 30rpx;
flex: 1;
}
.record-list {
background-color: #ffffff;
margin-bottom: 50rpx;
padding: 0 30rpx 20rpx 30rpx;
box-sizing: border-box;
border-top: 2rpx solid #e9e9e9;
border-bottom: 2rpx solid #e9e9e9;
position: relative;
}
.accounts-more {
position: absolute;
bottom: -20rpx;
left: calc(50% - 40rpx);
width: 80rpx;
height: 40rpx;
text-align: center;
border-radius: 10rpx;
z-index: 9;
background-color: #ffffff;
border: #e9e9e9 2rpx solid;
}
.accounts-more image {
width: 28rpx;
height: 28rpx;
margin: 8rpx 26rpx;
}
.accounts-title {
position: relative;
padding: 30rpx 0 30rpx 35rpx;
}
.accounts-title::after {
position: absolute;
content: '';
left: 6rpx;
top: 37%;
width: 8rpx;
height: 30%;
background-color: #000000;
}
.accounts-user {
color: #838383;
display: flex;
border-top: 2rpx solid #f5f5f5;
padding: 30rpx 0;
}
.accounts-user text {
display: block;
margin-bottom: 20rpx;
}
.accounts-user-icon {
width: 36rpx;
height: 36rpx;
margin-right: 20rpx;
margin-top: 4rpx;
}
/* 暂无内容 */
.recommend-hint {
text-align: center;
color: #999;
padding: 100rpx 0;
}
.recommend-hint image {
width: 200rpx;
height: 200rpx;
border-radius: 50%;
margin-bottom: 20rpx;
}
</style>