shish 3 سال پیش
والد
کامیت
1ce2181b4f

+ 3 - 6
hdApp/src/admin/billing/affirmGhs.vue

@@ -40,7 +40,6 @@
 											</text>
 										</view>
 									</view>
-
 								</view>
 							</view>
 						</view>
@@ -48,7 +47,7 @@
 							<view class="operate-view" @click="gobackEvent">
 								<text class="iconfont icongouwuche"></text>返回修改
 							</view>
-							<view class="describe-view">共{{ allCountFun.bigLength }}扎,合计 ¥<text class="price">{{ allPriceFun }}</text></view>
+							<view class="describe-view">共{{ allCountFun.bigLength }}扎合计 ¥<text class="price">{{ allPriceFun }}</text></view>
 						</view>
 					</view>
 				</view>
@@ -63,10 +62,10 @@
 
 					<tui-list-cell class="line-cell" :hover="false" :arrow="false">
 						<view v-if="form.sendType == 0">
-							<text style="color: #3385FF;width:100%;">本店有出车到您的门店,请选此项,免配送费</text>
+							<text style="color: #3385FF;width:100%;">本店有出车到您店,请选此项,免配送费</text>
 						</view>				
 						<view v-if="form.sendType == 1">
-							<text style="color: #3385FF;width:100%;">您自己来店里取,没有配送费</text>
+							<text style="color: #3385FF;width:100%;">您自己来店里取,没有配送费</text>
 						</view>
 						<view v-if="form.sendType == 2">
 							<text style="color: #3385FF;width:100%;">请跑腿送货,有配送费</text>
@@ -219,12 +218,10 @@ export default {
 			this.form.hbId = 0
 			this.hasCoupon()
 		}
-
 		if(this.form.sendType == 2){
 			//计算运费
 			this.calcFreight()
 		}
-
 	},
 	computed: {
 		...mapGetters(["getMerchantInfo", "getLoginInfo"]),

+ 45 - 95
hdApp/src/admin/billing/affirmGhsBook.vue

@@ -14,7 +14,7 @@
 				<view class="module-com">
 					<view class="commodity-view">
 						<view class="commodity-list">
-							<view class="commodity-item" v-for="(item, index) in list" :key="index">
+							<view class="commodity-item" v-for="(item, index) in selectList" :key="index">
 								<image class="item-icon" :src="item.cover" alt="" />
 								<view class="item-info">
 									<view class="info-line">
@@ -37,15 +37,29 @@
 						</view>
 						<view class="summary-bar">
 							<view class="operate-view" @click="gobackEvent">
-								<text class="iconfont icongouwuche"></text>修改花材
+								<text class="iconfont icongouwuche"></text>返回修改
 							</view>
-							<view class="describe-view">共{{ allCountFun.bigLength }}扎,合计 ¥<text class="price">{{ allPriceFun }}</text></view>
+							<view class="describe-view">共{{ allCountFun.bigLength }}扎合计 ¥<text class="price">{{ allPriceFun }}</text></view>
 						</view>
 					</view>
 				</view>
 
 				<view class="module-com input-line-wrap">
 
+					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
+						<button class="admin-button-com big" :class="[form.sendType == 0 ? 'blue' : 'default']" style="width:180upx;"  @click="changeSendType(0)">有车到店</button>
+						<button class="admin-button-com big" :class="[form.sendType == 1 ? 'blue' : 'default']" style="width:180upx;"  @click="changeSendType(1)">上门自取</button>
+					</tui-list-cell>
+
+					<tui-list-cell class="line-cell" :hover="false" :arrow="false">
+						<view v-if="form.sendType == 0">
+							<text style="color: #3385FF;width:100%;">本店有出车到您店,请选此项,免配送费</text>
+						</view>				
+						<view v-if="form.sendType == 1">
+							<text style="color: #3385FF;width:100%;">您自己来店里取花,没有配送费</text>
+						</view>
+					</tui-list-cell>
+
 					<tui-list-cell class="line-cell" :hover="false" :arrow="true">
 						<view class="tui-title ">配送时间</view>
 						<picker mode="date" :value="sendTimeWant" @change="bindDateChange" style="width:400upx;">
@@ -54,27 +68,6 @@
                     	</picker>
 					</tui-list-cell>
 
-					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
-						<view class="tui-title">花材(预付)</view>
-						<text style="color: #3385FF">¥{{ parseFloat(productPrice) }}</text>
-					</tui-list-cell>
-
-					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
-						<view class="tui-title">重量(公斤)</view>
-						<text style="color: #3385FF">
-							{{ currentWeight }}
-							<text v-if="currentWeight < miniKilo" style="margin-left:16upx;color:#CCCCCC;font-size:24upx;">不足{{miniKilo}}KG按{{miniKilo}}KG算</text>
-							<text style="margin-left:16upx;color:#CCCCCC;font-size:24upx;">{{parseFloat(kiloFee)}}元/公斤</text>
-						</text>
-					</tui-list-cell>
-
-					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
-						<view class="tui-title">服务费</view>
-						<text style="color: #3385FF">
-							¥{{ totalFee }}
-						</text>
-					</tui-list-cell>
-
 					<tui-list-cell class="line-cell" :hover="false" :arrow="false" >
 						<view class="tui-title">合计</view>
 						<text style="color: #3385FF">¥{{ modifyPrice }}</text>
@@ -148,11 +141,11 @@ export default {
 				receiveAddress: "",
 				receiveLong: "",
 				receiveLat: "",
-				sendType: 2,
-				sendSide: "2",
+				sendType: 0,
 				sendDate: "",
 				sendTimeWant: "",
-				sendCost: "",
+				sendCost: 0,
+				packCost:0,
 				customId: "",
 				product: "",
         		hbId: '0'
@@ -160,19 +153,8 @@ export default {
 			showCustomer: false,
 			today:'',
 			monthLater:'',
-			modifyPrice:0,
 			hasHb:0,
-			selectedHb:{couponAmount:0,hbId:0,couponSelInx:0},
-			currentWeight:0,
-			//预订单最低公斤数
-			miniKilo:0,
-			//用于计算的重量
-			calcWeight:0,
-			//每公斤服务费
-			kiloFee:0,
-			//总服务费
-			totalFee:0,
-			productPrice:0
+			selectedHb:{couponAmount:0,hbId:0,couponSelInx:0}
 		};
 	},
 	onLoad(e) {
@@ -180,62 +162,30 @@ export default {
 	},
 	onShow() {
 
-		this.miniKilo = this.option.miniKilo || 0
-		this.kiloFee = this.option.kiloFee || 0
-
-		let selectList = this.$util.copyObject(this.selectList);
-		let list = [];
-		if (!this.$util.isEmpty(selectList)){
-			for (let i=0;i<selectList.length;i++){
-				if(list==''){
-					list.push(selectList[i])
-				}else{
-					let has = false
-					list.map(res=>{
-						if(res.id == selectList[i].id){
-							res.bigCount = (res.bigCount+selectList[i].bigCount)
-							res.smallCount = (res.smallCount+selectList[i].smallCount)
-							has = true
-						}
-					})
-					if(has == false){
-						list.push(selectList[i])
-					}
-				}
+	},
+	computed: {
+		...mapGetters(["getMerchantInfo", "getLoginInfo"]),
+		modifyPrice(){
+			let allPrice = this.allPrice.toFixed(2)
+			let price = Number(allPrice)
+			if(this.form.sendType == 2){
+				price = price + this.form.sendCost
 			}
-
-			
-			//计算重量
-			this.currentWeight = 0
-			for (let i=0;i<list.length;i++){
-				let small = Number(list[i].smallCount) / Number(list[i].ratio)
-				small = small.toFixed(2)
-				let count = Number(small) + Number(list[i].bigCount)
-				count = count.toFixed(2)
-				let thisWeight = Number(list[i].weight)*Number(count)
-				thisWeight = thisWeight.toFixed(2)
-				this.currentWeight = Number(this.currentWeight) + Number(thisWeight)
-				this.currentWeight = parseFloat(this.currentWeight.toFixed(2))
+			if(this.form.sendType == 2 || this.form.sendType == 0){
+				price = price + this.form.packCost
 			}
-			this.calcWeight = Number(this.currentWeight) > Number(this.miniKilo) ? Number(this.currentWeight) : Number(this.miniKilo)
-			this.totalFee = Number(this.calcWeight) * Number(this.kiloFee)
-			this.totalFee = parseFloat(this.totalFee.toFixed(2))
+			price = parseFloat(price)
+			return price
 		}
-		this.list = list;
-
-		this.productPrice = this.allPrice.toFixed(2)
-		this.modifyPrice = Number(this.productPrice) + Number(this.totalFee)
-		this.modifyPrice = parseFloat(this.modifyPrice.toFixed(2))
-
-	},
-	computed: {
-		...mapGetters(["getMerchantInfo", "getLoginInfo"])
 	},
 	methods: {
 		...mapActions(["initMerchantInfo"]),
 		init() {
 			this._getDet()
 		},
+		changeSendType(num){
+			this.form.sendType = num
+		},
 		bindDateChange(e){
 			let date = e.detail.value
 			this.sendTimeWant = date
@@ -309,14 +259,17 @@ export default {
 			});
 		},
 		affirmFormSubmit(){
-			const product = this.list.map(ele => {
+			const product = this.selectList.map(ele => {
 				return { productId: ele.id, bigNum: ele.bigCount, smallNum: ele.smallCount,classId:ele.classId,itemId:ele.itemId };
 			});
+			if (this.$util.isEmpty(product)){
+				this.$msg('请选择花材')
+				return false				
+			}
 			if(this.sendTimeWant==''){
 				this.$msg('请选择配送时间')
 				return false
 			}
-
 			let xj = []
 			this.selectList.forEach((item) => {
 				let hasItem = uni.getStorageSync("ghsColorItem"+this.ghsInfo.id+"_"+item.itemId)
@@ -324,7 +277,6 @@ export default {
 					xj.push(hasItem)
 				}
 			})
-
 			let params = {
 				getType:this.form.sendType,
 				sendTimeWant:this.sendTimeWant,
@@ -411,9 +363,7 @@ export default {
 				} else {
 					this.$msg(checkRes);
 				}
-			} catch (error) {
-				console.log(999999, error);
-			}
+			} catch (error) { }
 		},
 		gobackEvent() {
 			this.$util.pageTo({url: "/pagesPurchase/bookProduct",query: {id:this.options.id},type: 2})
@@ -496,12 +446,12 @@ export default {
 				border-top: 1px solid #eeeeee;
 				.operate-view {
 					display: flex;
-
 					align-items: center;
 					color: #3385ff;
-					font-size: 26upx;
+					font-size: 30upx;
+					font-weight:bold;
 					.iconfont {
-						margin-right: 20upx;
+						margin-right:16upx;
 						font-size: 40upx;
 					}
 				}

+ 29 - 7
hdApp/src/admin/home/workbench.vue

@@ -92,7 +92,7 @@
             </view>
             <view class="text-group_7 flex-col justify-between" @click="enterShop(ghsInfo)">
               <text class="text_8">{{ghsInfo.name}}</text>
-              <text class="text_9">{{ghsInfo.address}}{{ghsInfo.floor}}</text>
+              <text class="text_9"></text>
             </view>
           </view>
           <view class="box_4 flex-col"></view>
@@ -113,6 +113,9 @@
           </view>
           <view class="button_4 flex-col" v-if="ghsInfo.isOpen == 1" @click="enterShop(ghsInfo)"><text class="text_13">买花</text></view>
           <view class="button_5 flex-col" v-else @click="enterShop(ghsInfo)"><text class="text_13">买花</text></view>
+
+          <view class="button_6 flex-col" v-if="ghsInfo.presell && ghsInfo.presell == 1" @click="bookItem(ghsInfo)"><text class="text_13">预订</text></view>
+
         </view>
 
       </template>
@@ -123,8 +126,6 @@
     </view>
   </view>
 
-
-
   </view>
 
   </block>
@@ -229,6 +230,10 @@ export default {
       })
   },
   methods: {
+    bookItem(item){
+      const { id } = item
+      this.pageTo({url: '/pagesPurchase/bookProduct?id='+id})
+    },
     enterShop(item) {
       if(item.isOpen == 0){
         this.$msg('已休店,请选择其它门店')
@@ -791,8 +796,8 @@ export default {
         background-size: 137upx 137upx;
         width: 130upx;
         position: absolute;
-        left: 600upx;
-        top: 80upx;
+        left: 585upx;
+        top: 98upx;
         border-radius:39upx;
         .text_13 {
           color: rgba(255, 255, 255, 1);
@@ -808,8 +813,25 @@ export default {
         background-size: 137upx 137upx;
         width: 130upx;
         position: absolute;
-        left: 600upx;
-        top: 80upx;
+        left: 585upx;
+        top: 98upx;
+        border-radius:39upx;
+        .text_13 {
+          color: rgba(255, 255, 255, 1);
+          font-size: 30upx;
+          font-weight:bold;
+        }
+      }
+      .button_6 {
+        height: 80upx;
+        line-height:80upx;
+        text-align:center;
+        background-color:rgb(18, 175, 18);
+        background-size: 137upx 137upx;
+        width: 130upx;
+        position: absolute;
+        left: 390upx;
+        top: 98upx;
         border-radius:39upx;
         .text_13 {
           color: rgba(255, 255, 255, 1);

+ 1 - 5
hdApp/src/pagesPurchase/bookExplain.vue

@@ -7,11 +7,7 @@
     </view>
     <view class="rank-bottom-wrap">
       <view class="rank-text">
-        <view>提前订货按门店进货价销售</view>
-        <view>下单时按下单当天销售价付款,到货后按到货当天进货价结算,多退少补</view>
-        <view>门店仅收取服务费,每公斤服务费{{parseFloat(kiloFee)}}元,不足{{parseFloat(miniKilo)}}公斤按{{parseFloat(miniKilo)}}公斤计算</view>
-        <view>当天15点前下单,第二天送达,15点后下单的,第三天送达</view>
-        <view>预订下单成功后不能取消</view>
+        <view>预订下单后不能退款!</view>
       </view>
       <view style="text-align:center;">
         <button style="margin:10upx auto;padding-left:50upx;padding-right:50upx;" class="admin-button-com blue middle" @click="goBack()">返回</button>

+ 240 - 9
hdApp/src/pagesPurchase/bookProduct.vue

@@ -8,13 +8,11 @@
 
 			<view class="shop_title" @click="pageTo({url:'/pagesPurchase/level?id='+ghsInfo.id})">
 				{{ghsInfo.name}}
-				<text class="level">{{ghsInfo.giveLevelName||'普店'}}</text>
 			</view>
 
 			<view class="shop_intro">
-				<text>已采购 {{parseFloat(ghsInfo.expendAmount) || '0'}}</text>
-				<text style="margin-left:16upx;">欠款 {{parseFloat(ghsInfo.debtAmount) || '0'}}</text>
-				<text @click="pageTo('/pagesPurchase/bookExplain?id='+ghsInfo.id)" style="margin-left:16upx;font-weight:bold;text-decoration:underline;color:#060606;">预订说明</text>
+				<text>欠款 {{parseFloat(ghsInfo.debtAmount) || '0'}}</text>
+				<text @click="pageTo('/pagesPurchase/bookExplain?id='+ghsInfo.id)" style="margin-left:26upx;font-weight:bold;text-decoration:underline;color:red;">预售说明</text>
 			</view>
 
         </view>
@@ -22,11 +20,14 @@
       </view>
     </view>
 		<view class="input-wrap" >
+			<view style="padding:0upx 0upx 0upx 0upx;margin-right:10upx;" >
+				<button class="admin-button-com middle blue" @click="selectFlowerNumFn()">图片分类</button>
+			</view>
 			<view class="search-bar">
-				<app-search-module v-model="py" placeholder="输入首字母找花材,小菊输xj" @input="searchFn" />
+				<app-search-module v-model="py" placeholder="输入拼音首字母也可以搜索" @input="searchFn" />
 			</view>
 			<view style="padding:0 0upx 0 20upx;" >
-				<button class="admin-button-com middle blue" @click="removeMemory(option.id)">清除已选</button>
+				<button class="admin-button-com middle blue" @click="delMemory()">清除已选</button>
 			</view>
 		</view>
 		<view class="scroll-middle_bx">
@@ -78,7 +79,7 @@
 			</scroll-view>
 
 		</view>
-		<modal-module :show="isModel" @cancel="modalCancel" @click="affirm" :title="customData.itemName" color="#333" :size="32" padding="30upx 30upx" >
+		<modal-module :show="isModel" @cancel="modalCancel" @click="affirm" :title="customData.itemName" color="#333" :size="32" padding="30rpx 30rpx" >
 			<template slot="customContent">
 				<view class="select-cmd_bx" v-if="customData">
 					<view class="kc"></view>
@@ -89,11 +90,58 @@
 			</template>
 		</modal-module>
 
-		<FooterCart :price="allPrice" :count="allCount" @confirm="confirmSelectEvent" ></FooterCart>
+		<FooterCart :price="allPrice" :count="allCount" @confirm="confirmSelectEvent" @showCartItem="showCartItem"></FooterCart>
 		<wangCg :show.sync="notOpenShop" @bthClick="goToCg()"></wangCg>
     	<sel-popup :show="popupShow" :info="infoData" @close="hidePopup" />
 		<app-activily-coupon :show.sync="isNewCustom" :info="newCustomGift" :ghsId="ghsId" />
 
+		<view v-if="cartItemShow == true" style="position: fixed;z-index: 190;top: 0;left: 0;width: 100vw;height: 100vh;background: rgba(0, 0, 0, 0.6);color: #fff;" @click="hideCartItem()">
+			<view style="position: fixed;bottom: 108upx;width:100vw;heigh:300upx;background-color:white;" @click.stop="">
+				<view class="commodity-view">
+					<view class="summary-bar">
+						<button class="admin-button-com blue mini-btn" @click.stop="delMemory()">清空花材</button>
+					</view>
+					<view class="commodity-list">
+						<view class="commodity-item" v-for="(item, index) in selectList" :key="index">
+							<image class="item-icon" :src="item.cover" alt="" />
+							<view class="item-info">
+								<view class="info-line">
+									<text class="item-name">{{ item.itemName }}</text>
+									<text class="item-price">
+										<text class="unit">¥</text>
+										<text class="price">
+											{{ parseFloat(item.bigPrice)||0 }}
+										</text>
+									</text>
+								</view>
+								<view style="text-align:right;">
+									<view class="open-bx" >
+										<i class="iconfont iconjian" @click.stop="delItem(item)" v-if="item.bigCount > 0 || item.smallCount > 0"></i>
+										<text class="num" @click.stop="customUpdate(item)">
+										<text v-if="item.bigCount > 0" style="font-weight:bold;color:#3385ff;">{{ item.bigCount }}</text>
+										<text v-if="item.smallCount > 0"><text v-if="item.bigCount > 0">/</text>{{ item.smallCount }}</text>
+										</text>
+										<i class="iconfont iconzeng" @click.stop="addEvents(item)"></i>
+									</view>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<uni-popup ref="selectFlowerNumRef" background-color="#fff" type="center" :animation="false" class="class-popup-style">
+		<view style="display:flex;padding:20upx;height:auto;justify-content: space-between;align-items:center;flex-wrap:wrap;max-height:100vh;overflow:auto;">
+
+			<view v-for="(item, index) in filterProductInfo" :key="index" @tap.stop="changeClass(index)" style="margin-bottom:20upx;margin-left:3upx;">
+			<image :src="item.classCover" style="width:120upx;height:120upx;border-radius:10upx;"></image>
+			<view style="margin-top:5upx;overflow: hidden;white-space: nowrap;width:120upx;text-align:center;">{{item.className}}</view>
+			</view>
+
+		</view>
+		</uni-popup>
+
 	</view>
 </template>
 
@@ -173,7 +221,8 @@ export default {
 			//预订单最低公斤数
 			miniKilo:0,
 			//每公斤服务费
-			kiloFee:0
+			kiloFee:0,
+			cartItemShow:false,
 		};
 	},
 	onPullDownRefresh() {
@@ -273,6 +322,48 @@ export default {
 
 	},
 	methods: {
+		customUpdate(item) {
+			if(item.variety == 0){
+				this.customNum({ ...item, bigCount: item.bigCount, smallCount: item.smallCount })
+			}else{
+				this.$msg('多颜色请在列表里修改')
+			}
+		},
+		delItem(item) {
+			if(item.variety == 0){
+				this.delEvent(item)
+			}else{
+				this.$msg('多颜色请在列表里修改')
+			}
+		},
+		addEvents(item) {
+			if(item.variety == 0){
+				this.addEvent(item)
+			}else{
+				this.$msg('多颜色请在列表里修改')
+			}
+		},
+		showCartItem(){
+			if(this.cartItemShow == true){
+				this.cartItemShow = false
+			}else{
+				if(!this.$util.isEmpty(this.selectList)){
+					if(this.cartItemShow == false){
+						this.cartItemShow = true
+					}
+				}
+			}
+		},
+		hideCartItem(){
+			this.cartItemShow = false
+		},
+		delMemory(){
+			this.cartItemShow = false
+			this.removeMemory(this.option.id)
+		},
+		selectFlowerNumFn(){
+			this.$refs.selectFlowerNumRef.open('top')
+		},
 		closeInvite(){
 			this.showInvite = false
 		},
@@ -765,4 +856,144 @@ export default {
     }
   }
 }
+.commodity-view {
+	display: flex;
+	flex-direction: column;
+	.commodity-list {
+		overflow:scroll;
+		height:50vh;
+		padding: 20upx;
+		.commodity-item {
+			display: flex;
+			margin-bottom: 20upx;
+			.item-icon {
+				flex-shrink: 0;
+				width: 140upx;
+				height: 140upx;
+			}
+			.item-info {
+				display: flex;
+				flex-direction: column;
+				justify-content: center;
+				flex: 1;
+				margin-left: 20upx;
+				.info-line {
+					margin-bottom: 20upx;
+					display: flex;
+					justify-content: space-between;
+					align-items: flex-end;
+					.item-name {
+						color: #666;
+						font-size: 28upx;
+						overflow: hidden;
+						white-space: nowrap;
+						text-overflow: ellipsis;
+						width:400upx;
+					}
+					.item-price {
+						color: #333;
+						font-size: 22upx;
+						.price {
+							font-size: 32upx;
+							font-weight: bold;
+						}
+					}
+					.item-type {
+						color: #999;
+						font-size: 24upx;
+					}
+					.item-count {
+						color: #666;
+						font-size: 24upx;
+					}
+				}
+
+
+	.open-bx {
+		align-items: center;
+		& .iconfont {
+			color: #3385ff;
+			font-size: 60upx;
+		}
+
+		.position{
+			display: block;
+			width: 70upx;
+			text-align: center;
+		}
+		.iconcachu {
+			margin: 0 6upx 0 20upx;
+			color: #ccc;
+			&.edit {
+				color: #3385ff;
+			}
+		}
+		& > .num {
+			display: inline-block;
+			width: 130upx;
+			height:55upx;
+			line-height:55upx;
+			text-align:center;
+			margin: 0 8upx;
+			color: #868686;
+			border-radius: 22upx;
+			background-color: #f5f5f5;
+			font-size: 28upx;
+		}
+		.change-input {
+			width: 164upx;
+			height: 60upx;
+			line-height: 60upx;
+			text-align: center;
+			background: #ffffff;
+			border: 1upx solid #dddddd;
+			border-radius: 4upx;
+			font-size: 25upx;
+		}
+		.btn-box{
+			width: 100upx;
+			height: 60upx;
+			line-height: 60upx;
+			color: #ffffff;
+			background: #3385ff;
+			text-align: center;
+			border-radius: 10upx;
+		}
+	}
+
+			}
+		}
+	}
+	.summary-bar {
+		padding: 0 20upx;
+		height: 90upx;
+		display: flex;
+
+		align-items: center;
+		justify-content: space-between;
+		border-top: 1px solid #eeeeee;
+		.operate-view {
+			display: flex;
+			align-items: center;
+			color: #3385ff;
+			font-size: 28upx;
+			font-weight:bold;
+			.iconfont {
+				margin-right: 20upx;
+				font-size: 40upx;
+			}
+		}
+		.describe-view {
+			display: flex;
+
+			align-items: center;
+			color: #333;
+			font-size: 24upx;
+			.price {
+				font-weight: bold;
+				font-size: 36upx;
+			}
+		}
+	}
+}
 </style>

+ 10 - 7
hdApp/src/pagesPurchase/ghsProduct.vue

@@ -121,11 +121,11 @@
     	<sel-popup :show="popupShow" :info="infoData" @close="hidePopup" />
 		<app-activily-coupon :show.sync="isNewCustom" :info="newCustomGift" :ghsId="ghsId" />
 
-		<view v-if="cartItemShow == true" style="position: fixed;z-index: 190;top: 0;left: 0;width: 100vw;height: 100vh;background: rgba(0, 0, 0, 0.6);color: #fff;">
-			<view style="position: fixed;bottom: 108upx;width:100vw;heigh:300upx;background-color:white;">
+		<view v-if="cartItemShow == true" style="position: fixed;z-index: 190;top: 0;left: 0;width: 100vw;height: 100vh;background: rgba(0, 0, 0, 0.6);color: #fff;" @click="hideCartItem()">
+			<view style="position: fixed;bottom: 108upx;width:100vw;heigh:300upx;background-color:white;" @click.stop="">
 				<view class="commodity-view">
 					<view class="summary-bar">
-						<button class="admin-button-com blue mini-btn" @click="delMemory()">清空花材</button>
+						<button class="admin-button-com blue mini-btn" @click.stop="delMemory()">清空花材</button>
 					</view>
 					<view class="commodity-list">
 						<view class="commodity-item" v-for="(item, index) in selectList" :key="index">
@@ -142,12 +142,12 @@
 								</view>
 								<view style="text-align:right;">
 									<view class="open-bx" >
-										<i class="iconfont iconjian" @click="delItem(item)" v-if="item.bigCount > 0 || item.smallCount > 0"></i>
-										<text class="num" @click="customUpdate(item)">
+										<i class="iconfont iconjian" @click.stop="delItem(item)" v-if="item.bigCount > 0 || item.smallCount > 0"></i>
+										<text class="num" @click.stop="customUpdate(item)">
 										<text v-if="item.bigCount > 0" style="font-weight:bold;color:#3385ff;">{{ item.bigCount }}</text>
 										<text v-if="item.smallCount > 0"><text v-if="item.bigCount > 0">/</text>{{ item.smallCount }}</text>
 										</text>
-										<i class="iconfont iconzeng" @click="addEvents(item)"></i>
+										<i class="iconfont iconzeng" @click.stop="addEvents(item)"></i>
 									</view>
 								</view>
 							</view>
@@ -343,6 +343,9 @@ export default {
 
 	},
 	methods: {
+		hideCartItem(){
+			this.cartItemShow = false
+		},
 		hideClassRemind(){
 			hasClassRemind().then(res=>{
 				if(res.code ==1){
@@ -357,7 +360,7 @@ export default {
 		selectFlowerNumFn(){
 			this.$refs.selectFlowerNumRef.open('top')
 		},
-		delMemory(id){
+		delMemory(){
 			this.cartItemShow = false
 			this.removeMemory(this.option.id)
 		},

+ 31 - 7
hdApp/src/pagesPurchase/order.vue

@@ -7,11 +7,11 @@
         <view class="ghs_box flex-col justify-end" v-for="(ghsInfo, index) in supplierList" :key="index">
           <view class="image-text_7 flex-row justify-between">
             <view class="section_1 flex-col">
-              <image class="logo" :src="ghsInfo.avatar" @click="enterShop(ghsInfo)" />
+              <image class="logo" :src="ghsInfo.avatar" />
             </view>
-            <view class="text-group_7 flex-col justify-between" @click="enterShop(ghsInfo)">
+            <view class="text-group_7 flex-col justify-between">
               <text class="text_8">{{ghsInfo.name}}</text>
-              <text class="text_9">{{ghsInfo.address}}{{ghsInfo.floor}}</text>
+              <text class="text_9"></text>
             </view>
           </view>
           <view class="box_4 flex-col"></view>
@@ -32,6 +32,9 @@
           </view>
           <view class="button_4 flex-col" v-if="ghsInfo.isOpen == 1" @click="enterShop(ghsInfo)"><text class="text_13">买花</text></view>
           <view class="button_5 flex-col" v-else @click="enterShop(ghsInfo)"><text class="text_13">买花</text></view>
+
+          <view class="button_6 flex-col" v-if="ghsInfo.presell && ghsInfo.presell == 1" @click="bookItem(ghsInfo)"><text class="text_13">预订</text></view>
+
         </view>
 
       </template>
@@ -60,6 +63,10 @@ export default {
     })
   },
   methods: {
+    bookItem(item){
+      const { id } = item
+      this.pageTo({url: '/pagesPurchase/bookProduct?id='+id})
+    },
     enterShop(item) {
       if(item.isOpen == 0){
         this.$msg('已休店,请选择其它门店')
@@ -346,8 +353,8 @@ export default {
         background-size: 137upx 137upx;
         width: 130upx;
         position: absolute;
-        left: 590upx;
-        top: 80upx;
+        left: 585upx;
+        top: 98upx;
         border-radius:39upx;
         .text_13 {
           color: rgba(255, 255, 255, 1);
@@ -363,8 +370,25 @@ export default {
         background-size: 137upx 137upx;
         width: 130upx;
         position: absolute;
-        left: 590upx;
-        top: 80upx;
+        left: 585upx;
+        top: 98upx;
+        border-radius:39upx;
+        .text_13 {
+          color: rgba(255, 255, 255, 1);
+          font-size: 30upx;
+          font-weight:bold;
+        }
+      }
+      .button_6 {
+        height: 80upx;
+        line-height:80upx;
+        text-align:center;
+        background-color:rgb(18, 175, 18);
+        background-size: 137upx 137upx;
+        width: 130upx;
+        position: absolute;
+        left: 390upx;
+        top: 98upx;
         border-radius:39upx;
         .text_13 {
           color: rgba(255, 255, 255, 1);