React后台管理系统-品类的增加、修改和查看
1.页面

2.品类列表展示
- let listBody = this.state.list.map((category, index) => {
- return (
- <tr key={index}>
- <td>{category.id}</td>
- <td>{category.name}</td>
- <td>
- <a className="opear"
- onClick={(e) => this.onUpdateName(category.id, category.name)}>修改名称</a>
- {
- category.parentId === 0
- ? <Link to={`/product-category/index/${category.id}`}>查看子品类</Link>
- : null
- }
- </td>
- </tr>
- );
- });
- return (
- <div id="page-wrapper">
- <PageTitle title="品类列表">
- <div className="page-header-right">
- <Link to="/product-category/add" className="btn btn-primary">
- <i className="fa fa-plus"></i>
- <span>添加品类</span>
- </Link>
- </div>
- </PageTitle>
- <div className="row">
- <div className="col-md-12">
- <p>父品类ID: {this.state.parentCategoryId}</p>
- </div>
- </div>
- <TableList tableHeads={['品类ID', '品类名称', '操作']}>
- {listBody}
- </TableList>
- </div>
- );
- }
3.加载品类列表
- // 加载品类列表
- loadCategoryList(){
- _product.getCategoryList(this.state.parentCategoryId).then(res => {
- this.setState({
- list : res
- });
- }, errMsg => {
- this.setState({
- list : []
- });
- _mm.errorTips(errMsg);
- });
- }
4.修改品类名称
- // 更新品类的名字
- onUpdateName(categoryId, categoryName){
- let newName = window.prompt('请输入新的品类名称', categoryName);
- if(newName){
- _product.updateCategoryName({
- categoryId: categoryId,
- categoryName : newName
- }).then(res => {
- _mm.successTips(res);
- this.loadCategoryList();
- }, errMsg => {
- _mm.errorTips(errMsg);
- });
- }
- }
5.添加品类
- import React from 'react';
- import MUtil from 'util/mm.jsx'
- import Product from 'service/product-service.jsx'
- import PageTitle from 'component/page-title/index.jsx';
- const _mm = new MUtil();
- const _product = new Product();
- class CategoryAdd extends React.Component{
- constructor(props){
- super(props);
- this.state = {
- categoryList : [],
- parentId : 0,
- categoryName : ''
- };
- }
- componentDidMount(){
- this.loadCategoryList();
- }
- // 加载品类列表,显示父品类列表
- loadCategoryList(){
- _product.getCategoryList().then(res => {
- this.setState({
- categoryList : res
- });
- }, errMsg => {
- _mm.errorTips(errMsg);
- });
- }
- // 表单的值发生变化
- onValueChange(e){
- let name = e.target.name,
- value = e.target.value;
- this.setState({
- [name] : value
- });
- }
- // 提交
- onSubmit(e){
- let categoryName = this.state.categoryName.trim();
- // 品类名称不为空,提交数据
- if(categoryName){
- _product.saveCategory({
- parentId : this.state.parentId,
- categoryName : categoryName
- }).then((res) => {
- _mm.successTips(res);
- this.props.history.push('/product-category/index');
- }, (errMsg) => {
- _mm.errorTips(errMsg);
- });
- }
- // 否则,提示错误
- else{
- _mm.errorTips('请输入品类名称');
- }
- }
- render(){
- return (
- <div id="page-wrapper">
- <PageTitle title="品类列表"/>
- <div className="row">
- <div className="col-md-12">
- <div className="form-horizontal">
- <div className="form-group">
- <label className="col-md-2 control-label">所属品类</label>
- <div className="col-md-5">
- <select name="parentId"
- className="form-control"
- onChange={(e) => this.onValueChange(e)}>
- <option value="">根品类/</option>
- {
- this.state.categoryList.map((category, index) => {
- return <option value={category.id} key={index}>根品类/{category.name}</option>
- })
- }
- </select>
- </div>
- </div>
- <div className="form-group">
- <label className="col-md-2 control-label">品类名称</label>
- <div className="col-md-5">
- <input type="text" className="form-control"
- placeholder="请输入品类名称"
- name="categoryName"
- value={this.state.name}
- onChange={(e) => this.onValueChange(e)}/>
- </div>
- </div>
- <div className="form-group">
- <div className="col-md-offset-2 col-md-10">
- <button type="submit" className="btn btn-primary"
- onClick={(e) => {this.onSubmit(e)}}>提交</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- );
- }
- }
- export default CategoryAdd;
React后台管理系统-品类的增加、修改和查看的更多相关文章
- React后台管理系统-品类选择器二级联动组件
1.页面大致是这个样子 2.页面结构 <div className="col-md-10"> <select name="&quo ...
- 《React后台管理系统实战 :四》产品分类管理页:添加产品分类、修改(更新)产品分类
一.静态页面 目录结构 F:\Test\react-demo\admin-client\src\pages\admin\category add-cate-form.jsx index.jsx ind ...
- react后台管理系统路由方案及react-router原理解析
最近做了一个后台管理系统主体框架是基于React进行开发的,因此系统的路由管理,选用了react-router(4.3.1)插件进行路由页面的管理配置. 实现原理剖析 1.hash的方式 ...
- 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件
实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...
- 【共享单车】—— React后台管理系统开发手记:主页面架构设计
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- 《React后台管理系统实战 :二》antd左导航:cmd批量创建子/目录、用antd进行页面布局、分离左导航为单独组件、子路由、动态写左导航、css样式相对陷阱
一.admin页面布局及路由创建 0)cmd批量创建目录及子目录 //创建各个目录,及charts和子目录bar md home category product role user charts\b ...
- 【共享单车】—— React后台管理系统开发手记:UI菜单各个组件使用(Andt UI组件)
前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...
- 《React后台管理系统实战 零》:基础笔记
day01 1. 项目开发准备 1). 描述项目 2). 技术选型 3). API接口/接口文档/测试接口 2. 启动项目开发 1). 使用react脚手架创建项目 2). 开发环境运行: npm s ...
- React后台管理系统-添加商品组件
引入了CategorySelector 二级联动组件.FileUploader图片上传组件和RichEditor富文本编辑组件 import React from 'react'; import MU ...
随机推荐
- CESM部署安装环境和使用
平台信息 Description: CentOS Linux release 7.6.1810 (Core) 安装CESM 安装前提:(小提示:耗时较长,需要耐心)阅读原文 CentOS 7(检查:s ...
- oracle impdp时卡死Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
今天在用impdp导入时,Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX卡在建索引的过程一直不动,也不报错,重试了好几遍还是这样. 后来恍 ...
- 人工智能和机器学习 AI&ML howto
我关心的AI.ML的分支领域: 我的博客:Deep Learning 和 Knowledge Graph howto (有关DL&KG的资料都在这里) https://www.cnblogs. ...
- Windows窗体应用开发2--窗体和控件
1.Windows窗体应用程序的各种组件 2.windows窗体控件的主要类别和功能 3.Windows窗体应用程序处理事件的方法 4.添加并配置Windows窗体和控件 5.创建时间处理程序并监视程 ...
- 异步对象(XMLHttpRequest)的帮助脚本
异步对象五部曲 这是post请求的. //1.00创建异步对象 var xhr = new XMLHttpRequest(); //2.0 xhr.open("post", url ...
- Hibernate课程 初探一对多映射5-3 Eclipse根据表反向生成实体类
1 配置 项目右击==>properties==>project facets==>convert to faceted form...复选框选中java 和 jpa==>fu ...
- 使用axios请求发送数据
之前一直没有用成功,今天看了一些博客,学会了使用axios插件 1.首先就是下载依赖啦 2.main.js import axios from 'axios'Vue.prototype.$axios ...
- 【工作】Proxy Server的优化 - 检测目标网站URL变化
在工作中,我在组里负责一个Proxy(代理)的Module,这个Module是针对微软的Office 365的邮件门户OWA实现,工作起来后,用户访问Office 365 OWA,无需再输入Offic ...
- Developer - 如何自我保证Node.js模块质量
组里正在做SaaS产品,其中一些模块(Module)是Node.js实现,这里我们主要使用Node.js实现Web Server来提供服务. 在做SaaS项目之前,组里的开发模式是传统的Deverlo ...
- 数据结构与算法分析java——线性表1
说到线性结构的话,我们可以根据其实现方式分为三类: 1)顺序结构的线性表 2)链式结构的线性表 3)栈和队列的线性表 应用程序后在那个的数据大致有四种基本的逻辑结构: 集合:数据元素之间只有&qu ...