perry-mall/pagesB/shopDetail/shopDetail.vue

186 lines
5.4 KiB
Vue
Raw Normal View History

2022-02-12 11:33:47 +00:00
<template>
<view>
<!-- 状态栏 -->
2022-02-18 13:20:26 +00:00
<status-nav :navBarTitle="'商品详情'"></status-nav>
<!-- 容器 -->
2022-02-23 11:08:25 +00:00
<view class="pad-x140" style="background-color: #fafafa;">
2022-02-18 13:20:26 +00:00
<container-subgroup>
<view style="margin: 0 -30rpx;">
<swiper-pu v-if="cateCurrent==0" :isplay="isAutoPlay" :browseP="true" :bannerList="bannerList" :newHeight="swiperHeight" :newRadius="'0'" :newBottom="'5'"></swiper-pu>
</view>
<!-- 标题 -->
2022-02-23 11:08:25 +00:00
<view class="mar-s30 mar-x20 fon36 bold clips2 line-h50">{{detailObj.name}}</view>
2022-02-18 13:20:26 +00:00
<!-- 描述 -->
2022-02-23 11:08:25 +00:00
<view class="colpeili fon30 clips3 line-h50">{{detailObj.subtitle}}</view>
2022-02-18 13:20:26 +00:00
<view class="disac mar-s20">
<!-- 是否限时优惠 -->
2022-02-23 11:08:25 +00:00
<view v-if="detailObj.tag!=''" class="fon24 colf pad-zy10 pad-s10 pad-x20 activity-img"></view>
2022-02-18 13:20:26 +00:00
<!-- 价格 -->
<view class="disac">
2022-02-23 11:08:25 +00:00
<view class="fon40 bold col0 mar-y10">{{discountPrice}}</view>
<view class="fon30 colpeili" style="text-decoration: line-through;">{{originalPrice}}</view>
2022-02-18 13:20:26 +00:00
</view>
2022-02-12 11:33:47 +00:00
</view>
2022-02-18 13:20:26 +00:00
<!-- 颜色 -->
<view class="mar-s50"><drop-down></drop-down></view>
<!-- 尺寸 -->
<drop-down :dropObj="dropObj" @chooseItem="chooseItem"></drop-down>
2022-02-23 11:08:25 +00:00
<view style="background-color: #FFFFFF;margin: 0 -30rpx;">
<!-- 作品介绍 -->
<view class="mar-s100 mar-x30 fon36 bold col0 tcenter pad-s50">作品介绍</view>
<!-- 富文本 -->
<rich-text :nodes="shopRich"></rich-text>
</view>
2022-02-18 13:20:26 +00:00
</container-subgroup>
</view>
<!-- 底部导航 -->
2022-02-23 11:08:25 +00:00
<view v-if="shopDetail!=''">
<bottom-nav :detailObj="shopDetail"></bottom-nav>
</view>
<!-- 全局客服 -->
<public-customer
:nbottom="180"
:backgroundColor="'#FFFFFF'"
:radiusNum="'40rpx'"
:showText="false"
:iconNum="1"
:iconColor="'#000000'"></public-customer>
2022-02-12 11:33:47 +00:00
</view>
</template>
<script>
import swiperPu from '@/components/swiper-pu.vue';
import shopList from '@/components/shop-list.vue';
import dropDown from '@/components/drop-downs/drop-down.vue';
import bottomNav from '@/components/detail-bottom-nav/bottom-nav.vue';
2022-02-23 11:08:25 +00:00
// 客服按钮组件
import publicCustomer from '@/components/public-customer.vue';
2022-02-12 11:33:47 +00:00
export default {
components:{
swiperPu,
shopList,
dropDown,
2022-02-23 11:08:25 +00:00
bottomNav,
publicCustomer
2022-02-12 11:33:47 +00:00
},
data() {
return {
2022-02-18 13:20:26 +00:00
swiperHeight:uni.getSystemInfoSync().windowWidth,
2022-02-12 11:33:47 +00:00
cateCurrent:0,
dropObj:{
title:'尺寸',
childrenList:[
{
id:1,
childrenTitle:'1.2'
},
{
id:1,
childrenTitle:'6'
}
]
},
shopRich:'',//商品富文本
2022-02-23 11:08:25 +00:00
bannerList:[],//轮播
originalPrice:0,//商品原价
discountPrice:0,//商品折扣价
2022-02-12 11:33:47 +00:00
detailObj:{},//详情
skuDetail:{},//sku详情
2022-02-23 11:08:25 +00:00
shopDetail:'',
2022-02-12 11:33:47 +00:00
buyNum:1,//购买数量
csNum:0,//点击次数,
isAutoPlay:false,
}
},
onShareAppMessage(res) {
var shareObj = {
2022-02-18 13:20:26 +00:00
     title: ``, // 默认是小程序的名称(可以写slogan等)
2022-02-23 11:08:25 +00:00
     path: `/pagesB/shopDetail/shopDetail?id=`, // 默认是当前页面,必须是以‘/’开头的完整路径
2022-02-18 13:20:26 +00:00
     imageUrl: ''//自定义图片路径可以是本地文件路径、代码包文件路径或者网络图片路径支持PNG及JPG不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
2022-02-12 11:33:47 +00:00
  };
  return shareObj;
},
onShow() {
uni.removeStorageSync('chooseAddress');
this.isAutoPlay = true;
},
onHide() {
this.isAutoPlay = false;
},
onUnload() {
this.isAutoPlay = false;
},
onLoad(options) {
2022-02-23 11:08:25 +00:00
// 查询订单详情
this.checkDetail(options.id);
2022-02-12 11:33:47 +00:00
},
methods: {
2022-02-23 11:08:25 +00:00
// 查询商品详情
checkDetail(id){
this.$requst.post('/api/spu/detail',{id}).then(res=>{
if(res.code==0){
// 设置商品详情
this.detailObj = res.data.detail;
this.shopDetail = res.data;
// 轮播
// 图片字符串转数组
let arrImg = this.detailObj.images.split(',')
arrImg.forEach(item=>{
let newImgObj = {
imgSrc:item,
url:'',
isVideo:false,
poster:'',
}
// 存图片
this.bannerList.push(newImgObj)
})
// 存视频
if(this.detailObj.video!=''){
this.bannerList[0] = {
imgSrc:arrImg[0],
url:this.detailObj.video,
isVideo:true,
poster:'',
}
}
// 原价金额转换
// this.originalPrice = this.$toolAll.tools.changeNum(this.detailObj.original_price);
this.originalPrice = this.detailObj.original_price;
// 折扣价金额转换
// this.discountPrice = this.$toolAll.tools.changeNum(this.detailObj.price);
this.discountPrice = this.detailObj.price;
// 设置富文本
this.shopRich = this.$toolAll.tools.escape2Html(res.data.detail.content);
} else {
}
}).catch(err=>{
this.$toolAll.tools.showToast(err.msg);
})
},
// 尺寸选择事件
chooseItem(e){
this.log(e);
},
2022-02-12 11:33:47 +00:00
addCart(){//添加购物车事件
if(this.csNum==0){
this.csNum++;
this.$toolAll.tools.showToast('正在加入购物车...');
this.$requst.post('order/shopping-cart-add',{sku_id:this.skuDetail.id,num:this.buyNum}).then(res=>{
if(res.code==0) {
this.$toolAll.tools.showToast('添加购物车成功(*^▽^*)');
this.cartNumEv();
this.csNum = 0;
}
})
}
},
}
}
</script>
<style>
</style>