<template>
    <view class="container-view-contril">
		<scroll-view class="scroll-view flex-row" scroll-x="true">
			<view @tap="tapOpen" v-for="(item,index) of contrilList" :key="index" :data-item="item" class="contril-item flex-row">
				<img class="contril-item-img"  :src="item.isTurnOn==0?item.offUrl:item.iconUrl" alt="">
				<text >{{item.name}}</text>
			</view>
			<view class="contril-item flex-row" @tap="toMoreFunctionSet">
				<img class="contril-item-img" src="https://qiniu.bms16.com/Ft3pNyStT22LP8Ds1Mru2LoTHadx" alt="">
				<text>{{$t("更多功能")}}</text>
			</view>
		</scroll-view>
		<view class="flex-row power-view">
			<!-- <view class="power-on-off flex-row" >
				<view :style="sliderStyle" @touchstart="touchStart" @touchmove="touchMove" @touchend="touchEnd" class="power-on-btn"><image style="width: 52rpx;height: 52rpx;" src="https://qiniu.bms16.com/Fkovrpq1bexe-Unal_VJREbLUhdu" mode=""></image></view>
				<view class="power-on-text" >滑动启动</view>
			</view> -->
			<custom-switch  :width="'400rpx'"
				:height="'96rpx'"  :modelValue="switchValue" :fetchData="loadData"></custom-switch>
			<!-- <custom-switch :defaultPosition="'right'" :width="'400rpx'" 
			    :height="'96rpx'"  v-model="switchValue" :fetchData="loadData"></custom-switch> -->
			<view @tap="navToInputPages" class="car-change-battery flex-row">
				<view class="car-change-btn"><image style="width: 80rpx;height: 80rpx;" src="https://qiniu.bms16.com/FgvnT-msLbL5RHjl6fvNlM0kab5N" mode=""></image></view>
				<view class="car-change-text">车辆换电</view>
			</view>
		</view>
		<view v-if="popupControlShow" class="show-modal">
			<view class="modal-info">
				<view class="popup-title">{{($t(popText)==$t('开机'))?$t('开启车辆'):($t(popText)==$t('关机')?$t('关闭车辆'):$t(popText))}}</view>
				<view class="popup-content">{{$t("您确认")+(($t(popText)==$t('开机'))?$t('开启车辆'):($t(popText)==$t('关机')?$t('关闭车辆'):$t(popText)))+$t("吗")}}</view>
				<view class="flex-row modal-footer">
					<view class="show-btn cencel-btn-pop" @tap="closePopup">{{$t("取消")}}</view>
					<view class="show-btn ok-btn-pop" @tap="tapBlueToothCmd">{{$t("确定")}}</view>
				</view>
			</view>
		</view>
		<!-- <u-popup v-model="popupControlShow" mode="center" border-radius="30" height="30%" length="60%">
			<view class="popup-title">开启车辆</view>
			<view class="popup-content">确定打开</view>
			<view class="flex-row">
				<view class="sure-btn cencel-btn" @tap="closePopup">取消</view>
				<view class="sure-btn ok-btn" >确定</view>
			</view>
		</u-popup> -->
		<!-- <view v-if="isShowMore" class="show-more">
			<view class="more-info">
				<view class="flex-row flex-between model-title">
					<view>{{$t("更多功能")}}</view>
					<view>
						<image style="width: 32rpx;height: 32rpx;" @tap="isShowMore = false"
							src="https://qiniu.bms16.com/FtoTEHOJiUf_gjPCJGGHMsAtHI5M" />
					</view>
				</view>
				<view style="height: 300rpx;">
					<view data-url="test" @tap="navUrl" class="more-item flex-row">
						<img class="more-img" src="https://qiniu.bms16.com/FgxiD-W96FGvgyLI_kXUfWVDYLQ9" alt="">
						<text>{{$t("胎压")}}</text>
					</view>
					<view class="more-item flex-row">
						<img class="more-img" src="https://qiniu.bms16.com/FgxiD-W96FGvgyLI_kXUfWVDYLQ9" alt="">
						<text>{{$t("电池信息")}}</text>
					</view>
					<view @tap="navCarLocation" class="more-item flex-row">
						<img class="more-img" src="https://qiniu.bms16.com/FgxiD-W96FGvgyLI_kXUfWVDYLQ9" alt="">
						<text>{{$t("导航")}}</text>
					</view>
				</view>
				<view class="lift-btn-view">
					<view class="lift-btn">{{$t("解除绑定")}}</view>
				</view>
			</view>
		</view>
   -->
	</view>
</template>

<script>
	var bluetooth = require('@/common/bluetooth.js');
	var config = require('@/common/config.js');
	var common = require('@/common/common.js');
	var http = require('@/common/http.js');
	import CustomSwitch from '@/component/customSwitch.vue'; // 引入组件
	
	import controlMixin from '@/mixin/index';
	import i18n from '@/locale/index.js'
	import {
			getFunctionTag,
			setFunctionTag
		} from '@/common/storage.js';
export default {
	mixins: [controlMixin],
	props:{
		contrilList: {
			type: Array,
			default: () => []
		},
		online: {
			type: Boolean,
			default: false
		},
	},
	components: {
		CustomSwitch
	},
    data() {
        return {
			// popText:'',
			// popupControlShow:false,
			// controlType:null,//选择的车辆控制
			switchValue: {state:false,time:0},
			isShowMore:false,
			car_line:false,
			// startX: 0, // 滑块开始滑动的初始位置
			// moveX: 0, // 滑块滑动的距离
			// unlocked: false, // 是否解锁成功的标志
			
		};
    },
	computed: {
	    // 计算滑块的样式
	    sliderStyle() {
	      return {
	        transform: `translateX(${this.moveX}px)`
	      };
	    }
	},
	mounted() {
		// this.contrilList = getFunctionTag().activeTag
		// setTimeout(()=>{
			this.switchValue.state=uni.getStorageSync('car_info').acc_state==1
		// },50)
	},
 
    /**
     * 组件的方法列表
     */
    methods: {
		tapOpen(e){
				const item = e.currentTarget.dataset.item;
				this.changClick(item)
		},
		toMoreFunctionSet() {
			uni.navigateTo({
				url: '/pages/carFunctionSet/more?online='+this.online
			})
		},
		trunOn(type){
			
			if (this.carOnline) {
				//开机1 关机0
				const car_sn= uni.getStorageSync('car_info').car_sn;
				const pData = {
					car_sn,
					switch: switchType
				}
				const me=this
				common.loading();
				http.postApi(config.API_FLK_CAR_SWITCH, pData, (resp) => {
					uni.hideLoading();
					if (resp.data.code === 200) {
						common.simpleToast(me.popText + '成功');
						const activeTag = me.contrilList.map(item => {
							if('isLock' in item){
								item.isTurnOn = (item.isTurnOn == 1) ? 0 : 1
								item.name = i18n.t((item.isTurnOn == 1) ? '关机' : '开机')
							}
							return item
						})
						const tag = getFunctionTag().tag
						setFunctionTag({
							activeTag,
							tag
						})
						me.$emit('loadCarDetail',pData,car_sn)
					} else {
						common.simpleToast(resp.data.msg);
					}
				});
			}else{
				//车辆离线
				const car_sn= uni.getStorageSync('car_info').car_sn;
				common.loading();
				if (type==1) {
					bluetooth.turnOnCar(car_sn, () => {
						uni.hideLoading();
					});
				}else{
					bluetooth.turnOffCar(car_sn, () => {
						uni.hideLoading();
					});
				}
			}
		},
		async navToInputPages() {
			const me = this
			const exchange_need_package=uni.getStorageSync('car_info').exchange_need_package;
			if(exchange_need_package==0){
				uni.scanCode({
					scanType:['qrCode'],
					success(res) {
						me.loadGeneralQRData(res.result)
					},
					fail() {
						me.$msg('扫码失败,请重新扫码')
					}
				})
			}else if(exchange_need_package==1){
				uni.showModal({
					title: '温馨提示',
					content: '您还未购买换电套餐,是否前往进行换电套餐?',
					showCancel: true,
					cancelText: '取消',
					confirmText: '前往购买',
					success: function(res) {
						if (res.confirm) {
							if(isCarLocation){
								uni.navigateTo({
									url: `/pages/batteryPackage/batteryPackage`
								})
							}else{
							}
							
						}
					},
					fail: function(res) {},
					complete: function(res) {},
				})
			}else if(exchange_need_package==-1){
				this.$msg('当前车辆暂未绑定电池')
			}
			
		},
		loadGeneralQRData(options) {
			console.log(options)
			let objOpt = this.$paramsObj(options)
			
			if (objOpt.d) {
				console.log('扫码的是机柜')
				uni.navigateTo({
					url: `/pages/cabinetDetail/cabinetDetail?dev_id=${objOpt.d}`,
				})
				return
			} else {
				console.log('扫码的是车辆')
				this.$msg('请扫描机柜二维码')
				return
			}
		},
		
		async loadData() {
			return new Promise((resolve,reject) => {
				if (uni.getStorageSync('car_info').online==1) {
								//开机1 关机0
								const car_sn= uni.getStorageSync('car_info').car_sn;
								const switchType= uni.getStorageSync('car_info').acc_state==1?0:1;
								const pData = {
									car_sn,
									switch: switchType
								}
								const me=this
								common.loading();
								http.postApi(config.API_FLK_CAR_SWITCH, pData, (resp) => {
									uni.hideLoading();
									console.log(resp.data)
									
									if (resp.data.code === 200) {
										//const textStr = (this.switchValue==0)?'开机':'关机'
	
										// const activeTag = me.contrilList.map(item => {
										// 	if('isLock' in item){
										// 		item.isTurnOn = (item.isTurnOn == 1) ? 0 : 1
										// 		item.name = i18n.t((item.isTurnOn == 1) ? '关机' : '开机')
										// 	}
										// 	return item
										// })
										// const tag = getFunctionTag().tag
										// setFunctionTag({
										// 	activeTag,
										// 	tag
										// })
										
										setTimeout(() => {
											resolve()
											//this.switchValue=!this.switchValue
											this.switchValue = JSON.stringify({
												state:!this.switchValue.state,
												time: Math.floor(Date.now() / 1000)
											})
										}, 1000)
										me.$emit('loadCarDetail',pData.car_sn)
									} else {
										 setTimeout(() => {
										 	resolve()
										 	//this.switchValue=!this.switchValue
										 	this.switchValue = JSON.stringify({
										 		state:this.switchValue.state,
										 		time:Math.floor(Date.now() / 1000)
										 	})
											// common.simpleToast(resp.data.msg);
										 }, 1000)
										//setTimeout(resolve, 1000);
										
									}
								});
							}else{
								//车辆离线
								const car_sn= uni.getStorageSync('car_info').car_sn;
								common.loading();
								if (type==1) {
									bluetooth.turnOnCar(car_sn, () => {
										uni.hideLoading();
									});
								}else{
									bluetooth.turnOffCar(car_sn, () => {
										uni.hideLoading();
									});
								}
							}
				// console.log(me.switchValue,'this.switchValue');
				// // this.trunOn()
				// setTimeout(resolve, 1000); // 模拟 5 秒请求时间
			});
		}
		// tapOpen(e){
		// 	this.carOnline=this.online
		// 	console.log( getFunctionTag().activeTag, getFunctionTag());
		// 	const {name,type} = e.currentTarget.dataset.item;
		// 	this.setData({
		// 		popText:name,
		// 		cmdType:type,
		// 		popupControlShow:true
		// 	})
		// },
		// tapBlueToothCmd(){
		// 	const car_info= uni.getStorageSync('car_info');
		// 	const me=this
		// 	// 判断车辆是否在线状态 true 在线调用接口 不在线提示连接蓝牙
		// 	if (this.online) {
		// 		if(this.cmdType=='batteryInfo'){
		// 			uni.navigateTo({
		// 				url:`/pages/batteryDetail/batteryDetail`
		// 			})
		// 		}else if(this.cmdType=='navigation'){
		// 			const {
		// 				address,
		// 				latitude,
		// 				longitude,
		// 				car_name
		// 			} =car_info
		// 			uni.openLocation({
		// 				latitude: latitude - 0,
		// 				longitude: longitude - 0,
		// 				scale: 15,
		// 				name: car_name,
		// 				address: address,
		// 				success: function (res) {},
		// 			})
		// 		}else if(this.cmdType=='turnOnOrOff'){
		// 			const switchType=this.contrilList.find(item => item.isTurnOn)
		// 			const pData={
		// 				car_sn:car_info.car_sn,
		// 				switch:switchType
		// 			}
		// 			const me=this
		// 			common.loading();
		// 			http.postApi(config.API_FLK_CAR_SWITCH, pData, (resp) => {
		// 				uni.hideLoading();
		// 				if (resp.data.code === 200) {
		// 					common.simpleToast(me.popText + '成功');
		// 					const activeTag=me.contrilList.map(item=>{
		// 						item.isTurnOn=(item.isTurnOn==1)?0:1
		// 						item.name=i18n.t((item.isTurnOn==1)?'关机':'开机')
		// 						return item
		// 					})
		// 					const tag=getFunctionTag().tag
		// 					setFunctionTag({activeTag,tag})
							
		// 				} else {
		// 					common.simpleToast(resp.data.msg);
		// 				}
		// 			});
		// 		}else{
		// 			const testArr=[
		// 				{type:'findCar',opt_type:1},
		// 				{type:'openSeatBag',opt_type:0},
		// 				{type:'openTailBox',opt_type:2},
		// 				]
		// 			const pData = testArr.find(i=>i.type===this.cmdType)
		// 			const me=this
		// 			common.loading();
		// 			http.postApi(config.API_FLK_CAR_REMOTE_CONTROL, pData, (resp) => {
		// 				uni.hideLoading();
		// 				if (resp.data.code === 200) {
		// 					common.simpleToast(me.popText + '成功');
		// 				} else {
		// 					common.simpleToast(resp.data.msg);
		// 				}
		// 			});
		// 		}
		// 	} else {
		// 		//蓝牙是否已经连接 未连接提示去连接 已连接下发对应指令
		// 		const isBluetoothConnect = app.globalData.connectionStateChangeFunc[car_info.car_sn]
		// 		if(isBluetoothConnect){
		// 			const isTurnOn=this.contrilList.find(item => item.isTurnOn).isTurnOn==1
		// 			console.log(isTurnOn,this.cmdType,this.contrilList);
		// 			const bluetoothCommands = {
		// 				'turnOnOrOff': isTurnOn?bluetooth.turnOnCar:bluetooth.turnOffCar,
		// 				'findCar': bluetooth.findCarCmd,
		// 				'openSeatBag': bluetooth.openCarSeat,
		// 				'openTailBox': bluetooth.openCarTrunk,
		// 				'tirePressure': bluetooth.getCarPressure
		// 			};
		// 			common.loading();
		// 			const command = bluetoothCommands[this.cmdType];
		// 			if (command) {
		// 				command('900000997', () => {
		// 					uni.hideLoading();
		// 					if(this.cmdType=='openSeatBag'||this.cmdType=='openTailBox'){
		// 						common.simpleToast('操作成功');
		// 					}
		// 					console.log(`发送${this.popText}指令结束`);
		// 				});
		// 			}
		// 		}else{
		// 			uni.showModal({
		// 				title: '提示',
		// 				content: '当前车辆处于离线,是否前往开启蓝牙配对操作车辆?',
		// 				showCancel: true,
		// 				cancelText: '取消',
		// 				confirmText: '确定',
		// 				success: function(res) {
		// 					if (res.confirm) {
		// 						me.$emit('toBluetooth')
		// 					}
		// 				},
		// 				fail: function(res) {},
		// 				complete: function(res) {},
		// 			})
		// 		}
				
		// 	}
		// 	this.popupControlShow=false

		// },
		// // closePopup(){
		// 	this.popupControlShow=false
		// },
		// tapOpenMore(){
		// 	// this.isShowMore=true
		// },
		// closeMore(){
		// 	this.isShowMore=false
		// },
		// navUrl(url){
		// 	// ifconsole.log(url,'sj');
		// },
		// navCarLocation(){
		// 	//前往配置更多功能
		// 	uni.navigateTo({
		// 		url:'/pages/carLocation/carLocation'
		// 	})
		// },
		
	}
};
</script>
<style>
@import './control.css';
</style>