Procházet zdrojové kódy

1.钣喷 订单确认

guo před 2 roky
rodič
revize
8d6a58c824

+ 18 - 0
pages.json

@@ -239,6 +239,24 @@
 			}
 		
 		}
+        ,{
+            "path" : "pages/index/paintSure",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "订单确认",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/index/paintShopList",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "选择门店",
+                "enablePullDownRefresh": true
+            }
+            
+        }
     ],
 	"tabBar": {
 		"color": "#8a8a8a",

+ 15 - 2
pages/index/paint.vue

@@ -72,7 +72,7 @@
 					<view class="hejiMs">合计数量:{{selectItemList.length}}</view>
 				</view>
 			</view>
-			<view class="settlement" @click="settlement">确定</view>
+			<view class="settlement" @click="sure">确定</view>
 		</view>
 
 		<view class="caidanTk" v-show="qingdanShow" @click="qingdanShow=false">
@@ -125,7 +125,20 @@
 		onLoad() {
 			this.getData();
 		},
-		methods: {
+		methods: {
+			sure(){
+				if (this.selectItemList.length == 0) {
+					uni.showToast({
+						title: '请选择项目',
+						icon: 'none',
+						duration: 3000
+					});
+					return false;
+				}
+				uni.navigateTo({
+					url:'paintSure?itemList='+JSON.stringify(this.selectItemList)
+				})
+			},
 			goCarlist() {
 				uni.navigateTo({
 					url: '../user/addCar/cailist'

+ 343 - 0
pages/index/paintShopList.vue

@@ -0,0 +1,343 @@
+<template>
+	<view class="box">
+
+		<view class="shopline" v-for="(item,index) in queryShopList" @click="goDetail(item)">
+			<view class="shoplineLeft">
+				<image :src="item.photoPath" mode="" class="shopImg" v-if="item.photoPath"></image>
+				<image src="../../static/img/noimg.png" mode="" class="shopImg" v-else></image>
+			</view>
+			<view class="shopright">
+				<view class="shopTop">
+					<view class="shopName">{{item.shopName}}</view>
+				</view>
+				<view class="brandsBg" v-if="item.brands">
+					<view class="brands" v-for="(v,index2) in item.brands.split(',')">{{v}}</view>
+				</view>
+				<view class="shopTime"><span v-if="item.startTime">{{item.startTime}}</span> - <span
+						v-if="item.endTime">{{item.endTime}}</span> </view>
+				<view class="shopBottomLeft">
+					<span class="shopaddress"
+						v-if="item.address">{{item.provinceName}}{{item.cityName}}{{item.areaName}}{{item.address}}</span>
+					<span v-if="item.distance&&item.distance!= '0.00'">{{item.distance}}km</span>
+				</view>
+			</view>
+
+		</view>
+
+		<!-- 上拉 加载更多 -->
+		<view class="noMore" v-if="noMoreShow && (queryShopList.length!=0)">没有更多数据</view>
+		<!-- 无数据空白页 -->
+		<nodata v-if="queryShopList.length==0"></nodata>
+
+	</view>
+</template>
+
+<script>
+	import nodata from '../../components/nodata/nodata.vue'
+	export default {
+		components: {
+			nodata,
+		},
+
+		data() {
+			return {
+				location: {
+					lng: '',
+					lat: '',
+				},
+				queryShopList: '',
+				noMoreShow: false,
+                goodsId:'',
+
+
+			}
+		},
+
+		onLoad(opt) {
+			
+			
+			this.getqueryShopList() //获取全部门店列表
+		},
+		methods: {
+
+
+			getqueryShopList() {
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$http('openSheetMetalSprayPaint/queryBpshopList', {
+     //                goodsId:this.goodsId,
+					// lat: this.location.lat ? this.location.lat : '',
+					// lng: this.location.lng ? this.location.lng : '',
+				}, 'GET').then(res => {
+					uni.hideLoading();
+					this.queryShopList = res.data
+					//console.log('list+=', this.queryShopList);
+
+				})
+			},
+
+			goDetail(item) {
+				 this.$store.commit('mutationsckshopInfo', item)	
+				uni.navigateBack({
+					delta:-1
+				})
+				// uni.navigateTo({
+				// 	url: '../shop/shopDetail?id=' + item.shopId
+				// })
+			}
+		},
+		
+		// 下拉刷新
+		onPullDownRefresh() {
+			
+			this.getqueryShopList()
+			setTimeout(function() {
+				uni.stopPullDownRefresh();
+			}, 1000);
+		},
+		
+	}
+</script>
+
+<style scoped>
+	.box {
+		min-height: 100vh;
+		background-color: #F4F5F7;
+		padding-top: 20rpx;
+		padding-bottom: 60rpx;
+	}
+
+	.shopline {
+		margin: 0rpx 24rpx 20rpx;
+		padding: 20rpx;
+		background-color: #FFFFFF;
+		border-radius: 10rpx;
+
+		display: flex;
+	}
+
+
+	.nodataImg {
+		width: 400rpx;
+		padding-top: 100rpx;
+	}
+
+	.noTxt {
+		font-size: 36rpx;
+		color: #999999;
+		padding-top: 50rpx;
+	}
+
+	.nodataBox {
+		text-align: center;
+	}
+
+	.shopImg {
+		width: 146rpx;
+		height: 146rpx;
+		border-radius: 6rpx;
+	}
+
+	.shopBox {
+		padding-top: 30rpx;
+		display: flex;
+	}
+
+	.flex {
+		display: flex;
+		justify-content: space-between;
+	}
+
+	.shopCont {
+		padding-left: 22rpx;
+		width: 520rpx;
+	}
+
+	.shopName {
+		color: #333333;
+		font-size: 26rpx;
+		font-weight: 600;
+	}
+
+	.span1 {
+		color: #FF4F00;
+		font-size: 36rpx;
+	}
+
+	.span2 {
+		color: #FF4F00;
+		font-size: 22rpx;
+	}
+
+	.span3 {
+		color: #333333;
+		font-size: 22rpx;
+		padding-left: 22rpx;
+	}
+
+	.shopBq {
+		color: #FF4F00;
+		font-size: 22rpx;
+		border-radius: 4rpx;
+		border: 1px solid #FF4F00;
+		line-height: 30rpx;
+		height: 30rpx;
+		padding: 0rpx 5rpx;
+		margin-top: 10rpx;
+	}
+
+	.brandsBg {
+		display: flex;
+        height: 38rpx;
+		flex-wrap: wrap;
+		align-items: center;
+		overflow: hidden;
+		padding: 5rpx 0rpx;
+
+	}
+
+	.brands {
+		border-radius: 4rpx;
+		padding: 0 5rpx;
+		color: #F19D01;
+		height: 28rpx;
+		border: 1px solid #F19D01;
+
+		font-size: 20rpx;
+		line-height: 28rpx;
+		margin: 5rpx 10rpx 5rpx 0rpx;
+	}
+
+	.timeBg {
+		display: flex;
+
+	}
+
+	.shopTime {
+		color: #666666;
+		font-size: 22rpx;
+	}
+
+	.addressBox {
+		color: #666666;
+		font-size: 22rpx;
+	}
+
+	.shopNameSearchInput {
+		width: 500rpx;
+	}
+
+	.colorCS {
+		color: #FF4F00;
+	}
+
+	.shopbox {
+		padding: 0 16rpx;
+	}
+
+
+
+	.shopImg {
+		width: 146rpx;
+		height: 146rpx;
+		border-radius: 10rpx;
+	}
+
+	.shopCallImg {
+		width: 38rpx;
+		height: 46rpx;
+	}
+
+	.shopTop {
+		display: flex;
+		justify-content: space-between;
+		width: 510rpx;
+	}
+
+	.shopright {
+		padding-left: 20rpx;
+	}
+
+	.shopName {
+		font-size: 26rpx;
+		color: #333333;
+		line-height: 37rpx;
+		width: 450rpx;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+
+	.shopScore1 {
+		font-size: 36rpx;
+		font-weight: bold;
+		color: #FF4F00;
+		height: 50rpx;
+		line-height: 50rpx;
+	}
+
+	.shopScore11 {
+		font-size: 22rpx;
+		color: #FF4F00;
+		margin-right: 14rpx;
+
+	}
+
+	.shopScore2 {
+		font-size: 22rpx;
+		color: #666666;
+		margin-right: 14rpx;
+		padding: 8rpx 0;
+	}
+
+	.shopScore3 {
+		font-size: 22rpx;
+		color: #333333;
+		padding-left: 20rpx;
+	}
+
+
+
+	.Btn {
+		width: 104rpx;
+		height: 56rpx;
+		background: #FF2400 linear-gradient(135deg, #FD5300 0%, #FF270A 100%);
+		border-radius: 6rpx;
+		font-size: 26rpx;
+		text-align: center;
+		color: #FFFFFF;
+		line-height: 56rpx;
+	}
+
+	.shopBottom {
+		display: flex;
+
+	}
+
+	.shopBottomLeft {
+
+		font-size: 25rpx;
+		color: #666666;
+		line-height: 30rpx;
+		padding-top: 10rpx;
+		display: flex;
+		justify-content: space-between;
+		padding-right: 10rpx;
+	}
+
+	.shopaddress {
+		width: 400rpx;
+		/* 隐藏文字显示 ...不换行 */
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.noMore {
+		text-align: center;
+		line-height: 50rpx;
+		color: #999999;
+		font-size: 28rpx;
+	}
+</style>

+ 619 - 0
pages/index/paintSure.vue

@@ -0,0 +1,619 @@
+<template>
+	<view class="box">
+		<view class="topBox"></view>
+		<view class="yuanhu"></view>
+		<view class="carBox">
+			<view class="left">
+				<image :src="carInfo.brandLogo" mode="widthFix" class="brandLogo" v-if="carInfo.brandLogo">
+					<img src="../../static/timg/nocar.png" alt="" class="brandLogo" v-else>
+
+				</image>
+			</view>
+			<view class="right">
+				<view class="carPlate">{{carInfo.plateNumber}}</view>
+				<view class="car" v-if="carInfo.carModel">{{carInfo.carModel}}</view>
+				<view class="car" v-else>暂无</view>
+			</view>
+
+		</view>
+		<view class="cont">
+			<view class="contKk">
+
+				<view class="contLine">
+					<view class="contlineLeft">联系人</view>
+					<view class="contlineRight">
+						<view class="contlineRight">{{customerName}}</view>
+					</view>
+				</view>
+				<view class="contLine">
+					<view class="contlineLeft">手机号</view>
+					<view class="contlineRight">
+						<view class="contlineRight">{{mobilePhone}}</view>
+					</view>
+				</view>
+
+				<view class="contLine">
+					<view class="contlineLeft">
+						<image src="../../static/img/icon_star.png" mode="" class="star"></image>
+						服务门店
+					</view>
+					<view class="contlineRight carModelRight" @click="paintShopList">
+						<span class="carModel" :class="{noColor:!shopInfo.shopName}">{{shopInfo.shopName?shopInfo.shopName:'选择服务门店'}}</span>
+						<image src="../../static/img/little_rightArrow.png" mode="" class="contlineRightJt"></image>
+					</view>
+				</view>
+
+				<view class="contLine">
+					<view class="contlineLeft">
+						<image src="../../static/img/icon_star.png" mode="" class="star"></image>
+						预约时间
+					</view>
+					<view class="contlineRight carModelRight" @click="cktime">
+						<span class="carModel" :class="{noColor:!billDate}">{{billDate?billDate:'选择到店服务时间'}}</span>
+						<image src="../../static/img/little_rightArrow.png" mode="" class="contlineRightJt"></image>
+					</view>
+				</view>
+
+			</view>
+
+			<view class="contKk" style="margin-top:20rpx;">
+				<view class="detailedTitle">支付方式</view>
+				<view class="contLine " style="border-bottom: none;">
+					<view class="payLeft" v-if="PayType==1">
+						<image src="../../static/img/icon_weixinzhifu.png" mode="" class="zhifuImg"></image>
+						微信支付
+					</view>
+					<view class="payLeft" v-if="PayType==2">
+						<image src="../../static/img/icon_xianxia.png" mode="" class="zhifuImg"></image>
+						线下支付
+					</view>
+					<!-- <view class="contlineRight">
+						<image src="../../static/img/icon_selectN.png" mode="" class="selectBtn"></image>
+					</view> -->
+				</view>
+			</view>
+		</view>
+
+		<view style="height:120rpx"></view>
+		<view class="bottomBox">
+			<view class="bottomLeft">
+				<view class="bottomLeftLine">合计 <span>¥</span> <span class="bottomPrice">{{totalMoney}}</span> </view>
+				
+			</view>
+			<view class="bottomBtn" @click="submit">提交订单</view>
+		</view>
+		
+		<timeSelect ref="timeSelect" :timedata="timedata" @changeTime="changeTime"></timeSelect>
+	</view>
+</template>
+
+<script>
+	import timeSelect from '@/components/timeSelect/timeSelect.vue'
+	export default {
+		components: {
+			timeSelect
+		},
+		
+		data() {
+			return {
+				userInfo: '',
+				goodsnum: 1,
+				id: '',
+				info: '',
+				carInfo: '',
+				shopInfo:{},
+				goodsInfo: '',
+				totalMoney: '',
+				yhMoney: 0,
+				customerName: '',
+				mobilePhone: '',
+				comment: '',
+				mydata: '',
+				orderData: '',
+				PayType:0,
+				timedata:'',
+				billDate:'',
+				itemList:[],
+			}
+		},
+		onLoad(opt) {
+			this.itemList = JSON.parse(opt.itemList);
+
+			this.goodsnum = opt.itemQty;
+			//console.log(this.carInfo)
+			this.userInfo = uni.getStorageSync("userInfo");
+			this.goodsInfo = uni.getStorageSync("goodsDetail");
+			this.jsMoney()
+			//this.openGoodsDetailById()
+			/* var a=[
+				{name:1},{name:2}
+			]
+			var b=a.map(i=>i.name);
+			console.log(b) */
+			this.$http('openreservation/getInfo', {
+				lat: '',
+				lng: '',
+			}, 'GET').then(res => {
+				this.mydata = res.data
+				this.customerName = this.mydata.customerInfo.customerName
+				this.mobilePhone = this.mydata.customerInfo.mobilePhone
+				this.shopInfo = this.mydata.shopInfo
+				
+			})
+			
+			this.$http('openSheetMetalSprayPaint/queryPayType', {
+				
+			}, 'GET').then(res => {
+				this.PayType = res.data.PayType
+				
+				
+			})
+		},
+		onShow() {
+			this.carInfo = this.$store.state.carInfo;
+			this.shopInfo=this.$store.state.ckshopInfo;
+			
+			console.log(this.shopInfo)
+		},
+		methods: {
+			changeTime(data){
+				console.log(data)
+				this.billDate=data
+			},
+			cktime(){
+				 this.$refs.timeSelect.open();
+			},
+			submit() {
+				var jsonArray = [];
+				var obj = {
+					itemId: this.goodsInfo.id,
+					itemName: this.goodsInfo.name,
+					itemQty: this.goodsnum,
+					salePrice: this.goodsInfo.salePrice,
+					totalPrice: this.totalMoney
+				}
+				jsonArray.push(obj)
+				//"bizType:1商品2项目3套餐
+				var params = {
+					sheetType: this.goodsInfo.bizType,
+					sheetContent: this.goodsInfo.name,
+					customerName: this.customerName,
+					mobilePhone: this.mobilePhone,
+					plateNumber: this.carInfo.plateNumber,
+					carModel: this.carInfo.carModel,
+					totalMoney: this.totalMoney,
+					shopId: this.shopID,
+					comment: this.comment,
+					sheetDetail: JSON.stringify(jsonArray)
+				}
+				uni.showLoading({
+					title: '加载中'
+				})
+				this.$http('openMallOrder/submitOrder', params, 'POST').then(res => {
+					uni.hideLoading();
+					if (res.code == 0) {
+						this.orderData = res.data
+						this.unifiedPay(res.data)
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none',
+							duration: 3000
+						});
+					}
+				})
+			},
+			unifiedPay(res) {
+				this.$http('openMallOrder/unifiedPay', {
+					sheetId: res.id
+				}, 'POST').then(res => {
+
+					if (res.code == 0) {
+
+						this.requestPayment(res.data)
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none',
+							duration: 3000
+						});
+					}
+				})
+			},
+			requestPayment(res) {
+				var payInfo = res;
+				//console.log(payInfo)
+				//console.log(String(Date.now()))
+				var that = this;
+				uni.requestPayment({
+					provider: 'wxpay',
+					//timeStamp: String(Date.now()),
+					timeStamp: payInfo.timeStamp,
+					nonceStr: payInfo.nonceStr,
+					package: payInfo.package,
+					signType: payInfo.signType,
+					paySign: payInfo.paySign,
+					appid: payInfo.appId,
+					/* provider: 'wxpay',
+					orderInfo:{
+						"appid":payInfo.appid,  // 微信开放平台 - 应用 - AppId,注意和微信小程序、公众号 AppId 可能不一致
+						"noncestr": payInfo.nonceStr, // 随机字符串
+						 "package": "Sign=WXPay",         // 固定值
+						"partnerid":payInfo.mchId,      // 微信支付商户号
+						"prepayid": payInfo.prepayId, // 统一下单订单号 
+						"timeStamp": String(Date.now()),      // 时间戳(单位:秒)
+						"sign": payInfo.sign // 签名,这里用的 MD5/RSA 签名
+					}, */
+					success: function(res) {
+						console.log('success:' + JSON.stringify(res));
+						uni.showToast({
+							title: '支付成功',
+							icon: 'none',
+							duration: 2000
+						});
+						if ((that.orderData.sheetType == 1) || (that.orderData.sheetType == 2) || (that
+								.orderData.sheetType == 3)) {
+							uni.redirectTo({
+								url: "../user/myOrder/mallOrderDetail?id=" + that.orderData.id +
+									"&SheetType=" + that.orderData.sheetType
+							})
+						}
+
+					},
+					fail: function(err) {
+						console.log(err)
+						uni.showToast({
+							title: '支付失败',
+							icon: 'none',
+							duration: 2000
+						});
+						console.log(that.orderData)
+						if (that.orderData.sheetType == 1 || that.orderData.sheetType == 2 || that.orderData
+							.sheetType == 3) {
+							console.log("商城订单s")
+							uni.redirectTo({
+								url: "../user/myOrder/mallOrderDetail?id=" + that.orderData.id +
+									"&SheetType=" + that.orderData.sheetType
+							})
+						}
+					}
+				});
+			},
+			openGoodsDetailById() {
+				this.$http('openMall/openGoodsDetailById', {
+					id: this.id
+				}, 'GET').then(res => {
+					this.info = res.data
+				})
+			},
+			goINdex() {
+				uni.switchTab({
+					url: '../index/index'
+				})
+			},
+			paintShopList() {
+				uni.navigateTo({
+					url: 'paintShopList'
+				})
+			},
+			calculation(type) {
+				if (type == 1) {
+					if (this.goodsnum > 1) {
+						this.goodsnum--
+						this.jsMoney()
+					}
+				} else {
+					if (this.goodsInfo.oneQty > this.goodsnum) {
+						this.goodsnum++
+						this.jsMoney()
+					}
+				}
+			},
+			jsMoney() {
+				
+				var money = 0.00
+				this.itemList.forEach((item)=>{
+					money += item.money
+				})
+				this.totalMoney = money;
+				
+				// if (this.goodsInfo.salePrice) {
+				// 	this.totalMoney = this.goodsInfo.salePrice * this.goodsnum;
+				// 	if (this.goodsInfo.scribingPrice) {
+				// 		var wyh = this.goodsInfo.scribingPrice * this.goodsnum;
+				// 		this.yhMoney = wyh - this.totalMoney;
+				// 		console.log(this.yhMoney)
+				// 		this.yhMoney = this.yhMoney.toFixed(2)
+				// 	} else {
+				// 		this.yhMoney = 0
+				// 	}
+				// 	this.totalMoney = this.totalMoney.toFixed(2)
+				// } else {
+				// 	this.totalMoney = this.goodsInfo.scribingPrice * this.goodsnum
+				// 	this.totalMoney = this.totalMoney.toFixed(2)
+				// 	this.yhMoney = 0
+				// }
+			}
+
+		}
+	}
+</script>
+
+<style scoped lang="less">
+	.bottomBox {
+		width: 750rpx;
+		height: 120rpx;
+		background: #FFFFFF;
+		box-shadow: 0px -2px 10rpx 0px rgba(153, 153, 153, 0.2000);
+		display: flex;
+		justify-content: space-between;
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		padding-bottom: constant(safe-area-inset-bottom);
+		padding-bottom: env(safe-area-inset-bottom);
+	}
+
+	.bottomLeft {
+		padding-top: 23rpx;
+		padding-left: 30rpx;
+	}
+
+	.bottomLeftLine {
+		color: #666666;
+		font-size: 24rpx;
+	}
+
+	.bottomLeftLine span {
+		color: #FF0000;
+	}
+
+	.bottomPrice {
+		font-size: 32rpx;
+		font-weight: 500;
+	}
+
+	.bottomLeftLine2 {
+		color: #999999;
+		line-height: 33rpx;
+		font-size: 24rpx;
+	}
+
+	.bottomBtn {
+		width: 204rpx;
+		height: 74rpx;
+		background: #D53533;
+		border-radius: 37rpx;
+		text-align: center;
+		line-height: 74rpx;
+		color: #FFFFFF;
+		font-size: 30rpx;
+		margin-top: 23rpx;
+		margin-right: 30rpx;
+	}
+
+	.cont {
+		padding: 20rpx 24rpx;
+	}
+
+	.contKk {
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		padding: 0 20rpx;
+	}
+	.detailedTitle {
+		padding: 22rpx 0;
+		display: flex;
+		text-align: center;
+		align-content: flex-start;
+		
+		
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #3C3C3C;
+	}
+
+	.contLine {
+		display: flex;
+		justify-content: space-between;
+		font-size: 28rpx;
+		padding: 30rpx 0;
+		border-bottom: 1px solid #EEEEEE;
+	}
+
+	.contlineLeft {
+		color: #666666;
+		line-height: 40rpx;
+		align-items: center;
+	}
+
+	.star {
+		width: 14rpx;
+		height: 14rpx;
+		padding-bottom: 5rpx;
+	}
+
+	.carModel {
+		width: 400rpx;
+		display: inline-block;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+	.noColor{
+		color: #CCCCCC;
+	}
+
+	.carModelRight {
+		display: flex;
+		justify-content: flex-end;
+		align-items: center;
+	}
+
+	.contlineRight {
+		color: #333333;
+		line-height: 40rpx;
+		white-space: nowrap;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		width: 450rpx;
+		text-align: right;
+	}
+	.selectBtn{
+		width: 36rpx;
+		height: 36rpx;
+	}
+
+	.contlineRightInput {
+		color: #333333;
+	}
+
+	.contlineRightJt {
+		width: 30rpx;
+		height: 30rpx;
+		
+	}
+
+	.box {
+		background: #F4F5F7;
+		min-height: 100vh;
+	}
+
+	.topBox {
+		height: 140rpx;
+		background: #FF0000;
+		width: 750rpx;
+	}
+
+	.yuanhu {
+		width: 750rpx;
+		height: 30rpx;
+		background: #FF0000;
+		border-radius: 0 0 100% 100%;
+	}
+
+	.carBox {
+		width: 662rpx;
+
+		background: #FFFFFF;
+		border-radius: 10rpx;
+		margin-left: 24rpx;
+		margin-top: -100rpx;
+		padding: 20rpx;
+		display: flex;
+	}
+
+	.left {
+		margin-right: 24rpx;
+
+	}
+
+	.brandLogo {
+		width: 72rpx;
+		height: 72rpx;
+	}
+
+	.carPlate {
+
+		height: 42rpx;
+		font-size: 30rpx;
+		font-weight: 500;
+		color: #333333;
+		line-height: 42rpx;
+	}
+
+	.car {
+		width: 562rpx;
+		height: 33rpx;
+		font-size: 24rpx;
+		font-weight: 400;
+		color: #666666;
+		line-height: 33rpx;
+		margin-top: 10rpx;
+		/* 隐藏文字显示 ...不换行 */
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+	}
+
+	.numJsbox {
+		display: flex;
+	}
+
+	.numJj {
+		width: 44rpx;
+		height: 44rpx;
+		background: #F4F5F7;
+		border-radius: 0px 6rpx 6rpx 0px;
+		text-align: center;
+		line-height: 44rpx;
+		font-size: 32rpx;
+		color: #999999;
+	}
+
+	.goodsnum {
+		width: 88rpx;
+		height: 44rpx;
+		background: #F4F5F7;
+		line-height: 44rpx;
+		text-align: center;
+		font-weight: 500;
+		color: #333333;
+		font-size: 24rpx;
+		margin: 0 4rpx;
+	}
+
+	.goodsBottom {
+		display: flex;
+		justify-content: space-between;
+		padding-top: 60rpx;
+	}
+
+	.goodsPrice {
+		color: #333333;
+		font-size: 32rpx;
+		font-weight: 500;
+	}
+
+	.goodsPrice1 {
+		color: #333333;
+		font-size: 22rpx;
+	}
+
+	.goodsName {
+		font-weight: 400;
+		color: #333333;
+		line-height: 40rpx;
+		font-size: 28rpx;
+		height: 80rpx;
+		text-overflow: -o-ellipsis-lastline;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		-webkit-line-clamp: 2;
+		line-clamp: 2;
+		-webkit-box-orient: vertical;
+		width: 420rpx;
+	}
+
+	.goodsBoxRgiht {
+		padding-left: 24rpx;
+
+	}
+	.zhifuImg{
+		width: 40rpx;
+		height: 40rpx;
+		margin-right: 20rpx;
+		
+	}
+	.payLeft{
+		display: flex;
+		align-items: center;
+		
+		height: 40rpx;
+		font-size: 28rpx;
+		font-weight: 400;
+		color: #333333;
+		line-height: 40rpx;
+	}
+</style>

binární
static/img/icon_star.png


binární
static/img/icon_weixinzhifu.png


binární
static/img/icon_xianxia.png