<template>
	<view style="height: 100vh;" class="my-bg flex_column">
		<cu-custom class="main-totextbar bg-main-oil" bgColor="bg-main-oil">
			<block slot="content">附近油站</block>
		</cu-custom>
		<view style="flex: 1;" class="flex_column">
			<view class="headList">
				<view class="headList_head" v-for="(list,i) in tabHeadS" :class="[TabHead == i? 'ativeHead':'']"
					:key='i' @tap='changeHaed(list.value)'>
					{{list.title}}
				</view>
			</view>
			<!-- fixed-top-site -->
			<view class="">
				<view class="cu-bar   search bg-white">
					<view class="search-form round">
						<text class="cuIcon-search"></text>
						<input @focus="InputFocus" confirm-type="search" @confirm="onSearch" @blur="InputBlur"
							v-model="siteAddress" :adjust-position="false" type="text" placeholder="请输入搜索站点名称" />
					</view>
					<view class="action" @tap="toMap">
						<image class="icon shadow-blur round icon-gasstation"
							src="https://www.51xingka.net/LSMOIL/static/img/gas-station.png" mode=""></image>
					</view>
				</view>
			</view>

			<!-- 筛选开始 -->
			<scroll-view style="flex: 1;" class="screentop  bg-white">
				<view @click="reunrnFn" class="">
					<sl-filter reflexTitle ref="slFilter" v-if="TabHead == 0" :productCodeList="productCodeList"
						:areaCodeList="areaCodeList" @result="filterRes" :menuList="menuList"></sl-filter>
					<sl-filter reflexTitle ref="slFilter" @result="filterRes" :menuList="ureaMenuList"
						v-if="TabHead == 1 && changeHs == true"></sl-filter>
					<sl-filter reflexTitle ref="slFilter" @result="filterRes" :menuList="productTypes"
						v-if="changeHs == false && TabHead == 1 "></sl-filter>
				</view>
				<view class="bg-white min-height-50 padding-top" v-if="siteList.length>0">
					<site-item v-for="(item,index) in siteList" :key="item.id" :site-item="item" :first="index==0"
						class="cu-list menu-avatar cu-item" @tap="toDetail(item)" v-if="TabHead == 0">
					</site-item>
					<ureaItem v-for="(list,index) in siteList" :key="list.id" :site-item="list" :first="index==0"
						class="cu-list menu-avatar cu-item" @tap="ureaToDetail(list)" v-if="TabHead == 1">
					</ureaItem>
					<view class="placeholder-hidden"></view>
				</view>
				<view style="min-height: 100vh;" class="" v-else>
					<my-empty></my-empty>
				</view>
			</scroll-view>
		</view>
		<view class="bg-white">
			<uni-load-more :status="loadText"></uni-load-more>
		</view>
		<!-- <tabbar :current-page="1"/> -->
	</view>
</template>

<script>
	import StationItem from '@/components/site-item/site-item.vue'
	import ureaItem from '@/components/site-item/urea-site-item.vue'
	import oilSiteApi from '@/api/oil-site.js'
	import slFilter from '@/components/sl-filter/sl-filter.vue'
	import oilMongoApi from '../../../api/oil-mongo.js'
	import ureaSiteApi from '../../../api/urea_site.js'
	export default {
		components: {
			StationItem,
			slFilter,
			ureaItem
		},

		data() {
			return {
				companyCard: uni.getStorageSync('companyCard'),
				getSiteListTimer: null,
				areaCodeList: [],
				loadText: 'more',
				changeHs: true,
				TabHead: 0,
				tabHeadS: [{
					title: '加油站',
					value: 0,
				}, {
					title: '尿素站',
					value: 1,
				}],
				productCodeList: null,
				filterDatas: {
					oilProductCode: '0#'
				},
				ureaFilterDatas: [],
				loadStatus: 'load',
				siteAddress: '',
				menuList: [{
						title: '距离优先',
						isMutiple: false,
						key: 'sort',
						detailList: [{
								title: "距离优先",
								value: 'juli'
							},
							{
								title: "价格优先",
								value: 'price'
							}
						]
					},
					{
						title: '距离',
						isMutiple: false,
						key: 'distance',
						detailList: [{
								title: "默认",
								value: ''
							},
							{
								title: "20Km",
								value: 20000
							},
							{
								title: "30Km",
								value: 30000
							},
							{
								title: "50Km",
								value: 50000
							},
							{
								title: "省市",
								value: 10
							}
						]
					},

					{
						title: '0#轻柴油',
						key: 'oilProductCode',
						isMutiple: false,
						detailList: [{
							title: "全部",
							value: ""
						}]
					},
					{
						title: '品牌',
						key: 'siteBrand',
						isSort: true,
						isMutiple: false,
						detailLists: [{
							title: "全部",
							value: ""
						}],
						detailList: [{
							title: "全部",
							value: ""
						}]
					}
				],
				ureaMenuList: [{
						title: '加注方式',
						isMutiple: false,
						key: 'formats',
						detailList: [{
							title: "全部",
							value: ""
						}, {
							title: "加注机",
							value: "1"
						}, {
							title: "桶装",
							value: "2"
						}, ]
					},
					{
						title: '桶装品牌',
						key: 'productType',
						isMutiple: false,
						detailList: [{
							title: "全部",
							value: ""
						}]
					},
				],
				productTypes: [{
					title: '加注方式',
					isMutiple: false,
					key: 'formats',
					detailList: [{
						title: "全部",
						value: ""
					}, {
						title: "加注机",
						value: "1"
					}, {
						title: "桶装",
						value: "2"
					}, ]
				}],
				siteList: [],
				InputBottom: 0,
				show: false,
				currentPage: 1,
				brandName: '',
				productType: '',
				isLoadMore: false, //是否加载中
			}
		},
		watch: {
			loadStatus: {
				deep: true,
				immediate: true,
				handler: function(val, oldVal) {
					if (val.status == 'load') {
						setTimeout(() => {
							this.getSiteList()
						}, 100)
					} else {
						uni.showToast({
							title: '到底啦',
							icon: 'none'
						})
					}
				}
			},
		},
		onTabItemTap(res) {
			this.showThreeSites = false
		},
		onShow() {
			this.refreshLocation()
			let storykey = uni.getStorageInfoSync()
			let nowCompanyCard = uni.getStorageSync('companyCard')
			if (this.companyCard && this.companyCard !== nowCompanyCard) {
				this.companyCard = uni.getStorageSync('companyCard');
				this.updateFn()
			}
		},
		onLoad() {
			if (!uni.getStorageSync('filterDatas')) {
				this.getFilterData()
			}
			this.findPriceDetails()
			if (uni.getStorageSync('productCodeList')) {
				this.productCodeList = uni.getStorageSync('productCodeList')
			}
			// this.getSiteList()
		},
		onPullDownRefresh() {
			this.updateFn()
		},
		onReachBottom() {
			if (this.loadStatus == 'load') {
				setTimeout(() => {
					if (this.TabHead == 0) {
						this.getSiteList()
					} else if (this.TabHead == 1) {
						this.getUreaList()
					}
				}, 100)
			} else {
				uni.showToast({
					title: '到底啦',
					icon: 'none'
				})
			}
		},
		methods: {
			updateFn() {
				this.filterRes(this.filterDatas)
				setTimeout(function() {
					uni.stopPullDownRefresh()
				}, 600);
			},
			reunrnFn() {

			},
			getUreaList() {
				let location = uni.getStorageSync('location')
				let data1 = {
					currentPage: this.currentPage,
					pageSize: 10,
					params: { //类型:Object  必有字段  备注:// 筛选对象  
						// siteNameOrId: this.siteName, //产品类型(加注方式):
						address: this.siteAddress,
						productType: this.productType ? this.productType : '', //1-加注机; 2-桶装   
						brandName: this.brandName ? this.brandName : '', // 桶装品牌名称
						currentLongitude: location.longitude + '', // 当前经度
						currentLatitude: location.latitude + '', // 当前纬度 
					}
				}
				ureaSiteApi.getByPageMobile(data1).then(res => {
					if (res.code == 20000) {
						let objs = []
						res.data.list.forEach(ele => {
							let tag
							if (ele.productType == 1) {
								tag = '加注机'
							} else if (ele.productType == 2) {
								tag = '桶装'
							}
							let obj = {
								address: ele.address,
								id: ele.id,
								juli: ele.totalDistance,
								latitude: parseInt(ele.lat),
								listTag: tag,
								longitude: parseInt(ele.lng),
								siteCustomerMark: null,
								siteId: ele.siteId,
								siteName: ele.siteName,
								sitePrice: ele.price,
								formats: ele.formats,
								price: ele.price
							}
							objs.push(obj)
						})

						this.siteList = this.siteList.concat(objs)
						if (res.data.list.length < 10) { //判断接口返回数据量小于请求数据量,则表示此为最后一页
							this.loadStatus = 'nomore'
						} else {
							this.currentPage++
							this.loadStatus = 'load'
						}
					}
				})
			},
			changeHaed(code) {
				this.TabHead = code
				// this.siteList = []
				this.siteAddress = ''
				this.currentPage = 1
				if (code == 1) {
					if (uni.getStorageSync('user')) {
						this.getUreaList()
					} else {

						uni.showModal({
							content: "登录后才能查看哦",
							confirmText: '去登陆',
							success: (res) => {
								if (res.confirm) {
									uni.reLaunch({
										url: '/BagAuth/pages/login/login'
									})
								} else {
									this.changeHaed(0)
								}
							}
						})
					}
				} else if (code == 0) {
					this.getSiteList()
				}
			},
			ureaToDetail(list) {

				let itemS = JSON.stringify(list)
				uni.navigateTo({
					url: `/BagStation/pages/ureaDetail/ureaDetail?item=${itemS}`
				})
				// if (uni.getStorageSync('user')) {

				// } else {
				// 	uni.showModal({
				// 		content: "登录后才能查看哦",
				// 		confirmText: '去登陆',
				// 		success: (res) => {
				// 			if (res.confirm) {
				// 				uni.reLaunch({
				// 					url: '/BagAuth/pages/login/login'
				// 				})
				// 			}
				// 		}
				// 	})
				// }
			},
			filterRes(val) {

				if (this.TabHead == 0) {
					this.filterDatas = val
					this.currentPage = 1
					// this.siteList = []
					this.getSiteList()
				} else {
					if (val.formats == 2) {
						this.changeHs = true
					} else {
						this.changeHs = false
					}
					this.filterDatas = val
					this.productType = val.formats
					this.brandName = val.productType
					this.currentPage = 1
					// this.siteList = []
					this.getUreaList()
				}
			},
			getFilterData() {
				oilSiteApi.getCheckInfo().then(res => {
					if (res.code == 20000) {
						uni.setStorageSync('productCodeList', res.data.productCodeList)
						uni.setStorageSync('areaCodeList', res.data.areaCodeList)
						if (uni.getStorageSync('areaCodeList')) {
							this.areaCodeList = uni.getStorageSync('areaCodeList')
						} else {
							this.areaCodeList = res.data.areaCodeList
						}
						this.productCodeList = uni.getStorageSync('productCodeList')

						res.data.channelCodes.map(item => {
							// this.menuList[3].detailLists.push({
							// 	title: item.name,
							// 	value: item.id
							// })
						})
						res.data.productCodes.map(item => {
							this.menuList[2].detailList.push({
								title: item.name,
								value: item.id
							})
						})
						res.data.siteBrands.map(item => {
							this.menuList[3].detailList.push({
								title: item.name,
								value: item.id
							})
						})
						let data = [{
								title: '全部',
								value: ''
							},
							{
								title: '一级油站',
								value: 'A'
							}, {
								title: '二级油站',
								value: 'B'
							}, {
								title: '三级油站',
								value: 'C'
							}, {
								title: '四级油站',
								value: 'D'
							}, {
								title: '一级油站',
								value: 'E'
							},
						]
					}
					// console.log(this.menuList, uni.getStorageSync('areaCodeList'), '----')
				})
			},
			onSelected(e) {
				// console.log(e)
			},
			findPriceDetails() {
				ureaSiteApi.findPriceDetails().then(res => {
					res.data.forEach(item => {
						let obj = {
							title: item,
							value: item
						}
						this.ureaMenuList[1].detailList.push(obj)
					})
				})
			},
			refreshLocation() {
				uni.getLocation({
					type: 'wgs84',
					success: function(res) {
						uni.setStorageSync('location', res)
					},
					fail: err => {
						if (err.errMsg === "getLocation:fail auth deny") {
							uni.showModal({
								title: "提示",
								content: "您已拒绝获取位置信息,请重新授权",
								confirmText: "开启定位",
								success: (res) => {
									if (res.confirm) {
										uni.openSetting({
											success: (res) => {
												if (res.authSetting[
														"scope.userLocation"]) {
													this.currentPage = 1
													// this.siteList = []
													this.refreshLocation()
												}
											},
										});
									}
								},
							});
						}
					},
					complete: () => {
						this.getSiteList()
					}
				})
			},
			getSiteList() {
				// this.refreshLocation()
				// let location = uni.getStorageSync('location')
				let data1 = {
					currentPage: this.currentPage,
					pageSize: 10,
					params: {
						siteAddress: this.siteAddress,
						longitude: 116.397451,
						latitude: 39.909187,
						...uni.getStorageSync('location'),
						siteBrand: this.filterDatas
							.siteBrand, //   备注:// 石油品牌 ( 1-中国石油 2-中国石化 3-壳牌 4-民营 5-中海油 6-京博 7-中化石油 8-其他 )
						channelCode: this.filterDatas
							.channelCode, //   备注:// 渠道编码 ( OIL:星油 WJY:万金油 LV:老吕(找油网) TY:团油 YDJY:一点加油(壳牌))
						oilProductCode: this.filterDatas
							.oilProductCode, //   备注:// 油号选择 ( 0# 92# 92#)
						siteLevel: this.filterDatas
							.siteLevel,
						sort: this.filterDatas.sort ? this.filterDatas.sort : 'juli',
						provinceCode: this.filterDatas.provinceCode,
						cityCode: this.filterDatas.cityCode,
						areaCode: this.filterDatas.areaCode,
						distance: this.filterDatas.distance
					}
				}
				if (!uni.getStorageSync('Authorization')) {
					data1.params.role = 1
					oilSiteApi.readOnlySites(data1).then(res => {
						if (res.code == 20000) {
							if (this.currentPage == 1) {
								this.siteList = []
							}
							this.siteList = this.siteList.concat(res.data.list)
							if (res.data.list.length < 10) {
								this.loadStatus = 'nomore'
							} else {
								this.currentPage++
								this.loadStatus = 'load'
							}
						}
					})
				} else {
					oilSiteApi.getSiteList(data1).then(res => {
						if (res.code == 20000) {
							if (this.currentPage == 1) {
								this.siteList = []
							}
							this.siteList = this.siteList.concat(res.data.list)
							if (res.data.list.length < 10) {
								this.loadStatus = 'nomore'
							} else {
								this.currentPage++
								this.loadStatus = 'load'
							}
						}
					})
				}

			},

			toDetail(item) {
				let itemS = JSON.stringify(item)
				if (item.channelCode === 'TY') {
					uni.setStorageSync('OtherSiteInfo', item)
					uni.navigateTo({
						url: `/BagStation/pages/stationDetail/stationDetail?channerCode=${item.channelCode}`
					})
					return
				}
				uni.navigateTo({
					url: `/BagStation/pages/stationDetail/stationDetail?item=${itemS}`
				})
				// if (uni.getStorageSync('user')) {

				// } else {
				// 	uni.showModal({
				// 		content: "登录后才能查看哦",
				// 		confirmText: '去登陆',
				// 		success: (res) => {
				// 			if (res.confirm) {
				// 				uni.reLaunch({
				// 					url: '../../../BagAuth/pages/login/login'
				// 				})
				// 			}
				// 		}
				// 	})
				// }
			},
			nameSelect(value, item) {
				this.title2 = item.text
			},
			typeSelect(value, item) {
				this.title1 = item.text
			},
			optionSelect(value, item) {
				this.title3 = item.text
			},
			toMap() {
				uni.navigateTo({
					url: '/BagStation/pages/stationMap/stationMap',
				})
			},
			InputFocus(e) {
				this.InputBottom = e.detail.height
			},
			InputBlur(e) {
				this.InputBottom = 0


			},
			onInput() {
				clearTimeout(this.getSiteListTimer);
				this.getSiteListTimer = setTimeout(() => {
					this.currentPage = 1
					// this.siteList = []
					this.getSiteList()
				}, 500);
			},
			onSearch() {
				clearTimeout(this.getSiteListTimer);
				this.getSiteListTimer = setTimeout(() => {
					this.currentPage = 1
					// this.siteList = []
					if (this.TabHead == 0) {
						this.getSiteList()
					} else if (this.TabHead == 1) {
						this.getUreaList()
					}
				}, 500)

			}
		}
	}
</script>

<style scoped>
	.flex_column {
		display: flex;
		flex-direction: column;
	}

	.headList_head {
		padding: 2% 0;
		width: 16%;
		text-align: center;
		font-size: 36rpx;
		font-weight: 700;
		border-bottom: 2px solid #fff;
		margin: 0% 3%;
	}

	.headList {
		display: flex;
		justify-content: space-around;
		align-items: center;
		background-color: #fff;
		padding: 1% 3%;
	}

	.ativeHead {
		color: red;
		border-bottom: 2px solid red;
	}

	.icon-gasstation {
		width: 1.2rem;
		height: 1.2rem;
	}

	.placeholder-hidden {
		/* min-height: 95upx; */
	}

	.fixed-top-site {
		/* top: 120rpx; */
		z-index: 4;
		position: fixed;
		width: 750upx;
	}

	.min-height-50 {
		min-height: 50vh;
	}
</style>