281 lines
6.0 KiB
Vue
281 lines
6.0 KiB
Vue
<template>
|
||
<view class="hole-page">
|
||
<view class="nav-bar"></view>
|
||
<view class="pic">
|
||
<image :src="picUrl" mode=""></image>
|
||
</view>
|
||
<h2>
|
||
<span style="font-size: 16px;">{{ name }}</span>
|
||
<span style="font-size: 14px; color: #7E7E7E;">剩余库存:{{ sum }}件</span>
|
||
</h2>
|
||
<h3 style="justify-content: flex-start;">
|
||
<span style="color: red; font-size: 22px; font-weight: bold; letter-spacing: 3rpx; padding-right: 5rpx;">
|
||
{{ point }}
|
||
</span>
|
||
分
|
||
<!-- <span style="padding-left: 20rpx;">(剩余积分:{{ myPoint }}分)</span> -->
|
||
</h3>
|
||
<view class="good-detail">
|
||
<span style="color: #868686;">商品描述:</span>
|
||
{{ use }}
|
||
</view>
|
||
<h3 style="justify-content: flex-start;">
|
||
兑换数量:
|
||
<uni-number-box
|
||
v-model="changeNum"
|
||
:min="0"
|
||
:max="
|
||
Math.floor(myPoint / point) > sum
|
||
?
|
||
sum
|
||
:
|
||
Math.floor(myPoint / point)
|
||
"
|
||
/>
|
||
</h3>
|
||
<!-- <button @click="toggleGift">兑换奖品</button> -->
|
||
<view class="btm">
|
||
<view class="btm-lef">
|
||
<h4>总计:</h4>
|
||
<span>{{ changeNum * point }}积分</span>
|
||
</view>
|
||
<view class="btm-rig" @click="toggleGift">
|
||
立即兑换
|
||
</view>
|
||
</view>
|
||
<uni-popup ref="popup" type="center">
|
||
<view
|
||
class="pop"
|
||
>
|
||
<view class="pop-upper">
|
||
<view class="img-area">
|
||
<image src="/static/smile.png" mode=""></image>
|
||
</view>
|
||
</view>
|
||
<view class="pop-lower">
|
||
<span style="font-size: 14px;">兑换成功</span>
|
||
<span style="font-size: 12px; color: #7A7A7A;">继续赚取积分,兑换更多奖品</span>
|
||
<view class="con-btn" @click="refresh">确定</view>
|
||
</view>
|
||
</view>
|
||
</uni-popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { publicPath } from '../../public.js'
|
||
export default {
|
||
data() {
|
||
return {
|
||
id: '',
|
||
name: '',
|
||
use: '',
|
||
picUrl: '',
|
||
sum: '',
|
||
point: '',
|
||
myPoint: uni.getStorageSync('point'),
|
||
changeNum: 0,
|
||
yr: new Date().getFullYear(),
|
||
month: new Date().getMonth() + 1,
|
||
day: new Date().getDate(),
|
||
hr: new Date().getHours(),
|
||
min: new Date().getMinutes(),
|
||
sec: new Date().getSeconds(),
|
||
height: ''
|
||
}
|
||
},
|
||
methods: {
|
||
toggleGift () {
|
||
let that = this
|
||
console.log(that.changeNum);
|
||
if (that.changeNum == 0) {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '未选择商品添加数量!'
|
||
})
|
||
} else {
|
||
uni.request({
|
||
url: publicPath + '/backstage/appshoping/getExchange',
|
||
method: 'POST',
|
||
header: {
|
||
'content-type':'application/x-www-form-urlencoded; charset=UTF-8'
|
||
},
|
||
data: {
|
||
userId: uni.getStorageSync('id'),
|
||
shopId: that.id,
|
||
shopTime: that.yr + '-' + that.month + '-' + that.day + ' ' + that.hr + ':' + that.min + ':' + that.sec,
|
||
shopSum: that.changeNum,
|
||
changePoint: Number(that.point) * Number(that.changeNum),
|
||
pointResource: '兑换了' + that.name
|
||
},
|
||
success: (res) => {
|
||
console.log(res);
|
||
if (res.data.code == 200) {
|
||
/* uni.showToast({
|
||
icon: 'none',
|
||
title: '兑换商品成功!',
|
||
success: () => {
|
||
uni.reLaunch({
|
||
url: '/pages/index/index'
|
||
})
|
||
}
|
||
}) */
|
||
that.$refs.popup.open()
|
||
} else {
|
||
uni.showToast({
|
||
icon: 'none',
|
||
title: '兑换商品失败,请稍后再试!'
|
||
})
|
||
}
|
||
}
|
||
})
|
||
}
|
||
},
|
||
refresh () {
|
||
this.$refs.popup.close()
|
||
/* uni.redirectTo({
|
||
url: '/pages/giftDetail/giftDetail'
|
||
}) */
|
||
uni.navigateBack()
|
||
}
|
||
},
|
||
onLoad(params) {
|
||
let that = this
|
||
console.log(params);
|
||
// 获取商品详情
|
||
that.id = params.id
|
||
that.name = params.name
|
||
that.use = params.use
|
||
that.picUrl = params.url
|
||
that.sum = params.sum
|
||
that.point = params.point
|
||
// 获取当前高低
|
||
that.height = uni.getSystemInfoSync().windowHeight
|
||
},
|
||
onShow() {
|
||
console.log(uni.getStorageSync('point'));
|
||
if (this.min < 10) {
|
||
this.min = '0' + this.min
|
||
}
|
||
if (this.sec < 10) {
|
||
this.sec = '0' + this.sec
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.hole-page{
|
||
.nav-bar{
|
||
width: 100%;
|
||
height: var(--status-bar-height);
|
||
padding-top: var(--status-bar-height);
|
||
}
|
||
.pic{
|
||
width: 90%;
|
||
height: 400rpx;
|
||
margin: 0 auto;
|
||
border-radius: 15rpx;
|
||
image{
|
||
width: 100%;
|
||
height: 100%;
|
||
border-radius: 15rpx;
|
||
}
|
||
}
|
||
h2, h3{
|
||
width: 90%;
|
||
margin: 30rpx auto;
|
||
font-weight: normal;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
font-size: 14px;
|
||
}
|
||
.good-detail{
|
||
width: 90%;
|
||
margin: 30rpx auto;
|
||
font-weight: normal;
|
||
font-size: 14px;
|
||
line-height: 20px;
|
||
}
|
||
.btm{
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
padding: 20rpx;
|
||
margin-top: 40vh;
|
||
bottom: 0;
|
||
left: 0;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
border-top: 2px solid #f4f8fc;
|
||
.btm-lef{
|
||
display: flex;
|
||
h4{
|
||
font-size: 14px;
|
||
font-weight: normal;
|
||
padding-right: 5rpx;
|
||
}
|
||
span{
|
||
font-size: 14px;
|
||
color: red;
|
||
}
|
||
}
|
||
.btm-rig{
|
||
box-sizing: border-box;
|
||
padding: 10rpx 20rpx;
|
||
font-size: 14px;
|
||
background-color: #219ef8;
|
||
color: #fff;
|
||
border-radius: 15rpx;
|
||
}
|
||
}
|
||
.pop{
|
||
width: 70vw;
|
||
height: 40vh;
|
||
border-radius: 15rpx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
overflow: hidden;
|
||
background-color: #fff;
|
||
.pop-upper{
|
||
width: 100%;
|
||
height: 55%;
|
||
background-color: #1F9EF7;
|
||
display: flex;
|
||
.img-area{
|
||
width: 50%;
|
||
height: 70%;
|
||
margin: auto;
|
||
image{
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
}
|
||
}
|
||
.pop-lower{
|
||
flex: 1;
|
||
box-sizing: border-box;
|
||
padding: 2vh 4vh;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: space-around;
|
||
align-items: center;
|
||
.con-btn{
|
||
width: 50%;
|
||
box-sizing: border-box;
|
||
padding: 10rpx 0;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
background-color: #1F9EF7;
|
||
color: #fff;
|
||
border-radius: 15rpx;
|
||
font-size: 14px;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
</style>
|