Explorar el Código

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

achao hace 1 año
padre
commit
51032b6f55
Se han modificado 30 ficheros con 1642 adiciones y 421 borrados
  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>
 	export default {
 
 		onLaunch: function() {
 			console.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')
 			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() {
 			console.log('App Show')
@@ -71,6 +91,7 @@
 	}
 	.detailedAddress{
 		width:600rpx;
+		text-align:center;
 	}
 	.merchants_button,.merchants_unable_button,.merchants_default_button,.merchants_caution_button{
 		background:#5F7DE9;
@@ -83,6 +104,20 @@
 		color:#000;
 		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{
 		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-upload height='208' width='320' :fileList="fileList2" @afterRead="afterRead($event,1)" @delete="deletePic($event,1)" name="2" multiple
 						: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-form-item>
 				<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
 						: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-form-item>
 				<u-form-item  labelWidth='150' labelPosition='left' label="经营许可证有效期">
@@ -105,11 +105,16 @@
 
 <script>
 	var that
+	
 	import uploadImage from '@/components/ossutil/uploadFile.js';
+	import uniCalendar from '@/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue'
 	export default {
+		components: {
+			"uniCalendar": uniCalendar
+		},
 		data() {
 			return {
-				content:'确定提交入驻信息',
+				content:'确定提交入驻信息',
 				isSubmit:false,
 				form:{
 					commonId:uni.getStorageSync("userInfo").id,
@@ -176,7 +181,17 @@
 					}
 					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() {
 				uni.showLoading({

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

@@ -142,7 +142,17 @@
 			    }
 			},
 			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(){
 				uni.showLoading({

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

@@ -146,7 +146,17 @@
 			    }
 			},
 			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() {
 				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() {
 				uni.showLoading({
@@ -228,7 +238,7 @@
 			},
 			classifycancelSubmit(){
 				var index = this.categorizationOfDishes.findIndex((item)=>{return item.classifyName == this.currectClassify.classifyName})
-				this.categorizationOfDishes,splice(index,1)
+				this.categorizationOfDishes.splice(index,1)
 			},
 			addList(item){
 				item.list.push({classify:item.classifyName,dishName:'',dishPrice:'',number:''})
@@ -265,7 +275,17 @@
 					var arr = this.categorizationOfDishes.filter((items)=>{return items.classifyName==item.classifyName})
 					if(arr.length>0&&arr.list.length>0){
 						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{
 						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>
 				</u-form-item>
 				<u-form-item
+				labelPosition="left"
+				:uclass='"flex-align-center"'
 					label="分类"
 					prop="classify"
 					borderBottom
@@ -18,6 +20,7 @@
 					</view>
 				</u-form-item>
 				<u-form-item
+				labelPosition="left"
 					label="菜品名称"
 					 labelWidth='120'
 					prop="dishName"
@@ -26,6 +29,7 @@
 					<u--input inputAlign='right' v-model="form.dishName" placeholder="输入菜品名称.2-8个字" border="none"></u--input>
 				</u-form-item>
 				<u-form-item
+				labelPosition="left"
 					labelWidth='150'
 					label="菜品单价(选填)"
 					prop="userInfo"
@@ -91,25 +95,28 @@
 			that = this
 			this.form.foodId=options.foodId
 			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(){
 			
 		},
 		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(){
 				this.show1 = true
 			},
@@ -145,8 +152,18 @@
 							});
 							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() {
 				console.log(this.form)
@@ -171,6 +188,7 @@
 						title: '添加分类成功',
 						duration: 2000
 					});
+					this.getList()
 				})
 			},
 			confirmSubmit() {
@@ -259,4 +277,8 @@
 	text-align: center;
 	margin: 0 30px;
  }
+ /deep/.flex-align-center{
+	 align-items: center;
+	 justify-content: space-between;
+ }
 </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>
 			</view>
+			</view>
+			<view class='wrap'>
 			<view>
 				<view style='font-size:28rpx;'>店铺照片</view>
 				<view  style='flex-wrap: wrap;' class='flex'>
@@ -25,7 +27,7 @@
 					</view>
 				</view>
 			</view>
-			<view>
+			<view style='margin:20rpx 0 30rpx;'>
 				<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==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: {
 			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() {
 				uni.showLoading({

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

@@ -59,7 +59,17 @@
 		},
 		methods: {
 			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() {
 				uni.showLoading({

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

@@ -137,7 +137,17 @@
 			    }
 			},
 			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() {
 				uni.showLoading({

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

@@ -147,8 +147,18 @@
 				})
 			},
 			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(){
 				uni.showLoading({

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

@@ -76,8 +76,8 @@
 			</u-cell-group>
 		</view>
 		<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>
 		<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

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

@@ -7,40 +7,40 @@
 						:maxCount="20">
 					</u-upload>
 				</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-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' 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 labelWidth='120' labelPosition='left' label="户型">
 					<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 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 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>
 					
 				</u-form-item>
 				<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 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 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 labelWidth='120' labelPosition='left' @click='placeSelect(),hideKeyboard()' label="房源位置">
 					<view style='text-align:right;' v-if="form.province">{{ form.province }}{{ form.city }}{{ form.area }}</view>
@@ -263,15 +263,19 @@
 		<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>
 </template>
 
 <script>
 	var that
+	import uploadImage from '@/components/ossutil/uploadFile.js';
 	export default {
 		data() {
 			return {
 				form:{},
+				homestayImageArray:[],
 				fileList1:[],
 				checked1:false,
 				checked2:false,
@@ -281,6 +285,8 @@
 				room:'',
 				hall:'',
 				toilet:'',
+				isSubmit:false,
+				currectData:{},
 				labelList:[{value:''},{value:''},{value:''},{value:''}],
 				checkList1:[],
 				checkList2:[],
@@ -306,10 +312,141 @@
 		onLoad() {
 			that = this
 		},
-		onShow() {
-			
+		async onShow() {
+			this.currectData=await this.getHomestayId()
+			console.log(this.currectData)
+			this.form.homestayId = this.currectData.id
 		},
 		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){
 				var data=JSON.parse(JSON.stringify(e))
 				this.$forceUpdate()
@@ -342,6 +479,102 @@
 				}
 				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()

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

@@ -1,22 +1,652 @@
 <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>
 </template>
 
 <script>
+	var that
+	import uploadImage from '@/components/ossutil/uploadFile.js';
 	export default {
 		data() {
 			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>
 
-<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>

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

@@ -1,42 +1,175 @@
 <template>
 	<view class='content'>
-		<view class='wrap'>
+		<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 style='margin:20rpx;' class='flex  justify-space-between'>
 			<view class='merchants_button'>一键刷新</view>
 			<view @click='add' class='merchants_button'>添加民宿</view>
 		</view>
+		<u-modal :show="isDel" content='确定删除民宿信息?' @confirm="$u.debounce(confirmDel, 500)" showCancelButton
+			@cancel="isDel=false" @close="isDel=false" closeOnClickOverlay></u-modal>
 	</view>
 </template>
 
 <script>
 	var that
+	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
 	export default {
+		mixins: [MescrollMixin],
 		data() {
 			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() {
 			that = this
 		},
 		onShow(){
-			
+			this.mescroll.resetUpScroll()
 		},
 		methods: {
+			previewImg(item){
+				uni.previewImage({
+					current: 0,    
+					urls: [item.dishImage],
+					loop:true,
+				})
+			},
 			add(){
 				uni.navigateTo({
 					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>
 
-<style>
-
+<style lang='scss' scoped>
+.homestayWrap{
+	width:50%;
+	background:#fff;
+	padding:10rpx;
+	margin:10rpx;
+}
 </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-upload height='208' width='320' :fileList="fileList2" @afterRead="afterRead($event,1)" @delete="deletePic" name="2" multiple
 						: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-form-item>
 				<view v-if='form.mainBody=="个人"' class='caution'>注:如提供风险类服务,请上传身份证信息</view>
@@ -81,8 +81,8 @@
 				<button @click='submit' class="submit">提交</button>
 			</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>
 </template>
 
@@ -122,7 +122,6 @@
 		},
 		onLoad() {
 			that = this
-		
 		},
 		onShow() {
 			
@@ -207,7 +206,18 @@
 					});
 					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() {
 				uni.showLoading({

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

@@ -14,10 +14,10 @@
 			</view>
 			<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="row">
+					<view style='font-weight:600;' class="row">
 						{{item.classifyName}}
 					</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">
 							<image :src="item1.dishImage" mode="" class="img"></image>
 							<view class="bottom">
@@ -42,8 +42,9 @@
 				<text>营业时间:</text>
 				<text>{{dataObj.startDate}}~{{dataObj.startDate}}</text>
 			</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>
@@ -54,7 +55,7 @@
 	export default {
 		data() {
 			return {
-				keyword: '遥看瀑布挂前川',
+				keyword: '',
 				dataObj: {
 					shopNames: ''
 				}
@@ -154,7 +155,7 @@
 		}
 		.item2 {
 			display: inline-block;
-			width: calc(50vw - 40rpx);
+			width: calc(50vw - 60rpx);
 			margin: 10rpx;
 			box-shadow: 0px 1px 2px 0px #ccc;
 			border-radius: 20rpx;
@@ -171,8 +172,8 @@
 
 		.img {
 			border-radius: 20rpx 20rpx 0 0 ;
-			width: calc(50vw - 40rpx);
-			height: calc(50vw - 40rpx);
+			width: calc(50vw - 60rpx);
+			height: calc(50vw - 60rpx);
 			// width: 344rpx;
 			// height: 344rpx;
 		}

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

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

+ 2 - 2
uni_applet/pages.json

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

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

@@ -1,62 +1,6 @@
 <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">手机登录后才能查看名片哦~</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>
 
@@ -65,28 +9,7 @@
 	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",
-					background: "#eaad1a"
-				},
+			
 			};
 		},
 		onLoad(){
@@ -96,87 +19,15 @@
 			
 			if (uni.getStorageSync("userInfo").phone) {
 			} else {
-				this.showAuthorizePhone = true
+				
 			}
 		
 		},
 		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>
 
 <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>

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

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

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

@@ -1,51 +1,59 @@
 <template>
 	<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>
-		</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 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>
-				<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">
-							<!-- @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 class='flex row2'>
@@ -58,22 +66,22 @@
 						<text class="text" v-for='item1 in item.labels'> {{item1}}</text>
 					</view>
 					<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="detailedAddress" @click.stop="toShopDetail(item)">
+							<view class="detailedAddress">
 								{{item.detailedAddress}}
 							</view>
 							<!-- <view>{{item.province}}{{item.city}}{{item.area}}</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>
 			</mescroll-uni>
 			<!-- <mescroll-body ref="mescrollRef" :up="upOption" :down="downOption" @init="mescrollInit" @up="upCallback" @down="downCallback"></mescroll-body> -->
-
+		</view>
 		<!-- <view class='group' @click='group'>
 			<button class="tuan">团</button>
 		</view> -->
@@ -83,7 +91,7 @@
 <script>
 	var that;
 	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 MoteLinesDivide from "@/components/text-over-flow/text-over-flow.vue"
 	import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";
@@ -99,7 +107,7 @@
 		data() {
 			return {
 				place: '',
-				searchVal: "",
+				searchVal:  "",
 				current: 0,
 				mescroll: null,
 				findList: [],
@@ -113,48 +121,49 @@
 				curPageLen: 0,
 				totalPage: 0,
 				detailedAddress: '正在定位...',
+				detailedAddress1:'',
 				downOption: {
 					auto: false,
 					textColor: '#bbb'
 				},
 				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: [{
 						id: 1,
 						iname: '海鲜',
-						checked: false
+						checked:false
 					},
 					{
 						id: 2,
 						iname: '自助',
-						checked: false
+						checked:false
 					}, {
 						id: 3,
 						iname: '烧烤',
-						checked: false
+						checked:false
 					},
 					{
 						id: 4,
 						iname: '火锅',
-						checked: false
+						checked:false
 					},
 					{
 						id: 5,
 						iname: '家常菜',
-						checked: false
+						checked:false
 					},
 					{
 						id: 6,
@@ -191,38 +200,32 @@
 		},
 		onShow() {
 			//判断是否有定位权限
-			this.searchVal = uni.getStorageSync("search_val")
-			if (this.detailedAddress == '正在定位...') {
+			this.searchVal = uni.getStorageSync("search_food_val")
+			if(this.detailedAddress=='正在定位...'){
 				this.isdingwei()
 			}
 		},
 		methods: {
-			toShopDetail(val){
-				console.log(val)
-				uni.navigateTo({
-					url: "/pageA/food/detailMap?val="+JSON.stringify(val)
-				})
-				
-			},
-			leftClick() {
+			leftClick(){
 				uni.navigateTo({
 					url: "/pageA/food/fondMap"
 				})
 			},
-			previewImg(item) {
+			previewImg(item){
 				uni.previewImage({
-					current: 0,
+					current: 0,    
 					urls: [item.dishImage],
-					loop: true,
+					loop:true,
 				})
 			},
-			toShop(val) {
+			toShop(val){
 				uni.navigateTo({
-					url: "/pageA/food/menu?val=" + JSON.stringify(val)
+					url: "/pageA/food/menu?val="+JSON.stringify(val)
 				})
 			},
-			delSearchVal() {
+			delSearchVal(){
 				this.searchVal = ''
+				
 				that.mescroll.resetUpScroll()
 			},
 			isdingwei() {
@@ -251,21 +254,37 @@
 					}
 					this.longitude = _obj.longitude
 					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)
 						// let _address = that.$helper.formatLocation(res.address)
 						that.detailedAddress = res.name
+						that.detailedAddress1 = that.detailedAddress.length>4 ? that.detailedAddress.slice(0,4)+'...' : that.detailedAddress
 						uni.setStorageSync("detailedAddress", res.name)
 						that.$forceUpdate()
 						that.upCallback({
@@ -370,8 +390,8 @@
 					searchType: this.searchType,
 					searchKeyWord: this.searchVal,
 					place: this.detailedAddress,
-					userLongitude: this.longitude,
-					userLatitude: this.latitude,
+					userLongitude:this.longitude,
+					userLatitude:this.latitude,
 				}, failres => {
 					uni.showToast({
 						icon: "none",
@@ -397,12 +417,12 @@
 						if (that.handleList[i].label) {
 							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
-
+					
 				} else {
 					uni.hideLoading()
 				}
@@ -430,70 +450,67 @@
 			// color: #9199af;
 			// background: #f9d27d;
 			border-radius: 50rpx;
-			padding: 15rpx 0 15rpx 30rpx;
+			padding: 10rpx 0 10rpx 30rpx;
 			box-sizing: border-box;
 			margin-right: 20rpx;
-		
 		}
 
 		.left {
 			width: 80%;
 
 			text {
+				height: 46rpx;
 				white-space: nowrap;
 				overflow: scroll;
 				position: relative;
 				margin-left: 20rpx;
-				color: #BBBBBB;
-				display: flex;
-				    align-items: center;
+				color: #9199af;
 			}
 		}
 
 		.right {
 			// width:14%;
-			// margin-right: 20rpx
-			display: flex;
+			margin-right: 20rpx
 		}
 	}
 
 	.search-wrap {
-		width: 70%;
+		width: 76%;
 		background: rgb(249, 249, 249);
 		// border: 1px solid #f9d27d;
 		border-radius: 50rpx;
-		.left{
-			align-items: center;
-		}
-		.search-val{
-			color:#BBBBBB;
-		}
 	}
 
 	.address {
-		width: 30%;
+		width: 24%;
+		margin-right:10rpx;
 	}
 
 	.findItem {
 		background: #fff;
-		margin: 20rpx;
+		margin: 10rpx;
 		border-radius: 20rpx;
 		padding: 20rpx;
-		font-size: 32rpx;
-
-		.row2 {
+		font-size:32rpx;
+		.detailedAddress{
+			width: 70vw;
+			overflow: hidden;
+			text-overflow: ellipsis;
+		}
+		.row2{
 			margin: 20rpx 0;
 		}
-
 		.left {
-			// background: red;
+			margin-right: 20rpx;
+
+			.cover {
+				border-radius: 8rpx;
+			}
 		}
 
 		.name {
 			color: #333;
 			margin-left: 10rpx;
-			font-weight: 700;
-			font-size: 36rpx;
 		}
 
 		.description {
@@ -502,26 +519,19 @@
 		}
 
 		.address {
-			margin-top: 30rpx;
+			margin-top: 20rpx;
 			width: 100%;
 			color: #393733;
 		}
-		.img{
-			margin: 10rpx;
-		}
 	}
 
 	.applet-dianpu1 {
-		color: #393733;
-		font-size: 50rpx;
-		
+		color: #999999;
 	}
 
 	.applet-dizhi {
 		color: #393733;
-		font-size: 40rpx;
-		position: relative;
-		top: -2rpx;
+		font-size:38rpx;
 	}
 
 	.group {
@@ -538,7 +548,8 @@
 		color: #fff;
 	}
 
-	.applet-colors-tianjia2 {}
+	.applet-colors-tianjia2 {
+	}
 
 	// .text {
 	// 	font-size: 26rpx;
@@ -547,42 +558,41 @@
 	// 	opacity: 0.5;
 	// 	margin-right: 56rpx;
 	// }
-	.head {
+	.head{
 		white-space: nowrap;
 		overflow-x: scroll;
 		padding-left: 20rpx;
 		width: calc(100vw);
-
+				
 		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 {
-		.text {
+		.text{
 			border-radius: 4px;
-			background-color: #FDF2E5;
-			color: #E95700;
+			background-color: rgba(253, 242, 229, 1);
+			color: rgba(233, 87, 0, 1);
 			margin-right: 30rpx;
-			padding: 10rpx 26rpx;
+			padding: 10rpx 20rpx;
 			font-size: 24rpx;
 		}
-
+		
 	}
 
 	.list-type {
 		background: #fff;
 		width: 100vw;
 		padding-top: 5px;
-		height: 88rpx;
+		height: 86rpx;
 		overflow-x: scroll;
 		white-space: nowrap;
 	}
@@ -598,7 +608,6 @@
 
 	.typeitem.active {
 		color: #eaad1a;
-		font-size: 32rpx;
 	}
 
 	.typeitem.active:after {
@@ -608,35 +617,18 @@
 		height: 3px;
 		bottom: 0;
 		background: #eaad1a;
-		width: 44rpx;
+		width: 18px;
 		left: 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;
-
-		uni-tag {
-			margin-left: 20rpx !important;
+		uni-tag{
+			margin-left:20rpx !important;
 		}
 	}
-
-	.applet-colors-ditu {
+	.applet-colors-ditu{
 		font-size: 40rpx;
 	}
-	/deep/.mescroll-upwarp {
-		padding: 30rpx 0;
-	}
-	.applet-xiala{
-		margin: 0 16rpx 0 -4px;
-	}
 </style>

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

@@ -43,6 +43,7 @@
 					    url="/pages/componentsB/badge/badge"
 					></u-cell>
 					<u-cell
+					:border='false'
 					    title="去商家端"
 					    isLink
 					    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,
             default: uni.$u.props.formItem.label
         },
+		uclass:{
+			type: String,
+			default: uni.$u.props.formItem.uclass
+		},
         // 绑定的值
         prop: {
             type: String,

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

@@ -1,7 +1,7 @@
 <template>
 	<view class="u-form-item">
 		<view
-			class="u-form-item__body"
+			:class="'u-form-item__body '+uclass"
 			@tap="clickHandler"
 			:style="[$u.addStyle(customStyle), {
 				flexDirection: (labelPosition || parentData.labelPosition) === 'left' ? 'row' : 'column'
@@ -15,7 +15,7 @@
 					v-if="required || leftIcon || label"
 					:style="{
 						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 = "userLatitude", type = HttpParamType.COMMON, description = "用户纬度") String userLatitude,
 							@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 = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
 							@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
-	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>();
 														if (!StringUtils.isEmpty(commonId)) {
 					wrapper.eq("common_id", commonId);
@@ -119,10 +119,11 @@ public class ProductManagementServiceImpl implements IProductManagementService{
 												if (!StringUtils.isEmpty(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);
 		if (!CollectionUtils.isEmpty(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
         // 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
         autoOpenBrowser: 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)
     private String place;
+    @TableField(exist = false)
+    private String searchKeyWord;
 
     @Override
     public String toString() {