Browse Source

首页样式修改

xiaoxin 2 years ago
parent
commit
5867c0d569

+ 1 - 1
.gitignore

@@ -1,2 +1,2 @@
 node_modules
-/unpackage
+unpackage/

+ 1 - 1
components/commentChild.vue

@@ -66,7 +66,7 @@ export default {
 							// console.log(res);
 							if (res.code === 200) {
 								uni.showToast({
-									title: res.message,
+									title: '评论成功,审核通过后展示',
 									icon: 'success',
 									mask: true
 								})

+ 0 - 32
pages.json

@@ -16,13 +16,6 @@
 			}
 		},
 		{
-			"path": "pages/index/index",
-			"style": {
-				"navigationBarTitleText": "靖安人家乡村民宿",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
 			"path": "pages/my/my",
 			"style": {
 				"navigationBarTitleText": "我的",
@@ -144,19 +137,6 @@
 			}
 		},
 		{
-			"path": "pages/setMeal/setMeal",
-			"style": {
-				"navigationBarTitleText": "精品套餐",
-				"enablePullDownRefresh": false
-			}
-		},
-		{
-			"path": "pages/search/search",
-			"style": {
-				"navigationBarTitleText": "服务",
-				"enablePullDownRefresh": false
-			}
-		}, {
 			"path": "pages/coupon/coupon",
 			"style": {
 				"navigationBarTitleText": "优惠券",
@@ -224,12 +204,6 @@
 				"enablePullDownRefresh": false
 			}
 		}, {
-			"path": "pages/strategyDetatil/strategyDetatil",
-			"style": {
-				"navigationBarTitleText": "攻略详情",
-				"enablePullDownRefresh": false
-			}
-		}, {
 			"path": "pages/complaint/complaint",
 			"style": {
 				"navigationBarTitleText": "我要投诉",
@@ -328,12 +302,6 @@
 				"selectedIconPath": "static/images/community-active.png",
 				"text": "社区"
 			},
-			// {
-			// 	"pagePath": "pages/search/search",
-			// 	"iconPath": "static/images/search.png",
-			// 	"selectedIconPath": "static/images/search-active.png",
-			// 	"text": "服务"
-			// },
 			{
 				"pagePath": "pages/my/my",
 				"iconPath": "static/images/my.png",

+ 3 - 3
pages/appraiseDetail/appraiseDetail.vue

@@ -184,8 +184,8 @@ export default {
 							// console.log(res);
 							if (res.code === 200) {
 								uni.showToast({
-									title: res.message,
-									icon: 'success',
+									title: '评论成功,审核通过后展示',
+									icon: 'none',
 									mask: true
 								})
 								setTimeout(() => {
@@ -233,7 +233,7 @@ export default {
 			// console.log(res);
 			if (res.code === 200) {
 				uni.showToast({
-					title: res.message,
+					title: '评论成功,审核通过后展示',
 					icon: 'success',
 					mask: true
 				})

+ 2 - 3
pages/complaint/complaint.vue

@@ -199,9 +199,8 @@ export default {
 				title: '上传中'
 			})
 			uni.uploadFile({
-				url: `https://chtech.ncjti.edu.cn/hotelReservation/file/cos/upload`,
+				url: `https://chtech.ncjti.edu.cn/homestay/file/cos/upload`,
 				filePath: ele.tempFilePath,
-				// name: 'myFile',
 				name: 'files',
 				success: (uploadFileRes) => {
 					// console.log(JSON.parse(uploadFileRes.data))
@@ -443,4 +442,4 @@ export default {
 		background-color: #096562;
 	}
 }
-</style>
+</style>

+ 16 - 10
pages/detail/detail.vue

@@ -357,6 +357,8 @@ export default {
 			earlyTime: '',
 			// 日历可以选择的最晚日期
 			lateTime: '',
+			// 管理端设置的可以提前多少天预定
+			setTime: '',
 			activeIndex: 0,
 			headerList: ['预定', '评价', '周边'],
 			// 评价列表数据
@@ -419,6 +421,7 @@ export default {
 				this.showLocation = res.authSetting['scope.userLocation']
 				this.getHotelInfo()
 				this.getEvaData()
+				this.getLateTime()
 			}
 		})
 		uni.getLocation({
@@ -426,11 +429,6 @@ export default {
 			success: (res) => {
 				this.myLat = res.latitude
 				this.myLng = res.longitude
-				// this.rimList.forEach((ele) => {
-				// 	let lat = ele.jingwei.split(',')[1]
-				// 	let lng = ele.jingwei.split(',')[0]
-				// 	ele.distance = this.calculateDistance(lat, lng)
-				// })
 			},
 			complete: () => {
 				this.getRimList()
@@ -473,6 +471,19 @@ export default {
 		}
 	},
 	methods: {
+		async getLateTime() {
+			const res = await this.$myRequest({
+				url: '/mhotel/house/price/queryDate.action'
+			})
+			// console.log(res)
+			if (res.code === 200) {
+				this.setTime = res.data.dateTimes.length - 1
+				let today = new Date()
+				let late = new Date(today.getTime() + 24 * 60 * 60 * 1000 * this.setTime)
+				this.earlyTime = this.startTime
+				this.lateTime = `${late.getFullYear()}-${(late.getMonth() + 1).toString().padStart(2, 0)}-${late.getDate().toString().padStart(2, 0)}`
+			}
+		},
 		async getRimList() {
 			const res = await this.$myRequest({
 				url: '/mhotel/applistAround.action',
@@ -778,14 +789,9 @@ export default {
 			// 明天
 			let tomorrow = new Date(today.getTime() + 24 * 60 * 60 * 1000)
 
-			let late = new Date(today.getTime() + 24 * 60 * 60 * 1000 * 14)
-
 			this.startTime = `${today.getFullYear()}-${(today.getMonth() + 1).toString().padStart(2, 0)}-${today.getDate().toString().padStart(2, 0)}`
 			this.endTime = `${tomorrow.getFullYear()}-${(tomorrow.getMonth() + 1).toString().padStart(2, 0)}-${tomorrow.getDate().toString().padStart(2, 0)}`
 			this.dayList = [this.startTime, this.endTime]
-
-			this.earlyTime = this.startTime
-			this.lateTime = `${late.getFullYear()}-${(late.getMonth() + 1).toString().padStart(2, 0)}-${late.getDate().toString().padStart(2, 0)}`
 		},
 		handleGoPull(linkProUrl) {
 			let temURL = linkProUrl.slice(22)

+ 1 - 1
pages/evaluate/evaluate.vue

@@ -335,7 +335,7 @@ export default {
 				title: '上传中'
 			})
 			uni.uploadFile({
-				url: `https://chtech.ncjti.edu.cn/hotelReservation/file/cos/upload`,
+				url: `https://chtech.ncjti.edu.cn/homestay/file/cos/upload`,
 				filePath: ele.tempFilePath,
 				// name: 'myFile',
 				name: 'files',

+ 0 - 50
pages/home/home.vue

@@ -23,43 +23,6 @@
 		<view class="main">
 			<!-- 添加一层view解决 css属性 sticky 不生效问题 -->
 			<view>
-				<!-- 图标区域 -->
-				<!-- <view class="icons">
-					<view class="icon_item" @click="handleTest">
-						<view class="item_top color">
-							<img src="../../static/index/icon.png" />
-						</view>
-						<view class="item_bottom">推文</view>
-					</view>
-
-					<view class="icon_item" @click="handleTest">
-						<view class="item_top color2">
-							<img class="img2" src="../../static/index/icon2.png" />
-						</view>
-						<view class="item_bottom">周边</view>
-					</view>
-
-					<view class="icon_item" @click="handleGoSetMeal">
-						<view class="item_top color3">
-							<img class="img3" src="../../static/index/icon3.png" />
-						</view>
-						<view class="item_bottom">套餐</view>
-					</view>
-
-					<view class="icon_item" @click="handleTest">
-						<view class="item_top color4">
-							<img src="../../static/index/icon4.png" />
-						</view>
-						<view class="item_bottom">招商</view>
-					</view>
-					<view class="icon_item" @click="handleTest">
-						<view class="item_top color5">
-							<img src="../../static/index/icon5.png" />
-						</view>
-						<view class="item_bottom">其他</view>
-					</view>
-				</view> -->
-
 				<!-- 分段器区域 -->
 				<view class="control" :class="{ sticky: isSticky }">
 					<uni-segmented-control :current="current" :values="items" style-type="text" active-color="#096562" @clickItem="onClickItem" />
@@ -75,7 +38,6 @@
 							<view class="item_name">{{ item.hotel_name }}</view>
 							<view class="item_rate">
 								<view class="rate_left">{{ item.scoreHotel || '5.0' }}</view>
-								<!-- <view class="rate_right">超棒</view> -->
 							</view>
 							<view class="item_distance">距您直线{{ item.distance }}公里</view>
 							<view class="item_info">
@@ -228,11 +190,6 @@ export default {
 			this.$refs.popup.open()
 			uni.hideTabBar()
 		},
-		handleGoSetMeal() {
-			uni.navigateTo({
-				url: '/pages/setMeal/setMeal'
-			})
-		},
 		// 页面上拉到底部回调
 		handleRefresh() {
 			if (this.hotelList.length < this.total) {
@@ -418,13 +375,6 @@ export default {
 				this.getHotelList()
 			}
 		},
-		handleTest() {
-			uni.showToast({
-				title: '功能开发中',
-				icon: 'none',
-				mask: true
-			})
-		},
 		// 计算两个点之间的距离
 		calculateDistance(lat, lng) {
 			let centerLat = lat

+ 0 - 469
pages/home2/home2.vue

@@ -1,469 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 搜索框区域 -->
-		<uv-row custom-style="margin: 10px 0px" gutter="10">
-			<picker @change="bindPickerChange" range-key="name" :value="placeIndex" :range="placeList">
-				<view class="address">
-					<view class="address_text">{{ placeList[placeIndex].name }}</view>
-					<img src="../../static/index/bottom.png" />
-				</view>
-			</picker>
-
-			<view class="search">
-				<view class="add">
-					<image class="img" src="../../static/index/search.png" mode="aspectFit"></image>
-				</view>
-				<input class="inp" type="text" v-model="keywords" placeholder="请输入关键字搜索" />
-				<view class="btnSearch" @click="searchHandler">搜索</view>
-			</view>
-		</uv-row>
-
-		<!-- 名宿列表区域 -->
-		<view class="body" v-if="hotelList.length">
-			<!-- 每一个名宿区域 -->
-			<view class="item" v-for="item in hotelList" :key="item.id" @click="goPageDetail(item)">
-				<image class="item-img" :src="item.coverImg" mode="scaleToFill"></image>
-				<view class="descrition">
-					<text class="title">{{ item.hotel_name }}</text>
-					<text class="type">{{ item.hTypeName }}</text>
-					<text class="distance" v-if="showdDistance">距您直线{{ item.distance }}公里</text>
-					<view class="detail">
-						<img class="img" src="../../static/index/hotel.png" />
-						<view class="price">
-							<text class="txt1">¥{{ item.min_price }}</text>
-							<text class="txt2">起</text>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-
-		<!-- 没有数据时展示的页面 -->
-		<view class="noData" v-else>
-			<img src="../../static/images/noData.png" />
-			暂无数据
-		</view>
-
-		<!-- 领取优惠券弹窗区域 -->
-		<uv-popup ref="popup" mode="center" :closeOnClickOverlay="false" bgColor="none">
-			<view class="popupClass">
-				<img src="../../static/index/popup_bg.png" />
-				<!-- 立即前往区域 -->
-				<view class="btn_go" @click="handleGo"></view>
-				<!-- 关闭按钮区域 -->
-				<view class="btn_close" @click="handleClose"></view>
-			</view>
-		</uv-popup>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			// 是否显示距离差
-			showdDistance: false,
-			// 搜索框绑定数据
-			keywords: '',
-			// 民宿列表数组
-			hotelList: [],
-			// 地区数组
-			placeList: [
-				{
-					name: '靖安县'
-				}
-			],
-			// 当前选择地区索引
-			placeIndex: 0,
-			// 当前页
-			page: 1,
-			// 每页多少条
-			rows: 6,
-			// 总条数
-			total: null,
-			// 用户定位经度
-			myLng: 0,
-			// 用户定位纬度
-			myLat: 0
-		}
-	},
-	onLoad() {
-		this.getLocation()
-		this.getTownList()
-		// this.$refs.popup.open()
-	},
-	// 页面下拉回调
-	onPullDownRefresh() {
-		setTimeout(() => {
-			this.hotelList = []
-			this.page = 1
-			this.getLocation()
-			uni.stopPullDownRefresh()
-		}, 2000)
-	},
-	// 页面下拉到底部回调
-	onReachBottom() {
-		if (this.hotelList.length < this.total) {
-			this.page++
-			this.getHotelList()
-		} else {
-			uni.showToast({
-				title: '没有更多数据了',
-				icon: 'none'
-			})
-		}
-	},
-	methods: {
-		// 获取乡镇集合
-		async getTownList() {
-			const res = await this.$myRequest({
-				url: '/mhotel/hotelqueryList.action',
-				method: 'get',
-				data: {
-					code: 10
-				}
-			})
-			// console.log(res)
-			if (res.code === 200) {
-				this.placeList = [...this.placeList, ...res.data]
-			}
-		},
-		// 获取用户当前位置
-		getLocation() {
-			uni.getSetting({
-				success: (res) => {
-					if (!res.authSetting['scope.userLocation']) {
-						uni.authorize({
-							scope: 'scope.userLocation',
-							success: (res) => {
-								// 授权成功
-								uni.getLocation({
-									type: 'gcj02',
-									success: (res) => {
-										this.myLat = res.latitude
-										this.myLng = res.longitude
-										this.showdDistance = true
-										this.getHotelList()
-									}
-								})
-							},
-							fail: () => {
-								uni.showModal({
-									content: '获取定位权限失败将会影响使用部分功能,是否去设置打开?',
-									confirmText: '确认',
-									cancelText: '取消',
-									success: (res) => {
-										if (res.confirm) {
-											uni.openSetting({
-												success: (res) => {
-													console.log(res)
-													this.getLocation()
-												}
-											})
-										} else {
-											this.showdDistance = false
-											this.getHotelList()
-											uni.showToast({
-												title: '获取定位权限失败',
-												icon: 'none'
-											})
-										}
-									}
-								})
-							}
-						})
-					} else {
-						uni.getLocation({
-							type: 'gcj02',
-							success: (res) => {
-								this.myLat = res.latitude
-								this.myLng = res.longitude
-								this.showdDistance = true
-								this.getHotelList()
-							}
-						})
-					}
-				}
-			})
-		},
-		// 获取民宿列表
-		async getHotelList() {
-			const res = await this.$myRequest({
-				url: '/mhotel/ahphomePage.action',
-				data: {
-					queryValue: this.keywords,
-					page: this.page,
-					rows: this.rows,
-					hotel_township: this.placeList[this.placeIndex].id || '',
-					userId: uni.getStorageSync('userInfo') ? uni.getStorageSync('userInfo').id : ''
-				}
-			})
-			// console.log(res)
-			if (res.code === 200) {
-				this.hotelList = [...this.hotelList, ...res.data.pageList]
-				this.total = res.data.total
-
-				// 如果定位成功则获取和民宿之间的距离
-				if (this.showdDistance && this.hotelList.length) {
-					this.hotelList.forEach((ele) => {
-						let lat = ele.hpositionWens.split(',')[0]
-						let lng = ele.hpositionWens.split(',')[1]
-						ele.distance = this.calculateDistance(lat, lng)
-					})
-				}
-			}
-		},
-		// 计算两个点之间的距离
-		calculateDistance(lat, lng) {
-			let centerLat = lat
-			let centerLng = lng
-
-			let red1 = (this.myLat * Math.PI) / 180.0
-			let red2 = (centerLat * Math.PI) / 180.0
-			let a = red1 - red2
-			let b = (this.myLng * Math.PI) / 180.0 - (centerLng * Math.PI) / 180.0
-			let R = 6378137
-			let distance = R * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(red1) * Math.cos(red2) * Math.pow(Math.sin(b / 2), 2)))
-			let res = (distance / 1000).toFixed(2) * 1
-
-			return res
-		},
-
-		// 搜索按钮点击回调
-		searchHandler() {
-			this.hotelList = []
-			this.page = 1
-			this.getHotelList()
-		},
-		// 点击每一个民宿卡片回调
-		goPageDetail(item) {
-			uni.navigateTo({
-				url: `/pages/detail/detail?id=${item.id}&distance=${item.distance}`
-			})
-		},
-		// 选择地区时的回调
-		bindPickerChange(e) {
-			this.placeIndex = e.detail.value
-			this.hotelList = []
-			this.page = 1
-			this.getHotelList()
-		},
-		// 立即前往按钮回调
-		handleGo() {
-			console.log(111)
-		},
-		// 优惠券弹窗关闭按钮回调
-		handleClose() {
-			this.$refs.popup.close()
-		}
-	}
-}
-</script>
-
-<style lang="scss" scoped>
-.container {
-	display: flex;
-	flex-direction: column;
-	width: 750rpx;
-	min-height: 100vh;
-	padding: 0 30rpx;
-	box-sizing: border-box;
-	background-color: #f7f7f7;
-
-	.address {
-		display: flex;
-		width: 152rpx;
-		font-size: 28rpx;
-
-		.address_text {
-			width: 104rpx;
-			text-align: center;
-			overflow: hidden;
-			white-space: nowrap;
-			text-overflow: ellipsis;
-		}
-
-		img {
-			width: 48rpx;
-			height: 48rpx;
-		}
-	}
-
-	.search {
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		width: 538rpx;
-		height: 80rpx;
-		opacity: 1;
-		border-radius: 70px;
-		background-color: #fff;
-
-		.add {
-			display: flex;
-			justify-content: center;
-			align-items: center;
-			margin-left: 10rpx;
-			width: 60rpx;
-			font-size: 50rpx;
-			height: 60rpx;
-			line-height: 60rpx;
-			color: rgba(30, 125, 251, 1);
-
-			.img {
-				width: 30rpx;
-				height: 30rpx;
-			}
-		}
-
-		.inp {
-			height: 60rpx;
-			line-height: 60rpx;
-			flex-grow: 1;
-			font-size: 28rpx;
-		}
-
-		.btnSearch {
-			width: 100rpx;
-			text-align: center;
-			margin-right: 10rpx;
-			height: 60rpx;
-			line-height: 60rpx;
-			opacity: 1;
-			font-size: 28rpx;
-			font-weight: 400;
-			height: 2rem;
-			color: #096562;
-		}
-	}
-
-	.body {
-		display: flex;
-		justify-content: space-between;
-		flex-wrap: wrap;
-
-		.item {
-			width: 335rpx;
-			box-sizing: border-box;
-			margin-bottom: 20rpx;
-
-			.item-img {
-				width: 100%;
-				height: 223rpx;
-				border-radius: 18rpx 18rpx 0 0;
-				box-sizing: border-box;
-			}
-
-			.descrition {
-				display: flex;
-				flex-direction: column;
-				width: 100%;
-				border-radius: 0 0 18rpx 18rpx;
-				box-sizing: border-box;
-				background: rgba(255, 255, 255, 1);
-				margin-top: -10rpx;
-
-				.title {
-					font-size: 28rpx;
-					font-weight: 600;
-					padding: 20rpx 20rpx 10rpx;
-					color: rgba(0, 0, 0, 1);
-					overflow: hidden;
-					white-space: nowrap;
-					text-overflow: ellipsis;
-				}
-
-				.type {
-					padding: 5rpx 20rpx;
-					height: 40rpx;
-					font-size: 24rpx;
-					color: #a6a6a6;
-				}
-
-				.distance {
-					padding: 10rpx 20rpx;
-					font-size: 24rpx;
-					color: #a6a6a6;
-				}
-
-				.detail {
-					display: flex;
-					flex-direction: row;
-					justify-content: space-between;
-					align-items: center;
-					padding: 0 20rpx 20rpx 20rpx;
-					color: rgba(0, 0, 0, 1);
-
-					.img {
-						width: 40rpx;
-						height: 40rpx;
-					}
-
-					.price {
-						.txt1 {
-							font-size: 36rpx;
-							font-weight: 600;
-							color: rgba(255, 87, 51, 1);
-						}
-
-						.txt2 {
-							font-size: 24rpx;
-							font-weight: 400;
-							color: #a6a6a6;
-						}
-					}
-
-					.score {
-						font-size: 24rpx;
-						font-weight: 400;
-						padding-top: 10rpx;
-						color: rgba(166, 166, 166, 1);
-					}
-				}
-			}
-		}
-	}
-
-	.noData {
-		display: flex;
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-
-		img {
-			margin-top: 150rpx;
-			width: 600rpx;
-			height: 600rpx;
-		}
-	}
-
-	.popupClass {
-		position: relative;
-		width: 481rpx;
-		height: 764rpx;
-
-		img {
-			width: 100%;
-			height: 665rpx;
-		}
-
-		.btn_go {
-			position: absolute;
-			top: 415rpx;
-			left: 40rpx;
-			width: 396rpx;
-			height: 76rpx;
-			border-radius: 43rpx;
-		}
-
-		.btn_close {
-			position: absolute;
-			top: 586rpx;
-			left: 212rpx;
-			width: 58rpx;
-			height: 58rpx;
-			border-radius: 50%;
-		}
-	}
-}
-</style>

+ 194 - 122
pages/home3/home3.vue

@@ -33,42 +33,6 @@
 				<!-- 查找按钮区域 -->
 				<view class="search_btn" @click="handleSearch">查找</view>
 			</view>
-			<!-- 图标列表区域 -->
-			<!-- <view class="icons">
-				<view class="icon_item" @click="handleTest">
-					<view class="item_top color">
-						<img src="../../static/index/icon.png" />
-					</view>
-					<view class="item_bottom">推文</view>
-				</view>
-
-				<view class="icon_item" @click="handleTest">
-					<view class="item_top color2">
-						<img class="img2" src="../../static/index/icon2.png" />
-					</view>
-					<view class="item_bottom">周边</view>
-				</view>
-
-				<view class="icon_item" @click="handleGoSetMeal">
-					<view class="item_top color3">
-						<img class="img3" src="../../static/index/icon3.png" />
-					</view>
-					<view class="item_bottom">套餐</view>
-				</view>
-
-				<view class="icon_item" @click="handleTest">
-					<view class="item_top color4">
-						<img src="../../static/index/icon4.png" />
-					</view>
-					<view class="item_bottom">招商</view>
-				</view>
-				<view class="icon_item" @click="handleTest">
-					<view class="item_top color5">
-						<img src="../../static/index/icon5.png" />
-					</view>
-					<view class="item_bottom">其他</view>
-				</view>
-			</view> -->
 
 			<!-- 轮播图区域 -->
 			<swiper class="swiper" indicator-dots circular indicator-color="#BBD8FE" indicator-active-color="#1E7DFB" autoplay interval="3000" v-if="townList.length">
@@ -95,6 +59,36 @@
 			</swiper>
 
 			<view class="body">
+				<!-- 优选民宿区域 -->
+				<view class="body_top">
+					<view class="circle"></view>
+					<view class="circle color"></view>
+					<view class="top_title">优选民宿 .</view>
+					<view class="top_msg">特色优选民宿,让旅途充满乐趣</view>
+					<view class="top_more" @click="handleGoHome">
+						更多
+						<img src="https://chtech.ncjti.edu.cn/hotelReservation/image/13.png" />
+					</view>
+				</view>
+				<view class="body_list">
+					<!-- 每一个民宿区域 -->
+					<view class="list_item" v-for="item in hotelList.slice(0, 4)" :key="item.id" @click="goPageDetail(item)">
+						<image class="item-img" :src="item.coverImg" mode="scaleToFill"></image>
+						<view class="descrition">
+							<text class="title">{{ item.hotel_name }}</text>
+							<text class="type">{{ item.hTypeName }}</text>
+							<text class="distance" v-if="showdDistance">距您直线{{ item.distance }}公里</text>
+							<view class="detail">
+								<img class="img" src="../../static/index/hotel.png" />
+								<view class="price">
+									<text class="txt1">¥{{ item.min_price }}</text>
+									<text class="txt2">起</text>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+
 				<!-- 精选攻略区域 -->
 				<view class="body_top" v-if="bestNewsInfo">
 					<view class="circle"></view>
@@ -107,7 +101,7 @@
 					</view>
 				</view>
 				<view v-if="bestNewsInfo" class="body_strategy" @click="handleGoDetail(bestNewsInfo)">
-					<img v-if="bestNewsInfo.image" class="strategy_cover" mode="aspectfill" :src="bestNewsInfo.image" />
+					<img v-if="bestNewsInfo.image" class="strategy_cover" mode="aspectFill" :src="bestNewsInfo.image" />
 					<video
 						v-if="bestNewsInfo.video"
 						class="strategy_cover"
@@ -139,14 +133,47 @@
 					</view>
 				</view>
 
-				<view v-for="item in newsList" :key="item.id" class="body_strategy" @click="handleGoNews(item)">
-					<uv-image width="253rpx" height="190rpx" radius="8rpx" mode="aspectFill" :src="item.url" />
-					<view class="strategy_info">
-						<view class="info_title2">{{ item.title ? item.title : '无标题' }}</view>
-						<view class="info_desc">
-							{{ item.desc }}
+				<!-- 招商资讯轮播图 -->
+				<uni-swiper-dot :info="newsList" mode="round" :dotsStyles="dotsStyles" :current="current">
+					<swiper circular autoplay interval="3000" class="body_news" @change="changeDot">
+						<swiper-item v-for="item in newsList" :key="item.id" @click="handleGoNews(item)">
+							<uv-image width="633rpx" height="332rpx" radius="8rpx" mode="aspectFill" :src="item.url" />
+							<view class="news_title">
+								{{ item.title ? item.title : '无标题' }}
+							</view>
+							<view class="news_desc">
+								{{ item.desc }}
+							</view>
+							<mp-html v-if="item.showHtml" @load="htmlLoad(item)" :ref="item.id + 'html'" :content="item.content" />
+						</swiper-item>
+					</swiper>
+				</uni-swiper-dot>
+
+				<!-- 特产甄选区域 -->
+				<view class="body_top">
+					<view class="circle"></view>
+					<view class="circle color"></view>
+					<view class="top_title">特产甄选 .</view>
+					<view class="top_msg">明优推荐,土的自然,购的放心</view>
+					<view class="top_more">
+						更多
+						<img src="https://chtech.ncjti.edu.cn/hotelReservation/image/13.png" />
+					</view>
+				</view>
+
+				<view class="body_list">
+					<!-- 每一个特产区域 -->
+					<view class="item_goods" v-for="item in goodsList" :key="item.id">
+						<img class="goods_img" mode="acpectFill" :src="item.imgUrl" />
+						<view class="goods_name">{{ item.name }}</view>
+
+						<view class="goods_detail">
+							<img class="img" src="../../static/index/goods.png" />
+							<view class="price">
+								<text class="txt1">¥{{ item.price }}</text>
+								<text class="txt2">起</text>
+							</view>
 						</view>
-						<mp-html v-if="item.showHtml" @load="htmlLoad(item)" :ref="item.id + 'html'" :content="item.content" />
 					</view>
 				</view>
 
@@ -276,7 +303,41 @@ export default {
 			// 招商资讯列表
 			newsList: [],
 			// 精选攻略数据
-			bestNewsInfo: null
+			bestNewsInfo: null,
+			// 招商资讯轮播图指示点样式
+			dotsStyles: {
+				backgroundColor: '#BBD8FE',
+				selectedBackgroundColor: '#1E7DFB',
+				border: 'none',
+				selectedBorder: 'none'
+			},
+			current: 0,
+			goodsList: [
+				{
+					id: 1,
+					imgUrl: 'https://img0.baidu.com/it/u=598641720,3978772869&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=447',
+					name: '靖安白茶',
+					price: 180
+				},
+				{
+					id: 2,
+					imgUrl: 'https://img0.baidu.com/it/u=598641720,3978772869&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=447',
+					name: '靖安白茶',
+					price: 180
+				},
+				{
+					id: 3,
+					imgUrl: 'https://img0.baidu.com/it/u=598641720,3978772869&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=447',
+					name: '靖安白茶',
+					price: 180
+				},
+				{
+					id: 4,
+					imgUrl: 'https://img0.baidu.com/it/u=598641720,3978772869&fm=253&fmt=auto&app=138&f=JPEG?w=600&h=447',
+					name: '靖安白茶',
+					price: 180
+				}
+			]
 		}
 	},
 	created() {
@@ -350,7 +411,7 @@ export default {
 				url: '/mhotel/appnewlist.action',
 				data: {
 					page: 1,
-					rows: 2
+					rows: 3
 				}
 			})
 			// console.log(res)
@@ -536,11 +597,7 @@ export default {
 				url: `/pages/home/home?town=${this.town}&keywords=${this.keywords}&level=${this.level}`
 			})
 		},
-		handleGoSetMeal() {
-			uni.navigateTo({
-				url: '/pages/setMeal/setMeal'
-			})
-		},
+
 		goPageDetail(item) {
 			uni.navigateTo({
 				url: `/pages/detail/detail?id=${item.id}&distance=${item.distance}`
@@ -599,12 +656,8 @@ export default {
 				url: '/pages/home/home'
 			})
 		},
-		handleTest() {
-			uni.showToast({
-				title: '功能开发中',
-				icon: 'none',
-				mask: true
-			})
+		changeDot(e) {
+			this.current = e.detail.current
 		}
 	}
 }
@@ -762,69 +815,6 @@ export default {
 			}
 		}
 
-		.icons {
-			display: flex;
-			justify-content: space-around;
-			align-items: center;
-			margin: 20rpx auto;
-			width: 690rpx;
-			height: 180rpx;
-			border-radius: 12rpx;
-			background-color: #fff;
-
-			.icon_item {
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-				width: 20%;
-
-				.item_top {
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					width: 60rpx;
-					height: 60rpx;
-					border-radius: 50%;
-
-					img {
-						width: 28rpx;
-						height: 27rpx;
-					}
-
-					.img2 {
-						width: 40rpx;
-						height: 25.5rpx;
-					}
-					.img3 {
-						width: 31rpx;
-						height: 21rpx;
-					}
-				}
-
-				.color {
-					background-color: #d8e8e8;
-				}
-
-				.color2 {
-					background-color: #c2f2d5;
-				}
-				.color3 {
-					background-color: #f7d4ba;
-				}
-				.color4 {
-					background-color: #fae1e2;
-				}
-				.color5 {
-					background-color: #d0e0f2;
-				}
-
-				.item_bottom {
-					margin-top: 6rpx;
-					font-size: 28rpx;
-				}
-			}
-		}
-
 		.swiper {
 			margin: 20rpx auto 0;
 			width: 690rpx;
@@ -976,7 +966,7 @@ export default {
 						.tag {
 							margin-right: 10rpx;
 							box-sizing: border-box;
-							padding: 0 5rpx;
+							padding: 0 12rpx;
 							height: 35rpx;
 							color: #1e7dfb;
 							font-size: 20rpx;
@@ -1079,6 +1069,88 @@ export default {
 						}
 					}
 				}
+
+				.item_goods {
+					margin-bottom: 20rpx;
+					width: 335rpx;
+					height: 367rpx;
+					border-radius: 10rpx;
+					background-color: #fff;
+					overflow: hidden;
+
+					.goods_img {
+						width: 335rpx;
+						height: 223rpx;
+					}
+
+					.goods_name {
+						margin: 18rpx 0 18rpx 30rpx;
+						font-size: 28rpx;
+						font-weight: bold;
+					}
+
+					.goods_detail {
+						display: flex;
+						flex-direction: row;
+						justify-content: space-between;
+						align-items: center;
+						padding: 0 20rpx 20rpx 20rpx;
+						color: rgba(0, 0, 0, 1);
+
+						.img {
+							width: 40rpx;
+							height: 40rpx;
+						}
+
+						.price {
+							.txt1 {
+								font-size: 36rpx;
+								font-weight: 600;
+								color: rgba(255, 87, 51, 1);
+							}
+
+							.txt2 {
+								font-size: 24rpx;
+								font-weight: 400;
+								color: #a6a6a6;
+							}
+						}
+
+						.score {
+							font-size: 24rpx;
+							font-weight: 400;
+							padding-top: 10rpx;
+							color: rgba(166, 166, 166, 1);
+						}
+					}
+				}
+			}
+
+			.body_news {
+				box-sizing: border-box;
+				padding: 25rpx;
+				width: 690rpx;
+				height: 566rpx;
+				border-radius: 12rpx;
+				background-color: #fff;
+
+				.news_title {
+					margin: 20rpx 0;
+					font-size: 32rpx;
+					font-weight: bold;
+					overflow: hidden;
+					text-overflow: ellipsis;
+					white-space: nowrap;
+				}
+
+				.news_desc {
+					font-size: 24rpx;
+					color: #666666;
+					display: -webkit-box;
+					-webkit-box-orient: vertical;
+					-webkit-line-clamp: 2;
+					overflow: hidden;
+				}
 			}
 
 			.noData {
@@ -1209,4 +1281,4 @@ export default {
 		}
 	}
 }
-</style>
+</style>

+ 0 - 180
pages/index/index.vue

@@ -1,180 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 地图区域 -->
-		<view class="map">
-			<qiun-data-charts type="map" :opts="opts" :chartData="chartData" @getIndex="getMapIndex" />
-		</view>
-		<!-- 乡镇列表区域 -->
-		<view class="body" v-if="list.length">
-			<!-- 每一个乡镇区域 -->
-			<view class="body_item" v-for="(item, index) in list" :key="index">
-				<view class="item_town">{{ item.name }}</view>
-				<view class="item_platina">白金级({{ item.cSum }})</view>
-				<view class="item_gold">金宿级({{ item.bSum }})</view>
-				<view class="item_silver">银宿级({{ item.aSum }})</view>
-				<view class="item_btn" @click="() => handleGoHome(item)">订</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-// 靖安县地图数据
-// import { mapData } from '@/util/mapData.js'
-
-export default {
-	data() {
-		return {
-			// 城镇列表数据
-			list: [],
-			// 图表数据
-			chartData: {
-				series: {}
-			},
-			// 图表配置
-			opts: {
-				color: ['#096562', '#096562', '#096562', '#096562', '#096562', '#096562', '#096562', '#096562', '#096562', '#096562', '#096562'],
-				padding: [0, 0, 0, 0],
-				fontColor: '#fff',
-				fontSize: 10,
-				dataPointShape: false,
-				extra: {
-					map: {
-						border: true,
-						borderWidth: 1,
-						borderColor: 'rgba(255,255,255,0.2)',
-						fillOpacity: 0.6,
-						activeBorderColor: 'rgba(255,255,255,0.2)',
-						activeFillColor: '#0BBA92',
-						activeFillOpacity: 1,
-						fillOpacity: 1
-					}
-				}
-			}
-		}
-	},
-	onReady() {
-		this.getServerData()
-	},
-	onLoad() {
-		this.getTownList()
-	},
-	methods: {
-		getMapIndex(e) {
-			let town
-			if (e.currentIndex === 0) {
-				town = '双溪镇'
-			} else if (e.currentIndex === 1) {
-				town = '仁首镇'
-			} else if (e.currentIndex === 2) {
-				town = '罗湾乡'
-			} else if (e.currentIndex === 3) {
-				town = '水口乡'
-			} else if (e.currentIndex === 4) {
-				town = '香田乡'
-			} else if (e.currentIndex === 5) {
-				town = '躁都镇'
-			} else if (e.currentIndex === 6) {
-				town = '三爪仑乡'
-			} else if (e.currentIndex === 7) {
-				town = '中源乡'
-			} else if (e.currentIndex === 8) {
-				town = '高湖镇'
-			} else if (e.currentIndex === 9) {
-				town = '雷公尖乡'
-			} else if (e.currentIndex === 10) {
-				town = '宝峰镇'
-			}
-			uni.setStorageSync('town', town)
-			uni.switchTab({
-				url: `/pages/home/home`
-			})
-		},
-		// 获取城镇列表数据
-		async getTownList() {
-			const res = await this.$myRequest({
-				url: '/mhotel/ahpgetTownshipCount.action',
-				method: 'post'
-			})
-			// console.log(res)
-			if (res.code === 200) {
-				this.list = res.data
-			}
-		},
-		handleGoHome(item) {
-			uni.setStorageSync('town', item.name)
-			uni.switchTab({
-				url: `/pages/home/home`
-			})
-		},
-		// 获取地图数据
-		getServerData() {
-			this.chartData.series = mapData.features
-		}
-	}
-}
-</script>
-
-<style lang="scss" scoped>
-.container {
-	box-sizing: border-box;
-	padding: 0 30rpx 10rpx;
-	height: 100vh;
-	background-color: #f7f7f7;
-
-	.map {
-		width: 100%;
-		height: 463rpx;
-	}
-
-	.body {
-		height: calc(100vh - 463rpx);
-		overflow-y: auto;
-
-		.body_item {
-			display: flex;
-			align-items: center;
-			margin-bottom: 20rpx;
-			height: 92rpx;
-			border-radius: 12rpx;
-			background-color: #e6e6e6;
-
-			.item_town {
-				margin-left: 30rpx;
-				font-size: 32rpx;
-				font-weight: bold;
-			}
-
-			.item_silver {
-				margin-left: 24rpx;
-				font-size: 20rpx;
-				color: #660909;
-			}
-			.item_gold {
-				margin-left: 18rpx;
-				font-size: 20rpx;
-				color: #096562;
-			}
-			.item_platina {
-				margin-left: 24rpx;
-				font-size: 20rpx;
-				color: #ff5733;
-			}
-
-			.item_btn {
-				margin-left: auto;
-				margin-right: 10rpx;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-				width: 100rpx;
-				height: 66rpx;
-				color: #fff;
-				font-size: 36rpx;
-				border-radius: 11rpx;
-				background-color: #096562;
-			}
-		}
-	}
-}
-</style>

+ 182 - 84
pages/my/my.vue

@@ -9,80 +9,105 @@
 		<view class="header">
 			<img src="https://chtech.ncjti.edu.cn/hotelReservation/image/18.png" />
 			<!-- 头像区域 -->
-			<img class="img" mode="aspectFill" v-if="flag" :src="userInfo.headPhoto" @click="handleGoPageHome" />
-			<img class="img" v-else src="../../static/my/portrait.png" @click="handleGoPageHome" />
+			<img class="img" mode="aspectFill" v-if="flag" :src="userInfo.headPhoto" />
+			<img class="img" v-else src="../../static/my/portrait.png" />
 			<!-- 姓名区域 -->
-			<view class="name" v-if="flag" @click="handleGoPageHome">{{ userInfo.user_name }}</view>
+			<view class="name" v-if="flag">{{ userInfo.user_name }}</view>
 			<!-- 用户id区域 -->
-			<view class="number" v-if="flag" @click="handleGoPageHome">ID:{{ userInfo.id }}</view>
-			<!-- 是否实名认证区域 -->
-			<!-- <view class="real" v-if="userInfo.card_number">
-				<img src="../../static/my/true.png" />
-				已实名认证
-			</view>
-			<view class="real2" v-if="flag" v-else>
-				去认证
-				<img src="../../static/my/right2.png" />
-			</view> -->
+			<view class="number" v-if="flag">ID:{{ userInfo.id }}</view>
 
 			<view class="login" v-if="!flag" @click="goPageLogin">去登录</view>
 		</view>
 
 		<!-- 内容区域 -->
 		<view class="body">
-			<!-- 订单管理区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/orderManage/orderManage')">
-				<img class="img" src="../../static/my/order.png" />
-				订单管理
-				<img class="img_icon" src="../../static/my/right3.png" />
-			</view>
-
-			<!-- 我的评价区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/myEvaluate/myEvaluate')">
-				<img class="img" src="../../static/my/evaluate.png" />
-				我的评价
-				<img class="img_icon" src="../../static/my/right3.png" />
-			</view>
-
-			<!-- 收藏/住过区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/collect/collect')">
-				<img class="img" src="../../static/my/collect.png" />
-				收藏/住过
-				<img class="img_icon" src="../../static/my/right3.png" />
-			</view>
-
-			<!-- 我的卡券区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/myCoupon/myCoupon')">
-				<img class="img" src="../../static/my/coupon.png" />
-				我的卡券
-				<img class="img_icon" src="../../static/my/right3.png" />
+			<!-- 我的订单区域 -->
+			<view class="myOrder">
+				<view class="myOrder_header">
+					<img class="header_img" src="../../static/my/myorder5.png" />
+					<view class="header_title">我的订单</view>
+					<view class="header_more" @click="handleShowTest">
+						全部订单
+						<img class="more_img" src="../../static/my/right.png" />
+					</view>
+				</view>
+				<view class="myOrder_list">
+					<view class="list_box" @click="handleShowTest">
+						<img class="box_img" src="../../static/my/myorder.png" />
+						<view class="box_text">待付款</view>
+					</view>
+					<view class="list_box" @click="handleShowTest">
+						<img class="box_img" src="../../static/my/myorder2.png" />
+						<view class="box_text">待发货</view>
+					</view>
+					<view class="list_box" @click="handleShowTest">
+						<img class="box_img" src="../../static/my/myorder3.png" />
+						<view class="box_text">待收货</view>
+					</view>
+					<view class="list_box" @click="handleShowTest">
+						<img class="box_img" src="../../static/my/myorder4.png" />
+						<view class="box_text">待评价</view>
+					</view>
+				</view>
 			</view>
-
-			<!-- 投诉进度区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/myComplaint/myComplaint')">
-				<img class="img" src="../../static/my/complaint.png" />
-				投诉进度
-				<img class="img_icon" src="../../static/my/right3.png" />
-			</view>
-
-			<!-- 常用旅客区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/common/common')">
-				<img class="img2" src="../../static/my/people.png" />
-				常用旅客
-				<img class="img_icon" src="../../static/my/right3.png" />
+			<!-- 常用工具区域 -->
+			<view class="body_box">
+				<view class="box_title">常用工具</view>
+				<view class="box_list">
+					<view class="item_box" @click="handleShowTest">
+						<img class="box_img" src="../../static/my/shopcar.png" />
+						<view class="box_text">购物车</view>
+					</view>
+					<view class="item_box" @click="handleShowTest">
+						<img class="box_img" src="../../static/my/address.png" />
+						<view class="box_text">收货地址</view>
+					</view>
+					<view class="item_box" @click="handleGoPageHome">
+						<img class="box_img" src="../../static/my/center.png" />
+						<view class="box_text">个人主页</view>
+					</view>
+					<view class="item_box" @click="handleGoPage('/pages/set/set')">
+						<img class="box_img" src="../../static/my/set.png" />
+						<view class="box_text">设置</view>
+					</view>
+				</view>
 			</view>
-
-			<!-- 设置区域 -->
-			<view class="body_item" @click="handleGoPage('/pages/set/set')">
-				<img class="img3" src="../../static/my/set.png" />
-				设置
-				<img class="img_icon" src="../../static/my/right3.png" />
+			<!-- 民宿管理区域 -->
+			<view class="body_box">
+				<view class="box_title">民宿管理</view>
+				<view class="box_list">
+					<view class="item_box" @click="handleGoPage('/pages/orderManage/orderManage')">
+						<img class="box_img" src="../../static/my/order.png" />
+						<view class="box_text">订单管理</view>
+					</view>
+					<view class="item_box" @click="handleGoPage('/pages/myEvaluate/myEvaluate')">
+						<img class="box_img" src="../../static/my/evaluate.png" />
+						<view class="box_text">我的评价</view>
+					</view>
+					<view class="item_box" @click="handleGoPage('/pages/myComplaint/myComplaint')">
+						<img class="box_img" src="../../static/my/complaint.png" />
+						<view class="box_text">投诉进度</view>
+					</view>
+					<view class="item_box" @click="handleGoPage('/pages/collect/collect')">
+						<img class="box_img" src="../../static/my/collect.png" />
+						<view class="box_text">收藏/住过</view>
+					</view>
+					<view class="item_box" @click="handleGoPage('/pages/myCoupon/myCoupon')">
+						<img class="box_img" src="../../static/my/coupon.png" />
+						<view class="box_text">我的卡券</view>
+					</view>
+					<view class="item_box" @click="handleGoPage('/pages/common/common')">
+						<img class="box_img" src="../../static/my/people.png" />
+						<view class="box_text">常用旅客</view>
+					</view>
+				</view>
 			</view>
 		</view>
 	</view>
 </template>
 
 <script>
+import { showTest } from '@/util/commonFunction.js'
 export default {
 	data() {
 		return {
@@ -170,6 +195,9 @@ export default {
 			uni.navigateTo({
 				url: `/pages/myHome/myHome?userId=${userId}`
 			})
+		},
+		handleShowTest() {
+			showTest()
 		}
 	}
 }
@@ -282,42 +310,112 @@ export default {
 	.body {
 		position: absolute;
 		top: 360rpx;
-		box-sizing: border-box;
-		padding: 0 30rpx;
 		width: 100%;
 		min-height: calc(100vh - 360rpx);
 		border-radius: 20rpx 20rpx 0 0;
-		background-color: #fff;
+		background-color: #f7f7f7;
 
-		.body_item {
-			display: flex;
-			align-items: center;
-			height: 121rpx;
-			font-size: 28rpx;
-			border-bottom: 1rpx solid #e6e6e6;
-
-			.img {
-				margin-right: 17rpx;
-				width: 53rpx;
-				height: 53rpx;
+		.myOrder {
+			padding: 0 30rpx;
+			margin-bottom: 23rpx;
+			height: 224rpx;
+			border-radius: 20rpx;
+			background-color: #fff;
+
+			.myOrder_header {
+				display: flex;
+				align-items: flex-end;
+				height: 64rpx;
+
+				.header_img {
+					width: 42rpx;
+					height: 42rpx;
+				}
+
+				.header_title {
+					margin-left: 11rpx;
+					font-size: 28rpx;
+					font-weight: bold;
+				}
+
+				.header_more {
+					display: flex;
+					align-items: center;
+					margin-left: auto;
+					font-size: 24rpx;
+					color: #b3b3b3;
+
+					.more_img {
+						margin-top: -5rpx;
+						margin-left: 10rpx;
+						width: 30rpx;
+						height: 30rpx;
+					}
+				}
 			}
 
-			.img2 {
-				margin-right: 22rpx;
-				width: 42rpx;
-				height: 42rpx;
+			.myOrder_list {
+				display: flex;
+				justify-content: space-around;
+				height: 160rpx;
+
+				.list_box {
+					display: flex;
+					flex-direction: column;
+					justify-content: center;
+					align-items: center;
+					width: 140rpx;
+
+					.box_img {
+						width: 50rpx;
+						height: 50rpx;
+					}
+
+					.box_text {
+						margin-top: 10rpx;
+						color: #808080;
+						font-size: 24rpx;
+					}
+				}
 			}
+		}
+
+		.body_box {
+			padding: 0 30rpx;
+			margin-bottom: 23rpx;
+			border-radius: 20rpx 20rpx 0 0;
+			background-color: #fff;
 
-			.img3 {
-				margin-right: 18rpx;
-				width: 50rpx;
-				height: 50rpx;
+			.box_title {
+				display: flex;
+				align-items: flex-end;
+				height: 64rpx;
+				font-size: 32rpx;
+				font-weight: bold;
 			}
 
-			.img_icon {
-				margin-left: auto;
-				width: 49rpx;
-				height: 49rpx;
+			.box_list {
+				display: grid;
+				grid-template-columns: repeat(4, 1fr);
+				grid-auto-rows: 160rpx;
+
+				.item_box {
+					display: flex;
+					flex-direction: column;
+					justify-content: center;
+					align-items: center;
+
+					.box_img {
+						width: 50rpx;
+						height: 50rpx;
+					}
+
+					.box_text {
+						margin-top: 10rpx;
+						color: #333333;
+						font-size: 28rpx;
+					}
+				}
 			}
 		}
 	}

+ 32 - 5
pages/newsList/newsList.vue

@@ -10,18 +10,24 @@
 		</view>
 
 		<!-- 资讯列表区域 -->
-		<scroll-view class="list" scroll-y @scrolltolower="handleLower">
+		<scroll-view class="list" scroll-y @scrolltolower="handleLower" v-show="showPage">
 			<!-- 每一条资讯区域 -->
 			<view class="box" v-for="item in list" :key="item.id" @click="handleGoDetail(item)">
 				<uv-image width="253rpx" height="190rpx" radius="8rpx" mode="aspectFill" :src="item.url" />
 				<view class="box_detail">
-					<view class="detail_title">{{ item.title ? item.title : '无标题' }}</view>
+					<view class="detail_title">{{ item.title }}</view>
 					<view class="detail_time">{{ item.update_time }}</view>
 				</view>
 				<!-- 富文本区域 -->
 				<mp-html v-if="item.showHtml" @load="htmlLoad(item)" :ref="item.id + 'html'" :content="item.content" />
 			</view>
 		</scroll-view>
+
+		<!-- 没有数据时展示的页面 -->
+		<view class="noData" v-if="!list.length">
+			<img src="../../static/images/noData.png" />
+			暂无数据
+		</view>
 	</view>
 </template>
 
@@ -38,7 +44,9 @@ export default {
 			// 每页多少条
 			rowsNews: 8,
 			// 总条数
-			totalNews: null
+			totalNews: null,
+			// 控制页面显示隐藏
+			showPage: false
 		}
 	},
 	onLoad() {
@@ -66,7 +74,9 @@ export default {
 		},
 		// 点击搜索按钮回调
 		searchHandler() {
-			;(this.list = []), (this.pageNews = 1)
+			this.showPage = false
+			this.list = []
+			this.pageNews = 1
 			this.getNews()
 		},
 		// 页面到底触发回调
@@ -95,6 +105,9 @@ export default {
 			let imgs = ctx.imgList[0]
 			item.showHtml = false
 			item.url = imgs
+			if (!this.showPage) {
+				this.showPage = true
+			}
 		}
 	}
 }
@@ -190,5 +203,19 @@ export default {
 			}
 		}
 	}
+
+	.noData {
+		display: flex;
+		flex-direction: column;
+		justify-content: center;
+		align-items: center;
+		padding-bottom: 65rpx;
+
+		img {
+			margin-top: 80rpx;
+			width: 600rpx;
+			height: 600rpx;
+		}
+	}
 }
-</style>
+</style>

+ 65 - 62
pages/rimDetail/rimDetail.vue

@@ -1,11 +1,20 @@
 <template>
 	<view class="container" :style="'overflow:' + (showPage ? 'hidden' : 'visible')" v-if="info">
 		<!-- 顶部轮播图区域 -->
-		<swiper v-if="info.detail_img" class="swiper" indicator-dots indicator-color="rgba(255, 255, 255, 0.5)" indicator-active-color="#fff" autoplay :interval="3000">
-			<swiper-item v-for="(item, index) in info.detail_img.split(',')" :key="index" @click="handleLookImgs(info.detail_img.split(','), index)">
-				<view class="swiper-item">
-					<img class="img" mode="aspectFill" :src="item" />
-				</view>
+		<swiper indicator-dots indicator-color="rgba(255, 255, 255, 0.5)" indicator-active-color="#fff" circular autoplay :interval="3000" class="swiper">
+			<swiper-item v-if="info.show_video">
+				<video
+					class="video"
+					:src="info.show_video"
+					id="myVideo"
+					:show-fullscreen-btn="false"
+					:direction="0"
+					@fullscreenchange="fullscreenchange"
+					@click="handleClickVideo('myVideo')"
+				></video>
+			</swiper-item>
+			<swiper-item v-for="(item, index) in imgList" :key="index">
+				<img class="img" mode="aspectFill" :src="item" @click="handleLookImgs(imgList, index)" />
 			</swiper-item>
 		</swiper>
 
@@ -13,14 +22,16 @@
 		<view class="info">
 			<view class="info_name">{{ info.rname }}</view>
 			<view class="info_score">
-				<!-- <view class="score_left">5.0</view>
-				<view class="score_right">超棒</view> -->
 				<view class="score_msg" @click="goPageInfo">简介</view>
 				<img class="score_icon" src="../../static/index/right.png" @click="goPageInfo" />
 			</view>
 			<view class="info_address">
 				<img class="address_icon" src="../../static/index/address.png" />
-				<text @click="handleLookAddress">{{ info.radress }}</text>
+				<text @click="handleLookAddress">地址:{{ info.radress }}</text>
+			</view>
+			<view class="info_phone">
+				<img class="phone_icon" src="../../static/index/phone3.png" />
+				<text @click="handleCallPhone(info.rphone)">联系电话:{{ info.rphone }}</text>
 			</view>
 		</view>
 
@@ -60,25 +71,6 @@
 				<view class="pop_desc">
 					<mp-html :content="popInfo.product_desc" />
 				</view>
-				<!-- <view class="pop_title">
-					<img class="title_img" src="../../static/index/notice.png" />
-					购票须知
-				</view>
-				<view class="pop_content">16:00点前可订今日,预订后立即可用平均2秒出票凭[入园码先换票再入园</view>
-				<view class="pop_content">未使用可随时由请全额退款</view>
-				<view class="pop_content">使用日期后1天经核实未使用系统将自动发起退款申请</view>
-				<view class="pop_content">换票后,不支持退款</view>
-				<view class="pop_content">下单后不支持改期使用说明:</view>
-				<view class="pop_content">换票时间:08:00-16:00 换票地址:游客中心取票入园</view>
-				<view class="pop_content">费用说明费用包含三爪仑观音岩-[成人票]门票- 1张</view>
-				<view class="pop_content">其它说明</view>
-				<view class="pop_content">比产品由商家开具发票,若需要发票,请在消费前和商家联系确认开票方法</view>
-
-				<view class="pop_title">
-					<img class="title_img" src="../../static/index/phone3.png" />
-					联系电话
-				</view>
-				<view class="pop_phone">13677988964</view> -->
 			</view>
 		</uv-popup>
 	</view>
@@ -96,11 +88,19 @@ export default {
 			total: null,
 			info: null,
 			showMore: true,
-			popInfo: null
+			popInfo: null,
+			imgList: [],
+			// video 上下文 videoContext 对象
+			videoContext: null,
+			// 是否是全屏状态
+			isFullScreen: false
 		}
 	},
 	onLoad(options) {
 		this.info = JSON.parse(decodeURIComponent(options.info))
+		if (this.info.detail_img) {
+			this.imgList = this.info.detail_img.split(',')
+		}
 		this.getData()
 	},
 	methods: {
@@ -155,9 +155,29 @@ export default {
 				success: () => {}
 			})
 		},
+		handleCallPhone(phone) {
+			uni.makePhoneCall({
+				phoneNumber: phone
+			})
+		},
 		handleShowMore() {
 			this.page++
 			this.getData()
+		},
+		// 进入全屏和退出全屏时触发的回调
+		fullscreenchange(e) {
+			this.isFullScreen = e.detail.fullScreen
+		},
+		// 点击视频控件时触发的回调
+		handleClickVideo(id) {
+			this.videoContext = uni.createVideoContext(id)
+			if (this.isFullScreen) {
+				this.videoContext.pause()
+				this.videoContext.exitFullScreen()
+			} else {
+				this.videoContext.requestFullScreen()
+				this.videoContext.play()
+			}
 		}
 	}
 }
@@ -169,16 +189,13 @@ export default {
 	background-color: #fff;
 
 	.swiper {
+		width: 100%;
 		height: 423rpx;
 
-		.swiper-item {
+		.img,
+		.video {
 			width: 100%;
 			height: 100%;
-
-			.img {
-				width: 100%;
-				height: 100%;
-			}
 		}
 	}
 
@@ -243,6 +260,20 @@ export default {
 				height: 30rpx;
 			}
 		}
+
+		.info_phone {
+			display: flex;
+			align-items: center;
+			height: 83rpx;
+			font-size: 28rpx;
+			border-top: 1rpx solid #e6e6e6;
+
+			.phone_icon {
+				margin-right: 8rpx;
+				width: 40rpx;
+				height: 40rpx;
+			}
+		}
 	}
 
 	.goods {
@@ -362,34 +393,6 @@ export default {
 		.pop_desc {
 			padding: 0 20rpx;
 		}
-
-		.pop_title {
-			display: flex;
-			align-items: center;
-			padding: 12rpx 20rpx 13rpx;
-			font-size: 32rpx;
-			font-weight: bold;
-
-			.title_img {
-				margin-right: 15rpx;
-				width: 38rpx;
-				height: 38rpx;
-			}
-		}
-
-		.pop_content {
-			padding: 0 20rpx;
-			line-height: 40rpx;
-			color: #666666;
-			font-size: 24rpx;
-		}
-
-		.pop_phone {
-			margin-left: 50rpx;
-			padding-bottom: 50rpx;
-			color: #096562;
-			font-size: 24rpx;
-		}
 	}
 }
 </style>

+ 0 - 386
pages/search/search.vue

@@ -1,386 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 轮播图区域 -->
-		<swiper class="banner" indicator-dots indicator-color="rgba(255, 255, 255, 0.5)" indicator-active-color="#1E7DFB" autoplay circular>
-			<swiper-item v-for="item in lunbo" :key="item.id">
-				<img mode="aspectFill" :src="item" />
-			</swiper-item>
-		</swiper>
-
-		<!-- 游客服务区域 -->
-		<view class="search">
-			<view class="search_title">游客服务</view>
-
-			<view class="search_box">
-				<!-- 每一个图标区域 -->
-				<view class="box_item" v-for="item in iconsList" :key="item.id" @click="handleTip">
-					<img :src="item.imgUrl"></img>
-					<view class="item_text">
-						{{item.text}}
-					</view>
-				</view>
-			</view>
-		</view>
-		
-		<!-- 景区导览区域 -->
-		<view class="trave">
-			<view class="trave_title">
-				景区导览
-				<view class="trave_she"></view>
-			</view>
-			
-		
-			<view class="trave_box">
-				<!-- 每一个图标区域 -->
-				<view class="box_item" v-for="item in traveList" :key="item.id" @click="handleTip">
-					<view style="height: 218rpx;">
-						<img :src="item.imgUrl"></img>
-						<view class="trave_dian">
-							<img mode="aspectFill" src="../../static/search/trave_map.png"></img>
-							<view class="trave_length">{{item.juli}}</view>
-						</view>
-					</view>
-					<!-- <view>2</view> -->
-					<view class="item_kuang">
-						<view class="item_name">{{item.name}}</view>
-						<view class="item_jibie">{{item.jibie}}</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		
-		<!-- 特产推荐区域 -->
-		<view class="techan">
-			<view class="trave_title">
-				特产推荐
-				<view class="trave_she"></view>
-			</view>
-			
-		
-			<view class="techan_box">
-				<view class="techan_list" v-for="item in techanList" :key="item.id">
-					<img :src="item.imgUrl" class="techan_img" mode="aspectFill"></img>
-					<view>
-						<text class="techan_name">{{item.name}}</text>
-						<text class="techan_type">{{item.type}}</text>
-						<text class="techan_liang">{{item.liang}}</text>
-						<text class="techan_price">{{item.price}}</text>
-					</view>
-					<img src="../../static/search/gouwuche.png" class="techan_jiagou" @click="handleTip"></img>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			//轮播图
-			lunbo:['https://jtishfw.ncjti.edu.cn/homestay/banner/7.png',
-			'https://jtishfw.ncjti.edu.cn/homestay/banner/8.jpg',
-			'https://jtishfw.ncjti.edu.cn/homestay/banner/9.png'],
-			// 图标数组
-			iconsList:[
-				{
-					id:1,
-					imgUrl:'../../static/search/icon.png',
-					text:'投诉建议'
-				},
-				{
-					id:2,
-					imgUrl:'../../static/search/icon2.png',
-					text:'租车服务'
-				},{
-					id:3,
-					imgUrl:'../../static/search/icon3.png',
-					text:'车位查询'
-				},{
-					id:4,
-					imgUrl:'../../static/search/icon4.png',
-					text:'厕所查询'
-				},{
-					id:5,
-					imgUrl:'../../static/search/icon5.png',
-					text:'寻找向导'
-				},{
-					id:6,
-					imgUrl:'../../static/search/icon6.png',
-					text:'服务热线'
-				},{
-					id:7,
-					imgUrl:'../../static/search/icon7.png',
-					text:'服务热线'
-				},{
-					id:8,
-					imgUrl:'../../static/search/icon8.png',
-					text:'招商平台'
-				}
-			],
-			// 景区导览
-			traveList:[
-				{id:1,
-				imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/scenicguide/中部梦幻城.png',juli:'45.96km',name:'中部梦幻城',jibie:'4A'},
-				{id:2,imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/scenicguide/中华传统文化园.png',juli:'45.96km',name:'中华传统文化园',jibie:'4A'},
-				{id:3,imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/scenicguide/靖安宝峰寺.png',juli:'45.96km',name:'靖安宝峰寺',jibie:'4A'},
-				{id:4,imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/scenicguide/九岭森林温泉度假村.png',juli:'45.96km',name:'九岭森林温泉度假村',jibie:'4A'},
-			],
-			// 特产
-			techanList:[
-				{id:1,imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/productpicture/靖安木耳.png',name:'靖安木耳',type:'手工产品 营养丰富',liang:'500kg',price:'¥200',},
-				{id:1,imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/productpicture/靖安白茶.jpg',name:'靖安白茶',type:'经典茶品 营养丰富',liang:'500kg',price:'¥400',},
-				{id:1,imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/productpicture/靖安椪柑.jpg',name:'靖安椪柑',type:'汁水丰富 营养丰富',liang:'500kg',price:'¥80',},
-				{
-					id:1,
-					imgUrl:'https://jtishfw.ncjti.edu.cn/homestay/productpicture/猕猴桃糕.jpg',
-					name:'猕猴桃糕',
-					type:'手工制作 回味无穷',
-					liang:'500kg',
-					price:'¥50',}
-			],
-		}
-	},
-	methods:{
-		handleTip(){
-			uni.showToast({
-				title: '功能开发中',
-				icon: 'none'
-			})
-		}
-	}
-}
-</script>
-
-<style lang="scss" scoped>
-.container {
-	display: flex;
-	flex-direction: column;
-	min-height: 100vh;
-	background-color: #ebeced;
-
-	.banner {
-		margin-top: 20rpx;
-		width: 750rpx;
-		height: 326rpx;
-
-		img {
-			width: 100%;
-			height: 100%;
-		}
-	}
-
-	.search {
-		margin: 20rpx 0;
-		width: 750rpx;
-		height: 475rpx;
-		background-color: #fff;
-
-		.search_title {
-			padding: 0 30rpx;
-			height: 93rpx;
-			line-height: 93rpx;
-			font-size: 32rpx;
-			font-weight: bold;
-			border-bottom: 1rpx solid #e6e6e6;
-		}
-
-		.search_box {
-			display: flex;
-			flex-wrap: wrap;
-			padding: 0 30rpx;
-			height: 382rpx;
-
-			.box_item {
-				display: flex;
-				flex-direction: column;
-				justify-content: center;
-				align-items: center;
-				width: 25%;
-				height: 190rpx;
-
-				image {
-					width: 78rpx;
-					height: 78rpx;
-				}
-				
-				.item_text{
-					margin-top: 13rpx;
-					font-size: 28rpx;
-				}
-			}
-		}
-	}
-	
-	// 景区导览
-	.trave {
-		margin: 20rpx 0;
-		width: 750rpx;
-		height: 869rpx;
-		background-color: #fff;
-	
-		.trave_title {
-			padding: 0 30rpx;
-			height: 93rpx;
-			line-height: 93rpx;
-			font-size: 32rpx;
-			font-weight: bold;
-			border-bottom: 1rpx solid #e6e6e6;
-		}
-		.trave_she{
-			margin: -40px 0 0 634rpx;
-			width: 67rpx;
-			height: 67rpx;
-			background-image: url('../../static/search/trave_she.png');
-			background-size: 100%;
-		}
-	
-		.trave_box {
-			display: flex;
-			flex-wrap: wrap;
-			padding: 32rpx 10rpx;
-			height: 766rpx;
-	
-			.box_item {
-				display: flex;
-				flex-direction: column;
-				justify-content: center;
-				align-items: center;
-				height: 331rpx;
-				width: 50%;
-	
-				image {
-					width: 335rpx;
-					height: 218rpx;
-					z-index: 2;
-				}
-				.trave_dian{
-					width: 109rpx;
-					height: 37rpx;
-					border-radius: 73rpx;
-					background: rgba(0, 0, 0, 0.4);
-					margin: -57rpx 0 0 213rpx;
-					z-index: 3;
-					position: absolute;
-					image {
-						width: 26rpx;
-						height: 26rpx;
-						margin: 6rpx 0 0 8rpx;
-						float: left;
-					}
-					.trave_length{
-						font-size: 16rpx;
-						line-height: 23rpx;
-						color: rgba(255, 255, 255, 1);
-						margin: 10rpx 0 0 8rpx;
-					}
-				}
-				
-				.item_kuang{
-					width: 335rpx;
-					height: 113rpx;
-					background: rgba(255, 255, 255, 1);
-					box-shadow: 0px 0px 7rpx  rgba(0, 0, 0, 0.25);
-					font-size: 28rpx;
-					.item_name{
-						margin: 11rpx 0 0 17rpx;
-						line-height: 41rpx;
-						color: rgba(0, 0, 0, 1);
-					}
-					.item_jibie{
-						margin: 11rpx 0 0 17rpx;
-						width: 48rpx;
-						height: 30rpx;
-						border-radius: 136rpx;
-						background: rgba(255, 223, 117, 1);
-						font-size: 22rpx;
-						line-height: 30rpx;
-						color: rgba(189, 120, 17, 1);
-						text-align: center;
-					}
-				}
-			}
-		}
-	}
-	// 特产推荐
-	.techan{
-		margin: 20rpx 0;
-		width: 750rpx;
-		height: 110%;
-		background-color: #fff;
-		.trave_title {
-			padding: 0 30rpx;
-			height: 93rpx;
-			line-height: 93rpx;
-			font-size: 32rpx;
-			font-weight: bold;
-			border-bottom: 1rpx solid #e6e6e6;
-		}
-		.trave_she{
-			margin: -40px 0 0 634rpx;
-			width: 67rpx;
-			height: 67rpx;
-			background-image: url('../../static/search/trave_she.png');
-			background-size: 100%;
-		}
-		.techan_box{
-			display: flex;
-			flex-wrap: wrap;
-			margin-left: 30rpx;
-			height: 110%;
-			
-			.techan_list{
-				display: flex;
-				height: 231rpx;
-				margin-top: 30rpx;
-				border-bottom: 1px solid #e6e6e6;
-				
-				.techan_img{
-					width: 200rpx;
-					height: 200rpx;
-				}
-				.techan_name{
-					display: flex;
-					margin: 0 0 0 23rpx;
-					font-size: 28rpx;
-					font-weight: 500;
-					line-height: 41rpx;
-					color: rgba(0, 0, 0, 1);
-				}
-				.techan_type{
-					display: flex;
-					margin: 11rpx 0 0 23rpx;
-					font-size: 24rpx;
-					line-height: 35rpx;
-					color: rgba(166, 166, 166, 1);
-				}
-				.techan_liang{
-					display: flex;
-					margin: 14rpx 0 0 28rpx;
-					width: 61rpx;
-					height: 32rpx;
-					border-radius: 4rpx;
-					background: rgba(230, 230, 230, 1);
-					font-size: 20rpx;
-					line-height: 32rpx;
-					color: rgba(166, 166, 166, 1);
-					text-align: center;
-				}
-				.techan_price{
-					display: flex;
-					margin: 19rpx 0 0 23rpx;
-					font-size: 36rpx;
-					font-weight: 500;
-					line-height: 52rpx;
-					color: rgba(255, 87, 51, 1);
-				}
-				.techan_jiagou{
-					margin: 143rpx 0 0 207rpx;
-					width: 62rpx;
-					height: 62rpx;
-				}
-			}
-		}
-	}
-}
-</style>

+ 1 - 1
pages/send/send.vue

@@ -228,7 +228,7 @@ export default {
 				title: '上传中'
 			})
 			uni.uploadFile({
-				url: `https://chtech.ncjti.edu.cn/hotelReservation/file/cos/upload`,
+				url: `https://chtech.ncjti.edu.cn/homestay/file/cos/upload`,
 				filePath: ele,
 				name: 'files',
 				success: (uploadFileRes) => {

+ 5 - 4
pages/set/set.vue

@@ -75,14 +75,15 @@ export default {
 						title: '上传中'
 					})
 					uni.uploadFile({
-						url: `https://chtech.ncjti.edu.cn/hotelReservation/fileload/loadhimage.action`,
+						url: `https://chtech.ncjti.edu.cn/homestay/file/cos/upload`,
 						filePath: res.tempFilePaths[0],
-						name: 'myFile',
+						name: 'files',
 						success: async (uploadFileRes) => {
 							const res = JSON.parse(uploadFileRes.data)
-							if (res.code === 200) {
+
+							if (res.code === 200 || res.code === 1) {
 								uni.hideLoading()
-								this.imgUrl = res.data.url
+								this.imgUrl = res.data
 								const result = await this.$myRequest({
 									url: '/mhotel/ampupdateUserInfo.action',
 									data: {

+ 0 - 184
pages/setMeal/setMeal.vue

@@ -1,184 +0,0 @@
-<template>
-	<view class="container">
-		<!-- 每一个套餐区域 -->
-		<view class="setMeal_box" v-for="item in list" :key="item.id">
-			<!-- 图片区域 -->
-			<view class="box_img">
-				<img mode="aspectFill" :src="item.img" />
-			</view>
-
-			<!-- 套餐信息区域 -->
-			<view class="box_info">
-				<view class="info_msg">{{ item.title }}</view>
-				<view class="info_price">
-					<view class="new">
-						{{ item.price }}
-						<text>起</text>
-					</view>
-
-					<view class="old">市场价{{ item.outprice }}</view>
-				</view>
-				<view class="info_btn">
-					<view class="btn_count">已售{{ item.number }}张</view>
-
-					<view class="btn_pay" @click="handleTip">立即抢购</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			// 套餐
-			list: [
-				{
-					id: 1,
-					img: 'https://jtishfw.ncjti.edu.cn/homestay/setmeal/1.jpg',
-					title: '周末不加价|靖安双溪抱朴小院3天2晚含门票|三爪仑漂流双人',
-					price: '¥180',
-					outprice: '¥400',
-					number: 1151
-				},
-				{
-					id: 1,
-					img: 'https://jtishfw.ncjti.edu.cn/homestay/setmeal/2.png',
-					title: '新店开业:国庆中秋大优惠|靖安双溪抱朴小院6天5晚含门票|特色小吃3份',
-					price: '¥240',
-					outprice: '¥520',
-					number: 188
-				},
-				{
-					id: 1,
-					img: 'https://jtishfw.ncjti.edu.cn/homestay/setmeal/3.png',
-					title: '中华传统文化园套票|特色小吃2份',
-					price: '¥180',
-					outprice: '¥400',
-					number: 58
-				},
-				{
-					id: 1,
-					img: 'https://jtishfw.ncjti.edu.cn/homestay/setmeal/4.png',
-					title: '三爪仑漂流五人人|中华传统文化园套票|特色小吃5份',
-					price: '¥900',
-					outprice: '¥1700',
-					number: 88
-				},
-				{
-					id: 1,
-					img: 'https://jtishfw.ncjti.edu.cn/homestay/setmeal/5.png',
-					title: '三爪仑漂流双人|中华传统文化园套票',
-					price: '¥180',
-					outprice: '¥400',
-					number: 88
-				},
-				{
-					id: 1,
-					img: 'https://jtishfw.ncjti.edu.cn/homestay/setmeal/6.jpg',
-					title: '中华传统文化园套票|特色小吃3份',
-					price: '¥240',
-					outprice: '¥520',
-					number: 72
-				}
-			]
-		}
-	},
-	methods: {
-		handleTip() {
-			uni.showToast({
-				title: '功能开发中',
-				icon: 'none'
-			})
-		}
-	}
-}
-</script>
-
-<style lang="scss" scoped>
-.container {
-	box-sizing: border-box;
-	padding: 20rpx 30rpx;
-	min-height: 100vh;
-	background-color: #ebeced;
-
-	.setMeal_box {
-		margin-bottom: 20rpx;
-		border-radius: 10rpx;
-		background-color: #fff;
-
-		.box_img {
-			height: 377rpx;
-
-			img {
-				width: 100%;
-				height: 100%;
-			}
-		}
-
-		.box_info {
-			padding: 0 25rpx;
-			.info_msg {
-				margin-top: 20rpx;
-				line-height: 45rpx;
-				font-size: 28rpx;
-			}
-
-			.info_price {
-				display: flex;
-				height: 62rpx;
-				line-height: 62rpx;
-
-				.new {
-					color: #ff5733;
-					font-size: 36rpx;
-					font-weight: bold;
-
-					text {
-						font-size: 24rpx;
-						font-weight: 400;
-					}
-				}
-
-				.old {
-					margin-left: 20rpx;
-					color: #a6a6a6;
-					font-size: 24rpx;
-					text-decoration: line-through;
-				}
-			}
-
-			.info_btn {
-				display: flex;
-				justify-content: space-between;
-				height: 98rpx;
-
-				.btn_count {
-					padding: 0 20rpx;
-					margin-top: 10rpx;
-					height: 56rpx;
-					line-height: 56rpx;
-					color: #fff;
-					font-size: 24rpx;
-					border-radius: 10rpx;
-					background-color: #e86346;
-				}
-
-				.btn_pay {
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					margin-top: -10rpx;
-					width: 204rpx;
-					height: 72rpx;
-					border-radius: 48rpx;
-					color: #ff5733;
-					font-size: 32rpx;
-					border: 1rpx solid #ff5733;
-				}
-			}
-		}
-	}
-}
-</style>

File diff suppressed because it is too large
+ 0 - 181
pages/strategyDetatil/strategyDetatil.vue


BIN
static/index/goods.png


BIN
static/my/address.png


BIN
static/my/center.png


BIN
static/my/myorder.png


BIN
static/my/myorder2.png


BIN
static/my/myorder3.png


BIN
static/my/myorder4.png


BIN
static/my/myorder5.png


BIN
static/my/shopcar.png


+ 12 - 0
uni_modules/uni-swiper-dot/changelog.md

@@ -0,0 +1,12 @@
+## 1.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-swiper-dot](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot)
+## 1.1.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.0.6(2021-05-12)
+- 新增 示例地址
+- 修复 示例项目缺少组件的Bug
+## 1.0.5(2021-02-05)
+- 调整为uni_modules目录规范
+- 新增 clickItem 事件,支持指示点控制轮播
+- 新增 支持 pc 可用

+ 218 - 0
uni_modules/uni-swiper-dot/components/uni-swiper-dot/uni-swiper-dot.vue

@@ -0,0 +1,218 @@
+<template>
+	<view class="uni-swiper__warp">
+		<slot />
+		<view v-if="mode === 'default'" :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box" key='default'>
+			<view v-for="(item,index) in info" @click="clickItem(index)" :style="{
+        'width': (index === current? dots.width*2:dots.width ) + 'px','height':dots.width/2 +'px' ,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border-radius':'0px'}"
+			 :key="index" class="uni-swiper__dots-item uni-swiper__dots-bar" />
+		</view>
+		<view v-if="mode === 'dot'" :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box" key='dot'>
+			<view v-for="(item,index) in info" @click="clickItem(index)" :style="{
+        'width': dots.width + 'px','height':dots.height +'px' ,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border':index !==current ? dots.border:dots.selectedBorder}"
+			 :key="index" class="uni-swiper__dots-item" />
+		</view>
+		<view v-if="mode === 'round'" :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box" key='round'>
+			<view v-for="(item,index) in info" @click="clickItem(index)" :class="[index === current&&'uni-swiper__dots-long']" :style="{
+		    'width':(index === current? dots.width*3:dots.width ) + 'px','height':dots.height +'px' ,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border':index !==current ? dots.border:dots.selectedBorder}"
+			 :key="index" class="uni-swiper__dots-item " />
+		</view>
+		<view v-if="mode === 'nav'" key='nav' :style="{'background-color':dotsStyles.backgroundColor,'bottom':'0'}" class="uni-swiper__dots-box uni-swiper__dots-nav">
+			<text :style="{'color':dotsStyles.color}" class="uni-swiper__dots-nav-item">{{ (current+1)+"/"+info.length +' ' +info[current][field] }}</text>
+		</view>
+		<view v-if="mode === 'indexes'" key='indexes' :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box">
+			<view v-for="(item,index) in info" @click="clickItem(index)" :style="{
+        'width':dots.width + 'px','height':dots.height +'px' ,'color':index === current?dots.selectedColor:dots.color,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border':index !==current ? dots.border:dots.selectedBorder}"
+			 :key="index" class="uni-swiper__dots-item uni-swiper__dots-indexes"><text class="uni-swiper__dots-indexes-text">{{ index+1 }}</text></view>
+		</view>
+	</view>
+</template>
+
+<script>
+
+	/**
+	 * SwiperDod 轮播图指示点
+	 * @description 自定义轮播图指示点
+	 * @tutorial https://ext.dcloud.net.cn/plugin?id=284
+	 * @property {Number} current 当前指示点索引,必须是通过 `swiper` 的 `change` 事件获取到的 `e.detail.current`
+	 * @property {String} mode = [default|round|nav|indexes] 指示点的类型
+	 * 	@value defualt 默认指示点
+	 * 	@value round 圆形指示点
+	 * 	@value nav 条形指示点
+	 * 	@value indexes 索引指示点
+	 * @property {String} field mode 为 nav 时,显示的内容字段(mode = nav 时必填)
+	 * @property {String} info 轮播图的数据,通过数组长度决定指示点个数
+	 * @property {Object} dotsStyles 指示点样式
+	 * @event {Function} clickItem 组件触发点击事件时触发,e={currentIndex}
+	 */
+
+	export default {
+		name: 'UniSwiperDot',
+		emits:['clickItem'],
+		props: {
+			info: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			current: {
+				type: Number,
+				default: 0
+			},
+			dotsStyles: {
+				type: Object,
+				default () {
+					return {}
+				}
+			},
+			// 类型 :default(默认) indexes long nav
+			mode: {
+				type: String,
+				default: 'default'
+			},
+			// 只在 nav 模式下生效,变量名称
+			field: {
+				type: String,
+				default: ''
+			}
+		},
+		data() {
+			return {
+				dots: {
+					width: 6,
+					height: 6,
+					bottom: 10,
+					color: '#fff',
+					backgroundColor: 'rgba(0, 0, 0, .3)',
+					border: '1px rgba(0, 0, 0, .3) solid',
+					selectedBackgroundColor: '#333',
+					selectedBorder: '1px rgba(0, 0, 0, .9) solid'
+				}
+			}
+		},
+		watch: {
+			dotsStyles(newVal) {
+				this.dots = Object.assign(this.dots, this.dotsStyles)
+			},
+			mode(newVal) {
+				if (newVal === 'indexes') {
+					this.dots.width = 14
+					this.dots.height = 14
+				} else {
+					this.dots.width = 6
+					this.dots.height = 6
+				}
+			}
+
+		},
+		created() {
+			if (this.mode === 'indexes') {
+				this.dots.width = 12
+				this.dots.height = 12
+			}
+			this.dots = Object.assign(this.dots, this.dotsStyles)
+		},
+		methods: {
+			clickItem(index) {
+				this.$emit('clickItem', index)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.uni-swiper__warp {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		flex-direction: column;
+		position: relative;
+		overflow: hidden;
+	}
+
+	.uni-swiper__dots-box {
+		position: absolute;
+		bottom: 10px;
+		left: 0;
+		right: 0;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.uni-swiper__dots-item {
+		width: 8px;
+		border-radius: 100px;
+		margin-left: 6px;
+		background-color: rgba(0, 0, 0, 0.4);
+		/* #ifndef APP-NVUE */
+		cursor: pointer;
+		/* #endif */
+		/* #ifdef H5 */
+		// border-width: 5px 0;
+		// border-style: solid;
+		// border-color: transparent;
+		// background-clip: padding-box;
+		/* #endif */
+		// transition: width 0.2s linear;  不要取消注释,不然会不能变色
+	}
+
+	.uni-swiper__dots-item:first-child {
+		margin: 0;
+	}
+
+	.uni-swiper__dots-default {
+		border-radius: 100px;
+	}
+
+	.uni-swiper__dots-long {
+		border-radius: 50px;
+	}
+
+	.uni-swiper__dots-bar {
+		border-radius: 50px;
+	}
+
+	.uni-swiper__dots-nav {
+		bottom: 0px;
+		// height: 26px;
+		padding: 8px 0;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex: 1;
+		flex-direction: row;
+		justify-content: flex-start;
+		align-items: center;
+		background-color: rgba(0, 0, 0, 0.2);
+	}
+
+	.uni-swiper__dots-nav-item {
+		/* overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap; */
+		font-size: 14px;
+		color: #fff;
+		margin: 0 15px;
+	}
+
+	.uni-swiper__dots-indexes {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		// flex: 1;
+		justify-content: center;
+		align-items: center;
+	}
+
+	.uni-swiper__dots-indexes-text {
+		color: #fff;
+		font-size: 12px;
+		line-height: 14px;
+	}
+</style>

+ 87 - 0
uni_modules/uni-swiper-dot/package.json

@@ -0,0 +1,87 @@
+{
+  "id": "uni-swiper-dot",
+  "displayName": "uni-swiper-dot 轮播图指示点",
+  "version": "1.2.0",
+  "description": "自定义轮播图指示点组件",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "轮播图指示点",
+    "dot",
+    "swiper"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": ["uni-scss"],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        },
+        "Vue": {
+            "vue2": "y",
+            "vue3": "y"
+        }
+      }
+    }
+  }
+}

+ 11 - 0
uni_modules/uni-swiper-dot/readme.md

@@ -0,0 +1,11 @@
+
+
+## SwiperDot 轮播图指示点
+> **组件名:uni-swiper-dot**
+> 代码块: `uSwiperDot`
+
+
+自定义轮播图指示点
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-swiper-dot)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 

+ 2 - 2
util/api.js

@@ -1,6 +1,6 @@
-const BASE_URL = "https://chtech.ncjti.edu.cn/hotelReservation"
+// const BASE_URL = "https://chtech.ncjti.edu.cn/hotelReservation"
 // const BASE_URL = "http://101.42.162.31:8088"
-// const BASE_URL = "https://chtech.ncjti.edu.cn/homestay"
+const BASE_URL = "https://chtech.ncjti.edu.cn/homestay"
 // const BASE_URL = "http://192.168.161.224:8088"
 export const myRequest = (options) => {
 	uni.showLoading({

+ 7 - 0
util/commonFunction.js

@@ -0,0 +1,7 @@
+// 提示开发中弹窗函数
+export const showTest = () => {
+	uni.showToast({
+		title: "功能开发中",
+		icon: 'none'
+	})
+}