feat : 完善商品详情页面
This commit is contained in:
parent
ad75a5142d
commit
48b26483c0
@ -104,6 +104,45 @@ image {
|
|||||||
margin-right: 40rpx;
|
margin-right: 40rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 促销信息样式 */
|
||||||
|
.promotions-container {
|
||||||
|
padding: 15rpx;
|
||||||
|
background-color: #FFF;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin: 15rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promotion-item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promotion-tag {
|
||||||
|
width: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #ffe8e5;
|
||||||
|
color: #ff5029;
|
||||||
|
padding: 5rpx 15rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promotion-content {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.promotion-content1 {
|
||||||
|
width: auto;
|
||||||
|
padding: 5rpx 10rpx;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #ff6749;
|
||||||
|
color: white;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.GG_Item {
|
.GG_Item {
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
@ -130,7 +169,7 @@ image {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.GoodsMsg {
|
.GoodsMsg {
|
||||||
font-size: 33rpx;
|
/* font-size: 30rpx; */
|
||||||
color: #222222;
|
color: #222222;
|
||||||
margin: 0 20rpx;
|
margin: 0 20rpx;
|
||||||
margin-top: 55rpx;
|
margin-top: 55rpx;
|
||||||
@ -148,14 +187,14 @@ image {
|
|||||||
.Msg_ItemTit {
|
.Msg_ItemTit {
|
||||||
width: 120rpx;
|
width: 120rpx;
|
||||||
margin-right: 100rpx;
|
margin-right: 100rpx;
|
||||||
font-size: 28rpx;
|
font-size: 26rpx;
|
||||||
color: #999999;
|
color: #999999;
|
||||||
margin: 0 20rpx;
|
margin: 0 20rpx;
|
||||||
padding: 30rpx 0;
|
padding: 30rpx 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Msg_ItemCon {
|
.Msg_ItemCon {
|
||||||
font-size: 28rpx;
|
font-size: 26rpx;
|
||||||
color: #222222;
|
color: #222222;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -270,7 +309,7 @@ image {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-size: 28rpx;
|
font-size: 26rpx;
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -373,18 +412,113 @@ image {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.priceInfo-title {
|
.priceInfo-title {
|
||||||
font-size: 30rpx;
|
/* font-size: 30rpx; */
|
||||||
font-weight: bolder;
|
font-weight: bolder;
|
||||||
margin: 15rpx 0 20rpx 0;
|
margin: 15rpx 0 20rpx 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.priceInfo-content {
|
.priceInfo-content {
|
||||||
font-size: 28rpx;
|
font-size: 26rpx;
|
||||||
color: #9c9c9c;
|
color: #9c9c9c;
|
||||||
line-height: 1.5;
|
line-height: 1.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
.priceInfo-content-title {
|
.priceInfo-content-title {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fenge {
|
||||||
|
width: 100%;
|
||||||
|
height: 15rpx;
|
||||||
|
background-color: #f5f7fb;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 评价部分样式 */
|
||||||
|
.reviews-section {
|
||||||
|
padding: 20rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reviews-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reviews-header h3 {
|
||||||
|
/* font-size: 32rpx; */
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.view-all {
|
||||||
|
color: #999;
|
||||||
|
font-size: 26rpx;
|
||||||
|
background: none;
|
||||||
|
border: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.reviews-list {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-item {
|
||||||
|
padding: 20rpx 0;
|
||||||
|
border-bottom: 1rpx solid #f5f5f5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-user {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-avatar {
|
||||||
|
width: 60rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-info {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-name {
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-purchase {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999;
|
||||||
|
margin: 10rpx 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-content {
|
||||||
|
font-size: 27rpx;
|
||||||
|
line-height: 1.5;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-images {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10rpx;
|
||||||
|
margin-bottom: 15rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-img {
|
||||||
|
width: 140rpx;
|
||||||
|
height: 140rpx;
|
||||||
|
border-radius: 8rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.review-time {
|
||||||
|
font-size: 24rpx;
|
||||||
|
color: #999;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
@ -63,7 +63,88 @@
|
|||||||
|
|
||||||
<div class="Tit">{{ currentGG.goods_name }}</div>
|
<div class="Tit">{{ currentGG.goods_name }}</div>
|
||||||
<div class="Msg">{{ currentGG.commodity_brief }}</div>
|
<div class="Msg">{{ currentGG.commodity_brief }}</div>
|
||||||
<div class="GoodsMsg">商品详情</div>
|
|
||||||
|
<div class="fenge"></div>
|
||||||
|
|
||||||
|
<!-- 促销信息区域 -->
|
||||||
|
<div class="promotions-container">
|
||||||
|
<div class="promotion-item">
|
||||||
|
<div class="promotion-tag">优惠</div>
|
||||||
|
<div class="promotion-content promotion-content1">满100减10</div>
|
||||||
|
</div>
|
||||||
|
<div class="promotion-item">
|
||||||
|
<div class="promotion-tag">限购</div>
|
||||||
|
<div class="promotion-content">限购5件</div>
|
||||||
|
</div>
|
||||||
|
<div class="promotion-item">
|
||||||
|
<div class="promotion-tag">阶梯价</div>
|
||||||
|
<div class="promotion-content">1~9件 9.5元/件;>10件 8.0元/件</div>
|
||||||
|
</div>
|
||||||
|
<div class="promotion-item">
|
||||||
|
<div class="promotion-tag">满赠</div>
|
||||||
|
<div class="promotion-content">满5赠1,满10赠3</div>
|
||||||
|
</div>
|
||||||
|
<div class="promotion-item">
|
||||||
|
<div class="promotion-tag">满减</div>
|
||||||
|
<div class="promotion-content">满100减5,满200减20</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fenge"></div>
|
||||||
|
|
||||||
|
<div class="Msg_Item">
|
||||||
|
<div class="Msg_ItemTit">质检</div>
|
||||||
|
<div class="Msg_ItemCon">质检报告</div>
|
||||||
|
</div>
|
||||||
|
<div class="Msg_Item">
|
||||||
|
<div class="Msg_ItemTit">押金</div>
|
||||||
|
<div class="Msg_ItemCon">需另付押金:¥30.00(30天可退)</div>
|
||||||
|
</div>
|
||||||
|
<div class="Msg_Item">
|
||||||
|
<div class="Msg_ItemTit">配送</div>
|
||||||
|
<text class="Msg_ItemCon">
|
||||||
|
12:00前下单,预计8月21日送达;
|
||||||
|
12:00前下单,预计8月21日送达;
|
||||||
|
</text>
|
||||||
|
</div>
|
||||||
|
<div class="fenge"></div>
|
||||||
|
|
||||||
|
<!-- 评价部分 -->
|
||||||
|
<div class="reviews-section">
|
||||||
|
<div class="reviews-header">
|
||||||
|
<h3>评价({{ comments.length }})</h3>
|
||||||
|
<view class="view-all" @click="showPopup">查看全部 ></view>
|
||||||
|
</div>
|
||||||
|
<div class="reviews-list" v-if="comments.length > 0">
|
||||||
|
<div
|
||||||
|
class="review-item"
|
||||||
|
v-for="(comment, index) in comments"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<div class="review-user">
|
||||||
|
<image :src="comment.avatar" class="user-avatar"></image>
|
||||||
|
<div class="user-info">
|
||||||
|
<div class="user-name">{{ comment.username }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="review-time">{{ comment.time }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="user-purchase">已购 {{ comment.product }}</div>
|
||||||
|
<div class="review-content">{{ comment.content }}</div>
|
||||||
|
<div class="review-images" v-if="comment.images.length > 0">
|
||||||
|
<image
|
||||||
|
:src="img"
|
||||||
|
class="review-img"
|
||||||
|
v-for="(img, idx) in comment.images"
|
||||||
|
:key="idx"
|
||||||
|
></image>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="fenge"></div>
|
||||||
|
|
||||||
|
<h3 class="GoodsMsg">商品详情</h3>
|
||||||
|
|
||||||
<div class="Msg_Item">
|
<div class="Msg_Item">
|
||||||
<div class="Msg_ItemTit">商品编号</div>
|
<div class="Msg_ItemTit">商品编号</div>
|
||||||
@ -92,7 +173,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="priceInfo">
|
<div class="priceInfo">
|
||||||
<div class="priceInfo-title">价格说明</div>
|
<h3 class="priceInfo-title">价格说明</h3>
|
||||||
<div class="priceInfo-content">
|
<div class="priceInfo-content">
|
||||||
<view>
|
<view>
|
||||||
<text class="priceInfo-content-title">划线价格:</text>
|
<text class="priceInfo-content-title">划线价格:</text>
|
||||||
@ -219,6 +300,46 @@
|
|||||||
<div class="shadowBox_btn" @click.stop="saveImg">保存海报</div>
|
<div class="shadowBox_btn" @click.stop="saveImg">保存海报</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 评价 查看详情 -->
|
||||||
|
<u-popup
|
||||||
|
:show="show"
|
||||||
|
round="20rpx"
|
||||||
|
mode="bottom"
|
||||||
|
@close="close"
|
||||||
|
@open="open"
|
||||||
|
>
|
||||||
|
<div class="reviews-section">
|
||||||
|
<div class="reviews-header">
|
||||||
|
<h3>评价</h3>
|
||||||
|
</div>
|
||||||
|
<div class="reviews-list" v-if="comments.length > 0">
|
||||||
|
<div
|
||||||
|
class="review-item"
|
||||||
|
v-for="(comment, index) in comments"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<div class="review-user">
|
||||||
|
<image :src="comment.avatar" class="user-avatar"></image>
|
||||||
|
<div class="user-info">
|
||||||
|
<div class="user-name">{{ comment.username }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="review-time">{{ comment.time }}</div>
|
||||||
|
</div>
|
||||||
|
<div class="user-purchase">已购 {{ comment.product }}</div>
|
||||||
|
<div class="review-content">{{ comment.content }}</div>
|
||||||
|
<div class="review-images" v-if="comment.images.length > 0">
|
||||||
|
<image
|
||||||
|
:src="img"
|
||||||
|
class="review-img"
|
||||||
|
v-for="(img, idx) in comment.images"
|
||||||
|
:key="idx"
|
||||||
|
></image>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</u-popup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -245,6 +366,33 @@ export default {
|
|||||||
currentGGIndex: "", //当前规格index
|
currentGGIndex: "", //当前规格index
|
||||||
|
|
||||||
carOrderList: [],
|
carOrderList: [],
|
||||||
|
// 新增评论数据
|
||||||
|
showReviewPopup: false,
|
||||||
|
comments: [
|
||||||
|
{
|
||||||
|
avatar: "http://localhost:8080/test.png",
|
||||||
|
username: "TP",
|
||||||
|
product: "库尔勒香梨 10kg/箱",
|
||||||
|
content:
|
||||||
|
"踏入这家位于街角的餐厅,木质门框与暖黄灯光交织出温馨氛围,墙面上手绘的食材插画画透着文艺气息,开放式厨房的设计让食客能看见厨师处理食材的全过程,第一印象便给人以干净与安心。",
|
||||||
|
images: ["http://localhost:8080/test.png"],
|
||||||
|
time: "2025-03-01 11:24:20",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
avatar: "http://localhost:8080/test.png",
|
||||||
|
username: "TP",
|
||||||
|
product: "库尔勒香梨 10kg/箱",
|
||||||
|
content:
|
||||||
|
"踏入这家位于街角的餐厅,木质门框与暖黄灯光交织出温馨氛围,墙面上手绘的食材插_draw着文艺气息,开放式厨房的设计让食客能看见厨师处理食材的全过程,第一印象便给人以干净与安心。",
|
||||||
|
images: [
|
||||||
|
"http://localhost:8080/test.png",
|
||||||
|
"http://localhost:8080/test.png",
|
||||||
|
"http://localhost:8080/test.png",
|
||||||
|
],
|
||||||
|
time: "2025-03-01 11:24:20",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
show: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -372,7 +520,6 @@ export default {
|
|||||||
|
|
||||||
// 切换规格
|
// 切换规格
|
||||||
changeGG(item, index) {
|
changeGG(item, index) {
|
||||||
console.log("🚀 ~ changeGG ~ item-----------------:", item);
|
|
||||||
this.currentGG = item;
|
this.currentGG = item;
|
||||||
this.currentGGIndex = index;
|
this.currentGGIndex = index;
|
||||||
if (this.currentGG.cart_count) {
|
if (this.currentGG.cart_count) {
|
||||||
@ -460,10 +607,17 @@ export default {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
showPopup() {
|
||||||
|
console.log("🚀 ~ showPopup ~ showPopup:");
|
||||||
|
this.show = true;
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.show = false;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
const itemObj = JSON.parse(decodeURIComponent(options.item));
|
const itemObj = JSON.parse(decodeURIComponent(options.item));
|
||||||
console.log("🚀 ~ onLoad ~ itemObj:", itemObj);
|
|
||||||
const meun = menuButtonInfo();
|
const meun = menuButtonInfo();
|
||||||
this.top = meun.top;
|
this.top = meun.top;
|
||||||
this.localHeight = meun.height;
|
this.localHeight = meun.height;
|
||||||
@ -489,6 +643,8 @@ export default {
|
|||||||
|
|
||||||
request(apiArr.updateCar, "POST", {
|
request(apiArr.updateCar, "POST", {
|
||||||
goods_id_and_count,
|
goods_id_and_count,
|
||||||
|
}).then((res) => {
|
||||||
|
console.log("Cart updated on hide");
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user