caiyunyi/pages/useConfig/balanceManage.vue
ylj20011123 a7889afd5c update
2025-07-14 12:13:50 +08:00

608 lines
22 KiB
Vue

<template>
<view class="main">
<view class="pageTop"></view>
<view class="content">
<view class="contentTop">
<view class="contentTopLeft">
<view class="contentTopLeftLabel">我的余额</view>
<view class="contentTopLeftValue">{{ currentPoint || 0 }}</view>
</view>
</view>
<view class="contentBottom">
<view class="tabBox">
<view v-for="(item, index) in tabList" :key="index" class="tabItem"
@click="handleChangeTab(item.value)">
<text :class="item.value === selectTab ? 'tabText selectTabText' : 'tabText'">{{ item.label ||
'' }}</text>
</view>
</view>
<scroll-view scroll-y class="listBox">
<view class="listItem" v-for="(item, index) in showList" :key="index">
<view class="listItemSum">
<view class="listItemLeft">
{{ item.label }}
</view>
<view class="listItemRight">
<text class="listItemRightLabel" v-if="selectTab !== 2">获取积分</text>
<text class="listItemRightPoint" v-if="selectTab !== 2"
:style="{ marginRight: selectTab === 0 ? '10rpx' : '' }">+{{ item.obtain }}</text>
<text class="listItemRightLabel" v-if="selectTab !== 1">消耗积分</text>
<text class="listItemRightPoint" v-if="selectTab !== 1">{{ item.consume }}</text>
</view>
</view>
<view class="childrenBox">
<view class="childrenItem" v-for="(subItem, subIndex) in item.children" :key="subIndex">
<view class="childrenItemLeft">
<view class="childrenItemLeftLabel">{{ subItem.SERVERPART_NAME + subItem.SHOPNAME }}
</view>
<view class="childrenItemLeftTime">{{ subItem.OPERATE_DATE }}</view>
</view>
<view class="childrenItemRight">
<text class="childrenItemRightValue">{{ subItem.POINT_TYPE * subItem.CURRENT_POINT
> 0 ? '+' : subItem.POINT_TYPE * subItem.CURRENT_POINT < 0 ? '-' : '' }}{{
subItem.POINT_TYPE * subItem.CURRENT_POINT }}</text>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
<!-- <view class="main">
<view class="mainTopBox">
<view class="mainTop">
<view class="mainTopLeft">
<view class="mainTopHeaderImg">
<image class="headerImg" :src="user.MEMBERSHIP_HEADIMAGEURL || ''" />
</view>
<view class="mainTopLeftMessage">
<view class="mainTopMessageUserBox">
<view class="mainTopMessageUserName">{{ user.MEMBERSHIP_NAME || '' }}</view>
<view class="mainTopMessageUserLevelBox">
<image class="mainTopMessageUserLevelIcon"
src="https://eshangtech.com/caiyunyiImg/levelIcon.png" />
<view class="mainTopMessageUserLevelText">{{ user.MEMBERSHIP_LEVEL_TEXT || '' }}</view>
</view>
</view>
</view>
</view>
<view class="mianTopRight" @click="handleGoCode">
<image class="userCodeImg" src="https://eshangtech.com/caiyunyiImg/userCodeImg.png" />
<view class="userCodeText">会员码</view>
</view>
</view>
<view class="mainBottom">
<view class="mainBottomLabel">我的余额</view>
<view class="mainBottomValueBox">
<view class="mainBottomValueUnit">¥</view>
<view class="mainBottomValue">{{ user.ACCOUNT_BALANCE || "0" }}</view>
</view>
</view>
</view>
<view class="mainBalanceList">
<view class="mainBalanceTabBox">
<view :class="selectTab === 1 ? 'mainBalanceTabItem selectMainBalanceTabItem' : 'mainBalanceTabItem '"
@click="handleChangeTab(1)">
充值记录
</view>
<view :class="selectTab === 2 ? 'mainBalanceTabItem selectMainBalanceTabItem' : 'mainBalanceTabItem '"
@click="handleChangeTab(2)">
提现记录
</view>
</view>
</view>
</view> -->
</template>
<script>
import { mapGetters } from "vuex";
export default {
data() {
return {
selectTab: 1,
tabList: [{ label: "获取明细", value: 1 }, { label: "消耗明细", value: 2 }],
}
},
computed: {
...mapGetters({
user: "user",
})
},
onLoad() {
console.log('user', JSON.parse(JSON.stringify(this.user)));
},
methods: {
handleChangeTab(value) {
this.selectTab = value
},
handleGoCode() {
uni.navigateTo({
url: "/pages/payfor/index",
});
}
}
}
</script>
<style lang="less" scoped>
.main {
width: 100vw;
height: 100vh;
.pageTop {
width: 100%;
height: 476rpx;
background-image: url('https://eshangtech.com/caiyunyiImg/pointsBg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
}
.content {
width: 100%;
height: calc(100vh - 112rpx);
transform: translateY(-364rpx);
.contentTop {
width: calc(100% - 96rpx);
height: 162rpx;
margin-left: 48rpx;
background-image: url('https://eshangtech.com/caiyunyiImg/pointContentBg.png');
background-size: 100% 100%;
background-repeat: no-repeat;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0 22rpx 26rpx;
.contentTopLeft {
display: flex;
align-items: center;
.contentTopLeftLabel {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 32rpx;
color: #FFFFFF;
line-height: 44rpx;
text-align: right;
font-style: normal;
}
.contentTopLeftValue {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 50rpx;
color: #FFFFFF;
line-height: 72rpx;
text-align: right;
font-style: normal;
margin-left: 6rpx;
}
}
.contentTopRight {
display: flex;
align-items: center;
.contentTopRightLabel {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 26rpx;
color: #FFFFFF;
line-height: 36rpx;
text-align: right;
font-style: normal;
}
.contentTopRightIcon {
width: 32rpx;
height: 32rpx;
margin-left: 6rpx;
}
}
}
.contentBottom {
width: 100%;
height: calc(100% - 162rpx + 26rpx);
background: #FFFFFF;
box-shadow: 0rpx -4rpx 16rpx 0rpx rgba(166, 90, 28, 0.15);
border-radius: 48rpx 48rpx 0rpx 0rpx;
transform: translateY(-26rpx);
.tabBox {
width: 100%;
height: 98rpx;
box-sizing: border-box;
display: flex;
align-items: flex-start;
justify-content: space-between;
border-bottom: 2rpx solid #CCCCCC;
padding: 26rpx 48rpx 0;
.tabItem {
width: calc(100% / 3);
height: 100%;
display: flex;
justify-content: center;
.tabText {
font-family: PingFangSC, PingFang SC;
font-weight: 400;
font-size: 32rpx;
color: rgba(0, 0, 0, 0.85);
line-height: 44rpx;
text-align: center;
font-style: normal;
display: inline-block;
}
.selectTabText {
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #1380FF;
line-height: 44rpx;
text-align: center;
font-style: normal;
position: relative;
}
.selectTabText::after {
content: "";
width: 100%;
height: 6rpx;
background: #117CFF;
border-radius: 6rpx;
bottom: 0;
left: 0;
position: absolute;
}
}
}
.listBox {
width: 100%;
height: calc(100% - 98rpx);
box-sizing: border-box;
padding: 32rpx 30rpx;
.listItem {
width: 100%;
margin-bottom: 16rpx;
.listItemSum {
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0 34rpx 30rpx 0;
border-bottom: 2rpx solid #F5F5F5;
.listItemLeft {
.listItemLeftMonth {
font-family: PingFang-SC, PingFang-SC;
font-weight: 600;
font-size: 30rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
text-transform: none;
}
}
.listItemRight {
.listItemRightLabel {
font-family: PingFang-SC, PingFang-SC;
font-weight: 400;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
text-transform: none;
}
.listItemRightPoint {
display: inline-block;
width: 100rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 32rpx;
color: #E9682B;
line-height: 44rpx;
text-align: right;
font-style: normal;
text-transform: none;
}
}
}
.childrenBox {
width: 100%;
.childrenItem {
width: 100%;
box-sizing: border-box;
padding: 20rpx 58rpx 20rpx 0;
border-bottom: 2rpx solid #F5F5F5;
display: flex;
align-items: center;
justify-content: space-between;
.childrenItemLeft {
.childrenItemLeftLabel {
font-family: PingFang-SC, PingFang-SC;
font-weight: 600;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: left;
font-style: normal;
text-transform: none;
}
.childrenItemLeftTime {
font-family: PingFang-SC, PingFang-SC;
font-weight: 500;
font-size: 20rpx;
color: #999999;
line-height: 28rpx;
text-align: left;
font-style: normal;
text-transform: none;
margin-top: 4rpx;
}
}
.childrenItemRight {
.childrenItemRightValue {
display: inline-block;
width: 120rpx;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
font-size: 28rpx;
color: #E9682B;
line-height: 40rpx;
text-align: right;
font-style: normal;
text-transform: none;
}
}
}
}
}
}
.listBox ::-webkit-scrollbar {
display: none;
}
}
}
// width: 100vw;
// height: 100vh;
// box-sizing: border-box;
// padding: 32rpx 30rpx;
// background-color: #F1F5F6;
// .mainTopBox {
// width: 100%;
// height: 320rpx;
// background-image: url('https://eshangtech.com/caiyunyiImg/balanceBg.png');
// background-size: 100% 100%;
// background-repeat: no-repeat;
// box-sizing: border-box;
// padding: 48rpx 32rpx 32rpx;
// .mainTop {
// width: 100%;
// display: flex;
// align-items: center;
// justify-content: space-between;
// .mainTopLeft {
// display: flex;
// width: calc(100% - 120rpx);
// .mainTopHeaderImg {
// width: 96rpx;
// height: 96rpx;
// .headerImg {
// width: 96rpx;
// height: 96rpx;
// border-radius: 50%;
// border: 1px solid #fff;
// }
// }
// .mainTopLeftMessage {
// width: calc(100% - 118rpx);
// margin-left: 22rpx;
// .mainTopMessageUserBox {
// width: 100%;
// display: flex;
// align-items: center;
// .mainTopMessageUserName {
// font-family: PingFangSC, PingFang SC;
// font-weight: 600;
// font-size: 40rpx;
// color: #F3E6B3;
// line-height: 56rpx;
// text-align: left;
// font-style: normal;
// display: inline-block;
// max-width: calc(100% - 170rpx);
// text-overflow: ellipsis;
// overflow: hidden;
// white-space: nowrap;
// }
// .mainTopMessageUserLevelBox {
// max-width: 170rpx;
// display: flex;
// align-items: center;
// background-color: #515050;
// padding: 4rpx 18rpx;
// border-radius: 32rpx;
// margin-left: 16rpx;
// .mainTopMessageUserLevelIcon {
// width: 24rpx;
// height: 24rpx;
// margin-right: 10rpx;
// }
// .mainTopMessageUserLevelText {
// font-family: PingFangSC, PingFang SC;
// font-weight: 500;
// font-size: 24rpx;
// color: #F4DA7F;
// line-height: 34rpx;
// text-align: left;
// font-style: normal;
// text-transform: none;
// display: inline-block;
// width: calc(100% - 34rpx);
// text-overflow: ellipsis;
// overflow: hidden;
// white-space: nowrap;
// }
// }
// }
// }
// }
// .mianTopRight {
// width: 96rpx;
// display: flex;
// flex-direction: column;
// align-items: center;
// .userCodeImg {
// width: 46rpx;
// height: 46rpx;
// margin-bottom: 10rpx;
// }
// .userCodeText {
// font-family: PingFangSC, PingFang SC;
// font-weight: 400;
// font-size: 24rpx;
// color: #F3E6B3;
// line-height: 34rpx;
// text-align: left;
// font-style: normal;
// }
// }
// }
// .mainBottom {
// width: 100%;
// margin-top: 36rpx;
// .mainBottomLabel {
// font-family: PingFangSC, PingFang SC;
// font-weight: 400;
// font-size: 32rpx;
// color: #F3E6B3;
// line-height: 44rpx;
// text-align: left;
// font-style: normal;
// }
// .mainBottomValueBox {
// display: flex;
// align-items: flex-end;
// margin-top: 12rpx;
// .mainBottomValueUnit {
// font-family: PingFangSC, PingFang SC;
// font-weight: 600;
// font-size: 28rpx;
// color: #F3E6B3;
// line-height: 40rpx;
// text-align: left;
// font-style: normal;
// }
// .mainBottomValue {
// font-family: PingFangSC, PingFang SC;
// font-weight: 600;
// font-size: 40rpx;
// color: #F3E6B3;
// line-height: 48rpx;
// text-align: left;
// font-style: normal;
// margin-left: 4rpx;
// }
// }
// }
// }
// .mainBalanceList {
// width: 100%;
// height: calc(100vh - 400rpx);
// margin-top: 20rpx;
// background: #FFFFFF;
// border-radius: 16rpx;
// .mainBalanceTabBox {
// width: 100%;
// height: 94rpx;
// border-bottom: 2rpx solid #CCCCCC;
// display: flex;
// align-items: center;
// justify-content: space-around;
// .mainBalanceTabItem {
// font-family: PingFangSC, PingFang SC;
// font-weight: 400;
// font-size: 32rpx;
// color: rgba(0, 0, 0, 0.85);
// line-height: 44rpx;
// text-align: left;
// font-style: normal;
// }
// .selectMainBalanceTabItem {
// font-family: PingFangSC, PingFang SC;
// font-weight: 600;
// font-size: 32rpx;
// color: #333333;
// line-height: 44rpx;
// text-align: left;
// font-style: normal;
// position: relative;
// }
// .selectMainBalanceTabItem ::after {
// content: "";
// width: 100%;
// height: 6rpx;
// background: #51A0FF;
// border-radius: 6rpx;
// position: absolute;
// left: 0;
// bottom: 0;
// }
// }
// }
}
</style>