uniapp:搜索关键字,高亮提示

71 篇文章 10 订阅
<template>
	<view class="search">
		<u-navbar title="" :is-back="false" :border-bottom="false" title-color="#000"
			:background="{background:'#F5F5F8'}">
			<view class="page_navbar_warp">
				<u-search shape="square" placeholder="搜索" v-model="keyword" :show-action="true"
					action-text="取消" bg-color="#ffffff" search-icon-color="#ABB0BF" color="#000" height="72"
					@custom="$goBack(1,1)" @search="search" @change="change"></u-search>
			</view>
		</u-navbar>

		<view class="list">
			<view class="title">联系人</view>
			<view class="item" v-for="(item,index) in list" :key="index">
				<image src="../../static/logo.png" mode=""></image>
				<view class="right">
					<view class="name" v-html="item.title"></view>
					<view class="text u-line-1" v-html="item.content"></view>
				</view>
			</view>
			<view class="more">更多联系人</view>
		</view>

	</view>
</template>
<script>
	export default {
		data() {
			return {
				keyword: '',
				list: []
			}
		},
		methods: {
			changeColor(result) {
				result.map((item, index) => {
					if (this.keyword) {
						let replaceReg = new RegExp(this.keyword, "ig");
						let replaceString = `<span style="color: #FDAD4E">${this.keyword}</span>`;
						result[index].title = item.title.replace(replaceReg, replaceString);
						result[index].content = item.content.replace(replaceReg, replaceString);
					}
				});
				return result;
			},
			search(){
				if(this.keyword == ''){
					uni.showToast({
						icon:'none',
						title: '请输入搜索内容',
					});
				}else{
					// 模拟接口请求数据
					let arr = [{
							title: '天涯过客',
							content:'据说明天有雨'
						},
						{
							title: '彩虹过人',
							content:'测试数据'
						},
						{
							title: '梅开二度',
							content:'测试数据'
						},
						{
							title: '天天向上',
							content:'测试数据'
						}
					];
					this.list = this.changeColor(arr);
				}
			},
			change(e){
				if(e == ''){
					this.list = []
				}
			},
		}
	}
</script>

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值