Browse Source

Merge branch 'master' of http://git.zthymaoyi.com/zyw/tourism

achao 1 year ago
parent
commit
51032b6f55
30 changed files with 1642 additions and 421 deletions
  1. 36 1
      uni_applet/App.vue
  2. 194 0
      uni_applet/components/loginPopUp/index.vue
  3. 19 4
      uni_applet/pageA/enter/cateringindustry.vue
  4. 11 1
      uni_applet/pageA/enter/homestay.vue
  5. 11 1
      uni_applet/pageA/enter/hotel.vue
  6. 23 3
      uni_applet/pageA/enter/myCateringdustry/addGroupBuyingNext.vue
  7. 38 16
      uni_applet/pageA/enter/myCateringdustry/addfood.vue
  8. 3 1
      uni_applet/pageA/enter/myCateringdustry/index.vue
  9. 11 1
      uni_applet/pageA/enter/myCateringdustry/shopSetting/editCertificate.vue
  10. 11 1
      uni_applet/pageA/enter/myCateringdustry/shopSetting/editShopImage.vue
  11. 11 1
      uni_applet/pageA/enter/myCateringdustry/shopSetting/editShopInformation.vue
  12. 12 2
      uni_applet/pageA/enter/myCateringdustry/shopSetting/foodInfomation.vue
  13. 2 2
      uni_applet/pageA/enter/myCateringdustry/shopSetting/index.vue
  14. 243 10
      uni_applet/pageA/enter/myHomestay/add.vue
  15. 636 6
      uni_applet/pageA/enter/myHomestay/edit.vue
  16. 140 7
      uni_applet/pageA/enter/myHomestay/index.vue
  17. 15 5
      uni_applet/pageA/find/createLifeService.vue
  18. 9 8
      uni_applet/pageA/food/menu.vue
  19. 1 1
      uni_applet/pageA/food/search.vue
  20. 2 2
      uni_applet/pages.json
  21. 2 151
      uni_applet/pages/accommodation/accommodation.vue
  22. 25 11
      uni_applet/pages/find/find.vue
  23. 171 179
      uni_applet/pages/food/food.vue
  24. 1 0
      uni_applet/pages/my/my.vue
  25. 4 0
      uni_applet/uni_modules/uview-ui/components/u-form-item/props.js
  26. 2 2
      uni_applet/uni_modules/uview-ui/components/u-form-item/u-form-item.vue
  27. 1 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/IProductManagementService.java
  28. 5 4
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/impl/ProductManagementServiceImpl.java
  29. 1 1
      unimall-admin/config/index.js
  30. 2 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/ProductManagement.java

+ 36 - 1
uni_applet/App.vue

@@ -1,10 +1,30 @@
+<template>
+	<view>
+		<login-pop-up ref='loginpopup' :content='"手机登录后才能查看我的哦~"'></login-pop-up>
+	</view>
+</template>
 <script>
 <script>
 	export default {
 	export default {
 
 
 		onLaunch: function() {
 		onLaunch: function() {
 			console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
 			console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
 			console.log('App Launch')
 			console.log('App Launch')
-
+		uni.addInterceptor('switchTab', {
+				invoke(e) {
+					console.log(e,1111111)
+					if(e.url == '/pages/my/my'){
+						if(!uni.getStorageSync("userInfo").phone){
+							this.$refs.loginpopup.open()
+							return false;
+						}else{
+						return false;
+						}
+					}
+				},
+				success: (e) => {
+					console.log('OK',e)
+				}
+			})
 		},
 		},
 		onShow: function() {
 		onShow: function() {
 			console.log('App Show')
 			console.log('App Show')
@@ -71,6 +91,7 @@
 	}
 	}
 	.detailedAddress{
 	.detailedAddress{
 		width:600rpx;
 		width:600rpx;
+		text-align:center;
 	}
 	}
 	.merchants_button,.merchants_unable_button,.merchants_default_button,.merchants_caution_button{
 	.merchants_button,.merchants_unable_button,.merchants_default_button,.merchants_caution_button{
 		background:#5F7DE9;
 		background:#5F7DE9;
@@ -83,6 +104,20 @@
 		color:#000;
 		color:#000;
 		border:2rpx solid #5F7DE9;
 		border:2rpx solid #5F7DE9;
 	}
 	}
+	.merchants_default_button_text,
+	.merchants_caution_button_text,
+	.merchants_unable_button_text{
+		padding:5rpx 10rpx;
+	}
+	.merchants_default_button_text{
+		color:#5F7DE9;
+	}
+	.merchants_caution_button_text{
+		color:red;
+	}
+	.merchants_unable_button_text{
+		color:#999;
+	}
 	.merchants_caution_button{
 	.merchants_caution_button{
 		background:red;
 		background:red;
 	}
 	}

+ 194 - 0
uni_applet/components/loginPopUp/index.vue

@@ -0,0 +1,194 @@
+<template>
+	<view>
+		<u-modal :show="showAuthorizePhone" :showConfirmButton="false">
+		 	<view class="slot-content">
+		 		<view class="auth-card">
+		 			<view class="img">
+		 				<img class="avatar-img" src="@/static/logo.png" mode="widthFix">
+		 			</view>
+		 			<view class="content">{{content}}</view>
+		 		</view>
+		 		<view class="auth-btncard">
+		 			<view class="btn-unok">
+		 				<u-button :customStyle="customStyleUnOk" @click="showAuthorizePhone=false" :plain="true">
+		 					拒绝</u-button>
+		 			</view>
+		 			<view class="btn-ok">
+		 				<u-button :customStyle="customStyleOk" open-type="getPhoneNumber"
+		 					@getphonenumber="getPhoneNumber"> 立即登录</u-button>
+		 			</view>
+		 		</view>
+		 	</view>
+		 </u-modal>
+		<u-modal :show="showAuthorizeUser" :showConfirmButton="false">
+			<view class="slot-content">
+				<view class="auth-card">
+					<view class="img">
+						<img class="avatar-img" src="@/static/logo.png" mode="widthFix">
+					</view>
+					<view class="content">邀请您补全个人信息<br></br>(昵称、头像)</view>
+					<view style="margin-left: 100rpx;margin-right: 100rpx">
+						<u-form :model="userInfo" ref="uForm">
+							<u-form-item label="头像">
+								<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
+									slot="right">
+									<image class="avatar"
+										:src="userInfo.head?userInfo.head:'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'">
+									</image>
+								</button>
+							</u-form-item>
+							<u-form-item label="昵称">
+								<u-input inputAlign='right' v-model="userInfo.nickname" class="weui-input"
+									@blur="userNameInput" placeholder="请输入昵称" border="false" />
+								<!-- <input type="nickname" :value="userInfo.nickname" class="weui-input" @blur="userNameInput" placeholder="请输入昵称"/> -->
+							</u-form-item>
+						</u-form>
+					</view>
+				</view>
+				<view class="auth-btncard">
+					<view class="btn-unok"><u-button :customStyle="customStyleUnOk" @click="authUser(0)">
+							拒绝</u-button>
+					</view>
+					<view class="btn-ok">
+						<u-button :customStyle="customStyleOk" @click="authUser(1)"> 允许</u-button>
+					</view>
+				</view>
+			</view>
+		</u-modal>
+	</view>
+</template>
+
+<script>
+	var that
+	export default {
+	 data() {
+	 	return {
+	 		showAuthorizePhone:false,
+	 		showAuthorizeUser:false,
+	 		userInfo: {
+	 			head: '',
+	 			nickname: '',
+	 			phone: '',
+	 		},
+	 		customStyleUnOk: {
+	 			marginTop: '20rpx',
+	 			color: '#eaad1a',
+	 			border: '2px solid #eaad1a',
+	 			"border-radius": "10px",
+	 			fontSize: "32rpx"
+	 		},
+	 		customStyleOk: {
+	 			marginTop: '20rpx',
+	 			color: '#fff',
+	 			border: '2px solid #eaad1a',
+	 			"border-radius": "10px",
+	 			fontSize: "32rpx",
+				padding:'0 5px',
+	 			background: "#eaad1a"
+	 		},
+	 	};
+	 },
+	  props: {
+
+	    content: {
+	      type: String,
+	      default: ""
+	    },
+	  },
+	
+	  watch:{
+
+	  },
+		
+	  mounted() {
+		that = this
+	  },
+	  computed: {
+
+	  },
+	  methods: {
+		  open(){
+			this.showAuthorizePhone=true
+		  },
+		  async getPhoneNumber(e) {
+		  	console.log(0)
+		  	that.userInfo = await this.$request.wxlogin()
+		  	console.log(that.userInfo,1111)
+		  	that.userInfo.phone = await this.$request.getPhone(e, that.userInfo)
+		  	console.log(that.userInfo,2222)
+		  	this.showAuthorizePhone = false
+		  	this.showAuthorizeUser = true
+		  
+		  },
+		  async authUser(type) {
+		  	//同步信息,没有头像和昵称自动生成
+		  	this.userInfo = await this.$request.syncInfo(this.userInfo)
+		  	if (this.userInfo.openId) {
+		  		uni.setStorageSync("userInfo", that.userInfo)
+		  		that.showAuthorizeUser = false
+		  		// that.mescroll.resetUpScroll()
+		  	}
+		  },
+	  }
+	}
+</script>
+
+<style lang='scss' scoped>
+	.auth-btncard {
+		display: flex !important;
+		justify-content: space-between !important;
+	
+		.btn-unok {
+			width: 40%;
+		}
+	
+		.btn-ok {
+			width: 40%;
+		}
+	}
+	
+	.auth-card {
+		text-align: center;
+	
+		.avatar-img {
+			width: 250rpx;
+		}
+	
+		.title {
+			font-size: 20rpx;
+		}
+	
+		.content {
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #1A1A1A;
+			margin-bottom: 30rpx;
+		}
+	}
+	
+	.avatar-wrapper {
+		color: #333 !important;
+		border: none !important;
+		border-radius: 0 !important;
+		background-color: transparent !important;
+		padding: 0;
+	}
+	
+	.avatar-wrapper::after {
+		border: none !important;
+	}
+	
+	.avatar {
+		width: 100rpx;
+		height: 100rpx;
+		overflow: hidden;
+		border-radius: 100%;
+	}
+	
+	/deep/.u-popup__content {
+		border-radius: 20rpx !important;
+	}
+	/deep/.u-button--normal{
+		padding: 0 5px;
+	}
+</style>

+ 19 - 4
uni_applet/pageA/enter/cateringindustry.vue

@@ -5,13 +5,13 @@
 				<u-form-item labelWidth='80' labelPosition='top' label="营业执照">
 				<u-form-item labelWidth='80' labelPosition='top' label="营业执照">
 					<u-upload height='208' width='320' :fileList="fileList2" @afterRead="afterRead($event,1)" @delete="deletePic($event,1)" name="2" multiple
 					<u-upload height='208' width='320' :fileList="fileList2" @afterRead="afterRead($event,1)" @delete="deletePic($event,1)" name="2" multiple
 						:maxCount="1">
 						:maxCount="1">
-						<image style='width:680rpx;height:417rpx;' src="../../static/image/enter/yingyezhizhao.png" mode=""></image>
+						<image style='width:594rpx;height:378rpx;' src="../../static/image/enter/yingyezhizhao.png" mode=""></image>
 					</u-upload>
 					</u-upload>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='80' labelPosition='top' label="经营许可证">
 				<u-form-item labelWidth='80' labelPosition='top' label="经营许可证">
 					<u-upload height='208' width='320' :fileList="fileList3" @afterRead="afterRead($event,2)" @delete="deletePic($event,2)" name="3" multiple
 					<u-upload height='208' width='320' :fileList="fileList3" @afterRead="afterRead($event,2)" @delete="deletePic($event,2)" name="3" multiple
 						:maxCount="1">
 						:maxCount="1">
-						<image style='width:680rpx;height:417rpx;' src="../../static/image/enter/jingyingxukezheng.png" mode=""></image>
+						<image style='width:594rpx;height:378rpx;' src="../../static/image/enter/jingyingxukezheng.png" mode=""></image>
 					</u-upload>
 					</u-upload>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item  labelWidth='150' labelPosition='left' label="经营许可证有效期">
 				<u-form-item  labelWidth='150' labelPosition='left' label="经营许可证有效期">
@@ -105,11 +105,16 @@
 
 
 <script>
 <script>
 	var that
 	var that
+	
 	import uploadImage from '@/components/ossutil/uploadFile.js';
 	import uploadImage from '@/components/ossutil/uploadFile.js';
+	import uniCalendar from '@/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue'
 	export default {
 	export default {
+		components: {
+			"uniCalendar": uniCalendar
+		},
 		data() {
 		data() {
 			return {
 			return {
-				content:'确定提交入驻信息',
+				content:'确定提交入驻信息',
 				isSubmit:false,
 				isSubmit:false,
 				form:{
 				form:{
 					commonId:uni.getStorageSync("userInfo").id,
 					commonId:uni.getStorageSync("userInfo").id,
@@ -176,7 +181,17 @@
 					}
 					}
 					this.form.label=arr.toString()
 					this.form.label=arr.toString()
 				}
 				}
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确定提交入驻信息?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
 				uni.showLoading({
 				uni.showLoading({

+ 11 - 1
uni_applet/pageA/enter/homestay.vue

@@ -142,7 +142,17 @@
 			    }
 			    }
 			},
 			},
 			submit(){
 			submit(){
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确定提交入驻信息?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit(){
 			confirmSubmit(){
 				uni.showLoading({
 				uni.showLoading({

+ 11 - 1
uni_applet/pageA/enter/hotel.vue

@@ -146,7 +146,17 @@
 			    }
 			    }
 			},
 			},
 			submit(){
 			submit(){
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确定提交入驻信息?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			placeSelect() {
 			placeSelect() {
 				uni.chooseLocation({
 				uni.chooseLocation({

+ 23 - 3
uni_applet/pageA/enter/myCateringdustry/addGroupBuyingNext.vue

@@ -157,7 +157,17 @@
 						}
 						}
 					}
 					}
 				}
 				}
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确认添加团购信息?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
 				uni.showLoading({
 				uni.showLoading({
@@ -228,7 +238,7 @@
 			},
 			},
 			classifycancelSubmit(){
 			classifycancelSubmit(){
 				var index = this.categorizationOfDishes.findIndex((item)=>{return item.classifyName == this.currectClassify.classifyName})
 				var index = this.categorizationOfDishes.findIndex((item)=>{return item.classifyName == this.currectClassify.classifyName})
-				this.categorizationOfDishes,splice(index,1)
+				this.categorizationOfDishes.splice(index,1)
 			},
 			},
 			addList(item){
 			addList(item){
 				item.list.push({classify:item.classifyName,dishName:'',dishPrice:'',number:''})
 				item.list.push({classify:item.classifyName,dishName:'',dishPrice:'',number:''})
@@ -265,7 +275,17 @@
 					var arr = this.categorizationOfDishes.filter((items)=>{return items.classifyName==item.classifyName})
 					var arr = this.categorizationOfDishes.filter((items)=>{return items.classifyName==item.classifyName})
 					if(arr.length>0&&arr.list.length>0){
 					if(arr.length>0&&arr.list.length>0){
 						this.currectClassify = item
 						this.currectClassify = item
-						this.show1 = true
+						uni.showModal({
+								title: '提示',
+								content: '确认取消该分类?',
+								success (res) {
+								    if (res.confirm) {
+										that.$u.debounce(classifycancelSubmit, 500)
+								    } else if (res.cancel) {
+								      console.log('用户点击取消')
+								    }
+								  }
+							})
 					}else{
 					}else{
 						item.select=!item.select
 						item.select=!item.select
 					}
 					}

+ 38 - 16
uni_applet/pageA/enter/myCateringdustry/addfood.vue

@@ -6,6 +6,8 @@
 					<view style='text-align:right'>{{form.shopNames}}</view>
 					<view style='text-align:right'>{{form.shopNames}}</view>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item
 				<u-form-item
+				labelPosition="left"
+				:uclass='"flex-align-center"'
 					label="分类"
 					label="分类"
 					prop="classify"
 					prop="classify"
 					borderBottom
 					borderBottom
@@ -18,6 +20,7 @@
 					</view>
 					</view>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item
 				<u-form-item
+				labelPosition="left"
 					label="菜品名称"
 					label="菜品名称"
 					 labelWidth='120'
 					 labelWidth='120'
 					prop="dishName"
 					prop="dishName"
@@ -26,6 +29,7 @@
 					<u--input inputAlign='right' v-model="form.dishName" placeholder="输入菜品名称.2-8个字" border="none"></u--input>
 					<u--input inputAlign='right' v-model="form.dishName" placeholder="输入菜品名称.2-8个字" border="none"></u--input>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item
 				<u-form-item
+				labelPosition="left"
 					labelWidth='150'
 					labelWidth='150'
 					label="菜品单价(选填)"
 					label="菜品单价(选填)"
 					prop="userInfo"
 					prop="userInfo"
@@ -91,25 +95,28 @@
 			that = this
 			that = this
 			this.form.foodId=options.foodId
 			this.form.foodId=options.foodId
 			this.form.shopNames=options.shopNames
 			this.form.shopNames=options.shopNames
-			this.$request.baseRequest('admin.tourism.dishClassifyInfo', 'list', {
-				foodId:this.form.foodId,
-				page:1,
-				limit:9999
-			}, failres => {
-				uni.showToast({
-					icon: "none",
-					title: failres.errmsg,
-					duration: 3000
-				});
-			}).then(res => {
-				this.classifyList = res.data.items
-				this.form.classify = res.data.items[0].classifyName
-			})
+			this.getList()
 		},
 		},
 		onShow(){
 		onShow(){
 			
 			
 		},
 		},
 		methods: {
 		methods: {
+			getList(){
+				this.$request.baseRequest('admin.tourism.dishClassifyInfo', 'list', {
+					foodId:this.form.foodId,
+					page:1,
+					limit:9999
+				}, failres => {
+					uni.showToast({
+						icon: "none",
+						title: failres.errmsg,
+						duration: 3000
+					});
+				}).then(res => {
+					this.classifyList = res.data.items
+					this.form.classify = res.data.items[0].classifyName
+				})
+			},
 			add(){
 			add(){
 				this.show1 = true
 				this.show1 = true
 			},
 			},
@@ -145,8 +152,18 @@
 							});
 							});
 							return
 							return
 						}
 						}
-
-				this.isSubmit = true
+			uni.showModal({
+					title: '提示',
+					content: '确认添加菜品信息?',
+					success (res) {
+					    if (res.confirm) {
+							that.$u.debounce(confirmSubmit, 500)
+					    } else if (res.cancel) {
+					      console.log('用户点击取消')
+					    }
+					  }
+				})
+				// this.isSubmit = true
 			},
 			},
 			classifySubmit() {
 			classifySubmit() {
 				console.log(this.form)
 				console.log(this.form)
@@ -171,6 +188,7 @@
 						title: '添加分类成功',
 						title: '添加分类成功',
 						duration: 2000
 						duration: 2000
 					});
 					});
+					this.getList()
 				})
 				})
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
@@ -259,4 +277,8 @@
 	text-align: center;
 	text-align: center;
 	margin: 0 30px;
 	margin: 0 30px;
  }
  }
+ /deep/.flex-align-center{
+	 align-items: center;
+	 justify-content: space-between;
+ }
 </style>
 </style>

+ 3 - 1
uni_applet/pageA/enter/myCateringdustry/index.vue

@@ -17,6 +17,8 @@
 					<view class='caution' v-if='currectData.status!="显示中"&&currectData.status!="已隐藏"'>{{currectData.status}}</view>
 					<view class='caution' v-if='currectData.status!="显示中"&&currectData.status!="已隐藏"'>{{currectData.status}}</view>
 				</view>
 				</view>
 			</view>
 			</view>
+			</view>
+			<view class='wrap'>
 			<view>
 			<view>
 				<view style='font-size:28rpx;'>店铺照片</view>
 				<view style='font-size:28rpx;'>店铺照片</view>
 				<view  style='flex-wrap: wrap;' class='flex'>
 				<view  style='flex-wrap: wrap;' class='flex'>
@@ -25,7 +27,7 @@
 					</view>
 					</view>
 				</view>
 				</view>
 			</view>
 			</view>
-			<view>
+			<view style='margin:20rpx 0 30rpx;'>
 				<view class='switch_show flex' style='font-size:34rpx;'>
 				<view class='switch_show flex' style='font-size:34rpx;'>
 					<view :class='showStatus==0?"active":""' @click='switchShow(0)'>商品展示({{currectData.displaysNum?currectData.displaysNum:0}})</view>
 					<view :class='showStatus==0?"active":""' @click='switchShow(0)'>商品展示({{currectData.displaysNum?currectData.displaysNum:0}})</view>
 					<view :class='showStatus==1?"active":""' @click='switchShow(1)'>团购({{currectData.groupNum?currectData.groupNum:0}})</view>
 					<view :class='showStatus==1?"active":""' @click='switchShow(1)'>团购({{currectData.groupNum?currectData.groupNum:0}})</view>

+ 11 - 1
uni_applet/pageA/enter/myCateringdustry/shopSetting/editCertificate.vue

@@ -67,7 +67,17 @@
 		},
 		},
 		methods: {
 		methods: {
 			submit(){
 			submit(){
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确定提交证件图片?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
 				uni.showLoading({
 				uni.showLoading({

+ 11 - 1
uni_applet/pageA/enter/myCateringdustry/shopSetting/editShopImage.vue

@@ -59,7 +59,17 @@
 		},
 		},
 		methods: {
 		methods: {
 			submit(){
 			submit(){
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确定提交店铺图片?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
 				uni.showLoading({
 				uni.showLoading({

+ 11 - 1
uni_applet/pageA/enter/myCateringdustry/shopSetting/editShopInformation.vue

@@ -137,7 +137,17 @@
 			    }
 			    }
 			},
 			},
 			submit(){
 			submit(){
-				this.isSubmit = true
+				uni.showModal({
+						title: '提示',
+						content: '确定提交店铺信息?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
 				uni.showLoading({
 				uni.showLoading({

+ 12 - 2
uni_applet/pageA/enter/myCateringdustry/shopSetting/foodInfomation.vue

@@ -147,8 +147,18 @@
 				})
 				})
 			},
 			},
 			del(){
 			del(){
-
-				this.isSubmit = true
+			
+				uni.showModal({
+						title: '提示',
+						content: '确定删除菜品?',
+						success (res) {
+						    if (res.confirm) {
+								that.$u.debounce(confirmSubmit, 500)
+						    } else if (res.cancel) {
+						      console.log('用户点击取消')
+						    }
+						  }
+					})
 			},
 			},
 			confirmSubmit(){
 			confirmSubmit(){
 				uni.showLoading({
 				uni.showLoading({

+ 2 - 2
uni_applet/pageA/enter/myCateringdustry/shopSetting/index.vue

@@ -76,8 +76,8 @@
 			</u-cell-group>
 			</u-cell-group>
 		</view>
 		</view>
 		<view style='margin:10px;' class='flex justify-space-between align-item-center'>
 		<view style='margin:10px;' class='flex justify-space-between align-item-center'>
-			<view @click='toDetail("/pageA/enter/myCateringdustry/shopSetting/foodInfomation")' class='button'>菜品信息</view>
-			<view @click='toDetail("/pageA/enter/myCateringdustry/shopSetting/editFoodClassify")' class='button'>团购信息</view>
+			<view @click='toDetail("/pageA/enter/myCateringdustry/shopSetting/foodInfomation")' class='mercharts_button'>菜品信息</view>
+			<!-- <view @click='toDetail("/pageA/enter/myCateringdustry/shopSetting/editFoodClassify")' class='mercharts_button'>团购信息</view> -->
 		</view>
 		</view>
 		<smh-time-range :is-under='show' :time="time" @confrim="confrim" @cancel="cancel"></smh-time-range>
 		<smh-time-range :is-under='show' :time="time" @confrim="confrim" @cancel="cancel"></smh-time-range>
 		<u-modal :show="isSubmit" :content='content' @confirm="$u.debounce(confirmSubmit, 500)" showCancelButton
 		<u-modal :show="isSubmit" :content='content' @confirm="$u.debounce(confirmSubmit, 500)" showCancelButton

+ 243 - 10
uni_applet/pageA/enter/myHomestay/add.vue

@@ -7,40 +7,40 @@
 						:maxCount="20">
 						:maxCount="20">
 					</u-upload>
 					</u-upload>
 				</u-form-item>
 				</u-form-item>
-				<u-form-item labelWidth='120' labelPosition='top' label="标题">
+				<u-form-item labelWidth='120' labelPosition='left' label="标题">
 					<u--input minlength='6' maxlength='30' inputAlign='right' v-model="form.title" placeholder="输入标题,6-30个字" border="none"></u--input>
 					<u--input minlength='6' maxlength='30' inputAlign='right' v-model="form.title" placeholder="输入标题,6-30个字" border="none"></u--input>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='150' labelPosition='top' label="详细介绍(选填)">
 				<u-form-item labelWidth='150' labelPosition='top' label="详细介绍(选填)">
 					<u--textarea maxlength='1000'  v-model="form.detailedIntroduction" autoHeight placeholder="输入房源介绍,0-1000个字" ></u--textarea> 
 					<u--textarea maxlength='1000'  v-model="form.detailedIntroduction" autoHeight placeholder="输入房源介绍,0-1000个字" ></u--textarea> 
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='120' labelPosition='left' label="单价(元/晚)">
 				<u-form-item labelWidth='120' labelPosition='left' label="单价(元/晚)">
-					<u--input inputAlign='right' v-model="form.price" placeholder="输入单价" border="none"></u--input>
+					<u--input inputAlign='right' type='digit' v-model="form.price" placeholder="输入单价" border="none"></u--input>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='120' labelPosition='left' label="户型">
 				<u-form-item labelWidth='120' labelPosition='left' label="户型">
 					<view class='flex'>
 					<view class='flex'>
 						<view class='flex'>
 						<view class='flex'>
-							<u--input inputAlign='right' v-model="room" placeholder="输入" border="none"></u--input>
+							<u--input inputAlign='right' type='digit' v-model="room" placeholder="输入" border="none"></u--input>
 							<view>室</view>
 							<view>室</view>
 						</view>
 						</view>
 						<view class='flex'>
 						<view class='flex'>
-							<u--input inputAlign='right' v-model="hall" placeholder="输入" border="none"></u--input>
+							<u--input inputAlign='right' type='digit' v-model="hall" placeholder="输入" border="none"></u--input>
 							<view>厅</view>
 							<view>厅</view>
 						</view>
 						</view>
 						<view class='flex'>
 						<view class='flex'>
-							<u--input inputAlign='right' v-model="toilet" placeholder="输入" border="none"></u--input>
+							<u--input inputAlign='right' type='digit' v-model="toilet" placeholder="输入" border="none"></u--input>
 							<view>卫</view>
 							<view>卫</view>
 						</view>
 						</view>
 					</view>
 					</view>
 					
 					
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='120' labelPosition='left' label="床铺数量">
 				<u-form-item labelWidth='120' labelPosition='left' label="床铺数量">
-					<u--input inputAlign='right' v-model="form.bedNum" placeholder="输入床铺数量" border="none"></u--input>
+					<u--input inputAlign='right' type='digit' v-model="form.bedNum" placeholder="输入床铺数量" border="none"></u--input>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='120' labelPosition='left' label="最多可住人数">
 				<u-form-item labelWidth='120' labelPosition='left' label="最多可住人数">
-					<u--input inputAlign='right' v-model="form.mostPeople" placeholder="输入最多可住人数" border="none"></u--input>
+					<u--input inputAlign='right' type='digit' v-model="form.mostPeople" placeholder="输入最多可住人数" border="none"></u--input>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='120' labelPosition='left' label="面积(平米)">
 				<u-form-item labelWidth='120' labelPosition='left' label="面积(平米)">
-					<u--input inputAlign='right' v-model="form.decorationArea" placeholder="输入房屋面积" border="none"></u--input>
+					<u--input inputAlign='right' type='digit' v-model="form.decorationArea" placeholder="输入房屋面积" border="none"></u--input>
 				</u-form-item>
 				</u-form-item>
 				<u-form-item labelWidth='120' labelPosition='left' @click='placeSelect(),hideKeyboard()' label="房源位置">
 				<u-form-item labelWidth='120' labelPosition='left' @click='placeSelect(),hideKeyboard()' label="房源位置">
 					<view style='text-align:right;' v-if="form.province">{{ form.province }}{{ form.city }}{{ form.area }}</view>
 					<view style='text-align:right;' v-if="form.province">{{ form.province }}{{ form.city }}{{ form.area }}</view>
@@ -263,15 +263,19 @@
 		<view class="mercharts_footer">
 		<view class="mercharts_footer">
 			<button @click='submit' class="submit">提交</button>
 			<button @click='submit' class="submit">提交</button>
 		</view>
 		</view>
+		<u-modal :show="isSubmit" content='确定添加民宿信息?' @confirm="$u.debounce(confirmSubmit, 500)" showCancelButton
+			@cancel="isSubmit=false" @close="isSubmit=false" closeOnClickOverlay></u-modal>
 	</view>
 	</view>
 </template>
 </template>
 
 
 <script>
 <script>
 	var that
 	var that
+	import uploadImage from '@/components/ossutil/uploadFile.js';
 	export default {
 	export default {
 		data() {
 		data() {
 			return {
 			return {
 				form:{},
 				form:{},
+				homestayImageArray:[],
 				fileList1:[],
 				fileList1:[],
 				checked1:false,
 				checked1:false,
 				checked2:false,
 				checked2:false,
@@ -281,6 +285,8 @@
 				room:'',
 				room:'',
 				hall:'',
 				hall:'',
 				toilet:'',
 				toilet:'',
+				isSubmit:false,
+				currectData:{},
 				labelList:[{value:''},{value:''},{value:''},{value:''}],
 				labelList:[{value:''},{value:''},{value:''},{value:''}],
 				checkList1:[],
 				checkList1:[],
 				checkList2:[],
 				checkList2:[],
@@ -306,10 +312,141 @@
 		onLoad() {
 		onLoad() {
 			that = this
 			that = this
 		},
 		},
-		onShow() {
-			
+		async onShow() {
+			this.currectData=await this.getHomestayId()
+			console.log(this.currectData)
+			this.form.homestayId = this.currectData.id
 		},
 		},
 		methods: {
 		methods: {
+			// 删除图片
+			deletePic(event,status) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event,status) {
+				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url,status)
+					
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+					console.log(that.form, this[`fileList${event.name}`])
+					
+				}
+			},
+			uploadFilePromise(res,status) {
+				return new Promise((resolve, reject) => {
+					uploadImage(res, 'cardImages/',
+						result => {
+							
+							that.homestayImageArray.push(result)
+							that.form.homestayImage = that.homestayImageArray.toString()
+							resolve(res)
+						}
+					)
+				})
+			},
+			confirmSubmit(){
+				uni.showLoading({
+					title: '加载中',
+					mask: true
+				})
+				that.$request.baseRequest('admin.tourism.homestayDetailInfo', 'add',{
+					homestayDetailInfo:JSON.stringify(this.form)
+				}, failres => {
+					uni.showToast({
+						icon: "none",
+						title: failres.errmsg,
+						duration: 3000
+					});
+					uni.hideLoading()
+				}).then(res => {
+					this.isSubmit = false
+					uni.showToast({
+						icon: "success",
+						title: '添加民宿成功',
+						duration: 2000
+					});
+				})
+			},
+			getHomestayId(){
+				return new Promise((resolve, reject) => {
+					that.$request.baseRequest('admin.tourism.homestayInfo', 'list', {
+						page:1,
+						limit: 10,
+						commonId:uni.getStorageSync("userInfo").id
+					}, failres => {
+						uni.showToast({
+							icon: "none",
+							title: failres.errmsg,
+							duration: 3000
+						});
+						uni.hideLoading()
+					}).then(res => {
+						 resolve(res.data.items[0])
+					})
+				})
+			},
+			submit(){
+				var labeldata=this.labelList.filter((item)=>{return item.value!=''})
+				var label=[]
+				for(var i=0;i<labeldata.length;i++){
+					label.push(labeldata[i].value)
+				}
+				this.form.label = label.toString()
+				this.form.houseType=this.room+','+this.hall+','+this.toilet
+				var list1=[],list2=[],list3=[],list4=[],list5=[]
+				var data1=this.checkboxList1.filter((item)=>{return item.checked})
+				var data2=this.checkboxList2.filter((item)=>{return item.checked})
+				var data3=this.checkboxList3.filter((item)=>{return item.checked})
+				var data4=this.checkboxList4.filter((item)=>{return item.checked})
+				var data5=this.checkboxList5.filter((item)=>{return item.checked})
+				if(data1.length>0){
+					for(var i=0;i<data1.length;i++){
+						list1.push(data1[i].name)
+					}
+					this.form.service=list1.toString()
+				}
+				if(data2.length>0){
+					for(var i=0;i<data2.length;i++){
+						list2.push(data2[i].name)
+					}
+					this.form.homeFurnishing=list2.toString()
+				}
+				if(data3.length>0){
+					for(var i=0;i<data3.length;i++){
+						list3.push(data3[i].name)
+					}
+					this.form.bathroom=list3.toString()
+				}
+				if(data4.length>0){
+					for(var i=0;i<data4.length;i++){
+						list4.push(data4[i].name)
+					}
+					this.form.kitchen=list4.toString()
+				}
+				if(data5.length>0){
+					for(var i=0;i<data5.length;i++){
+						list5.push(data5[i].name)
+					}
+					this.form.build=list5.toString()
+				}
+				this.isSubmit = true
+			},
 			checkboxChange1(e){
 			checkboxChange1(e){
 				var data=JSON.parse(JSON.stringify(e))
 				var data=JSON.parse(JSON.stringify(e))
 				this.$forceUpdate()
 				this.$forceUpdate()
@@ -342,6 +479,102 @@
 				}
 				}
 				console.log(this.checkboxList1,this.checkList1)
 				console.log(this.checkboxList1,this.checkList1)
 			},
 			},
+			checkboxChange2(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList2=this.checkboxList2.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList2=this.checkboxList2.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList2.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList2[index].checked=true
+							else  this.checkboxList2[index].checked=false
+						}
+						if(this.checkboxList2.every((item)=>{return item.checked==true})==true){
+							this.checked2=true
+						}else{
+							this.checked2=false
+						}
+					}
+				}else{
+					if(this.checkboxValue2){
+						this.checkboxList2=this.checkboxList2.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList2,this.checkList2)
+			},
+			checkboxChange3(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList3=this.checkboxList3.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList3=this.checkboxList3.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList3.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList3[index].checked=true
+							else  this.checkboxList3[index].checked=false
+						}
+						if(this.checkboxList3.every((item)=>{return item.checked==true})==true){
+							this.checked3=true
+						}else{
+							this.checked3=false
+						}
+					}
+				}else{
+					if(this.checkboxValue3){
+						this.checkboxList3=this.checkboxList3.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList3,this.checkList3)
+			},
+			checkboxChange4(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList4=this.checkboxList4.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList4=this.checkboxList4.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList4.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList4[index].checked=true
+							else  this.checkboxList4[index].checked=false
+						}
+						if(this.checkboxList4.every((item)=>{return item.checked==true})==true){
+							this.checked4=true
+						}else{
+							this.checked4=false
+						}
+					}
+				}else{
+					if(this.checkboxValue4){
+						this.checkboxList4=this.checkboxList4.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList4,this.checkList4)
+			},
 			checkboxChange5(e){
 			checkboxChange5(e){
 				var data=JSON.parse(JSON.stringify(e))
 				var data=JSON.parse(JSON.stringify(e))
 				this.$forceUpdate()
 				this.$forceUpdate()

+ 636 - 6
uni_applet/pageA/enter/myHomestay/edit.vue

@@ -1,22 +1,652 @@
 <template>
 <template>
-	<view>
-		
+	<view class='content'>
+		<view class='wrap'>
+			<u--form labelPosition="left" :model="form"  ref="uForm">
+				<u-form-item labelWidth='240' labelPosition='top' label="上传民宿图片">
+					<u-upload :fileList="fileList1" @afterRead="afterRead($event)" @delete="deletePic" name="1" multiple
+						:maxCount="20">
+					</u-upload>
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' label="标题">
+					<u--input minlength='6' maxlength='30' inputAlign='right' v-model="form.title" placeholder="输入标题,6-30个字" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth='150' labelPosition='top' label="详细介绍(选填)">
+					<u--textarea maxlength='1000'  v-model="form.detailedIntroduction" autoHeight placeholder="输入房源介绍,0-1000个字" ></u--textarea> 
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' label="单价(元/晚)">
+					<u--input inputAlign='right' type='digit' v-model="form.price" placeholder="输入单价" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' label="户型">
+					<view class='flex'>
+						<view class='flex'>
+							<u--input inputAlign='right' type='digit' v-model="room" placeholder="输入" border="none"></u--input>
+							<view>室</view>
+						</view>
+						<view class='flex'>
+							<u--input inputAlign='right' type='digit' v-model="hall" placeholder="输入" border="none"></u--input>
+							<view>厅</view>
+						</view>
+						<view class='flex'>
+							<u--input inputAlign='right' type='digit' v-model="toilet" placeholder="输入" border="none"></u--input>
+							<view>卫</view>
+						</view>
+					</view>
+					
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' label="床铺数量">
+					<u--input inputAlign='right' type='digit' v-model="form.bedNum" placeholder="输入床铺数量" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' label="最多可住人数">
+					<u--input inputAlign='right' type='digit' v-model="form.mostPeople" placeholder="输入最多可住人数" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' label="面积(平米)">
+					<u--input inputAlign='right' type='digit' v-model="form.decorationArea" placeholder="输入房屋面积" border="none"></u--input>
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='left' @click='placeSelect(),hideKeyboard()' label="房源位置">
+					<view style='text-align:right;' v-if="form.province">{{ form.province }}{{ form.city }}{{ form.area }}</view>
+					<view style='text-align:right;' v-else>
+						<text style='text-align:right;'>选择房源位置 </text>
+						<image src="@/static/image/yjt.png" mode=""
+							style="margin-left:10rpx;width:12rpx;height: 21rpx;"></image>
+					</view>
+				</u-form-item>
+				<u-form-item labelWidth='80' labelPosition='left' label="详细地址">
+					<u-input inputAlign='right' maxlength="15" border='none' placeholder='输入详细地址,不超过15个字' v-model="form.detailedAddress" />
+				</u-form-item>
+				<u-form-item labelWidth='120' labelPosition='top' label="房源特色">
+					<view class="flex">
+						<u--input v-for='item in labelList' inputAlign='right' v-model="item.value" placeholder="输入房源特色" border="none"></u--input>
+					</view>
+					
+				</u-form-item>
+			</u--form>
+			<view>
+				<view class='flex justify-space-between'>
+					<view style='width:25%;'>服务</view>
+					<view style='width:25%;'></view>
+					<view style='width:25%;'></view>
+					<view class='checkall'>
+						<u-checkbox-group
+						            v-model="checkboxValue1"
+						            placement="column"
+						            @change="checkboxChange1"
+						        >
+						            <u-checkbox
+						                :customStyle="{marginBottom: '8px'}"
+						                :checked='checked1'
+										label='全选'
+						                name="全选"
+						            >
+						            </u-checkbox>
+						        </u-checkbox-group>
+					</view>
+				</view>
+				<view class='more'>
+					 <u-checkbox-group
+					            v-model="checkList1"
+					            placement="row"
+					            @change="checkboxChange1"
+					        >
+					            <u-checkbox
+					                :customStyle="{marginBottom: '8px'}"
+					                v-for="(item, index) in checkboxList1"
+					                :key="index"
+									:checked='item.checked'
+					                :label="item.name"
+					                :name="item.name"
+					            >
+					            </u-checkbox>
+					        </u-checkbox-group>
+				</view>
+			</view>
+			
+			<view>
+				<view class='flex justify-space-between'>
+					<view style='width:25%;'>家居</view>
+					<view style='width:25%;'></view>
+					<view style='width:25%;'></view>
+					<view class='checkall'>
+						<u-checkbox-group
+						            v-model="checkboxValue2"
+						            placement="column"
+						            @change="checkboxChange2"
+						        >
+						            <u-checkbox
+						                :customStyle="{marginBottom: '8px'}"
+						                :checked='checked2'
+										label='全选'
+						                name="全选"
+						            >
+						            </u-checkbox>
+						        </u-checkbox-group>
+					</view>
+				</view>
+				<view class='more'>
+					 <u-checkbox-group
+					            v-model="checkList2"
+					            placement="row"
+					            @change="checkboxChange2"
+					        >
+					            <u-checkbox
+					                :customStyle="{marginBottom: '8px'}"
+					                v-for="(item, index) in checkboxList2"
+					                :key="index"
+									:checked='item.checked'
+					                :label="item.name"
+					                :name="item.name"
+					            >
+					            </u-checkbox>
+					        </u-checkbox-group>
+				</view>
+			</view>
+			
+			<view>
+				<view class='flex justify-space-between'>
+					<view style='width:25%;'>卫浴</view>
+					<view style='width:25%;'></view>
+					<view style='width:25%;'></view>
+					<view class='checkall'>
+						<u-checkbox-group
+						            v-model="checkboxValue3"
+						            placement="column"
+						            @change="checkboxChange3"
+						        >
+						            <u-checkbox
+						                :customStyle="{marginBottom: '8px'}"
+						                :checked='checked3'
+										label='全选'
+						                name="全选"
+						            >
+						            </u-checkbox>
+						        </u-checkbox-group>
+					</view>
+				</view>
+				<view class='more'>
+					 <u-checkbox-group
+					            v-model="checkList3"
+					            placement="row"
+					            @change="checkboxChange3"
+					        >
+					            <u-checkbox
+					                :customStyle="{marginBottom: '8px'}"
+					                v-for="(item, index) in checkboxList3"
+					                :key="index"
+									:checked='item.checked'
+					                :label="item.name"
+					                :name="item.name"
+					            >
+					            </u-checkbox>
+					        </u-checkbox-group>
+				</view>
+			</view>
+			
+			<view>
+				<view class='flex justify-space-between'>
+					<view style='width:25%;'>餐厨</view>
+					<view style='width:25%;'></view>
+					<view style='width:25%;'></view>
+					<view class='checkall'>
+						<u-checkbox-group
+						            v-model="checkboxValue4"
+						            placement="column"
+						            @change="checkboxChange4"
+						        >
+						            <u-checkbox
+						                :customStyle="{marginBottom: '8px'}"
+						                :checked='checked4'
+										label='全选'
+						                name="全选"
+						            >
+						            </u-checkbox>
+						        </u-checkbox-group>
+					</view>
+				</view>
+				<view class='more'>
+					 <u-checkbox-group
+					            v-model="checkList4"
+					            placement="row"
+					            @change="checkboxChange4"
+					        >
+					            <u-checkbox
+					                :customStyle="{marginBottom: '8px'}"
+					                v-for="(item, index) in checkboxList4"
+					                :key="index"
+									:checked='item.checked'
+					                :label="item.name"
+					                :name="item.name"
+					            >
+					            </u-checkbox>
+					        </u-checkbox-group>
+				</view>
+			</view>
+			
+			<view>
+				<view class='flex justify-space-between'>
+					<view style='width:25%;'>建筑</view>
+					<view style='width:25%;'></view>
+					<view style='width:25%;'></view>
+					<view class='checkall'>
+						<u-checkbox-group
+						            v-model="checkboxValue5"
+						            placement="column"
+						            @change="checkboxChange5"
+						        >
+						            <u-checkbox
+						                :customStyle="{marginBottom: '8px'}"
+						                :checked='checked5'
+										label='全选'
+						                name="全选"
+						            >
+						            </u-checkbox>
+						        </u-checkbox-group>
+					</view>
+				</view>
+				<view class='more'>
+					 <u-checkbox-group
+					            v-model="checkList5"
+					            placement="row"
+					            @change="checkboxChange5"
+					        >
+					            <u-checkbox
+					                :customStyle="{marginBottom: '8px'}"
+					                v-for="(item, index) in checkboxList5"
+					                :key="index"
+									:checked='item.checked'
+					                :label="item.name"
+					                :name="item.name"
+					            >
+					            </u-checkbox>
+					        </u-checkbox-group>
+				</view>
+			</view>
+		</view>
+		<view class="mercharts_footer">
+			<button @click='submit' class="submit">提交</button>
+		</view>
+		<u-modal :show="isSubmit" content='确定编辑民宿信息?' @confirm="$u.debounce(confirmSubmit, 500)" showCancelButton
+			@cancel="isSubmit=false" @close="isSubmit=false" closeOnClickOverlay></u-modal>
 	</view>
 	</view>
 </template>
 </template>
 
 
 <script>
 <script>
+	var that
+	import uploadImage from '@/components/ossutil/uploadFile.js';
 	export default {
 	export default {
 		data() {
 		data() {
 			return {
 			return {
-				
+				form:{},
+				fileList1:[],
+				id:'',
+				homestayImageArray:[],
+				checked1:false,
+				checked2:false,
+				checked3:false,
+				checked4:false,
+				checked5:false,
+				room:'',
+				hall:'',
+				toilet:'',
+				isSubmit:false,
+				currectData:{},
+				labelList:[{value:''},{value:''},{value:''},{value:''}],
+				checkList1:[],
+				checkList2:[],
+				checkList3:[],
+				checkList4:[],
+				checkList5:[],
+				checkboxValue1:'',
+				checkboxValue2:'',
+				checkboxValue3:'',
+				checkboxValue4:'',
+				checkboxValue5:'',
+				checkboxList1:[{name:'行李寄存',checked:false},{name:'可长租',checked:false},{name:'自助入住',checked:false},{name:'免费停车',checked:false}],
+				checkboxList2:[{name:'电视',checked:false},{name:'洗衣机',checked:false},{name:'冰箱',checked:false},{name:'空调',checked:false}
+				,{name:'热水壶',checked:false},{name:'免费wifi',checked:false}],
+				checkboxList3:[{name:'吹风机',checked:false},{name:'洗发水',checked:false},{name:'沐浴露',checked:false},{name:'独立卫浴',checked:false}
+				,{name:'拖鞋',checked:false},{name:'牙具',checked:false},{name:'毛巾',checked:false},{name:'浴巾',checked:false},{name:'纸巾',checked:false},
+				{name:'热水淋浴',checked:false},{name:'香皂',checked:false}],
+				checkboxList4:[{name:'餐具',checked:false},{name:'锅具',checked:false},{name:'调料',checked:false},{name:'电磁炉',checked:false}
+				,{name:'天然气',checked:false},{name:'刀具',checked:false},{name:'菜板',checked:false},{name:'汤勺',checked:false}],
+				checkboxList5:[{name:'电梯',checked:false},{name:'窗户',checked:false},{name:'落地窗',checked:false},{name:'海景',checked:false}],
 			}
 			}
 		},
 		},
-		methods: {
+		onLoad(options) {
+			that = this
+			this.id = options.id
+			
+		},
+		async onShow() {
+			this.currectData=await this.getHomestay()
+			console.log(this.currectData)
+			this.form = this.currectData
+			this.homestayImageArray = this.currectData.homestayImage.split(',')
+			for(var i=0;i<this.homestayImageArray.length;i++){
+				this.fileList1.push({url:this.homestayImageArray[i]})
+			}
 			
 			
+		},
+		methods: {
+			// 删除图片
+			deletePic(event,status) {
+				this[`fileList${event.name}`].splice(event.index, 1)
+			},
+			// 新增图片
+			async afterRead(event,status) {
+				// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
+				let lists = [].concat(event.file)
+				let fileListLen = this[`fileList${event.name}`].length
+				lists.map((item) => {
+					this[`fileList${event.name}`].push({
+						...item,
+						status: 'uploading',
+						message: '上传中'
+					})
+				})
+				for (let i = 0; i < lists.length; i++) {
+					const result = await this.uploadFilePromise(lists[i].url,status)
+					
+					let item = this[`fileList${event.name}`][fileListLen]
+					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
+						status: 'success',
+						message: '',
+						url: result
+					}))
+					fileListLen++
+					console.log(that.form, this[`fileList${event.name}`])
+					
+				}
+			},
+			uploadFilePromise(res,status) {
+				return new Promise((resolve, reject) => {
+					uploadImage(res, 'cardImages/',
+						result => {
+							that.homestayImageArray.push(result)
+							that.form.homestayImage = that.homestayImageArray.toString()
+							resolve(res)
+						}
+					)
+				})
+			},
+			confirmSubmit(){
+				uni.showLoading({
+					title: '加载中',
+					mask: true
+				})
+				that.$request.baseRequest('admin.tourism.homestayDetailInfo', 'add',{
+					homestayDetailInfo:JSON.stringify(this.form)
+				}, failres => {
+					uni.showToast({
+						icon: "none",
+						title: failres.errmsg,
+						duration: 3000
+					});
+					uni.hideLoading()
+				}).then(res => {
+					this.isSubmit = false
+					uni.showToast({
+						icon: "success",
+						title: '添加民宿成功',
+						duration: 2000
+					});
+				})
+			},
+			getHomestay(){
+				return new Promise((resolve, reject) => {
+					that.$request.baseRequest('admin.tourism.homestayDetailInfo', 'get', {
+						id:this.id
+					}, failres => {
+						uni.showToast({
+							icon: "none",
+							title: failres.errmsg,
+							duration: 3000
+						});
+						uni.hideLoading()
+					}).then(res => {
+						console.log(res.data)
+						 resolve(res.data)
+					})
+				})
+			},
+			submit(){
+				var labeldata=this.labelList.filter((item)=>{return item.value!=''})
+				var label=[]
+				for(var i=0;i<labeldata.length;i++){
+					label.push(labeldata[i].value)
+				}
+				this.form.label = label.toString()
+				this.form.houseType=this.room+','+this.hall+','+this.toilet
+				var list1=[],list2=[],list3=[],list4=[],list5=[]
+				var data1=this.checkboxList1.filter((item)=>{return item.checked})
+				var data2=this.checkboxList2.filter((item)=>{return item.checked})
+				var data3=this.checkboxList3.filter((item)=>{return item.checked})
+				var data4=this.checkboxList4.filter((item)=>{return item.checked})
+				var data5=this.checkboxList5.filter((item)=>{return item.checked})
+				if(data1.length>0){
+					for(var i=0;i<data1.length;i++){
+						list1.push(data1[i].name)
+					}
+					this.form.service=list1.toString()
+				}
+				if(data2.length>0){
+					for(var i=0;i<data2.length;i++){
+						list2.push(data2[i].name)
+					}
+					this.form.homeFurnishing=list2.toString()
+				}
+				if(data3.length>0){
+					for(var i=0;i<data3.length;i++){
+						list3.push(data3[i].name)
+					}
+					this.form.bathroom=list3.toString()
+				}
+				if(data4.length>0){
+					for(var i=0;i<data4.length;i++){
+						list4.push(data4[i].name)
+					}
+					this.form.kitchen=list4.toString()
+				}
+				if(data5.length>0){
+					for(var i=0;i<data5.length;i++){
+						list5.push(data5[i].name)
+					}
+					this.form.build=list5.toString()
+				}
+				this.isSubmit = true
+			},
+			checkboxChange1(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList1=this.checkboxList1.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList1=this.checkboxList1.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList1.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList1[index].checked=true
+							else  this.checkboxList1[index].checked=false
+						}
+						if(this.checkboxList1.every((item)=>{return item.checked==true})==true){
+							this.checked1=true
+						}else{
+							this.checked1=false
+						}
+					}
+				}else{
+					if(this.checkboxValue1){
+						this.checkboxList1=this.checkboxList1.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList1,this.checkList1)
+			},
+			checkboxChange2(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList2=this.checkboxList2.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList2=this.checkboxList2.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList2.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList2[index].checked=true
+							else  this.checkboxList2[index].checked=false
+						}
+						if(this.checkboxList2.every((item)=>{return item.checked==true})==true){
+							this.checked2=true
+						}else{
+							this.checked2=false
+						}
+					}
+				}else{
+					if(this.checkboxValue2){
+						this.checkboxList2=this.checkboxList2.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList2,this.checkList2)
+			},
+			checkboxChange3(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList3=this.checkboxList3.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList3=this.checkboxList3.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList3.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList3[index].checked=true
+							else  this.checkboxList3[index].checked=false
+						}
+						if(this.checkboxList3.every((item)=>{return item.checked==true})==true){
+							this.checked3=true
+						}else{
+							this.checked3=false
+						}
+					}
+				}else{
+					if(this.checkboxValue3){
+						this.checkboxList3=this.checkboxList3.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList3,this.checkList3)
+			},
+			checkboxChange4(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList4=this.checkboxList4.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList4=this.checkboxList4.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList4.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList4[index].checked=true
+							else  this.checkboxList4[index].checked=false
+						}
+						if(this.checkboxList4.every((item)=>{return item.checked==true})==true){
+							this.checked4=true
+						}else{
+							this.checked4=false
+						}
+					}
+				}else{
+					if(this.checkboxValue4){
+						this.checkboxList4=this.checkboxList4.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList4,this.checkList4)
+			},
+			checkboxChange5(e){
+				var data=JSON.parse(JSON.stringify(e))
+				this.$forceUpdate()
+				if(e[0]){
+					if(e[0]=='全选'){
+						this.checkboxList5=this.checkboxList5.map((item)=>{
+							item.checked = true 
+							return item})
+					}else{	
+						this.checkboxList5=this.checkboxList5.map((item)=>{
+								item.checked = false 
+								return item})
+						for(var i=0;i<data.length;i++){
+							var index=this.checkboxList5.findIndex((item)=>{return item.name==data[i]})
+							if(index!=-1) this.checkboxList5[index].checked=true
+							else  this.checkboxList5[index].checked=false
+						}
+						if(this.checkboxList5.every((item)=>{return item.checked==true})==true){
+							this.checked5=true
+						}else{
+							this.checked5=false
+						}
+					}
+				}else{
+					if(this.checkboxValue1){
+						this.checkboxList1=this.checkboxList1.map((item)=>{
+							item.checked = false 
+							return item})
+					}
+				}
+				console.log(this.checkboxList5,this.checkList5)
+			},
+			placeSelect() {
+				uni.chooseLocation({
+					success: function(res) {
+						console.log(res);
+						that.form.location = res.latitude + ',' + res.longitude
+						let _address = that.$helper.formatLocation(res.address)
+						console.log(_address)
+						that.form.province = _address.Province
+						that.form.city = _address.City
+						that.form.area = _address.Country
+						that.form.detailedAddress = _address.Village
+						that.$forceUpdate()
+					}
+				});
+			},
+			hideKeyboard() {
+				uni.hideKeyboard()
+			},
 		}
 		}
 	}
 	}
 </script>
 </script>
 
 
-<style>
-
+<style lang='scss' scoped>
+/deep/.u-checkbox-group{
+	flex-wrap: wrap;
+}
+.checkall{
+	width:25%;
+}
+/* .checkall /deep/.u-checkbox-group{
+	padding-right: 9vw;
+} */
+.more /deep/.u-checkbox-group .u-checkbox{
+		width:25%;
+		
+	}
 </style>
 </style>

+ 140 - 7
uni_applet/pageA/enter/myHomestay/index.vue

@@ -1,42 +1,175 @@
 <template>
 <template>
 	<view class='content'>
 	<view class='content'>
-		<view class='wrap'>
+		<view>
 			<view></view>
 			<view></view>
 			<view>
 			<view>
-				
+				<mescroll-uni :up="upOption" :down="downOption" ref="mescrollRef" @init="mescrollInit"
+					@up="upCallback" @down="downCallback" height="1400">
+					<view style='flex-wrap: wrap;' class="flex">
+						<view v-for='item in homestayList' class="homestayWrap">
+							<view>
+								<image @click='previewImg(item)' width="172"  height="172" :src="item.homestayImage" mode='aspectFill'></image>
+							</view>
+							<view>{{item.title}}</view>
+							<view>{{item.price}}</view>
+							<view class='flex'>
+								<view class='merchants_default_button_text' @click='edit(item)'>编辑</view>
+								<view class='merchants_caution_button_text' @click='del(item)'>删除</view>
+								<view class='merchants_default_button_text' @click='refresh(item)'>刷新</view>
+								<view class='merchants_default_button_text' @click='hitTheSheif(item)'>上架</view>
+							</view>
+						</view>	
+					</view>
+					
+				</mescroll-uni>
 			</view>
 			</view>
 		</view>
 		</view>
 		<view style='margin:20rpx;' class='flex  justify-space-between'>
 		<view style='margin:20rpx;' class='flex  justify-space-between'>
 			<view class='merchants_button'>一键刷新</view>
 			<view class='merchants_button'>一键刷新</view>
 			<view @click='add' class='merchants_button'>添加民宿</view>
 			<view @click='add' class='merchants_button'>添加民宿</view>
 		</view>
 		</view>
+		<u-modal :show="isDel" content='确定删除民宿信息?' @confirm="$u.debounce(confirmDel, 500)" showCancelButton
+			@cancel="isDel=false" @close="isDel=false" closeOnClickOverlay></u-modal>
 	</view>
 	</view>
 </template>
 </template>
 
 
 <script>
 <script>
 	var that
 	var that
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	export default {
 	export default {
+		mixins: [MescrollMixin],
 		data() {
 		data() {
 			return {
 			return {
-				
+				homestayList:[],
+				mescroll:null,
+				isDel:false,
+				currectData:{},
+				downOption: {
+					auto: false,
+					textColor: '#bbb'
+				},
+				upOption: {
+					page: {
+						size: 10 // 每页数据的数量,默认10
+					},
+					auto: false,
+					noMoreSize: 1,
+					textNoMore: '没有更多了~',
+					textColor: '#bbb'
+				},
 			}
 			}
 		},
 		},
 		onLoad() {
 		onLoad() {
 			that = this
 			that = this
 		},
 		},
 		onShow(){
 		onShow(){
-			
+			this.mescroll.resetUpScroll()
 		},
 		},
 		methods: {
 		methods: {
+			previewImg(item){
+				uni.previewImage({
+					current: 0,    
+					urls: [item.dishImage],
+					loop:true,
+				})
+			},
 			add(){
 			add(){
 				uni.navigateTo({
 				uni.navigateTo({
 					url:'/pageA/enter/myHomestay/add'
 					url:'/pageA/enter/myHomestay/add'
 				})
 				})
-			}
+			},
+			edit(item){
+				uni.navigateTo({
+					url:'/pageA/enter/myHomestay/edit?id='+item.id
+				})
+			},
+			del(item){
+				this.currectData = item
+				this.isDel = true
+			},
+			confirmDel(){
+					uni.showLoading({
+						title: '加载中',
+						mask: true
+					})
+					that.$request.baseRequest('admin.tourism.homestayDetailInfo', 'delete',{
+						id:this.currectD
+					}, failres => {
+						uni.showToast({
+							icon: "none",
+							title: failres.errmsg,
+							duration: 3000
+						});
+						uni.hideLoading()
+					}).then(res => {
+						this.isDel = false
+						uni.showToast({
+							icon: "success",
+							title: '删除民宿成功',
+							duration: 2000
+						});
+					})
+			},
+			mescrollInit(mescroll) {
+				this.mescroll = mescroll;
+			},
+			downCallback() {
+				// if (uni.getStorageSync("userInfo").phone) {
+					this.mescroll.resetUpScroll()
+				// } else {
+				// 	that.mescroll.endBySize(0, 0)
+				// 	this.showAuthorizePhone = true
+				// }
+			
+			},
+			getList(page){
+				return new Promise((resolve, reject) => {
+					that.$request.baseRequest('admin.tourism.homestayDetailInfo', 'list', {
+						page: page.num,
+						limit: page.size,
+						// searchContent: this.searchVal,
+						// classify: this.typeName
+					}, failres => {
+						uni.showToast({
+							icon: "none",
+							title: failres.errmsg,
+							duration: 3000
+						});
+						uni.hideLoading()
+					}).then(res => {
+						 resolve(res)
+					})
+				})
+				
+			},
+			async upCallback(page) {
+				console.log(11111)
+					// if (uni.getStorageSync("userInfo").id) {
+						uni.showLoading({
+							title: '数据加载中'
+						})
+						
+						var finddata=await that.getList(page)
+						if (page.num == 1) that.homestayList = [];
+						that.curPageLen = finddata.data.items.length;
+						that.homestayList = finddata.data.items
+						that.totalPage = finddata.data.total;
+						uni.hideLoading()
+						that.$nextTick(() => {
+							that.mescroll.endBySize(that.curPageLen, that.totalPage)
+						});	
+			
+					// }
+			},
 		}
 		}
 	}
 	}
 </script>
 </script>
 
 
-<style>
-
+<style lang='scss' scoped>
+.homestayWrap{
+	width:50%;
+	background:#fff;
+	padding:10rpx;
+	margin:10rpx;
+}
 </style>
 </style>

+ 15 - 5
uni_applet/pageA/find/createLifeService.vue

@@ -49,7 +49,7 @@
 				<u-form-item v-if='form.mainBody=="商铺"' labelWidth='80' labelPosition='top' label="营业执照">
 				<u-form-item v-if='form.mainBody=="商铺"' labelWidth='80' labelPosition='top' label="营业执照">
 					<u-upload height='208' width='320' :fileList="fileList2" @afterRead="afterRead($event,1)" @delete="deletePic" name="2" multiple
 					<u-upload height='208' width='320' :fileList="fileList2" @afterRead="afterRead($event,1)" @delete="deletePic" name="2" multiple
 						:maxCount="1">
 						:maxCount="1">
-						<image style='width:680rpx;height:417rpx;' src="../../static/image/find/yingyezhizhao.png" mode=""></image>
+						<image style='width:594rpx;height:378rpx;' src="../../static/image/find/yingyezhizhao.png" mode=""></image>
 						</u-upload>
 						</u-upload>
 				</u-form-item>
 				</u-form-item>
 				<view v-if='form.mainBody=="个人"' class='caution'>注:如提供风险类服务,请上传身份证信息</view>
 				<view v-if='form.mainBody=="个人"' class='caution'>注:如提供风险类服务,请上传身份证信息</view>
@@ -81,8 +81,8 @@
 				<button @click='submit' class="submit">提交</button>
 				<button @click='submit' class="submit">提交</button>
 			</view>
 			</view>
 		</view>
 		</view>
-		<u-modal :show="isSubmit" :content='content' @confirm="$u.debounce(confirmSubmit, 500)" showCancelButton
-			@cancel="isSubmit=false" @close="isSubmit=false" closeOnClickOverlay></u-modal>
+		<!-- <u-modal :show="isSubmit" :content='content' @confirm="$u.debounce(confirmSubmit, 500)" showCancelButton
+			@cancel="isSubmit=false" @close="isSubmit=false" closeOnClickOverlay></u-modal> -->
 	</view>
 	</view>
 </template>
 </template>
 
 
@@ -122,7 +122,6 @@
 		},
 		},
 		onLoad() {
 		onLoad() {
 			that = this
 			that = this
-		
 		},
 		},
 		onShow() {
 		onShow() {
 			
 			
@@ -207,7 +206,18 @@
 					});
 					});
 					return
 					return
 				}
 				}
-				this.isSubmit = true
+				uni.showModal({
+					title: '提示',
+					content: this.content,
+					success (res) {
+					    if (res.confirm) {
+							that.$u.debounce(confirmSubmit, 500)
+					    } else if (res.cancel) {
+					      console.log('用户点击取消')
+					    }
+					  }
+				})
+				// this.isSubmit = true
 			},
 			},
 			confirmSubmit() {
 			confirmSubmit() {
 				uni.showLoading({
 				uni.showLoading({

+ 9 - 8
uni_applet/pageA/food/menu.vue

@@ -14,10 +14,10 @@
 			</view>
 			</view>
 			<view class="wrap" v-if="dataObj.dishClassifyInfoList&&dataObj.dishClassifyInfoList.length>0">
 			<view class="wrap" v-if="dataObj.dishClassifyInfoList&&dataObj.dishClassifyInfoList.length>0">
 				<view class="item1" v-for="item in dataObj.dishClassifyInfoList" v-if="item.foodDishesInfoList&&item.foodDishesInfoList.length>0">
 				<view class="item1" v-for="item in dataObj.dishClassifyInfoList" v-if="item.foodDishesInfoList&&item.foodDishesInfoList.length>0">
-					<view class="row">
+					<view style='font-weight:600;' class="row">
 						{{item.classifyName}}
 						{{item.classifyName}}
 					</view>
 					</view>
-					<view class="" v-if="item.foodDishesInfoList&&item.foodDishesInfoList.length>0">
+					<view style='flex-wrap: wrap;' class="flex" v-if="item.foodDishesInfoList&&item.foodDishesInfoList.length>0">
 						<view class="item2" v-for="item1 in item.foodDishesInfoList">
 						<view class="item2" v-for="item1 in item.foodDishesInfoList">
 							<image :src="item1.dishImage" mode="" class="img"></image>
 							<image :src="item1.dishImage" mode="" class="img"></image>
 							<view class="bottom">
 							<view class="bottom">
@@ -42,8 +42,9 @@
 				<text>营业时间:</text>
 				<text>营业时间:</text>
 				<text>{{dataObj.startDate}}~{{dataObj.startDate}}</text>
 				<text>{{dataObj.startDate}}~{{dataObj.startDate}}</text>
 			</view>
 			</view>
-			<view @click='toTel' v-if='dataObj.contactsPhone' class="right">
-				电话订餐
+			<view @click='toTel' v-if='dataObj.contactsPhone'  class="right flex align-item-center">
+				<view style='position:relative;top:4rpx;'><u-icon name="phone" color='#fff'></u-icon></view>
+				<view>电话订餐</view>
 			</view>
 			</view>
 		</view>
 		</view>
 	</view>
 	</view>
@@ -54,7 +55,7 @@
 	export default {
 	export default {
 		data() {
 		data() {
 			return {
 			return {
-				keyword: '遥看瀑布挂前川',
+				keyword: '',
 				dataObj: {
 				dataObj: {
 					shopNames: ''
 					shopNames: ''
 				}
 				}
@@ -154,7 +155,7 @@
 		}
 		}
 		.item2 {
 		.item2 {
 			display: inline-block;
 			display: inline-block;
-			width: calc(50vw - 40rpx);
+			width: calc(50vw - 60rpx);
 			margin: 10rpx;
 			margin: 10rpx;
 			box-shadow: 0px 1px 2px 0px #ccc;
 			box-shadow: 0px 1px 2px 0px #ccc;
 			border-radius: 20rpx;
 			border-radius: 20rpx;
@@ -171,8 +172,8 @@
 
 
 		.img {
 		.img {
 			border-radius: 20rpx 20rpx 0 0 ;
 			border-radius: 20rpx 20rpx 0 0 ;
-			width: calc(50vw - 40rpx);
-			height: calc(50vw - 40rpx);
+			width: calc(50vw - 60rpx);
+			height: calc(50vw - 60rpx);
 			// width: 344rpx;
 			// width: 344rpx;
 			// height: 344rpx;
 			// height: 344rpx;
 		}
 		}

+ 1 - 1
uni_applet/pageA/food/search.vue

@@ -68,7 +68,7 @@
 				}else{
 				}else{
 					var text = e
 					var text = e
 				}
 				}
-				uni.setStorageSync('search_val', text);
+				uni.setStorageSync('search_food_val', text);
 				uni.switchTab({
 				uni.switchTab({
 					url: "/pages/food/food"
 					url: "/pages/food/food"
 				})
 				})

+ 2 - 2
uni_applet/pages.json

@@ -13,7 +13,7 @@
 		},{
 		},{
 			"path": "pages/food/food",
 			"path": "pages/food/food",
 			"style": {
 			"style": {
-				"navigationBarTitleText": "美食推荐",
+				"navigationBarTitleText": "美食",
 				"enablePullDownRefresh": false,
 				"enablePullDownRefresh": false,
 				"navigationStyle":"custom"
 				"navigationStyle":"custom"
 			}
 			}
@@ -59,7 +59,7 @@
 				"pagePath": "pages/food/food",
 				"pagePath": "pages/food/food",
 				"iconPath": "static/image/nav-icon/md-restaurant_menu.png",
 				"iconPath": "static/image/nav-icon/md-restaurant_menu.png",
 				"selectedIconPath": "static/image/nav-icon/md-restaurant_menu Copy.png",
 				"selectedIconPath": "static/image/nav-icon/md-restaurant_menu Copy.png",
-				"text": "美食推荐"
+				"text": "美食"
 			},
 			},
 			{
 			{
 				"pagePath": "pages/play/play",
 				"pagePath": "pages/play/play",

+ 2 - 151
uni_applet/pages/accommodation/accommodation.vue

@@ -1,62 +1,6 @@
 <template>
 <template>
 	<view>
 	<view>
 		
 		
-		
-		<u-modal :show="showAuthorizePhone" :showConfirmButton="false">
-		 	<view class="slot-content">
-		 		<view class="auth-card">
-		 			<view class="img">
-		 				<img class="avatar-img" src="@/static/logo.png" mode="widthFix">
-		 			</view>
-		 			<view class="content">手机登录后才能查看名片哦~</view>
-		 		</view>
-		 		<view class="auth-btncard">
-		 			<view class="btn-unok">
-		 				<u-button :customStyle="customStyleUnOk" @click="showAuthorizePhone=false" :plain="true">
-		 					拒绝</u-button>
-		 			</view>
-		 			<view class="btn-ok">
-		 				<u-button :customStyle="customStyleOk" open-type="getPhoneNumber"
-		 					@getphonenumber="getPhoneNumber"> 立即登录</u-button>
-		 			</view>
-		 		</view>
-		 	</view>
-		 </u-modal>
-		<u-modal :show="showAuthorizeUser" :showConfirmButton="false">
-			<view class="slot-content">
-				<view class="auth-card">
-					<view class="img">
-						<img class="avatar-img" src="@/static/logo.png" mode="widthFix">
-					</view>
-					<view class="content">邀请您补全个人信息<br></br>(昵称、头像)</view>
-					<view style="margin-left: 100rpx;margin-right: 100rpx">
-						<u-form :model="userInfo" ref="uForm">
-							<u-form-item label="头像">
-								<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
-									slot="right">
-									<image class="avatar"
-										:src="userInfo.head?userInfo.head:'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'">
-									</image>
-								</button>
-							</u-form-item>
-							<u-form-item label="昵称">
-								<u-input inputAlign='right' v-model="userInfo.nickname" class="weui-input"
-									@blur="userNameInput" placeholder="请输入昵称" border="false" />
-								<!-- <input type="nickname" :value="userInfo.nickname" class="weui-input" @blur="userNameInput" placeholder="请输入昵称"/> -->
-							</u-form-item>
-						</u-form>
-					</view>
-				</view>
-				<view class="auth-btncard">
-					<view class="btn-unok"><u-button :customStyle="customStyleUnOk" @click="authUser(0)">
-							拒绝</u-button>
-					</view>
-					<view class="btn-ok">
-						<u-button :customStyle="customStyleOk" @click="authUser(1)"> 允许</u-button>
-					</view>
-				</view>
-			</view>
-		</u-modal>
 	</view>
 	</view>
 </template>
 </template>
 
 
@@ -65,28 +9,7 @@
 	export default {
 	export default {
 		data() {
 		data() {
 			return {
 			return {
-				showAuthorizePhone:false,
-				showAuthorizeUser:false,
-				userInfo: {
-					head: '',
-					nickname: '',
-					phone: '',
-				},
-				customStyleUnOk: {
-					marginTop: '20rpx',
-					color: '#eaad1a',
-					border: '2px solid #eaad1a',
-					"border-radius": "10px",
-					fontSize: "32rpx"
-				},
-				customStyleOk: {
-					marginTop: '20rpx',
-					color: '#fff',
-					border: '2px solid #eaad1a',
-					"border-radius": "10px",
-					fontSize: "32rpx",
-					background: "#eaad1a"
-				},
+			
 			};
 			};
 		},
 		},
 		onLoad(){
 		onLoad(){
@@ -96,87 +19,15 @@
 			
 			
 			if (uni.getStorageSync("userInfo").phone) {
 			if (uni.getStorageSync("userInfo").phone) {
 			} else {
 			} else {
-				this.showAuthorizePhone = true
+				
 			}
 			}
 		
 		
 		},
 		},
 		methods:{
 		methods:{
-			async getPhoneNumber(e) {
-				console.log(0)
-				that.userInfo = await this.$request.wxlogin()
-				console.log(that.userInfo,1111)
-				that.userInfo.phone = await this.$request.getPhone(e, that.userInfo)
-				console.log(that.userInfo,2222)
-				this.showAuthorizePhone = false
-				this.showAuthorizeUser = true
-			
-			},
-			async authUser(type) {
-				//同步信息,没有头像和昵称自动生成
-				this.userInfo = await this.$request.syncInfo(this.userInfo)
-				if (this.userInfo.openId) {
-					uni.setStorageSync("userInfo", that.userInfo)
-					that.showAuthorizeUser = false
-					// that.mescroll.resetUpScroll()
-				}
-			},
 		}
 		}
 	}
 	}
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
-	.auth-btncard {
-		display: flex !important;
-		justify-content: space-between !important;
-	
-		.btn-unok {
-			width: 40%;
-		}
-	
-		.btn-ok {
-			width: 40%;
-		}
-	}
-	
-	.auth-card {
-		text-align: center;
 	
 	
-		.avatar-img {
-			width: 250rpx;
-		}
-	
-		.title {
-			font-size: 20rpx;
-		}
-	
-		.content {
-			font-size: 32rpx;
-			font-weight: bold;
-			color: #1A1A1A;
-			margin-bottom: 30rpx;
-		}
-	}
-	
-	.avatar-wrapper {
-		color: #333 !important;
-		border: none !important;
-		border-radius: 0 !important;
-		background-color: transparent !important;
-		padding: 0;
-	}
-	
-	.avatar-wrapper::after {
-		border: none !important;
-	}
-	
-	.avatar {
-		width: 100rpx;
-		height: 100rpx;
-		overflow: hidden;
-		border-radius: 100%;
-	}
-	
-	/deep/.u-popup__content {
-		border-radius: 20rpx !important;
-	}
 </style>
 </style>

+ 25 - 11
uni_applet/pages/find/find.vue

@@ -13,8 +13,8 @@
 					</view>
 					</view>
 			
 			
 					<view class="right">
 					<view class="right">
-						<!-- <image style='width:32rpx;height:32rpx;' v-if="searchVal" @click.native.stop="delSearchVal"
-							src="../../static/imgs/card/searchdel.png" mode="widthFix"></image> -->
+						<image style='width:32rpx;height:32rpx;' v-if="searchVal" @click.stop="delSearchVal"
+							src="@/static/image/card/searchdel.png" mode="widthFix"></image>
 					</view>
 					</view>
 				</view>
 				</view>
 			</view>
 			</view>
@@ -29,6 +29,7 @@
 					:height='height'
 					:height='height'
 					imgMode='aspectFill'
 					imgMode='aspectFill'
 					radius='0'
 					radius='0'
+					interval='5000'
 					:circular="true"
 					:circular="true"
 					@change="e => current = e.current" @click="click">
 					@change="e => current = e.current" @click="click">
 						<view slot="indicator" class="indicator">
 						<view slot="indicator" class="indicator">
@@ -45,13 +46,13 @@
 					<view style='align-items: flex-start;' class='flex'>
 					<view style='align-items: flex-start;' class='flex'>
 						<view class="left">
 						<view class="left">
 							<view class='cover'>
 							<view class='cover'>
-								<u--image radius='4' :showLoading="true" :src="item.coverImage" width="80px" height="80px" @click="click"></u--image>
+								<u--image radius='4' :showLoading="true" :src="item.coverImage" width="86px" height="86px" @click="click"></u--image>
 							</view>
 							</view>
 						</view>
 						</view>
 						<view class="right">
 						<view class="right">
 							<view class='flex'>
 							<view class='flex'>
 								<view v-if='item.mainBody=="商铺"' class='iconfont applet-dianpu1'></view>
 								<view v-if='item.mainBody=="商铺"' class='iconfont applet-dianpu1'></view>
-								<u--image v-if='item.mainBody=="个人"'  :showLoading="true" src="/static/image/find/geren.png" width="20px" height="20px"></u--image>
+								<u--image v-if='item.mainBody=="个人"' :showLoading="true" src="/static/image/find/geren.png" width="20px" height="20px"></u--image>
 								<view  class='name'>{{item.shopNames}}</view>
 								<view  class='name'>{{item.shopNames}}</view>
 							</view>
 							</view>
 							<view class='description'>
 							<view class='description'>
@@ -71,6 +72,7 @@
 			</mescroll-uni>
 			</mescroll-uni>
 			<!-- <mescroll-body ref="mescrollRef" :up="upOption" :down="downOption" @init="mescrollInit" @up="upCallback" @down="downCallback"></mescroll-body> -->
 			<!-- <mescroll-body ref="mescrollRef" :up="upOption" :down="downOption" @init="mescrollInit" @up="upCallback" @down="downCallback"></mescroll-body> -->
 		</view>
 		</view>
+		<login-pop-up ref='loginpopup' :content='"手机登录后才能发布内容哦~"'></login-pop-up>
 		<view class='add' @click='add'>
 		<view class='add' @click='add'>
 			<u--image   :showLoading="true" src="/static/image/find/add.png" width="60px" height="60px"></u--image>
 			<u--image   :showLoading="true" src="/static/image/find/add.png" width="60px" height="60px"></u--image>
 		</view>
 		</view>
@@ -84,10 +86,12 @@
 		authorizedLocation
 		authorizedLocation
 	} from '@/util/util.js'
 	} from '@/util/util.js'
 	import MoteLinesDivide from "@/components/text-over-flow/text-over-flow.vue"
 	import MoteLinesDivide from "@/components/text-over-flow/text-over-flow.vue"
+	import loginPopUp from "@/components/loginPopUp/index.vue"
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	export default {
 	export default {
 		components: {
 		components: {
-			MoteLinesDivide
+			MoteLinesDivide,
+			loginPopUp
 		},
 		},
 		mixins: [MescrollMixin],
 		mixins: [MescrollMixin],
 		data() {
 		data() {
@@ -129,6 +133,7 @@
 		onShow(){
 		onShow(){
 			if(uni.getStorageSync("search_val")){
 			if(uni.getStorageSync("search_val")){
 				this.searchVal = uni.getStorageSync("search_val")
 				this.searchVal = uni.getStorageSync("search_val")
+				this.mescroll.resetUpScroll()
 			}
 			}
 			this.height = uni.getSystemInfoSync().windowWidth/2.35;
 			this.height = uni.getSystemInfoSync().windowWidth/2.35;
 			
 			
@@ -154,6 +159,11 @@
 			}
 			}
 		},
 		},
 		methods: {
 		methods: {
+			delSearchVal(){
+				this.searchVal = ''
+				uni.setStorageSync("search_val",'')
+				that.mescroll.resetUpScroll()
+			},
 			search() {
 			search() {
 				// if (this.userInfo.phone) {
 				// if (this.userInfo.phone) {
 					uni.navigateTo({
 					uni.navigateTo({
@@ -230,7 +240,7 @@
 				})
 				})
 			},
 			},
 			mescrollInit(mescroll) {
 			mescrollInit(mescroll) {
-				this.mescroll = mescroll;
+				// this.$refs.loginpopup.mescroll = mescroll;
 			},
 			},
 			downCallback() {
 			downCallback() {
 				// if (uni.getStorageSync("userInfo").phone) {
 				// if (uni.getStorageSync("userInfo").phone) {
@@ -290,7 +300,7 @@
 								that.handleList[i].latitude=that.handleList[i].location.split(',')[0]
 								that.handleList[i].latitude=that.handleList[i].location.split(',')[0]
 								that.handleList[i].longitude=that.handleList[i].location.split(',')[1]
 								that.handleList[i].longitude=that.handleList[i].location.split(',')[1]
 								that.handleList[i].distance1 = JSON.parse(JSON.stringify(that.handleList[i].distance))
 								that.handleList[i].distance1 = JSON.parse(JSON.stringify(that.handleList[i].distance))
-								that.handleList[i].distance=(that.handleList[i].distance/1000).toFixed(2)
+								that.handleList[i].distance=(that.handleList[i].distance/1000).toFixed(1)
 								console.log(that.handleList)
 								console.log(that.handleList)
 								that.findList = that.handleList
 								that.findList = that.handleList
 								that.loading = false
 								that.loading = false
@@ -304,9 +314,13 @@
 					// }
 					// }
 			},
 			},
 		 add(){
 		 add(){
-			uni.navigateTo({
-				url: '/pageA/find/createLifeService'
-			})
+			if(!uni.getStorageSync("userInfo").phone){
+				this.$refs.loginpopup.open()
+			}else{
+				uni.navigateTo({
+					url: '/pageA/find/createLifeService'
+				}) 
+			}
 		 },
 		 },
 		 getList(){
 		 getList(){
 			 this.$request.baseRequest('admin.tourism.carouselManagement', 'list', {
 			 this.$request.baseRequest('admin.tourism.carouselManagement', 'list', {
@@ -330,7 +344,7 @@
 		 			limit: page.size,
 		 			limit: page.size,
 					userLongitude:that.longitude,
 					userLongitude:that.longitude,
 					userLatitude:that.latitude,
 					userLatitude:that.latitude,
-		 			// searchContent: this.searchVal,
+		 			searchKeyWord: this.searchVal,
 		 			// classify: this.typeName
 		 			// classify: this.typeName
 		 		}, failres => {
 		 		}, failres => {
 		 			uni.showToast({
 		 			uni.showToast({

+ 171 - 179
uni_applet/pages/food/food.vue

@@ -1,51 +1,59 @@
 <template>
 <template>
 	<view class="content">
 	<view class="content">
-		<u-navbar title="美食推荐" :safeAreaInsetTop="true" placeholder='true' fixed>
-			<view class="u-nav-slot" slot="left" @click='leftClick'>
-				<view class="iconfont applet-colors-ditu"></view>
+		<u-navbar
+		            title="美食推荐"
+		            :safeAreaInsetTop="true"
+					placeholder='true'
+					fixed
+		        >
+		            <view
+		                class="u-nav-slot"
+		                slot="left"
+						@click='leftClick'
+		            >
+		               <view class="iconfont applet-colors-ditu"></view>
+		            </view>
+		        </u-navbar>
+		<view class="flex content1">
+			<view @click='placeSelect' class='address flex'>
+				<view class='detailedAddress'>{{detailedAddress1}}</view>
+				<view class='iconfont applet-xiala'></view>
 			</view>
 			</view>
-		</u-navbar>
-			<mescroll-uni :up="upOption" :down="downOption" ref="mescrollRef" @init="mescrollInit"
-				@up="upCallback" @down="downCallback" :top="150">
-				
-				<view class="flex content1">
-					<view @click='placeSelect' class='address flex'>
-						<view class='detailedAddress'>{{detailedAddress}}</view>
-						<view class='iconfont applet-xiala'></view>
+			<view class=" search-wrap">
+				<view class="search flex justify-space-between align-item-center flex-between" @click="search">
+					<view class="left flex">
+						<image class="dSLComVueTopLeftImg" style="width: 30rpx;height: 30rpx;flex: none;" src="@/static/image/card/search.png"></image>
+						<text class="search-val"> {{searchVal?searchVal:'搜索美食'}}</text>
 					</view>
 					</view>
-					<view class="search-wrap">
-						<view class="search flex justify-space-between align-item-center flex-between" @click="search">
-							<view class="left flex">
-								<image class="dSLComVueTopLeftImg" style="width: 40rpx;height: 40rpx"
-									src="@/static/image/card/search.png"></image>
-								<text class="search-val"> {{searchVal?searchVal:'搜索美食'}}</text>
-							</view>
-				
-							<view class="right">
-								<image style='width:32rpx;height:32rpx;' v-if="searchVal" @click.stop="delSearchVal"
-									src="@/static/image/card/searchdel.png" mode="widthFix"></image>
-							</view>
-						</view>
-					</view>
-				</view>
-				<view class="tag-type head">
-					<view v-for='item in jobs' @click="change(item)" class="item" :class="item.checked?'item-active':''">
-						{{item.iname}}
+
+					<view class="right">
+						<image style='width:32rpx;height:32rpx;' v-if="searchVal" @click.stop="delSearchVal"
+							src="@/static/image/card/searchdel.png" mode="widthFix"></image>
 					</view>
 					</view>
 				</view>
 				</view>
-				<scroll-view scroll-x="true" scroll-with-animation="true" class='list-type'>
-					<view v-for='item in searchTypes' @click='changetype(item)'
-						:class='searchType==item.value?"Semibold active":"Regular"' class="typeitem">{{item.name}}</view>
-				</scroll-view>
-				<view class='findItem' v-for='item in findList' @click="toShop(item)" v-if="item.foodDishesInfoList&&item.foodDishesInfoList.length!=0">
-					<view style='align-items: flex-start;' class='flex' >
+			</view>
+		</view>
+		<view class="tag-type head">
+			<view v-for='item in jobs' @click="change(item)" class="item" :class="item.checked?'item-active':''">
+				{{item.iname}}
+			</view>
+		</view>
+		<scroll-view scroll-x="true" scroll-with-animation="true" class='list-type'>
+			<view v-for='item in searchTypes' @click='changetype(item)'
+				:class='searchType==item.value?"Semibold active":"Regular"' class="typeitem">{{item.name}}</view>
+		</scroll-view>
+		<view>
+			<mescroll-uni height="1200" :up="upOption" :down="downOption" ref="mescrollRef" @init="mescrollInit" @up="upCallback"
+				@down="downCallback" >
+				<view class='findItem' v-for='item in findList' @click="toShop(item)">
+					<view style='align-items: flex-start;' class='flex'>
 						<view style='width:100vw;' class="left flex">
 						<view style='width:100vw;' class="left flex">
-							<!-- @click.stop='previewImg(item1)' -->
-							<view v-for='item1 in item.foodDishesInfoList' class="img">
-								<u--image radius='4' :showLoading="true" :src="item1.dishImage" width="150rpx"
-									height="150rpx" ></u--image>
+							 <!-- @click.stop='previewImg(item1)' -->
+							<view v-for='item1 in item.foodDishesInfoList' style='margin:10rpx;'>
+								<u--image  radius='4' :showLoading="true" :src="item1.dishImage" width="80px"
+									height="80px"></u--image>
 							</view>
 							</view>
-
+								
 						</view>
 						</view>
 					</view>
 					</view>
 					<view class='flex row2'>
 					<view class='flex row2'>
@@ -58,22 +66,22 @@
 						<text class="text" v-for='item1 in item.labels'> {{item1}}</text>
 						<text class="text" v-for='item1 in item.labels'> {{item1}}</text>
 					</view>
 					</view>
 					<view class='address flex justify-space-between'>
 					<view class='address flex justify-space-between'>
-						<view style='width:60vw;' class='flex'>
+						<view @click.stop='' style='width:60vw;' class='flex'>
 							<view class='iconfont applet-dizhi'></view>
 							<view class='iconfont applet-dizhi'></view>
-							<view class="detailedAddress" @click.stop="toShopDetail(item)">
+							<view class="detailedAddress">
 								{{item.detailedAddress}}
 								{{item.detailedAddress}}
 							</view>
 							</view>
 							<!-- <view>{{item.province}}{{item.city}}{{item.area}}</view> -->
 							<!-- <view>{{item.province}}{{item.city}}{{item.area}}</view> -->
-
+							
 						</view>
 						</view>
-						<view style="color: #999;width:40vw;text-align:right;">
-							距离{{item.distance1>1000?item.distance:item.distance1}} {{item.distance1>1000?'km':'m'}}
+						<view style="color: #888;width:40vw;text-align:right;">
+							{{item.distance1>1000?item.distance:item.distance1}} {{item.distance1>1000?'km':'m'}}
 						</view>
 						</view>
 					</view>
 					</view>
 				</view>
 				</view>
 			</mescroll-uni>
 			</mescroll-uni>
 			<!-- <mescroll-body ref="mescrollRef" :up="upOption" :down="downOption" @init="mescrollInit" @up="upCallback" @down="downCallback"></mescroll-body> -->
 			<!-- <mescroll-body ref="mescrollRef" :up="upOption" :down="downOption" @init="mescrollInit" @up="upCallback" @down="downCallback"></mescroll-body> -->
-
+		</view>
 		<!-- <view class='group' @click='group'>
 		<!-- <view class='group' @click='group'>
 			<button class="tuan">团</button>
 			<button class="tuan">团</button>
 		</view> -->
 		</view> -->
@@ -83,7 +91,7 @@
 <script>
 <script>
 	var that;
 	var that;
 	var GDMapWX = require('@/js_sdk/js-amap/amap-wx.130.js');
 	var GDMapWX = require('@/js_sdk/js-amap/amap-wx.130.js');
-
+	
 	import uniTag from '@/uni_modules/uni-tag/components/uni-tag/uni-tag.vue';
 	import uniTag from '@/uni_modules/uni-tag/components/uni-tag/uni-tag.vue';
 	import MoteLinesDivide from "@/components/text-over-flow/text-over-flow.vue"
 	import MoteLinesDivide from "@/components/text-over-flow/text-over-flow.vue"
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
@@ -99,7 +107,7 @@
 		data() {
 		data() {
 			return {
 			return {
 				place: '',
 				place: '',
-				searchVal: "",
+				searchVal:  "",
 				current: 0,
 				current: 0,
 				mescroll: null,
 				mescroll: null,
 				findList: [],
 				findList: [],
@@ -113,48 +121,49 @@
 				curPageLen: 0,
 				curPageLen: 0,
 				totalPage: 0,
 				totalPage: 0,
 				detailedAddress: '正在定位...',
 				detailedAddress: '正在定位...',
+				detailedAddress1:'',
 				downOption: {
 				downOption: {
 					auto: false,
 					auto: false,
 					textColor: '#bbb'
 					textColor: '#bbb'
 				},
 				},
 				searchTypes: [{
 				searchTypes: [{
-						name: '默认排序',
-						value: '1'
-					}, {
-						name: '距离最近',
-						value: '2'
-					},
-					// {
-					// 	name: '最多点赞',
-					// 	value: '3'
-					// }, {
-					// 	name: '我的收藏',
-					// 	value: '4'
-					// },
+					name: '默认排序',
+					value: '1'
+				}, {
+					name: '距离最近',
+					value: '2'
+				},
+				// {
+				// 	name: '最多点赞',
+				// 	value: '3'
+				// }, {
+				// 	name: '我的收藏',
+				// 	value: '4'
+				// },
 				],
 				],
 				jobs: [{
 				jobs: [{
 						id: 1,
 						id: 1,
 						iname: '海鲜',
 						iname: '海鲜',
-						checked: false
+						checked:false
 					},
 					},
 					{
 					{
 						id: 2,
 						id: 2,
 						iname: '自助',
 						iname: '自助',
-						checked: false
+						checked:false
 					}, {
 					}, {
 						id: 3,
 						id: 3,
 						iname: '烧烤',
 						iname: '烧烤',
-						checked: false
+						checked:false
 					},
 					},
 					{
 					{
 						id: 4,
 						id: 4,
 						iname: '火锅',
 						iname: '火锅',
-						checked: false
+						checked:false
 					},
 					},
 					{
 					{
 						id: 5,
 						id: 5,
 						iname: '家常菜',
 						iname: '家常菜',
-						checked: false
+						checked:false
 					},
 					},
 					{
 					{
 						id: 6,
 						id: 6,
@@ -191,38 +200,32 @@
 		},
 		},
 		onShow() {
 		onShow() {
 			//判断是否有定位权限
 			//判断是否有定位权限
-			this.searchVal = uni.getStorageSync("search_val")
-			if (this.detailedAddress == '正在定位...') {
+			this.searchVal = uni.getStorageSync("search_food_val")
+			if(this.detailedAddress=='正在定位...'){
 				this.isdingwei()
 				this.isdingwei()
 			}
 			}
 		},
 		},
 		methods: {
 		methods: {
-			toShopDetail(val){
-				console.log(val)
-				uni.navigateTo({
-					url: "/pageA/food/detailMap?val="+JSON.stringify(val)
-				})
-				
-			},
-			leftClick() {
+			leftClick(){
 				uni.navigateTo({
 				uni.navigateTo({
 					url: "/pageA/food/fondMap"
 					url: "/pageA/food/fondMap"
 				})
 				})
 			},
 			},
-			previewImg(item) {
+			previewImg(item){
 				uni.previewImage({
 				uni.previewImage({
-					current: 0,
+					current: 0,    
 					urls: [item.dishImage],
 					urls: [item.dishImage],
-					loop: true,
+					loop:true,
 				})
 				})
 			},
 			},
-			toShop(val) {
+			toShop(val){
 				uni.navigateTo({
 				uni.navigateTo({
-					url: "/pageA/food/menu?val=" + JSON.stringify(val)
+					url: "/pageA/food/menu?val="+JSON.stringify(val)
 				})
 				})
 			},
 			},
-			delSearchVal() {
+			delSearchVal(){
 				this.searchVal = ''
 				this.searchVal = ''
+				
 				that.mescroll.resetUpScroll()
 				that.mescroll.resetUpScroll()
 			},
 			},
 			isdingwei() {
 			isdingwei() {
@@ -251,21 +254,37 @@
 					}
 					}
 					this.longitude = _obj.longitude
 					this.longitude = _obj.longitude
 					this.latitude = _obj.latitude
 					this.latitude = _obj.latitude
-					var amapPluginInstance = new GDMapWX.AMapWX({
-						key: '6bafe91754a563ff2b7c02542c1ef4e8'
-					});
-					amapPluginInstance.getRegeo({
-						success: function(res) {
-							console.log(res)
-							that.detailedAddress = res[0].desc
-							that.mescroll.resetUpScroll()
-							//成功回调
-						},
-						fail: function(info) {
-							//失败回调
-							console.log(info)
-						}
-					})
+					var amapPluginInstance = new GDMapWX.AMapWX({	
+									key: '6bafe91754a563ff2b7c02542c1ef4e8'
+								});
+							   amapPluginInstance.getRegeo({
+							      success: function(res){
+									  console.log(res)
+									  		that.detailedAddress = res[0].desc
+											that.detailedAddress1 = that.detailedAddress.length>4 ? that.detailedAddress.slice(0,4)+'...' : that.detailedAddress
+									  		that.mescroll.resetUpScroll()
+							        //成功回调
+							      },
+							      fail: function(info){
+							        //失败回调
+							        console.log(info)
+							      }
+							    })
+					// qqmapsdk.reverseGeocoder({
+					// 	location: _obj,
+					// 	success: function(res) {
+					// 		console.log(res)
+					// 		that.detailedAddress = res.result.formatted_addresses.recommend
+					// 		that.mescroll.resetUpScroll()
+					// 	},
+					// 	fail: function(error) {
+					// 		console.error(error);
+					// 	},
+					// 	complete: function(res) {
+					// 		// console.log(res);
+					// 	}
+
+					// })
 
 
 				})
 				})
 			},
 			},
@@ -306,6 +325,7 @@
 						uni.setStorageSync("findlongitude", res.longitude)
 						uni.setStorageSync("findlongitude", res.longitude)
 						// let _address = that.$helper.formatLocation(res.address)
 						// let _address = that.$helper.formatLocation(res.address)
 						that.detailedAddress = res.name
 						that.detailedAddress = res.name
+						that.detailedAddress1 = that.detailedAddress.length>4 ? that.detailedAddress.slice(0,4)+'...' : that.detailedAddress
 						uni.setStorageSync("detailedAddress", res.name)
 						uni.setStorageSync("detailedAddress", res.name)
 						that.$forceUpdate()
 						that.$forceUpdate()
 						that.upCallback({
 						that.upCallback({
@@ -370,8 +390,8 @@
 					searchType: this.searchType,
 					searchType: this.searchType,
 					searchKeyWord: this.searchVal,
 					searchKeyWord: this.searchVal,
 					place: this.detailedAddress,
 					place: this.detailedAddress,
-					userLongitude: this.longitude,
-					userLatitude: this.latitude,
+					userLongitude:this.longitude,
+					userLatitude:this.latitude,
 				}, failres => {
 				}, failres => {
 					uni.showToast({
 					uni.showToast({
 						icon: "none",
 						icon: "none",
@@ -397,12 +417,12 @@
 						if (that.handleList[i].label) {
 						if (that.handleList[i].label) {
 							that.handleList[i].labels = that.handleList[i].label.split(",")
 							that.handleList[i].labels = that.handleList[i].label.split(",")
 						}
 						}
-						if (that.handleList[i].foodDishesInfoList) {
-							that.handleList[i].foodDishesInfoList = that.handleList[i].foodDishesInfoList.splice(0, 4)
+						if(that.handleList[i].foodDishesInfoList){
+							that.handleList[i].foodDishesInfoList = that.handleList[i].foodDishesInfoList.splice(0,4)
 						}
 						}
 					}
 					}
 					that.findList = that.handleList
 					that.findList = that.handleList
-
+					
 				} else {
 				} else {
 					uni.hideLoading()
 					uni.hideLoading()
 				}
 				}
@@ -430,70 +450,67 @@
 			// color: #9199af;
 			// color: #9199af;
 			// background: #f9d27d;
 			// background: #f9d27d;
 			border-radius: 50rpx;
 			border-radius: 50rpx;
-			padding: 15rpx 0 15rpx 30rpx;
+			padding: 10rpx 0 10rpx 30rpx;
 			box-sizing: border-box;
 			box-sizing: border-box;
 			margin-right: 20rpx;
 			margin-right: 20rpx;
-		
 		}
 		}
 
 
 		.left {
 		.left {
 			width: 80%;
 			width: 80%;
 
 
 			text {
 			text {
+				height: 46rpx;
 				white-space: nowrap;
 				white-space: nowrap;
 				overflow: scroll;
 				overflow: scroll;
 				position: relative;
 				position: relative;
 				margin-left: 20rpx;
 				margin-left: 20rpx;
-				color: #BBBBBB;
-				display: flex;
-				    align-items: center;
+				color: #9199af;
 			}
 			}
 		}
 		}
 
 
 		.right {
 		.right {
 			// width:14%;
 			// width:14%;
-			// margin-right: 20rpx
-			display: flex;
+			margin-right: 20rpx
 		}
 		}
 	}
 	}
 
 
 	.search-wrap {
 	.search-wrap {
-		width: 70%;
+		width: 76%;
 		background: rgb(249, 249, 249);
 		background: rgb(249, 249, 249);
 		// border: 1px solid #f9d27d;
 		// border: 1px solid #f9d27d;
 		border-radius: 50rpx;
 		border-radius: 50rpx;
-		.left{
-			align-items: center;
-		}
-		.search-val{
-			color:#BBBBBB;
-		}
 	}
 	}
 
 
 	.address {
 	.address {
-		width: 30%;
+		width: 24%;
+		margin-right:10rpx;
 	}
 	}
 
 
 	.findItem {
 	.findItem {
 		background: #fff;
 		background: #fff;
-		margin: 20rpx;
+		margin: 10rpx;
 		border-radius: 20rpx;
 		border-radius: 20rpx;
 		padding: 20rpx;
 		padding: 20rpx;
-		font-size: 32rpx;
-
-		.row2 {
+		font-size:32rpx;
+		.detailedAddress{
+			width: 70vw;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+		.row2{
 			margin: 20rpx 0;
 			margin: 20rpx 0;
 		}
 		}
-
 		.left {
 		.left {
-			// background: red;
+			margin-right: 20rpx;
+
+			.cover {
+				border-radius: 8rpx;
+			}
 		}
 		}
 
 
 		.name {
 		.name {
 			color: #333;
 			color: #333;
 			margin-left: 10rpx;
 			margin-left: 10rpx;
-			font-weight: 700;
-			font-size: 36rpx;
 		}
 		}
 
 
 		.description {
 		.description {
@@ -502,26 +519,19 @@
 		}
 		}
 
 
 		.address {
 		.address {
-			margin-top: 30rpx;
+			margin-top: 20rpx;
 			width: 100%;
 			width: 100%;
 			color: #393733;
 			color: #393733;
 		}
 		}
-		.img{
-			margin: 10rpx;
-		}
 	}
 	}
 
 
 	.applet-dianpu1 {
 	.applet-dianpu1 {
-		color: #393733;
-		font-size: 50rpx;
-		
+		color: #999999;
 	}
 	}
 
 
 	.applet-dizhi {
 	.applet-dizhi {
 		color: #393733;
 		color: #393733;
-		font-size: 40rpx;
-		position: relative;
-		top: -2rpx;
+		font-size:38rpx;
 	}
 	}
 
 
 	.group {
 	.group {
@@ -538,7 +548,8 @@
 		color: #fff;
 		color: #fff;
 	}
 	}
 
 
-	.applet-colors-tianjia2 {}
+	.applet-colors-tianjia2 {
+	}
 
 
 	// .text {
 	// .text {
 	// 	font-size: 26rpx;
 	// 	font-size: 26rpx;
@@ -547,42 +558,41 @@
 	// 	opacity: 0.5;
 	// 	opacity: 0.5;
 	// 	margin-right: 56rpx;
 	// 	margin-right: 56rpx;
 	// }
 	// }
-	.head {
+	.head{
 		white-space: nowrap;
 		white-space: nowrap;
 		overflow-x: scroll;
 		overflow-x: scroll;
 		padding-left: 20rpx;
 		padding-left: 20rpx;
 		width: calc(100vw);
 		width: calc(100vw);
-
+				
 		box-sizing: border-box;
 		box-sizing: border-box;
-
-		.item {
-			display: inline-block;
-			background: #F0F0F0;
-			color: #999;
-			padding: 10rpx 26rpx;
-			margin-right: 20rpx;
-			border-radius: 50rpx;
-			font-size: 24rpx;
-		}
+		
+			.item {
+				display: inline-block;
+				background: #e9eaec;
+				color: #566068;
+				padding: 10rpx 26rpx;
+				margin-right: 20rpx;
+				border-radius: 20rpx;
+				font-size: 24rpx;
+			}
 	}
 	}
-
 	.tag-type {
 	.tag-type {
-		.text {
+		.text{
 			border-radius: 4px;
 			border-radius: 4px;
-			background-color: #FDF2E5;
-			color: #E95700;
+			background-color: rgba(253, 242, 229, 1);
+			color: rgba(233, 87, 0, 1);
 			margin-right: 30rpx;
 			margin-right: 30rpx;
-			padding: 10rpx 26rpx;
+			padding: 10rpx 20rpx;
 			font-size: 24rpx;
 			font-size: 24rpx;
 		}
 		}
-
+		
 	}
 	}
 
 
 	.list-type {
 	.list-type {
 		background: #fff;
 		background: #fff;
 		width: 100vw;
 		width: 100vw;
 		padding-top: 5px;
 		padding-top: 5px;
-		height: 88rpx;
+		height: 86rpx;
 		overflow-x: scroll;
 		overflow-x: scroll;
 		white-space: nowrap;
 		white-space: nowrap;
 	}
 	}
@@ -598,7 +608,6 @@
 
 
 	.typeitem.active {
 	.typeitem.active {
 		color: #eaad1a;
 		color: #eaad1a;
-		font-size: 32rpx;
 	}
 	}
 
 
 	.typeitem.active:after {
 	.typeitem.active:after {
@@ -608,35 +617,18 @@
 		height: 3px;
 		height: 3px;
 		bottom: 0;
 		bottom: 0;
 		background: #eaad1a;
 		background: #eaad1a;
-		width: 44rpx;
+		width: 18px;
 		left: 50%;
 		left: 50%;
 		transform: translateX(-50%);
 		transform: translateX(-50%);
 	}
 	}
-
-	.detailedAddress {
-		width: 70vw;
-		overflow: hidden;
-		text-overflow: ellipsis;
-		white-space: nowrap;
-		color:#999 ;
-		line-height: 40rpx;
-	}
-
-	.tag-type {
+	
+	.tag-type{
 		background: #fff;
 		background: #fff;
-
-		uni-tag {
-			margin-left: 20rpx !important;
+		uni-tag{
+			margin-left:20rpx !important;
 		}
 		}
 	}
 	}
-
-	.applet-colors-ditu {
+	.applet-colors-ditu{
 		font-size: 40rpx;
 		font-size: 40rpx;
 	}
 	}
-	/deep/.mescroll-upwarp {
-		padding: 30rpx 0;
-	}
-	.applet-xiala{
-		margin: 0 16rpx 0 -4px;
-	}
 </style>
 </style>

+ 1 - 0
uni_applet/pages/my/my.vue

@@ -43,6 +43,7 @@
 					    url="/pages/componentsB/badge/badge"
 					    url="/pages/componentsB/badge/badge"
 					></u-cell>
 					></u-cell>
 					<u-cell
 					<u-cell
+					:border='false'
 					    title="去商家端"
 					    title="去商家端"
 					    isLink
 					    isLink
 					    url="/pageA/enter/enter"
 					    url="/pageA/enter/enter"

+ 4 - 0
uni_applet/uni_modules/uview-ui/components/u-form-item/props.js

@@ -5,6 +5,10 @@ export default {
             type: String,
             type: String,
             default: uni.$u.props.formItem.label
             default: uni.$u.props.formItem.label
         },
         },
+		uclass:{
+			type: String,
+			default: uni.$u.props.formItem.uclass
+		},
         // 绑定的值
         // 绑定的值
         prop: {
         prop: {
             type: String,
             type: String,

+ 2 - 2
uni_applet/uni_modules/uview-ui/components/u-form-item/u-form-item.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
 	<view class="u-form-item">
 	<view class="u-form-item">
 		<view
 		<view
-			class="u-form-item__body"
+			:class="'u-form-item__body '+uclass"
 			@tap="clickHandler"
 			@tap="clickHandler"
 			:style="[$u.addStyle(customStyle), {
 			:style="[$u.addStyle(customStyle), {
 				flexDirection: (labelPosition || parentData.labelPosition) === 'left' ? 'row' : 'column'
 				flexDirection: (labelPosition || parentData.labelPosition) === 'left' ? 'row' : 'column'
@@ -15,7 +15,7 @@
 					v-if="required || leftIcon || label"
 					v-if="required || leftIcon || label"
 					:style="{
 					:style="{
 						width: $u.addUnit(labelWidth || parentData.labelWidth),
 						width: $u.addUnit(labelWidth || parentData.labelWidth),
-						marginBottom: labelPosition === 'left' ? 0 : '30rpx',
+						marginBottom: (labelPosition || parentData.labelPosition) === 'left' ? 0 : '30rpx',
 					}"
 					}"
 				>
 				>
 					<!-- 为了块对齐 -->
 					<!-- 为了块对齐 -->

+ 1 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/IProductManagementService.java

@@ -46,6 +46,7 @@ public interface IProductManagementService{
 							@HttpParam(name = "userLongitude", type = HttpParamType.COMMON, description = "用户经度") String userLongitude,
 							@HttpParam(name = "userLongitude", type = HttpParamType.COMMON, description = "用户经度") String userLongitude,
 							@HttpParam(name = "userLatitude", type = HttpParamType.COMMON, description = "用户纬度") String userLatitude,
 							@HttpParam(name = "userLatitude", type = HttpParamType.COMMON, description = "用户纬度") String userLatitude,
 							@HttpParam(name = "place", type = HttpParamType.COMMON, description = "用户定位的地址") String place,
 							@HttpParam(name = "place", type = HttpParamType.COMMON, description = "用户定位的地址") String place,
+							@HttpParam(name = "searchKeyWord", type = HttpParamType.COMMON, description = "") String searchKeyWord,
 							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
 							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
 							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
 							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
 							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
 							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,

+ 5 - 4
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/tourism/impl/ProductManagementServiceImpl.java

@@ -57,7 +57,7 @@ public class ProductManagementServiceImpl implements IProductManagementService{
 	}
 	}
 
 
 	@Override
 	@Override
-	public Page<ProductManagement> list(Long commonId,String mainBody,String shopNames,String coverImage,String province,String city,String area,String location,String detailedAddress,String serviceDescription,String nickname,String phone,String realname,String personNo,String personImageFront,String personImageBack,String businessLicense,String status,String userLongitude,String userLatitude,String place,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+	public Page<ProductManagement> list(Long commonId,String mainBody,String shopNames,String coverImage,String province,String city,String area,String location,String detailedAddress,String serviceDescription,String nickname,String phone,String realname,String personNo,String personImageFront,String personImageBack,String businessLicense,String status,String userLongitude,String userLatitude,String place,String searchKeyWord,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
 		Wrapper<ProductManagement> wrapper = new EntityWrapper<ProductManagement>();
 		Wrapper<ProductManagement> wrapper = new EntityWrapper<ProductManagement>();
 														if (!StringUtils.isEmpty(commonId)) {
 														if (!StringUtils.isEmpty(commonId)) {
 					wrapper.eq("common_id", commonId);
 					wrapper.eq("common_id", commonId);
@@ -119,10 +119,11 @@ public class ProductManagementServiceImpl implements IProductManagementService{
 												if (!StringUtils.isEmpty(gmtUpdate)) {
 												if (!StringUtils.isEmpty(gmtUpdate)) {
 					wrapper.eq("gmt_update", gmtUpdate);
 					wrapper.eq("gmt_update", gmtUpdate);
 				}
 				}
-												if (!StringUtils.isEmpty(deleteFlag)) {
-					wrapper.eq("delete_flag", deleteFlag);
+												if (!StringUtils.isEmpty(searchKeyWord)) {
+					wrapper.andNew().like("shop_names", searchKeyWord).or()
+							.like("service_description", searchKeyWord);
 				}
 				}
-							wrapper.eq("delete_flag", 0);
+					wrapper.eq("delete_flag", 0);
 		List<ProductManagement> list = productManagementMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
 		List<ProductManagement> list = productManagementMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
 		if (!CollectionUtils.isEmpty(list)){
 		if (!CollectionUtils.isEmpty(list)){
 			for (ProductManagement productManagement:list){
 			for (ProductManagement productManagement:list){

+ 1 - 1
unimall-admin/config/index.js

@@ -15,7 +15,7 @@ module.exports = {
 
 
         // can be overwritten by process.env.HOST
         // can be overwritten by process.env.HOST
         // if you want dev by ip, please set host: '0.0.0.0'
         // if you want dev by ip, please set host: '0.0.0.0'
-        host: '192.168.110.138',
+        host: '192.168.110.72',
         port: 9527, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
         port: 9527, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
         autoOpenBrowser: true,
         autoOpenBrowser: true,
         errorOverlay: true,
         errorOverlay: true,

+ 2 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/ProductManagement.java

@@ -160,6 +160,8 @@ public class ProductManagement extends SuperDO{
      */
      */
     @TableField(exist = false)
     @TableField(exist = false)
     private String place;
     private String place;
+    @TableField(exist = false)
+    private String searchKeyWord;
 
 
     @Override
     @Override
     public String toString() {
     public String toString() {