<template>
	<view>
		<view style="position: sticky;top: 0;background-color: #FFFFFF;">
			<view class="search-container">
				<!-- 搜索框 -->
				<view class="search-container-bar">
					<!-- :cancelText="keyBoardPopup ? '取消' : '搜索'" -->
					<uni-search-bar ref="searchBar" style="flex:1;margin-left: 20rpx;" radius="100"
						v-model="associativeText" :focus="focus" :placeholder="hotWorld" clearButton="auto"
						cancelButton="none" @clear="clear" />
					<view v-if="stringIsNotEmpty(associativeText) && associativeText!=page.key" @click="search"
						style="margin-right: 10px;font-size: 13px;">搜索</view>
				</view>
			</view>
			<view class="search-body">
				<view
					style="font-size: 26rpx;padding-left: 40rpx;padding-right: 40rpx;padding-top: 10rpx;padding-bottom: 20rpx;color: steelblue;">
					输入关键字筛选提货点
				</view>
			</view>
		</view>

		<loading-state ref="pageView" @request="request">
			<!-- 搜索联想 -->
			<view
				style="display: flex;flex-direction: column;background: #FFFFFF;border-radius: 30rpx;padding: 20rpx;box-sizing: border-box;margin: 20rpx;width: calc(100% - 40rpx);padding-bottom: 0px;"
				v-for="(item,index) in dataList" :key="index">

				<!-- 顶部标题 -->
				<view
					style="display: flex;flex-direction: row;width: 100%;box-sizing: border-box;width: 100%;margin-top:10rpx ;align-items: center;">
					<image src="../static/address_name.png" style="width: 50rpx;height: 50rpx;flex-shrink: 0;">
					</image>
					<text
						style="font-size: 31.5rpx;margin-left: 18rpx;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;">{{item.name}}
					</text>
				</view>

				<!-- 营业时间 -->
				<text
					style="font-size: 24rpx;color: #999999;margin-top: 6rpx;box-sizing: border-box;width: 100%;display:inline-block;white-space: pre-wrap; word-wrap: break-word;height: auto;">营业时间：{{item.businessHours}}</text>

				<!-- 提货点信息 -->
				<view style="display: flex;flex-direction: row;margin-top: 22rpx;">
					<image v-if="false"
						style="width: 120rpx;height: 120rpx;border-radius: 20rpx;flex-shrink: 0;background-color: #fafafa;">
					</image>
					<view style="display: flex;flex: 1;flex-direction: column;margin-left: 20rpx;margin-top: 10rpx;">
						<view style="display: flex;flex-direction: row;">
							<image src="../static/address_location.png"
								style="width: 16px;height: 16px;flex-shrink: 0;margin-right: 3px;">
							</image>
							<view style="color: #666666;font-size: 29.5rpx;">{{item.address}}
							</view>
						</view>
						<view style="display: flex;flex-direction: row;margin-top: 22rpx;">
							<image src="../static/address_phone.png"
								style="width: 16px;height: 16px;margin-right: 3px;flex-shrink: 0;">
							</image>
							<view style="color: #5259D7;font-size: 29.5rpx;">{{item.phone}}</view>
						</view>
					</view>
				</view>

				<!-- 底部 -->

				<view style="display: flex;flex-direction: row;margin-top: 38rpx;border-top: 1rpx #f1f2f3 solid;">
					<view style="flex: 1;"></view>

					<view class="btn" style="flex-shrink: 0;font-size: 30rpx;color: #191919;"
						@click.stop="phone(item.phone)">
						<image src="../static/address_phone2.png" style="width: 18px;height: 18px;"></image>
						<view style="font-size: 13px;margin-left: 6px;">电话</view>
					</view>
					<view class="btn" style="flex-shrink: 0;font-size: 30rpx;color: #191919;"
						@click.stop="confirm(item)">
						<image src="../static/address_confirm.png" style="width: 18px;height: 18px;"></image>
						<view style="font-size: 13px;margin-left: 6px;">确定</view>
					</view>
				</view>

			</view>

		</loading-state>

		<view style="height: 20px;"></view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				page: {
					key: ''
				},
				associativeText: '',
				hotWorld: '请输入', //	搜索热词，如果没有输入即回车，则搜索热词，但是不会加入搜索记录
				focus: true, //	是否自动聚焦
				dataList: []
			}
		},
		created() {
			// 首次请求
			this.request()

			// #ifdef APP-PLUS
			uni.onKeyboardHeightChange((res) => {
				this.keyBoardPopup = res.height !== 0;
			})
			// #endif
		},
		methods: {
			search() {
				this.page.key = this.associativeText
				this.request()
			},
			phone(num) {
				uni.makePhoneCall({
					phoneNumber: num
				});
			},
			confirm(item) {
				uni.$emit('address', item.sid)
				uni.navigateBack()
			},
			request() {
				this.$nextTick(() => {
					this.$refs.pageView.setLoadState(0)
				})
				let _this = this
				_this.$api.address({
					'name': this.page.key
				}).then((resp) => {
					_this.dataList = resp
					if (resp.length == 0) {
						_this.$nextTick(() => {
							_this.$refs.pageView.setLoadState(100)
						})
					} else {
						_this.$nextTick(() => {
							_this.$refs.pageView.setLoadState(2)
						})
					}
				}).catch(e => {
					_this.$nextTick(() => {
						_this.$refs.pageView.setLoadState(1)
					})
				})
			},
			clear(res) {
				this.page.key = ''
				this.request()
			}
		}
	}
</script>


<style lang="scss">
	uni-page-body,
	page {
		background: #f3f4f6;
	}

	.btn {
		display: flex;
		flex-direction: row;
		padding: 10px;
		align-items: center;
	}

	.search-body {
		background-color: #ffffff;
		border-bottom-right-radius: 10px;
		border-bottom-left-radius: 10px;
	}

	@mixin uni-flex {
		/* #ifndef APP-NVUE */
		display: flex;
		/* #endif */
	}

	$search-bar-height: 52px;
	$word-container_header-height: 72rpx;

	.search-container {
		height: $search-bar-height;
		@include uni-flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		position: relative;
		background: white;

		@at-root {
			#{&}-bar {
				@include uni-flex;
				flex-direction: row;
				justify-content: center;
				align-items: center;
				position: absolute;
				top: 0;
				left: 0;
				right: 0;
				background: white;
			}
		}
	}
</style>