商品分类展示页面和关键字搜索所显示的商品页面,只是传入的信息不同,重复调用了相同的子组件。子组件为商品列表组件和详细信息组件,点击列表页展示的商品时,跳转到对应商品详情页。列表页用到的分页功能单独制作为分页组件,通过父子组件传值来与商品列表组件联系,点击分页组件的上/下一页以及对应页号时可以展示不同的商品。

商品列表分页功能主要通过数据库查询语句select-limit来实现,点击不同分类时传入对应字段category的值以及预先设定好的展示数量,查询数据库product表将对应数据返回渲染到页面。而搜索功能将用户输入的关键字进行简单处理后,主要通过数据库的模糊查询来实现。

<template>
<!-- 商品列表 --><div id="ProductList"><!-- 商品列表展示 --><div :class="{displayEmpty:!isShow}"><div class="list_box" :style="{height: listheight}"><ul><li :key="index" v-for="(item,index) in proList" @click="gopinfopage(item.id)"><img :src="item.bimg"><h4>{{item.name}}</h4><div>¥{{item.price}}</div><h6>已售:{{item.sellout}}</h6></li></ul></div><!-- 触发事件 表单名 搜索条件 标志 默认显示数量--><Paging @pageChange="pageChange" formname="productlist" :condition="category" :keysign="keysign" :defcount="this.defCount"></Paging></div><div class="searchEmpty" :class="{displayEmpty:isShow}">未搜索到与此关键词有关的商品。<br>请换用其他关键词重新搜索,或去 <router-link to="/home/first">首页逛逛&gt;&gt;</router-link></div></div>
</template><script>
import Paging from '../children/Paging'
import { getProList } from '@/api/index'
export default {name: 'ProductList',components:{Paging},props:['keysign','category','catname'],data() {return {proList:[],defCount:10,  //默认页数isShow:true}},mounted(){this.pageChange(1)},computed:{listheight(){// 页面高度不固定,由商品数量计算得出var k = parseInt(this.proList.length / 5)if(this.proList.length % 5){k += 1}return (k * 300 + 10) + 'px'}},methods:{pageChange(index){//请求此页商品列表数据,传参商品页所属类别getProList({keysign:this.keysign,category:this.category,offset:(index - 1) * this.defCount,count:this.defCount}).then((res) => {if(res.length <= 0){this.isShow = false}else{this.proList = resthis.isShow = true}}).catch(error => {alert('error1')})},gopinfopage(id){// 将被点击商品的对应数据库id,所属类别以及类别名称传入详情页//query传参要用path来引入,params传参要用name来引入this.$router.push({path:'pinfo',query:{productId:id,category:this.category,catname:this.catname}})}}
}
</script><style scoped>
*{padding: 0;margin: 0;list-style: none;
}
.list_box{width: 1112px;background-color: #f3f3f3;margin: 50px auto;
}
.list_box li{display: block;width: 188px;height: 278px;background-color: white;margin: 10px 0 0 10px;float: left;padding: 10px 10px 0 10px;border: 1px solid white;
}
.list_box li:hover{border: 1px solid red;cursor:pointer
}
.list_box li img{display: block;width: 150px;height: 170px;padding: 20px;
}
.list_box li h4{font-size: 15px;color: #444;margin-top: 5px;/* 单行多余隐藏 */white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.list_box li:hover h4{text-decoration: underline;color: #000;
}
.list_box li:hover img{width: 170px;height: 190px;transition: all 0.5s;padding: 10px;
}
.list_box li div{color: #be1616;font-weight: 500;font-size: 20px;height: 22px;float: left;margin-top: 10px;
}
.list_box li h6{color: #555;float: right;font-size: 15px;font-weight: 400;margin-top: 13px;
}
.searchEmpty{width: 500px;height: 500px;line-height: 30px;margin: 0 auto;margin-top: 200px;text-align: center;
}
.displayEmpty{display: none;
}
.searchEmpty a{color: #237dd6;cursor: pointer;text-decoration: none;
}
</style>

用户点击分页组件的不同按钮后,分页组件先进行处理,判断当前显示按钮的样式转变,以及整体的移动让当前显示页按钮时刻位于显示页码的中间部分。点击上一页和下一页时,判断是否有页码可以左右移动。最后再调动商品列表父组件的对应事件pageChange(),请求数据库,切换商品列表显示内容。

购物商城系统设计与实现总结_商品列表展示页的实现相关推荐

  1. (转)淘淘商城系列——MyBatis分页插件(PageHelper)的使用以及商品列表展示

    http://blog.csdn.net/yerenyuan_pku/article/details/72774381 上文我们实现了展示后台页面的功能,而本文我们实现的主要功能是展示商品列表,大家要 ...

  2. 基于JAVA电商购物商城系统设计与实现 开题报告

      本科生毕业论文 基于Java在线购物商城系统(springboot框架) 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生 ...

  3. 基于PHP网上购物商城系统设计与实现 开题报告

      专科/本科生毕业论文 基于PHP+Mysql网上商城系统 开题报告 学    院: 专    业: 计算机科学与技术 年    级: 学生姓名: 指导教师:   XXXX大学本科生毕业论文(设计) ...

  4. 网上购物商城系统设计与实现

    项目背景和意义 目的:伴随着互联网技术的不断发展和完善,在人们的生活和工作的各个方面,互联网都有着非常重大的影响.伴随着国内电子商务行业的迅猛发展,消费者现在能够轻松的实现足不出户的,仅仅通过网络购物 ...

  5. 基于php网上购物商城系统设计与实现

    用户首次登陆系统需要注册一个用户账号,用户在登录平台后,可以进行平台的操作. (1)登录功能:注册普通账号登录:登录后可以修改用户的基本信息,也可以退出. (2)资讯功能:后台录入资讯,用户可以任意浏 ...

  6. Django项目实践(商城):十五、商品列表页面

    (根据居然老师直播课内容整理) 一.商品列表页面分析 1.商品频道分类 -已经在"首页广告""首页商品频道分类"中实现,将相关代码封装到contents.uti ...

  7. java商品列表展示_前台开发-----开发商品的列表显示

    创建分页的数据模型 在model层创建一个分页的数据模型,命名为:Page.java,为了实现点击某一个系列进入到商品的列表,因此需要进行分页处理: 采用了向上取整的方式进行分页: 1 private ...

  8. java商品列表展示_springMVC入门程序。使用springmvc实现商品列表的展示。

    1.1 开发环境 本教程使用环境: Jdk:jdk1.7.0_72 Eclipse:mars Tomcat:apache-tomcat-7.0.53 Springmvc:4.1.3 1.2 需求 使用 ...

  9. 基于Java+SpringBoot的鞋类商品购物商城系统设计与实现

     博主介绍:✌擅长Java.微信小程序.Python.Android等,专注于Java技术领域和毕业项目实战✌

最新文章

  1. Python3 异步编程之进程与线程-1
  2. 5.16GW光伏扶贫,各省费用如何筹措?
  3. 拼接字符SQL语句拼接 最后一个字符多出 处理方式
  4. Django - Python3 常用命令
  5. c++ 隐藏进程_Linux 查看进程的动态信息
  6. CNN进行新闻文本分类代码实战,包含分类文本
  7. C++ Primer Plus学习(七)——函数简介
  8. c语言字符数组赋值_C语言关于结构体字符成员元素赋值的方法
  9. 极域电子书包课堂管理系统怎么控屏_极域电子教室使用说明
  10. android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
  11. 2019/12/9 K60单片机学习
  12. 微信怎样诞生:张小龙给马化腾的一封邮件
  13. android定位4g不准,定位不准/失败的处理方法
  14. linux shell 统计词频,shell之词频统计
  15. boost::math::binomial_distribution用法的测试程序
  16. 干货 | 手把手教你搭建一套OpenStack云平台
  17. 兽医提醒:这几种养狗方式,会让狗狗身体越来越差
  18. 摩杜云将出席CDEC2021中国数字智能生态大会
  19. 15个微软Edge浏览器插件,你用过哪几个?
  20. [047量化交易]python获取股票 量比 换手率 市盈率-动态 市净率 总市值 流通市值

热门文章

  1. DS1302时钟程序解读
  2. 构建风控评分卡模型介绍(WOE/KS/ROC)
  3. Arrays.stream()
  4. Linux下Web服务器开发
  5. 3-1存储系统-存储器概述主存储器
  6. java Date.getDay()
  7. html翻译插件,vscode系列: 做个五脏俱全的翻译插件
  8. Mac鼠标滚轮控制浏览器
  9. 学习笔记(03):JavaWeb基础核心技术-4. 佟刚_JavaWEB_第一个 Servlet 程序
  10. 正则表达式 ---判断非空