MrShi
9 小时以前 ef46d13d5fa70d1c94f25de294f5ed177b751234
mini-program/pages/details/details.vue
@@ -1,57 +1,70 @@
<template>
   <view class="details" v-if="info">
      <u-swiper :list="info.banner" height="375" @click="preview"></u-swiper>
      <view class="info">
         <view class="info-title">
            {{info.name}}
         </view>
         <view class="commodity-item-box-price">
            <view class="commodity-item-box-price-a">
               <text>{{info.minPrice[0]}}</text>
               <text>.{{info.minPrice[1]}}</text>
      <template v-if="info.isdeleted === 0">
         <u-swiper :list="info.banner" height="375" @click="preview"></u-swiper>
         <view class="info">
            <view class="info-title">
               {{info.name}}
            </view>
            <view class="commodity-item-box-price-b">
               原价¥{{info.price}}
            </view>
         </view>
         <view class="info-num">
            <text>已售 {{info.saleNum + info.realSaleNum}}+</text>
            <text>库存 {{info.stock}}</text>
         </view>
      </view>
      <view class="content">
         <view class="content-label">商品详情</view>
         <view class="content-val">
            <u-parse :content="info.content"></u-parse>
         </view>
      </view>
      <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 108rpx);"></view>
      <view class="footer">
         <view class="edit">
            <view class="edit-left">
               <view class="edit-left-row" @click="shoucang">
                  <image src="/static/icon/ic_collect_sel@2x.png" mode="widthFix" v-if="info.collectStatus === 1"></image>
                  <image src="/static/icon/ic_collect@2x.png" mode="widthFix" v-else></image>
                  <text>{{info.collectStatus === 1 ? '已收藏' : '收藏'}}</text>
            <view class="commodity-item-box-price">
               <view class="commodity-item-box-price-a">
                  <text>{{info.minPrice[0]}}</text>
                  <text>.{{info.minPrice[1]}}</text>
               </view>
               <view class="edit-left-row">
                  <button open-type="contact">客服</button>
                  <image src="/static/icon/detail_ic_kefu@2x.png" mode="widthFix"></image>
                  <text>客服</text>
               </view>
               <view class="edit-left-row" @click="toCard">
                  <image src="/static/icon/detail_ic_cart@2x.png" mode="widthFix"></image>
                  <text>购物车</text>
                  <view class="edit-left-row-num" v-if="cardObj && cardObj.cartTypeNum > 0">{{cardObj.cartTypeNum}}</view>
               <view class="commodity-item-box-price-b">
                  原价¥{{info.linePrice}}
               </view>
            </view>
            <view class="edit-btn">
               <view class="edit-btn-a" @click="addCard(info)">加入购物车</view>
               <view class="edit-btn-b" @click="submit">立即购买</view>
            <view class="info-num">
               <text>已售 {{info.saleNum + info.realSaleNum}}+</text>
               <text>库存 {{info.stock}}</text>
            </view>
         </view>
         <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
      </view>
         <view class="content">
            <view class="content-label">商品详情</view>
            <view class="content-val">
               <u-parse :content="info.content"></u-parse>
            </view>
         </view>
         <view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 108rpx);"></view>
         <view class="footer">
            <view class="edit">
               <view class="edit-left">
                  <view class="edit-left-row" @click="shoucang">
                     <image src="/static/icon/ic_collect_sel@2x.png" mode="widthFix" v-if="info.collectStatus === 1"></image>
                     <image src="/static/icon/ic_collect@2x.png" mode="widthFix" v-else></image>
                     <text>{{info.collectStatus === 1 ? '已收藏' : '收藏'}}</text>
                  </view>
                  <view class="edit-left-row">
                     <button open-type="contact">客服</button>
                     <image src="/static/icon/detail_ic_kefu@2x.png" mode="widthFix"></image>
                     <text>客服</text>
                  </view>
                  <view class="edit-left-row" @click="toCard">
                     <image src="/static/icon/detail_ic_cart@2x.png" mode="widthFix"></image>
                     <text>购物车</text>
                     <view class="edit-left-row-num" v-if="cardObj && cardObj.cartTypeNum > 0">{{cardObj.cartTypeNum}}</view>
                  </view>
               </view>
               <view class="edit-btn">
                  <template v-if="info.status === 0">
                     <view class="edit-btn-a" @click="addCard(info)">加入购物车</view>
                     <view class="edit-btn-b" @click="submit">立即购买</view>
                  </template>
                  <template v-else>
                     <view style="width: 250rpx; height: 88rpx;"></view>
                     <view class="edit-btn-c">商品已下架</view>
                  </template>
               </view>
            </view>
            <view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
         </view>
      </template>
      <template v-else>
         <view class="wuImg">
            <image src="/static/images/default_empty.png" mode="widthFix"></image>
         </view>
      </template>
      <Login ref="login" />
   </view>
</template>
@@ -126,12 +139,12 @@
            }
            this.$u.api.addCart({
               goodsId: e.id,
               goodsSkuId: e.skuResponsesList[0].id,
               goodsSkuId: e.goodsSkuResponseList[0].id,
               num: 1
            }).then(res => {
               if (res.code === 200) {
                  this.cardNum()
                  uni.showToast({ title: '添加成功', icon: 'none' })
                  uni.showToast({ title: '添加成功', icon: 'success', mask: true })
               }
            })
         },
@@ -160,18 +173,22 @@
            })
         },
         getDetails() {
            this.$u.api.goodsInfo({
               goodsId: this.id,
               memberId: this.userInfo ? this.userInfo.id : null,
            }).then(res => {
               if (res.code === 200) {
                  res.data.minPrice = res.data.minPrice.toFixed(2).split('.')
                  if (res.data.goodBannerMultiFiles && res.data.goodBannerMultiFiles.length > 0) {
                     res.data.banner = res.data.goodBannerMultiFiles.map(item => item.fileurlfull)
            try {
               this.$u.api.goodsInfo({
                  goodsId: this.id,
                  memberId: this.userInfo ? this.userInfo.id : null,
               }).then(res => {
                  if (res.code === 200) {
                     res.data.minPrice = res.data.minPrice.toFixed(2).split('.')
                     if (res.data.goodBannerMultiFiles && res.data.goodBannerMultiFiles.length > 0) {
                        res.data.banner = res.data.goodBannerMultiFiles.map(item => item.fileurlfull)
                     }
                     this.info = res.data
                  }
                  this.info = res.data
               }
            })
               })
            } catch (err) {
               console.log(err)
            }
         }
      }
   }
@@ -185,6 +202,18 @@
<style lang="scss" scoped>
   .details {
      width: 100%;
      .wuImg {
         width: 100%;
         display: flex;
         align-items: center;
         justify-content: center;
         padding-top: 400rpx;
         box-sizing: border-box;
         image {
            width: 320rpx;
            height: 320rpx;
         }
      }
      .footer {
         width: 100%;
         position: fixed;
@@ -276,6 +305,17 @@
                  font-size: 30rpx;
                  color: #FFFFFF;
               }
               .edit-btn-c {
                  width: 200rpx;
                  height: 88rpx;
                  line-height: 88rpx;
                  text-align: center;
                  background: #999999;
                  border-radius: 44rpx;
                  font-weight: 500;
                  font-size: 30rpx;
                  color: #FFFFFF;
               }
            }
         }
      }