|
|
<template> <view :data-theme="theme"> <view class='integral-details'> <view class='header'> <view class='currentScore'>当前积分</view> <view class="scoreNum">{{integral.integral||0}}</view> <view class='line'></view> <view class='nav acea-row'> <view class='item'> <view class='num'>{{integral.sumIntegral||0}}</view> <view>累计积分</view> </view> <view class='item'> <view class='num'>{{integral.deductionIntegral||0}}</view> <view>累计消费</view> </view> <view class='item'> <view class='num'>{{integral.frozenIntegral||0}}</view> <view>冻结积分</view> </view> </view> </view> <view class='wrapper'> <view class='nav acea-row'> <view class='item acea-row row-center-wrapper' :class='current==index?"on":""' v-for="(item,index) in navList" :key='index' @click='nav(index)'><text class='iconfont' :class="item.icon"></text>{{item.name}}</view> </view> <view class='list' :hidden='current!=0'> <view class='tip acea-row row-middle'><text class='iconfont icon-shuoming'></text>提示:积分数值的高低会直接影响您的会员等级</view> <view class='item acea-row row-between-wrapper' v-for="(item,index) in integralList" :key="index"> <view> <view class='state'>{{item.title}}</view> <view>{{item.updateTime}}</view> </view> <view class='num font_color' v-if="item.type===1">+{{item.integral}}</view> <view class='num' v-else>-{{item.integral}}</view> </view> <view class='loadingicon acea-row row-center-wrapper' v-if="integralList.length>0"> <text class='loading iconfont icon-jiazai' :hidden='loading==false'></text>{{loadTitle}} </view> <view v-if="integralList.length == 0"> <emptyPage title="暂无积分记录哦~"></emptyPage> </view> </view> <view class='list2' :hidden='current!=1'> <navigator class='item acea-row row-between-wrapper' open-type='switchTab' hover-class='none' url='/pages/index/index'> <view class='pictrue'> <image :src="urlDomain+'crmebimage/perset/staticImg/score.png'"></image> </view> <view class='name'>购买商品可获得积分奖励</view> <view class='earn'>赚积分</view> </navigator> <navigator class='item acea-row row-between-wrapper' hover-class='none' url='/pages/users/user_sgin/index'> <view class='pictrue'> <image :src="urlDomain+'crmebimage/perset/staticImg/score.png'"></image> </view> <view class='name'>每日签到可获得积分奖励</view> <view class='earn'>赚积分</view> </navigator> </view> </view> </view> </view></template>
<script> import { postIntegralUser, getIntegralList } from '@/api/user.js'; import { toLogin } from '@/libs/login.js'; import { mapGetters } from "vuex"; import emptyPage from '@/components/emptyPage.vue' let app = getApp(); export default { components: { emptyPage }, data() { return { urlDomain: this.$Cache.get("imgHost"), navList: [{ 'name': '分值明细', 'icon': 'icon-mingxi' }, { 'name': '分值提升', 'icon': 'icon-tishengfenzhi' } ], current: 0, page: 1, limit: 10, integralList: [], integral:{}, loadend: false, loading: false, loadTitle: '加载更多', theme:app.globalData.theme, }; }, computed: mapGetters(['isLogin']), watch:{ isLogin:{ handler:function(newV,oldV){ if(newV){ this.getUserInfo(); this.getIntegralList(); } }, deep:true } }, onLoad() { if (this.isLogin) { this.getUserInfo(); this.getIntegralList(); } else { toLogin(); } }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { this.getIntegralList(); }, methods: { getUserInfo: function() { let that = this; postIntegralUser().then(function(res) { that.$set(that,'integral',res.data); }); },
/** * 获取积分明细 */ getIntegralList: function() { let that = this; if (that.loading) return; if (that.loadend) return; that.loading = true; that.loadTitle = ''; getIntegralList({ page: that.page, limit: that.limit }).then(function(res) { let list = res.data.list, loadend = list.length < that.limit; that.integralList = that.$util.SplitArray(list, that.integralList); that.$set(that,'integralList',that.integralList); that.page = that.page + 1; that.loading = false; that.loadend = loadend; that.loadTitle = loadend ? '我也是有底线的~' : "加载更多"; }, function(res) { this.loading = false; that.loadTitle = '加载更多'; }); }, nav: function(current) { this.current = current; } } }</script>
<style scoped lang="scss"> .integral-details .header { background-image: url('data:image/png;base64,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
background-repeat: no-repeat; background-size: 100% 100%; width: 100%; height: 460rpx; font-size: 72rpx; color: #fff; padding: 31rpx 0 45rpx 0; box-sizing: border-box; text-align: center; font-family: 'Guildford Pro'; @include main_bg_color(theme); }
.integral-details .header .currentScore { font-size: 26rpx; color: rgba(255, 255, 255, 0.8); text-align: center; margin-bottom: 11rpx; } .integral-details .header .scoreNum{ font-family: "Guildford Pro"; } .integral-details .header .line { width: 60rpx; height: 3rpx; background-color: #fff; margin: 20rpx auto 0 auto; }
.integral-details .header .nav { font-size: 22rpx; color: rgba(255, 255, 255, 0.8); flex: 1; margin-top: 35rpx; }
.integral-details .header .nav .item { width: 33.33%; text-align: center; }
.integral-details .header .nav .item .num { color: #fff; font-size: 40rpx; margin-bottom: 5rpx; font-family: 'Guildford Pro'; }
.integral-details .wrapper .nav { flex: 1; width: 690rpx; border-radius: 20rpx 20rpx 0 0; margin: -96rpx auto 0 auto; background-color: #f7f7f7; height: 96rpx; font-size: 30rpx; color: #bbb; }
.integral-details .wrapper .nav .item { text-align: center; width: 50%; }
.integral-details .wrapper .nav .item.on { background-color: #fff; @include main-color(theme); font-weight: bold; border-radius: 20rpx 0 0 0; }
.integral-details .wrapper .nav .item:nth-of-type(2).on { border-radius: 0 20rpx 0 0; }
.integral-details .wrapper .nav .item .iconfont { font-size: 38rpx; margin-right: 10rpx; }
.integral-details .wrapper .list { background-color: #fff; padding: 24rpx 30rpx; }
.integral-details .wrapper .list .tip { font-size: 25rpx; width: 690rpx; height: 60rpx; border-radius: 50rpx; background-color: #fff5e2; border: 1rpx solid #ffeac1; color: #c8a86b; padding: 0 20rpx; box-sizing: border-box; margin-bottom: 24rpx; }
.integral-details .wrapper .list .tip .iconfont { font-size: 35rpx; margin-right: 15rpx; }
.integral-details .wrapper .list .item { height: 124rpx; border-bottom: 1rpx solid #eee; font-size: 24rpx; color: #999; }
.integral-details .wrapper .list .item .state { font-size: 28rpx; color: #282828; margin-bottom: 8rpx; }
.integral-details .wrapper .list .item .num { font-size: 36rpx; font-family: 'Guildford Pro'; }
.integral-details .wrapper .list2 { background-color: #fff; padding: 24rpx 0; }
.integral-details .wrapper .list2 .item { background-image: linear-gradient(to right, #fff7e7 0%, #fffdf9 100%); width: 690rpx; height: 180rpx; position: relative; border-radius: 10rpx; margin: 0 auto 20rpx auto; padding: 0 25rpx 0 180rpx; box-sizing: border-box; }
.integral-details .wrapper .list2 .item .pictrue { width: 90rpx; height: 150rpx; position: absolute; bottom: 0; left: 45rpx; }
.integral-details .wrapper .list2 .item .pictrue image { width: 100%; height: 100%; }
.integral-details .wrapper .list2 .item .name { width: 285rpx; font-size: 30rpx; font-weight: bold; color: #c8a86b; }
.integral-details .wrapper .list2 .item .earn { font-size: 26rpx; color: #c8a86b; border: 2rpx solid #c8a86b; text-align: center; line-height: 52rpx; height: 52rpx; width: 160rpx; border-radius: 50rpx; } .font_color{ @include price_color(theme); }</style>
|