weigou
Version:
weigou components
116 lines (98 loc) • 3.09 kB
JavaScript
import Nerv from "nervjs";
import Taro from "@tarojs/taro-h5";
import { View, Image, Input } from '@tarojs/components';
import './index.scss';
/** 引入图片 strat*/
import upImgUrl from "../../ui-images/upImg.png";
import searchImgUrl from "../../ui-images/search.png";
import friend_icon from "../../ui-images/friend-icon.png";
import filterImg from "../../ui-images/filer.png";
/** 引入图片 end*/
export default class SearchBar extends Taro.Component {
constructor(props) {
super(props);
this.state = {
/**储存定时器 */
timer: null
};
}
componentWillMount() {}
search(e) {
if (!e.detail.value) {
return;
}
if (e.type === "input") {
clearTimeout(this.state.timer);
let timer = setTimeout(() => {
this.props.searchData({ value: e.detail.value });
}, 1000);
this.setState({
timer
});
} else {
this.props.searchData({ value: e.detail.value });
}
}
config = {
component: true
};
render() {
return <View className="wg-search-input-box wg-p32">
{/* 左边input start */}
<View className="wg-search-left wg-space-between ">
<View className="wg-search-input wg-justify-content-flex-start">
<Image className="search-img" src={searchImgUrl}></Image>
<Input className="wg-ft-28 wg-ml-8" placeholder="搜索" onInput={this.search.bind(this)} onConfirm={this.search.bind(this)}></Input>
</View>
{this.props.isSearchImg && <Image className="wg-up-img" src={upImgUrl} onClick={this.props.upImg}></Image>}
</View>
{/* 左边input end*/}
{/* 右边筛选 start */}
<View className="wg-search-right wg-justify-content-flex-start">
{this.props.isTemplate && <Image src={this.props.tempIconUrl} className="wg-ml-32 wg-mr-24 wg-right-icon" onClick={this.props.switchTemplate}></Image>}
{this.props.isTemplate && this.props.isFilterData && <View className="wg-line"></View>}
{this.props.isFilterData && <Image src={filterImg} className="wg-ml-24 wg-right-icon" onClick={this.props.filterData}></Image>}
</View>
{/* 右边筛选 end */}
</View>;
}
}
SearchBar.defaultProps = {
/**
* 是否展示通过图片查询的icon
**/
isSearchImg: false,
/**
* 是否显示模板的icon
**/
isTemplate: false,
/**
* 模板icon 的url
* default friend_icon
**/
tempIconUrl: friend_icon,
/**
* 是否展示筛选条件的icon
**/
isFilterData: false,
/**
* 通过用户输入的值进行搜索
* type: function
*/
searchData: () => {},
/**
* 通过img更新搜索
* type: function
*/
upImg: () => {},
/**
* 切换模板的点击事件
* type: function
*/
switchTemplate: () => {},
/**
* 筛选栏的点击事件
* type: function
*/
filterData: () => {}
};