Просмотр исходного кода

更新骑手送达拍照,必选项更新,满减功能

zhuxiuping 2 лет назад
Родитель
Сommit
989807e8e5
100 измененных файлов с 649 добавлено и 216 удалено
  1. 4 2
      common/config.js
  2. 40 31
      pages/index/index.vue
  3. 39 9
      pages/index/shop/confirmOrder.vue
  4. 282 116
      pages/index/shop/goodsDet.vue
  5. 141 25
      pages/index/shop/goodsList.vue
  6. 126 25
      pages/index/shop/index.vue
  7. 8 7
      pages/my/index.vue
  8. 2 1
      pages/order/index.vue
  9. 5 0
      pages/public/login.vue
  10. 0 0
      unpackage/dist/build/.automator/h5/.automator.json
  11. 2 0
      unpackage/dist/build/h5/index.html
  12. BIN
      unpackage/dist/build/h5/my/static/address/dete.png
  13. BIN
      unpackage/dist/build/h5/my/static/address/write.png
  14. BIN
      unpackage/dist/build/h5/my/static/apply/addimg.png
  15. BIN
      unpackage/dist/build/h5/my/static/coupon/failure.png
  16. BIN
      unpackage/dist/build/h5/my/static/coupon/has.png
  17. BIN
      unpackage/dist/build/h5/my/static/integral/integral.png
  18. BIN
      unpackage/dist/build/h5/my/static/integral/rectangular.png
  19. BIN
      unpackage/dist/build/h5/my/static/shoppingCar/add.png
  20. BIN
      unpackage/dist/build/h5/my/static/shoppingCar/jian.png
  21. BIN
      unpackage/dist/build/h5/my/static/task/goldcoins.png
  22. BIN
      unpackage/dist/build/h5/my/static/task/level.png
  23. BIN
      unpackage/dist/build/h5/my/static/tousu/black.png
  24. BIN
      unpackage/dist/build/h5/my/static/tousu/orange.png
  25. BIN
      unpackage/dist/build/h5/my/static/vip/bg.png
  26. BIN
      unpackage/dist/build/h5/my/static/vip/vip.png
  27. BIN
      unpackage/dist/build/h5/my/static/wallet/face.png
  28. BIN
      unpackage/dist/build/h5/my/static/wallet/pay.png
  29. BIN
      unpackage/dist/build/h5/my/static/wallet/right1.png
  30. BIN
      unpackage/dist/build/h5/running/static/dw.png
  31. BIN
      unpackage/dist/build/h5/running/static/hb_bg.png
  32. BIN
      unpackage/dist/build/h5/running/static/hb_btn.png
  33. BIN
      unpackage/dist/build/h5/running/static/icon_f.png
  34. BIN
      unpackage/dist/build/h5/running/static/icon_qh.png
  35. BIN
      unpackage/dist/build/h5/running/static/icon_s.png
  36. BIN
      unpackage/dist/build/h5/running/static/icon_weixin.png
  37. BIN
      unpackage/dist/build/h5/running/static/location.png
  38. BIN
      unpackage/dist/build/h5/running/static/mai.png
  39. BIN
      unpackage/dist/build/h5/running/static/rider.png
  40. BIN
      unpackage/dist/build/h5/running/static/xinxi.png
  41. BIN
      unpackage/dist/build/h5/running/static/zhifubao.png
  42. BIN
      unpackage/dist/build/h5/static/images/addimg.png
  43. BIN
      unpackage/dist/build/h5/static/images/empty.png
  44. BIN
      unpackage/dist/build/h5/static/images/index/add.png
  45. BIN
      unpackage/dist/build/h5/static/images/index/all.png
  46. BIN
      unpackage/dist/build/h5/static/images/index/attention.png
  47. BIN
      unpackage/dist/build/h5/static/images/index/attention_forbid.png
  48. BIN
      unpackage/dist/build/h5/static/images/index/banner.png
  49. BIN
      unpackage/dist/build/h5/static/images/index/delete.png
  50. BIN
      unpackage/dist/build/h5/static/images/index/diancan.png
  51. BIN
      unpackage/dist/build/h5/static/images/index/dianlogo.png
  52. BIN
      unpackage/dist/build/h5/static/images/index/gonggao.png
  53. BIN
      unpackage/dist/build/h5/static/images/index/hb_bg.png
  54. BIN
      unpackage/dist/build/h5/static/images/index/hb_btn.png
  55. BIN
      unpackage/dist/build/h5/static/images/index/hd.png
  56. BIN
      unpackage/dist/build/h5/static/images/index/icon_weixin.png
  57. BIN
      unpackage/dist/build/h5/static/images/index/jian.png
  58. BIN
      unpackage/dist/build/h5/static/images/index/jifen.png
  59. BIN
      unpackage/dist/build/h5/static/images/index/jinbi.png
  60. BIN
      unpackage/dist/build/h5/static/images/index/location.png
  61. BIN
      unpackage/dist/build/h5/static/images/index/phone.png
  62. BIN
      unpackage/dist/build/h5/static/images/index/pindan.png
  63. BIN
      unpackage/dist/build/h5/static/images/index/renwu.png
  64. BIN
      unpackage/dist/build/h5/static/images/index/right.png
  65. BIN
      unpackage/dist/build/h5/static/images/index/right2.png
  66. BIN
      unpackage/dist/build/h5/static/images/index/shang.png
  67. BIN
      unpackage/dist/build/h5/static/images/index/shang1.png
  68. BIN
      unpackage/dist/build/h5/static/images/index/shop.png
  69. BIN
      unpackage/dist/build/h5/static/images/index/xia.png
  70. BIN
      unpackage/dist/build/h5/static/images/index/xia1.png
  71. BIN
      unpackage/dist/build/h5/static/images/msg/add.png
  72. BIN
      unpackage/dist/build/h5/static/images/msg/close.png
  73. BIN
      unpackage/dist/build/h5/static/images/msg/msg.png
  74. BIN
      unpackage/dist/build/h5/static/images/my/1.png
  75. BIN
      unpackage/dist/build/h5/static/images/my/10.png
  76. BIN
      unpackage/dist/build/h5/static/images/my/11.png
  77. BIN
      unpackage/dist/build/h5/static/images/my/12.png
  78. BIN
      unpackage/dist/build/h5/static/images/my/2.png
  79. BIN
      unpackage/dist/build/h5/static/images/my/3.png
  80. BIN
      unpackage/dist/build/h5/static/images/my/4.png
  81. BIN
      unpackage/dist/build/h5/static/images/my/5.png
  82. BIN
      unpackage/dist/build/h5/static/images/my/6.png
  83. BIN
      unpackage/dist/build/h5/static/images/my/7.png
  84. BIN
      unpackage/dist/build/h5/static/images/my/8.png
  85. BIN
      unpackage/dist/build/h5/static/images/my/9.png
  86. BIN
      unpackage/dist/build/h5/static/images/my/a1.png
  87. BIN
      unpackage/dist/build/h5/static/images/my/a2.png
  88. BIN
      unpackage/dist/build/h5/static/images/my/a3.png
  89. BIN
      unpackage/dist/build/h5/static/images/my/a4.png
  90. BIN
      unpackage/dist/build/h5/static/images/my/add.png
  91. BIN
      unpackage/dist/build/h5/static/images/my/bg.png
  92. BIN
      unpackage/dist/build/h5/static/images/my/hezuobg.png
  93. BIN
      unpackage/dist/build/h5/static/images/my/huiyuan.png
  94. BIN
      unpackage/dist/build/h5/static/images/my/jifen.png
  95. BIN
      unpackage/dist/build/h5/static/images/my/jinbi.png
  96. BIN
      unpackage/dist/build/h5/static/images/my/renwu.png
  97. BIN
      unpackage/dist/build/h5/static/images/my/vip.png
  98. BIN
      unpackage/dist/build/h5/static/images/my/weixin.png
  99. BIN
      unpackage/dist/build/h5/static/images/my/zhifubao.png
  100. 0 0
      unpackage/dist/build/h5/static/images/order/01.png

+ 4 - 2
common/config.js

@@ -1,5 +1,7 @@
-const ROOTPATH = "https://mxys.chuanghai-tech.com/sqx_fast";//https://mxys.chuanghai-tech.com/sqx_fast/swagger/index.html
-const ROOTPATH1 = "https://mxys.chuanghai-tech.com/sqx_fast";//tcwm.xianmaxiong.com
+// const ROOTPATH = "https://mxys.chuanghai-tech.com/sqx_fast";//https://mxys.chuanghai-tech.com/sqx_fast/swagger/index.html
+const ROOTPATH = "https://www.daweilinli.com/sqx_fast";
+// const ROOTPATH1 = "https://mxys.chuanghai-tech.com/sqx_fast";//tcwm.xianmaxiong.com
+const ROOTPATH1 = "https://www.daweilinli.com/sqx_fast";//tcwm.xianmaxiong.com
 const ROOTPATH2 = "wss://mxys.chuanghai-tech.com/wss/websocket/"//联系客服
 const ROOTPATH3 = "wss://mxys.chuanghai-tech.com/wss/ordersChat/"//聊天
 

+ 40 - 31
pages/index/index.vue

@@ -70,7 +70,7 @@
 								<image src="../../static/images/index/hd.png" mode=""></image>
 							</view>
 							<view class="huodong-box-c-title-r">
-								最快1小时送
+								美食速
 							</view>
 						</view>
 						<view class="huodong-box-c-list">
@@ -224,10 +224,13 @@
 			</view>
 			<!-- <empty v-if="!shopList.length" ></empty> -->
 			<view class="page-box" v-if="!shopList.length">
-				<view class="centre">
+				<view class="centre" v-if="XCXIsSelect == '是'">
 					<image src="../../static/images/empty.png" mode=""></image>
 					<view class="tips">暂无内容</view>
 				</view>
+				<view class="centre" v-else-if="XCXIsSelect == '否'">
+					<image style="width: 345px;height: 140px;" src="https://mxys.chuanghai-tech.com/img/20240315/12fa3c96351f4f10abae1ba251d4c284.jpg" mode=""></image>
+				</view>
 			</view>
 			<!-- 打样提示 -->
 			<view v-if="hintShow" class="hintPopul" @click.stop="hintShow=false">
@@ -648,6 +651,7 @@
 					console.log(res)
 					that.lat = res.latitude;
 					that.lng = res.longitude;
+					that.defaultAddress()
 				}
 			});
 			that.userId = uni.getStorageSync('userId') ? uni.getStorageSync('userId') : ''
@@ -656,7 +660,7 @@
 			that.lat = uni.getStorageSync('lat') ? uni.getStorageSync('lat') : that.lat
 			console.log(that.userId, '我的id')
 			// if (this.lng && this.lat) {
-			that.defaultAddress()
+			// that.defaultAddress()
 			that.getjxShop(); //精选商家
 			// }
 
@@ -1054,34 +1058,34 @@
 				this.shop = e
 				// console.log(e, '当前店铺')
 
-				// let myDate = new Date();
-				// let hours = myDate.getHours();
-				// let minute = myDate.getMinutes();
-				// let openTime = this.shop.businessHours.split(':')[0] //开始小时
-				// let openTime1 = this.shop.businessHours.split(':')[1] //开始分钟
-				// let closeTime = this.shop.lockHours.split(':')[0] //结束小时
-				// let closeTime1 = this.shop.lockHours.split(':')[1] //结束分钟.
-				// console.log(hours)
-				// console.log(minute)
-				// console.log(openTime)
-				// console.log(openTime1)
-
-				// console.log(closeTime)
-				// console.log(closeTime1)
-				// console.log(minute >= closeTime1)
-				// if (hours < openTime) {
-				// 	this.hintShow = true
-				// 	return
-				// } else if (hours == openTime && minute < openTime1) {
-				// 	this.hintShow = true
-				// 	return
-				// } else if (hours >= closeTime) {
-				// 	this.hintShow = true
-				// 	return
-				// } else if (hours == closeTime && minute >= closeTime1) {
-				// 	this.hintShow = true
-				// 	return
-				// }
+				let myDate = new Date();
+				let hours = myDate.getHours();
+				let minute = myDate.getMinutes();
+				let openTime = this.shop.businessHours.split(':')[0] //开始小时
+				let openTime1 = this.shop.businessHours.split(':')[1] //开始分钟
+				let closeTime = this.shop.lockHours.split(':')[0] //结束小时
+				let closeTime1 = this.shop.lockHours.split(':')[1] //结束分钟.
+				console.log(hours)
+				console.log(minute)
+				console.log(openTime)
+				console.log(openTime1)
+
+				console.log(closeTime)
+				console.log(closeTime1)
+				console.log(minute >= closeTime1)
+				if (hours < openTime) {
+					this.hintShow = true
+					return
+				} else if (hours == openTime && minute < openTime1) {
+					this.hintShow = true
+					return
+				} else if (hours > closeTime) {
+					this.hintShow = true
+					return
+				} else if (hours == closeTime && minute >= closeTime1) {
+					this.hintShow = true
+					return
+				}
 
 				console.log(url)
 				if (this.userId) {
@@ -1270,7 +1274,12 @@
 
 		},
 		onReachBottom: function() {
+			console.log('当前长度',this.shopList.length,this.totalCount)
+			
 			if (this.shopList.length < this.totalCount) {
+				wx.showLoading({
+				   title: '加载中...',
+				 })
 				this.page = this.page + 1;
 				this.getShopList()
 			} else {

+ 39 - 9
pages/index/shop/confirmOrder.vue

@@ -220,7 +220,10 @@
 				goodsList: [],
 				XCXIsSelect: '是',
 				remark: '',
-				GoodsorderId: ''
+				GoodsorderId: '',
+				ifPaotui:0,//是否满减
+				lng:'',
+				lat:''
 			};
 		},
 		onLoad(option) {
@@ -278,7 +281,29 @@
 			// #endif
 
 			this.shopId = option.shopId;
+			// #ifndef H5
+			uni.getLocation({
+				type: 'gcj02', //返回可以用于uni.openLocation的经纬度
+				success: function(res) {
+					this.lat = res.latitude;
+					this.lng = res.longitude;
+			
+				}
+			});
+			this.getShopDet(this.shopId);
+			// #endif
+			// #ifdef H5
+			uni.getLocation({
+				type: 'gcj02', //返回可以用于uni.openLocation的经纬度
+				success: function(res) {
+					this.lat = res.latitude;
+					this.lng = res.longitude;
+				}
+			});
+			
 			this.getShopDet(this.shopId);
+			// #endif
+			
 			this.orderType = option.orderType;
 			if (option.orderId) {
 				this.orderId = option.orderId;
@@ -287,7 +312,7 @@
 			uni.showLoading({
 				title: '加载中...'
 			});
-			this.getOrderList();
+			// this.getOrderList();
 			this.getAddressList();
 		},
 		onShow() {
@@ -323,6 +348,8 @@
 				this.$Request.get('/app/goods/selectGoodsList', data).then(res => {
 					if (res.code == 0 && res.data) {
 						this.shopDet = res.data.goodsShop;
+						this.ifPaotui=res.data.goodsShop.enableFullReductionFlag
+						this.getOrderList();
 					}
 				});
 			},
@@ -478,16 +505,19 @@
 						}
 
 						// this.paotuiMoney = this.dataList.errandMoney
-						// 判断商品金额是否大于最低减免配送费金额
-						// console.log(this.goodsMoney, '商品总金额', this.dataList.exemptMinMoney)
-						if (Number(this.goodsMoney) >= Number(this.dataList.exemptMinMoney)) {
-							this.paotuiMoney = 0;
-						} else {
+						if(this.ifPaotui==1){
 							this.paotuiMoney = this.dataList.errandMoney;
+						}else if(this.ifPaotui==0){
+							// 判断商品金额是否大于最低减免配送费金额
+							console.log(this.goodsMoney, '商品总金额', res,this.dataList.exemptMinMoney)
+							if (Number(this.goodsMoney) >= Number(this.dataList.exemptMinMoney)) {
+								this.paotuiMoney = 0;
+							} else {
+								this.paotuiMoney = this.dataList.errandMoney;
+							}
 						}
-
+						
 						this.totalPrice = res.data.money;
-
 						if (this.orderType == 2) {
 							this.totalPrice1 = parseFloat(parseFloat(this.totalPrice) + parseFloat(this
 								.paotuiMoney) + parseFloat(this.dabaoMoney)).toFixed(2);

+ 282 - 116
pages/index/shop/goodsDet.vue

@@ -71,7 +71,7 @@
 							</view>
 						</view> -->
 					</view>
-					
+
 				</view>
 			</view>
 			<!-- 图片详情 -->
@@ -82,7 +82,7 @@
 					</view>
 					<view class="imgInfo-box-img">
 						<image v-for="(item,index) in goodsDet.goodsParticularsPicture" :key='index' :src="item"
-							 mode="widthFix"></image>
+							mode="widthFix"></image>
 					</view>
 					<!-- <view class="detail_describe" v-if="goodsDet.goodsParticularsPicture.length">
 						<view class="detail_describe_ce">
@@ -94,7 +94,7 @@
 				</view>
 			</view>
 		</view>
-		
+
 		<!-- 评论 -->
 		<view v-if="current==1">
 			<view class="pingjia">
@@ -116,8 +116,7 @@
 								:plain="false" :custom-style="count==3?customStyle:customStyle1">
 								差评({{EvaluateData.negativeComment?EvaluateData.negativeComment:0}})</u-button>
 						</view>
-						<view class="pingjia-box-item" v-for="(item, index) in EvaluateList"
-							:key='index'>
+						<view class="pingjia-box-item" v-for="(item, index) in EvaluateList" :key='index'>
 							<view class="flex justify-between align-center">
 								<view class="flex align-center">
 									<u-avatar :src="item.avatar" size="65"></u-avatar>
@@ -129,13 +128,16 @@
 										</u-icon>
 									</view>
 								</view>
-								
+
 								<view class="timess">{{item.createTime}}</view>
 							</view>
 							<view class="margin-top-sm">{{item.evaluateMessage}}</view>
 							<view class="pinglunImg" v-if="item.pictures!=undefined && item.pictures">
 								<view class="pinglunImg-box flex justify-between flex-wrap">
-									<image style="margin-bottom: 20rpx;" @click="yuanlan(item.pictures==undefined?[]:item.pictures.split(','),index2)" v-for="(item2,index2) in item.pictures==undefined?[]:item.pictures.split(',')" :src="item2" mode=""></image>
+									<image style="margin-bottom: 20rpx;"
+										@click="yuanlan(item.pictures==undefined?[]:item.pictures.split(','),index2)"
+										v-for="(item2,index2) in item.pictures==undefined?[]:item.pictures.split(',')"
+										:src="item2" mode=""></image>
 									<image style="margin-bottom: 20rpx;width: 140rpx;height: 0;" src="" mode=""></image>
 									<image style="margin-bottom: 20rpx;width: 140rpx;height: 0;" src="" mode=""></image>
 								</view>
@@ -153,7 +155,7 @@
 				</view>
 			</view>
 		</view>
-		
+
 		<!-- <view class="detail">
 			<view class="detail_text">{{goodsDet.goodsName}}</view>
 			
@@ -188,11 +190,11 @@
 				<u-parse :html="goodsDet.goodsDescribe"></u-parse>
 			</view>
 		</view> -->
-		
-		
+
+
 		<view style="height: 180rpx;"></view>
 		<!-- 加购 -->
-		<view class="settlement" @click="isPopupShow" >
+		<view class="settlement" @click="isPopupShow">
 			<view class="settlement_img">
 				<image src="../../../static/images/index/diancan.png" mode=""></image>
 				<view class="settlement_hot">{{goodsNum}}</view>
@@ -216,8 +218,7 @@
 				<scroll-view scroll-y='true' class="popup">
 					<view v-for="(item,ind) in goodsList.orderGoodsList[0]" :key='ind'>
 						<view class="flex align-center margin-tb-sm">
-							<image :src="item.goodsPicture[0]"
-								style="width: 96rpx;height: 96rpx;border-radius: 10rpx;">
+							<image :src="item.goodsPicture[0]" style="width: 96rpx;height: 96rpx;border-radius: 10rpx;">
 							</image>
 							<view class="margin-left-sm">
 								<view>{{item.goodsName}}</view>
@@ -253,7 +254,7 @@
 				<view class="settlement_ri" @click.stop="goConfirm()">去结算</view>
 			</view>
 		</u-popup>
-		
+
 		<!-- 选择规格弹窗 -->
 		<u-popup v-model="skuShow" mode="center" :closeable='true' border-radius="20">
 			<view style="width: 700rpx;">
@@ -263,8 +264,7 @@
 					<view class="flex margin-tb-sm flex-wrap">
 						<view v-for="(ite, ind) in item.detail" :key="ind" @click="skuSel(ite,index,ind)"
 							class="margin-bottom-sm">
-							<view class="skuBtn"
-								:class="item.goodsId == index && item.attrId == ind?'active': ''">
+							<view class="skuBtn" :class="item.goodsId == index && item.attrId == ind?'active': ''">
 								{{ite.name}}
 							</view>
 						</view>
@@ -281,11 +281,11 @@
 				<view class="detail_account_bottom padding">
 					<view class="detail_account_bottom_le" @click="payment()">立即购买</view>
 					<view class="detail_account_bottom_ri" @click="orderSel(2)">加入购物车</view>
-					
+
 				</view>
 			</view>
 		</u-popup>
-		
+
 		<!-- <view class="detail_account">
 			<view class="detail_account_top">
 				<view class="detail_account_top_le">
@@ -327,33 +327,32 @@
 				skuShow: false,
 				totalPrice: 0,
 				goodsNum: 0,
-				infoList:[
-					{
-						name:'原料',
-						con:'土豆'
+				infoList: [{
+						name: '原料',
+						con: '土豆'
 					},
 					{
-						name:'份量',
-						con:'1人份'
+						name: '份量',
+						con: '1人份'
 					},
 					{
-						name:'荤素',
-						con:'素菜'
+						name: '荤素',
+						con: '素菜'
 					},
 					{
-						name:'菜系',
-						con:'川菜'
+						name: '菜系',
+						con: '川菜'
 					},
 					{
-						name:'口味',
-						con:'咸香'
+						name: '口味',
+						con: '咸香'
 					},
 					{
-						name:'辅料',
-						con:'姜,辣椒,蒜,葱'
+						name: '辅料',
+						con: '姜,辣椒,蒜,葱'
 					}
 				],
-				current:0,
+				current: 0,
 				tabs: [{
 						id: 0,
 						name: '详情'
@@ -391,8 +390,9 @@
 				evaluateLimit: 10,
 				grade: '',
 				count: 0,
-				EvaluateList:[],
-				backType:'',
+				EvaluateList: [],
+				dataList:[],//店铺商品
+				backType: '',
 			}
 		},
 		onLoad(option) {
@@ -406,7 +406,8 @@
 			uni.showLoading({
 				title: '加载中...'
 			})
-			this.getData()
+			this.getData()
+			this.getShopData()
 			this.getEchoOrder()
 		},
 		onShow() {
@@ -419,7 +420,21 @@
 				this.getEvaluateList()
 			}
 		},
-		methods: {
+		methods: {
+			// 获取店铺信息
+			getShopData() {
+				let data = {
+					shopId: this.shopId
+					
+				}
+				this.$Request.get("/app/goods/selectGoodsList", data).then(res => {
+					if (res.code == 0 && res.data) {
+						this.dataList = res.data.list
+
+					}
+					uni.hideLoading()
+				});
+			},
 			// 去结算
 			goConfirm() {
 				if (!this.userId) {
@@ -428,12 +443,57 @@
 					})
 					return
 				}
-				console.log(this.goodsList)
+
+
+				let goodstr1 = 0 //商品库的 必须次数
+				let goodstr2 = 0 //购物车的 必须次数
+				let regex = new RegExp('必选', 'g');
 				if (this.goodsList && this.goodsList.orderGoodsList[0].length > 0) {
-					uni.navigateTo({
-						url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
-							.orderType
-					})
+					console.log("good12----" + this.dataList)
+					let dataList = JSON.stringify(this.dataList)
+					if (dataList.match(regex)) {
+						goodstr1 = dataList.match(regex).length
+						console.log("goodstr1c----" + goodstr1)
+						if (dataList.indexOf('必选') != -1) { //检测商品是否存在必选
+
+							let goodsList = JSON.stringify(this.goodsList.orderGoodsList)
+							if (goodsList.match(regex)) {
+								goodstr2 = goodsList.match(regex).length
+								console.log("goodstr2----" + goodstr2)
+
+
+								if (goodstr1 == goodstr2) { //检查购物车商品是否存在必须
+									uni.navigateTo({
+										url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId +
+											'&orderType=' + this
+											.orderType
+									})
+								} else {
+									uni.showToast({
+										title: "有" + goodstr1 + "个必选商品,请选择后结算",
+										icon: "none"
+									})
+									return
+								}
+
+							} else {
+								uni.showToast({
+									title: "有" + goodstr1 + "个必选商品,请选择后结算",
+									icon: "none"
+								})
+								return
+							}
+						}
+
+
+
+					} else {
+						uni.navigateTo({
+							url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
+								.orderType
+						})
+					}
+
 				} else {
 					uni.showToast({
 						title: '请先添加商品',
@@ -442,18 +502,18 @@
 				}
 			},
 			// 预览图片
-			yuanlan(arr,index){
+			yuanlan(arr, index) {
 				uni.previewImage({
-					urls:arr,
-					current:index
+					urls: arr,
+					current: index
 				})
 			},
-			switchTba(index){
+			switchTba(index) {
 				this.current = index
-				if(index==0){
+				if (index == 0) {
 					this.getData()
-				}else{
-					this.evaluatePage =1;
+				} else {
+					this.evaluatePage = 1;
 					this.getEvaluateList()
 				}
 			},
@@ -502,8 +562,11 @@
 				}
 				this.$Request.get("/app/order/echoOrder", data).then(res => {
 					if (res.code == 0 && res.data) {
-						this.echoSkuList = res.data
-						this.echoSku = res.data[0].skuMessage.split(',')
+						this.echoSkuList = res.data
+						if(res.data[0].skuMessage){
+							this.echoSku = res.data[0].skuMessage.split(',')
+						}
+						
 					}
 				});
 			},
@@ -526,33 +589,109 @@
 						return;
 					}
 				}
-				let data = {
-					goodsId: this.goodsDet.goodsId,
-					skuMessage: this.skuMessage,
-					skuId: this.skuId,
-					num: this.value,
-					orderType: this.orderType,
-					shopId: this.shopId,
+				
+				let goodstr1 = 0 //商品库的 必须次数
+				let goodstr2 = 0 //购物车的 必须次数
+				let regex = new RegExp('必选', 'g');
+				console.log("good----")
+				console.log("good----" +this.dataList,this.goodsDet)
+				let dataList = JSON.stringify(this.dataList)
+				console.log("good22----" +dataList)
+				if (dataList.match(regex)) {
+					goodstr1 = dataList.match(regex).length
+					console.log("goodstr1n----" + goodstr1)
+					if (dataList.indexOf('必选') != -1) { //检测商品是否存在必选
+						let goodsList = JSON.stringify(this.goodsDet)
+						if (goodsList.match(regex)) {
+							goodstr2 = goodsList.match(regex).length
+							console.log("goodstr2----" + goodstr2)
+							if (goodstr1 == goodstr2) { //检查购物车商品是否存在必须
+								let data = {
+									goodsId: this.goodsDet.goodsId,
+									skuMessage: this.skuMessage,
+									skuId: this.skuId,
+									num: this.value,
+									orderType: this.orderType,
+									shopId: this.shopId,
+								}
+								this.$Request.post("/app/order/buyGoods", data).then(res => {
+									if (res.code == 0) {
+										this.skuShow = false
+										uni.navigateTo({
+											url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+												.orderType
+										})
+								
+									} else {
+										this.$queue.showToast(res.msg);
+									}
+								})
+							} else {
+								uni.showToast({
+									title: "有" + goodstr1 + "个必选商品,请选择后结算",
+									icon: "none"
+								})
+								return
+							}
+				
+						} else {
+							uni.showToast({
+								title: "有" + goodstr1 + "个必选商品,请选择后结算",
+								icon: "none"
+							})
+							return
+						}
+					}
+				} else {
+					let data = {
+						goodsId: this.goodsDet.goodsId,
+						skuMessage: this.skuMessage,
+						skuId: this.skuId,
+						num: this.value,
+						orderType: this.orderType,
+						shopId: this.shopId,
+					}
+					this.$Request.post("/app/order/buyGoods", data).then(res => {
+						if (res.code == 0) {
+							this.skuShow = false
+							uni.navigateTo({
+								url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+									.orderType
+							})
+					
+						} else {
+							this.$queue.showToast(res.msg);
+						}
+					})
 				}
-				this.$Request.post("/app/order/buyGoods", data).then(res => {
-					if (res.code == 0) {
+				
+				// let data = {
+				// 	goodsId: this.goodsDet.goodsId,
+				// 	skuMessage: this.skuMessage,
+				// 	skuId: this.skuId,
+				// 	num: this.value,
+				// 	orderType: this.orderType,
+				// 	shopId: this.shopId,
+				// }
+				// this.$Request.post("/app/order/buyGoods", data).then(res => {
+				// 	if (res.code == 0) {
 
-						uni.navigateTo({
-							url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
-								.orderType
-						})
+				// 		uni.navigateTo({
+				// 			url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+				// 				.orderType
+				// 		})
 
-					} else {
-						this.$queue.showToast(res.msg);
-					}
-				})
+				// 	} else {
+				// 		this.$queue.showToast(res.msg);
+				// 	}
+				// })
 			},
 			// 添加数量
 			add(item, index) {
 				// this.count++;
 				console.log(item, index)
 				this.goodsList.orderGoodsList[0][index].goodsNum++
-			
+
 				let data = {
 					orderGoodsId: this.goodsList.orderGoodsList[0][index].id,
 					type: 1,
@@ -617,15 +756,15 @@
 					// orderType: this.orderType
 				}
 				this.$Request.get("/app/order/selectAllOrderList", data).then(res => {
-					console.log(res.data,'rrrrrrrrrrrrrr')
+					console.log(res.data, 'rrrrrrrrrrrrrr')
 					if (res.code == 0 && res.data.pageUtils.list.length) {
 						this.goodsList = res.data.pageUtils.list[0]
-			
+
 						if (this.goodsList && this.goodsList.orderGoodsList && this.goodsList.orderGoodsList[0]) {
-			
+
 							this.totalPrice = res.data.money
 							this.goodsNum = 0
-			
+
 							this.goodsList.orderGoodsList[0].forEach(res => {
 								res.goodsPicture = res.goodsPicture.split(',')
 								this.goodsNum += res.goodsNum
@@ -724,15 +863,15 @@
 									url: '/pages/diancan/payOrder?shopId=' + this.shopId
 								})
 							} else {
-								if(this.backType!=''){
+								if (this.backType != '') {
 									setTimeout(function() {
 										uni.navigateBack()
 									}, 1000)
-								}else{
+								} else {
 									this.skuShow = false
 									this.getOrderList()
 								}
-								
+
 							}
 						} else {
 							this.$queue.showToast(res.msg);
@@ -827,33 +966,39 @@
 		height: 100vh;
 		background-color: #F5F5F5;
 	}
-	.timess{
+
+	.timess {
 		color: #999999;
 		font-size: 24rpx;
 		margin-left: 10rpx;
 	}
-	.pinglunImg{
+
+	.pinglunImg {
 		width: 100%;
 		margin-top: 10rpx;
 	}
-	.pinglunImg-box{
+
+	.pinglunImg-box {
 		width: 100%;
-		image{
+
+		image {
 			// margin-left: 10rpx;
 			width: 140upx;
 			height: 140upx;
 			border-radius: 10rpx;
 		}
 	}
+
 	// 评价
-	.pingjia{
+	.pingjia {
 		width: 100%;
 		height: auto;
 		display: flex;
 		justify-content: center;
 		margin-top: 20rpx;
+
 		// padding-bottom: 50rpx;
-		.pingjia-box{
+		.pingjia-box {
 			width: 686rpx;
 			height: auto;
 			background-color: #FFFFFF;
@@ -861,7 +1006,8 @@
 			display: flex;
 			justify-content: center;
 			flex-wrap: wrap;
-			.pingjia-box-title{
+
+			.pingjia-box-title {
 				// background-color: red;
 				width: 600rpx;
 				padding-top: 40rpx;
@@ -870,22 +1016,26 @@
 				font-weight: 800;
 				columns: #333333;
 			}
-			.pingjia-box-btn{
+
+			.pingjia-box-btn {
 				width: 600rpx;
 				display: flex;
 				margin-top: 30rpx;
 				padding-bottom: 50rpx;
 			}
-			.pingjia-box-item:nth-of-type(1){
+
+			.pingjia-box-item:nth-of-type(1) {
 				margin-top: 50rpx;
 			}
-			.pingjia-box-item{
+
+			.pingjia-box-item {
 				width: 600rpx;
 				margin-bottom: 50rpx;
 			}
-			
+
 		}
 	}
+
 	.skuBtn {
 		padding: 10rpx 30rpx;
 		border-radius: 10rpx;
@@ -895,6 +1045,7 @@
 		color: #333333;
 		border: 2px solid #F2F2F2;
 	}
+
 	.info {
 		width: 100%;
 		height: 283rpx;
@@ -1018,9 +1169,11 @@
 			width: 686rpx;
 			height: 100%;
 			display: flex;
-			.tabs-box-item:nth-of-type(1){
+
+			.tabs-box-item:nth-of-type(1) {
 				margin-left: 0;
 			}
+
 			.tabs-box-item {
 				font-size: 32rpx;
 				font-weight: bold;
@@ -1030,7 +1183,8 @@
 				display: flex;
 				flex-wrap: wrap;
 				justify-content: center;
-				view{
+
+				view {
 					width: 55rpx;
 					height: 10rpx;
 					background-color: #FCD202;
@@ -1040,39 +1194,46 @@
 			}
 		}
 	}
-	.goodsInfo{
+
+	.goodsInfo {
 		width: 100%;
 		height: auto;
 		display: flex;
 		justify-content: center;
 		margin-top: 20rpx;
-		.goodsInfo-box{
+
+		.goodsInfo-box {
 			width: 686rpx;
 			height: 100%;
 			background: #FFFFFF;
 			border-radius: 16rpx 16rpx 0 0;
 			display: flex;
 			justify-content: center;
-			.goodsInfo-box-c{
+
+			.goodsInfo-box-c {
 				width: 600rpx;
 				height: 100%;
-				padding:40rpx 0 40rpx 0;
+				padding: 40rpx 0 40rpx 0;
 			}
-			.goodsInfo-box-title{
+
+			.goodsInfo-box-title {
 				// margin-top: 40rpx;
 				color: #333333;
 				font-size: 32rpx;
 				font-weight: 800;
 			}
-			.goodsInfo-box-c-item{
+
+			.goodsInfo-box-c-item {
 				margin-top: 40rpx;
 				display: flex;
-				view:nth-of-type(1){
+
+				view:nth-of-type(1) {
 					font-size: 28rpx;
 					color: #999999;
 					font-weight: 500;
 				}
-				view:nth-of-type(2){
+
+				view:nth-of-type(2) {
 					font-size: 28rpx;
 					color: #333333;
 					font-weight: 500;
@@ -1081,31 +1242,36 @@
 			}
 		}
 	}
-	.imgInfo{
+
+	.imgInfo {
 		width: 100%;
 		height: auto;
 		display: flex;
 		justify-content: center;
-		.imgInfo-box{
+
+		.imgInfo-box {
 			width: 686rpx;
 			background-color: #FFFFFF;
 			border-radius: 0 0 16rpx 16rpx;
-			.imgInfo-box-title{
+
+			.imgInfo-box-title {
 				width: 100%;
 				text-align: center;
 				font-size: 28rpx;
 				font-weight: bold;
 			}
-			.imgInfo-box-img{
+
+			.imgInfo-box-img {
 				margin-top: 20rpx;
-				image{
+
+				image {
 					width: 100%;
 					margin-top: -6rpx;
 				}
 			}
 		}
 	}
-	
+
 	.settlement {
 		width: 94%;
 		background-color: #000000;
@@ -1117,7 +1283,7 @@
 		display: flex;
 		justify-content: space-between;
 	}
-	
+
 	.settlement1 {
 		width: 94%;
 		background-color: #000000;
@@ -1132,18 +1298,18 @@
 		justify-content: space-between;
 		margin: 20rpx auto;
 	}
-	
+
 	.settlement_le {
 		width: 45%;
 		padding-left: 20%;
 		color: #FFFFFF;
 		font-size: 30rpx;
 	}
-	
+
 	.settlement_le text {
 		font-size: 22rpx;
 	}
-	
+
 	.settlement_ri {
 		width: 35%;
 		background-color: #FCD202;
@@ -1156,7 +1322,7 @@
 		border-top-right-radius: 49rpx;
 		border-bottom-right-radius: 49rpx;
 	}
-	
+
 	.settlement_img {
 		width: 91rpx;
 		height: 96rpx;
@@ -1164,12 +1330,12 @@
 		// bottom: 30rpx;
 		left: 5%;
 	}
-	
+
 	.settlement_img image {
 		width: 74rpx;
 		height: 81rpx;
 	}
-	
+
 	.settlement_hot {
 		width: 35rpx;
 		height: 35rpx;
@@ -1185,15 +1351,15 @@
 		font-weight: bold;
 		color: #FFFFFF;
 	}
-	
-	
+
+
 	.select_all {
 		width: 100%;
 		position: relative;
 	}
-	
-	
-	
+
+
+
 	.btn {
 		padding: 10rpx 30rpx;
 		/* height: 60rpx; */
@@ -1403,4 +1569,4 @@
 		line-height: 2.8;
 		background-color: #FCD202;
 	}
-</style>
+</style>

+ 141 - 25
pages/index/shop/goodsList.vue

@@ -216,7 +216,8 @@
 							营业时间:{{shopDet.businessHours}}-{{shopDet.lockHours}}</view>
 						<view class="text-black margin-top-xs text-df">商家品类:{{shopDet.shopTypeName}}</view>
 						<view class="text-black margin-top-xs text-df">配送范围:{{shopDet.distributionDistance}}以内</view>
-						<view class="text-black margin-top-xs text-df">公告:{{shopDet.shopNotice}}</view>
+						<view class="text-black margin-top-xs text-df" v-if="shopDet.shopNotice">公告:{{shopDet.shopNotice}}</view>
+						<view class="text-black margin-top-xs text-df" v-else>公告:店铺开业啦!</view>
 					</view>
 				</view>
 				<!-- 结算 -->
@@ -726,26 +727,99 @@
 						return;
 					}
 				}
-				let data = {
-					goodsId: this.goodsDet.goodsId,
-					skuMessage: this.skuMessage,
-					skuId: this.skuId,
-					num: this.value,
-					orderType: this.orderType,
-					shopId: this.shopId,
-				}
-				this.$Request.post("/app/order/buyGoods", data).then(res => {
-					if (res.code == 0) {
-						this.skuShow = false
-						uni.navigateTo({
-							url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
-								.orderType
-						})
-
-					} else {
-						this.$queue.showToast(res.msg);
+				
+				let goodstr1 = 0 //商品库的 必须次数
+				let goodstr2 = 0 //购物车的 必须次数
+				let regex = new RegExp('必选', 'g');
+				let dataList = JSON.stringify(this.dataList)
+				if (dataList.match(regex)) {
+					goodstr1 = dataList.match(regex).length
+					console.log("goodstr1----" + goodstr1)
+					if (dataList.indexOf('必选') != -1) { //检测商品是否存在必选
+						let goodsList = JSON.stringify(this.goodsDet)
+						if (goodsList.match(regex)) {
+							goodstr2 = goodsList.match(regex).length
+							console.log("goodstr2----" + goodstr2)
+							if (goodstr1 == goodstr2) { //检查购物车商品是否存在必须
+								let data = {
+									goodsId: this.goodsDet.goodsId,
+									skuMessage: this.skuMessage,
+									skuId: this.skuId,
+									num: this.value,
+									orderType: this.orderType,
+									shopId: this.shopId,
+								}
+								this.$Request.post("/app/order/buyGoods", data).then(res => {
+									if (res.code == 0) {
+										this.skuShow = false
+										uni.navigateTo({
+											url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+												.orderType
+										})
+								
+									} else {
+										this.$queue.showToast(res.msg);
+									}
+								})
+							} else {
+								uni.showToast({
+									title: "有" + goodstr1 + "个必选商品,请选择后结算",
+									icon: "none"
+								})
+								return
+							}
+				
+						} else {
+							uni.showToast({
+								title: "有" + goodstr1 + "个必选商品,请选择后结算",
+								icon: "none"
+							})
+							return
+						}
 					}
-				})
+				} else {
+					let data = {
+						goodsId: this.goodsDet.goodsId,
+						skuMessage: this.skuMessage,
+						skuId: this.skuId,
+						num: this.value,
+						orderType: this.orderType,
+						shopId: this.shopId,
+					}
+					this.$Request.post("/app/order/buyGoods", data).then(res => {
+						if (res.code == 0) {
+							this.skuShow = false
+							uni.navigateTo({
+								url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+									.orderType
+							})
+					
+						} else {
+							this.$queue.showToast(res.msg);
+						}
+					})
+				}
+				
+				// let data = {
+				// 	goodsId: this.goodsDet.goodsId,
+				// 	skuMessage: this.skuMessage,
+				// 	skuId: this.skuId,
+				// 	num: this.value,
+				// 	orderType: this.orderType,
+				// 	shopId: this.shopId,
+				// }
+				// this.$Request.post("/app/order/buyGoods", data).then(res => {
+				// 	if (res.code == 0) {
+				// 		this.skuShow = false
+				// 		uni.navigateTo({
+				// 			url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+				// 				.orderType
+				// 		})
+
+				// 	} else {
+				// 		this.$queue.showToast(res.msg);
+				// 	}
+				// })
 			},
 			// 加入购物车
 			orderSel(e) {
@@ -938,12 +1012,54 @@
 					})
 					return
 				}
-				console.log(this.goodsList)
+				
+				let goodstr1 = 0 //商品库的 必须次数
+				let goodstr2 = 0 //购物车的 必须次数
+				let regex = new RegExp('必选', 'g');
 				if (this.goodsList && this.goodsList.orderGoodsList[0].length > 0) {
-					uni.navigateTo({
-						url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
-							.orderType
-					})
+					let dataList = JSON.stringify(this.dataList)
+					if (dataList.match(regex)) {
+						goodstr1 = dataList.match(regex).length
+						console.log("goodstr1----" + goodstr1)
+						if (dataList.indexOf('必选') != -1) { //检测商品是否存在必选
+				
+							let goodsList = JSON.stringify(this.goodsList.orderGoodsList)
+							if (goodsList.match(regex)) {
+								goodstr2 = goodsList.match(regex).length
+								console.log("goodstr2----" + goodstr2)
+				
+				
+								if (goodstr1 == goodstr2) { //检查购物车商品是否存在必须
+									uni.navigateTo({
+										url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
+											.orderType
+									})
+								} else {
+									uni.showToast({
+										title: "有"+goodstr1+"个必选商品,请选择后结算",
+										icon: "none"
+									})
+									return
+								}
+				
+							} else {
+								uni.showToast({
+									title: "有"+goodstr1+"个必选商品,请选择后结算",
+									icon: "none"
+								})
+								return
+							}
+						}
+				
+				
+				
+					} else {
+						uni.navigateTo({
+							url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
+								.orderType
+						})
+					}
+				
 				} else {
 					uni.showToast({
 						title: '请先添加商品',

+ 126 - 25
pages/index/shop/index.vue

@@ -27,7 +27,8 @@
 									约{{shopDet.errandTime}}分钟
 								</view>
 								<view class="margin-left-xs text-gray" v-if="shopDet.minimumDelivery">
-									{{shopDet.minimumDelivery}}元起送</view>
+									{{shopDet.minimumDelivery}}元起送
+								</view>
 							</view>
 							<view class="flex align-center margin-top-xs">
 								<!-- <view style="color: #FCD202;margin-right: 8rpx;">{{shopDet.autoSendOrder==1?'商家配送':'平台配送'}}</view> -->
@@ -239,7 +240,8 @@
 							营业时间:{{shopDet.businessHours}}-{{shopDet.lockHours}}</view>
 						<view class="text-black margin-top-xs text-df">商家品类:{{shopDet.shopTypeName}}</view>
 						<view class="text-black margin-top-xs text-df">配送范围:{{shopDet.distributionDistance}}以内</view>
-						<view class="text-black margin-top-xs text-df" v-if="shopDet.shopNotice">公告:{{shopDet.shopNotice}}</view>
+						<view class="text-black margin-top-xs text-df" v-if="shopDet.shopNotice">
+							公告:{{shopDet.shopNotice}}</view>
 						<view class="text-black margin-top-xs text-df" v-else>公告:店铺开业啦!</view>
 					</view>
 				</view>
@@ -823,26 +825,79 @@
 						return;
 					}
 				}
-				let data = {
-					goodsId: this.goodsDet.goodsId,
-					skuMessage: this.skuMessage,
-					skuId: this.skuId,
-					num: this.value,
-					orderType: this.orderType,
-					shopId: this.shopId,
-				}
-				this.$Request.post("/app/order/buyGoods", data).then(res => {
-					if (res.code == 0) {
-						this.skuShow = false
-						uni.navigateTo({
-							url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
-								.orderType
-						})
 
-					} else {
-						this.$queue.showToast(res.msg);
+				let goodstr1 = 0 //商品库的 必须次数
+				let goodstr2 = 0 //购物车的 必须次数
+				let regex = new RegExp('必选', 'g');
+				console.log("this.dataList----" + this.dataList)
+				let dataList = JSON.stringify(this.dataList)
+				if (dataList.match(regex)) {
+					goodstr1 = dataList.match(regex).length
+					console.log("goodstr1----" + goodstr1)
+					if (dataList.indexOf('必选') != -1) { //检测商品是否存在必选
+						let goodsList = JSON.stringify(this.goodsDet)
+						if (goodsList.match(regex)) {
+							goodstr2 = goodsList.match(regex).length
+							console.log("goodstr2----" + goodstr2)
+							if (goodstr1 == goodstr2) { //检查购物车商品是否存在必须
+								let data = {
+									goodsId: this.goodsDet.goodsId,
+									skuMessage: this.skuMessage,
+									skuId: this.skuId,
+									num: this.value,
+									orderType: this.orderType,
+									shopId: this.shopId,
+								}
+								this.$Request.post("/app/order/buyGoods", data).then(res => {
+									if (res.code == 0) {
+										this.skuShow = false
+										uni.navigateTo({
+											url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+												.orderType
+										})
+								
+									} else {
+										this.$queue.showToast(res.msg);
+									}
+								})
+							} else {
+								uni.showToast({
+									title: "有" + goodstr1 + "个必选商品,请选择后结算",
+									icon: "none"
+								})
+								return
+							}
+
+						} else {
+							uni.showToast({
+								title: "有" + goodstr1 + "个必选商品,请选择后结算",
+								icon: "none"
+							})
+							return
+						}
 					}
-				})
+				} else {
+					let data = {
+						goodsId: this.goodsDet.goodsId,
+						skuMessage: this.skuMessage,
+						skuId: this.skuId,
+						num: this.value,
+						orderType: this.orderType,
+						shopId: this.shopId,
+					}
+					this.$Request.post("/app/order/buyGoods", data).then(res => {
+						if (res.code == 0) {
+							this.skuShow = false
+							uni.navigateTo({
+								url: '/pages/index/shop/payOrder?orderId=' + res.data + '&orderType=' + this
+									.orderType
+							})
+					
+						} else {
+							this.$queue.showToast(res.msg);
+						}
+					})
+				}
 			},
 			// 加入购物车
 			orderSel(e) {
@@ -1039,12 +1094,55 @@
 					})
 					return
 				}
-				console.log(this.goodsList)
+
+
+				let goodstr1 = 0 //商品库的 必须次数
+				let goodstr2 = 0 //购物车的 必须次数
+				// let aa=[]
+				// let bb=[]
+				let regex = new RegExp('必选', 'g');
 				if (this.goodsList && this.goodsList.orderGoodsList[0].length > 0) {
-					uni.navigateTo({
-						url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
-							.orderType
-					})
+					// aa=this.dataList.map(item => item.goodsList)
+					// bb=aa.map(item => item)
+					// console.log('结算',aa,bb,this.dataList)
+					let dataList = JSON.stringify(this.dataList)
+					if (dataList.match(regex)) {
+						goodstr1 = dataList.match(regex).length
+						console.log("goodstr12----" + goodstr1)
+						if (dataList.indexOf('必选') != -1) { //检测商品是否存在必选
+							let goodsList = JSON.stringify(this.goodsList.orderGoodsList)
+							console.log(goodsList)
+							if (goodsList.match(regex)) {
+								goodstr2 = goodsList.match(regex).length
+								console.log("goodstr2----" + goodstr2)
+								if (goodstr1 == goodstr2) { //检查购物车商品是否存在必须
+									uni.navigateTo({
+										url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId +
+											'&orderType=' + this
+											.orderType
+									})
+								} else {
+									uni.showToast({
+										title: "有" + goodstr1 + "个必选商品,请选择后结算",
+										icon: "none"
+									})
+									return
+								}
+
+							} else {
+								uni.showToast({
+									title: "有" + goodstr1 + "个必选商品,请选择后结算",
+									icon: "none"
+								})
+								return
+							}
+						}
+					} else {
+						uni.navigateTo({
+							url: '/pages/index/shop/confirmOrder?shopId=' + this.shopId + '&orderType=' + this
+								.orderType
+						})
+					}
 				} else {
 					uni.showToast({
 						title: '请先添加商品',
@@ -1114,6 +1212,7 @@
 				this.$Request.getT('/app/order/selectOrderById?orderId=' + this.orderId).then(res => {
 					if (res.code == 0 && res.data) {
 						if (res.data.isPay && res.data.isPay == 1) {
+							this.orderId = '';
 							uni.removeStorageSync('orderId')
 						}
 					}
@@ -1439,11 +1538,13 @@
 		margin: 0;
 		border: none;
 		height: 50px;
+		line-height:25px;
 		position: relative;
 	}
 
 	.VerticalNav.nav .cu-item.cur {
 		background-color: #fff;
+		line-height:25px;
 	}
 
 

+ 8 - 7
pages/my/index.vue

@@ -29,7 +29,8 @@
 				<view class="text-lg text-bold">{{msgData.countCoupon}}</view>
 				<view>外卖优惠券</view>
 			</view>
-			<view class="text-center text-black" @click="goShop('/my/wallet/index')">
+			 <!-- @click="goShop('/my/wallet/index')" -->
+			<view class="text-center text-black">
 				<view class="text-lg text-bold">{{msgData.userMoney}}</view>
 				<view>我的余额</view>
 			</view>
@@ -95,12 +96,12 @@
 					</image>
 					<view class="text-sm">商家入驻</view>
 				</view>
-				<view class="text-center margin-tb-sm" style="width: 25%;" @click="goApplet(qishouAppId)"
+				<!-- <view class="text-center margin-tb-sm" style="width: 25%;" @click="goApplet(qishouAppId)"
 					v-if="XCXIsSelect=='是'">
 					<image src="../../static/images/my/11.png" style="width: 55rpx;height: 55rpx;" mode="scaleToFill">
 					</image>
 					<view class="text-sm">骑手入驻</view>
-				</view>
+				</view> -->
 				<!-- #endif -->
 				<!-- #ifndef MP-WEIXIN -->
 				<view class="text-center margin-tb-sm" style="width: 25%;" @click="goNav({url:'/my/apply/index'})"
@@ -141,12 +142,12 @@
 					</image>
 					<view class="text-sm">消息中心</view>
 				</view>
-				<view class="text-center margin-tb-sm" style="width: 25%;" @click="goNav({url:'/running/index/index'})"
+				<!-- <view class="text-center margin-tb-sm" style="width: 25%;" @click="goNav({url:'/running/index/index'})"
 					v-if="XCXIsSelect=='是'">
 					<image src="../../static/images/my/5.png" style="width: 55rpx;height: 55rpx;" mode="scaleToFill">
 					</image>
 					<view class="text-sm">同城跑腿</view>
-				</view>
+				</view> -->
 				<view class="text-center margin-tb-sm" style="width: 25%;" @click="goNav({url:'/my/setting/chat'})"
 					v-if="XCXIsSelect=='是'">
 					<image src="../../static/images/my/6.png" style="width: 55rpx;height: 55rpx;" mode="scaleToFill">
@@ -158,12 +159,12 @@
 					</image>
 					<view class="text-sm">地址管理</view>
 				</view>
-				<view class="text-center margin-tb-sm" style="width: 25%;" @click="goNav({url:'/my/hongbao/hongbao'})"
+				<!-- <view class="text-center margin-tb-sm" style="width: 25%;" @click="goNav({url:'/my/hongbao/hongbao'})"
 					v-if="XCXIsSelect=='是'">
 					<image src="../../static/images/my/9.png" style="width: 55rpx;height: 55rpx;" mode="scaleToFill">
 					</image>
 					<view class="text-sm">跑腿红包</view>
-				</view>
+				</view> -->
 				<view class="text-center margin-tb-sm" style="width: 25%;position: relative;"
 					@click="goNav({url:'/my/chat/index'})" v-if="XCXIsSelect=='是'">
 					<image src="../../static/images/order/kefu.png" style="width: 55rpx;height: 55rpx;"

+ 2 - 1
pages/order/index.vue

@@ -105,7 +105,8 @@
 								class="text-lg text-bold text-black margin-left-xs">¥{{item.payMoney}}</text></view>
 						<view class="flex padding-tb-sm">
 							<view v-if="item.status == 3" class="btn" @click.stop="finish(item)">确认收货</view>
-							<view v-if="item.status == 6||item.status == 7" class="btn" @click.stop="cancel(item)">取消订单
+							<!-- item.status == 6|| -->
+							<view v-if="item.status == 7" class="btn" @click.stop="cancel(item)">取消订单
 							</view>
 							<view v-if="item.status == 4 &&item.commentFlag!=1" class="btn" @click.stop="pingjia(item)">
 								评价订单</view>

+ 5 - 0
pages/public/login.vue

@@ -307,6 +307,11 @@
 								console.log(that.phoneNum)
 								if (res.data.isPhone == '2' && that.phoneNum) {
 									that.weixinPhone = true;
+									uni.showToast({
+										icon: 'none',
+										position: 'bottom',
+										title: '请再次点击授权手机号'
+									});
 								} else {
 									that.getWeixinInfo(sendData);
 								}

+ 0 - 0
unpackage/dist/build/.automator/h5/.automator.json


Разница между файлами не показана из-за своего большого размера
+ 2 - 0
unpackage/dist/build/h5/index.html


BIN
unpackage/dist/build/h5/my/static/address/dete.png


BIN
unpackage/dist/build/h5/my/static/address/write.png


BIN
unpackage/dist/build/h5/my/static/apply/addimg.png


BIN
unpackage/dist/build/h5/my/static/coupon/failure.png


BIN
unpackage/dist/build/h5/my/static/coupon/has.png


BIN
unpackage/dist/build/h5/my/static/integral/integral.png


BIN
unpackage/dist/build/h5/my/static/integral/rectangular.png


BIN
unpackage/dist/build/h5/my/static/shoppingCar/add.png


BIN
unpackage/dist/build/h5/my/static/shoppingCar/jian.png


BIN
unpackage/dist/build/h5/my/static/task/goldcoins.png


BIN
unpackage/dist/build/h5/my/static/task/level.png


BIN
unpackage/dist/build/h5/my/static/tousu/black.png


BIN
unpackage/dist/build/h5/my/static/tousu/orange.png


BIN
unpackage/dist/build/h5/my/static/vip/bg.png


BIN
unpackage/dist/build/h5/my/static/vip/vip.png


BIN
unpackage/dist/build/h5/my/static/wallet/face.png


BIN
unpackage/dist/build/h5/my/static/wallet/pay.png


BIN
unpackage/dist/build/h5/my/static/wallet/right1.png


BIN
unpackage/dist/build/h5/running/static/dw.png


BIN
unpackage/dist/build/h5/running/static/hb_bg.png


BIN
unpackage/dist/build/h5/running/static/hb_btn.png


BIN
unpackage/dist/build/h5/running/static/icon_f.png


BIN
unpackage/dist/build/h5/running/static/icon_qh.png


BIN
unpackage/dist/build/h5/running/static/icon_s.png


BIN
unpackage/dist/build/h5/running/static/icon_weixin.png


BIN
unpackage/dist/build/h5/running/static/location.png


BIN
unpackage/dist/build/h5/running/static/mai.png


BIN
unpackage/dist/build/h5/running/static/rider.png


BIN
unpackage/dist/build/h5/running/static/xinxi.png


BIN
unpackage/dist/build/h5/running/static/zhifubao.png


BIN
unpackage/dist/build/h5/static/images/addimg.png


BIN
unpackage/dist/build/h5/static/images/empty.png


BIN
unpackage/dist/build/h5/static/images/index/add.png


BIN
unpackage/dist/build/h5/static/images/index/all.png


BIN
unpackage/dist/build/h5/static/images/index/attention.png


BIN
unpackage/dist/build/h5/static/images/index/attention_forbid.png


BIN
unpackage/dist/build/h5/static/images/index/banner.png


BIN
unpackage/dist/build/h5/static/images/index/delete.png


BIN
unpackage/dist/build/h5/static/images/index/diancan.png


BIN
unpackage/dist/build/h5/static/images/index/dianlogo.png


BIN
unpackage/dist/build/h5/static/images/index/gonggao.png


BIN
unpackage/dist/build/h5/static/images/index/hb_bg.png


BIN
unpackage/dist/build/h5/static/images/index/hb_btn.png


BIN
unpackage/dist/build/h5/static/images/index/hd.png


BIN
unpackage/dist/build/h5/static/images/index/icon_weixin.png


BIN
unpackage/dist/build/h5/static/images/index/jian.png


BIN
unpackage/dist/build/h5/static/images/index/jifen.png


BIN
unpackage/dist/build/h5/static/images/index/jinbi.png


BIN
unpackage/dist/build/h5/static/images/index/location.png


BIN
unpackage/dist/build/h5/static/images/index/phone.png


BIN
unpackage/dist/build/h5/static/images/index/pindan.png


BIN
unpackage/dist/build/h5/static/images/index/renwu.png


BIN
unpackage/dist/build/h5/static/images/index/right.png


BIN
unpackage/dist/build/h5/static/images/index/right2.png


BIN
unpackage/dist/build/h5/static/images/index/shang.png


BIN
unpackage/dist/build/h5/static/images/index/shang1.png


BIN
unpackage/dist/build/h5/static/images/index/shop.png


BIN
unpackage/dist/build/h5/static/images/index/xia.png


BIN
unpackage/dist/build/h5/static/images/index/xia1.png


BIN
unpackage/dist/build/h5/static/images/msg/add.png


BIN
unpackage/dist/build/h5/static/images/msg/close.png


BIN
unpackage/dist/build/h5/static/images/msg/msg.png


BIN
unpackage/dist/build/h5/static/images/my/1.png


BIN
unpackage/dist/build/h5/static/images/my/10.png


BIN
unpackage/dist/build/h5/static/images/my/11.png


BIN
unpackage/dist/build/h5/static/images/my/12.png


BIN
unpackage/dist/build/h5/static/images/my/2.png


BIN
unpackage/dist/build/h5/static/images/my/3.png


BIN
unpackage/dist/build/h5/static/images/my/4.png


BIN
unpackage/dist/build/h5/static/images/my/5.png


BIN
unpackage/dist/build/h5/static/images/my/6.png


BIN
unpackage/dist/build/h5/static/images/my/7.png


BIN
unpackage/dist/build/h5/static/images/my/8.png


BIN
unpackage/dist/build/h5/static/images/my/9.png


BIN
unpackage/dist/build/h5/static/images/my/a1.png


BIN
unpackage/dist/build/h5/static/images/my/a2.png


BIN
unpackage/dist/build/h5/static/images/my/a3.png


BIN
unpackage/dist/build/h5/static/images/my/a4.png


BIN
unpackage/dist/build/h5/static/images/my/add.png


BIN
unpackage/dist/build/h5/static/images/my/bg.png


BIN
unpackage/dist/build/h5/static/images/my/hezuobg.png


BIN
unpackage/dist/build/h5/static/images/my/huiyuan.png


BIN
unpackage/dist/build/h5/static/images/my/jifen.png


BIN
unpackage/dist/build/h5/static/images/my/jinbi.png


BIN
unpackage/dist/build/h5/static/images/my/renwu.png


BIN
unpackage/dist/build/h5/static/images/my/vip.png


BIN
unpackage/dist/build/h5/static/images/my/weixin.png


BIN
unpackage/dist/build/h5/static/images/my/zhifubao.png


+ 0 - 0
unpackage/dist/build/h5/static/images/order/01.png


Некоторые файлы не были показаны из-за большого количества измененных файлов