Files
2025-04-30 14:04:34 +08:00

662 lines
17 KiB
Vue

<template>
<view class="page" :style="themeColor">
<view class="flex benben-position-layout flex flex-wrap align-center contributionDetails_flex_0"
:style="{height:(88+StatusBarRpx)+'rpx',paddingTop:StatusBarRpx+'rpx'}">
<view class='flex flex-wrap align-center justify-between flex-sub contributionDetails_fd0_0'>
<view class='flex flex-wrap align-center' @tap.stop="handleJumpDiy" data-type="back" data-url="1">
<text class='fu-iconfont2 contributionDetails_fd0_0_c0_c0' @tap.stop="handleJumpDiy"
data-type="back" data-url="1">&#xE794;</text>
</view>
<view class='flex flex-wrap align-stretch justify-center flex-sub'>
<text class='contributionDetails_fd0_0_c1_c0'>积分明细</text>
</view>
<view class='flex flex-wrap align-center contributionDetails_fd0_0_c2' @tap.stop="handleJumpDiy"
data-type="navigateTo" :data-url="`/pages/dl/agreementPolicy/agreementPolicy?type=22`">
<text class='fu-iconfont2 Withdrawals_fd1_2_c3'>&#xE600;</text>
</view>
</view>
</view>
<view :style="{height: (88+StatusBarRpx)+'rpx'}"></view>
<!---flex布局flex布局开始-->
<view class="flex flex-direction flex-wrap align-stretch benben-flex-layout contributionDetails_flex_1"
>
<view class='flex flex-direction align-start flex-sub contributionDetails_fd1_0'>
<view class='flex flex-wrap justify-center align-center point'>
<image :src='STATIC_URL+"point05.png"' style="width: 40rpx; height: 40rpx; margin-right: 10rpx;" mode="aspectFill"></image>
<text class='contributionDetails_fd1_0_c0_c0'>积分</text>
</view>
<view class='flex flex-wrap align-end contributionDetails_fd1_0_c1'>
<text class='contributionDetails_fd1_0_c1_c0'>当前</text>
<text class='contributionDetails_fd1_0_c1_c1'>{{freeze_score || 0}}</text>
<image @tap.stop="handleJumpDiy" data-type="navigateTo"
:data-url="`/pages/dl/agreementPolicy/agreementPolicy?type=23`" style="width: 36rpx; height: 36rpx; margin-left: 24rpx;" src="../static/dd_tips.png" mode="widthFix"></image>
</view>
</view>
</view>
<view v-if="false" class="flex benben-flex-layout flex-wrap align-center pointsDetails_flex_2">
<view>
<benben-flex-tabs class-name='pointsDetails_benbenTabsfd2_0' v-model="tabls" ref="benben_tabsfd2_0"
select-mark="benben_tabsfd2_0" key="benben_tabsfd2_0" :open-title-type='false' :open-sticky='false'
:top='0' :is-show-content='false' :scrollspy='false' :tabs-info.sync="tabsInfofd2_0">
<scroll-view @scroll="tabsInfofd2_0.scrollX = $event.detail.scrollLeft" id="benben_tabsfd2_0"
class="benben-tabs" style="width:750rpx" :scroll-x="true"
:scroll-left.sync="tabsInfofd2_0.moveX" scroll-with-animation="all .3s ease">
<view class="benben-tabs-content" id="benben_tabsfd2_0-content">
<view id="benben_tabsfd2_0-title"
class="benben-tabs-title flex flex align-center justify-around">
<view :class="{ 'checkTitlefd2_0': tabls == '1', 'flex flex-wrap align-center': true }"
@tap="tabClick(1)" :id="`benben_tabsfd2_0-title-item-${'1'}`">
<text>收入</text>
</view>
<view :class="{ 'checkTitlefd2_0': tabls == '2', 'flex flex-wrap align-center': true }"
@tap="tabClick(2)" :id="`benben_tabsfd2_0-title-item-${'2'}`">
<text>支出</text>
</view>
</view>
<view :style="{ left: tabsInfofd2_0.lineleft, maxWidth: tabsInfofd2_0.lineWidth }"
id="benben_tabsfd2_0-line"
class="benben-tabs-line flex benben-flex-tabs-line pointsDetails_linefd2_0"></view>
</view>
</scroll-view>
</benben-flex-tabs>
</view>
</view>
<!---flex布局flex布局结束-->
<fu-loading v-if="isShowLoading"></fu-loading>
<!---收入flex布局开始-->
<view class="flex flex-direction flex-wrap align-stretch benben-flex-layout contributionDetails_flex_2" v-if="lists.length>0">
<view class='flex flex-direction flex-wrap align-stretch flex-sub contributionDetails_fd2_0' v-for="(item,index) in lists" :key="index">
<view class='flex flex-wrap align-center justify-between'>
<view class='flex flex-wrap align-center'>
<image class='contributionDetails_fd2_0_c0_c0_c0' mode="aspectFill" :src='item.logo'>
</image>
<text class='contributionDetails_fd2_0_c0_c0_c1'>{{item.store_name}}</text>
</view>
<view class='flex flex-wrap align-center' v-if="item.order_sn" @tap.stop="handleJumpDiy"
data-type="navigateTo" :data-url="`/pages/dd/orderDetails/orderDetails?sn=${item.order_sn}`">
<text class='contributionDetails_fd2_0_c0_c1_c0'>{{item.remark}}</text>
</view>
<view class='flex flex-wrap align-center' v-else>
<text class='contributionDetails_fd2_0_c0_c1_c0'>{{item.remark}}</text>
</view>
</view>
<view class='flex flex-wrap align-center justify-between contributionDetails_fd2_0_c1'>
<view class='flex flex-wrap align-center'>
<image class='contributionDetails_fd2_0_c1_c0_c0' mode="aspectFill" :src='item.logo'>
</image>
</view>
<view class='flex flex-wrap align-center'>
<!-- <text class='contributionDetails_fd2_0_c1_c1_c0'>+</text> -->
<text class='contributionDetails_fd2_0_c1_c1_c1'>{{item.change_score}}</text>
</view>
</view>
<view class='flex flex-wrap align-center'>
<text class='contributionDetails_fd2_0_c2_c0'>{{item.create_time}}</text>
</view>
</view>
</view>
<!---收入flex布局结束-->
<!-- 空布局 start -->
<fu-empty-ui v-if="lists.length == 0 && isInit"></fu-empty-ui>
<!-- 空布局 end -->
<!-- 页面加载 start -->
<!-- 页面加载 end -->
<!-- 底部数据加载状态 start-->
<uni-load-more v-if="lists.length > 8" :status="status"></uni-load-more>
<!-- 底部数据加载状态 end-->
</view>
</template>
<script>
export default {
components: {},
data() {
return {
"tabsInfofd2_0": {
lineleft: '',
lineWidth: '',
moveX: 0,
scrollX: 0,
PageScrollX: 0
},
"tabls": "1",
freeze_score:"",
lists: [], //订单列表
page: 1, //页码说
size: 10, //一页显示几条数据
status: 'more', // 加载状态 more:有更多数据 noMore:已加载全部数据 loading:数据加载中
isInit: false, //是否已经初始化
};
},
computed: {
themeColor() {
return this.$store.getters.themeColor
},
},
watch: {},
onLoad(options) {
this.getOrderList(true)
},
onShow() {
this.post64893775ce02c()
},
onPullDownRefresh() {
this.page = 1;
this.status = 'more';
this.isShowLoading = false;
this.lists = [];
this.isInit = false;
this.getOrderList(true);
},
onReachBottom() {
this.getOrderList();
},
methods: {
tabClick(index) {
this.tabls = index;
this.page = 1;
this.status = 'more';
this.isShowLoading = false;
this.lists = [];
this.isInit = false;
this.getOrderList(true);
},
//账户余额信息
post64893775ce02c(){
this.$api
.post(global.apiUrls.post5c78c4772da97, {
user_id: (global.userInfo && global.userInfo.id) || 0
})
.then(res => {
console.log(res);
res = res.data;
if (res.code == 1) {
this.freeze_score= res.data.freeze_score;
}
uni.stopPullDownRefresh();
});
},
getOrderList(value) {
// this.isShow = false;
if (this.status != 'more') return;
this.status = 'loading';
let data = {
type: this.tabls,
page: this.page,
list_rows: this.size,
};
console.log('请求的数据', data);
if (this.page == 1 && value) {
this.isShowLoading = true;
}
this.$api
.post(global.apiUrls.getContributionList, data)
.then(res => {
console.log('抵用券明细', res);
this.isShowLoading = false;
if (res.data.code == 1) {
var curPageData = res.data.data.data;
let total = res.data.data.total;
if (this.page == 1) this.lists = [];
this.lists = this.lists.concat(curPageData);
if (this.lists.length < total) {
this.status = 'more';
this.page++;
} else {
this.status = 'noMore';
}
} else {
this.$message.info(res.data.msg);
}
this.isInit = true;
uni.stopPullDownRefresh();
})
.catch(err => {
this.isShowLoading = false;
uni.stopPullDownRefresh();
});
},
}
};
</script>
<style lang="scss" scoped>
.page {
width: 100vw;
overflow-x: hidden;
min-height: calc(100vh - var(--window-bottom));
background: rgba(246, 247, 249, 1);
background-size: 100% auto !important;
}
.point {
position: absolute;
left: 0;
top: 0;
width: 210rpx;
height: 66rpx;
background: url(https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/point03.png) no-repeat, transparent;
background-size: 100% 100% !important;
}
.contributionDetails_flex_0 {
background: #fff;
width: 750rpx;
height: 88rpx;
overflow: hidden;
z-index: 10;
top: 0rpx;
background-size: 100% auto !important;
}
.contributionDetails_fd0_0_c2 {
width: 32rpx;
height: 32rpx;
}
.contributionDetails_fd0_0_c1_c0 {
font-size: 36rpx;
font-weight: 600;
color: #333333;
line-height: 36rpx;
}
.contributionDetails_fd0_0_c0_c0 {
font-size: 32rpx;
font-weight: 500;
color: #333;
line-height: 88rpx;
}
.contributionDetails_fd0_0 {
margin: 0rpx 32rpx 0rpx 32rpx;
}
.contributionDetails_flex_1 {
position: relative;
background: rgba(203, 255, 247, 1);
background-size: 100% auto !important;
padding: 19rpx 32rpx 21rpx 32rpx;
width: 100%;
height: 370rpx;
}
.contributionDetails_fd1_0_c1_c1 {
color: #FFFFFF;
font-size: 48rpx;
font-weight: 700;
line-height: 42rpx;
margin: 0rpx 0rpx 0rpx 16rpx;
}
.contributionDetails_fd1_0_c1_c0 {
color: #FFFFFF;
font-size: 24rpx;
font-weight: 500;
line-height: 24rpx;
}
.contributionDetails_fd1_0_c1 {
// margin: 32rpx 0rpx 0rpx 0rpx;
}
.contributionDetails_fd1_0_c0_c0 {
color: #3695B7;
font-size: 32rpx;
font-weight: 500;
line-height: 42rpx;
}
.contributionDetails_fd1_0 {
position: absolute;
left: 32rpx;
bottom: -12rpx;
width: 686rpx;
height: 302rpx;
background: url(https://lvtai-files.oss-cn-beijing.aliyuncs.com/mini/point04.png) no-repeat, transparent;
background-size: 100% 100% !important;
padding: 116rpx 0rpx 110rpx 30rpx;
}
.contributionDetails_flex_2 {
background: rgba(246, 247, 249, 1);
padding: 24rpx 24rpx 0rpx 24rpx;
border-radius: 16rpx 16rpx 0rpx 0rpx;
margin: 0rpx 0rpx 0rpx 0rpx;
background-size: 100% auto !important;
position: relative;
}
.contributionDetails_fd2_1_c2_c0 {
color: #999999;
font-size: 28rpx;
font-weight: 400;
line-height: 42rpx;
}
.contributionDetails_fd2_1_c1_c1_c1 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.contributionDetails_fd2_1_c1_c1_c0 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.contributionDetails_fd2_1_c1_c0_c0 {
width: 120rpx;
height: 120rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
.contributionDetails_fd2_1_c1 {
margin: 40rpx 0rpx 57rpx 0rpx;
}
.contributionDetails_fd2_1_c0_c1_c0 {
color: #59A6F4;
font-size: 28rpx;
font-weight: 500;
line-height: 50rpx;
}
.contributionDetails_fd2_1_c0_c0_c1 {
color: #333333;
font-size: 32rpx;
font-weight: 500;
}
.contributionDetails_fd2_1_c0_c0_c0 {
width: 30rpx;
height: 28rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 16rpx 0rpx 0rpx;
}
.contributionDetails_fd2_1 {
background: rgba(255, 255, 255, 1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
background-size: 100% auto !important;
margin: 0rpx 0rpx 20rpx 0rpx;
padding: 41rpx 24rpx 24rpx 24rpx;
}
.contributionDetails_fd2_0_c2_c0 {
color: #999999;
font-size: 28rpx;
font-weight: 400;
line-height: 42rpx;
}
.contributionDetails_fd2_0_c1_c1_c1 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.contributionDetails_fd2_0_c1_c1_c0 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.contributionDetails_fd2_0_c1_c0_c0 {
width: 120rpx;
height: 120rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
.contributionDetails_fd2_0_c1 {
margin: 40rpx 0rpx 57rpx 0rpx;
}
.contributionDetails_fd2_0_c0_c1_c0 {
color: #59A6F4;
font-size: 28rpx;
font-weight: 500;
line-height: 50rpx;
}
.contributionDetails_fd2_0_c0_c0_c1 {
color: #333333;
font-size: 32rpx;
font-weight: 500;
}
.contributionDetails_fd2_0_c0_c0_c0 {
width: 30rpx;
height: 28rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 16rpx 0rpx 0rpx;
}
.contributionDetails_fd2_0 {
background: rgba(255, 255, 255, 1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
background-size: 100% auto !important;
margin: 0rpx 0rpx 20rpx 0rpx;
padding: 41rpx 24rpx 24rpx 24rpx;
}
.pointsDetails_flex_2 {
background: linear-gradient(360deg, #F6F7F9 0%, #FFFFFF 100%);
margin: -32rpx 0rpx 0rpx 0rpx;
border-radius: 16rpx 16rpx 0rpx 0rpx;
position: relative;
}
.pointsDetails_linefd2_0 {
background: rgba(255, 147, 0, 1);
width: 40rpx;
height: 8rpx;
top: 91rpx;
background-size: 100% auto !important;
border-radius: 25rpx 25rpx 25rpx 25rpx;
}
.checkTitlefd2_0 {
font-weight: 700 !important;
font-size: 32rpx !important;
color: #333 !important;
background-color: rgba(255, 255, 255, 1) !important;
}
::v-deep .pointsDetails_benbenTabsfd2_0 {
width: 750rpx;
height: 100rpx;
white-space: nowrap;
font-size: 32rpx;
font-weight: 500;
color: #666666;
border-radius: 16rpx 16rpx 0rpx 0rpx;
text-align: center;
}
.pointsDetails_flex_3 {
padding: 0rpx 24rpx 0rpx 24rpx;
}
.pointsDetails_fd3_0_c2_c0 {
color: #999999;
font-size: 28rpx;
font-weight: 400;
line-height: 42rpx;
}
.pointsDetails_fd3_0_c1_c1_c1 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.pointsDetails_fd3_0_c1_c1_c0 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.pointsDetails_fd3_0_c1_c0_c0 {
width: 120rpx;
height: 120rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
.pointsDetails_fd3_0_c1 {
margin: 40rpx 0rpx 57rpx 0rpx;
}
.pointsDetails_fd3_0_c0_c1_c0 {
color: #59A6F4;
font-size: 28rpx;
font-weight: 500;
line-height: 50rpx;
}
.pointsDetails_fd3_0_c0_c0_c1 {
color: #333333;
font-size: 32rpx;
font-weight: 500;
}
.pointsDetails_fd3_0_c0_c0_c0 {
width: 30rpx;
height: 28rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 16rpx 0rpx 0rpx;
}
.pointsDetails_fd3_0 {
background: rgba(255, 255, 255, 1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
background-size: 100% auto !important;
margin: 20rpx 0rpx 0rpx 0rpx;
padding: 41rpx 24rpx 24rpx 24rpx;
}
.pointsDetails_flex_4 {
padding: 0rpx 24rpx 0rpx 24rpx;
}
.pointsDetails_fd4_0_c2_c0 {
color: #999999;
font-size: 28rpx;
font-weight: 400;
line-height: 42rpx;
}
.pointsDetails_fd4_0_c1_c1_c1 {
color: rgba(102, 102, 102, 1);
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.pointsDetails_fd4_0_c1_c1_c0 {
color: rgba(102, 102, 102, 1);
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.pointsDetails_fd4_0_c1_c0_c0 {
width: 120rpx;
height: 120rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
}
.pointsDetails_fd4_0_c1 {
margin: 40rpx 0rpx 57rpx 0rpx;
}
.pointsDetails_fd4_0_c0_c1_c0 {
color: #59A6F4;
font-size: 28rpx;
font-weight: 500;
line-height: 50rpx;
}
.pointsDetails_fd4_0_c0_c0_c1 {
color: #333333;
font-size: 32rpx;
font-weight: 500;
}
.pointsDetails_fd4_0_c0_c0_c0 {
width: 30rpx;
height: 28rpx;
border-radius: 0rpx 0rpx 0rpx 0rpx;
margin: 0rpx 16rpx 0rpx 0rpx;
}
.pointsDetails_fd4_0 {
background: rgba(255, 255, 255, 1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
background-size: 100% auto !important;
margin: 0rpx 0rpx 20rpx 0rpx;
padding: 41rpx 24rpx 24rpx 24rpx;
}
.pointsDetails_flex_5 {
// padding: 0rpx 24rpx 0rpx 24rpx;
}
.pointsDetails_fd5_0_c1_c1 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.pointsDetails_fd5_0_c1_c0 {
color: #E32121;
font-size: 36rpx;
font-weight: 500;
line-height: 36rpx;
}
.pointsDetails_fd5_0_c0_c1 {
color: #999999;
font-size: 28rpx;
font-weight: 400;
line-height: 42rpx;
margin: 24rpx 0rpx 0rpx 0rpx;
}
.pointsDetails_fd5_0_c0_c0 {
color: #333333;
font-size: 32rpx;
font-weight: 500;
line-height: 32rpx;
}
.pointsDetails_fd5_0 {
background: rgba(255, 255, 255, 1);
border-radius: 16rpx 16rpx 16rpx 16rpx;
background-size: 100% auto !important;
padding: 32rpx 24rpx 32rpx 24rpx;
margin: 20rpx 0 0 0;
}
</style>