React后端管理系统-商品详情detail组件
-
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';
-
import CategorySelector from './category-selector.jsx';
-
-
import './save.scss';
-
-
const _mm = new MUtil();
-
const _product = new Product();
-
-
class ProductDetail extends React.Component{
-
constructor(props){
-
super(props);
-
this.state = {
-
id : this.props.match.params.pid,
-
name : '',
-
subtitle : '',
-
categoryId : 0,
-
parentCategoryId : 0,
-
subImages : [],
-
price : '',
-
stock : '',
-
detail : '',
-
status : 1 //商品状态1为在售
-
}
-
}
-
componentDidMount(){
-
this.loadProduct();
-
}
-
// 加载商品详情
-
loadProduct(){
-
// 有id的时候,表示是编辑功能,需要表单回填
-
if(this.state.id){
-
_product.getProduct(this.state.id).then((res) => {
-
let images = res.subImages.split(',');
-
res.subImages = images.map((imgUri) => {
-
return {
-
uri: imgUri,
-
url: res.imageHost + imgUri
-
}
-
});
-
this.setState(res);
-
}, (errMsg) => {
-
_mm.errorTips(errMsg);
-
});
-
}
-
}
-
render(){
-
return (
-
<div id="page-wrapper">
-
<PageTitle title="添加商品" />
-
<div className="form-horizontal">
-
<div className="form-group">
-
<label className="col-md-2 control-label">商品名称</label>
-
<div className="col-md-5">
-
<p className="form-control-static">{this.state.name}</p>
-
</div>
-
</div>
-
<div className="form-group">
-
<label className="col-md-2 control-label">商品描述</label>
-
<div className="col-md-5">
-
<p className="form-control-static">{this.state.subtitle}</p>
-
</div>
-
</div>
-
<div className="form-group">
-
<label className="col-md-2 control-label">所属分类</label>
-
<CategorySelector
-
readOnly
-
categoryId={this.state.categoryId}
-
parentCategoryId={this.state.parentCategoryId}/>
-
</div>
-
<div className="form-group">
-
<label className="col-md-2 control-label">商品价格</label>
-
<div className="col-md-3">
-
<div className="input-group">
-
<input type="number" className="form-control"
-
value={this.state.price} readOnly/>
-
<span className="input-group-addon">元</span>
-
</div>
-
</div>
-
</div>
-
<div className="form-group">
-
<label className="col-md-2 control-label">商品库存</label>
-
<div className="col-md-3">
-
<div className="input-group">
-
<input type="number" className="form-control"
-
value={this.state.stock} readOnly/>
-
<span className="input-group-addon">件</span>
-
</div>
-
-
</div>
-
</div>
-
<div className="form-group">
-
<label className="col-md-2 control-label">商品图片</label>
-
<div className="col-md-10">
-
{
-
this.state.subImages.length ? this.state.subImages.map(
-
(image, index) => (
-
<div className="img-con" key={index}>
-
<img className="img" src={image.url} />
-
</div>)
-
) : (<div>暂无图片</div>)
-
}
-
</div>
-
</div>
-
<div className="form-group">
-
<label className="col-md-2 control-label">商品详情</label>
-
<div className="col-md-10" dangerouslySetInnerHTML={{__html: this.state.detail}}></div>
-
</div>
-
</div>
-
</div>
-
)
-
}
-
}
-
export default ProductDetail;