|  | @@ -0,0 +1,135 @@
 | 
											
												
													
														|  | 
 |  | +<template>
 | 
											
												
													
														|  | 
 |  | +	<view class="pages">
 | 
											
												
													
														|  | 
 |  | +		<u-navbar
 | 
											
												
													
														|  | 
 |  | +			title="产品搜索"
 | 
											
												
													
														|  | 
 |  | +			:placeholder="true"
 | 
											
												
													
														|  | 
 |  | +			:autoBack="true"
 | 
											
												
													
														|  | 
 |  | +			 :safeAreaInsetTop="true"
 | 
											
												
													
														|  | 
 |  | +		>
 | 
											
												
													
														|  | 
 |  | +		</u-navbar>
 | 
											
												
													
														|  | 
 |  | +		<view class="search-wrap">
 | 
											
												
													
														|  | 
 |  | +			<u-search
 | 
											
												
													
														|  | 
 |  | +				placeholder="请输入搜索的商品" 
 | 
											
												
													
														|  | 
 |  | +				:clearabled="true"
 | 
											
												
													
														|  | 
 |  | +				:showAction="false"
 | 
											
												
													
														|  | 
 |  | +				height="80rpx"
 | 
											
												
													
														|  | 
 |  | +				@search="search"
 | 
											
												
													
														|  | 
 |  | +				@custom="search"
 | 
											
												
													
														|  | 
 |  | +				bgColor="#fff"
 | 
											
												
													
														|  | 
 |  | +				borderColor="#00A447"
 | 
											
												
													
														|  | 
 |  | +				v-model="keyword">
 | 
											
												
													
														|  | 
 |  | +			</u-search>
 | 
											
												
													
														|  | 
 |  | +		</view>
 | 
											
												
													
														|  | 
 |  | +		<view class="search-history page-wrap" v-if="searchHistory.length>0">
 | 
											
												
													
														|  | 
 |  | +			<view class="search-title u-flex u-row-between">
 | 
											
												
													
														|  | 
 |  | +				<text>最近搜索</text>
 | 
											
												
													
														|  | 
 |  | +				<u-icon @click="clearStorage" name="trash" color="#666" size="30"></u-icon>
 | 
											
												
													
														|  | 
 |  | +			</view>
 | 
											
												
													
														|  | 
 |  | +			<view class="history-wrap">
 | 
											
												
													
														|  | 
 |  | +				<view class="history" v-for="(item,index) in searchHistory" :key="index" @click="keywordClick(item)">
 | 
											
												
													
														|  | 
 |  | +					{{item.name}}
 | 
											
												
													
														|  | 
 |  | +					<!-- <u-icon @click="clearStorage" name="trash" color="#666" size="20"></u-icon> -->
 | 
											
												
													
														|  | 
 |  | +				</view>
 | 
											
												
													
														|  | 
 |  | +			</view>
 | 
											
												
													
														|  | 
 |  | +		</view>
 | 
											
												
													
														|  | 
 |  | +	</view>
 | 
											
												
													
														|  | 
 |  | +</template>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +<script>
 | 
											
												
													
														|  | 
 |  | +	export default {
 | 
											
												
													
														|  | 
 |  | +		data() {
 | 
											
												
													
														|  | 
 |  | +			return {
 | 
											
												
													
														|  | 
 |  | +				keyword:'',
 | 
											
												
													
														|  | 
 |  | +				searchHistory:[],
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		},
 | 
											
												
													
														|  | 
 |  | +		onShow() {
 | 
											
												
													
														|  | 
 |  | +			let that = this;
 | 
											
												
													
														|  | 
 |  | +			uni.getStorage({
 | 
											
												
													
														|  | 
 |  | +				key:'searchgoodshistory',
 | 
											
												
													
														|  | 
 |  | +				 success: function(storagedata) {
 | 
											
												
													
														|  | 
 |  | +					 that.searchHistory = storagedata.data;
 | 
											
												
													
														|  | 
 |  | +					 console.log('storagedata',storagedata.data);
 | 
											
												
													
														|  | 
 |  | +				 }
 | 
											
												
													
														|  | 
 |  | +			})
 | 
											
												
													
														|  | 
 |  | +		},
 | 
											
												
													
														|  | 
 |  | +		onLoad() {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		},
 | 
											
												
													
														|  | 
 |  | +		methods: {
 | 
											
												
													
														|  | 
 |  | +			goSearch(keyword){
 | 
											
												
													
														|  | 
 |  | +				uni.$u.route('/shopping/productsearch', {
 | 
											
												
													
														|  | 
 |  | +					goodsName: keyword
 | 
											
												
													
														|  | 
 |  | +				});
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +			search(e){
 | 
											
												
													
														|  | 
 |  | +				let that = this;
 | 
											
												
													
														|  | 
 |  | +				// 存储历史数据
 | 
											
												
													
														|  | 
 |  | +				let index = this.searchHistory.findIndex(item => item.name === this.keyword);
 | 
											
												
													
														|  | 
 |  | +				// console.log('index',index);
 | 
											
												
													
														|  | 
 |  | +				if (index !== -1) {
 | 
											
												
													
														|  | 
 |  | +					this.goSearch(this.keyword)
 | 
											
												
													
														|  | 
 |  | +				  // 已经存在,不用重复添加了
 | 
											
												
													
														|  | 
 |  | +				  return;
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				this.searchHistory.push({ name: this.keyword });
 | 
											
												
													
														|  | 
 |  | +				uni.setStorage({
 | 
											
												
													
														|  | 
 |  | +				  key: 'searchgoodshistory',
 | 
											
												
													
														|  | 
 |  | +				  data: that.searchHistory,
 | 
											
												
													
														|  | 
 |  | +				  success: function() {
 | 
											
												
													
														|  | 
 |  | +					  that.goSearch(this.keyword)
 | 
											
												
													
														|  | 
 |  | +				    // console.log('数据存储成功')
 | 
											
												
													
														|  | 
 |  | +				  },
 | 
											
												
													
														|  | 
 |  | +				  fail: function() {
 | 
											
												
													
														|  | 
 |  | +				    // console.log('数据存储失败')
 | 
											
												
													
														|  | 
 |  | +				  }
 | 
											
												
													
														|  | 
 |  | +				});
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +			keywordClick(item){
 | 
											
												
													
														|  | 
 |  | +				this.goSearch(item.name)
 | 
											
												
													
														|  | 
 |  | +				// console.log('keywordClick',item);
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +			clearStorage(){
 | 
											
												
													
														|  | 
 |  | +				let that = this;
 | 
											
												
													
														|  | 
 |  | +				uni.clearStorage({
 | 
											
												
													
														|  | 
 |  | +					key:'searchgoodshistory',
 | 
											
												
													
														|  | 
 |  | +					success:function(){
 | 
											
												
													
														|  | 
 |  | +						that.searchHistory = []
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				})
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +</script>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +<style lang="scss" scoped>
 | 
											
												
													
														|  | 
 |  | +.search-history{
 | 
											
												
													
														|  | 
 |  | +	color: #333333;
 | 
											
												
													
														|  | 
 |  | +	margin-bottom: 30rpx;
 | 
											
												
													
														|  | 
 |  | +	.search-title{
 | 
											
												
													
														|  | 
 |  | +		font-size: 32rpx;
 | 
											
												
													
														|  | 
 |  | +		font-weight: 600;
 | 
											
												
													
														|  | 
 |  | +		line-height: 45rpx;
 | 
											
												
													
														|  | 
 |  | +		margin-bottom: 20rpx;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +	.history{
 | 
											
												
													
														|  | 
 |  | +		display: inline-block;
 | 
											
												
													
														|  | 
 |  | +		height: 48rpx;
 | 
											
												
													
														|  | 
 |  | +		line-height: 48rpx;
 | 
											
												
													
														|  | 
 |  | +		background: #F5F5F5;
 | 
											
												
													
														|  | 
 |  | +		border-radius: 24rpx;
 | 
											
												
													
														|  | 
 |  | +		padding: 0 24rpx;
 | 
											
												
													
														|  | 
 |  | +		min-width: 100rpx;
 | 
											
												
													
														|  | 
 |  | +		margin-left: 20rpx;
 | 
											
												
													
														|  | 
 |  | +		margin-bottom: 20rpx;
 | 
											
												
													
														|  | 
 |  | +		text-align: center;
 | 
											
												
													
														|  | 
 |  | +		position: relative;
 | 
											
												
													
														|  | 
 |  | +		/deep/ .u-icon{
 | 
											
												
													
														|  | 
 |  | +			position: absolute;
 | 
											
												
													
														|  | 
 |  | +			right: 0;
 | 
											
												
													
														|  | 
 |  | +			top: 2px;
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +</style>
 |