React后台管理系统-商品管理列表组件
1.商品列表页面结构
- <div id="page-wrapper">
- <PageTitle title="商品列表">
- <div className="page-header-right">
- <Link to="/product/save" className="btn btn-primary">
- <i className="fa fa-plus"></i>
- <span>添加商品</span>
- </Link>
- </div>
- </PageTitle>
- <ListSearch onSearch={(searchType, searchKeyword) => {this.onSearch(searchType, searchKeyword)}} />
- <TableList tableHeads={tableHeads}>
- {
- this.state.list.map((product, index) => {
- return (
- <tr key={index}>
- <td>{product.id}</td>
- <td>
- <p>{product.name}</p>
- <p>{product.subtitle}</p>
- </td>
- <td>¥{product.price}</td>
- <td>
- <span>{product.status == 1 ? '在售' : '已下架'}</span>
- <button className="btn btn-xs btn-warning"
- onClick={(e) => {this.onSetProductStatus(e, product.id, product.status)}}>{product.status == 1 ? '下架' : '上架'}</button>
- </td>
- <td>
- <Link className="opear" to={`/product/detail/${product.id}`}>详情</Link>
- <Link className="opear" to={`/product/save/${product.id}`}>编辑</Link>
- </td>
- </tr>
- );
- })
- }
- </TableList>
- <Pagination current={this.state.pageNum}
- total={this.state.total}
- onChange={(pageNum) => this.onPageNumChange(pageNum)}/>
- </div>
2.请求后台数据
- this.state = {
- list : [],
- pageNum : 1,
- listType : 'list'
- };
- componentDidMount(){
- this.loadProductList();
- }
- // 加载商品列表
- loadProductList(){
- let listParam = {};
- listParam.listType = this.state.listType;
- listParam.pageNum = this.state.pageNum;
- //如果是搜索的话需要传入搜索类型和搜索关键字
- if(this.state.listType === 'search'){
- listParam.searchType=this.state.searchType;
- listParam.keyword = this.state.searchKeyword;
- }
- _product.getProductList(listParam).then( res => {
- this.setState(res);
- }, errMsg => {
- this.setState({
- list : []
- })
- _mm.errorTips(errMsg);
- })
- }
3.当页码切换时,更新state里边pageNum的值
- //更新页码
- onPageNumChange(pageNum){
- //获取当前页,然后更改this.state里边的pageNum,成功以后调用this.loadProductList()方法
- this.setState({
- pageNum:pageNum
- }, () => {
- this.loadProductList();
- });
- }
4.改变商品的上下架状态
- //改变商品的上下架状态
- //1是上架,2是下架
- onSetProductStatus(e,productId,currentStatus){
- let newStatus = currentStatus == 1 ? 2 : 1;
- // 1是上架 ,2 是下架 确认应该是说相反的
- let confirmTips=currentStatus == 1 ? "确认下架该商品吗" : "确认上架该商品吗"
- if(window.confirm(confirmTips)){
- _product.setProductStatus(
- {
- productId:productId,
- status:newStatus
- }
- ).then(res => {
- _mm.successTips(res);
- this.loadProductList();
- }, errorMsg => {
- _mm.errorTips(res);
- });
- }
- }

React后台管理系统-商品管理列表组件的更多相关文章
- React后台管理系统-商品列表搜索框listSearch组件
1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap"> <div classN ...
- React后台管理系统-订单管理
1.订单管理页面和商品管理页面类似,都是一个搜索组件+列表组件 2.搜索框search组件 import React from 'react'; class ListSearch extends ...
- React后端管理系统-商品详情detail组件
import React from 'react'; import MUtil from 'util/mm.jsx' import Product from 'service/product-serv ...
- 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发
项目下载:https://download.csdn.net/download/weixin_44893902/13715024 1.9元付费赞助下载:https://download.csdn.ne ...
- 《React后台管理系统实战 :二》antd左导航:cmd批量创建子/目录、用antd进行页面布局、分离左导航为单独组件、子路由、动态写左导航、css样式相对陷阱
一.admin页面布局及路由创建 0)cmd批量创建目录及子目录 //创建各个目录,及charts和子目录bar md home category product role user charts\b ...
- 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件
实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...
- 《React后台管理系统实战 零》:基础笔记
day01 1. 项目开发准备 1). 描述项目 2). 技术选型 3). API接口/接口文档/测试接口 2. 启动项目开发 1). 使用react脚手架创建项目 2). 开发环境运行: npm s ...
- 【共享单车】—— React后台管理系统开发手记:主页面架构设计
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- react后台管理系统路由方案及react-router原理解析
最近做了一个后台管理系统主体框架是基于React进行开发的,因此系统的路由管理,选用了react-router(4.3.1)插件进行路由页面的管理配置. 实现原理剖析 1.hash的方式 ...
随机推荐
- Idea提示没有符号类错误解决
将提示没有符号类的文件打开,右键单独编译一次,再重新打包即可解决
- 利用xsltproc转换jtl报告到html报告
使用Jmeter测试完后并不能直接生成html报告,而是jtl报告.这里我们可以用xsltproc来解决. xsltproc是由DanielVeillard用来C语言编写的是一个快速XSLT引擎, ...
- 关于webpack的版本导致的postcss-loader的问题
来源自问题 https://segmentfault.com/q/1010000006987956 !!!发现这解决方案还是不能用,估计是webpack又更新了一轮,请看看下下方的答案 某个版本web ...
- linux中的三种时间
mtime [修改时间] 文件/目录的修改时间 ctime [属性修改时间] 文件目录的属性的修改时间 atime [访问时间]文件/目录的访问时间 stat 123.txt File: `1 ...
- springboot 参数校验详解
https://www.jianshu.com/p/89a675b7c900 在日常开发写rest接口时,接口参数校验这一部分是必须的,但是如果全部用代码去做,显得十分麻烦,spring也提供了这部分 ...
- Shell 学习—AWK介绍
Shell 学习—AWK = = = 安装awk root@kiki-desktop:~/shell# apt-get install gawk gawk-doc = = = awk 是一种程序语言. ...
- NopI 导出数据
protected void exportAward(DataSet dsResult) { if (dsResult != null) { string fileName = System.Web. ...
- 全栈工程师,也叫全端工程师,英文FullStackdevelopver。是指掌握多种技能,并能利用多种技能独立完成产品的人。
全栈工程师的发展 在系统全面的大公司,全栈工程师并没有一个稳定的发展职位.我无比赞同知乎那个帖子里面这样的一句话: 一个真正的全栈工程师,目标只有一个:创业. 听起来有些悲凉,但事实就是如此.任何一个 ...
- erlang通讯解析浮点数的一些问题
这两天我弟弟遇到一个比较有意思的问题.他在前端协定数据协议的时候用到了float和double,所以他想问float和double在erlang后端中是如何解析的.我之前写协议也很少用到浮点数,所以也 ...
- mysql查询索引
mysql在使用like查询中,能不能用到索引?在什么地方使用索引呢? 在使用like的时候,如果使用‘%%’,会不会用到索引呢? EXPLAIN SELECT * FROM `user` WHERE ...