From ef46d13d5fa70d1c94f25de294f5ed177b751234 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 02 三月 2026 16:40:30 +0800
Subject: [PATCH] 提交

---
 mini-program/pages/details/details.vue |  182 +++++++++++++++++++++++++++++++--------------
 1 files changed, 124 insertions(+), 58 deletions(-)

diff --git a/mini-program/pages/details/details.vue b/mini-program/pages/details/details.vue
index 682eca0..1941b7a 100644
--- a/mini-program/pages/details/details.vue
+++ b/mini-program/pages/details/details.vue
@@ -1,61 +1,79 @@
 <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" v-html="info.content"></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>
 
 <script>
 	import { mapState } from 'vuex'
+	import Login from '@/components/login/login.vue'
 	export default {
+		components: { Login },
 		computed: {
 			...mapState(['userInfo'])
 		},
@@ -69,10 +87,19 @@
 		onLoad(option) {
 			this.id = option.id
 			this.getDetails()
-			this.cardNum()
+			
+		},
+		onShow() {
+			if (this.userInfo) {
+				this.cardNum()
+			}
 		},
 		methods: {
 			shoucang() {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return
+				}
 				if (this.info.collectStatus === 1) {
 					this.$u.api.cancelbatch({ ids: this.info.id })
 						.then(res => {
@@ -90,6 +117,10 @@
 				}
 			},
 			submit() {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return
+				}
 				let shop = [
 					{
 						goodsNum: 1,
@@ -102,18 +133,26 @@
 				})
 			},
 			addCard(e) {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return
+				}
 				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 })
 					}
 				})
 			},
 			toCard() {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return
+				}
 				uni.navigateTo({
 					url: '/pages/shopping-cart/shopping-cart'
 				})
@@ -134,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)
+				}
 			}
 		}
 	}
@@ -159,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;
@@ -250,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;
+					}
 				}
 			}
 		}

--
Gitblit v1.9.3