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. import CategorySelector from './category-selector.jsx';
  6.  
  7. import './save.scss';
  8.  
  9. const _mm = new MUtil();
  10. const _product = new Product();
  11.  
  12. class ProductDetail extends React.Component{
  13.     constructor(props){
  14.         super(props);
  15.         this.state = {
  16.             id : this.props.match.params.pid,
  17.             name : '',
  18.             subtitle : '',
  19.             categoryId : 0,
  20.             parentCategoryId : 0,
  21.             subImages : [],
  22.             price : '',
  23.             stock : '',
  24.             detail : '',
  25.             status : 1 //商品状态1为在售
  26.         }
  27.     }
  28.     componentDidMount(){
  29.         this.loadProduct();
  30.     }
  31.     // 加载商品详情
  32.     loadProduct(){
  33.         // 有id的时候,表示是编辑功能,需要表单回填
  34.         if(this.state.id){
  35.             _product.getProduct(this.state.id).then((res) => {
  36.                 let images = res.subImages.split(',');
  37.                 res.subImages = images.map((imgUri) => {
  38.                     return {
  39.                         uri: imgUri,
  40.                         url: res.imageHost + imgUri
  41.                     }
  42.                 });
  43.                 this.setState(res);
  44.             }, (errMsg) => {
  45.                 _mm.errorTips(errMsg);
  46.             });
  47.         }
  48.     }
  49.     render(){
  50.         return (
  51.             <div id="page-wrapper">
  52.                 <PageTitle title="添加商品" />
  53.                 <div className="form-horizontal">
  54.                     <div className="form-group">
  55.                         <label className="col-md-2 control-label">商品名称</label>
  56.                         <div className="col-md-5">
  57.                             <p className="form-control-static">{this.state.name}</p>
  58.                         </div>
  59.                     </div>
  60.                     <div className="form-group">
  61.                         <label className="col-md-2 control-label">商品描述</label>
  62.                         <div className="col-md-5">
  63.                             <p className="form-control-static">{this.state.subtitle}</p>
  64.                         </div>
  65.                     </div>
  66.                     <div className="form-group">
  67.                         <label className="col-md-2 control-label">所属分类</label>
  68.                         <CategorySelector
  69.                             readOnly
  70.                             categoryId={this.state.categoryId}
  71.                             parentCategoryId={this.state.parentCategoryId}/>
  72.                     </div>
  73.                     <div className="form-group">
  74.                         <label className="col-md-2 control-label">商品价格</label>
  75.                         <div className="col-md-3">
  76.                             <div className="input-group">
  77.                                 <input type="number" className="form-control"
  78.                                     value={this.state.price} readOnly/>
  79.                                 <span className="input-group-addon">元</span>
  80.                             </div>
  81.                         </div>
  82.                     </div>
  83.                     <div className="form-group">
  84.                         <label className="col-md-2 control-label">商品库存</label>
  85.                         <div className="col-md-3">
  86.                             <div className="input-group">
  87.                                 <input type="number" className="form-control"
  88.                                     value={this.state.stock} readOnly/>
  89.                                 <span className="input-group-addon">件</span>
  90.                             </div>
  91.  
  92.                         </div>
  93.                     </div>
  94.                     <div className="form-group">
  95.                         <label className="col-md-2 control-label">商品图片</label>
  96.                         <div className="col-md-10">
  97.                             {
  98.                                 this.state.subImages.length ? this.state.subImages.map(
  99.                                     (image, index) => (
  100.                                     <div className="img-con" key={index}>
  101.                                         <img className="img" src={image.url} />
  102.                                     </div>)
  103.                                 ) : (<div>暂无图片</div>)
  104.                             }
  105.                         </div>
  106.                     </div>
  107.                     <div className="form-group">
  108.                         <label className="col-md-2 control-label">商品详情</label>
  109.                         <div className="col-md-10" dangerouslySetInnerHTML={{__html: this.state.detail}}></div>
  110.                     </div>
  111.                 </div>
  112.             </div>
  113.         )
  114.     }
  115. }
  116. export default ProductDetail;

React后端管理系统-商品详情detail组件的更多相关文章

  1. React后台管理系统-商品管理列表组件

    1.商品列表页面结构 <div id="page-wrapper">              <PageTitle title="商品列表" ...

  2. React后台管理系统-商品列表搜索框listSearch组件

    1.商品列表搜索框 2.搜索框页面的结构为 <div className="row search-wrap">               <div classN ...

  3. React后台管理系统-订单管理

    1.订单管理页面和商品管理页面类似,都是一个搜索组件+列表组件 2.搜索框search组件 import React from 'react';   class ListSearch extends ...

  4. React后台管理系统-添加商品组件

    引入了CategorySelector 二级联动组件.FileUploader图片上传组件和RichEditor富文本编辑组件 import React from 'react'; import MU ...

  5. React后台管理系统-rich-editor组件

    1.Simditor组件的github地址:https://github.com/mycolorway/simditor 网址:http://simditor.tower.im/ 2.在util里边新 ...

  6. react 从商品详情页返回到商品列表页,列表自动滚动上次浏览的位置

    现状:目前从商品详情页返回到商品列表页,还需要再去请求服务数据,还需要用户再去等待获取数据的过程,这样用户体验非常不好, 遇到的问题: 1:如何将数据缓存, 2:如何获取和保存列表滑动的高度, 3:判 ...

  7. 商品详情页系统的Servlet3异步化实践

    http://jinnianshilongnian.iteye.com/blog/2245925 博客分类: 架构   在京东工作的这一年多时间里,我在整个商品详情页系统(后端数据源)及商品详情页统一 ...

  8. [springboot 开发单体web shop] 8. 商品详情&评价展示

    上文回顾 上节 我们实现了根据搜索关键词查询商品列表和根据商品分类查询,并且使用到了mybatis-pagehelper插件,讲解了如何使用插件来帮助我们快速实现分页数据查询.本文我们将继续开发商品详 ...

  9. Webpact打包React后端Node+Express

    Webpact打包React后端Node+Express 前言 React官方推荐用Browserify或者Webpack 来开发React组件. Webpack 是什么?是德国开发者 Tobias ...

随机推荐

  1. 在Application_Error获取Asp.Net未处理异常信息

    在Application_Error获取Asp.Net未处理异常信息 protected void Application_Error(object sender, EventArgs e) { // ...

  2. Linux证书登录,禁用密码

    如果验证成功的话就可以关闭密码登陆方式了, 编辑/etc/ssh/sshd_config, 将PasswordAuthentication改为no, ChallengeResponseAuthenti ...

  3. 工作采坑札记:3. Spark中es-hadoop插件异常解决

    1. Es-Hadoop异常: org.elasticsearch.hadoop.EsHadoopException: Could not write all entries [615/300864] ...

  4. Quartz使用(2) - Quartz核心接口Scheduler、Job

    quartz的核心接口如下: 接口 含义 Scheduler scheduler的主要API接口 Job 任务实现接口,期望调度器能够执行 JobDetail 用于定义Job实例 Trigger 调度 ...

  5. SQL DATEDIFF语法及时间函数 Sql 查询当天、本周、本月记录

    SQL DATEDIFF语法及时间函数 Sql 查询当天.本周.本月记录 转:http://blog.csdn.net/Json1204/article/details/7863801?locatio ...

  6. Oracle 求昨天 上个月 去年 日期

    到公司发现有一个报表没有收到,查看后发现原来是Oracle数据源异常. ' day, 'yyyyMMdd') AS enddata FROM DUAL; 上面这个sql求上个月今天和昨天.一般情况下不 ...

  7. iOS UIWebView 和 WKWebView 的 cookie 获取,设置,删除

    Cookie简介说到Cookie,或许有些小伙伴会比较陌生,有些小伙伴会比较熟悉.如果项目中,所有页面都是纯原生来实现的话,一般Cookie这个东西或许我们永远也不会接触到.但是,这里还是要说一下Co ...

  8. maven课程 项目管理利器-maven 4-1 使用maven创建web项目 5星

    本节主要讲了使用maven创建web项目 主要分这三大类: 1 新建maven  web项目 2 后续处理普通java项目转web项目需要关注的点 3 maven特色转web需要关注的点 1 新建ma ...

  9. 基于vue2+nuxt构建的高仿饿了么(2018版)

    前言 高仿饿了么,以nuxt作为vue的服务端渲染,适合刚接触或者准备上vue ssr的同学参考和学习 项目地址如遇网络不佳,请移步国内镜像加速节点 效果演示 查看demo请戳这里(请用chrome手 ...

  10. 文件上传PHP

    <?php $targetIp = GetIP(); $fileUpload = 'fileUpload'; $frameCount = 'frameCount'; $fileName = $_ ...