vue查找地址

<template>
<div>
	<div class="search">
		<input v-model="keyword" type="text" class="input-search" placeholder="输入城市或拼音"/>
	</div>
	<div 
		class="search-content"
		ref="search"
		v-show="keyword"
	>
		<ul>
			<li class="search-item" v-for="item in list">{{item.name}}</li>
			<li v-show="hasList">没有找到匹配项</li>
		</ul>
	</div>
</div>	
</template>

<script>
import Bscroll from 'better-scroll'
export default{
	name:'CitySearch',
	props:{
		cities:Object
	},
	data(){
		return{
			keyword:'',
			list:[],
			timer:null
		}
	},
	computed:{
		hasList(){
			return !this.list.length
		}
	},
	watch:{
		keyword(){
			if(this.timer){
				clearTimeout(this.timer)
			}
			if(!this.keyword){
				this.list=[]
				return
			}
			this.timer=setTimeout(()=>{
				const result=[]
				for (let i in this.cities){
					this.cities[i].forEach((value)=>
					{
						if(value.spell.indexOf(this.keyword)>-1||value.name.indexOf(this.keyword)>-1)
						{
							result.push(value)
						}
					}
					)
				}
			this.list=result
			},100)
		}
	},
	mounted(){
		this.scroll=new Bscroll(this.$refs.search)
	}
}
</script>

<style lang="stylus" scoped>
	@import '../../../assets/styles/varibles.styl'
	.search
		height:.72rem
		padding:.1rem
		background:$bgColor
		.input-search
			width:100%
			height:.62rem
			text-align:center
			border-radius:.06rem
			padding:0 .1rem
			box-sizing:border-box
			color:#666
	.search-content
		z-index:1
		top:1.58rem
		bottom:0
		right:0
		left:0
		position:absolute
		overflow:hidden
		background:#eee
		.search-item
			line-height:.62rem
			color:#666
			background:#eee
</style>

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值