|
|
@@ -1,109 +1,105 @@
|
|
|
<template>
|
|
|
<view class="details">
|
|
|
<view class="head">
|
|
|
- <span class="cuIcon-back" @click="back"></span>
|
|
|
+ <view class="head_left">
|
|
|
+ <span class="cuIcon-back" @click="back"></span>
|
|
|
+ </view>
|
|
|
<view class="case">
|
|
|
商品详情
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="center">
|
|
|
-
|
|
|
-
|
|
|
- <view class="title">
|
|
|
- 基本信息
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 商品名称:<span>{{name}}</span>
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 所属分类:<span>{{type}}</span>
|
|
|
- </view>
|
|
|
- <view class="img_box">
|
|
|
- <view class="img" v-for="(item,index) in iamgeList" :key="index">
|
|
|
- <image :src="item.url" mode=""></image>
|
|
|
+ <view class="box">
|
|
|
+ <view class="title">
|
|
|
+ 基本信息
|
|
|
</view>
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 所属分类:<span>¥{{oldPrice}}</span>
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 所属分类:<span>¥{{price}}</span>
|
|
|
- </view>
|
|
|
- <view class="particulars">
|
|
|
- <view class="content">
|
|
|
- <view class="item" v-for="(item,index) in particularsList" :key="index">
|
|
|
- <view class="item_title">
|
|
|
- {{item.title}}
|
|
|
- </view>
|
|
|
- <view class="item_row" v-for="(row,index) in item.list" :key="index">
|
|
|
- <span>{{row.name}} </span>
|
|
|
- <span>{{row.num}}次</span>
|
|
|
- <span>¥{{row.price}}</span>
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">商品分类</span>{{form.productCategory}}
|
|
|
+ </view>
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">商品名称</span>{{form.productName}}
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="img_box">
|
|
|
+ <span class="line">商品封面图</span>
|
|
|
+ <view class="img_list">
|
|
|
+ <view class="img">
|
|
|
+ <image :src="form.productImage" mode=""></image>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
- <view class="title">
|
|
|
- 售卖/使用信息
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 售卖时间:<span>{{name}}</span>
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 库存:<span>{{name}}</span>
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 可用时间:<span>{{name}}</span>
|
|
|
- </view>
|
|
|
- <view class="title">
|
|
|
- 预约规则
|
|
|
- </view>
|
|
|
- <view class="data">
|
|
|
- 需要预约:<span>{{name}}</span>
|
|
|
- </view>
|
|
|
- <view class="particulars">
|
|
|
- <view class="content">
|
|
|
- <view class="hint">
|
|
|
- 可预约时间
|
|
|
+ <view class="img_box">
|
|
|
+ <span class="line">商品详情图</span>
|
|
|
+ <view class="img_list">
|
|
|
+ <view class="img" v-for="(item,index) in detailImages" :key="index">
|
|
|
+ <image :src="item" mode=""></image>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <view class="item" v-for="(item,index) in timeList" :key="index">
|
|
|
- {{item.date}}{{item.time}}
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">原价</span>{{form.price}}
|
|
|
+ </view>
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">实际售价</span>{{form.soldPrice}}
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="particulars">
|
|
|
+ 组合套餐
|
|
|
+ <view class="content">
|
|
|
+ <view class="item" v-for="(item,index) in form.productGroups" :key="item.groupId">
|
|
|
+ <view class="item_title">
|
|
|
+ {{item.groupName}}
|
|
|
+ </view>
|
|
|
+ <view class="item_row" v-for="(row,index) in item.singleProduct" :key="index">
|
|
|
+ <view class="name">{{row.productName}} </view>
|
|
|
+ <view class="price">
|
|
|
+ {{row.quantity}}{{row.unit}}/{{row.price}}元
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="data">
|
|
|
- 必要信息填写:<span>姓名 手机号</span>
|
|
|
- </view>
|
|
|
- <view class="particulars">
|
|
|
- <view class="content">
|
|
|
- <view class="hint">
|
|
|
- 其他填写项
|
|
|
+ <view class="box rule">
|
|
|
+ <view class="title">
|
|
|
+ 售卖/使用信息
|
|
|
+ </view>
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">售卖时间</span>{{form.saleStartDate.slice(0,10)}}-{{form.saleEndDate.slice(0,10)}}
|
|
|
+ </view>
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">库存</span>{{form.stockQuantity}}
|
|
|
+ </view>
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">可用时间</span>
|
|
|
+ <view class="" v-if="form.availableStartDate">
|
|
|
+ {{form.availableStartDate.slice(0,10)}}-{{form.availableEndDate.slice(0,10)}}
|
|
|
</view>
|
|
|
- <view class="item" v-for="(item,index) in timeList" :key="index">
|
|
|
- {{item.date}}
|
|
|
+ <view class="">
|
|
|
+ 购买后{{form.expirationDays}}天失效
|
|
|
</view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
- <view class="rule">
|
|
|
- <view class="headline">
|
|
|
- 退款规则
|
|
|
+ <view class="data">
|
|
|
+ <span class="span">需要预约</span>{{form.preBook==0?'不需要预约':'需要预约'}}
|
|
|
</view>
|
|
|
- <view class="rule_item">
|
|
|
- <view class="item" v-for="(item,index) in ruleList" :key="index">
|
|
|
- {{item.name}}
|
|
|
+ <view class="data">
|
|
|
+ 退款规则
|
|
|
+ <view class="rule_item">
|
|
|
+ <view class="item" v-for="(item,index) in ruleList" :key="index">
|
|
|
+ {{item.name}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="img_box">
|
|
|
+ <span class="line">使用说明</span>
|
|
|
+ <view class="text_area">
|
|
|
+ {{form.instructions}}
|
|
|
</view>
|
|
|
</view>
|
|
|
- </view>
|
|
|
- <view class="title">
|
|
|
- 图文详情
|
|
|
- </view>
|
|
|
- <view class="banner">
|
|
|
- <image src="/static/blue.png" mode=""></image>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="edit">
|
|
|
- <span>编辑</span>
|
|
|
- </view>
|
|
|
+
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
@@ -111,102 +107,33 @@
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
- name: '半价前挡玻璃除油膜套餐(仅限轿车使用SUV,MVP车辆均不可用)',
|
|
|
- type: '分类',
|
|
|
- iamgeList: [{
|
|
|
- url: '/static/blue.png'
|
|
|
- },
|
|
|
- {
|
|
|
- url: '/static/blue.png'
|
|
|
- },
|
|
|
- {
|
|
|
- url: '/static/blue.png'
|
|
|
- },
|
|
|
- {
|
|
|
- url: '/static/blue.png'
|
|
|
- },
|
|
|
- ],
|
|
|
+ form: {},
|
|
|
+ detailImages: [],
|
|
|
oldPrice: 300,
|
|
|
price: 280,
|
|
|
- particularsList: [{
|
|
|
- title: '外观处理',
|
|
|
- list: [{
|
|
|
- name: '全车精洗',
|
|
|
- num: 1,
|
|
|
- price: 120.00
|
|
|
- },
|
|
|
- {
|
|
|
- name: '全车精洗',
|
|
|
- num: 1,
|
|
|
- price: 120.00
|
|
|
- },
|
|
|
- {
|
|
|
- name: '全车精洗',
|
|
|
- num: 1,
|
|
|
- price: 120.00
|
|
|
- },
|
|
|
- ]
|
|
|
- },
|
|
|
- {
|
|
|
- title: '挡风除膜处理',
|
|
|
- list: [{
|
|
|
- name: '玻璃抛光',
|
|
|
- num: 1,
|
|
|
- price: 120.00
|
|
|
- },
|
|
|
- {
|
|
|
- name: '玻璃除膜',
|
|
|
- num: 1,
|
|
|
- price: 120.00
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ],
|
|
|
- timeList: [{
|
|
|
- date: '星期日',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- {
|
|
|
- date: '星期一',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- {
|
|
|
- date: '星期二',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- {
|
|
|
- date: '星期三',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- {
|
|
|
- date: '星期四',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- {
|
|
|
- date: '星期五',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- {
|
|
|
- date: '星期六',
|
|
|
- time: '09.00-18.00'
|
|
|
- },
|
|
|
- ],
|
|
|
- ruleList: [{
|
|
|
- name: '随时退'
|
|
|
- },
|
|
|
- {
|
|
|
- name: '过期自动退'
|
|
|
- }
|
|
|
- ]
|
|
|
+ ruleList: [],
|
|
|
+ productId:'',
|
|
|
+ imageHttp:'http://192.168.0.36:8080/jeecg-boot/'
|
|
|
}
|
|
|
},
|
|
|
- methods:{
|
|
|
+ methods: {
|
|
|
//返回
|
|
|
- back(){
|
|
|
+ back() {
|
|
|
uni.navigateBack({
|
|
|
- delta: 1
|
|
|
+ delta: 1
|
|
|
});
|
|
|
},
|
|
|
+ },
|
|
|
+ onLoad(options) {
|
|
|
+ this.productId = options.productId
|
|
|
+ this.$http.get("/app/product/queryById?id=" + this.productId, {}).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ if (res.data.code == 200) {
|
|
|
+ this.form = res.data.result
|
|
|
+ this.detailImages = res.data.result.detailImages.split(',')
|
|
|
+ console.log(this.detailImages)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
@@ -218,53 +145,95 @@
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
overflow: hidden;
|
|
|
+ background: #F7F8FC;
|
|
|
+
|
|
|
.head {
|
|
|
width: 100%;
|
|
|
padding: 20rpx;
|
|
|
+ background-color: #fff;
|
|
|
display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- background-color: #fff;
|
|
|
+ position: relative;
|
|
|
|
|
|
- .cuIcon-back {
|
|
|
+ .head_left {
|
|
|
font-size: 40rpx;
|
|
|
- margin-right: 40rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .case {
|
|
|
+ position: absolute;
|
|
|
+ left: 50%;
|
|
|
+ top: 50%;
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
+ font-size: 36rpx;
|
|
|
+ font-weight: 600;
|
|
|
}
|
|
|
}
|
|
|
- .center{
|
|
|
+
|
|
|
+ .center {
|
|
|
flex: 1;
|
|
|
overflow-y: auto;
|
|
|
+ padding: 21rpx 24rpx;
|
|
|
+
|
|
|
+ .box {
|
|
|
+ width: 100%;
|
|
|
+ padding: 16rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ border-radius: 16rpx;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.title {
|
|
|
width: 100%;
|
|
|
font-weight: 600;
|
|
|
- padding: 20rpx;
|
|
|
- background-color: #fff;
|
|
|
- border-top: 1px solid #ccc;
|
|
|
+ margin-bottom: 32rpx;
|
|
|
}
|
|
|
|
|
|
.data {
|
|
|
+ min-height: 58rpx;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- padding: 20rpx;
|
|
|
- background-color: #fff;
|
|
|
- border-top: 1px solid #ccc;
|
|
|
-
|
|
|
- span {
|
|
|
- flex: 1;
|
|
|
- // width: 80%;
|
|
|
- display: block;
|
|
|
+ border-bottom: 1px solid #EEEEEE;
|
|
|
+ padding-bottom: 16rpx;
|
|
|
+ margin-top: 16rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ .span {
|
|
|
+ display: inline-block;
|
|
|
+ margin-right: 20rpx;
|
|
|
+ min-width: 112rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #666666;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
.img_box {
|
|
|
- display: flex;
|
|
|
- justify-content: space-around;
|
|
|
- margin-top: 20rpx;
|
|
|
+ border-bottom: 1px solid #EEEEEE;
|
|
|
+ padding-bottom: 16rpx;
|
|
|
|
|
|
- image {
|
|
|
- width: 140rpx;
|
|
|
- height: 140rpx;
|
|
|
+ .line {
|
|
|
+ display: block;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #666666;
|
|
|
+ margin: 16rpx 0px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .img_list {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ // justify-content: space-between;
|
|
|
+ gap: 27rpx;
|
|
|
+ .img {
|
|
|
+ flex: 0 0 calc(25% - 27rpx);
|
|
|
+ height: 140rpx;
|
|
|
+ border-radius: 12rpx;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ image {
|
|
|
+ width: 140rpx;
|
|
|
+ height: 140rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -273,22 +242,38 @@
|
|
|
margin-top: 20rpx;
|
|
|
|
|
|
.content {
|
|
|
- width: 95%;
|
|
|
+ width: 100%;
|
|
|
padding: 20rpx;
|
|
|
- margin: 0 auto;
|
|
|
- background-color: #fff;
|
|
|
+ background: #F7F8FC;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ margin-top: 16rpx;
|
|
|
+ padding-top: 0px;
|
|
|
+ overflow: hidden;
|
|
|
|
|
|
.item {
|
|
|
+ margin-top: 16rpx;
|
|
|
+
|
|
|
.item_title {
|
|
|
font-weight: 600;
|
|
|
font-size: 26rpx;
|
|
|
- margin: 20rpx 0px;
|
|
|
}
|
|
|
|
|
|
.item_row {
|
|
|
width: 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
+
|
|
|
+ .name {
|
|
|
+ font-size: 26rpx;
|
|
|
+ margin-top: 16rpx;
|
|
|
+ margin-bottom: 4rpx;
|
|
|
+ color: #333333;
|
|
|
+ line-height: 30rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .price {
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #888888;
|
|
|
+ line-height: 28rpx;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|