<template> <view class="content"> <view class="container"> <view class="my-header"> <view class="my-icons" @click="goback"> <uni-icons type="left" size="16"></uni-icons> </view> <view class="my-text">商品详情</view> <view class="my-icons"></view> </view> <!-- 顶部区域 --> <view class=""> <u-swiper :list="giftImages" height="390" @change="change" @click="click"></u-swiper> </view> <view class="bai-box"> <view class="box-title">{{goodsInfo.giftName}}</view> <view class="price_num">100积分</view> <view class="dt-box"> <view class="hui_"> ¥3.5 </view> <view class="or_size"> 门店自提 </view> </view> </view> <view class="bai_box"> <view class="">兑换数量</view> <u-number-box v-model="value" @change="valChange"></u-number-box> </view> </view> <view class="bottom-d"> <view class="anniux" @click="goorder()"> <text>立即购买</text> </view> </view> </view> </view> </template> <script> import config from '@/config' import request from '../../utils/request' export default { data() { return { title: '', goodsInfo: '', baseUrl: config.baseUrl, deliveryMethod: '', giftImages: [], value: 0 } }, onLoad() { }, onShow() { uni.$on('goodsInfo', (data) => { this.goodsInfo = data if (this.goodsInfo != null) { this.dataProcessing() } }) uni.$emit('un') }, methods: { valChange(e) { console.log('当前值为: ' + e.value) }, change() {}, click() {}, // 配送信息 dataProcessing() { this.giftImages = [] if (this.goodsInfo.giftImages != null && this.goodsInfo.giftImages != undefined) { const myGiftImages = JSON.parse(this.goodsInfo.giftImages); myGiftImages.forEach(res => { let url = this.baseUrl + res this.giftImages.push(url); }) } if (this.goodsInfo.deliveryMethod != null && this.goodsInfo.deliveryMethod != undefined) { const deliveryData = JSON.parse(this.goodsInfo.deliveryMethod); this.deliveryMethod = deliveryData.join('+'); } else { this.deliveryMethod = '无配送信息' } }, // 立即兑换 goorder() { // 先判断积分是否足够兑换 request({ url: 'business/userManager/user/getByUniApp', method: 'get', params: { chainStoreId: uni.getStorageSync('chainStoreId') } }).then((res) => { if (res.code == 200 && res.data) { this.myPoints = res.data.points console.log("this.goodsInfo1", this.goodsInfo) console.log("this.goodsInfo1", res.data) if (res.data.points != undefined) { if (!this.goodsInfo.exchangePoints) { uni.navigateTo({ url: '/pagesHome/order/order' }) } else if (res.data.points < this.goodsInfo.exchangePoints && ( this.goodsInfo.exchangeMethod == '积分' || this.goodsInfo.exchangeMethod == '积分+金额')) { // 积分不足 uni.showToast({ icon: 'none', title: "积分不足" }) } else { uni.navigateTo({ url: '/pagesHome/order/order' }) } } } else { // 错误处理 uni.showToast({ icon: 'none', title: "积分不足" }) } }) }, // 返回 goback() { uni.navigateBack() } } } </script> <style scoped lang="scss"> .content { background: #f4f5f6; width: 100%; height: 100vh; } .container { width: 100%; height: 100vh; box-sizing: border-box; padding-top: 88px; } .my-header { width: 100%; height: 88px; background: #ffffff; display: flex; align-items: center; justify-content: space-between; color: #000; box-sizing: border-box; padding: 0px 15px; padding-top: 40px; .my-icons { width: 20px; } position: fixed; top: 0px; } .bai-box { width: 100%; background-color: #ffffff; padding: 10px; margin: 10px auto; } .dt-box { width: 92%; display: flex; align-items: center; justify-content: space-between; } .box-title { font-weight: bold; font-size: 18px; } .box-jg { font-size: 20px; color: red; margin: 10px auto; } .hui-time { color: #999999; } .bottom-d { display: flex; align-items: center; justify-content: center; background-color: #ffffff; width: 100%; height: 88px; position: fixed; bottom: 0px; z-index: 99999; } .anniux { width: 90%; background: #FF9655; color: white; display: flex; align-items: center; justify-content: center; color: white; border-radius: 50px; height: 40px; } .or_size { font-weight: 500; color: #FA6400; } .hui_ { color: #999; text-decoration: line-through } .price_num { font-size: 14px; color: #E02020; margin: 5px 0px; } .bai_box { background: #fff; box-sizing: border-box; padding: 15px; width: 100%; display: flex; align-items: center; justify-content: space-between; } </style>