import React from 'react'; import $ from 'jquery/src/ajax'; import { Modal, message, Spin, Upload, Button, Form, } from 'antd'; import { getIndustryCategory } from '@/industryList.js'; import { splitUrl ,getMaturity,getAchievementType,getTransaction,getAchievementPosition,getAchievementCategory,getReleaseStateList,getInnovation} from '@/tools.js'; const DemandDetail = Form.create()(React.createClass({ getInitialState() { return { visible: false, loading: false, auditStatus: 0, textFileList: [], pictureUrlMin:[], videoFileList: [], pictureUrl: [], }; }, loadData(id) { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/user/achievement/achievementDetail' , data: { id: id }, success: function (data) { let thisData = data.data; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; thisData = {}; }; let publishPagesArr = []; thisData.publishPages.map(item=>{ publishPagesArr.push(item.publishPage) }) this.setState({ id:thisData.id, publishPagesArr:publishPagesArr, data: thisData, auditStatus:thisData.auditStatus, pictureUrl: thisData.technicalPictureUrl ? splitUrl(thisData.technicalPictureUrl, ',', globalConfig.avatarHost + '/upload') : [], pictureUrlMin: thisData.pictureUrlMin ? splitUrl(thisData.pictureUrlMin, ',', globalConfig.avatarHost + '/upload') : [] }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, getTagsArr(e) { this.setState({ tags: e }); }, getPictureUrl(e) { this.setState({ pictureUrl: e }); }, cancelFun(){ this.props.closeDesc(); }, //刷新发布 updateFun(inex){ this.setState({ loading:true }) $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context +'/api/user/achievement/refreshPublish', data: { id: this.state.id, auditStatus:this.state.auditStatus } }).done(function (data) { if (!data.error.length) { message.success('刷新成功!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.props.handOk(); }.bind(this)); }, //撤销发布 revokeFun(){ this.setState({ loading:true }) $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/user/achievement/offShelf', data: { id: this.state.id, } }).done(function (data) { if (!data.error.length) { message.success('撤销成功!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.props.handOk(); }.bind(this)); }, componentWillMount() { if (this.props.data.id) { this.loadData(this.props.data.id); } else { this.state.data = {}; }; }, componentWillReceiveProps(nextProps) { if (!this.props.visible && nextProps.visible) { this.state.textFileList = []; this.state.videoFileList = []; if (nextProps.data.id) { this.loadData(nextProps.data.id); } else { this.state.data = {}; this.state.pictureUrl = []; this.state.pictureUrlMin = []; }; this.props.form.resetFields(); }; }, render() { const theData = this.state.data || {}; const { getFieldDecorator } = this.props.form; const FormItem = Form.Item const formItemLayout = { labelCol: { span: 6 }, wrapperCol: { span: 12 }, }; return ( <div className='login'> <Form layout="horizontal" id="demand-form"> <Spin spinning={this.state.loading}> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="标题"> <span>{theData.name}</span> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="发个成果吧"> <span>{theData.introduction}</span> </FormItem> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="知识产权情况"> <span>{theData.patentCase}</span> </FormItem> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="技术参数"> <span>{theData.parameter}</span> </FormItem> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="团队情况"> <span>{theData.teamDes}</span> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="关键字"> <span>{theData.keywords&&theData.keywords.length?(theData.keywords).join(','):''}</span> </FormItem> </div> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="行业领域"> <span>{getIndustryCategory(theData.fieldA,theData.fieldB)}</span> </FormItem> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="成果类型"> <span>{getAchievementType(theData.dataCategory)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="知识产权类型"> <span>{getAchievementCategory(theData.category)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="创新度"> <span>{getInnovation(theData.innovation)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="成熟度"> <span>{getMaturity(theData.maturity)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="交易形式"> <span>{getTransaction(theData.transferMode)}</span> </FormItem> </div> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="成果(大图)"> <div className="clearfix"> <Upload className="demandDetailShow-upload" listType="picture-card" fileList={this.state.pictureUrl} onPreview={(file) => { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > </Upload> <Modal maskClosable={false} footer={null} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false }) }}> <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} /> </Modal> </div> </FormItem> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="成果(小图)"> <div className="clearfix"> <Upload className="demandDetailShow-upload" listType="picture-card" fileList={this.state.pictureUrlMin} onPreview={(file) => { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > </Upload> <Modal maskClosable={false} footer={null} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false }) }}> <img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} /> </Modal> </div> </FormItem> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="精品成果"> <span>{theData.boutique?'精品':'非精品'}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="热点成果"> <span>{theData.isHot?'热点':'非热点'}</span> </FormItem> </div> <div> <FormItem className="half-item" {...formItemLayout} label="发布状态"> <span>{getReleaseStateList(theData.auditStatus)}</span> </FormItem> </div> <div> <FormItem className="half-item" labelCol={{ span: 6 }} wrapperCol={{ span: 18 }} label="发布位置"> <span>{getAchievementPosition(theData.publishPages)}</span> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="审核信息"> <span>{theData.auditInfo}</span> </FormItem> </div> <div className="clearfix"> {this.props.data.auditStatus=='2'&&<FormItem wrapperCol={{ span: 12, offset: 3 }}> <Button className="set-submit" type="primary" onClick={(e)=>{this.updateFun()}} > 刷新发布 </Button> <Button type="danger" style={{marginRight:20}} onClick={(e)=>{this.revokeFun()}}> 撤销发布 </Button> <Button className="set-submit" type="ghost" onClick={this.cancelFun}> 取消 </Button> </FormItem>} </div> </Spin> </Form> </div> ) } })); export default DemandDetail;