1.页面

2.品类列表展示

  1. let listBody = this.state.list.map((category, index) => {
  2.             return (
  3.                 <tr key={index}>
  4.                     <td>{category.id}</td>
  5.                     <td>{category.name}</td>
  6.                     <td>
  7.                         <a className="opear"
  8.                             onClick={(e) => this.onUpdateName(category.id, category.name)}>修改名称</a>
  9.                         {
  10.                             category.parentId === 0
  11.                             ? <Link to={`/product-category/index/${category.id}`}>查看子品类</Link>
  12.                             : null
  13.                         }
  14.                     </td>
  15.                 </tr>
  16.             );
  17.         });
  18.         return (
  19.             <div id="page-wrapper">
  20.                 <PageTitle title="品类列表">
  21.                     <div className="page-header-right">
  22.                         <Link to="/product-category/add" className="btn btn-primary">
  23.                             <i className="fa fa-plus"></i>
  24.                             <span>添加品类</span>
  25.                         </Link>
  26.                     </div>
  27.                 </PageTitle>
  28.                 <div className="row">
  29.                     <div className="col-md-12">
  30.                         <p>父品类ID: {this.state.parentCategoryId}</p>
  31.                     </div>
  32.                 </div>
  33.                 <TableList tableHeads={['品类ID', '品类名称', '操作']}>
  34.                     {listBody}
  35.                 </TableList>
  36.             </div>
  37.         );
  38.     }

3.加载品类列表

  1. // 加载品类列表
  2.     loadCategoryList(){
  3.        _product.getCategoryList(this.state.parentCategoryId).then(res => {
  4.            this.setState({
  5.                list : res
  6.            });
  7.        }, errMsg => {
  8.            this.setState({
  9.                list : []
  10.            });
  11.            _mm.errorTips(errMsg);
  12.        });
  13.    }

4.修改品类名称

  1. // 更新品类的名字
  2.     onUpdateName(categoryId, categoryName){
  3.        let newName = window.prompt('请输入新的品类名称', categoryName);
  4.        if(newName){
  5.            _product.updateCategoryName({
  6.                categoryId: categoryId,
  7.                categoryName : newName
  8.            }).then(res => {
  9.                _mm.successTips(res);
  10.                this.loadCategoryList();
  11.            }, errMsg => {
  12.                _mm.errorTips(errMsg);
  13.            });
  14.        }
  15.    }

5.添加品类

  1. import React from 'react';
  2. import MUtil from 'util/mm.jsx'
  3. import Product from 'service/product-service.jsx'
  4. import PageTitle from 'component/page-title/index.jsx';
  5. const _mm = new MUtil();
  6. const _product = new Product();
  7. class CategoryAdd extends React.Component{
  8.     constructor(props){
  9.         super(props);
  10.         this.state = {
  11.             categoryList : [],
  12.             parentId : 0,
  13.             categoryName : ''
  14.         };
  15.     }
  16.     componentDidMount(){
  17.         this.loadCategoryList();
  18.     }
  19.     // 加载品类列表,显示父品类列表
  20.     loadCategoryList(){
  21.         _product.getCategoryList().then(res => {
  22.             this.setState({
  23.                 categoryList : res
  24.             });
  25.         }, errMsg => {
  26.             _mm.errorTips(errMsg);
  27.         });
  28.     }
  29.     // 表单的值发生变化
  30.     onValueChange(e){
  31.         let name = e.target.name,
  32.             value = e.target.value;
  33.         this.setState({
  34.             [name] : value
  35.         });
  36.     }
  37.     // 提交
  38.     onSubmit(e){
  39.         let categoryName = this.state.categoryName.trim();
  40.         // 品类名称不为空,提交数据
  41.         if(categoryName){
  42.             _product.saveCategory({
  43.                 parentId : this.state.parentId,
  44.                 categoryName : categoryName
  45.             }).then((res) => {
  46.                 _mm.successTips(res);
  47.                 this.props.history.push('/product-category/index');
  48.             }, (errMsg) => {
  49.                 _mm.errorTips(errMsg);
  50.             });
  51.         }
  52.         // 否则,提示错误
  53.         else{
  54.             _mm.errorTips('请输入品类名称');
  55.         }
  56.     }
  57.     render(){
  58.         return (
  59.             <div id="page-wrapper">
  60.                 <PageTitle title="品类列表"/>
  61.                 <div className="row">
  62.                     <div className="col-md-12">
  63.                         <div className="form-horizontal">
  64.                             <div className="form-group">
  65.                                 <label className="col-md-2 control-label">所属品类</label>
  66.                                 <div className="col-md-5">
  67.                                     <select name="parentId"
  68.                                         className="form-control"
  69.                                         onChange={(e) => this.onValueChange(e)}>
  70.                                         <option value="0">根品类/</option>
  71.                                         {
  72.                                             this.state.categoryList.map((category, index) => {
  73.                                                 return <option value={category.id} key={index}>根品类/{category.name}</option>
  74.                                             })
  75.                                         }
  76.                                     </select>
  77.                                 </div>
  78.                             </div>
  79.                             <div className="form-group">
  80.                                 <label className="col-md-2 control-label">品类名称</label>
  81.                                 <div className="col-md-5">
  82.                                     <input type="text" className="form-control"
  83.                                         placeholder="请输入品类名称"
  84.                                         name="categoryName"
  85.                                         value={this.state.name}
  86.                                         onChange={(e) => this.onValueChange(e)}/>
  87.                                 </div>
  88.                             </div>
  89.                             <div className="form-group">
  90.                                 <div className="col-md-offset-2 col-md-10">
  91.                                     <button type="submit" className="btn btn-primary"
  92.                                         onClick={(e) => {this.onSubmit(e)}}>提交</button>
  93.                                 </div>
  94.                             </div>
  95.                         </div>
  96.                     </div>
  97.                 </div>
  98.             </div>
  99.         );
  100.     }
  101. }
  102. export default CategoryAdd;

更多专业前端知识,请上 【猿2048】www.mk2048.com

React后台管理系统-品类的增加、修改和查看相关推荐

  1. React后台管理系统-品类选择器二级联动组件

    React后台管理系统-品类选择器二级联动组件 品类选择器二级联动 posted on 2018-06-26 22:21 gisery 阅读( ...) 评论( ...) 编辑 收藏

  2. 【开发篇】10分钟快速搭建React后台管理系统模板

    React后台管理系统模板 github 我又回来了!!!学完前端react,再学spring,这周或者下周写spring有关的!!! 一.准备React 1.建立react应用 npx create ...

  3. 从头开始react后台管理系统-安装ant-Design

    从头开始react后台管理系统-安装ant-Design introduce 在做微信小程序, 想着顺便做一个管理系统的 随便扯扯 我是个菜鸡,很菜很菜的菜鸡,春招各家凉,现在还是0offer.心情很 ...

  4. react后台管理系统项目总结

    React后台管理项目 1.创建一个项目 2.配置一个ui插件库 开始 实现跳转 快速获取路由地址 将路由和组件映射 axios请求 实现登录模块 隐藏二级路由 按照价格排序或者按照销量等排序 管理员 ...

  5. 《React后台管理系统实战:十一》可视图表及首页图表

    一.简介及环境安装 les135- 1.常用数据可视化图表库 1) echarts a. https://echarts.baidu.com/ b. 百度开源, 如果要在 react 项目中使用, 需 ...

  6. 《React后台管理系统实战:五》产品管理(一)

    一.概述 1.1目录结构及功能 src/pages/admin/product/add-update.jsx //添加及更新产品detail.jsx //产品详情home.jsx //产品默认页ind ...

  7. 《React后台管理系统实战:五》产品管理(二):产品添加页面及验证等、富文本编辑器、提交商品

    一.产品添加基础部分 1 home.jsx点添加按钮动作跳转到添加商品页 点击:onClick={() => this.props.history.push('/product/add-upda ...

  8. react 拖拽连接插件_一款精美的 react 后台管理系统

    众里寻他千百度,蓦然回首,那人却在,灯火阑珊处.这么好的react开源项目,值得珍藏了! 项目依赖模块 项目是用create-react-app创建的,依赖包如下: react(是一个用于构建用户界面 ...

  9. 【共享单车】—— React后台管理系统开发手记:权限设置和菜单调整(未完)...

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

最新文章

  1. ASP.NET中树形图的实现
  2. 【计算机网络】物理层 : 数据通信 ( 数据通信模型 | 信源 | 信宿 | 信道 | 通信方式 | 单工 | 半双工 | 全双工 | 数据传输方式 | 串行 | 并行 )
  3. 十八、彻底掌握金融量化交易库Tushare
  4. 【Servlet】总结 JSP的四大域对象、Servlet的四个作用域:pageContext、request、session、application
  5. 2014-06-29 Web-Front的学习(5)-----DOM学习及JavaScript的扩展
  6. deeplung 代码讲解(自己的理解)(我只是稍微贴下数据增强这部分的代码,其它的借鉴wuzeyuan大神的)lung16数据
  7. 大数据如何影响企业的决策
  8. 饿汉式单例模式,懒汉式单例模式
  9. ipad pythonista_iPad编程软件推荐(一) —— Pythonista 3
  10. unity之EasyAR使用
  11. mysql进销存表设计_数据库设计:数据库进销存管理系统(包含有仓库出库入库触发器)...
  12. 统计push点击次数的shell脚本最初版本1
  13. 八、PyQt5绘图技术
  14. 3DMax提示:单位不匹配
  15. KCL v0.4.4 发布 - 自定义 YAML Manifests 输出以及 Python SDK
  16. Linux下vim的复制、粘贴操作
  17. Telnet详情及Telnet的安装
  18. 微型计算机中读写速度最快的是,下列存储器中读写速度最快的是______.DOC
  19. MySQL的下载和配置
  20. python集合应用场景_8.Python集合与字符串

热门文章

  1. OD汇编指令集(不断更新)
  2. 堆栈图解CSAPP Bomb Lab实验解析
  3. 【强化学习】PPO代码注释版本
  4. eureka 之前的服务如何关闭_干货分享 | 服务注册中心Spring Cloud Eureka部分源码分析...
  5. 合并两个排序的链表递归和非递归C++实现
  6. Python 基础 - 4.3 random模块
  7. Fiddle用于移动端抓包
  8. JavaScript GetAbsoultURl
  9. 总账分录追溯发票或者付款
  10. C++ cin.sync()和cin.ignore()