<template>
	<view>
		<image mode="widthFix" class="width100" :src="storeList.gasLogoSmall"></image>
		<view class="height100p titlecon backcorfff">
			<view class="height75 paddtop25 width90">
				<view class="flleft width80p">
					<view class="width100 text1 font18 fontwig6 fcor333">{{storeList.gasName}}</view>
					<view class="width100 font14 fcor666 mart5">{{storeList.gasAddress}}</view>
				</view>
				<view class="flright reimg fotct width20" @click="seeloaction">
					<image mode="widthFix" :src="imagewxUrl+imgadres"></image>
					<view class="fcor089">{{storeList.distance}}km</view>
				</view>
			</view>
			<view class="fcor999 font14 width90">
				营业时间 : 00:00-23:59
			</view>
		</view>
		<!-- 标价 -->
		<view class="width90 relbj">
			<view class="height60">
				<view class="flleft mart10 bjcss font16 fontwig6" @click="showPopup(1)">
					{{oilNo}}
					<image mode="widthFix" :src="imagewxUrl+imgadres2"></image>
				</view>
				<view class="margle20 font15 fcoreb5 flleft mart20  borRit">
					<view class="fontspec fotct ">平台价</view>
					<view class="fontwig6 font20"><text class="font14">￥</text>{{priceVip}}</view>
				</view>
				<view class="margle20 font15 fcor666 flleft mart20  borRit">
					<view class="fontspec fotct ">油站价</view>
					<view class="fontwig6 font20"><text class="font14">￥</text>{{priceGun}}</view>
				</view>
				<view class="margle20 font15 fcor666 flleft mart20 ">
					<view class="fontspec fotct ">国标价</view>
					<view class="fontwig6 font20"><text class="font14">￥</text>{{priceOfficial}}</view>
				</view>
			</view>
		</view>
		<view class="line10 mart15"></view>
		<!-- 我要加油 -->
		<view class="width90 mart15 font16 fcor666">我要加油</view>
		<view class="width90 relbj mart15">
			<view class="width50 flleft fotct" @click="showPopup(1)">
				<view class="width100 fcor999 font14 mart10">选择油号</view>
				<view class="width100 mart10">
					<image mode="widthFix" style="width: 20px;" :src="imagewxUrl+imgadres1"></image>
					<text class="font20 fcor333 fontwig6 margle">{{oilNo}}</text>
					<image mode="widthFix" class="margle" style="width: 10px; " :src="imagewxUrl+imgadres2">
					</image>
				</view>
			</view>
			<view class="width50 flright fotct" @click="showPopup(2)">
				<view class="width100 fcor999 font14 mart10">选择油枪</view>
				<view class="width100 mart10 ">
					<image mode="widthFix" style="width: 20px;" :src="imagewxUrl+imgadres3"></image>
					<text class="font20 fcor333 fontwig6 margle">{{gunNo}}号</text>
					<image mode="widthFix" class="margle" style="width: 10px; " :src="imagewxUrl+imgadres2">
					</image>
				</view>
			</view>
		</view>
		<view class="line10 mart15"></view>
		<!--加油金额-->
		<view class="width90 mart15 font16 fcor666">加油金额</view>
		<view class="width90 height40 mart10" style="border: 1px solid #f2f2f2;">
			<view class="width8 flleft">￥</view>
			<input type="digit" class="font16 width60 flleft height40" placeholder="输入金额(保留2位小数)" v-model="inputMoney"
				@input="Listeningfocus" />
			<view class="width30 height40 flright font14 fcor999 fotct"
				style="border-left: 1px solid #f2f2f2;line-height: 40px;">
				约{{oilLiters}}L
			</view>
		</view>
		
		<view class="list width90">
			<view class="box" v-for="(amount,index) in amountList" :key="index" @click="select(amount)"
				:class="{'on':amount.codeValue == inputMoney}">
				<view class="heTitle fcor333 paddtop10" :class="{'colorfe80':amount.codeValue == inputMoney}">{{amount.codeValue}}元</view>
				<view class="width100 font12 fcor333 mart5" :class="{'colorfe80':amount.codeValue == inputMoney}">最高优惠¥{{amount.codeName}}</view>
			</view>
		</view>
		
		<view class="line10 mart15"></view>
		<view class="width90 height40">
			<view class="flleft width50 font15 fcor666">平台补贴:
				<text class="fcoreb5 margle">¥{{oilSubsidy}}</text>
			</view>
			<view class="flright width50 font15 fcor666">平台折扣:
				<text class="fcoreb5 margle" v-if="discount != 1">{{(discount * 100).toFixed(2)}}折</text>
				<text class="fcoreb5 margle" v-else>无</text>
			</view>
		</view>
		<view class="width90 height40">
			<view class="flleft width50 font15 fcor666">每升优惠:<text class="fcoreb5 margle">
					¥{{litersPreferences}}</text></view>
			<view class="flright width50 font15 fcor666">本次优惠:<text class="fcoreb5 margle">
					¥{{totalPreferences}}</text></view>
		</view>
		<view class="line10 mart15"></view>
		<!-- <view class="list width90">
			<view class="box" v-for="(amount,index) in amountList" :key="index" @click="select(amount)"
				:class="{'on':amount.price == inputMoney}">
				<view class="heTitle fcor333" :class="{'fcor089':amount.id == inputAmount}">{{amount.price}}元</view>
			</view>
		</view> -->
		<view class="height60 width100"></view>
		<!-- 底部按钮 -->
		<view class="footer">
			<view class="flleft padleft15 font15 fcoreb5">
				合计: ￥<text class="font24">{{totalPrice}}</text><text class="font12 fcor666"
					v-if="priceVip != priceOfficial">优惠约:￥{{discountPrice}}</text>
			</view>

			<!-- #ifdef MP -->
			<button class="reBtn flright" v-if="user.phone == null" @click="jumpPhone">去支付</button>
			<button class="reBtn flright" v-else @click="postionIng">去支付</button>
			<!-- #endif -->
			<!-- #ifdef H5 -->
			<button class="reBtn flright" v-if="user.phone == null" @click="jumpH5Bding">去支付</button>
			<button class="reBtn flright" v-else @click="postionIng">去支付</button>
			<!-- #endif -->

		</view>
		<!-- 底部弹窗 -->
		<wybPopup ref="popup" type="bottom" height="600" width="500" radius="6" :showCloseIcon="true">
			<view class="fotct font18 fontwig6 fcor333 mart10 height30" v-if="typeId == 1">选择油号</view>
			<view class="fotct font18 fontwig6 fcor333 mart10 height30" v-if="typeId == 2">选择油枪</view>
			<view class="font15 fcor666 width90 mart10 height22" v-if="typeId == 1">汽油油号</view>
			<view class="font15 fcor666 width90 mart10 height22" v-if="typeId == 2">汽油油枪</view>
			<view v-if="typeId == 1">
				<view :class="swiper.oilNoName ==  oilNo?'activeRefuel':'refuel'" v-for="(swiper,index) in detailList"
					:key="index" @click="changeValue(swiper)">
					{{swiper.oilNoName}}
				</view>
			</view>

			<view v-if="typeId == 2">
				<view :class="item.gunNo ==  gunNo?'activeRefuel':'refuel'" v-for="(item,index) in gunnumber"
					:key="index" @click="changeValue2(item)">
					{{item.gunNo}}
				</view>
			</view>
		</wybPopup>
		<view class="height30"></view>
	</view>
</template>

<script>
	import {
		getGasDetailByStoreKey,
		addOrder,
		getDictionaryByCodeType,
		getDictionaryByCodeTypeOl,
		oilPriceDiscountCompute
	} from '../../../Utils/Api.js';
	import wybPopup from '../../../components/wyb-popup/wyb-popup.vue';
	let app = getApp();
	export default {
		components: {
			wybPopup
		},
		data() {
			return {
				imagewxUrl: app.globalData.imageWxImg,
				imgadres: 'dhl.png',
				imgadres2: 'xiala.png',
				imgadres1: 'yhl.png',
				imgadres3: 'yql.png',
				detailList: [],
				gunnumber: [],
				user: '',
				amountList: [
					// {
					// 	id: '1',
					// 	price: '200'
					// },
					// {
					// 	id: '2',
					// 	price: '300'
					// },
					// {
					// 	id: '3',
					// 	price: '400'
					// },
					// {
					// 	id: '4',
					// 	price: '500'
					// }
				],
				inputAmount: '',
				store_key: '',
				storeList: '',
				oilNo: '',
				priceVip: '',
				priceOfficial: '',
				priceGun: '',
				gunNo: '',
				typeId: '',
				counId: '',
				inputMoney: '',
				gasOilNo: '',
				litre: '',
				totalPrice: '0.00',
				discountPrice: '0.00',
				gasGunList: [],
				oilType: '',
				distance: 9999, //距离限制
				xzMoney: '300', //金额限制
				oilLiters: '0', //加油升数
				discount: '0', //平台折扣
				oilSubsidy: '0', //加油补贴
				litersPreferences: '0', //每升优惠
				pricePreferences: '0', //优惠价格
				totalPreferences: '0', //本次优惠
			}
		},
		onLoad(options) {
			this.store_key = options.id;
			this.counId = options.desId;
			this.oilNo = options.oilNo;
			this.getGasDetailByStoreKey();
			this.getDictionaryByCodeTypeOl();
			this.getDictionaryByCodeTypeMoney();
			this.getDictionaryByCodeType();
		},
		onShow() {
			this.user = app.globalData.userInfo;
		},
		methods: {
			//查询油品
			getDictionaryByCodeType() {
				let datas = {
					codeType: 'REFUEL_PRICE'
				}
				getDictionaryByCodeType(datas).then(res => {
					if (res.return_code == '000000') {
						this.amountList = res.return_data;
					}
				})
			},
			//前往导航
			seeloaction() {
				uni.showToast({
					title: '当前暂不支持导航',
					duration:2000,
					icon: "none"
				});
				// window.open(
				// 	`//uri.amap.com/navigation?from=${app.globalData.longitude},${app.globalData.latitude},我的位置&to=${this.storeList.gasAddressLongitude},${this.storeList.gasAddressLatitude},${this.storeList.gasAddress}&mode=car&policy=1&src=mypage&coordinate=gaode&callnative=1`
				// )
				// uni.openLocation({
				// 	latitude: Number(this.storeList.gasAddressLatitude), //目的地的定位
				// 	longitude: Number(this.storeList.gasAddressLongitude), //目的地的定位
				// 	name: this.storeList.gasName,
				// 	address: this.storeList.gasAddress
				// })
			},
			//显示弹出
			showPopup(item) {
				this.typeId = item;
				this.$refs.popup.show();
			},
			//查询详情
			getGasDetailByStoreKey() {
				this.gunnumber = [];
				uni.showLoading({
					title: '加载中...'
				})
				let params = {
					storeKey: this.store_key,
					latitude: app.globalData.latitude,
					longitude: app.globalData.longitude
				}
				getGasDetailByStoreKey(params).then(res => {
					uni.hideLoading();
					if (res.return_code == '000000') {
						this.storeList = res.return_data;
						// if (!this.oilNo) {
						// 	this.oilNo = res.return_data.oilPriceList[0].oilNoName;
						// }else{
						let oillist = res.return_data.oilPriceList;
						for (var i = 0; i < oillist.length; i++) {
							if (this.oilNo == oillist[i].oilNoName) {
								this.priceVip = oillist[i].priceVip;
								this.priceGun = oillist[i].priceGun;
								this.priceOfficial = oillist[i].priceOfficial;
								this.oilType = oillist[i].oilType;
							}
						}
						// }
						// this.priceVip = res.return_data.oilPriceList[0].priceVip;
						// this.priceGun = res.return_data.oilPriceList[0].priceGun;
						// this.priceOfficial = res.return_data.oilPriceList[0].priceOfficial;
						this.detailList = res.return_data.oilPriceList;
						// this.oilType = res.return_data.oilPriceList[0].oilType;
						this.gasGunList = res.return_data.gasGunList;
						for (var i = 0; i < res.return_data.gasGunList.length; i++) {
							if (this.oilNo == res.return_data.gasGunList[i].oilNoName) {
								this.gunnumber.push(res.return_data.gasGunList[i])
								// this.gunNo = res.return_data.gasGunList[i].gunNo;
								this.gasOilNo = res.return_data.gasGunList[i].oilNo;
							}
						}
					} else {
						uni.showToast({
							title: res.return_msg,
							icon: "none",
							duration: 2000,
							success() {
								setTimeout(() => {
									uni.navigateBack({})
								}, 2000)
							}
						});
					}
				})
			},
			//距离限制
			getDictionaryByCodeTypeOl() {
				let datas = {
					codeType: 'MILEAGE_LIMIT'
				}
				getDictionaryByCodeTypeOl(datas).then(res => {
					if (res.return_code == '000000') {
						this.distance = res.return_data.codeValue;
					}
				})
			},
			//加油金额限制
			getDictionaryByCodeTypeMoney() {
				let datas = {
					codeType: 'TY_PRICE_LIMIT'
				}
				getDictionaryByCodeTypeOl(datas).then(res => {
					if (res.return_code == '000000') {
						this.xzMoney = res.return_data.codeValue;
					}
				})
			},
			//选择油号
			changeValue(item) {
				this.gunnumber = [];
				this.oilNo = item.oilNoName;
				for (var i = 0; i < this.gasGunList.length; i++) {
					if (this.oilNo == this.gasGunList[i].oilNoName) {
						this.gunnumber.push(this.gasGunList[i])
						// this.gunNo = this.gasGunList[i].gunNo;
						this.gasOilNo = this.gasGunList[i].oilNo;
					}
				}
				this.oilType = item.oilType;
				this.gasOilNo = item.oilNo;
				this.priceVip = item.priceVip;
				this.priceOfficial = item.priceOfficial;
				this.priceGun = item.priceGun;
				this.totalPrice = '0.00';
				this.discountPrice = '0.00';
				this.inputMoney = '';
				this.oilLiters = '0';
				this.discount = '0';
				this.oilSubsidy = '0';
				this.litersPreferences = '0';
				this.pricePreferences = '0';
				this.totalPreferences = '0';
				this.$refs.popup.hide();
			},
			//选择油枪
			changeValue2(item) {
				this.gunNo = item.gunNo;
				// this.totalPrice = '0.00';
				// this.discountPrice = '0.00';
				// this.inputMoney = '';
				// this.oilLiters = '0';
				// this.discount = '0';
				// this.oilSubsidy = '0';
				// this.litersPreferences = '0';
				// this.pricePreferences = '0';
				// this.totalPreferences = '0';
				this.$refs.popup.hide();
			},
			select(amount) {
				// this.inputMoney = amount.price;
				// this.litre = parseFloat(amount.price / this.priceGun).toFixed(2);
				// this.totalPrice = parseFloat(amount.price / this.priceGun * this.priceVip).toFixed(2);
				// if (this.priceVip != this.priceGun) {
				// 	let gbprice = parseFloat(this.litre * this.priceOfficial).toFixed(2);
				// 	this.discountPrice = parseFloat(gbprice - this.inputMoney).toFixed(2);
				// }
				this.inputMoney = amount.codeValue;
				this.oilPriceDiscountCompute();
			},
			// H5获取手机号
			jumpH5Bding() {
				uni.navigateTo({
					url: '/pages/login/register?id=2'
				})
			},
			//失去焦点算价格和油升
			Listeningfocus() {
				var a = /^[0-9]+(\.[0-9]{1})?$/;
				var b = /^[0-9]+(.[0-9]{1})?$/;
				var c = /^([1-9][0-9]*)+(\.[0-9]{1,2})?$/;
				if (this.inputMoney == '') {
					uni.showToast({
						title: '请输入正确加油金额',
						icon: "none",
						duration: 2000
					});
					this.totalPrice = '0.00';
					this.discountPrice = '0.00';
					this.litre = '';
					this.inputMoney = '';
					this.oilLiters = '0';
					this.discount = '0';
					this.oilSubsidy = '0';
					this.litersPreferences = '0';
					this.pricePreferences = '0';
					this.totalPreferences = '0';
					return;
				}
				if (parseInt(this.inputMoney) > parseInt(this.xzMoney)) {
					uni.showToast({
						title: '加油金额不能超过' + this.xzMoney + '元',
						icon: "none",
						duration: 2000
					});
					this.totalPrice = '0.00';
					this.discountPrice = '0.00';
					this.litre = '';
					this.inputMoney = '';
					this.oilLiters = '0';
					this.discount = '0';
					this.oilSubsidy = '0';
					this.litersPreferences = '0';
					this.pricePreferences = '0';
					this.totalPreferences = '0';
					return;
				}
				this.oilPriceDiscountCompute();
			},
			//计算价格
			oilPriceDiscountCompute() {
				let datas = {
					"price": this.inputMoney,
					"goodsId": this.counId,
					"oilNo": this.gasOilNo
				}
				oilPriceDiscountCompute(datas).then(res => {
					if (res.return_code == '000000') {
						this.totalPrice = res.return_data.payPrice;
						this.oilLiters = res.return_data.oilLiters;
						this.discount = res.return_data.discount;
						this.oilSubsidy = res.return_data.preferentialMargin;
						this.litersPreferences = res.return_data.litersPreferences;
						this.pricePreferences = res.return_data.pricePreferences;
						this.totalPreferences = res.return_data.totalPreferences;
						if (this.priceVip != this.priceOfficial) {
							this.discountPrice = parseFloat(this.inputMoney - this.totalPrice).toFixed(2);
						}
					} else {
						this.totalPrice = '0';
						this.oilLiters = '0';
						this.discount = '0';
						this.oilSubsidy = '0';
						this.litersPreferences = '0';
						this.pricePreferences = '0';
						this.totalPreferences = '0';
					}
				})
			},
			//跳转手机授权
			jumpPhone() {
				uni.navigateTo({
					url: '../../userLogin/userLogin'
				})
			},
			// 保留小数点后两位的，不会四舍五入
			numFilter(tempVal) {
				// 截取当前数据到小数点后三位
				// let tempVal = parseFloat(value).toFixed(3)
				let realVal = tempVal.substring(0, tempVal.length - 2)
				return realVal
			},
			/**
			 * 定位
			 */
			postionIng() {
				let that = this;
				var c = /^([1-9][0-9]*)+(\.[0-9]{1,2})?$/;
				if (that.inputMoney == '' || that.inputMoney < 10 || !(c.test(this.inputMoney))) {
					uni.showToast({
						title: '请输入正确金额',
						icon: "none",
						duration: 2000
					});
					return;
				}
				
				if (this.gunNo == '') {
					uni.showToast({
						title: '请选择枪号',
						icon: "none",
						duration: 2000
					});
					return;
				}
				uni.getLocation({
					type: 'wgs84',
					success: function(res) {
						app.globalData.latitude = res.latitude;
						app.globalData.longitude = res.longitude;
						that.getGasDetailByStoreKey();
						setTimeout(() => {
							that.toPay();
						}, 500);
					},
					fail: (err) => {
						uni.showToast({
							title: '请打开设置里面的位置信息',
							icon: "none",
							duration: 2000
						});
					}
				})
			},
			//去支付
			toPay() {
				if (this.storeList.distance > this.distance) {
					uni.showToast({
						title: '请在' + this.distance + '公里内进行下单',
						icon: "none",
						duration: 3000
					});
					return;
				}
				if (this.inputMoney == '' || this.inputMoney < 10) {
					uni.showToast({
						title: '请输入正确金额',
						icon: "none",
						duration: 2000
					});
					return;
				}
				uni.showLoading({
					title: '提交订单中...'
				})
				let goods = {
					"identificationCode": app.globalData.identificationCode,
					"gasimg": this.storeList.gasLogoSmall,
					"gasname": this.storeList.gasName,
					"gasaddress": this.storeList.gasAddress,
					"highChildOrderList": [{
						"goodsType": 3,
						"goodsId": this.counId,
						"saleCount": 1,
						"goodsPrice": this.inputMoney,
						"gasGunNo": this.gunNo,
						"gasOilNo": this.gasOilNo,
						"gasOilType": this.oilType,
						"gasPriceGun": this.priceOfficial,
						"gasPriceVip": this.priceVip

					}]
				}
				app.globalData.pelletoilList = goods;
				uni.navigateTo({
					url: '/pages/goods/refuel-confirm/refuel-confirm'
				})
				// addOrder(goods).then(res => {
				// 	uni.hideLoading();
				// 	if (res.return_code == '000000') {
				// 		uni.navigateTo({
				// 			url: '/pages/goods/refuel-confirm/refuel-confirm?payprice=' + res.return_data
				// 				.payPrice + '&orderId=' + res.return_data.id + '&couponId=' + this.counId +
				// 				'&adres=' + this.storeList.gasAddress
				// 		})
				// 	} else {
				// 		uni.showToast({
				// 			title: res.return_msg,
				// 			icon: 'none',
				// 			duration: 2000
				// 		});
				// 	}
				// })

			},
		}
	}
</script>

<style lang="less">
	.titlecon {
		border-radius: 10px 10px 0 0;
		position: relative;
		top: -30px;
	}

	.refuel {
		padding: 6px 15px;
		border-radius: 5px;
		background-color: #f6f6f6;
		color: #666666;
		margin-right: 3%;
		margin-left: 3%;
		margin-top: 15px;
		display: inline-block;
		font-size: 16px;
		width: 10%;
		text-align: center;
	}

	.activeRefuel {
		padding: 6px 15px;
		border-radius: 5px;
		border: 1px solid #089bf5;
		color: #089bf5;
		margin-right: 3%;
		margin-left: 3%;
		margin-top: 15px;
		display: inline-block;
		font-size: 16px;
		width: 10%;
		text-align: center;
	}

	.reimg {
		image {
			width: 20px;
		}
	}

	.relab {
		padding: 5px;
		border-radius: 5px;
		margin-left: 10px;
		color: #089bf5;
		background-color: #e5f2fe;
	}

	.relbj {
		height: 80px;
		box-shadow: 0 0 8px 2px #f6f6f6;
		border-radius: 5px;

	}

	.bjcss {
		line-height: 60px;
		margin-left: 10px;

		image {
			width: 10px;
			margin-left: 10px;
		}
	}

	.borRit {
		padding-right: 10px;
		border-right: 1px solid #f4f4f4;
	}

	.list {
		display: flow-root;
		justify-content: space-between;
		padding: 20upx 0;
	
		.box {
			width: 30%;
			margin-right: 2%;
			margin-top: 20upx;
			float: left;
			height: 130upx;
			// display: flex;
			justify-content: center;
			align-items: center;
			text-align: center;
			border-radius: 10upx;
			box-shadow: 0upx 5upx 20upx rgba(0, 0, 0, 0.05);
			font-size: 36upx;
			color: #666666;
			border: 1px solid #f2f2f2;
	
			&.on {
				// background-color: #089bf5;
				border: 1px solid #089bf5;
			}
		}
	
		.heTitle {
			width: 100%;
			font-size: 16px;
		}
	
		.mitext {
			margin-top: 10upx;
			width: 100%;
			font-size: 12px;
		}
	}

	.footer {
		position: fixed;
		bottom: 0upx;
		width: 100%;
		height: 100rpx;
		color: #FFFFFF;
		border-top: solid 1upx #eee;
		background-color: #FFFFFF;
		z-index: 2;
		display: flex;
		justify-content: space-between;
		align-items: center;

		.reBtn {
			width: 120px;
			background-color: #089bf5;
			color: #FFFFFF;
			text-align: center;
			padding: 0;
			font-size: 16px;
			border-radius: 0px;
			height: 50px;
			line-height: 50px;
			position: absolute;
			right: 0px;
		}
	}
</style>
