oil-station/gasStation-uni/pagesHome/PointsRedemption/index.vue
2024-09-26 13:45:57 +08:00

235 lines
4.7 KiB
Vue

<template>
<view class="centenr">
<view class="Candywrapper">
<view class="top-box" @click="goIntegral">
<view class="">积分余额</view>
<view class="d-s">{{cardBalance.points || 0}}<u-icon name="arrow-right"></u-icon> </view>
</view>
<view class="f-box" v-for="(item,index) in integralGiftList" :key="index" @click="goDetails(item)">
<view class="f-top">{{item.storeName}}可用</view>
<view class="f-bs">
<image v-if="item.coverImage" :src="baseUrl+item.coverImage" mode="aspectFit"
style="width: 60px; height: 60px; "></image>
<image v-else src="../../static/logo.png" style="width: 60px; height: 60px; "></image>
<view class="r-box">
<view class="">
<view class="m_">{{item.giftName}}</view>
<view class="p_" >{{item.goodsName || ''}}</view>
<view class="q_">{{item.giftType}}</view>
</view>
<view class="">
<view class="an_">
{{item.exchangePoints}}积分
</view>
<u-line-progress :percentage="50" :showText="false" height="6"
activeColor="#FA6400"></u-line-progress>
<view class="hui_">券已领70%</view>
</view>
</view>
</view>
</view>
<u-empty v-if="integralGiftList.length == 0" style="margin: 5px auto;" mode="data"
icon="http://cdn.uviewui.com/uview/empty/data.png">
</u-empty>
</view>
</view>
</template>
<script>
import config from '@/config'
import request from '../../utils/request'
export default {
data() {
return {
baseUrl: config.baseUrl,
query: {
chainStoreId: '',
couponType: '',
useStatus: 0,
pageNo: 1,
pageSize: 10
},
cardBalance: {},
queryParam: {
storeId: uni.getStorageSync('storeId'),
status: '启用',
categoryId: '',
giftName: '',
deliveryMethod: '',
page: 1,
pageSize: 30
},
integralGiftList: [],
total: 0
}
},
onPullDownRefresh() {
//下拉刷新
this.queryParam = {
storeId: uni.getStorageSync('storeId'),
status: '启用',
categoryId: '',
giftName: '',
deliveryMethod: '',
page: 1,
pageSize: 30
}
this.getIntegralGiftList()
uni.stopPullDownRefresh()
},
onReachBottom() {
// 触底加载
if (this.queryParam.page >= this.total) {
uni.showToast({
title: '没有下一页数据',
icon: 'none'
})
} else {
this.queryParam.page++
this.getIntegralGiftList()
}
},
onShow() {
this.query.chainStoreId = uni.getStorageSync('chainStoreId');
this.getUserBalance()
this.getIntegralGiftList()
},
methods: {
// 获取积分商城列表
getIntegralGiftList() {
request({
url: 'business/integral/integralGift/queryByPageByStoreId',
method: 'get',
params: this.queryParam
}).then((res) => {
if (res.code == 200) {
this.integralGiftList = res.data.records
this.total = res.data.total
console.log(res, 100);
}
})
},
// 获取余额信息
getUserBalance() {
request({
url: '/business/userManager/user/getUserBalanceApplet',
method: 'get',
params: this.query
}).then(res => {
if (res.code == 200) {
this.cardBalance = res.data
}
})
},
goIntegral() {
uni.navigateTo({
url: '/pagesMy/integral/integral'
})
},
goDetails(data) {
uni.navigateTo({
url: '/pagesHome/PointsRedemption/details?giftId='+data.id
})
}
}
}
</script>
<style scoped lang="scss">
.centenr {
width: 100%;
height: 100vh;
background: #F9F9F9;
}
.Candywrapper {
background: #F9F9F9;
box-sizing: border-box;
padding: 10px;
}
.top-box {
width: 100%;
box-sizing: border-box;
padding: 10px;
display: flex;
align-items: center;
justify-content: space-between;
background: #fff;
}
.d-s {
display: flex;
align-items: center;
}
.f-box {
width: 100%;
box-sizing: border-box;
padding: 10px;
background: #fff;
margin: 10px auto;
border-radius: 4px;
}
.f-top {
box-sizing: border-box;
padding: 5px 0px;
border-bottom: 1px dashed #eee;
margin-bottom: 15px;
}
.f-bs {
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
}
.r-box {
width: 80%;
display: flex;
align-items: center;
justify-content: space-between;
}
.m_ {
font-size: 16px;
color: #333333;
font-weight: bold;
margin-bottom: 5px;
}
.p_ {
font-size: 12px;
color: #666666;
}
.q_ {
font-size: 12px;
color: #E02020;
}
.an_ {
width: 80px;
height: 25px;
background: #FA6400;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
margin-bottom: 5px;
}
.hui_ {
font-size: 10px;
color: #666666;
}
</style>