<template>
	<view class="page">
		<u-navbar :is-back="false" :border-bottom="false" :background="bgc" title-color='#2E4975' title-size='36'
			height='8'></u-navbar>
		<image src="https://api.ccttiot.com/smartmeter/img/static/u3lZnmhqSqkMd7gHKtMD" mode="" class="imgbj"></image>
		<view class="title">
			<text v-if="userType != 00" @click="btnshanghu">商户中心</text>
		</view>
		<view class="serchshop">
			<view class="dingwei" @click="btnweizhi">
				<image src="https://api.ccttiot.com/smartmeter/img/static/uSDeC51wazjnZ9cFQx6l" mode="" class="dwimg">
				</image>
				{{tit}}
				<image src="https://api.ccttiot.com/smartmeter/img/static/u0FZH7ZLG168c7W0FUMk" mode="" class="xlimg">
				</image>
			</view>
			<view class="search">
				<input type="text" v-model="sousuovalue" @confirm="confirm" placeholder="搜索门店" />
				<u-icon name="search"></u-icon>
			</view>
		</view>
		<view class="" style="margin-top: 48rpx;">
			<view class="tabqh">
				<view @click="btntabindex(0)" :class="tabindex == 0 ? 'activetab' : ''">
					<text>全部</text>
					<image v-if="tabindex == 0" src="https://api.ccttiot.com/smartmeter/img/static/uHFOqckZJiCEP9JOtMvj"
						mode=""></image>
				</view>
				<view @click="btntabindex(2)" :class="tabindex == 2 ? 'activetab' : ''">
					<text>棋牌</text>
					<image v-if="tabindex == 2" src="https://api.ccttiot.com/smartmeter/img/static/uQ6c41aBHWUOD02aK9WQ"
						mode=""></image>
				</view>
				<view @click="btntabindex(1)" :class="tabindex == 1 ? 'activetab' : ''">
					<text>茶室</text>
					<image v-if="tabindex == 1" src="https://api.ccttiot.com/smartmeter/img/static/uQ6c41aBHWUOD02aK9WQ"
						mode=""></image>
				</view>
				<view @click="btntabindex(3)" style="width: 34%;" :class="tabindex == 3 ? 'activetab' : ''">
					<text>台球</text>
					<image v-if="tabindex == 3" style="transform: rotateY(180deg)"
						src="https://api.ccttiot.com/smartmeter/img/static/uQ6c41aBHWUOD02aK9WQ" mode=""></image>
				</view>
				<view @click="btntabindex(4)" :class="tabindex == 4? 'activetab' : ''">
					<text>其他</text>
					<image v-if="tabindex == 4" src="https://api.ccttiot.com/smartmeter/img/static/uHFOqckZJiCEP9JOtMvj"
						mode=""></image>
				</view>
			</view>
			<view class="shoplist" @touchstart="onTouchStart" @touchend="onTouchEnd" @touchcancel="onTouchCancel">
				<view class="shop_item" v-for="(item,index) in listshop" :key="index"
					@click="btndetail(item.storeId,item)">
					<view class="lt">
						<image :src="item.pictures[0]" mode="aspectFill"></image>
					</view>
					<view class="rt">
						<view class="name">
							{{item.name == undefined ? '--' : item.name}}
						</view>
						<view class="dizhi">
							{{item.address.length > 13 ? item.address.slice(0,13) + '...' : item.address}}
						</view>
						<view class="storebq">
							<image v-if="item.typeTags && item.typeTags.some(tag => tag == 1)"
								src="https://api.ccttiot.com/smartmeter/img/static/u7ilmXTNlXUbbvfSgOa1" mode="">
							</image>
							<image v-if="item.typeTags && item.typeTags.some(tag => tag == 2)"
								src="https://api.ccttiot.com/smartmeter/img/static/umA2EUZkovZEA0hCLmP3" mode="">
							</image>
							<image v-if="item.typeTags && item.typeTags.some(tag => tag == 3)"
								src="https://api.ccttiot.com/smartmeter/img/static/uPjeCCnwjiJlCNqURltX" mode="">
							</image>
							<image v-if="item.typeTags && item.typeTags.some(tag => tag == 4)"
								src="https://api.ccttiot.com/smartmeter/img/static/uvbY7v6slwyqVghulsZW" mode="">
							</image>
						</view>
						<view class="juli">
							<view class="kmjuli">
								距我{{item.distance == undefined ? '--' : item.distance}}km
							</view>
							<view class="juliimg">
								<image @click.stop="btndaohang(item.lng,item.lat,item.name,item.address)"
									src="https://api.ccttiot.com/smartmeter/img/static/ufhdTzq4mHUlHgCKgI5Y" mode="">
								</image>
								<image @click.stop="btntel(item.serverPhone)"
									src="https://api.ccttiot.com/smartmeter/img/static/uOxtHZOxGREoFVXEv73f" mode="">
								</image>
							</view>
						</view>
						<view class="yuding">
							<image src="https://api.ccttiot.com/smartmeter/img/static/u7zHXOY1SGwic7jQESUR" mode=""
								class="one"></image>
							预定包间
							<image src="https://api.ccttiot.com/smartmeter/img/static/urIGUWi7cHWqp9qem3Ag" mode=""
								class="two"></image>
						</view>
					</view>
				</view>
				<view class="" style="width: 100%;text-align: center;margin-top: 40rpx;font-size: 34rpx;color: #ccc;">
					没有更多门店啦,敬请期待吧...
				</view>
			</view>
		</view>
		<view class="jiameng" v-if="guangaoflag" @click="btnjiameng">
			<view class="gb" @click.stop="guangaoflag = false">
				关闭 <text>×</text>
			</view>
			<image src="https://api.ccttiot.com/smartmeter/img/static/uuoqWaq7HnXBteQayaz4" mode=""></image>
		</view>
		<view class="xuanfu" v-if="imgflag">
			<image @click="btnopen(1)" src="https://api.ccttiot.com/smartmeter/img/static/uKeCHdot1z4QJldDe3UL" mode="">
			</image>
			<image @click="btnopen(2)" src="https://api.ccttiot.com/smartmeter/img/static/u4lmGbm77OWC2Uik2737" mode="">
			</image>
			<image @click="btnopen(3)" src="https://api.ccttiot.com/smartmeter/img/static/uUjamKC7Kvd9KMLLOeBD" mode="">
			</image>
			<image @click="btnopen(6)" src="https://api.ccttiot.com/smartmeter/img/static/un3Pb0hkKl0Nu9SnaW3W" mode="">
			</image>
			<image @click="btnopen(4)" src="https://api.ccttiot.com/smartmeter/img/static/uh58EYwwWo92FYNe19Yx" mode="">
			</image>
			<image @click="btnopen(5)" src="https://api.ccttiot.com/smartmeter/img/static/uONMVGcplNBtVnjlHaeh" mode="">
			</image>
		</view>
		<view class="xuanfus" v-else>
			<image @click="btnopen(1)" src="https://api.ccttiot.com/smartmeter/img/static/uKeCHdot1z4QJldDe3UL" mode="">
			</image>
			<image @click="btnopen(2)" src="https://api.ccttiot.com/smartmeter/img/static/u4lmGbm77OWC2Uik2737" mode="">
			</image>
			<image @click="btnopen(6)" src="https://api.ccttiot.com/smartmeter/img/static/un3Pb0hkKl0Nu9SnaW3W" mode="">
			</image>
			<image @click="btnopen(3)" src="https://api.ccttiot.com/smartmeter/img/static/uUjamKC7Kvd9KMLLOeBD" mode="">
			</image>
			<image @click="btnopen(4)" src="https://api.ccttiot.com/smartmeter/img/static/uh58EYwwWo92FYNe19Yx" mode="">
			</image>
			<image @click="btnopen(5)" src="https://api.ccttiot.com/smartmeter/img/static/uONMVGcplNBtVnjlHaeh" mode="">
			</image>
		</view>
		<view class="karaokeroom" v-if="jinxinflag">
			<view class="top">
				正在进行中的订单
			</view>
			<view class="roomlist">
				<view class="room_item" v-for="(item,index) in jinxinglist" :key="index"
					:id="mdindex == index ? 'active' : ''" @click="btnmd(index,item)">
					<view class="lt">
						<image :src="item.picture" mode=""></image>
					</view>
					<view class="rt" style="font-size: 22rpx;">
						<view class="">
							<text>预约门店:</text> <text>{{item.storeName == null ? '--' : item.storeName}}</text>
						</view>
						<view class="">
							<text>预约包厢:</text> <text>{{item.roomName == null ? '--' : item.roomName}}</text>
						</view>
						<view class="">
							<text>开始时间:</text>
							<text>{{item.reserveStartTime == null ? '--' : item.reserveStartTime}}</text>
						</view>
						<view class="">
							<text>结束时间:</text> <text>{{item.reserveEndTime == null ? '--' : item.reserveEndTime}}</text>
						</view>
					</view>
				</view>
			</view>
			<view class="anniu" @click="btnanniu">
				{{jinxintxt}}
			</view>
		</view>
		<image v-if="jinxinflag" @click="jinxinflag = false" class="jinxinx"
			src="https://api.ccttiot.com/smartmeter/img/static/uH5fAInJQYhf3wlXkuYI" mode=""></image>
		<view class="mask" v-if="jinxinflag"></view>
		<!-- 厕所 --><!-- 厕所 --><!-- 厕所 --><!-- 厕所 --><!-- 厕所 --><!-- 厕所 --><!-- 厕所 --><!-- 厕所 --><!-- 厕所 -->
		<view class="cesuoul" v-if="cesuoflag">
			<view class="cesuoli" v-for="(item,index) in cesuolist" :key="index">
				<view class="caocuo">
					<view class="name">
						{{item.name}}
					</view>
					<view class="kaiguan" @click="btncs(item)">
						开门
					</view>
				</view>
			</view>
			<view class="anniuqx" @click="cesuoflag = false">
				取消
			</view>
		</view>
		<view class="mask" v-if="cesuoflag"></view>
		<view class="lxlanya" v-if="lanyaflag">
			<view class="lxtit">
				蓝牙控制开关
			</view>
			<view class="cha" @click.stop="btncha">
				×
			</view>
			<view class="lxzt">
			    <view v-if="ver_dataflag == 1" style="color: red;">
			    	<image src="https://api.ccttiot.com/smartmeter/img/static/u6akzRBuxxP94XlUcMtV" mode=""></image>
			    	<text>未连接</text>
			    </view>
			    <view v-if="ver_dataflag == 2" style="color: #ccc;">
			    	<image src="https://api.ccttiot.com/smartmeter/img/static/u6akzRBuxxP94XlUcMtV" mode=""></image>
			    	<text>连接中</text>
			    </view>
			    <view v-if="ver_dataflag == 3" style="color: #48893B;">
			    	<image src="https://api.ccttiot.com/smartmeter/img/static/uU0nfPcXVEhbEsvECEQg" mode=""></image>
			    	<text>已连接</text>
			    </view>
			</view>
			<view class="kongzhi">
		      <!--  <view class="lxkai" @click.stop="btngb">
		        	关闭
		        </view> -->
		        <view class="lxkai" @click.stop="btnkq">
		        	开启
		        </view>				
			</view>
		</view>
		<view class="mask" v-if="lanyaflag"></view>
	</view>
</template>
<script>
	var xBlufi = require("@/components/blufi/xBlufi.js"); 
	export default {
		data() {
			return {
				guangaoflag: true,
				jinxintxt: '开包厢',
				imgflag: true,
				longitude: '',
				latitude: '',
				tit: '',
				listshop: [],
				cityid: '',
				pagesum: 1,
				pagesize: 10,
				touchStartX: 0, // 触屏起始点x
				touchStartY: 0, // 触屏起始点y  
				xiaflag: true,
				total: '',
				qingqiuflag: true,
				jinxinglist: [],
				mdindex: -1,
				viewType: '',
				jinxinflag: false,
				sousuovalue: '',
				tabindex: 0,
				type: 0,
				userType: '00',
				cesuolist: [],
				cesuoflag: false,
				csindex: -1,
				ver_dataflag:2,
				devicesarr:[],
				deviceIds:'',
				name:'',
				deviceId:'',
				lanyaflag:false,
				lanyamac:'',
				lanyaobj:{}
			}
		},
		// 分享到好友(会话)
		onShareAppMessage: function() {
			return {
				title: '共享时光屋',
				path: '/pages/nearbystores/index'
			}
		},
		// 分享到朋友圈  
		onShareTimeline: function() {
			return {
				title: '共享时光屋',
				query: '',
				path: '/pages/nearbystores/index'
			}
		},
		onLoad(option) {
			wx.openBluetoothAdapter({
			  success: function (res) {
			    console.log('蓝牙适配器初始化成功')
				xBlufi.initXBlufi(1)
			  },
			  fail: function (err) {
				// uni.showToast({
				//  	title: '蓝牙权限获取失败,请打开系统蓝牙和定位',
				//  	icon: 'none',
				// 	duration:3000
				//  })
			    console.error('蓝牙适配器初始化失败,可能是因为没有权限', err)
			  }
			})
			if (option.cityId) {
				this.cityid = option.cityId
				this.tit = option.cityName
				this.longitude = ''
				this.latitude = ''
				this.getweizhi()
			} else {
				this.getweizhi()
			}
			if(option.q){
				function getQueryParam(url, paramName) {
					let regex = new RegExp(`[?&]${paramName}=([^&]*)`)
					let results = regex.exec(url);
					return results ? decodeURIComponent(results[1].replace(/\+/g, ' ')) : null
				}
				let sceneValue = option.q
				let decodedValue = decodeURIComponent(sceneValue)
				let id = getQueryParam(decodedValue, 'sn')
				console.log(id);
				let that = this
				let data = {
					sn: id,
				}
				that.$u.get(`/app/device/isBind?deviceNo=${id}`).then(res => {
					if (res.data == 2) {
						uni.showToast({
							title: '该设备已被绑定',
							icon: 'none',
							duration: 2000
						})
					} else if (res.data == 1) {
						uni.showModal({
							title: '提示',
							content: '该设备未绑定,你需进行绑定吗?',
							success: function(res) {
								if (res.confirm) {
									that.$u.put("/app/device/bind", data).then(res => {
										if (res.code == 200) {
											uni.showToast({
												title: '绑定成功',
												icon: 'success',
												duration: 2000
											})
											that.userType = '01'
										}else{
											uni.showToast({
												title: res.msg,
												icon: 'none',
												duration: 2000
											})
										}
									})
								}
							}
						})
					} else if (res.data == 0) {
						uni.showToast({
							title: '该设备为录入,请先录入',
							icon: 'none',
							duration: 2000
						})
					}
				})
			}
			this.getinfo()
			this.getorder()
		},
		onShow() {
			this.guangaoflag = true
			xBlufi.notifyStartDiscoverBle({'isStart': true})
			xBlufi.listenDeviceMsgEvent(true, this.funListenDeviceMsgEvent)
		},
		methods: {
			// 蓝牙开启
			btnkq(){
				if(this.lanyaobj.gateUnlockMode == 1){
					xBlufi.notifySendCustomData({
						customData: '11km' + this.lanyaobj.gateUnlockTime + '@'
					})
					let data = {
						mac:this.lanyamac,
						reason:'正常开门',
						command:'11km' + this.lanyaobj.gateUnlockTime + '@',
						result:true
					}
					this.$u.post(`/app/commandLog/bluetooth`,data).then(res => {})
				}else if(this.lanyaobj.gateUnlockMode == 2){
					xBlufi.notifySendCustomData({
						customData: '11gm' + this.lanyaobj.gateUnlockTime + '@'
					})
					let data = {
						mac:this.lanyamac,
						reason:'反向开门',
						command:'11gm' + this.lanyaobj.gateUnlockTime + '@',
						result:true
					}
					this.$u.post(`/app/commandLog/bluetooth`,data).then(res => {})
				}else if(this.lanyaobj.unlockMode == 1){
					xBlufi.notifySendCustomData({
						customData: '11km' + this.lanyaobj.unlockTime + '@'
					})
					let data = {
						mac:this.lanyamac,
						reason:'正常开门',
						command:'11km' + this.lanyaobj.unlockTime + '@',
						result:true
					}
					this.$u.post(`/app/commandLog/bluetooth`,data).then(res => {})
				}else{
					xBlufi.notifySendCustomData({
						customData: '11gm' + this.lanyaobj.unlockTime + '@'
					})
					let data = {
						mac:this.lanyamac,
						reason:'反向开门',
						command:'11gm' + this.lanyaobj.unlockTime + '@',
						result:true
					}
					this.$u.post(`/app/commandLog/bluetooth`,data).then(res => {})
				}
			},
			// 蓝牙关闭
			btngb(){
				xBlufi.notifySendCustomData({
					customData: '11close'
				})
				let data = {
					mac:this.lanyamac,
					reason:'关闭',
					command:'11close',
					result:true
				}
				this.$u.post(`/app/commandLog/bluetooth`,data).then(res => {})
			},
			// 点击蓝牙弹出隐藏
			btncha(){
				this.lanyaflag = false
				this.ver_dataflag = 2
				xBlufi.notifyConnectBle({
				    isStart: false,
				    deviceId: this.deviceId,
				    name: this.name
				})
			},
			// 连接蓝牙函数
			getlanya() {
				if (this.ver_dataflag != 3) {
					this.ver_dataflag = 2
					let that = this
					if (that.deviceId != '') {
						let systemInfo = uni.getSystemInfoSync()
							if (systemInfo.platform == 'android') {
								that.lanyaflag = true
								that.deviceId = that.deviceId.match(/.{2}/g).reverse().join(':')
								xBlufi.notifyStartDiscoverBle({
									'isStart': false 
								})
								console.log("进入蓝牙连接", that.deviceId)
								console.log("进入that.name", that.name)
								xBlufi.notifyConnectBle({
									isStart: true,
									deviceId: that.deviceId,
									name: that.name
								})
							} else if (systemInfo.platform == 'ios') {
								// 当前设备是 iOS 
								that.lanyaflag = true
							    that.findDevice()
						}else{
							// that.lanyaflag = true
							console.log('其他');
						}
					}
				}
			},
			findDevice() {
			    const matchedDevice = this.devicesarr.find(device => {
			        console.log(device.name, '111') 
			        console.log("IOSMAC", device)
			        return device.name.slice(-12) == this.deviceId.slice(-12)
			    })
			    if (matchedDevice) {
			        xBlufi.notifyStartDiscoverBle({
			            'isStart': false
			        })
			        xBlufi.notifyConnectBle({
			            isStart: true,
			            deviceId: matchedDevice.deviceId,
			            name: matchedDevice.name
			        })
			        this.deviceId = matchedDevice.deviceId
			        this.name = matchedDevice.name
			        console.log(this.deviceId, '11221')
			    } else {
			        console.log("未找到匹配的设备,继续查找...")
			        setTimeout(this.findDevice.bind(this), 1000) // 使用 bind 保持 this 上下文
			    }
			},
			// 获取附近蓝牙设备列表
			funListenDeviceMsgEvent: function (options) {
				switch (options.type) {
					case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS:
						if (options.result) {
							this.devicesarr = options.data
						}
						break;
					case xBlufi.XBLUFI_TYPE.TYPE_CONNECTED:
						console.log("连接回调:" + JSON.stringify(options))
						if (options.result == true) { 
							setTimeout(()=>{
								this.ver_dataflag = 3
							},2000)
							xBlufi.notifyInitBleEsp32({
								deviceId: this.deviceId
							})
							this.deviceIds = options.data.deviceId
							this.name = this.name
						} 
						break;
					case xBlufi.XBLUFI_TYPE.TYPE_RECIEVE_CUSTON_DATA:
						this.ver_dataflag = 3
						console.log("1收到设备发来的自定义数据结果:", options.data)
						break;
					case xBlufi.XBLUFI_TYPE.TYPE_GET_DEVICE_LISTS_START:
						if (!options.result) {
							console.log('蓝牙未开启')
							return
						}
						break;
				}
			},
			// 点击切换门店类型
			btntabindex(num) {
				this.tabindex = num
				this.type = num
				this.pagesum = 1
				this.listshop = []
				this.getshop()
			},
			// 点击跳转到商户中心
			btnshanghu() {
				uni.navigateTo({
					url: '/page_shanghu/index'
				})
			},
			// 点击选择开包厢
			btnmd(index, item) {
				this.lanyaobj = item
				this.viewType = item.reType
				this.mdindex = index
			},
			// 请求正在进行中的订单
			getorder() {
				this.$u.get(`/app/order/getInProgressOrderList`).then(res => {
					if (res.code == 200) {
						this.jinxinglist = res.data
						this.lanyaobj = res.data[0]
					}
				})
			},
			// 点击进行导航
			btndaohang(lng, lat, name, addres) {
				uni.openLocation({
					latitude: lat, //纬度-目的地/坐标点
					longitude: lng, //经度-目的地/坐标点
					name: name, //地点名称
					address: addres //详细地点名称
				})
			},
			// 点击拨打电话
			btntel(serverPhone) {
				uni.makePhoneCall({
					phoneNumber: serverPhone,
					success: function(res) {
						console.log('拨打电话成功', res)
					},
					fail: function(err) {
						console.error('拨打电话失败', err)
						uni.showToast({
							title: '取消拨打电话',
							icon: 'none'
						})
					}
				})
			},
			// 选择订单后进行操作
			btnanniu() {
				if (this.jinxintxt == '开店门') {
					let storeId = this.jinxinglist[this.mdindex].storeId
					console.log(this.jinxinglist[this.mdindex], this.mdindex);
					this.$u.get(`app/store/openGate/${storeId}`).then(res => {
						if (res.code == 200) {
							this.jinxinflag = false
							this.mdindex = -1
							uni.showToast({
								title: '开启店门成功',
								icon: 'success',
								duration: 2000
							})
						} else if(res.code == 501){
							this.jinxinflag = false
							this.mdindex = -1
							this.deviceId = res.msg
							this.lanyamac = res.msg
							this.getlanya()
						}else{
							this.mdindex = -1
							uni.showToast({
								title: res.msg,
								icon: 'none',
								duration: 2000
							})
						}
					})
				} else if (this.jinxintxt == '开包厢') {
					let roomId = this.jinxinglist[this.mdindex].roomId
					this.$u.post(`/app/device/adminAll/${roomId}/switch?open=true`).then(res => {
						if (res.code == 200) {
							this.jinxinflag = false
							this.mdindex = -1
							uni.showToast({
								title: '开启包厢门成功',
								icon: 'success',
								duration: 2000
							})
						} else {
							this.mdindex = -1
							uni.showToast({
								title: res.msg,
								icon: 'none',
								duration: 2000
							})
						}
					})
				} else if (this.jinxintxt == '去续单') {
					this.jinxinflag = false
					let roomId = this.jinxinglist[this.mdindex].roomId
					let orderNo = this.jinxinglist[this.mdindex].orderNo
					uni.navigateTo({
						url: '/page_user/xudan?roomId=' + roomId + '&orderNo=' + orderNo + '&viewType=' + this.viewType
					})
				}
			},
			// 点击进行开店门开包厢等操作
			btnopen(num) {
				if (num == 1) {
					if (this.jinxinglist.length > 1) {
						this.jinxinflag = true
						this.jinxintxt = '开店门'
					} else if (this.jinxinglist.length == 1) {
						let storeId = this.jinxinglist[0].storeId
						this.$u.get(`app/store/openGate/${storeId}`).then(res => {
							if (res.code == 200) {
								uni.showToast({
									title: '开启店门成功',
									icon: 'success',
									duration: 2000
								})
							} else if(res.code == 501){
							    this.deviceId = res.msg
							    this.lanyamac = res.msg
							    this.getlanya()
						    }else{
								uni.showToast({
									title: res.msg,
									icon: 'none',
									duration: 2000
								})
							}
						})
					} else {
						uni.showToast({
							title: '您当前没有订单',
							icon: 'none',
							duration: 2000
						})
					}
				} else if (num == 2) {
					if (this.jinxinglist.length > 1) {
						this.jinxinflag = true
						this.jinxintxt = '开包厢'
					} else if (this.jinxinglist.length == 1) {
						let roomId = this.jinxinglist[0].roomId
						this.$u.post(`/app/device/adminAll/${roomId}/switch?open=true`).then(res => {
							if (res.code == 200) {
								uni.showToast({
									title: '开启包厢门成功',
									icon: 'success',
									duration: 2000
								})
							} else {
								uni.showToast({
									title: res.msg,
									icon: 'none',
									duration: 2000
								})
							}
						})
					} else {
						uni.showToast({
							title: '您当前没有订单',
							icon: 'none',
							duration: 2000
						})
					}
				} else if (num == 3) {
					if (this.jinxinglist.length > 1) {
						this.jinxinflag = true
						this.jinxintxt = '去续单'
					} else if (this.jinxinglist.length == 1) {
						let roomId = this.jinxinglist[0].roomId
						let orderNo = this.jinxinglist[0].orderNo
						uni.navigateTo({
							url: '/page_user/xudan?roomId=' + roomId + '&orderNo=' + orderNo
						})
					} else {
						uni.showToast({
							title: '您当前没有订单',
							icon: 'none',
							duration: 2000
						})
					}
				} else if (num == 4) {
					uni.scanCode({
						onlyFromCamera: true,
						scanType: ['qrCode'],
						success: res => {
							function getQueryParam(url, paramName) {
								let regex = new RegExp(`[?&]${paramName}=([^&]*)`)
								let results = regex.exec(url);
								return results ? decodeURIComponent(results[1].replace(/\+/g, ' ')) : null
							}
							console.log(res);
							let sceneValue = res.result
							let decodedValue = decodeURIComponent(sceneValue)
							let id = getQueryParam(decodedValue, 'sn')
							let storeCode = getQueryParam(decodedValue, 'd');
							let roomCode = getQueryParam(decodedValue, 'f');
							if (id) {
								let that = this
								let data = {
									sn: id,
								}
								that.$u.get(`/app/device/isBind?deviceNo=${id}`).then(res => {
									if (res.data == 2) {
										uni.showToast({
											title: '该设备已被绑定',
											icon: 'none',
											duration: 2000
										})
									} else if (res.data == 1) {
										uni.showModal({
											title: '提示',
											content: '该设备未绑定,你需进行绑定吗?',
											success: function(res) {
												if (res.confirm) {
													that.$u.put("/app/device/bind", data).then(res => {
														if (res.code == 200) {
															uni.showToast({
																title: '绑定成功',
																icon: 'success',
																duration: 2000
															})
															that.userType = '01'
														}
													})
												}
											}
										})
									} else if (res.data == 0) {
										uni.showToast({
											title: '该设备为录入,请先录入',
											icon: 'none',
											duration: 2000
										})
									}
								})
							} else if (storeCode) {
								this.$u.get(`app/getId?storeCode=${storeCode}`).then(resp => {
									if (resp.code == 200) {
										uni.navigateTo({
											url:'/pages/index/index?storeId=' + resp.data
										})
									} else {
										uni.showToast({
											title: res.msg,
											icon: 'none',
											duration: 2000
										})
									}
								})
							} else if (roomCode) {
								this.$u.get(`app/getId?roomCode=${roomCode}`).then(resp => {
									if (resp.code == 200) {
										console.log('这是 roomId:', resp.data);
										let roomId = resp.data
										this.$u.get(`/app/order/getInProgressOrderList`).then(res => {
											if (res.code == 200) {
												if (res.data == null || res.data.length == 0) {
													uni.navigateTo({
														url: '/pages/myorder/index?roomId=' + roomId
													})
												} else {
													uni.navigateTo({
														url: '/page_user/dingdanxq?orderNo=' + res.data[0].orderNo + '&viewType=' + res.data[0].roomType2
													})
												}
											} else if (res.code == 401) {
												uni.navigateTo({
													url: '/pages/login/index'
												})
											} else {
												uni.showToast({
													title: res.msg,
													icon: 'none',
													duration: 2000
												})
											}
										})
									} else {
										uni.showToast({
											title: res.msg,
											icon: 'none',
											duration: 2000
										})
									}
								})
							} else {
								console.log('URL 中未找到 storeCode 或 roomCode');
							}
						}
					})
				} else if (num == 5) {
					uni.switchTab({
						url: '/pages/tj'
					})
				} else if (num == 6) {
					if (this.jinxinglist.length > 0) {
						let storeId = this.jinxinglist[0].storeId
						this.$u.get(`/app/toilet/list?storeId=${storeId}`).then(res => {
							if (res.code == 200) {
								if (res.rows == null || res.rows.length == 0) {
									uni.showToast({
										title: '暂无卫生间',
										icon: 'none',
										duration: 2000
									})
								} else {
									this.cesuolist = res.rows
									this.lanyaobj = res.rows[0]
									if (this.cesuolist.length == 1) {
										this.$u.get(`/app/room/openToilet/${this.cesuolist[0].toiletId}`).then(res => {
											if (res.code == 200) {
												uni.showToast({
													title: '打开成功',
													icon: 'success',
													duration: 2000
												})
												this.cesuoflag = false
											} else if(res.code == 501){
											    this.deviceId = res.msg
											    this.lanyamac = res.msg
											    this.getlanya()
										    }else{
												uni.showToast({
													title: res.msg,
													icon: 'none',
													duration: 2000
												})
											}
										})
									} else {
										this.cesuoflag = true
									}
								}
							}
						})
					} else {
						uni.showToast({
							title: '当前没有订单,请先下单',
							icon: 'none',
							duration: 2000
						})
					}
				}
			},
			// 点击打开厕所门
			btncs(item) {
				this.lanyaobj = item
				console.log(item);
				if (item.deviceId == null) {
					uni.showToast({
						title: '该厕所未安装设备',
						icon: 'none',
						duration: 2000
					})
				} else {
					this.$u.get(`/app/room/openToilet/${item.toiletId}`).then(res => {
						if (res.code == 200) {
							uni.showToast({
								title: '打开成功',
								icon: 'success',
								duration: 2000
							})
							this.cesuoflag = false
						}else if(res.code == 501){
							this.cesuoflag = false
							this.deviceId = res.msg
							this.lanyamac = res.msg
							this.getlanya()
						}else{
							uni.showToast({
								title: res.msg,
								icon: 'none',
								duration: 2000
							})
						}
					})
				}
			},
			// 点击输入框确定执行搜索
			confirm() {
				this.pagesum = 1
				this.getshop()
			},
			// 根据定位来获取门店
			getshop() {
				let data = {
					phoneLon: this.longitude,
					phoneLat: this.latitude,
					cityId: this.cityid,
					keyword: this.sousuovalue,
					type: this.type
				}
				this.$u.post(`/app/getStoreListByLocation?pageNum=${this.pagesum}&pageSize=${this.pagesize}`, data).then(res => {
					if (res.code == 200) {
						this.xiaflag = true
						this.total = res.total
						if (this.pagesum > 1) {
							this.pagesum++
							this.listshop = this.listshop.concat(res.rows)
							this.qingqiuflag = true
						} else {
							this.pagesum++
							this.listshop = res.rows
							this.qingqiuflag = true
						}
						console.log(this.listshop)
					}
				})
			},
			// 获取用户详情
			getinfo() {
				this.$u.get(`/getAppInfo`).then(res => {
					if (res.code == 200) {
						this.userType = res.user.userType
						uni.setStorageSync('user', res.data)
					} else if (res.code == 401) {
						this.jingmo()
					}
				})
			},
			// 静默登录
			jingmo() {
				let that = this
				wx.login({
					success(res) {
						if (res.code) {
							console.log('登录!', res)
							let data = {
								jsCode: res.code,
							}
							that.$u.post(`/loginByopenid?jsCode=${res.code}`, data).then(res => {
								if (res.code == 200) {
									console.log("老用户登录", res)
									that.getinfo()
									wx.setStorageSync('token', res.token)
								}else{
									uni.showModal({
										    title: '温馨提示',  
										    content: '您还未登录,是否前去登录?',  
										    success: function (res) {  
										        if (res.confirm) {
													uni.reLaunch({
														url:'/pages/login/index'
													})
										        } else if (res.cancel) {
										         
										    }  
										}  
									})
								}
							})
						}
					},
				})
			},
			// 获取自身当前经纬度
			getweizhi() {
				uni.getLocation({
					type: 'wgs84',
					success: res => {
						this.longitude = res.longitude
						this.latitude = res.latitude
						this.getshop()
						this.$u.get(`app/getCity?lon=${this.longitude}&lat=${this.latitude}`).then(res => {
							if (res.code == 200) {
								if (this.cityid == '') {
									this.tit = res.data.cityName
								}
							}
						})
					},
					fail: err => {
						// 获取失败,err为错误信息
						console.log('getLocation err:', err)
					}
				})
			},
			// 按下滑动
			onTouchStart(e) {
				this.imgflag = false
				this.touchStartX = e.touches[0].clientX
				this.touchStartY = e.touches[0].clientY
			},
			// 松开滑动
			onTouchEnd(e) {
				this.imgflag = true
				let deltaX = e.changedTouches[0].clientX - this.touchStartX
				let deltaY = e.changedTouches[0].clientY - this.touchStartY
				if (Math.abs(deltaX) > 50 && Math.abs(deltaX) > Math.abs(deltaY)) {
					if (deltaX >= 0) {
						// console.log("左滑")  
					} else {
						// console.log("右滑")  
					}
				} else if (Math.abs(deltaY) > 50 && Math.abs(deltaX) < Math.abs(deltaY)) {
					if (deltaY < 100) {
						if (this.qingqiuflag == true) {
							let sum = (this.pagesum - 1) * this.pagesize
							console.log(sum, this.total)
							if (this.total > sum) {
								this.qingqiuflag = false
								this.getshop()
							}
						}
					} else {
						console.log("下滑")
					}
				}
			},
			// 滑动取消
			onTouchCancel() {
				this.imgflag = true
			},
			// 点击跳转门店详情页
			btndetail(storeId, item) {
				uni.reLaunch({
					url: '/pages/index/index?storeId=' + storeId + '&tit=' + item.name + '&distance=' + item.distance
				})
			},
			// 点击跳转到加盟合作页
			btnjiameng() {
				uni.navigateTo({
					url: '/page_user/zhaoshang'
				})
			},
			// 点击选择定位位置
			btnweizhi() {
				uni.navigateTo({
					url: '/page_user/city'
				})
			}
		}
	}
</script>

<style lang="scss">
	// 离线蓝牙开关
	.lxlanya{
		position: fixed;
		top: 40%;
		left: 50%;
		transform: translateX(-50%);
		width: 500rpx;
		max-height:600rpx;
		background-color: #fff;
		border-radius: 30rpx;
		z-index: 9;
		padding: 30rpx 40rpx;
		box-sizing: border-box;
		.cha{
			font-size: 50rpx;
			position: absolute;
			top: 20rpx;
			right: 30rpx;
			font-weight: 600;
		}
		.lxzt{
			margin-top: 30rpx;
			padding: 0 20rpx;
			box-sizing: border-box;
			view{
				display: flex;
				justify-content: space-between;
				align-items: center;
				image{
					width: 80rpx;
					height: 80rpx;
				}
			}
		}
		.lxtit{
			font-size: 32rpx;
			font-weight: 600;
			width: 100%;
			text-align: center;
			margin-top: 30rpx;
		}
		.kongzhi{
			display: flex;
			justify-content: space-between;
			margin-top: 30rpx;
			.lxkai{
				width: 200rpx;
				height: 80rpx;
				background-color: #48893B;
				color: #fff;
				text-align: center;
				line-height: 80rpx;
				border-radius: 20rpx;
			}
		}
	}
	page {
		background: #fff;
		border-radius: 0rpx 0rpx 0rpx 0rpx;
	}
	#active {
		border: 1px solid #226914 !important;
		background-color: #226914 !important;
		color: #fff !important;
	}
	.activetab {
		font-weight: 600 !important;
		font-size: 32rpx !important;
		color: #3D3D3D !important;
	}
	.cesuoul {
		width: 260rpx;
		max-height: 500rpx;
		background-color: #fff;
		border-radius: 30rpx;
		position: fixed;
		top: 50%;
		left: 50%;
		transform: translateX(-50%);
		z-index: 99;
		padding: 30rpx;
		box-sizing: border-box;
		.anniuqx {
			width: 100%;
			height: 80rpx;
			border: 1px solid #226914;
			text-align: center;
			line-height: 80rpx;
			color: #226914;
			margin-top: 30rpx;
			border-radius: 20rpx;
			font-size: 32rpx;
			font-weight: 600;
		}
		.cesuoli {
			width: 100%;
			.caocuo {
				.name {
					width: 100%;
					text-align: center;
					margin-top: 20rpx;
					font-size: 32rpx;
				}
				.kaiguan {
					padding: 10rpx;
					background-color: #226914;
					color: #fff;
					border-radius: 10rpx;
					margin: auto;
					margin-top: 20rpx;
					width: 100rpx;
					text-align: center;
				}
			}
		}
	}
	.tabqh {
		display: flex;
		width: 100%;
		height: 84rpx;
		background-color: #DEF1DA;
		position: relative;
		border-radius: 30rpx 30rpx 0 0;
		view {
			font-weight: 600;
			font-size: 28rpx;
			color: #7C7C7C;
			text-align: center;
			width: 33%;
			height: 84rpx;
			line-height: 84rpx;
			position: relative;
			text {
				position: absolute;
				z-index: 1;
				left: 50%;
				transform: translateX(-50%);
			}
			image {
				height: 84rpx;
				position: absolute;
				top: 0;
				left: 0;
			}
		}
	}
	.jinxinx {
		width: 60rpx;
		height: 60rpx;
		position: fixed;
		top: 1216rpx;
		left: 50%;
		transform: translateX(-50%);
		z-index: 2;
	}
	.karaokeroom {
		position: fixed;
		top: 332rpx;
		left: 50%;
		transform: translateX(-50%);
		z-index: 2;
		width: 674rpx;
		height: 828rpx;
		background: linear-gradient(180deg, #DEF1DA 0%, #FFFFFF 100%, #FFFFFF 100%);
		border-radius: 36rpx 36rpx 36rpx 36rpx;
		.top {
			font-weight: 600;
			font-size: 44rpx;
			color: #48893B;
			width: 100%;
			text-align: center;
			margin-top: 52rpx;
			margin-bottom: 44rpx;
		}
		.anniu {
			width: 584rpx;
			height: 86rpx;
			background: #48893B;
			border-radius: 43rpx 43rpx 43rpx 43rpx;
			font-size: 36rpx;
			color: #FFFFFF;
			text-align: center;
			line-height: 86rpx;
			margin: auto;
			position: fixed;
			left: 50%;
			transform: translateX(-50%);
			bottom: 72rpx;
		}
		.roomlist {
			height: 480rpx;
			overflow: scroll;
			.room_item {
				width: 584rpx;
				height: 224rpx;
				border: 2rpx solid #969696;
				background-color: #fff;
				border-radius: 20rpx;
				margin: auto;
				display: flex;
				align-items: center;
				padding: 34rpx;
				box-sizing: border-box;
				margin-top: 26rpx;
				.lt {
					image {
						width: 154rpx;
						height: 154rpx;
						margin-right: 22rpx;
						border-radius: 20rpx;
					}
				}
			}
		}
	}
	.mask {
		width: 100%;
		height: 100vh;
		position: fixed;
		top: 0;
		left: 0;
		background-color: #000;
		opacity: .2;
	}
	.page {
		width: 750rpx;
		.xuanfu {
			position: fixed;
			top: 38%;
			right: 30rpx;
			animation: fadeInDowns .5s ease-out forwards;
			image {
				width: 90rpx;
				height: 90rpx;
				display: block;
				margin-bottom: 44rpx;
			}
		}
		@keyframes fadeInDowns {
			from {
				opacity: 0;
				transform: translateX(50px);
			}
			to {
				opacity: 1;
				transform: translateX(0);
			}
		}
		@keyframes fadeInDown {
			from {
				opacity: 0;
				transform: translateX(-50px);
			}
			to {
				opacity: 1;
				transform: translateX(0);
			}
		}
		.xuanfus {
			position: fixed;
			top: 34%;
			right: -80rpx;
			animation: fadeInDown .5s ease-out forwards;
			image {
				width: 90rpx;
				height: 90rpx;
				display: block;
				margin-top: 44rpx;
			}
		}
		.jiameng {
			width: 100%;
			text-align: center;
			background-color: #fff;
			margin: auto;
			position: fixed;
			bottom: 0;
			left: 0;
			.gb {
				width: 100rpx;
				height: 40rpx;
				background-color: rgba(0, 0, 0, 0.15);
				position: absolute;
				top: 0;
				right: 22rpx;
				display: flex;
				align-items: center;
				justify-content: center;
				border-radius: 0 30rpx 0 0;
				text {
					font-size: 34rpx;
				}
			}
			image {
				width: 710rpx;
				height: 196rpx;
				border-radius: 30rpx;
			}
		}
		.shoplist {
			width: 750rpx;
			max-height: 1250rpx;
			background: #FFFFFF;
			box-sizing: border-box;
			overflow: scroll;
			padding-bottom: 240rpx !important;
			box-sizing: border-box;
			.shop_item {
				margin: auto;
				display: flex;
				margin-top: 30rpx;
				box-sizing: border-box;
				width: 674rpx;
				height: 330rpx;
				background: #FFFFFF;
				padding: 20rpx 18rpx;
				box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(0, 0, 0, 0.15);
				border-radius: 18rpx 18rpx 18rpx 18rpx;
				.rt {
					.storebq {
						margin-top: 16rpx;
						display: flex;
						image {
							width: 100rpx;
							height: 40rpx;
							margin-right: 10rpx;
						}
					}
					.yuding {
						display: flex;
						align-items: center;
						font-size: 24rpx;
						color: #48893B;
						margin-top: 26rpx;
						margin-left: 248rpx;
						.one {
							width: 32rpx;
							height: 32rpx;
							margin-right: 10rpx;
						}
						.two {
							width: 14rpx;
							height: 36rpx;
							margin-left: 10rpx;
						}
					}
					.juli {
						display: flex;
						justify-content: space-between;
						margin-top: 16rpx;
						align-items: center;
						.kmjuli {
							width: 210rpx;
							height: 40rpx;
							border-radius: 4rpx 4rpx 4rpx 4rpx;
							border: 2rpx solid #48893B;
							text-align: center;
							line-height: 36rpx;
							font-size: 26rpx;
							color: #48893B;
						}
						.juliimg {
							image {
								width: 60rpx;
								height: 60rpx;
								margin-left: 26rpx;
							}
						}
					}
					.dizhi {
						font-size: 26rpx;
						color: #7C7C7C;
						margin-top: 16rpx;
					}
					.name {
						font-weight: 600;
						font-size: 36rpx;
						color: #3D3D3D;
					}
				}
				.lt {
					margin-right: 30rpx;
					image {
						width: 186rpx;
						height: 220rpx;
						border-radius: 10rpx;
					}
					.hour {
						font-size: 32rpx;
						color: #48893B;
						margin-top: 32rpx;
					}
				}
			}
		}
		.serchshop {
			display: flex;
			margin-top: 40rpx;
			align-items: center;
			justify-content: space-between;
			padding-left: 34rpx;
			padding-right: 34rpx;
			box-sizing: border-box;
			.search {
				width: 468rpx;
				height: 72rpx;
				line-height: 72rpx;
				background: #FFFFFF;
				border-radius: 6rpx 6rpx 6rpx 6rpx;
				position: relative;
				input {
					margin-left: 94rpx;
					height: 72rpx;
					line-height: 72rpx;
				}
				/deep/ .uicon-search {
					position: absolute;
					top: 24rpx !important;
					left: 26rpx !important;
				}
			}
			.dingwei {
				display: flex;
				font-weight: 600;
				font-size: 32rpx;
				color: #48893B;
				align-items: center;
				.dwimg {
					width: 40rpx;
					height: 40rpx;
					margin-right: 12rpx;
				}
				.xlimg {
					width: 26rpx;
					height: 14rpx;
					margin-left: 12rpx;
				}
			}
		}
		.title {
			font-weight: 600;
			font-size: 36rpx;
			color: #226914;
			line-height: 50rpx;
			height: 50rpx;
			padding-left: 34rpx;
			box-sizing: border-box;
		}
		.imgbj {
			width: 750rpx;
			height: 610rpx;
			position: fixed;
			top: 0;
			left: 0;
			z-index: -1;
		}
	}
</style>