文章目录

  • 前言
  • 一、搜索页面
    • 1.自定义搜索栏
    • 2.自定义搜索页面

前言

搜索功能在电商领域是非常常见的一个功能具体表现在两个方面:

对用户来说,生鲜电商类的搜索功能通常是用来解决“快速找到满意的商品”的问题。“快速找到满意的商品”中的“快速”和“满意”是关键词,但二者其实在很大程度上是矛盾的。一方面“快速”意味着用户的搜索操作应尽量方便、快捷,也就是要求平台应当尽量少的让用户交互提供信息;但另一方面,“满意”通常又意味着平台需要尽量多的与用户交互。毕竟,平台上的商品数以万计,只有更多的获取用户信息才能更好的明白客户到底想买什么。

对平台来说,在产品设计过程中,还应当充分考虑平台“充分利用流量号召用户产生更多购买意向”的需求。

一、搜索页面

1.自定义搜索栏

<template><view class="my-search-container" :style="{ 'background-color': bgcolor }" @click="searchBoxHandler"><view class="my-search-box" :style="{ 'border-radius': radius + 'px' }"><!-- 使用 uni-ui 提供的图标组件 --><uni-icons type="search" size="17"></uni-icons><text class="placeholder">搜索</text></view></view>
</template><script>export default {props: {// 背景颜色bgcolor: {type: String,default: '#C00000'},// 圆角尺寸radius: {type: Number,default: 18 // px}},data() {return {}},methods: {searchBoxHandler() {this.$emit('click')}}}
</script><style lang="scss">.my-search-container {height: 50px;// background-color: #C00000;display: flex;align-items: center;padding: 0 10px;.my-search-box {height: 36px;background-color: #FFFFFF;// border-radius: 18px;width: 100%;display: flex;justify-content: center;align-items: center;.placeholder {font-size: 15px;margin-left: 5px;}}}
</style>

2.自定义搜索页面

<template><view><view class="search-box"><uni-search-bar @input="input" :radius="100" cancelButton="none"></uni-search-bar></view><!-- 搜索建议列表 --><view class="sugg-list" v-if="searchResults.length !== 0"><view class="sugg-item" v-for="(item, i) in searchResults" :key="i" @click="gotoDetail(item)"><view class="goods-name">{{item.goods_name}}</view><uni-icons type="arrowright" size="16"></uni-icons></view></view><!-- 搜索历史 --><view class="history-box" v-else><!-- 标题区域 --><view class="history-title"><text>搜索历史</text><uni-icons type="trash" size="17" @click="clean"></uni-icons></view><!-- 列表区域 --><view class="history-list"><uni-tag :text="item" v-for="(item, i) in histories" :key="i" @click="gotoGoodsList(item)"></uni-tag></view></view></view>
</template><script>export default {data() {return {timer: null,kw: '',// 搜索的结果列表searchResults: [],// 搜索历史的数组historyList: []};},onLoad() {this.historyList = JSON.parse(uni.getStorageSync('kw') || '[]')},methods: {// input 输入事件的处理函数input(e) {clearTimeout(this.timer)this.timer = setTimeout(() => {this.kw = e.valuethis.getSearchList()}, 500)},async getSearchList() {// 判断搜索关键词是否为空if (this.kw.length === 0) {this.searchResults = []return}const { data: res } = await uni.$http.get('/api/public/v1/goods/qsearch', { query: this.kw })if (res.meta.status !== 200) return uni.$showMsg()this.searchResults = res.messagethis.saveSearchHistory()},gotoDetail(item) {uni.navigateTo({url: '/subpkg/goods_detail/goods_detail?goods_id=' + item.goods_id})},saveSearchHistory() {// this.historyList.push(this.kw)const set = new Set(this.historyList)set.delete(this.kw)set.add(this.kw)this.historyList = Array.from(set)// 对搜索历史数据,进行持久化的存储uni.setStorageSync('kw', JSON.stringify(this.historyList))},clean() {this.historyList = []uni.setStorageSync('kw', '[]')},gotoGoodsList(kw) {uni.navigateTo({url: '/subpkg/goods_list/goods_list?query=' + kw})}},computed: {histories() {return [...this.historyList].reverse()}}}
</script><style lang="scss">.search-box {position: sticky;top: 0;z-index: 999;}.sugg-list {padding: 0 5px;.sugg-item {display: flex;align-items: center;justify-content: space-between;font-size: 12px;padding: 13px 0;border-bottom: 1px solid #efefef;.goods-name {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;margin-right: 3px;}}}.history-box {padding: 0 5px;.history-title {display: flex;justify-content: space-between;height: 40px;align-items: center;font-size: 13px;border-bottom: 1px solid #efefef;}.history-list {display: flex;flex-wrap: wrap;.uni-tag {margin-top: 5px;margin-right: 5px;}}}
</style>

【愚公系列】2022年11月 uniapp专题-优购电商-搜索页面相关推荐

  1. 【愚公系列】2022年11月 uniapp专题-优购电商-运行uniapp的多种方式

    文章目录 前言 一.运行到web平台 二.运行到安卓模拟器 三.运行到微信开发者工具 前言 uniapp本身就是一次开发多端部署,uniapp可以发布成各种应用包括以下几种 web版本 一.运行到we ...

  2. 【愚公系列】2022年11月 uniapp专题-优购电商-商品列表

    文章目录 前言 一.商品列表 前言 商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口.京东商城目前有通用版.全球购.闪购.易车.惠买车.服装.拼购.今日抄底等许多套模板.各套 ...

  3. 【愚公系列】2022年11月 uniapp专题-优购电商-个人中心页面

    文章目录 前言 一.个人中心页面 前言 个人中心的信息复杂度与产品本身有关.体系越庞大的产品,对应个人中心页面需要承载的内容越多,结构势必复杂. 一般平台型电商的个人中心页面必须涵盖:用户基础信息.全 ...

  4. 【愚公系列】2022年11月 uniapp专题-优购电商-商品详情页面

    文章目录 前言 一.商品详情⻚⾯ 前言 商品详情页是展示商品详细信息的一个页面,承载在网站的大部分流量和订单的入口.京东商城目前有通用版.全球购.闪购.易车.惠买车.服装.拼购.今日抄底等许多套模板. ...

  5. 【愚公系列】2022年11月 uniapp专题-优购电商-商品购物车页面

    文章目录 前言 1. 购物车作用 一.商品购物车页面 前言 网上购物车是顾客在进行网上购物时所必须使用的购物工具.它用来临时存储用户选择的商品,协助顾客从虚拟商场中选取商品.携带商品,并到虚拟的收银台 ...

  6. 【愚公系列】2022年11月 uniapp专题-优购电商首页-分类导航

    文章目录 前言 一.分类导航 1.获取分类导航的数据 2.完整源码 3.效果 前言 商品分类是指根据一定的管理目的,为满足商品生产.流通.消费活动的全部或部分需要,将管理范围内的商品集合总体,以所选择 ...

  7. 【愚公系列】2022年11月 uniapp专题-优购电商-商品分类

    文章目录 前言 一.商品分类 前言 商品分类是指根据一定的管理目的,为满足商品生产.流通.消费活动的全部或部分需要,将管理范围内的商品集合总体,以所选择的适当的商品基本特征作为分类标志,逐次归纳为若干 ...

  8. 【愚公系列】2022年11月 微信小程序-优购电商项目-首页设计

    文章目录 前言 一.首页设计 1.首页的业务逻辑 2.涉及的接口数据 3.关键技术 二.首页相关代码 1.⾃定义组件搜索框 2.wx.request封装 3.首页页面 4.效果 前言 对于小程序电商首 ...

  9. 【愚公系列】2022年11月 微信小程序-优购电商项目-授权页面

    文章目录 前言 1. 授权页面 一.授权页面 1.业务逻辑 2.涉及的接口数据 二.授权页面相关代码 1.页面代码 2.效果 前言 前言:由于微信官方修改了 getUserInfo 接口,所以现在无法 ...

最新文章

  1. [JAVA EE] Filter过滤器
  2. SpringBoot中使用类型安全的配置来注入大量自定义属性
  3. python爬虫实训心得_Python爬虫小结
  4. 在Dreamweaver中安装Emmet(zen-coding)
  5. c++ set 遍历_47. Set 是如何工作的(3) 遍历顺序是如何确定的?
  6. java基础数据类型包装类
  7. 界面开发用qt还是java,做windows界面,用QT还是MFC?
  8. 基于Java+SpringMVC+vue+element实现前后端分离校园失物招领系统详细设计
  9. 2021.4.18高一模拟赛
  10. 服务器raid5数据恢复成功案例,磁盘阵列数据恢复方法
  11. 人工神经网络——学习策略
  12. 线程初步(四)--小练习
  13. 数学公式编辑器:MathType 7 for mac
  14. 瑞格科技IPO被终止:曾拟募资5.6亿 江振翔三兄弟为实控人
  15. RJS Debugging
  16. 不要小瞧你身边那位看起来很“懦弱”的中年人
  17. android authority root galaxy s5,三星G9006v (Galaxy S5 联通4G)一键ROOT教程,看教程秒懂ROOT...
  18. 基于禁忌搜索算法的三维装箱问题
  19. 男生除了干计算机软件还有什么职业,理想男朋友职业都有哪些?前10名竟然是……...
  20. OpenCV(6):基于本地库的图像识别软件(批量读取图片)

热门文章

  1. Docker入门讲解
  2. Win11的Credential Manager怎么打开?
  3. C#课程设计(购物平台)
  4. flatMap() :对每个元素执行映射函数并将结果展平
  5. too many open files in system报错处理方案
  6. 内卷的国货彩妆下,完美日记还能“火”多久?
  7. mysql 学习指南
  8. 金陵科技学院计算机分数,2018金陵科技学院录取分数线
  9. python结合正则表达式及校验码生成算法校验:电话号码、营业执照、组织机构代码证、税务登记证、统一社会信用代码证、非盈利性企业登记证号码的函数
  10. OLED屏幕还未普及,移动VR没有想象中爆发那么快