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. POI 按word模版生成合同并生成PDF

    功能需求:根据用户给的word版本合同文件.docx,实现模版替换功能. 如: 功能:支持段落和表格里的文字替换,还可以支持表格替换.如果需要段落需要换行用<br>隔开如:身份证<b ...

  2. Murano Weekly Meeting 2016.06.28

    Meeting time: 2016.June.28 1:00~2:00 Chairperson:  Kirill Zaitsev, from Mirantis Meeting summary: 1. ...

  3. java内存区域与内存溢出

    JVM的内存区域划分: jvm的内存区域分为5部分:程序计数器,虚拟机栈,本地方法栈,堆跟方法区. 程序计数器,虚拟机栈,本地方法栈三部分是线程私有的,堆跟方法区是公共的. 1.程序计数器 是一块较小 ...

  4. 使用js调用摄像头拍照

    在一些浏览器里已经可以使用web api调用摄像头功能了. 基于此可以经行拍照摄像功能,网上找了些资料,然后实现了简单的拍照功能 演示地址 bingxl.cn/webrtc.html 代码 <! ...

  5. Nginx 在Windows下搭建静态Web服务

    简介 nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP ...

  6. Git提交代码到主分区

    git 提交代码,本地新建一个my分支,不从本地master分支直接上传,而是先从本地my分支上提交至本地master分支,然后本地master提交至远程master分支 上.前提是远程只有一个mas ...

  7. html常用样式

    1.小手:style="cursor: pointer;" 2.滚动条:style="height: 1oopx;overflow: auto;"; 3.文本框 ...

  8. 移动端纯CSS3制作圆形进度条所遇到的问题

    近日在开发的页面中,需要制作一个动态的圆形进度条,首先想到的是利用两个矩形,宽等于直径的一半,高等于直径,两个矩形利用浮动贴在一起,设置overflow:hidden属性,作为盒子,内部有一个与其宽高 ...

  9. Redis在Windows下安装全过程

    一.下载windows版本的Redis 去官网找了很久,发现原来在官网上可以下载的windows版本的,现在官网以及没有下载地址,只能在github上下载,官网只提供linux版本的下载 官网下载地址 ...

  10. Bootstrap开发

    1.BootStrap开发工具 任意前端工具 专门Bootstrap工具:Jetstrap(下载地址:jetstrap.com) 2.官网: www.bootcss.com(“下载Bootstrap” ...