From cc499362b6eba119792e113796e4da029a70fc6d Mon Sep 17 00:00:00 2001
From: queenwuli <942534046@qq.com>
Date: Sun, 27 Dec 2020 14:59:26 +0800
Subject: [PATCH] 服务单接口联调

---
 hive-app/pages/workbench/productDetail/index.vue |  201 ++++++++++++++++++++++---------------------------
 1 files changed, 90 insertions(+), 111 deletions(-)

diff --git a/hive-app/pages/workbench/productDetail/index.vue b/hive-app/pages/workbench/productDetail/index.vue
index 84ed221..8f4b154 100644
--- a/hive-app/pages/workbench/productDetail/index.vue
+++ b/hive-app/pages/workbench/productDetail/index.vue
@@ -1,104 +1,76 @@
 <template>
 	<!-- 商品详情 -->
-	<!-- 默认是基础属性 1是项目 2是套餐 3是充值卡 -->
 	<view>
 		<!-- #ifndef H5 -->
 		<view class="status_bar"></view>
 		<!-- #endif -->
-		<view class="banner">
-			<swiper class="swiper" 
-				autoplay="true" 
-				interval="5000" 
-				duration="1500"	
-				@change="swiperChange"
-				>
-				<swiper-item v-for="(item,index) in bannerList" :key="index">
-					<image class="banner-img" :src="item.img" mode="widthFix"></image>
-					<view class="dots-container flex align-center justify-center">
-						<text class="font-10 white">{{swiperIndex+1}}/{{bannerList.length}}</text>
-					</view>
-				</swiper-item>
-			</swiper>
-		</view>
-		<navigator open-type="navigateBack">
-			<view class="return-icon iconfont iconzuojiantou"></view>
+		<navigator open-type="navigateBack" hover-class="none">
+			<view class="back iconfont iconzuojiantou"></view>
 		</navigator>
-		<view class="product-price">
-			<text class="font-24 red font-bold">¥128.00</text>
-			<view class="font-14 flex justify-between mt-5">
-				<text>多肽沁妍水润面膜</text>
-				<text class="gray">月销:122</text>
+		<swiper class="banner"
+			autoplay="true" 
+			interval="5000" 
+			duration="1500"	
+			@change="swiperChange">
+			<swiper-item v-for="(item,index) in banner" :key="index">
+				<image class="img" :src="item.img?item.img:'../../../static/images/no-img.png'"></image>
+				<view class="indicator">
+					<text>{{swiperIndex+1}}/{{banner.length}}</text>
+				</view>
+			</swiper-item>
+		</swiper>
+		<view class="product-info">
+			<text class="price">¥{{productInfo.salePrice}}</text>
+			<view class="flex justify-between align-center">
+				<text>{{productInfo.goodsName}}</text>
+				<text class="gray">月销:{{productInfo.saleCnt}}</text>
 			</view>
 		</view>
-		<view class="product-info mt-15">
-			<view class="product-info-row">
-				<h-tabs
-					class="tab"
-					:tabData="tabs" 
-					:config="{
-						color: '#abb1cc',
-						activeColor: '#518EFF',
-						underLineColor: '#518EFF',
-						underLineHeight: 4,
-						fontSize: '28',
-						underLineWidth: 110
-					}"
-					@tabClick="tabClick($event)"
-				/>
-			</view>
-			<view v-if="tabIndex==0">
-				<image class="product-img" mode="widthFix" src="../../../static/images/banner1.jpg"></image>
-			</view>
-			<view v-else class="product-all">
-				<view class="product-property">
-					<view class="product-property-row flex justify-between">
-						<text>商品编码</text>
-						<text>123123000</text>
-					</view>
-					<view class="product-property-row flex justify-between">
-						<text>商品分类</text>
-						<text>家居产品</text>
-					</view>
-					<view class="product-property-row flex justify-between">
-						<text>规格</text>
-						<text>500ml</text>
-					</view>
-					<view class="product-property-row flex justify-between">
-						<text>每人限购次数</text>
-						<text>1</text>
-					</view>
-					<view class="product-property-row flex justify-between">
-						<text>最大销售数量</text>
-						<text>23</text>
-					</view>
-				</view>	
-				<project class="mt-10" v-if="type==1"></project>
-				<combo class="mt-10" v-if="type==2"></combo>
-				<refillCard class="mt-10" v-if="type==3"></refillCard>
-			</view>
-			
+		<view class="product-desc-wrap">
+			<h-tabs
+				class="tab"
+				:tabData="tabs" 
+				:config="{
+					color: '#abb1cc',
+					activeColor: '#518EFF',
+					underLineColor: '#518EFF',
+					underLineHeight: 4,
+					fontSize: '28',
+					underLineWidth: 110
+				}"
+				@tabClick="tabClick($event)"
+			/>
+			<template v-if="tabIndex==0">
+				<view class="product-desc" v-html="productInfo.desc"></view>
+			</template>
+			<template v-else>
+				<product :productInfo="productInfo" v-if="goodsType=='家居产品'"></product>
+				<project :productInfo="productInfo" v-if="goodsType=='项目'"></project>
+				<combo :productInfo="productInfo" v-if="goodsType=='套餐'"></combo>
+				<refillCard :productInfo="productInfo" v-if="goodsType=='充值卡'"></refillCard>
+			</template>
 		</view>
 	</view>
 </template>
 
 <script>
 	import HTabs from "@/components/liuyuno-tabs/liuyuno-tabs.vue";
+	import product from './product.vue';
 	import project from './project.vue';
 	import combo from './combo.vue'
 	import refillCard from './refillCard.vue'
 	export default{
 		components: {
 		    HTabs,
+			product,
 			project,
 			combo,
 			refillCard
 		},
 		data(){
 			return{
-				bannerList:[
-					{img:'../../../static/images/banner1.jpg'},
-					{img:'../../../static/images/banner1.jpg'}
-				],
+				goodsType: '家居产品',
+				banner:[],
 				swiperIndex:0,
 				tabs:[
 					{
@@ -111,8 +83,12 @@
 					}
 				],
 				tabIndex:0,
-				type:3
+				productInfo: {}
 			}
+		},
+		onLoad(options) {
+			this.goodsType = options.goodsType;
+			this.getInfo(options.id);
 		},
 		methods:{
 			swiperChange(e){
@@ -120,6 +96,14 @@
 			},
 			tabClick(index){
 				this.tabIndex=index
+			},
+			getInfo(id){
+				this.$httpUtils.request('/api/order/findGoodsDetailById/'+id).then((res) => {
+					if(res.status == 200){
+						this.productInfo = res.mapInfo.goods;
+						this.banner.push(this.productInfo.img);
+					}
+				})
 			}
 		}
 	}
@@ -129,64 +113,59 @@
 	page{
 		background: #F6F6F8;
 	}
-	.return-icon{
-		font-size: 28px;
-		opacity: 0.5;
+	.back{
 		position: absolute;
 		top: 10px;
 		left: 10px;
+		z-index: 9;
+		font-size: 28px;
+		opacity: 0.5;
 	}
-	.swiper{
+	.banner{
 		width: 100%;
 		height: 300px;
 	}
-	.banner-img{
+	.banner .img{
 		width: 100%;
 		height: 100%;
 	}
-	.dots-container {
+	.banner .indicator{
 		position: absolute;
 		right: 10px;
 		bottom: 10px;
 		background: rgba(0,0,0,0.5);
 		border-radius: 20px;
 		padding: 2px 15px;
-	}
-	.product-price{
-		background: #FFFFFF;
-		padding: 15px 10px;
-		border-bottom-left-radius: 4px;
-		border-bottom-right-radius: 4px;
-		box-shadow:0 6px 6px rgba(237,234,244,0.5);
+		color: #FFFFFF;
+		font-size: 10px;
 	}
 	.product-info{
 		background: #FFFFFF;
-		border-top-left-radius: 4px;
-		border-top-right-radius: 4px;
-		box-shadow:0 -6px 6px rgba(237,234,244,0.5);
-	}
-	.product-info-row{
-		background: #FFFFFF;
-		border-bottom: 1px solid #EDEAF4;
-	}
-	.product-img{
-		width: 100%;
-	}
-	.product-all{
-		background: #F6F6F8;
-	}
-	.product-property{
-		background: #FFFFFF;
-		padding: 0 10px;
+		padding: 15px 10px;
 		font-size: 14px;
-		border-radius: 4px;
-		box-shadow:0 6px 6px rgba(237,234,244,0.5);
+		margin-bottom: 10px;
 	}
-	.product-property-row{
+	.product-info .price{
+		display: block;
+		font-size: 24px;
+		font-weight: bold;
+		color: #FA5151;
+		margin-bottom: 5px;
+	}
+	.product-desc-wrap{
+		background: #FFFFFF;
+	}
+	.tab{
+		background: #FFFFFF;
 		border-bottom: 1px solid #EDEAF4;
-		padding: 12px 0;
 	}
-	.product-property-row:nth-last-child(1){
-		border: 0;
+	.product-desc{
+		padding: 10px;
+		min-height: 500rpx;
+		font-size: 14px;
 	}
+	.product-desc img{
+		max-width: 100%;
+	}
+	
 </style>

--
Gitblit v1.9.1