|
@@ -16,70 +16,47 @@
|
|
|
<!-- 实物商品 -->
|
|
|
<view class="prize-goods" v-if="state == 0">
|
|
|
<view class="prize-goods-list">
|
|
|
- <view class="flex prize-goods-list-item">
|
|
|
+ <view class="flex prize-goods-list-item" v-for="(item, index) in list" :key="index">
|
|
|
<view class="flex checkbox">
|
|
|
<u-checkbox-group>
|
|
|
- <u-checkbox :value="checked" shape="circle" :checked="checked" activeColor="#E96737"
|
|
|
+ <u-checkbox :value="item.checked" shape="circle" :checked="item.checked" activeColor="#E96737"
|
|
|
@change="changeChecked($event, item)"></u-checkbox>
|
|
|
</u-checkbox-group>
|
|
|
</view>
|
|
|
<view class="flex info">
|
|
|
- <image src="../../static/logo.png" mode=""></image>
|
|
|
+ <image :src="item.picUrl" mode="aspectFill"></image>
|
|
|
<view class="flex desc">
|
|
|
- <view class="content">Apple iPhone 13 (A2634) 128GB 星光色 支持移动联通电信5G 双卡双待手机</view>
|
|
|
- <view class="num">数量:2</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- <view class="flex prize-goods-list-item">
|
|
|
- <view class="flex checkbox">
|
|
|
- <u-checkbox-group>
|
|
|
- <u-checkbox :value="checked" shape="circle" :checked="checked" activeColor="#E96737"
|
|
|
- @change="changeChecked($event, item)"></u-checkbox>
|
|
|
- </u-checkbox-group>
|
|
|
- </view>
|
|
|
- <view class="flex info">
|
|
|
- <image src="../../static/logo.png" mode=""></image>
|
|
|
- <view class="flex desc">
|
|
|
- <view class="content">Apple iPhone 13 (A2634) 128GB 星光色 支持移动联通电信5G 双卡双待手机</view>
|
|
|
- <view class="num">数量:2</view>
|
|
|
+ <view class="content">{{ item.title }}</view>
|
|
|
+ <view class="num">数量:{{ item.goodsNum }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ <view class="flex empty" v-if="!list.length">
|
|
|
+ <u-empty text="数据为空" mode="order" />
|
|
|
+ </view>
|
|
|
</view>
|
|
|
<!-- 卡券 -->
|
|
|
<view class="prize-coupon" v-else>
|
|
|
<view class="prize-coupon-list">
|
|
|
- <navigator url="/pages/prize/detail" class="flex prize-coupon-list-item" hover-class="navigator-hover">
|
|
|
- <image src="../../static/logo.png" mode=""></image>
|
|
|
- <view class="flex info">
|
|
|
- <view class="flex desc">
|
|
|
- <view class="title">200元代金券</view>
|
|
|
- <view class="txt">使用期限:2022.03.02-2022.04.01</view>
|
|
|
- <view class="txt">适用范围:星巴克xxx店</view>
|
|
|
- </view>
|
|
|
- <view class="flex btn">
|
|
|
- <view class="amt"><text>¥</text>100</view>
|
|
|
- <view class="action">立即使用</view>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </navigator>
|
|
|
- <navigator url="/pages/prize/detail" class="flex prize-coupon-list-item" hover-class="navigator-hover">
|
|
|
- <image src="../../static/logo.png" mode=""></image>
|
|
|
+ <navigator :url="`/pages/prize/detail?info=${ JSON.stringify(item) }`" class="flex prize-coupon-list-item" hover-class="navigator-hover" v-for="(item, index) in list" :key="index">
|
|
|
+ <image :src="item.picUrl" mode="aspectFill"></image>
|
|
|
<view class="flex info">
|
|
|
<view class="flex desc">
|
|
|
- <view class="title">200元代金券</view>
|
|
|
- <view class="txt">使用期限:2022.03.02-2022.04.01</view>
|
|
|
- <view class="txt">适用范围:星巴克xxx店</view>
|
|
|
+ <view class="title">{{ item.title }}</view>
|
|
|
+ <view class="txt">使用期限:{{ $parseTime(item.validStart, '{y}.{m}.{d}') }}-{{ $parseTime(item.validEnd, '{y}.{m}.{d}') }}</view>
|
|
|
+ <view class="txt">适用范围:{{ item.useAreaDesc }}</view>
|
|
|
</view>
|
|
|
<view class="flex btn">
|
|
|
- <view class="amt"><text>¥</text>100</view>
|
|
|
+ <view class="amt"><text>¥</text>{{ item.discount / 100 }}</view>
|
|
|
<view class="action">立即使用</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</navigator>
|
|
|
</view>
|
|
|
+ <view class="flex empty" v-if="!list.length">
|
|
|
+ <u-empty text="数据为空" mode="order" />
|
|
|
+ </view>
|
|
|
</view>
|
|
|
|
|
|
<view class="prize-action">
|
|
@@ -87,8 +64,8 @@
|
|
|
<view class="flex prize-action-goods" v-if="state == 0">
|
|
|
<view class="flex checkbox">
|
|
|
<u-checkbox-group>
|
|
|
- <u-checkbox :value="checked" shape="circle" :checked="checked" activeColor="#E96737"
|
|
|
- @change="changeChecked($event, item)"></u-checkbox>
|
|
|
+ <u-checkbox :value="checkedAll" shape="circle" :checked="checkedAll" activeColor="#E96737"
|
|
|
+ @change="changeCheckedAll($event)"></u-checkbox>
|
|
|
</u-checkbox-group>
|
|
|
</view>
|
|
|
<view class="btn" @click="toSettlement">立即提货</view>
|
|
@@ -114,35 +91,38 @@
|
|
|
name: '卡券',
|
|
|
}],
|
|
|
state: 0,
|
|
|
- checked: false,
|
|
|
+ checkedAll: false,
|
|
|
|
|
|
pageNum: 1,
|
|
|
total: 0,
|
|
|
list: [],
|
|
|
};
|
|
|
},
|
|
|
- onLoad() {
|
|
|
- this.getList()
|
|
|
+ onShow() {
|
|
|
+ this.pageList()
|
|
|
},
|
|
|
methods: {
|
|
|
getList() {
|
|
|
- let url = this.state == 0 ? '/api/v1/mp/user/mine/prize/list' : '/api/v1/mp/user/mine/coupon/list'
|
|
|
- let data = this.state == 0 ? {} : {
|
|
|
+ let _this = this
|
|
|
+ let url = _this.state == 0 ? '/api/v1/mp/user/mine/prize/list' : '/api/v1/mp/user/mine/coupon/list'
|
|
|
+ let data = _this.state == 0 ? {} : {
|
|
|
status: 1
|
|
|
}
|
|
|
uni.showLoading({
|
|
|
title: '加载中'
|
|
|
});
|
|
|
- $http.post(`${ url }?pageNum=${this.pageNum}&pageSize=20`, data).then(res => {
|
|
|
+ $http.post(`${ url }?pageNum=${_this.pageNum}&pageSize=20`, data).then(res => {
|
|
|
uni.hideLoading();
|
|
|
- console.log(res);
|
|
|
- return
|
|
|
if (res.code == 0) {
|
|
|
res.rows.forEach(item => {
|
|
|
item.picUrl = env.filePublic + item.picUrl
|
|
|
+ if (_this.state == 0) {
|
|
|
+ item.checked = false
|
|
|
+ }
|
|
|
})
|
|
|
- this.total = res.total
|
|
|
- this.list = this.list.concat(res.rows)
|
|
|
+ _this.total = res.total
|
|
|
+ _this.list = _this.list.concat(res.rows)
|
|
|
+ console.log(_this.list);
|
|
|
}
|
|
|
}).catch(() => {
|
|
|
uni.hideLoading();
|
|
@@ -165,9 +145,20 @@
|
|
|
this.pageList()
|
|
|
},
|
|
|
|
|
|
- changeChecked() {
|
|
|
-
|
|
|
+ changeChecked(e, item) {
|
|
|
+ this.$set(item, 'checked', e)
|
|
|
+ let flag = this.list.every(item => item.checked == true)
|
|
|
+ this.checkedAll = flag
|
|
|
+ this.$forceUpdate()
|
|
|
},
|
|
|
+
|
|
|
+ changeCheckedAll(e) {
|
|
|
+ this.list.forEach(item => {
|
|
|
+ item.checked = e
|
|
|
+ })
|
|
|
+ this.$forceUpdate()
|
|
|
+ },
|
|
|
+
|
|
|
|
|
|
// 查看卡券使用记录
|
|
|
toCoupon() {
|
|
@@ -176,9 +167,21 @@
|
|
|
})
|
|
|
},
|
|
|
|
|
|
+ // 立即提货
|
|
|
toSettlement() {
|
|
|
+ let arr = []
|
|
|
+ this.list.forEach(item => {
|
|
|
+ if (item.checked) {
|
|
|
+ arr.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (!arr.length) {
|
|
|
+ uni.$u.toast('请选择商品');
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let ids = JSON.stringify(arr.map(item => item.storageId))
|
|
|
uni.navigateTo({
|
|
|
- url: "/pages/order/settlement"
|
|
|
+ url: `/pages/order/settlement?ids=${ ids }`
|
|
|
})
|
|
|
},
|
|
|
}
|
|
@@ -186,6 +189,10 @@
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+ .empty {
|
|
|
+ height: 60vh;
|
|
|
+ }
|
|
|
+
|
|
|
.prize-state {
|
|
|
position: fixed;
|
|
|
background-color: #FFFFFF;
|