Bläddra i källkod

Merge branch 'master' of http://git.ringzle.com:3000/htcwl/hotelHomestayWx

2912631854@qq.com 7 månader sedan
förälder
incheckning
c5cf2bf532

+ 84 - 62
components/Tabbares/index.vue

@@ -1,63 +1,85 @@
-<template>
-	<view>
-		<u-tabbar :value="tabbarValues" @change="name => tabbarValues = name" :fixed="true" :placeholder="true"
-			:safeAreaInsetBottom="true" :border="false">
-			<u-tabbar-item :text="item.text" v-for="(item,index) in list" :key="index" @click="changeTabbars">
-				<image class="u-page__item__slot-icon" slot="active-icon" :src="item.activeImg"></image>
-				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="item.inactiveImg"></image>
-			</u-tabbar-item>
-		</u-tabbar>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			tabbarid: 0
-		},
-		data() {
-			return {
-				tabbarValues: 0,
-				list: [{
-						activeImg: 'https://i.ringzle.com/file/20240106/57895bbc5414416ea5de2a537ed23dc3.png',
-						inactiveImg: 'https://i.ringzle.com/file/20240106/29bd09ef7eb748f1820c335f86f74c61.png',
-						text: '首页',
-						paths: '/pagesHouse/home/index'
-					},
-					{
-						activeImg: 'https://i.ringzle.com/file/20240106/584d0a4108c44fa5bc566d0d0082e07d.png',
-						inactiveImg: 'https://i.ringzle.com/file/20240106/9561cd3843694891998a34ed41be0ec8.png',
-						text: '扫码核验',
-						paths: '/pagesHouse/Verification/index'
-					},
-					{
-						activeImg: 'https://i.ringzle.com/file/20240106/daf6362d4d6745c29501cf30a4d99bc2.png',
-						inactiveImg: 'https://i.ringzle.com/file/20240106/8c1f9fc0b5604ef7b966d98f2ffb1d2e.png',
-						text: '我的',
-						paths: '/pagesHouse/Mine/index'
-					}
-				]
-			}
-		},
-		mounted() {
-			this.tabbarValues = this.tabbarid;
-		},
-		methods: {
-			changeTabbars(e) {
-				console.log(this.list[e].paths, '000');
-				this.tabbarValues = e;
-				uni.reLaunch({
-					url: this.list[e].paths
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="less">
-	/deep/.u-page__item__slot-icon {
-		width: 40rpx;
-		height: 40rpx;
-		margin: 8rpx 0 4rpx;
-	}
+<template>
+	<view>
+		<u-tabbar :value="tabbarValues" @change="name => tabbarValues = name" :fixed="true" :placeholder="true"
+			:safeAreaInsetBottom="true" :border="false">
+			<u-tabbar-item :text="item.text" v-for="(item,index) in list" :key="index"
+				@click="changeTabbars(item,index)">
+				<image class="u-page__item__slot-icon" slot="active-icon" :src="item.activeImg"></image>
+				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="item.inactiveImg"></image>
+			</u-tabbar-item>
+		</u-tabbar>
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			tabbarid: 0
+		},
+		data() {
+			return {
+				tabbarValues: 0,
+				list: [{
+						activeImg: 'https://i.ringzle.com/file/20240106/57895bbc5414416ea5de2a537ed23dc3.png',
+						inactiveImg: 'https://i.ringzle.com/file/20240106/29bd09ef7eb748f1820c335f86f74c61.png',
+						text: '首页',
+						paths: '/pagesHouse/home/index'
+					},
+					{
+						activeImg: 'https://i.ringzle.com/file/20240106/584d0a4108c44fa5bc566d0d0082e07d.png',
+						inactiveImg: 'https://i.ringzle.com/file/20240106/9561cd3843694891998a34ed41be0ec8.png',
+						text: '扫码核验',
+						paths: '/pagesHouse/Verification/index'
+					},
+					{
+						activeImg: 'https://i.ringzle.com/file/20240106/daf6362d4d6745c29501cf30a4d99bc2.png',
+						inactiveImg: 'https://i.ringzle.com/file/20240106/8c1f9fc0b5604ef7b966d98f2ffb1d2e.png',
+						text: '我的',
+						paths: '/pagesHouse/Mine/index'
+					}
+				]
+			}
+		},
+		mounted() {
+			this.tabbarValues = this.tabbarid;
+		},
+		methods: {
+			changeTabbars(e, i) {
+				console.log(e, i, '000');
+				if (i == 1) {
+					console.log('111111111111111111', )
+					if (uni.getStorageSync('merchantType') == 4) {
+					//	Verification/ems
+						uni.navigateTo({
+							url: "/pagesHouse/Verification/ems"		
+						});
+						
+					} else {
+						this.tabbarValues = i;
+						uni.reLaunch({
+							url: this.list[i].paths
+						})
+					}
+
+				} else {
+					this.tabbarValues = i;
+					uni.reLaunch({
+						url: this.list[i].paths
+					})
+				}
+				// this.tabbarValues = i;
+				// uni.reLaunch({
+				// 	url: this.list[i].paths
+				// })
+			}
+		}
+	}
+</script>
+
+<style lang="less">
+	/deep/.u-page__item__slot-icon {
+		width: 40rpx;
+		height: 40rpx;
+		margin: 8rpx 0 4rpx;
+	}
 </style>

+ 1 - 1
components/uNavBar/index.vue

@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<view style="background-color: #fff;">
 	<u-navbar :title="title" :bgColor="bgColor" :titleStyle="titleStyle">
 		<view class="u-nav-slot" slot="left" style="display: flex;">
 			<u-icon v-if="showIcon" name="arrow-left" size="44" :color="leftIconColor" @tap="toBack(backUrl)"></u-icon>

+ 104 - 0
components/uNavBar1/index.vue

@@ -0,0 +1,104 @@
+<template>
+	<u-navbar class="nav" :title="title" :leftIconSize="36" bgColor="#007A69" leftIconColor="#fff"
+		:titleStyle="titleStyle">
+		<view class="u-nav-slot" slot="left">
+			<u-icon name="arrow-left" size="44" color='#fff' @tap="toBack(backUrl)"></u-icon>
+		<!-- 	<u-line v-if="showHome" direction="column" color='#fff' :hairline="false" length="0"
+				margin="0 15rpx"></u-line>
+			<u-icon v-if="showHome" name="home" color='#fff' size="48" @tap="toHome"></u-icon> -->
+		</view>
+	</u-navbar>
+</template>
+
+<script>
+	export default {
+		options: {
+			styleIsolation: 'shared'
+		},
+		props: {
+			title: {
+				typeof: String,
+				default: ''
+			},
+			showHome: {
+				typeof: Boolean,
+				default: true
+			},
+			backUrl: {
+				typeof: String,
+				default: ''
+			}
+		},
+		data() {
+			return {
+				titleStyle: {
+					fontSize: '36rpx',
+					fontWeight: "bold",
+					color: "#fff"
+				},
+				tabUrls: [
+					'/pages/index/index',
+					'/pages/touristMap/index',
+					'/pages/oneCodePass/index',
+					'/pages/service/index',
+					'/pages/my/index'
+				]
+			}
+		},
+		methods: {
+			toBack(url) {
+				console.log(url, 'url');
+				if (!url) {
+					let canNavBack = getCurrentPages();
+					if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+					else uni.redirectTo({
+						url
+					});
+				} else {
+					if (this.tabUrls.find(u => u == url)) uni.reLaunch({
+						url
+					});
+					else uni.redirectTo({
+						url
+					});
+				}
+			},
+			toHome() {
+				uni.reLaunch({
+					url: '/pages/index/index'
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	::v-deep .u-nav-slot {
+		display: flex;
+		padding: 8rpx 16rpx;
+		width: 150rpx;
+		background-color: rgba(0, 0, 0, 0.2);
+		border-radius: 30rpx;
+		color: #fff;
+	}
+
+
+	.nav {
+		color: #fff;
+		background-color: transparent;
+	}
+
+	.u-navbar__content {
+		color: #fff !important;
+		background-color: transparent !important;
+	}
+
+	.u-status-bar {
+		color: #fff !important;
+		background-color: transparent !important;
+	}
+
+	.u-navbar__content__title {
+		color: #fff !important;
+	}
+</style>

+ 104 - 0
components/uNavBar1/index2.vue

@@ -0,0 +1,104 @@
+<template>
+	<u-navbar class="nav" :title="title" :leftIconSize="36" bgColor="#111" leftIconColor="#111"
+		:titleStyle="titleStyle">
+		<view class="u-nav-slot" slot="left">
+			<u-icon name="arrow-left" size="44" color='#111' @tap="toBack(backUrl)"></u-icon>
+			<u-line v-if="showHome" direction="column" color='#111' :hairline="false" length="0"
+				margin="0 15rpx"></u-line>
+			<u-icon v-if="showHome" name="home" color='#111' size="48" @tap="toHome"></u-icon>
+		</view>
+	</u-navbar>
+</template>
+
+<script>
+	export default {
+		options: {
+			styleIsolation: 'shared'
+		},
+		props: {
+			title: {
+				typeof: String,
+				default: ''
+			},
+			showHome: {
+				typeof: Boolean,
+				default: true
+			},
+			backUrl: {
+				typeof: String,
+				default: ''
+			}
+		},
+		data() {
+			return {
+				titleStyle: {
+					fontSize: '36rpx',
+					fontWeight: "bold",
+					color: "#111111"
+				},
+				tabUrls: [
+					'/pages/index/index',
+					'/pages/touristMap/index',
+					'/pages/oneCodePass/index',
+					'/pages/service/index',
+					'/pages/my/index'
+				]
+			}
+		},
+		methods: {
+			toBack(url) {
+				console.log(url, 'url');
+				if (!url) {
+					let canNavBack = getCurrentPages();
+					if (canNavBack && canNavBack.length > 1) uni.navigateBack();
+
+					else uni.navigateBack({
+						url
+					});
+				} else {
+					if (this.tabUrls.find(u => u == url)) uni.navigateBack({
+						url
+					});
+					else uni.navigateBack({
+						url
+					});
+				}
+			},
+			toHome() {
+				uni.reLaunch({
+					url: '/pages/index/index'
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	::v-deep .u-nav-slot {
+		display: flex;
+		padding: 8rpx 16rpx;
+		width: 150rpx;
+		background-color: rgba(0, 0, 0, 0.2);
+		border-radius: 30rpx;
+		color: #111 !important;
+	}
+
+	.nav {
+		color: #111;
+		background-color: transparent;
+	}
+
+	.u-navbar__content {
+		color: #111 !important;
+		background-color: transparent !important;
+	}
+
+	.u-status-bar {
+		color: #111 !important;
+		background-color: transparent !important;
+	}
+
+	.u-navbar__content__title {
+		color: #111 !important;
+	}
+</style>

+ 0 - 12
http/baseApi.js

@@ -1,12 +0,0 @@
-// const BaseApi = 'http://192.168.2.190:8080' //汪瑶
-// const BaseApi = 'http://192.168.2.205:8080' //汪辉
-// const BaseApi = 'http://192.168.2.19:8080' //李勇
-// const BaseApi = 'http://192.168.3.13:8080' //徐涛
-// const BaseApi = 'http://192.168.2.39:8080' //肖添伟
-// const BaseApi = 'http://192.168.3.6:8080' //朱壮波
-
-const BaseApi = 'https://i.ringzle.com/island-cloud-server' //测试服务器 
-
-export {
-	BaseApi
-}

+ 2 - 1
main.js

@@ -49,7 +49,8 @@ Vue.component('Tabbar', Tabbar);
 // 全局注册tabbar组件
 import Tabbares from './components/Tabbares'
 Vue.component('Tabbares', Tabbares);
-
+import customNavBar1 from './components/uNavBar1/index.vue'
+Vue.component('c-nav-bar1', customNavBar1);
 //全局分享当前页(带参数)
 import wxShare from '@/utils/wxShare.js'
 Vue.mixin(wxShare);

+ 43 - 3
pages.json

@@ -208,14 +208,53 @@
 						"enablePullDownRefresh": false,
 						"navigationStyle": "custom"
 					}
+				},
+				{
+					"path": "Verification/record",
+					"style": {
+						"navigationBarTitleText": "核销记录",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "Verification/recordCy",
+					"style": {
+						"navigationBarTitleText": "核销记录",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "Verification/success",
+					"style": {
+						"navigationBarTitleText": "核销结果",
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
+					}
 				},
 				{
-					"path": "Verification/handiwork",
+					"path": "Verification/ems",
 					"style": {
-						"navigationBarTitleText": "我要核销",
+						"navigationBarTitleText": "核销",
 						"enablePullDownRefresh": false
 						// "navigationStyle": "custom"
 					}
+				},
+				{
+					"path": "Verification/detailsewm",
+					"style": {
+						"navigationBarTitleText": "订单详情"
+						
+					}
+				},
+				{
+					"path": "Verification/handiwork",
+					"style": {
+						"navigationBarTitleText": "我要核销",
+						"enablePullDownRefresh": false
+						// "navigationStyle": "custom"
+					}
 				},
 				{
 					"path": "Verification/details",
@@ -253,7 +292,8 @@
 					"path": "Mine/ordersList/details/details",
 					"style": {
 						"navigationBarTitleText": "订单详情",
-						"enablePullDownRefresh": false
+						"enablePullDownRefresh": false,
+						"navigationStyle": "custom"
 					}
 				},
 				{

+ 301 - 95
pagesHouse/HotelMerchandise/index.vue

@@ -71,12 +71,12 @@
 					</view>
 					<view class="right-right">
 						<view class="top">
-							<text style="font-size: 30rpx; color: #333;">{{item.name}}</text>
+							<text style="font-size: 30rpx; color: #333;">{{item.name||item.goodsName}}</text>
 						</view>
 						<view class="under">
-							<view style="font-size: 24rpx; color: #777;">销量:{{item.salesVolume}}</view>
+							<view style="font-size: 24rpx; color: #777;">销量:{{item.salesVolume||item.soldNum}}</view>
 							<view style="font-size: 36rpx; color: #FF4141; font-weight: Bold; margin-top: 16rpx;">
-								¥{{item.discountPrice}}</view>
+								¥{{item.discountPrice||item.normalPrice}}</view>
 						</view>
 					</view>
 				</view>
@@ -91,9 +91,13 @@
 						<view class="" @click="gaijia(item,index)">
 							改价格
 						</view>
-						<view class="" @click="xiajia(item,index)">
+						<view v-if="canyinmeishi" class="" @click="xiajia(item,index)">
 							{{fromData.status==0?'下架':'上架'}}
 						</view>
+
+						<view v-if="!canyinmeishi" class="" @click="xiajia1(item,index)">
+							{{fromData.status==0?'上架':'下架'}}
+						</view>
 					</view>
 				</view>
 
@@ -114,9 +118,12 @@
 					</view>
 				</view>
 				<view class="right">
-					<view class="right-btn" @click="piliangxiajia">
+					<view v-if="canyinmeishi" class="right-btn" @click="piliangxiajia">
 						{{fromData.status==0?'批量下架':'批量上架'}}
 					</view>
+					<view v-if="!canyinmeishi" class="right-btn" @click="piliangxiajia">
+						{{fromData.status==0?'批量上架':'批量下架'}}
+					</view>
 					<view class="right-btn" @click="piliangshanchu">
 						批量删除
 					</view>
@@ -153,6 +160,13 @@
 		<u-modal :show="xiajiashow" :title="fromData.status==0?'下架选中的商品':'上架选中的商品'"
 			:content="fromData.status==0?'下架后商品不可在前台继续售卖,是否继续?':'上架后商品可在前台售卖,是否继续?'" showConfirmButton='true'
 			showCancelButton='true' @confirm='quedingxiajia' @cancel='quxiaoxiajia'></u-modal>
+
+<!-- 下架弹出框渔家乐 -->
+		<u-modal :show="xiajiashow1" :title="fromData.status==1?'下架选中的商品':'上架选中的商品'"
+			:content="fromData.status==1?'下架后商品不可在前台继续售卖,是否继续?':'上架后商品可在前台售卖,是否继续?'" showConfirmButton='true'
+			showCancelButton='true' @confirm='quedingxiajia' @cancel='quxiaoxiajia'></u-modal>
+
+
 		<!-- 删除弹出框 -->
 		<u-modal :show="shanchushow" title="删除选中的商品" content='删除后的商品不可在前台继续售卖,是否继续?' showConfirmButton='true'
 			showCancelButton='true' @confirm='quedingshanchu' @cancel='quxiaoshanchu'></u-modal>
@@ -185,23 +199,13 @@
 				newprice: '',
 				lsdata: {},
 				current: 0,
+				canyinmeishi: false,
 				xiajiashow: false,
+					xiajiashow1: false,
 				shanchushow: false,
-				tabList: [{
-						name: '出售中',
-						id: 0
-					},
-					{
-						name: '待上架',
-						id: 1
-					},
-				],
+				tabList: [],
 				homestayId: uni.getStorageSync('homestayId') || 0,
-				roomType: [{
-					image: 'https://i.ringzle.com/file/20240316/03eec514efd64b528c183804124961e0.png',
-					name: '4人套餐',
-					price: '126'
-				}],
+				roomType: [],
 				selectedTags: [],
 				mytotal: 0,
 				isSelect: false,
@@ -236,14 +240,45 @@
 			}
 		},
 		onLoad(option) {
-			this.getRepast(); //获取商品列表
 
 
+			console.log('111111111111111111', uni.getStorageSync('merchantType'))
 			//this.getHousekeeping();
-			// if (uni.getStorageSync('merchantType') == 4) {
-			//this.getRepast()
-			// } else {
-			// }
+			if (uni.getStorageSync('merchantType') == 4) {
+				this.canyinmeishi = true;
+				this.tabList = [{
+						name: '出售中',
+						id: 0
+					},
+					{
+						name: '待上架',
+						id: 1
+					},
+				]
+				this.getRepast(); //获取商品列表(餐饮美食)
+
+			} else {
+				this.canyinmeishi = false;
+				this.tabList = [{
+						name: '出售中',
+						id: 1
+					},
+					{
+						name: '待上架',
+						id: 0
+					},
+				]
+				this.fromData = {
+					merchantId: uni.getStorageSync('merchantId'), //商户id
+					limit: 99999,
+					page: 1,
+					sortType: '', //选择条件:1创建时间 2销量从高到低 3价格从高到低 4价格从低到高
+					status: 1, //状态:0上架1下架
+				}
+
+				this.yujialedata(); //获取商品列表(渔家乐)
+			}
+
 		},
 		methods: {
 			getHousekeeping() {
@@ -260,38 +295,106 @@
 					// })					
 				})
 			},
+
 			piliangxiajia() {
-				if (this.selectedTags.length == 0) {
-					this.$refs.uToast.show({
-						type: 'success',
-						title: '',
-						message: "请选择数据",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
-					})
+				if (uni.getStorageSync('merchantType') == 4) {
+					if (this.selectedTags.length == 0) {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "请选择数据",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+
+					} else {
+						let namesArray = this.selectedTags.map(obj => obj.id);
+						let postdata = {
+							discountPrice: 0,
+							id: namesArray,
+							status: this.fromData.status == 1 ? 0 : 1,
+						};
+						this.$api.post('/scenic/goods/batchUpDownFrame', postdata).then(res => {
+							this.$refs.uToast.show({
+								type: 'success',
+								title: '',
+								message: "成功",
+								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+							})
+							this.selectedTags = [];
+							this.Selected = false;
+							this.getRepast(); //获取商品列表
+						})
+					}
 
 				} else {
-					let namesArray = this.selectedTags.map(obj => obj.id);
-					let postdata = {
-						discountPrice: 0,
-						ids: namesArray,
-						status: this.fromData.status,
-					};
-					this.$api.post('/api/merchant/food/updateStatus', postdata).then(res => {
+					if (this.selectedTags.length == 0) {
 						this.$refs.uToast.show({
 							type: 'success',
 							title: '',
-							message: "成功",
+							message: "请选择数据",
 							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
 						})
-						this.selectedTags=[];
-						this.Selected=false;
-						this.getRepast(); //获取商品列表
-					})
+
+					} else {
+
+
+						let postdata = this.selectedTags.map((item, index, arr) => {
+							let json = {};
+							json.id = item.id;
+							json.merchantId = uni.getStorageSync('merchantId');
+							json.status = item.status == 0 ? 1 : 0;
+							return json
+						})
+						// let namesArray = this.selectedTags.map(obj => obj.id);
+						// let postdata = {
+						// 	id: namesArray,
+						// 	status: this.fromData.status,
+						// };
+						this.$api.post('/scenic/goods/batchUpDownFrame', postdata).then(res => {
+							this.$refs.uToast.show({
+								type: 'success',
+								title: '',
+								message: "成功",
+								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+							})
+							this.selectedTags = [];
+							this.Selected = false;
+							this.yujialedata(); //获取商品列表(渔家乐)
+						})
+					}
 				}
 			},
 
 			piliangshanchu() {
-				if (this.selectedTags.length == 0) {
+				if (uni.getStorageSync('merchantType') == 4) {
+
+					if (this.selectedTags.length == 0) {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "请选择数据",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+
+					} else {
+						let namesArray = this.selectedTags.map(obj => obj.id);
+
+						//status: this.fromData.status,
+						this.$api.del('/api/merchant/food/delProduct', namesArray).then(res => {
+							this.$refs.uToast.show({
+								type: 'success',
+								title: '',
+								message: "成功",
+								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+							})
+							this.selectedTags = [];
+							this.Selected = false;
+							this.getRepast(); //获取商品列表
+						})
+					}
+
+				} else {
+if (this.selectedTags.length == 0) {
 					this.$refs.uToast.show({
 						type: 'success',
 						title: '',
@@ -301,20 +404,20 @@
 
 				} else {
 					let namesArray = this.selectedTags.map(obj => obj.id);
-					
-						//status: this.fromData.status,
-					this.$api.del('/api/merchant/food/delProduct', namesArray).then(res => {
+
+					//status: this.fromData.status,
+					this.$api.del('/scenic/goods', namesArray).then(res => {
 						this.$refs.uToast.show({
 							type: 'success',
 							title: '',
 							message: "成功",
 							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
 						})
-						this.selectedTags=[];
-						this.Selected=false;
-						this.getRepast(); //获取商品列表
-					})  
-					
+						this.selectedTags = [];
+						this.Selected = false;
+						this.yujialedata(); //获取商品列表(渔家乐)
+					})
+				}	
 				}
 			},
 			shanchu(e, i) {
@@ -323,19 +426,39 @@
 				this.shanchushow = true;
 			},
 			quedingshanchu() {
-				let postdata = [this.lsdata.id];
+				if (uni.getStorageSync('merchantType') == 4) {
+					//(餐饮美食)
+					let postdata = [this.lsdata.id];
 					//status: this.fromData.status,
-				console.log('postdata', postdata)
-				this.$api.del('/api/merchant/food/delProduct', postdata).then(res => {
-					this.$refs.uToast.show({
-						type: 'success',
-						title: '',
-						message: "成功",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+					console.log('postdata', postdata)
+					this.$api.del('/api/merchant/food/delProduct', postdata).then(res => {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "成功",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+						this.quxiaoshanchu();
+						this.getRepast(); //获取商品列表
+					})
+
+				} else {
+					//(渔家乐)
+					let postdata = [this.lsdata.id];
+					//status: this.fromData.status,
+					console.log('postdata', postdata)
+					this.$api.del('/scenic/goods', postdata).then(res => {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "成功",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+						this.quxiaoshanchu();
+						this.yujialedata(); //获取商品列表(渔家乐)
 					})
-					this.quxiaoshanchu();
-					this.getRepast(); //获取商品列表
-				})  
+
+				}
 			},
 			quxiaoshanchu() {
 				// console.log('quxiaoxiajia',this.lsdata)
@@ -355,53 +478,120 @@
 				this.lsdata = {};
 			},
 			quedingjiae() {
-				console.log('111111111111111111', this.newprice)
-				let postdata = {
-					discountPrice: this.newprice,
-					ids: [this.lsdata.id],
-					status: this.fromData.status,
-				};
-				console.log('postdata', postdata)
-				this.$api.post('/api/merchant/food/updateDiscountPrice', postdata).then(res => {
-					this.$refs.uToast.show({
-						type: 'success',
-						title: '',
-						message: "成功",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+				if (uni.getStorageSync('merchantType') == 4) {
+					//获取商品列表(餐饮美食)
+					//console.log('111111111111111111', this.newprice)
+					let postdata = {
+						discountPrice: this.newprice,
+						ids: [this.lsdata.id],
+						status: this.fromData.status,
+					};
+					//console.log('postdata', postdata)
+					this.$api.post('/api/merchant/food/updateDiscountPrice', postdata).then(res => {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "成功",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+						this.closegaijia();
+						this.getRepast(); //获取商品列表
 					})
-					this.closegaijia();
-					this.getRepast(); //获取商品列表
-				})
+
+				} else {
+					//获取商品列表(渔家乐)
+					if (this.lsdata.goodsType == 1) {
+						let postdata = {
+							discountPrice: this.newprice,
+							id: this.lsdata.id,
+							status: this.fromData.status,
+						};
+						console.log('postdata', postdata)
+						this.$api.put('/scenic/goods', postdata).then(res => {
+							this.$refs.uToast.show({
+								type: 'success',
+								title: '',
+								message: "成功",
+								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+							})
+							this.closegaijia();
+							this.yujialedata(); //获取商品列表(渔家乐)
+						})
+					} else {
+						let postdata = {
+							normalPrice: this.newprice,
+							id: this.lsdata.id,
+							status: this.fromData.status,
+						};
+						console.log('postdata', postdata)
+						this.$api.put('/scenic/goods', postdata).then(res => {
+							this.$refs.uToast.show({
+								type: 'success',
+								title: '',
+								message: "成功",
+								iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+							})
+							this.closegaijia();
+							this.yujialedata(); //获取商品列表(渔家乐)
+						})
+					}
+
+				}
 			},
 			opengaijia() {},
 
+
+xiajia1(e, i) {
+				console.log('111111111111111111', e, i)
+				this.lsdata = e;
+				this.xiajiashow1 = true;
+			},
 			xiajia(e, i) {
 				console.log('111111111111111111', e, i)
 				this.lsdata = e;
 				this.xiajiashow = true;
 			},
 			quedingxiajia() {
-				let postdata = {
-					discountPrice: this.lsdata.discountPrice,
-					ids: [this.lsdata.id],
-					status: this.fromData.status,
-				};
-				this.$api.post('/api/merchant/food/updateStatus', postdata).then(res => {
-					this.$refs.uToast.show({
-						type: 'success',
-						title: '',
-						message: "下架成功",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+				if (uni.getStorageSync('merchantType') == 4) {
+					//获取商品列表(餐饮美食)
+					let postdata = {
+						discountPrice: this.lsdata.discountPrice,
+						ids: [this.lsdata.id],
+						status: this.fromData.status,
+					};
+					this.$api.post('/api/merchant/food/updateStatus', postdata).then(res => {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "下架成功",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+						this.quxiaoxiajia();
+						this.getRepast(); //获取商品列表
 					})
-					this.quxiaoxiajia();
-					this.getRepast(); //获取商品列表
-				})
-
+				} else {
+					//获取商品列表(渔家乐)
+					let postdata = {
+						id: this.lsdata.id,
+						status: this.fromData.status == 1 ? 0 : 1,
+					};
+					this.$api.put('/scenic/goods', postdata).then(res => {
+						this.$refs.uToast.show({
+							type: 'success',
+							title: '',
+							message: "下架成功",
+							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
+						})
+						this.quxiaoxiajia();
+						this.yujialedata();
+					})
+				}
 			},
 			quxiaoxiajia() {
 				// console.log('quxiaoxiajia',this.lsdata)
 				this.lsdata = {};
 				this.xiajiashow = false;
+				this.xiajiashow1 = false;
 			},
 
 			selectPerson(e, i) {
@@ -413,6 +603,13 @@
 				console.log(' this.selectedTags', this.selectedTags)
 
 			},
+			yujialedata() {
+				this.$api.get('/scenic/goods/page', this.fromData).then(res => {
+					console.log(res.data.data.list);
+					this.roomType = res.data.data.list;
+					this.mytotal = res.data.data.total;
+				})
+			},
 
 			getRepast() {
 				this.$api.get('/api/merchant/food/product/page', this.fromData).then(res => {
@@ -436,11 +633,20 @@
 				this.areaShow = !this.areaShow
 			},
 			changeTab1(e, i) {
+				this.roomType = [];
 				this.selectedTags = [];
 				this.current = i;
 				this.fromData.status = e.id;
 				this.fromData.page = 1;
-				this.getRepast();
+
+				if (uni.getStorageSync('merchantType') == 4) {
+
+					this.getRepast(); //获取商品列表(餐饮美食)
+
+				} else {
+
+					this.yujialedata(); //获取商品列表(渔家乐)
+				}
 			},
 			// 批量显示
 			showList() {

+ 2 - 0
pagesHouse/Mine/Businesses/Businesses.vue

@@ -502,6 +502,8 @@
 		font-weight: bold;
 		font-size: 28rpx;
 		color: #FFFFFF;
+		height:88rpx;
+		line-height: 88rpx;
 	}
 
 	.from-content {

+ 3 - 3
pagesHouse/Mine/index.vue

@@ -62,10 +62,10 @@
 						<view class="demo-layout bg-purple-light">
 							<view class="one2">
 								<!-- {{myList.islandName}} -->
-								{{dto.name}}
+								{{dto.companyName}}
 							</view>
 							<view class="two2">
-								{{dto.address}}
+								{{dto.areaDetail}}
 							</view>
 						</view>
 					</u-col>
@@ -131,7 +131,7 @@
 
 			},
 			getInfo() {
-				this.$api.get('/merchant/merchantFisherman/home/' + uni.getStorageSync('merchantId')).then(res => {
+				this.$api.get('/api/merchant/food/merchant/' + uni.getStorageSync('merchantId')).then(res => {
 					console.log(res)
 					if (res.data.code == 0) {
 						this.dto = res.data.data;

+ 317 - 191
pagesHouse/Mine/ordersList/details/details.vue

@@ -1,112 +1,150 @@
 <template>
-	<!-- <view class="page" :style="{'min-height':h+'px'}"> -->
-	<view class="page">
-		<view class="" style="height: 100%; padding-bottom: 260rpx;">
+	<view class="page" :style="{'min-height':h+'px','padding-top':(mt)+'px'}">
+		<c-nav-bar1 title="订单详情"></c-nav-bar1>
+		<view class="bg"></view>
+		<view class="content">
 			<view class="head">
-				<text v-if='list.state==0' class="orange">待支付</text>
-				<text v-else-if='list.state==1' class="red">已支付</text>
-				<text v-else-if='list.state==-1' class="red">已取消</text>
-				<text v-else-if='list.state==-2' class="green">退款中</text>
-				<text v-else-if='list.state==3' class="green">已完成</text>
-				<text v-else-if='list.state==-3' class="green">已退款</text>
-				<text v-else-if='list.state==4' class="red">待使用</text>
-				<text v-else-if='list.state==5' class="green">已预约</text>
-				<text v-else :class="statusClass[list.state]">{{status[list.state]}}</text>
-				<!-- <text>¥</text> -->
-				<!-- <text>{{list.totalPrice}}</text> -->
+				<text v-if="merchantType==10">{{FishJialeOcfg[infoMation.status]}}</text>
+				<text v-esle>{{FishJialeOcfg2[infoMation.orderStatus]}}</text>
+				<view class="time" v-if="merchantType==4">
+					有效期:{{infoMation.activityStartTime&&infoMation.activityStartTime.substring(0,10)}}至{{infoMation.activityEndTime&&infoMation.activityEndTime.substring(0,10)}}
+				</view>
 			</view>
-
 			<view class="ticketInfo">
-				<view class="hander-titles">
-					<view class="image">
-						<image src="https://i.ringzle.com/file/20240225/0db2e93d80054b459c6e40466fa852c0.png" mode="">
-						</image>
-					</view>
+				<!-- <view class="hander-titles">
 					<view class="names">
 						{{list.fishermanName}}
 					</view>
 					<view class="rights">
 						<u-icon name="arrow-right"></u-icon>
 					</view>
+				</view> -->
+				<view v-if="merchantType==10" class="dateAndType">
+					<u-icon name="calendar" size="40" color="#272636" style="display: flex;align-items: center;"></u-icon>
+					<text>{{infoMation.payTime}}出发/{{infoMation.orderType==3?'拼船':'包船'}}</text>
 				</view>
 				<view class="ticketInfo-hander">
 					<view class="image">
-						<image :src="list.picList[0]" mode="aspectFill"></image>
+						<image :src="infoMation.coverImg" mode="aspectFill"></image>
 					</view>
-					<view class="" style="width: 100%; display: flex; flex-wrap: wrap; justify-content: space-between;">
-						<view class="name" style="display: flex; justify-content: space-between;">
-							<view class="">
-								{{list.thingName}}
-							</view>
-							<view class="" style="display: flex;align-items: center;;" @click="cardBtn(list)">
-								<!-- <text style="color: #01B9F9; font-size: 26rpx ; font-weight: 500;">
-							</text><u-icon name="arrow-right" color="#808080" size="26rpx"></u-icon> -->
-								¥{{list.totalPrice}}
-							</view>
+					<view class="right">
+						<view class="name">
+							{{infoMation.goodsName}}
 						</view>
-						<view class="date">
-							<view class="">
-								价格:<text>¥{{list.totalPrice}}/人</text>
-							</view>
-							<view class="">
-								数量:<text>X{{list.num}}</text>
-							</view>
+						<view class="tip">
+							<text v-if='infoMation.orderType==3'>价格:¥{{infoMation.avePrice}}/人</text>
+							<text v-if='infoMation.orderType==2'>价格:¥{{infoMation.totalPrice}}/艘</text>
+							<text v-if='infoMation.orderType==1'>价格:¥{{infoMation.discountPrice}}/艘</text>
+						</view>
+						<view class="price">
+							<text>数量:</text>X<text>{{infoMation.detailDto.length}}</text>
 						</view>
-
 					</view>
 				</view>
-
-				<view class="ticketInfo-demo">
-
+			</view>
+			<view class="foods" v-if="merchantType==4">
+				<view class="tit">
+					套餐明细
+				</view>
+				<view class="li" v-for="(item,inex) in infoMation.productsDetail" :key="index">
+					<text>{{item.name}}</text>
+					<text>{{item.number}}</text>
+					<text>¥{{item.price}}</text>
 				</view>
 			</view>
+			<!-- 游客信息 -->
+			<view class="orderInfo yk" style="padding-bottom: 30rpx;">
+				<view class="tit">游客信息</view>
+				<u-cell :border="false" v-for="(i,index) in infoMation.detailDto">
+					<text slot="icon" class="txt">{{i.touristName}}</text>
+					>
+					<text slot="title" class="val">{{i.touristCode}}</text>
+					<text slot="right-icon">航班号:{{infoMation.boatNo||''}}</text>
+				</u-cell>
+			</view>
 			<!-- 订单信息 -->
 			<view class="orderInfo " style="padding-bottom: 30rpx;">
 				<view class="tit">订单信息</view>
-
-				<u-cell :border="true">
+				<u-cell :border="false">
 					<text slot="icon" class="txt">订单编号</text>
 					>
-					<text slot="title" class="val">{{list.orderCode}}</text>
+					<text slot="title" class="val">{{infoMation.orderCode}}</text>
 					<text slot="right-icon" class="icon"
 						style="border: 1rpx solid #007A69; border-radius: 50rpx; box-sizing: border-box; color: #007A69;padding: 2rpx 10rpx; font-size: 22rpx; font-weight: Regular;"
-						@tap="copyOrderNo(list)">复制</text>
-				</u-cell>
-
-				<u-cell :border="true">
-					<text slot="icon" class="txt">下单时间</text>
-					>
-					<text slot="title" class="val">{{list.orderTime}}</text>
-				</u-cell>
-				<u-cell :border="true">
-					<text slot="icon" class="txt">联系人</text>
-					>
-					<text slot="title" class="val">{{list.userName}}</text>
-				</u-cell>
-				<u-cell :border="true">
-					<text slot="icon" class="txt">联系方式</text>
-					>
-					<text slot="title" class="val">{{list.phone}}</text>
-
-				</u-cell>
-				<u-cell :border="true">
-					<text slot="icon" class="txt">支付方式</text>
-					>
-					<text slot="title" class="val">微信支付</text>
+						@tap="copyOrderNo()">复制</text>
 				</u-cell>
+				<template v-if="merchantType==4">
+					<u-cell :border="false">
+						<text slot="icon" class="txt">付款时间</text>
+						>
+						<text slot="title" class="val">{{infoMation.orderTime}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">订单总价</text>
+						>
+						<text slot="title" class="val">{{infoMation.realityPay}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">实际付款</text>
+						>
+						<text slot="title" class="val">{{infoMation.realityPay}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">联系方式</text>
+						>
+						<text slot="title" class="val">{{infoMation.phone}}</text>
+					</u-cell>
+				</template>
+				<template v-if="merchantType==10">
+					<u-cell :border="false">
+						<text slot="icon" class="txt">下单时间</text>
+						>
+						<text slot="title" class="val">{{infoMation.orderTime}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">下单时间</text>
+						>
+						<text slot="title" class="val">{{infoMation.linkName}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">联系方式</text>
+						>
+						<text slot="title" class="val">{{infoMation.linkPhone}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">支付方式</text>
+						>
+						<text slot="title" class="val">{{infoMation.payType==1?'微信':'支付宝'}}</text>
+					</u-cell>
+					<u-cell :border="false">
+						<text slot="icon" class="txt">总计</text>
+						>
+						<text slot="title" class="val" style="color: #111">{{infoMation.totalPrice}}</text>
+					</u-cell>
+				</template>
 			</view>
 		</view>
-		<view class="btns">
-			<template v-if="list.state==4||list.state==5">
-				<view class="detail del" @tap="handleDetail(list)">
-					核销订单
+		<!-- 餐饮 -->
+		<view class="btns" v-if="merchantType==4&&infoMation.orderStatus==4">
+			<view class="detail del" @tap="hexiao2()" v-if="infoMation.orderStatus==4">
+				核销订单
+			</view>
+			<!-- <template v-else>
+				<view class="detail" @tap="Detail(list)">
+					删除订单
 				</view>
-			</template>
-			<template v-else>
+			</template> -->
+
+		</view>
+		<view class="btns" v-if="merchantType==10&&infoMation.status==1">
+			<view class="detail del" @tap="hexiao()" v-if="infoMation.status==1">
+				核销订单
+			</view>
+			<!-- <template v-else>
 				<view class="detail" @tap="Detail(list)">
 					删除订单
 				</view>
-			</template>
+			</template> -->
 
 		</view>
 	</view>
@@ -117,38 +155,88 @@
 	export default {
 		data() {
 			return {
-				h: uni.getSystemInfoSync().windowHeight,
-				mt: uni.getSystemInfoSync().statusBarHeight + 44,
+				merchantType: uni.getStorageSync('merchantType'),
+				merchantId: uni.getStorageSync('merchantId'),
+				//渔家乐
+				FishJialeOcfg: {
+					0: '待支付',
+					1: '待使用',
+					2: '拼船中',
+					3: '已使用',
+					4: '退款中',
+					5: '已退款',
+					6: '已取消',
+					7: '已完成',
+					8: '拼团失败'
+				},
+				//餐饮
+				FishJialeOcfg2: {
+					0: '待支付',
+					4: '待使用',
+					3: '已完成',
+					'-1': '已取消',
+					'-2': '退款中',
+					'-3': '已退款',
+				},
 				list: {},
-				statusClass: [
-					'',
-					'green',
-					'blue',
-					'grey',
-					'grey',
-				],
-
+				infoMation: {},
+				orderCode: '',
 			}
 		},
-		onLoad() {
-			this.list = uni.getStorageSync('list')
-			console.log(this.list);
-			// console.log(JSON.parse(option.list));
-			// this.list = JSON.parse(option.list)
-			// console.log('-----', this.list);
+		onLoad(opt) {
+			this.orderCode = opt.orderCode;
+			if (this.merchantType == 10) {
+				this.info()
+			} else {
+				this.info2()
+			}
+		},
+		filters: {
+			delArr(val) {
+				if (val) {
+					return val.split(',')[0]
+				}
 
+			}
 		},
 		methods: {
-			copyOrderNo(item) {
+			init(){
+				if (this.merchantType == 10) {
+					this.info()
+				} else {
+					this.info2()
+				}
+			},
+			//渔家乐
+			info() {
+				this.$api.get('/api/fishering/personCenterOrderDetail/' + this.orderCode).then(res => {
+					console.log(res)
+					if (res.data.code == 0) {
+						this.infoMation = res.data.data;
+					}
+				})
+			},
+			//餐饮
+			info2() {
+				this.$api.get('/api/merchant/food/queryOrderDetail', {
+					orderCode: this.orderCode
+				}).then(res => {
+					if (res.data.code == 0) {
+						this.infoMation = res.data.data;
+						this.infoMation.productsDetail = JSON.parse(res.data.data.productsDetail);
+					}
+				})
+			},
+			copyOrderNo() {
 				let that = this;
 				// #ifdef H5
-				this.$copyText(item.orderCode).then(res => {
+				this.$copyText(this.infoMation.orderCode).then(res => {
 					this.$showToast('复制成功');
 				})
 				// #endif
 				// #ifdef MP-WEIXIN
 				uni.setClipboardData({
-					data: item.orderCode,
+					data: this.infoMation.orderCode,
 					success(res) {
 						that.$showToast('复制成功');
 					},
@@ -158,31 +246,45 @@
 				})
 				// #endif
 			},
-			// 核销
-			handleDetail(item) {
-
-				uni.navigateTo({
-					url: '/pagesHouse/Verification/index'
-				})
-				// console.log(item);
-				// this.$api.post('/merchant/merchantFisherman/home/writeOffOrder', {
-				// 	writeOffCode: item.orderCode
-				// }).then(
-				// 	res => {
-				// 		console.log(res.data);
-				// 	})
+			hexiao() {
+				let that = this;
+				uni.showModal({
+					title: '提示',
+					content: '确定核销订单?',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.get('/scenic/order/orderWriteOff/'+this.infoMation.orderCode).then(res => {
+								if (res.data.code === 0) {
+									that.$showToast('订单已核销');
+									that.init();
+								} else that.$showToast(res.data.msg)
+							})
+						}
+					}
+				});
 			},
-			// 删除订单
-			toStatus() {
-				this.$refs.uToast.show({
-					type: 'success',
-					title: '',
-					message: "正在开发",
-					iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/default.png'
-				})
+			// 核销
+			hexiao2() {
+				let that = this;
+				uni.showModal({
+					title: '提示',
+					content: '确定核销订单?',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.post('/api/merchant/food/scenic/merchant/order/verifyOrderQrCode', {
+								merchantId: that.merchantId,
+								orderCode: that.infoMation.orderCode,
+								type: 4
+							}).then(res => {
+								if (res.data.code === 0) {
+									that.$showToast('订单已核销');
+									that.init();
+								} else that.$showToast(res.data.msg)
+							})
+						}
+					}
+				});
 			},
-
-
 		}
 	}
 </script>
@@ -194,13 +296,68 @@
 		box-sizing: border-box;
 	}
 
+	.bg {
+		height: 100%;
+		position: fixed;
+		z-index: 1;
+		width: 100%;
+		background-image: linear-gradient(to bottom, #007A69, #F5F8FA, #F5F8FA);
+	}
+
+	.content {
+		position: relative;
+		z-index: 99;
+	}
+
 	.page {
 		box-sizing: border-box;
 		// height: 100%;
-		background-color: #F5F8FA;
+		background-color: #007A69;
+		padding-bottom: 170rpx;
 	}
 
+	.foods {
+		padding: 0 20rpx 10rpx;
+		background: #fff;
+		border-radius: 16rpx;
+		margin: 0 20rpx 20rpx;
+
+		.tit {
+			padding-top: 54rpx;
+			font-family: PingFang-SC, PingFang-SC;
+			font-weight: bold;
+			font-size: 36rpx;
+			color: #111111;
+			line-height: 40rpx;
+			text-align: left;
+			font-style: normal;
+			margin-bottom: 36rpx;
+		}
+
+		.li {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			margin-bottom: 24rpx;
+
+			text {
+				font-size: 26rpx;
+				color: #111;
 
+				&:first-child {
+					width: 80rpx;
+				}
+
+				&:nth-child(2) {
+					color: #999;
+					text-align: right;
+					display: inline-block;
+					flex: 1;
+					margin-right: 30rpx;
+				}
+			}
+		}
+	}
 
 	.ticketInfo-demo {
 		// border-bottom: 2rpx solid #EFEFEF;
@@ -255,6 +412,9 @@
 			font-weight: Regular;
 			margin: 0 20rpx 0 30rpx;
 		}
+		&.yk{
+			.txt,.icon,.val {font-size: 30rpx;color: #333;}
+		}
 
 	}
 
@@ -262,12 +422,24 @@
 		box-sizing: border-box;
 		width: 96%;
 		margin: 0 auto 20rpx;
-		padding: 40rpx 24rpx 4rpx;
+		padding: 33rpx 24rpx;
 		border-radius: 20rpx;
 		position: relative;
 		background-color: #fff;
 		z-index: 2;
 
+		.dateAndType {
+			height: 36rpx;
+			font-family: PingFang-SC, PingFang-SC;
+			font-weight: bold;
+			font-size: 32rpx;
+			color: #333333;
+			line-height: 36rpx;
+			margin-bottom: 48rpx;
+			display: flex;
+			align-items: center;
+		}
+
 		.hander-titles {
 			display: flex;
 			height: 32rpx;
@@ -299,6 +471,7 @@
 
 			.image {
 				width: 136rpx;
+				min-width: 136rpx;
 				height: 136rpx;
 				border-radius: 12rpx;
 				margin-right: 20rpx;
@@ -313,12 +486,28 @@
 		}
 
 		.name {
-			font-size: 32rpx;
+			font-size: 30rpx;
+			line-height: 30rpx;
 			color: #333;
 			font-weight: bold;
 			width: 100%;
 		}
 
+		.tip {
+			margin: 16rpx 0 20rpx;
+			color: #777;
+		}
+
+		.price {
+			text {
+				font-size: 30rpx;
+
+				&:first-child {
+					font-size: 24rpx;
+				}
+			}
+		}
+
 		.date {
 			// padding: 20rpx 0 32rpx;
 			padding-top: 20rpx;
@@ -339,43 +528,6 @@
 
 
 
-		.topHead {
-			width: 96%;
-			margin: 0 auto;
-			background-color: #F5F8FA;
-			padding: 28rpx 0 28rpx 84rpx;
-			border-radius: 16rpx;
-			position: relative;
-
-			text {
-				position: absolute;
-				left: 0;
-				top: 0;
-				z-index: 1;
-				border-radius: 16rpx 0 0 16rpx;
-				width: 48rpx;
-				color: #fff;
-				font-size: 20rpx;
-				background-color: #484F61;
-				text-align: center;
-				height: 100%;
-				padding: 15rpx 10rpx 0;
-
-			}
-
-			.p {
-				font-size: 28rpx;
-				color: #333;
-
-				&:nth-of-type(1) {
-					font-weight: 600;
-					margin-bottom: 16rpx;
-				}
-			}
-
-
-		}
-
 		.code {
 			margin-top: 40rpx;
 			text-align: center;
@@ -413,46 +565,20 @@
 
 	.head {
 		box-sizing: border-box;
-		padding: 34rpx 24rpx 40rpx;
-		// display: flex;
-		// position: relative;
-		// z-index: 2;
+		padding: 37rpx 40rpx 30rpx;
+		color: #fff;
 
 		text {
-			color: #fff;
-
-			&:nth-child(1),
-			&:nth-child(3) {
-				font-size: 44rpx;
-				font-weight: Bold;
-			}
-
-			&:nth-child(2) {
-				flex: 1;
-				text-align: right;
-				width: 100px;
-				font-size: 36rpx;
-			}
-		}
 
-		.red {
-			color: indianred;
-		}
-
-		.green {
-			color: #111111;
-		}
+			font-size: 44rpx;
+			font-weight: Bold;
 
-		.blue {
-			color: #1372FF;
-		}
 
-		.grey {
-			color: #4C5F76;
 		}
 
-		.orange {
-			color: #FF9100;
+		.time {
+			margin-top: 18rpx;
+			font-size: 28rpx;
 		}
 	}
 
@@ -464,7 +590,7 @@
 		width: 100%;
 		position: fixed;
 		bottom: 0;
-		z-index: 4;
+		z-index: 999;
 		left: 0;
 		display: flex;
 		padding: 32rpx 32rpx 50rpx;

+ 252 - 219
pagesHouse/Mine/ordersList/index.vue

@@ -3,53 +3,75 @@
 		<c-nav-bar title="我的订单"></c-nav-bar>
 		<view class="tb">
 			<view class="tabs">
-				<view v-for="(item,index) in tabList" :key="index" @tap="changeTab1(index)">
+				<view v-for="(item,index) in tabList" :key="index" @tap="changeStatus(index)">
 					<text :class="index==current?'active':''">{{item.name}}</text>
 				</view>
 			</view>
 		</view>
 		<view class="mainContain">
 			<view v-if="dataList.length>0" class="card" v-for="item,index  in dataList" :key="index">
-				<view class="header">
-					<span style="font-weight: 700;">下单时间:{{item.orderTime}}</span>
-					<text v-if='item.state==0' class="orange">待支付</text>
-					<text v-else-if='item.state==1' class="red">已支付</text>
-					<text v-else-if='item.state==-1' class="red">已取消</text>
-					<text v-else-if='item.state==-2' class="green">退款中</text>
-					<text v-else-if='item.state==3' class="green">已完成</text>
-					<text v-else-if='item.state==-3' class="green">已退款</text>
-					<text v-else-if='item.state==4' class="red">待使用</text>
-					<text v-else-if='item.state==5' class="green">已预约</text>
-					<text v-else :class="statusClass[item.state]">{{status[item.state]}}</text>
-				</view>
-				<view class="mainContent" @click="navTo(item)">
-					<image class="image" :src="item.picList[0]" mode="aspectFill"></image>
-					<view class="middle">
-						<view class="title" style="display: flex; justify-content: space-between;">
-							<span> {{item.thingName}}</span>
-							<span> ¥{{item.totalPrice}}</span>
-						</view>
-						<span class='info' style="display: flex; justify-content: space-between;">
-							<span>
-								<span style="margin-right: 15rpx;">{{item.userName}}</span>
-								<span>{{item.phone}}</span>
+				<template v-if="merchantType==10">
+					<view class="header">
+						<text style="font-weight: bold;">{{item.payTime}}出发/{{item.orderType==3?'拼船':'包船'}}</text>
+						<text :class="oscConfig[item.status]||'textDcx'">{{FishJialeOcfg[item.status]}}</text>
+					</view>
+					<view class="mainContent" @tap="navTo(item)">
+						<image class="image" :src="item.coverImg||'../../../static/orderEg.png'" mode="aspectFill">
+						</image>
+						<view class="middle">
+							<view class="title" style="display: flex; justify-content: space-between;">
+								<span> {{item.goodsNameAndType}}</span>
+								<span> ¥{{item.totalPrice}}</span>
+							</view>
+							<span class='info' style="display: flex; justify-content: space-between;">
+								<span>
+									<span style="margin-right: 15rpx;">{{item.linkName}}</span>
+									<span>{{item.linkPhone}}</span>
+								</span>
+								<span>x{{item.num}}</span>
 							</span>
-							<span>x{{item.num}}</span>
-						</span>
+						</view>
 					</view>
-				</view>
-				<view class="bottom" @click="handleDetail(item)" v-if="item.state==4||item.state==5">
-					<view class="detail del">
-						核销订单
+					<!-- 待使用 -->
+					<view class="bottom" @click="hexiao(item)" v-if="item.status==1">
+						<view class="detail s1">
+							核销订单
+						</view>
 					</view>
-				</view>
-				<view class="bottom" @click="Detail(item)" v-else>
+					<!-- <view class="bottom" @click="Detail(item)" v-else>
 					<view class="detail">
 						删除订单
 					</view>
-				</view>
-
-
+				</view> -->
+				</template>
+				<template v-if="merchantType==4">
+					<view class="header">
+						<text style="font-weight: bold;">{{item.merchantName}}</text>
+						<text :class="oscConfig2[item.orderStatus]||'textDcx'">{{FishJialeOcfg2[item.orderStatus]}}</text>
+					</view>
+					<view class="mainContent" @tap="navTo(item)">
+						<image class="image" :src="item.productImg||'../../../static/orderEg.png'" mode="aspectFill">
+						</image>
+						<view class="middle">
+							<view class="title" style="display: flex; justify-content: space-between;">
+								<span> {{item.productName}}</span>
+								<span> ¥{{item.realityPay}}</span>
+							</view>
+							<span class='info' style="display: flex; justify-content: space-between;">
+								<span>
+									<span style="margin-right: 15rpx;">{{item.activityStartTime||''}}{{item.activityEndTime}}</span>
+								</span>
+								<span>x{{item.num}}</span>
+							</span>
+						</view>
+					</view>
+					<!-- 待使用 -->
+					<view class="bottom" @click="hexiao2(item)" v-if="item.state==1">
+						<view class="detail s1">
+							核销订单
+						</view>
+					</view>
+				</template>
 			</view>
 			<view class="nodata" v-if='dataList.length==0'>
 				<NoData></NoData>
@@ -68,30 +90,55 @@
 		},
 		data() {
 			return {
-				h: uni.getSystemInfoSync().windowHeight,
-				mt: uni.getSystemInfoSync().statusBarHeight + 44,
+				//渔家乐
+				FishJialeOcfg: {
+					0: '待支付',
+					1: '待使用',
+					2: '拼船中',
+					3: '已使用',
+					4: '退款中',
+					5: '已退款',
+					6: '已取消',
+					7: '已完成',
+					8: '拼团失败'
+				},
+				//餐饮
+				FishJialeOcfg2: {
+					0: '待支付',
+					4: '待使用',
+					3: '已完成',
+					'-1': '已取消',
+					'-2': '退款中',
+					'-3': '已退款',
+				},
+				oscConfig2: {
+					0: 'textDzf',
+					4: 'textDcx',
+					3: 'textQx',
+					'-1': 'textQx',
+					'-2': 'textQx',
+					'-3': 'textQx',
+				},
+				oscConfig: {
+					0: 'textDzf',
+					1: 'textDcx',
+					2: 'textDcx',
+					3: 'textQx',
+					4: 'textQx',
+					5: 'textQx',
+					6: 'textQx',
+					7: 'textQx',
+					8: 'textQx',
+				},
+				disScroll: false,
+				pageIndex: 1,
+				pageCount: 50,
 				current: 0,
-				mysearch: '',
 				dataList: [],
-				limit: 10,
-				page: 1,
-				state: '',
-				fishermanId: uni.getStorageSync('merchantId'),
-				statusClass: [
-					'',
-					'green',
-					'blue',
-					'grey',
-					'grey',
-				],
-				status: [
-					'',
-					'已预订',
-					'已入住',
-					'已退房',
-					'已取消',
-				],
-				// mt: uni.getSystemInfoSync().statusBarHeight + 44,
+				status: '',
+				state:'',
+				merchantId: uni.getStorageSync('merchantId'),
+				merchantType: uni.getStorageSync('merchantType'),
 				tabList: [{
 						name: '全部订单'
 					},
@@ -111,144 +158,168 @@
 			}
 		},
 		onLoad(option) {
-			console.log(option.type);
-			if (option.type) {
-				console.log('1111');
-				const type = parseInt(option.type)
-
-				if (type == 0) {
-					this.changeTab1(1)
-				} else if (type == 4) {
-					this.changeTab1(2)
-				} else if (type == 3) {
-					this.changeTab1(3)
-				} else if (type == -3) {
-					this.changeTab1(4)
+			if (option.typeTxt) {
+				const typeTxt = option.typeTxt;
+				//其他页面入参
+				if (typeTxt =='待付款') {
+					this.changeStatus(1)
+				} else if (typeTxt =='待使用') {
+					this.changeStatus(2)
+				} else if (typeTxt =='已完成') {
+					this.changeStatus(3)
+				} else if (typeTxt == '退款售后') {
+					this.changeStatus(4)
+				}else if (typeTxt == '已取消') {
+					this.changeStatus(0)
 				}
 			} else {
-				console.log('2222');
-				this.getOrderList()
+				if(this.merchantType==10){
+					this.getOrderList()
+				}else{
+					this.getOrderList2()
+				}
+				
 			}
 		},
 		methods: {
 			// 去详情
 			navTo(item) {
-				uni.setStorageSync('list', item);
 				uni.navigateTo({
-					url: '/pagesHouse/Mine/ordersList/details/details'
+					url: '/pagesHouse/Mine/ordersList/details/details?orderCode=' + item.orderCode
 				})
 			},
-			// 核销
-			handleDetail() {
-				// let dto = {
-				// 	writeOffCode: item.orderCode
-				// }
-				// this.$api.post('/merchant/merchantFisherman/home/writeOffOrder?dto=', dto).then(res => {
-
-				// })
-				uni.navigateTo({
-					url: '/pagesHouse/Verification/index'
-				})
+			hexiao(item) {
+				let that = this;
+				uni.showModal({
+					title: '提示',
+					content: '确定核销订单?',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.get('/scenic/order/orderWriteOff/'+item.orderCode).then(res => {
+								if (res.data.code === 0) {
+									that.$showToast('订单已核销');
+									that.init();
+								} else that.$showToast(res.data.msg)
+							})
+						}
+					}
+				});
 			},
-			// 删除
-			Detail(item) {
-				console.log(this.current);
-				this.$api.del('/merchant/merchantFisherman/home', [
-					item.id
-				]).then(res => {
-					if (res.data.code == 0) {
-						this.$showToast('删除成功');
-						// this.getOrderList()
-						setTimeout(() => {
-							this.changeTab1(this.current)
-						}, 1000)
-					} else {
-						this.$showToast('删除失败');
-						setTimeout(() => {
-							this.changeTab1(this.current)
-						}, 1000)
-						// this.getOrderList()
+			// 核销餐饮
+			hexiao2(item) {
+				let that = this;
+				uni.showModal({
+					title: '提示',
+					content: '确定核销订单?',
+					success: function(res) {
+						if (res.confirm) {
+							that.$api.post('/api/merchant/food/scenic/merchant/order/verifyOrderQrCode', {
+								merchantId: that.merchantId,
+								orderCode: item.orderCode,
+								type: 4
+							}).then(res => {
+								if (res.data.code === 0) {
+									that.$showToast('订单已核销');
+									that.init();
+								} else that.$showToast(res.data.msg)
+							})
+						}
 					}
-				})
+				});
+			},
+			init() {
+				this.pageIndex = 1;
+				this.dataList = [];
+				if(this.merchantType==10){
+					this.getOrderList()
+				}else{
+					this.getOrderList2()
+				}
 			},
-			changeTab1(index) {
-				this.current = index;
+			changeStatus(index) {
+				this.current=index;
+				if(this.merchantType==10){
+				if (index === 0) this.status = '';
+				else if (index === 1) this.status = '0'
+				else if (index === 2) this.status = '1';
+				else if (index === 3) this.status = '3,7';
+				else if (index === 4) this.status = '4,5';
+			}else{
 				if (index === 0) this.state = '';
 				else if (index === 1) this.state = '0'
 				else if (index === 2) this.state = '4';
 				else if (index === 3) this.state = '3';
 				else if (index === 4) this.state = '-3';
-				// else this.FormData.status = '0,1,-1,2,-2,-3,3,4,5,6,7,8,9,10,11';
-				this.changeTab(index)
-			},
-			getOrderList(state) {
-				this.$api.get('/merchant/merchantFisherman/home/queryMyOrderPage', {
-					fishermanId: this.fishermanId,
-					limit: this.limit,
-					page: this.page,
-					state: state ? state : ''
-				}).then((res => {
-					if (res.data.code == 0) {
-						this.dataList = res.data.data.list
-					} else {
-						uni.showToast({
-							title: res.data.msg,
-							icon: 'none'
-						})
-					}
-
-
-				}))
+			}
+				this.init();
 			},
-			getOrderByStatusList(state) {
-				this.$api.get('/merchant/merchantFisherman/home/queryMyOrderPage', {
-					fishermanId: this.fishermanId,
-					limit: this.limit,
-					page: this.page,
-					state: state
-				}).then((res => {
-					if (res.data.code == 0) {
-						this.dataList = res.data.data.list
-					} else {
-						uni.showToast({
-							title: res.data.msg,
-							icon: 'none'
-						})
-					}
-
-
-				}))
+			//渔家乐订单
+			getOrderList() {
+				let that = this;
+				this.$api.get('/api/fishering/personCenterPage', {
+					merchantId: this.merchantId,
+					status: this.status,
+					page: this.pageIndex,
+					limit: this.pageCount,
+				}).then(res => {
+					if (res.data.code === 0) {
+						let {
+							list,
+							total
+						} = res.data.data;
+						that.dataList = [...that.dataList, ...list];
+						if (res.data.data.list.length < 10) {
+							this.disScroll = true;
+						} else {
+							that.pageIndex++;
+						}
+					} else that.$showToast(res.data.msg);
+				})
 			},
-			changeTab(index) {
-				this.tabIdx = index;
-				switch (index) {
-					case 0:
-						this.getOrderList()
-						break
-					case 1:
-						// this.getOrderList(0)
-						this.getOrderByStatusList(0)
-						break
-					case 2:
-
-						this.getOrderList(4)
-						break
-					case 3:
-						this.getOrderList(3)
-						break
-					case 4:
-						this.getOrderList(-3)
-						break
-				}
+			getOrderList2() {
+				let that = this;
+				this.$api.get('/api/merchant/food/queryPageMerchantOrder', {
+					merchantId: this.merchantId,
+					state: this.state,
+					page: this.pageIndex,
+					limit: this.pageCount,
+				}).then(res => {
+					if (res.data.code === 0) {
+						let {
+							list,
+							total
+						} = res.data.data;
+						that.dataList = [...that.dataList, ...list];
+						if (res.data.data.list.length < 10) {
+							this.disScroll = true;
+						} else {
+							that.pageIndex++;
+						}
+					} else that.$showToast(res.data.msg);
+				})
 			},
+			
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
+	.textQx {
+		color: #999;
+	}
+
+	.textDcx {
+		color: #333333;
+	}
+
+	.textDzf {
+		color: #FF7D01;
+	}
+
 	.pages {
-		background: #F9FAFC;
+		// background: #F9FAFC;
 		box-sizing: border-box;
+		padding-bottom: 50rpx;
 
 		.tb {
 			width: 100%;
@@ -324,77 +395,41 @@
 				background: #fff;
 				border-radius: 16rpx;
 				margin: 20rpx 0;
-				padding: 20rpx;
+				padding: 0 24rpx 30rpx;
 
 				.header {
 					display: flex;
 					justify-content: space-between;
-					border-bottom: 1px #f3f3f3 solid;
-					padding: 20rpx;
-
-					.red {
-						color: indianred;
-					}
-
-					.green {
-						color: #999999;
-					}
-
-					.blue {
-						color: #1372FF;
-					}
-
-					.grey {
-						color: #4C5F76;
-					}
-
-					.orange {
-						color: #FF9100;
-					}
+					padding: 34rpx 0;
+					font-size: 28rpx;
 				}
 
 				.mainContent {
-					// border-bottom: 1px #f3f3f3 solid;
 					display: flex;
-					padding: 20rpx 0;
-
-
-					// justify-content: space-evenly;
 
 					.image {
 						background-repeat: no-repeat;
 						background-size: cover;
-						width: 198rpx;
-						height: 180rpx;
-						border-radius: 16rpx;
+						width: 136rpx;
+						min-width: 136rpx;
+						height: 136rpx;
+						border-radius: 12rpx;
 					}
 
 					.middle {
-						padding-top: 16rpx;
 						color: #777777;
-						// display: flex;
-						// flex-direction: column;
-						// justify-content: space-between;
-						margin-left: 25rpx;
+						margin-left: 20rpx;
 						width: 100%;
 
-
 						.title {
-							font-weight: 700;
-							font-size: 32rpx;
-							color: black;
+							font-weight: bold;
+							font-size: 30rpx;
+							margin: 16rpx 0 30rpx;
 						}
 
 						.info {
-							padding-top: 30rpx;
+							font-size: 26rpx;
 							color: #777777;
-							// display: flex;
-							// flex-direction: column;
-
-							&>span {
-								margin-top: 10rpx;
-
-							}
 						}
 					}
 
@@ -411,13 +446,11 @@
 				}
 
 				.bottom {
-					// padding: 30rpx 20rpx;
 					display: flex;
 					justify-content: flex-end;
+					margin-top: 16rpx;
 
 					.detail {
-
-						// border: 1rpx solid darkgrey;
 						border-radius: 16rpx;
 						color: darkgrey;
 						padding: 13rpx 34rpx;
@@ -428,7 +461,7 @@
 
 					}
 
-					.del {
+					.s1 {
 						border-radius: 16rpx;
 						color: darkgrey;
 						padding: 13rpx 34rpx;

+ 330 - 1
pagesHouse/Verification/check.vue

@@ -1,8 +1,337 @@
 <template>
+	<view class="page" :style="{'min-height':(h)+'px','padding-top':mt+'px'}">
+		<c-nav-bar title="核销" @goBack="back()"></c-nav-bar>
+		<view class="types">
+			<view class="item bg1" @tap="scanCode(0)">
+				<view class="n">扫码核销</view>
+				<u-icon name="arrow-right" color="#fff" size="26" label="点击扫描" label-color="#fff" label-size="28" cu
+					label-pos="left"></u-icon>
+			</view>
+			<view class="item bg2" @tap="scanCode(1)">
+				<view class="n">扫身份证</view>
+				<u-icon name="arrow-right" color="#fff" size="26" label="点击扫描" label-color="#fff" label-size="28"
+					label-pos="left"></u-icon>
+			</view>
+		</view>
+		<view class="orderInfo">
+			<view class="tit">
+				订单详情
+			</view>
+			<view class="time">{{orderInfo.playDate}} {{orderInfo.playTime}}出发</view>
+			<view class="bottom">
+				<text>{{orderInfo.num}}人</text>
+				<text>出游·{{orderInfo.playLength||0}}小时</text>
+				<text>¥{{orderInfo.realPrice}}</text>
+			</view>
+		</view>
+		<view class="list">
+			<view class="tit">{{boatNo}} 共({{data.length}})人</view>
+			<view class="item" v-for="(i,index) in data" :key="index">
+				<text class="type" :class="i.remark=='book'?'t1':'t2'">{{i.remark=='book'?'预订单':'现场单'}}</text>
+				<view class="personInfo">
+					<view class="name">{{i.touristName}}</view>
+					<view class="code">
+						身份证 {{i.touristCode}}
+					</view>
+				</view>
+				<u-icon name="minus-circle" size="36" color="#FEA400" @tap="jian(item)" v-if="i.remark!='book'"></u-icon>
+			</view>
+		</view>
+		<view class="btn">
+			<text @click="hexiao">开始发船</text>
+		</view>
+	</view>
 </template>
 
 <script>
+	var that;
+	export default {
+		data() {
+			return {
+				date: new Date().Format('yyyy-MM-dd'),
+				show: false,
+				data: [],
+				merchantId:uni.getStorageSync('merchantId'),
+				playTime:'',
+				boatNo:'',
+				type:'',
+				orderInfo:{},
+				keyName:''
+			}
+		},
+		onLoad(opt) {
+			that=this;
+			this.playTime=opt.playTime||'';
+			this.boatNo=opt.boatNo||'';
+			this.getOrderInfo();
+			//获取上次核销缓存
+			
+		},
+		methods: {
+			back(){
+				this.keyName=this.orderInfo.playDate+this.orderInfo.playTime+this.boatNo;
+				uni.setStorageSync(this.keyName,JSON.stringify(this.data));
+				//decodeURIComponent
+			},
+			getOrderInfo(){
+				this.$api.post('/scenic/order/queryStartOrderInfo',{
+					merchantId:this.merchantId,
+					boatNo:this.boatNo
+				}).then(res=>{
+					console.log(res.data)
+					if(res.data.code==0){
+						console.log(res)
+						this.orderInfo=res.data.data;
+						this.keyName=this.orderInfo.playDate+this.orderInfo.playTime+this.boatNo;
+						console.log(uni.getStorageSync(this.keyName))
+						this.data=JSON.parse(uni.getStorageSync(this.keyName))||[];
+						console.log(this.data)
+					}
+				})
+			},
+			scanCode(type) {
+				uni.scanCode({
+					success: (res) => {
+						console.log('扫码结果:' + res.result);
+						// 扫码成功后的操作,例如:
+						that.handleScanResult(res.result,type);
+					},
+					fail: (err) => {
+						console.error('扫码失败:' + err);
+					}
+				});
+			},
+			// 处理扫码结果的函数,可以根据实际需求进行扩展
+			handleScanResult(result,type) {
+				// 例如:导航到某个页面,或者处理其他业务逻辑
+				let sendData={};
+				sendData.playDate=this.orderInfo.playDate;
+				sendData.playTime=this.orderInfo.playTime;
+				sendData.playLength=this.orderInfo.playLength||1;
+				sendData.merchantId=this.orderInfo.merchantId;
+				sendData.orderType=this.orderInfo.orderType;
+				sendData.type=type;
+				sendData.writeOffCode="70";
+				console.log(sendData)
+				
+				this.$api.post('/scenic/order/scanCode',sendData).then(res=>{
+					console.log(res.data)
+					if(res.data.code==0){
+						console.log(this.data.findIndex(item=>{
+							item.touristCode==res.data.data.touristCode
+						}))
+						if(this.data.findIndex((item)=>{
+							return item.touristCode==res.data.data.touristCode
+						})>-1){
+							this.$showToast('该核验码已扫')
+						}else{
+							this.data.push(res.data.data)
+						}
+						
+					}
+				})
+			},
+			check() {
+				uni.navigateTo({
+					url: '/pagesHouse/Verification/check'
+				})
+			},
+			hexiao(){
+				if(this.data.length==0){
+					this.$showToast('请选择核销人')
+				}
+				this.$api.post('/scenic/order/sailWriteOff',{
+					orderType:this.orderInfo.orderType,
+					touristList:this.data
+				}).then(res=>{
+					if(res.data.code==0){
+						uni.redirectTo({
+							url:"/pagesHouse/Verification/success?boatNo="+this.boatNo+'&price='+this.orderInfo.realPrice
+						})
+					}
+				})
+				uni.removeStorageSync(this.keyName);
+			}
+		}
+	}
 </script>
 
-<style>
+<style lang="less" scoped>
+	/deep/.u-icon {
+		justify-content: flex-end;
+	}
+
+	.btn {
+		    position: fixed;
+		    bottom: 0;
+		    left: 0;
+		    z-index: 1;
+		    padding: 16rpx 30rpx 36rpx 30rpx;
+		    width: 100%;
+		    box-sizing: border-box;
+		    background: #fff;
+
+		text {
+			display: block;
+			    background-color: #007A69;
+			    color: #007A69;
+			    color: #fff;
+			    height: 88rpx;
+			    line-height: 88rpx;
+			    border-radius: 44rpx;
+			    text-align: center;
+			    font-size: 32rp;
+			    font-weight: bold;
+			    box-sizing: border-box;
+
+
+		}
+
+	}
+
+	.page {
+		background: #F5F8FA;
+		padding: 20rpx 24rpx 160rpx;
+		box-sizing: border-box;
+
+		.types {
+			display: flex;
+			gap: 36rpx;
+			justify-content: space-between;
+
+			.n {
+				margin-bottom: 20rpx;
+				color: #fff;
+			}
+
+			.item {
+				width: 330rpx;
+				height: 156rpx;
+				padding: 34rpx 24rpx;
+				font-size: 36rpx;
+				font-weight: bold;
+				box-sizing: border-box;
+			}
+
+			.bg2 {
+				background: url('https://i.ringzle.com/file/20240316/3fc9f6a78557492e98caa50392411e3a.png') no-repeat center;
+				background-size: 100%;
+			}
+
+			.bg1 {
+				background: url('https://i.ringzle.com/file/20240316/8a927d5d4da84728b6bb0896541baccf.png') no-repeat center;
+				background-size: 100%;
+			}
+		}
+
+		.orderInfo {
+			background-color: #fff;
+			color: #333;
+			padding: 0 24rpx 36rpx;
+			margin: 20rpx 0;
+			background: #fff;
+			border-radius: 16rpx;
+
+			.tit {
+				padding: 32rpx 0 24rpx;
+				font-size: 32rpx;
+			}
+
+			.time {
+				font-size: 36rpx;
+				font-weight: bold;
+				margin-bottom: 32rpx;
+			}
+
+			.bottom {
+				display: flex;
+				align-items: center;
+
+				text {
+					&:first-child {
+						width: 88rpx;
+						height: 54rpx;
+						background-color: #007A69;
+						color: #fff;
+						font-size: 34rpx;
+						font-weight: bold;
+						margin-right: 10rpx;
+						text-align: center;
+						border-radius: 12rpx;
+					}
+
+					&:nth-child(2) {
+						width: 200rpx;
+						flex: 1;
+					}
+
+					&:last-child {
+						font-size: 30rpx;
+						font-weight: bold;
+					}
+				}
+			}
+		}
+
+	}
+
+	.list {
+		box-sizing: border-box;
+		padding: 0 24rpx 0;
+		border-radius: 16rpx;
+		background-color: #fff;
+
+		.tit {
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #111;
+			padding: 36rpx 0 17rpx;
+		}
+
+		.item {
+			display: flex;
+			justify-content: space-between;
+			padding: 24rpx 0;
+			align-items: center;
+
+			.type {
+				width: 110rpx;
+				height: 48rpx;
+				text-align: center;
+				display: inline-block;
+				line-height: 48rpx;
+				border-radius: 11rpx;
+				font-size: 26rpx;
+				font-weight: bold;
+				color: #111;
+				margin-right: 16rpx;
+			}
+
+			.t1 {
+				background-color: #F0F8F6;
+				color: #007A69;
+			}
+
+			.t2 {
+				background-color: #E8EFFD;
+				color: #326EE0;
+			}
+
+			.personInfo {
+				flex: 1;
+
+				.name {
+					font-size: 30rpx;
+					color: #111;
+					margin-bottom: 16rpx;
+				}
+
+				.code {
+					color: #666;
+					font-size: 28rpx;
+				}
+			}
+
+		}
+	}
 </style>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1426 - 0
pagesHouse/Verification/detailsewm.vue


+ 97 - 0
pagesHouse/Verification/ems.vue

@@ -0,0 +1,97 @@
+<template>
+	<view class="page" :style="{'min-height':(h)+'px','padding-top':mt+'px'}">
+	
+		<image @click="hexiao" src="https://i.ringzle.com/file/20240317/d5f047e986a04bff9cfbfef2c5dab095.png"></image>
+		
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				boatNo:'',
+				price:''
+				//merchantType:uni.getStorageSync('merchantType');
+			}
+		},
+		onLoad(opt) {
+			
+		},
+		methods: {
+			hexiao() {
+				  console.log('21321321',)
+				uni.scanCode({
+					onlyFromCamera: true,
+					success: (res) => {
+						console.log('扫描二维码成功,结果:' + res.result);
+						
+						uni.navigateTo({
+							url: "/pagesHouse/Verification/detailsewm?list=" + res.result
+						})
+						// this.$api.post('/api/merchant/food/scenic/merchant/order/verifyOrderQrCode?writeOffCode',res.result)
+						// 	.then(res => {
+						// 		if (res.data.code == 0) {
+						// 			uni.navigateTo({
+						// 				url: "/pagesHouse/Verification/detailsewm?list=" + JSON.stringify({
+						// 					...res.result
+						// 				})
+						// 			})
+									
+						// 		} else {
+						// 			this.$showToast(res.data.msg)
+						// 		}
+						// 	})
+					},
+					error: (res) => {
+						console.log('扫描二维码出现错误')
+					}
+				})
+				
+			}
+		}
+	}
+</script>
+
+<style scoped lang="less">
+	.page{
+		text-align: center;
+		box-sizing: border-box;
+	}
+	image{
+		width: 345rpx;
+		height: 345rpx;
+		margin: 80rpx 0 24rpx;
+	}
+	.tip{
+		font-size: 32rpx;
+		color: #111;
+		text{
+			margin-right:12rpx;
+		}
+		
+	}
+	.price{
+		margin: 28rpx 0 110rpx;
+		text{
+			&:first-child{
+				font-size: 36rpx;
+			}
+			&:last-child{
+				font-size: 48rpx;
+				font-weight: bold;
+			}
+		}
+	}
+	.btn{
+		width: 610rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		background-color: #007A69;
+		color: #fff;
+		font-size: 32rpx;
+		border-radius: 46rpx;
+		margin: 0 auto;
+	}
+</style>

+ 28 - 9
pagesHouse/Verification/index.vue

@@ -1,9 +1,9 @@
 <template>
-	<view class="page" :style="{'min-height':(h-th)+'px','padding-top':mt+'px'}">
+	<view class="page" :style="{'min-height':(h)+'px','padding-top':mt+'px'}">
 		<c-nav-bar title="扫码核销"></c-nav-bar>
 		<view class="list">
-			<view class="item" v-for="(i,index) in data" :key="index" @click="check()">
-				<text>08A</text>
+			<view class="item" v-for="(i,index) in data" :key="index" @click="check(i)">
+				<text>{{i.BOAT_NO}}</text>
 				<text>核销</text>
 			</view>
 		</view>
@@ -16,16 +16,34 @@
 			return {
 				date: new Date().Format('yyyy-MM-dd'),
 				show: false,
-				h: uni.getSystemInfoSync().windowHeight - 87,
-				mt: uni.getSystemInfoSync().statusBarHeight + 44,
-				data: [1, 2, 3, 4, 5, 6, 7],
+				data: [],
 			}
 		},
-		onLoad() {},
+		onLoad() {
+			this.getList();
+		},
 		methods: {
-			check() {
+			jj(){
+				uni.navigateTo({
+					url:'/pagesHouse/Verification/success'
+				})
+			},
+			dd(){
+				uni.navigateTo({
+					url:'/pagesHouse/Verification/record'
+				})
+			},
+			getList(){
+				this.$api.get('/scenic/order/queryCurBoatNo/'+ uni.getStorageSync('merchantId')).then(res=>{
+					if(res.data.code==0){
+						console.log(res)
+						this.data=res.data.data;
+					}
+				})
+			},
+			check(item) {
 				uni.navigateTo({
-					url: '/pagesHouse/Verification/check'
+					url: '/pagesHouse/Verification/check?=&boatNo='+item.BOAT_NO
 				})
 			}
 		}
@@ -52,6 +70,7 @@
 			align-items: center;
 			box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.08);
 			margin-bottom: 20rpx;
+			border-radius: 16rpx;
 
 			text {
 				&:first-child {

+ 147 - 0
pagesHouse/Verification/record.vue

@@ -0,0 +1,147 @@
+<template>
+	<view class="page" :style="{'min-height':(h)+'px','padding-top':mt+'px'}">
+		<c-nav-bar title="核销记录"></c-nav-bar>
+		<view class="top">
+			<view class="time" @click="show=true">
+				<u-icon name="calendar" :label="dateStr" labelPos="right" labelColor="#666" color="#666" space="7px"
+					size="25px"></u-icon>
+				<u-icon name="arrow-down" color="#999" size="20px" style="margin-left: 20rpx;"></u-icon>
+			</view>
+			<view class="right">共{{totalNum}}单 收入¥{{totalAmount}}</view>
+		</view>
+		<view class="list">
+			<view class="item" v-for="(item,index) in data" :key="index">
+				<image :src="item.goodsType==2?'../../static/bao.png':'../../static/pin.png'"></image>
+				<view class="mid">
+					<text>{{item.playDate}}{{item.playTime}}出发/{{i.goodsType==2?'包船':'拼船'}}/{{item.boatNo}}</text>
+					<text>{{item.num}}人 · 出游{{item.playLength}}小时</text>
+					<text>核销时间:{{item.updateDate}}</text>
+				</view>
+				<view class="price">¥1500</view>
+			</view>
+		</view>
+		<u-datetime-picker @confirm="confirmDate" @cancel="show=false" :show="show" v-model="value1"
+			visibleItemCount="6" mode="year-month"></u-datetime-picker>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				dateStr: new Date().Format('yyyy年-MM月'),
+				date: new Date().Format('yyyy-MM'),
+				show: false,
+				k: '',
+				data: [],
+				value1: Number(new Date()),
+				merchantId: uni.getStorageSync('merchantId'),
+				totalAmount: 0,
+				totalNum: 0
+			}
+		},
+		onLoad() {
+			this.getdata();
+		},
+		methods: {
+			getdata() {
+				this.$api.get('/scenic/order/writeOffRecordPage', {
+					limit:50,
+					page:1,
+					merchantId: this.merchantId,
+					queryDate: this.date
+				}).then(res => {
+					if (res.data.code == 0) {
+						this.totalAmount = res.data.data.totalAmount;
+						this.totalNum = res.data.data.totalNum;
+						this.data=res.data.data.pageData.list;
+					}
+					console.log(res)
+				})
+			},
+			confirmDate(e) {
+				// 创建一个Date对象并传入时间戳
+				const date = new Date(e.value);
+				// 使用Date对象的方法获取年、月、日、小时、分钟和秒
+				const year = date.getFullYear();
+				const month = ('0' + (date.getMonth() + 1)).slice(-2);
+				const day = ('0' + date.getDate()).slice(-2);
+				// 格式化时间
+				let formattedTime = "";
+				formattedTime = `${year}-${month}`;
+				this.dateStr = `${year}年-${month}月`
+				this.date = formattedTime;
+				this.show = false;
+				this.getdata()
+			},
+
+		}
+	}
+</script>
+
+<style lang="less" scoped>
+	.page{
+		box-sizing: border-box;
+	}
+	.top {
+		padding: 24rpx 30rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		.time {
+			display: flex;
+			align-items: center;
+			gap: 0 10rpx;
+		}
+
+		.right {
+			color: #999;
+			font-size: 24rpx;
+
+		}
+
+	}
+
+	.list {
+		padding: 0 30rpx;
+
+		.item {
+			padding: 30rpx 0;
+			border-bottom: 1rpx solid #EFEFEF;
+			display: flex;
+			justify-content: space-between;
+
+			image {
+				width: 80rpx;
+				min-width: 80rpx;
+				height: 80rpx;
+
+			}
+
+			.mid {
+				margin: 0 30rpx 0 20rpx;
+
+				text {
+					display: inline-block;
+					font-size: 28rpx;
+					color: #777;
+
+					&:first-child {
+						font-size: 30rpx;
+						color: #111;
+						font-weight: bold;
+					}
+
+					&:nth-child(2) {
+						margin: 18rpx 0;
+					}
+				}
+			}
+
+			.price {
+				font-size: 32rpx;
+			}
+		}
+	}
+</style>

+ 151 - 0
pagesHouse/Verification/recordCy.vue

@@ -0,0 +1,151 @@
+<template>
+	<view class="page" :style="{'min-height':(h)+'px','padding-top':mt+'px'}">
+		<c-nav-bar title="核销记录"></c-nav-bar>
+		<view class="top">
+			<view class="time" @click="show=true">
+				<u-icon name="calendar" :label="dateStr" labelPos="right" labelColor="#666" color="#666" space="7px"
+					size="25px"></u-icon>
+				<u-icon name="arrow-down" color="#999" size="20px" style="margin-left: 20rpx;"></u-icon>
+			</view>
+			<view class="right">共{{totalNum}}单 收入¥{{totalAmount}}</view>
+		</view>
+		<view class="list">
+			<view class="item" v-for="(item,index) in data" :key="index">
+				<image :src="item.productImg|delArr"></image>
+				<view class="mid">
+					<text>{{item.productName}}</text>
+					<text>核销时间:{{item.writeOffTime}}</text>
+				</view>
+				<view class="price">¥{{item.realityPay}}</view>
+			</view>
+		</view>
+		<u-datetime-picker @confirm="confirmDate" @cancel="show=false" :show="show" v-model="value1"
+			visibleItemCount="6" mode="year-month"></u-datetime-picker>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				dateStr: new Date().Format('yyyy年-MM月'),
+				date: new Date().Format('yyyy-MM'),
+				show: false,
+				k: '',
+				data: [],
+				value1: Number(new Date()),
+				merchantId: uni.getStorageSync('merchantId'),
+				totalAmount: 0,
+				totalNum: 0
+			}
+		},
+		filters: {
+			delArr(val) {
+				if (val) {
+					return val.split(',')[0]
+				}
+		
+			}
+		},
+		onLoad() {
+			this.getdata();
+		},
+		methods: {
+			getdata() {
+				this.$api.post('/api/merchant/food/getMerchantFoodWriteOffList', {
+					dateType:1,
+					merchantId: this.merchantId,
+					queryDate: this.date
+				}).then(res => {
+					if (res.data.code == 0) {
+						this.totalAmount = res.data.data.orderAmount;
+						this.totalNum = res.data.data.orders;
+						this.data=res.data.data.merchantOrderDTOS;
+					}
+					console.log(res)
+				})
+			},
+			confirmDate(e) {
+				// 创建一个Date对象并传入时间戳
+				const date = new Date(e.value);
+				// 使用Date对象的方法获取年、月、日、小时、分钟和秒
+				const year = date.getFullYear();
+				const month = ('0' + (date.getMonth() + 1)).slice(-2);
+				const day = ('0' + date.getDate()).slice(-2);
+				// 格式化时间
+				let formattedTime = "";
+				formattedTime = `${year}-${month}`;
+				this.dateStr = `${year}年-${month}月`
+				this.date = formattedTime;
+				this.show = false;
+				this.getdata()
+			},
+
+		}
+	}
+</script>
+
+<style lang="less" scoped>
+	.page{
+		box-sizing: border-box;
+	}
+	.top {
+		padding: 24rpx 30rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+
+		.time {
+			display: flex;
+			align-items: center;
+			gap: 0 10rpx;
+		}
+
+		.right {
+			color: #999;
+			font-size: 24rpx;
+
+		}
+
+	}
+
+	.list {
+		padding: 0 30rpx;
+
+		.item {
+			padding: 30rpx 0;
+			border-bottom: 1rpx solid #EFEFEF;
+			display: flex;
+			justify-content: space-between;
+
+			image {
+				width: 136rpx;
+				min-width: 136rpx;
+				height: 136rpx;
+
+			}
+
+			.mid {
+				margin: 0 30rpx 0 20rpx;
+
+				text {
+					display: inline-block;
+					font-size: 28rpx;
+					color: #777;
+
+					&:first-child {
+						font-size: 30rpx;
+						color: #111;
+						font-weight: bold;
+						margin: 18rpx 0;
+					}
+				}
+			}
+
+			.price {
+				font-size: 32rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+</style>

+ 77 - 0
pagesHouse/Verification/success.vue

@@ -0,0 +1,77 @@
+<template>
+	<view class="page" :style="{'min-height':(h)+'px','padding-top':mt+'px'}">
+		<c-nav-bar title="核销结果"></c-nav-bar>
+		<image src="../../static/heSuccess.png"></image>
+		<view class="tip"><text>{{boatNo}}</text> 发船成功</view>
+		<view class="price">
+			<text>¥</text>
+			<text>{{price}}</text>
+		</view>
+		<view class="btn" @tap="goHome()">返回首页</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				boatNo:'',
+				price:''
+				//merchantType:uni.getStorageSync('merchantType');
+			}
+		},
+		onLoad(opt) {
+			this.boatNo=opt.boatNo;
+			this.price=opt.price;
+		},
+		methods: {
+			goHome() {
+				uni.navigateTo({
+					url: '/pages/home/index'
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="less">
+	.page{
+		text-align: center;
+		box-sizing: border-box;
+	}
+	image{
+		width: 320rpx;
+		height: 200rpx;
+		margin: 80rpx 0 24rpx;
+	}
+	.tip{
+		font-size: 32rpx;
+		color: #111;
+		text{
+			margin-right:12rpx;
+		}
+		
+	}
+	.price{
+		margin: 28rpx 0 110rpx;
+		text{
+			&:first-child{
+				font-size: 36rpx;
+			}
+			&:last-child{
+				font-size: 48rpx;
+				font-weight: bold;
+			}
+		}
+	}
+	.btn{
+		width: 610rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		background-color: #007A69;
+		color: #fff;
+		font-size: 32rpx;
+		border-radius: 46rpx;
+		margin: 0 auto;
+	}
+</style>

+ 60 - 11
pagesHouse/home/bill.vue

@@ -14,23 +14,36 @@
 			<view class="money">
 				<view>
 					<text>收入金额</text>
-					<text class="in">+{{info.orderAmount||0}}</text>
-					<text>{{info.orders||0}}笔</text>
+					<text class="in">+{{merchantType==10?info.paymentAmount||0:info.orderAmount||0}}</text>
+					<text>{{merchantType==10?info.paymentCount:info.orders||0}}笔</text>
 				</view>
 				<view>
 					<text>退款金额</text>
-					<text>{{info.refundOrderAmount||0}}</text>
-					<text>{{info.refundOrders||0}}笔</text>
+					<text>{{merchantType==10?info.refundAmount:info.refundOrderAmount||0}}</text>
+					<text>{{merchantType==10?info.refundCount:info.refundOrders||0}}笔</text>
 				</view>
 			</view>
-			<view class="li" v-for="(item,index) in info.fishermanOrderDTOS" :key="index" @click="detail(item)">
+			<template v-if="merchantType==10">
+				<view class="li" v-for="(item,index) in info.pageData.list" :key="index" @click="detail(item)">
+					<view class="left">
+						<text>{{item.playDate}} {{item.playTime}}出发/{{item.orderType==2?'包船':'拼船'}}/{{item.boatNo}}</text>
+						<text>{{item.payTime}}</text>
+					</view>
+					<view class="right">+{{item.realPrice}}</text>
+					</view>
+				</view>
+			</template>
+			<template v-if="merchantType==4">
+			<view class="li" v-for="(item,index) in info.merchantOrderDTOS" :key="index" @click="detail(item)">
 				<view class="left">
-					<text>{{item.thingName}}</text>
+					<text>{{item.productName}}</text>
 					<text>{{item.orderTime}}</text>
 				</view>
-				<view class="right">+{{item.price}}</text>
+				<view class="right">+{{item.realityPay}}</text>
 				</view>
 			</view>
+			</template>
+			
 		</view>
 		<u-datetime-picker @confirm="confirmDate" @cancel="show=false" :show="show" v-model="value1"
 			mode="date"></u-datetime-picker>
@@ -54,10 +67,16 @@
 					refundOrders: 0,
 
 				},
+				merchantId: uni.getStorageSync('merchantId'),
+				merchantType: uni.getStorageSync('merchantType'),
 			}
 		},
 		onLoad() {
-			this.getList()
+			if(this.merchantType==10){
+				this.getList()
+			}else{
+				this.getList2()
+			}
 		},
 		methods: {
 			confirmDate(e) {
@@ -71,14 +90,43 @@
 				const formattedTime = `${year}-${month}-${day}`;
 
 				this.date = formattedTime;
-				this.getList();
+				if(this.merchantType==10){
+					this.getList()
+				}else{
+					this.getList2()
+				}
 				this.show = false;
 			},
+			//渔家乐
 			getList() {
-				this.$api.post('/merchant/merchantFisherman/home/getMerchantFishermanDeal', {
+				this.$api.get('/scenic/order/tradeBills', {
+					startDate: this.date,
+					endDate:'',
+					dateType: '1',
+					merchantId: uni.getStorageSync('merchantId')
+				}).then(res => {
+					console.log(res.data)
+					if (res.data.code === 0) {
+						this.info = res.data.data;
+					} else {
+						this.info = {
+							pageData:{
+								list:[]
+							},
+							paymentAmount: 0,
+							paymentCount: 0,
+							refundAmount: 0,
+							refundCount: 0,
+						}
+					}
+				})
+			},
+			//餐饮
+			getList2() {
+				this.$api.post('/api/merchant/food/getMerchantFoodDeal', {
 					dateTime: this.date,
 					dateType: '1',
-					fishermanId: uni.getStorageSync('merchantId')
+					merchantId: uni.getStorageSync('merchantId')
 				}).then(res => {
 					console.log(res.data)
 					if (res.data.code === 0) {
@@ -176,6 +224,7 @@
 				display: flex;
 				justify-content: space-between;
 				padding: 30rpx 0;
+				border-bottom: 1rpx solid #EFEFEF;
 
 				.left {
 					text {

+ 82 - 40
pagesHouse/home/index.vue

@@ -4,7 +4,7 @@
 		<u-navbar bgColor="transparent">
 			<view class="u-nav-slot" slot="left" style="display: flex;" @tap="shShow=true">
 				<text>{{name}}</text>
-				<u-icon name="arrow-down" size="28" :bold="true" color="#fff"></u-icon>
+				<u-icon name="arrow-down" size="28" :bold="true" color="#111"></u-icon>
 			</view>
 		</u-navbar>
 		<u-picker :show="shShow" :columns="nameList" @close="shShow=false" @cancel="shShow=false" @confirm="confirm"
@@ -13,60 +13,64 @@
 			<view class="dataBox">
 				<view class="item">
 					<view>成交金额</view>
-					<view>¥<text>{{info.todayOrderAmount||0}}</text></view>
-					<view>昨日¥{{info.yesterdayOrderAmount||0}}</view>
+					<view>¥<text>{{merchantType==10?info.numMoneyToday:info.todayOrderAmount}}</text></view>
+					<view>昨日¥{{merchantType==10?info.numMoneyYesterday:info.yesterdayOrderAmount}}</view>
 				</view>
 				<view class="item">
 					<view>退款金额</view>
-					<view>¥<text>{{info.todayRefundAmount||0}}</text></view>
-					<view>昨日¥{{info.yesterdayRefundAmount||0}}</view>
+					<view>¥<text>{{merchantType==10?info.numRefundMoneyToday:info.todayRefundAmount}}</text></view>
+					<view>昨日¥{{merchantType==10?info.numRefundMoneyYesterday:info.yesterdayRefundAmount}}</view>
 				</view>
 				<view class="item">
 					<view>成交订单数</view>
-					<view>¥<text>{{info.todayOrders||0}}</text></view>
-					<view>昨日{{info.yesterdayOrders||0}}</view>
+					<view>¥<text>{{merchantType==10?info.numOrderToday:info.todayOrders}}</text></view>
+					<view>昨日{{merchantType==10?info.numOrderYesterday:info.yesterdayOrders}}</view>
 				</view>
 				<view class="item">
 					<view>退款订单数</view>
-					<view>¥<text>{{info.todayRefundOrders||0}}</text></view>
-					<view>昨日{{info.yesterdayRefundOrders||0}}</view>
+					<view>¥<text>{{merchantType==10?info.numRefundOrderToday:info.todayRefundOrders}}</text></view>
+					<view>昨日{{merchantType==10?info.numRefundOrderYesterday:info.yesterdayRefundOrders}}</view>
 				</view>
 
 			</view>
 			<view class="numberData">
-				<view @click="toHref('/pagesHouse/Mine/ordersList/index?type=0')">
-					<text>{{info.todayObligationOrders||0}}</text>
+				<view @click="toHref('/pagesHouse/Mine/ordersList/index?typeTxt=待付款')">
+					<text>{{merchantType==10?info.unPayNum:info.todayObligationOrders}}</text>
 					<text>待付款</text>
 				</view>
-				<view @click="toHref('/pagesHouse/Mine/ordersList/index?type=4')">
-					<text>{{info.todayPendingOrders||0}}</text>
+				<view @click="toHref('/pagesHouse/Mine/ordersList/index?typeTxt=待使用')">
+					<text>{{merchantType==10?info.unUseNum:info.todayPendingOrders||0}}</text>
 					<text>待使用</text>
 				</view>
-				<view @click="toHref('/pagesHouse/Mine/ordersList/index?type=3')">
-					<text>{{info.todayOrders||0}}</text>
+				<view @click="toHref('/pagesHouse/Mine/ordersList/index?typeTxt=已完成')">
+					<text>{{merchantType==10?info.completeNum:info.todayOrders||0}}</text>
 					<text>已完成</text>
 				</view>
-				<view @click="toHref('/pagesHouse/Mine/ordersList/index?type=-1')">
-					<text>{{info.todayCancelledOrders||0}}</text>
-					<text>已取消</text>
+				<view @click="toHref('/pagesHouse/Mine/ordersList/index?typeTxt=已取消')">
+					<text>{{merchantType==10?info.joinNum:info.todayCancelledOrders||0}}</text>
+					<text>{{merchantType==10?'拼团中':'已取消'}}</text>
 				</view>
-				<view @click="toHref('/pagesHouse/Mine/ordersList/index?type=-3')">
-					<text>{{info.todayRefundOrders||0}}</text>
+				<view @click="toHref('/pagesHouse/Mine/ordersList/index?typeTxt=退款售后')">
+					<text>{{merchantType==10?info. refundNum:info.todayRefundOrders||0}}</text>
 					<text>退款售后</text>
 				</view>
 			</view>
 			<view class="menus">
-				<view @click="toHref('/pagesHouse/HotelMerchandise/index?merchantType='+merchantType)">
+				<view @click="toHref('/pagesHouse/HotelMerchandise/index')">
 					<image :src="icons[0]"></image>
 					<text>商品管理</text>
 				</view>
-				<view @click="toHref('/pagesHouse/home/bill')">
+				<view @click="toHref('/pagesHouse/Verification/record')" v-if="merchantType==10">
 					<image :src="icons[1]"></image>
-					<text>交易账单</text>
+					<text>核销记录</text>
 				</view>
-				<view @click="toHref('/pagesHouse/home/moneyBill')">
+				<view @click="toHref('/pagesHouse/Verification/recordCy')" v-if="merchantType==4">
+					<image :src="icons[1]"></image>
+					<text>核销记录</text>
+				</view>
+				<view @click="toHref('/pagesHouse/home/bill')">
 					<image :src="icons[2]"></image>
-					<text>资金账单</text>
+					<text>交易账单</text>
 				</view>
 				<view @click="toHref('/pagesHouse/home/tj')">
 					<image :src="icons[3]"></image>
@@ -78,8 +82,8 @@
 			<view class="tit">
 				<text>订单列表</text>
 				<text>{{new Date().Format('yyyy-MM-dd')}}</text>
-				<u-icon @click="more()" name="arrow-right" label="查看全部" labelPos="left" labelSize="13px"
-					labelColor="#808080" color="#AAA"></u-icon>
+				<!-- <u-icon @click="more()" name="arrow-right" label="查看全部" labelPos="left" labelSize="13px"
+					labelColor="#808080" color="#AAA"></u-icon> -->
 			</view>
 			<view class="li first">
 				<text>订单信息</text>
@@ -88,16 +92,16 @@
 			</view>
 			<view class="li" v-for="(item,index) in list" :key="index">
 				<view class="avatar">
-					<image :src="item.pic"></image>
-					<text>{{item.thingName}}</text>
+					<image :src="merchantType==10?item.coverImg:item.productImg"></image>
+					<text>{{merchantType==10?item.goodsName:item.productName}}</text>
 				</view>
-				<text>{{item.num}}</text>
-				<text>¥{{item.price}}</text>
+				<text>{{merchantType==10?item.countNum:item.num}}</text>
+				<text>¥{{merchantType==10?item.sumNum:item.realityPay}}</text>
 			</view>
 		</view>
 		<u-picker :show="shShow" :columns="nameList" @close="shShow=false" @cancel="shShow=false" @confirm="confirm"
 			:immediateChange="true" itemHeight="88"></u-picker>
-		<Tabbares :tabbarid="0"></Tabbares>
+		<Tabbares :tabbarid="0" :value="0"></Tabbares>
 	</view>
 </template>
 
@@ -118,14 +122,18 @@
 				shShow: false,
 				shList: [],
 				name: '',
-				merchantType: 4,
+				merchantType:'',
 			}
 		},
 		onLoad(opt) {
 			this.merchantType=uni.getStorageSync('merchantType');
-			console.log(merchantType);
-			this.getData();
-			this.getList();
+			if(this.merchantType==10){
+				this.getData();
+				this.getList();
+			}else{
+				this.getData2();
+				this.getList2();
+			}
 			this.getType()
 		},
 		methods: {
@@ -148,11 +156,19 @@
 				this.shShow = false;
 				let t = this.shList.find(d => d.merchantName == this.name);
 				if (t) {
+					this.merchantType=t.merchantType;
 					uni.setStorageSync('merchantType',t.merchantType);
 					if (t.merchantType != 2) { //酒店民宿
 						uni.setStorageSync('homestayId', '');
 						uni.setStorageSync('merchantId', t.merchantId);
 						this.list = [];
+						if(t.merchantType==10){
+							this.getData();
+							this.getList();
+						}else{
+							this.getData2();
+							this.getList2();
+						}
 					} else {
 						this.item = null;
 						this.list = [];
@@ -165,19 +181,42 @@
 				}
 
 			},
+			//渔家乐统计
 			getData() {
-				this.$api.get('/merchant/merchantFisherman/home/getMerchantFishermanAppHome/' + uni.getStorageSync(
+				this.$api.get('/merchant/fishering/merchantHomePageMoneyOrderCount/' + uni.getStorageSync(
 					'merchantId')).then(res => {
+						console.log(res.data);
 					if (res.data.code === 0) {
 						this.info = res.data.data;
 					}
 				})
 			},
 			getList() {
-				this.$api.post('/merchant/merchantFisherman/home/getMerchantFishermanOrderList', {
+				this.$api.get('/merchant/fishering/merchantHomePageGoodsList', {
+					page: -1,
+					limit:10,
+					merchandId: uni.getStorageSync('merchantId')
+			
+				}).then(res => {
+					if (res.data.code === 0) {
+						this.list = res.data.data.list;
+					}
+				})
+			},
+			//餐饮美食统计
+			getData2() {
+				this.$api.get('/api/merchant/food/getMerchantFoodAppHome/' + uni.getStorageSync(
+					'merchantId')).then(res => {
+						console.log(res.data);
+					if (res.data.code === 0) {
+						this.info = res.data.data;
+					}
+				})
+			},
+			getList2() {
+				this.$api.post('/api/merchant/food/getMerchantFoodOrderList', {
 					dateTime: new Date().Format('yyyy-MM-dd'),
-					dateType: '1',
-					fishermanId: uni.getStorageSync('merchantId')
+					merchantId: uni.getStorageSync('merchantId')
 
 				}).then(res => {
 					if (res.data.code === 0) {
@@ -200,6 +239,7 @@
 </script>
 
 <style lang="less" scoped>
+	
 	.page {
 		background: #F3F4F4;
 		padding-bottom: 40rpx;
@@ -258,6 +298,7 @@
 						min-width: 90rpx;
 						height: 90rpx;
 						margin-right: 20rpx;
+						border-radius: 9rpx;
 					}
 
 					text {
@@ -386,6 +427,7 @@
 			font-family: PingFang SC, PingFang SC;
 			font-weight: bold;
 			color: #333;
+			margin-right: 10rpx;
 		}
 	}
 </style>

+ 9 - 6
pagesHouse/home/orderBillDetail.vue

@@ -3,13 +3,15 @@
 		<c-nav-bar title="账单详情"></c-nav-bar>
 		<view class="box">
 			<image src="https://i.ringzle.com/file/20240224/d2b9acd9522747ac89239dcde0894c93.png"></image>
-			<text class="tit">{{infoMation.thingName}}</text>
-			<text class="money">+<text>{{infoMation.price}}</text></text>
+			<text  class="tit" v-if="merchantType==10">{{infoMation.playDate}} {{infoMation.playTime}}出发/{{infoMation.orderType==2?'包船':'拼船'}}/{{infoMation.boatNo}}</text>
+			<text class="tit" v-else>{{infoMation.productName}}</text>
+			<text class="money">+<text>{{merchantType==10?infoMation.realPrice:infoMation.realityPay}}</text></text>
 		</view>
 		<view class="info">
 			<view class="li">
-				<text >当前状态</text>
-				<text>{{infoMation.state==''?'':status[infoMation.state]}}</text>
+				<text>当前状态</text>
+				<text>交易成功</text>
+				<!-- <text>{{infoMation.state==''?'':status[infoMation.state]}}</text> -->
 			</view>
 			<view class="li">
 				<text>创建时间</text>
@@ -25,7 +27,7 @@
 			</view> -->
 			<view class="li">
 				<text>商品名称</text>
-				<text>{{infoMation.thingName}}</text>
+				<text>{{merchantType==10?infoMation.goodsName:infoMation.thingName}}</text>
 			</view>
 		</view>
 	</view>
@@ -52,7 +54,8 @@
 					'3': '已完成',
 					'4': '待使用',
 					'5': '已预约'
-				}
+				},
+				merchantType: uni.getStorageSync('merchantType'),
 			}
 		},
 		onLoad(option) {

+ 58 - 7
pagesHouse/home/tj.vue

@@ -43,9 +43,12 @@
 </template>
 
 <script>
+import { data } from '../../uni_modules/uview-ui/libs/mixin/mixin';
 	export default {
 		data() {
 			return {
+				merchantId: uni.getStorageSync('merchantId'),
+				merchantType: uni.getStorageSync('merchantType'),
 				total: '',
 				total2: '',
 				info: {
@@ -104,14 +107,22 @@
 			},
 			date(newval, oldval) {
 				if (newval != oldval) {
-					this.getBottomData();
-					this.gettopData()
+					if(this.merchantType==10){
+						this.getList()
+					}else{
+						this.gettopData();
+						this.getBottomData();
+					}
 				}
 			}
 		},
 		onLoad() {
-			this.gettopData();
-			this.getBottomData();
+			if(this.merchantType==10){
+				this.getList()
+			}else{
+				this.gettopData();
+				this.getBottomData();
+			}
 			//this.drawGameCharts(['1','2'], [11,2], [12.11]);
 		},
 		methods: {
@@ -134,8 +145,48 @@
 				this.date = formattedTime;
 				this.show = false;
 			},
+			//渔家乐
+			getList() {
+				this.$api.post('/scenic/order/dataStatistics', {
+					dateTime: this.date,
+					dateType: this.type + '',
+					merchantId: uni.getStorageSync('merchantId')
+				}).then(res => {
+					let x = [],
+						y = [],
+						z = [];
+					this.total = 0;
+					this.total2 = 0;
+					if (res.data.code === 0) {
+						this.info = res.data.data;
+						this.info.allOrderAmount=res.data.data.statistics.allOrderAmount;
+						this.info.allOrders=res.data.data.statistics.allOrders,
+						this.info.allRefundOrderAmount=res.data.data.statistics.allRefundOrderAmount,
+						this.info.allRefundOrders=res.data.data.statistics.allRefundOrders
+						//折线图
+						this.dataList = res.data.data.curve;
+						for (let i = 0; i < res.data.data.curve.length; i++) {
+							x.push(this.type == 1 ? res.data.data.curve[i].dateKey : (res.data.data.curve[i].dateKey + '月'));
+							y.push(res.data.data.curve[i].orderNums);
+							z.push(res.data.data.curve[i].refundOrderNums);
+							this.total += res.data.data.curve[i].orderNums;
+							this.total2 += res.data.data.curve[i].refundOrderNums
+						}
+					} else {
+						this.info = {
+							paymentAmount: 0,
+							paymentCount: 0,
+							refundAmount: 0,
+							refundCount: 0,
+						}
+					}
+					setTimeout(() => {
+						this.drawGameCharts(x, y, z);
+					}, 500)
+				})
+			},
 			gettopData() {
-				this.$api.post('/merchant/merchantFisherman/home/getMerchantFishermanBill', {
+				this.$api.post('/api/merchant/food/getMerchantFoodBill', {
 					dateTime: this.date,
 					dateType: this.type + '',
 					fishermanId: uni.getStorageSync('merchantId')
@@ -154,10 +205,10 @@
 				})
 			},
 			getBottomData() {
-				this.$api.post('/merchant/merchantFisherman/home/getMerchantFishermanCurveAnalyse', {
+				this.$api.post('/api/merchant/food/getMerchantFoodCurveAnalyse', {
 					dateTime: this.date,
 					dateType: this.type + '',
-					fishermanId: uni.getStorageSync('merchantId')
+					merchantId: uni.getStorageSync('merchantId')
 				}).then(res => {
 					let x = [],
 						y = [],

BIN
static/bao.png


BIN
static/heSuccess.png


BIN
static/orderEg.png


BIN
static/pin.png