liting2017 6 years ago
parent
commit
f7d768e586

+ 2 - 0
js/admin/index/content.jsx

@@ -5,6 +5,7 @@ import AdmianIndex from '@/administration/index/index';
 import AchievementExamine from '@/administration/achievement/achievementExamine';
 import AchievementLibrary from '@/administration/achievement/techAchievement';
 import BusinessCategory from '@/administration/business/businessCategory';
+import BusinessProject from '@/administration/business/businessProject';
 import News from '@/administration/news/newsList';
 import Policy from '@/administration/policy/policyList';
 
@@ -26,6 +27,7 @@ export default class ContentRouter extends React.Component {
             <Route path="/achievementLibrary" component={AchievementLibrary} />
             <Route path="/achievementExamine" component={AchievementExamine} />
             <Route path="/businessCategory" component={BusinessCategory} />
+            <Route path="/businessProject" component={BusinessProject} />
             <Route path="/news" component={News} />
             <Route path="/policy" component={Policy} />
         </Router>

+ 1 - 0
js/admin/menu.jsx

@@ -32,6 +32,7 @@ module.exports = {
         icon: 'wallet',
         children: [
           { name: '业务分类管理', url: 'businessCategory' },
+          { name: '业务发布审核', url: 'businessProject' },
         ]
       },
       {

+ 71 - 0
js/component/account/business/businessDesc.jsx

@@ -0,0 +1,71 @@
+import React from 'react';
+import { Modal, Spin } from 'antd';
+import DemandForm from '@/account/business/businessForm';
+import DemandDetaiel from '@/account/business/businessDetails';
+
+class DemandDesc extends React.Component {
+	constructor(props) {
+		super(props);
+		this.state = {
+			loading: false,
+			pictureUrl: [],
+			showState:false
+		};
+	}
+	handleCancel() {
+		this.setState({
+			visible: false,
+		});
+		this.props.closeDesc(false, false);
+	}
+	handOk() {
+		this.setState({
+			visible: false,
+		});
+		this.props.closeDesc(false, true);
+	}
+	componentWillReceiveProps(nextProps) {
+		this.state.visible = nextProps.showDesc;
+	}
+	render() {
+		let data = this.props.data || {auditStatus:0};
+		return (
+			<div className="patent-desc">
+				<Modal
+					maskClosable={false}
+					visible={this.state.visible}
+					onOk={this.handOk.bind(this)}
+					onCancel={this.handleCancel.bind(this)}
+					width="1000px"
+					title={!data.id ? '新建项目' : '项目详情'}
+					footer=""
+					className="admin-desc-content"
+				>
+					<div>
+						<div>
+								{data.auditStatus=='1'||data.auditStatus=='2'?
+									<DemandDetaiel
+									closeDesc={this.handleCancel.bind(this)}
+									data={this.props.data}
+									firstData={this.props.firstData}
+									visible={this.state.visible}
+									handOk={this.handOk.bind(this)}
+									/>
+									:
+									<DemandForm 
+										closeDesc={this.handleCancel.bind(this)}
+										data={this.props.data}
+										firstData={this.props.firstData}
+										visible={this.state.visible}
+										handOk={this.handOk.bind(this)}
+										/>
+								} 
+						</div>
+					</div>
+				</Modal>
+			</div>
+		);
+	}
+}
+
+export default DemandDesc;

+ 351 - 0
js/component/account/business/businessDetails.jsx

@@ -0,0 +1,351 @@
+import React from 'react';
+import $ from 'jquery/src/ajax';
+import { Modal, message, Spin, Upload, Button, Form } from 'antd';
+import { getprovince, splitUrl } from '@/tools.js';
+
+const DemandDetail = Form.create()(
+	React.createClass({
+		getInitialState() {
+			return {
+				visible: false,
+				loading: false,
+				auditStatus: 0,
+				textFileList: [],
+				videoFileList: [],
+				pictureUrl: []
+			};
+		},
+		loadData(id) {
+			this.setState({
+				loading: true
+			});
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/detail',
+				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 firstData = this.props.firstData,name='';
+                    firstData.map(item=>{
+                        if(item.id==thisData.categoryId){
+                            name=item.name;
+                        }
+                    })
+					this.setState({
+						id: thisData.id,
+                        data: thisData,
+                        name:name,
+						auditStatus: thisData.auditStatus,
+						orgCodeUrl: thisData.minImgUrl
+							? splitUrl(thisData.minImgUrl, ',', globalConfig.avatarHost + '/upload')
+							: [],
+						companyLogoUrl: thisData.maxImgUrl
+							? splitUrl(thisData.maxImgUrl, ',', globalConfig.avatarHost + '/upload')
+							: []
+					});
+				}.bind(this)
+			}).always(
+				function() {
+					this.setState({
+						loading: false
+					});
+				}.bind(this)
+			);
+		},
+		cancelFun() {
+			this.props.closeDesc();
+		},
+		//刷新发布
+		updateFun(inex) {
+			this.setState({
+				loading: true
+			});
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/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: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/offShelf',
+				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)
+			);
+		},
+		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.props.form.resetFields();
+			}
+		},
+		render() {
+			const theData = this.state.data || {};
+            const FormItem = Form.Item;
+            
+			return (
+				<div className="patent-desc">
+					<Form
+						layout="horizontal"
+						onSubmit={(e) => {
+							this.handleSubmit(e, 0);
+						}}
+						id="demand-form"
+					>
+						<Spin spinning={this.state.loading}>
+							<div className="clearfix">
+								<FormItem
+									className="half-item"
+									labelCol={{ span:8 }}
+									wrapperCol={{ span: 12 }}
+									label="项目名称"
+								>
+									<span>{theData.name}</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 12 }}
+									label="业务品类"
+								>
+									<span>{this.state.name}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem
+									className="half-item"
+									labelCol={{ span:8 }}
+									wrapperCol={{ span: 12 }}
+									label="省份"
+								>
+									<span>{theData.province!='0'?getprovince(theData.province):'全国'}</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 12 }}
+									label="热点"
+								>
+									<span>{theData.isHot ? '是' : '否'}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem
+									className="half-item"
+									labelCol={{ span:8 }}
+									wrapperCol={{ span: 12 }}
+									label="市场价"
+								>
+									<span>{theData.price}万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span:8 }}
+									wrapperCol={{ span: 12 }}
+									label="活动价"
+								>
+									<span>{theData.activityPrice}万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span:8 }}
+									wrapperCol={{ span: 12 }}
+									label="最低折扣"
+								>
+									<span>{theData.offset} 万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span:8 }}
+									wrapperCol={{ span: 12 }}
+									label="会员价"
+								>
+									<span>{theData.memberPrice} 万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 12 }}
+									label="活动生效"
+								>
+									<span>{theData.activityFlag ? '有效' : '无效'}</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8}}
+									wrapperCol={{ span: 12 }}
+									label="创建时间"
+								>
+									<span>{this.state.createTime}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目服务内容">
+									<span>{theData.introduce}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目价值及作用">
+									<span>{theData.value}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目客户基本条件">
+									<span>{theData.applyConditions}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix pictures">
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 10 }}
+									label="业务项目图标(小)"
+								>
+									<Upload
+										className="demandDetailShow-upload"
+										listType="picture-card"
+										fileList={this.state.orgCodeUrl}
+										onPreview={(file) => {
+											this.setState({
+												previewImage: file.url || file.thumbUrl,
+												previewVisible: true
+											});
+										}}
+									/>
+									<Modal
+										maskClosable={false}
+										footer={null}
+										visible={this.state.previewVisible}
+										onCancel={() => {
+											this.setState({ previewVisible: false });
+										}}
+									>
+										<img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} />
+									</Modal>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 12 }}
+									label="业务项目图标(大)"
+								>
+									<Upload
+										className="demandDetailShow-upload"
+										listType="picture-card"
+										fileList={this.state.companyLogoUrl}
+										onPreview={(file) => {
+											this.setState({
+												previewImage: file.url || file.thumbUrl,
+												previewVisible: true
+											});
+										}}
+									/>
+									<Modal
+										maskClosable={false}
+										footer={null}
+										visible={this.state.previewVisible}
+										onCancel={() => {
+											this.setState({ previewVisible: false });
+										}}
+									>
+										<img alt="" style={{ width: '100%' }} src={this.state.previewImage || ''} />
+									</Modal>
+								</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;

+ 640 - 0
js/component/account/business/businessForm.jsx

@@ -0,0 +1,640 @@
+import React from 'react';
+import $ from 'jquery/src/ajax';
+import {
+	Icon,
+	Tooltip,
+	Modal,
+	message,
+	Spin,
+	Upload,
+	Input,
+	Select,
+	Button,
+	Radio,
+	Form,
+	Cascader,
+	Tag,
+	InputNumber
+} from 'antd';
+import { citySelect } from '@/NewDicProvinceListAll';
+import { splitUrl ,getReleaseStateList} from '@/tools.js';
+
+//图片组件
+const PicturesWall = React.createClass({
+	getInitialState() {
+		return {
+			previewVisible: false,
+			previewImage: '',
+			fileList: []
+		};
+	},
+	handleCancel() {
+		this.setState({ previewVisible: false });
+	},
+	handlePreview(file) {
+		this.setState({
+			previewImage: file.url || file.thumbUrl,
+			previewVisible: true
+		});
+	},
+	handleChange(info) {
+		let fileList = info.fileList;
+		this.setState({ fileList });
+		this.props.fileList(fileList);
+	},
+	componentWillReceiveProps(nextProps) {
+		this.state.fileList = nextProps.pictureUrl;
+	},
+	render() {
+		const { previewVisible, previewImage, fileList } = this.state;
+		const uploadButton = (
+			<div>
+				<Icon type="plus" />
+				<div className="ant-upload-text">点击上传</div>
+			</div>
+		);
+		return (
+			<div style={{ display: 'inline-block' }}>
+				<Upload
+					action={globalConfig.context + '/api/user/jtBusiness/project/uploadPicture'}
+					data={{ sign: 'jt_project_picture' }}
+					listType="picture-card"
+					fileList={fileList}
+					onPreview={this.handlePreview}
+					onChange={this.handleChange}
+				>
+					{fileList.length >= 1 ? null : uploadButton}
+				</Upload>
+				<Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
+					<img alt="example" style={{ width: '100%' }} src={previewImage} />
+				</Modal>
+			</div>
+		);
+	}
+});
+
+const DemandDetailForm = Form.create()(
+	React.createClass({
+		getInitialState() {
+			return {
+				visible: false,
+				loading: false,
+				auditStatus: 0,
+				textFileList: [],
+				videoFileList: [],
+				pictureUrl: [],
+				orgCodeUrl: [],
+				companyLogoUrl: [],
+				tags: []
+			};
+		},
+		loadData(id) {
+			this.setState({
+				loading: true
+			});
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/detail',
+				data: {
+					id: id
+				},
+				success: function(data) {
+					if (!data.data) {
+						if (data.error && data.error.length) {
+							message.warning(data.error[0].message);
+						}
+					} else {
+						let thisdata = data.data;
+						let ProvinceCityArr = [];
+						ProvinceCityArr.push(thisdata.province, thisdata.city);
+						this.setState({
+							id: thisdata.id, //业务名称
+							name: thisdata.name, //业务名称
+							categoryId: thisdata.categoryId, //业务品类
+							number: thisdata.number,
+							price: thisdata.price, //市场价
+							activityPrice: thisdata.activityPrice ? thisdata.activityPrice : '', //最低折扣
+							memberPrice: thisdata.memberPrice ? thisdata.memberPrice : '', //会员价
+							offset: thisdata.offset ? thisdata.offset : '',
+							activityFlag: thisdata.activityFlag ? thisdata.activityFlag.toString() : '', //活动生效标识
+							ProvinceCity: ProvinceCityArr,
+							introduce: thisdata.introduce,
+							createTime: thisdata.createTime ? new Date(thisdata.createTime).toLocaleString() : '',
+							value: thisdata.value,
+							applyConditions: thisdata.applyConditions,
+							orgCodeUrl: thisdata.minImgUrl
+								? splitUrl(thisdata.minImgUrl, ',', globalConfig.avatarHost + '/upload')
+								: [],
+							companyLogoUrl: thisdata.maxImgUrl
+								? splitUrl(thisdata.maxImgUrl, ',', globalConfig.avatarHost + '/upload')
+								: []
+						});
+					}
+				}.bind(this)
+			}).always(
+				function() {
+					this.setState({
+						loading: false
+					});
+				}.bind(this)
+			);
+		},
+		//左侧图片地址
+		getOrgCodeUrl(e) {
+			this.setState({ orgCodeUrl: e });
+		},
+		//右侧图片地址
+		getCompanyLogoUrl(e) {
+			this.setState({ companyLogoUrl: e });
+		},
+		//编辑部门,保存
+		handleSubmit(e,index) {
+			e.preventDefault();
+			if (!this.state.name) {
+				message.warning('请输入项目名称');
+				return;
+			}
+			if ((this.state.name).length>16) {
+				message.warning('项目名称在16个字以内');
+				return false;
+			};
+			if (!this.state.categoryId) {
+				message.warning('请选择项目业务品类');
+				return;
+			}
+			if (!this.state.ProvinceCity.length) {
+				message.warning('请选择省份');
+				return;
+			}
+			if (!this.state.price) {
+				message.warning('请输入正确的市场价');
+				return;
+			}
+			this.setState({
+				loading: true
+			});
+			let minPictureUrl = [];
+			if (this.state.orgCodeUrl.length) {
+				let picArr = [];
+				this.state.orgCodeUrl.map(function(item) {
+					if (item.response && item.response.data && item.response.data.length) {
+						picArr.push(item.response.data);
+					}
+				});
+				minPictureUrl = picArr.join(',');
+			}
+			let maxPictureUrl = [];
+			if (this.state.companyLogoUrl.length) {
+				let picArr = [];
+				this.state.companyLogoUrl.map(function(item) {
+					if (item.response && item.response.data && item.response.data.length) {
+						picArr.push(item.response.data);
+					}
+				});
+				maxPictureUrl = picArr.join(',');
+			}
+			$.ajax({
+				method: 'post',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/update',
+				data: {
+					auditStatus:index,
+					id: this.state.id, //业务名称
+					name: this.state.name, //业务名称
+					categoryId: this.state.categoryId, //业务品类
+					price: this.state.price, //市场价
+					activityPrice: this.state.activityPrice ? this.state.activityPrice : '0', //最低折扣
+					memberPrice: this.state.memberPrice ? this.state.memberPrice : '0', //会员价
+					offset: this.state.offset ? this.state.offset : '0',
+					activityFlag: this.state.activityFlag, //活动生效标识
+					province: this.state.ProvinceCity ? this.state.ProvinceCity[0] : '', //是否全国
+					city: this.state.ProvinceCity ? this.state.ProvinceCity[1] : '',
+					introduce: this.state.introduce,
+					value: this.state.value,
+					isHot: this.state.isHot,
+					minImgUrl: minPictureUrl.length ? minPictureUrl : '',
+					maxImgUrl: maxPictureUrl.length ? maxPictureUrl : '',
+					applyConditions: this.state.applyConditions
+				}
+			}).done(
+				function(data) {
+					if (!data.error.length) {
+						message.success('保存成功!');
+						this.setState({
+							loading: false,
+							editvisible: false
+						});
+					} else {
+						message.warning(data.error[0].message);
+					}
+					this.props.handOk();
+				}.bind(this)
+			);
+		},
+		loadData(ids) {
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/detail',
+				data: {
+					id: ids
+				},
+				success: function(data) {
+					if (!data.data) {
+						if (data.error && data.error.length) {
+							message.warning(data.error[0].message);
+						}
+					} else {
+						let thisdata = data.data;
+						let ProvinceCityArr = [];
+						ProvinceCityArr.push(thisdata.province, thisdata.city);
+						this.setState({
+							id: thisdata.id, //业务名称
+							name: thisdata.name, //业务名称
+							categoryId: thisdata.categoryId, //业务品类
+							number: thisdata.number,
+							auditInfo:thisdata.auditInfo,
+							price: thisdata.price, //市场价
+							activityPrice: thisdata.activityPrice ? thisdata.activityPrice : '', //最低折扣
+							memberPrice: thisdata.memberPrice ? thisdata.memberPrice : '', //会员价
+							offset: thisdata.offset ? thisdata.offset : '',
+							activityFlag: thisdata.activityFlag ? thisdata.activityFlag.toString() : '', //活动生效标识
+							ProvinceCity: ProvinceCityArr,
+							introduce: thisdata.introduce,
+							createTime: thisdata.createTime ? new Date(thisdata.createTime).toLocaleString() : '',
+							value: thisdata.value,
+							isHot:thisdata.isHot,
+							auditStatus:thisdata.auditStatus,
+							applyConditions: thisdata.applyConditions,
+							orgCodeUrl: thisdata.minImgUrl
+								? splitUrl(thisdata.minImgUrl, ',', globalConfig.avatarHost + '/upload')
+								: [],
+							companyLogoUrl: thisdata.maxImgUrl
+								? splitUrl(thisdata.maxImgUrl, ',', globalConfig.avatarHost + '/upload')
+								: []
+						});
+					}
+				}.bind(this)
+			}).always(
+				function() {
+					this.setState({
+						loading: false
+					});
+				}.bind(this)
+			);
+		},
+		submission(e, index) {
+			this.handleSubmit(e, index);
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				async: true,
+				url: globalConfig.context + '/api/user/jtBusiness/project/publish',
+				data: {
+					id: this.state.id,
+					auditStatus:1
+				}
+			}).done(
+				function(data) {
+					if (!data.error.length) {
+						this.setState({
+							loading: false
+						});
+					} else {
+						message.warning(data.error[0].message);
+					}
+				}.bind(this)
+			);
+		},
+		cancelFun() {
+			this.props.closeDesc();
+		},
+		componentWillMount() {
+			if (this.props.data.id) {
+				this.loadData(this.props.data.id);
+			}
+		},
+		componentWillReceiveProps(nextProps) {
+			if (!this.props.visible && nextProps.visible) {
+				this.state.textFileList = [];
+				this.state.videoFileList = [];
+				if (nextProps.data.id) {
+					this.loadData(nextProps.data.id);
+				}
+			}
+		},
+		render() {
+			const FormItem = Form.Item;
+			let firstData = this.props.firstData || [];
+			return (
+				<div className="patent-desc">
+					<Form layout="horizontal" onSubmit={(e)=>{this.handleSubmit(e,0)}} id="demand-form">
+						<Spin spinning={this.state.loading}>
+							<div className="clearfix" style={{ paddingLeft: '86px' }}>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label={
+										<span>
+											<strong style={{ color: 'red' }}>*</strong>项目名称
+										</span>
+									}
+								>
+									<Input
+										placeholder="项目名称"
+										value={this.state.name}
+										onChange={(e) => {
+											this.setState({ name: e.target.value });
+										}}
+									/>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label={
+										<span>
+											<strong style={{ color: 'red' }}>*</strong>业务品类
+										</span>
+									}
+								>
+									<Select
+										placeholder="请选择业务品类"
+										value={this.state.categoryId}
+										onChange={(e) => {
+											this.setState({ categoryId: e });
+										}}
+										notFoundContent="未获取到业务品类列表"
+									>
+										{firstData.map(function(item) {
+											return <Select.Option key={item.id}>{item.name}</Select.Option>;
+										})}
+									</Select>
+								</FormItem>
+							</div>
+							<div className="clearfix" style={{ paddingLeft: '86px' }}>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label={
+										<span>
+											<strong style={{ color: 'red' }}>*</strong>省-市
+										</span>
+									}
+								>
+									<Cascader
+										options={citySelect()}
+										value={this.state.ProvinceCity}
+										placeholder="选择市"
+										onChange={(e, pre) => {
+											this.setState({ ProvinceCity: e });
+										}}
+									/>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label={
+										<span>
+											<strong style={{ color: 'red' }}>*</strong>热门
+										</span>
+									}
+								>
+									<Radio.Group
+										onChange={(e) => {
+											this.setState({ isHot: e.target.value });
+										}}
+										value={this.state.isHot}
+									>
+										<Radio value={0}>否</Radio>
+										<Radio value={1}>是</Radio>
+									</Radio.Group>
+								</FormItem>
+							</div>
+							<div className="clearfix" style={{ paddingLeft: '86px' }}>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label={
+										<span>
+											<strong style={{ color: 'red' }}>*</strong>市场价
+										</span>
+									}
+								>
+									<InputNumber
+										placeholder="市场价"
+										value={this.state.price}
+										style={{ width: 120 }}
+										onChange={(e) => {
+											this.setState({ price: e });
+										}}
+										required="required"
+									/>
+									<span style={{ marginLeft: 10 }}>万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="活动价"
+								>
+									<InputNumber
+										placeholder="活动价"
+										value={this.state.activityPrice}
+										style={{ width: 120 }}
+										onChange={(e) => {
+											this.setState({ activityPrice: e });
+										}}
+										min={0}
+										max={999999}
+										step={0.01}
+									/>
+									<span style={{ marginLeft: 10 }}>万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="最低折扣"
+								>
+									<InputNumber
+										placeholder="最低折扣(如:0.5)"
+										value={this.state.offset}
+										style={{ width: '50%' }}
+										onChange={(e) => {
+											this.setState({ offset: e });
+										}}
+										min={0}
+										max={1}
+										step={0.01}
+									/>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="会员价"
+								>
+									<InputNumber
+										placeholder="会员价"
+										value={this.state.memberPrice}
+										style={{ width: '120px' }}
+										onChange={(e) => {
+											this.setState({ memberPrice: e });
+										}}
+										min={0}
+										max={999999}
+										step={0.01}
+									/>
+									<span style={{ marginLeft: 10 }}>万元</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="活动生效"
+								>
+									<Select
+										placeholder="活动生效"
+										value={this.state.activityFlag}
+										style={{ width: '94%' }}
+										onChange={(e) => {
+											this.setState({ activityFlag: e });
+										}}
+									>
+										<Select.Option key="0">无效</Select.Option>
+										<Select.Option key="1">有效</Select.Option>
+									</Select>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="创建时间"
+								>
+									<span style={{ width: '94%' }}>{this.state.createTime}</span>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="发布状态">
+										<span>{getReleaseStateList(this.state.auditStatus)}</span>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								{this.state.auditInfo?<FormItem
+									labelCol={{ span: 4 }}
+									wrapperCol={{ span: 12 }}
+									label="拒绝原因">
+										<span>{this.state.auditInfo}</span>
+								</FormItem>:''}
+							</div>
+							<div className="clearfix">
+								<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目服务内容">
+									<Input
+										type="textarea"
+										rows={4}
+										placeholder="业务项目服务内容"
+										value={this.state.introduce}
+										onChange={(e) => {
+											this.setState({ introduce: e.target.value });
+										}}
+									/>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目价值及作用">
+									<Input
+										type="textarea"
+										rows={4}
+										placeholder="业务项目价值及作用"
+										value={this.state.value}
+										onChange={(e) => {
+											this.setState({ value: e.target.value });
+										}}
+									/>
+								</FormItem>
+							</div>
+							<div className="clearfix">
+								<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目客户基本条件">
+									<Input
+										type="textarea"
+										rows={4}
+										placeholder="业务项目客户基本条件"
+										value={this.state.applyConditions}
+										onChange={(e) => {
+											this.setState({ applyConditions: e.target.value });
+										}}
+									/>
+								</FormItem>
+							</div>
+							<div className="clearfix pictures">
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 10 }}
+									label="业务项目图标(小)"
+								>
+									<PicturesWall
+										pictureSign="business_project_min_picture"
+										fileList={this.getOrgCodeUrl}
+										pictureUrl={this.state.orgCodeUrl}
+									/>
+									<p>图片建议:图片要清晰。(35*35)</p>
+								</FormItem>
+								<FormItem
+									className="half-item"
+									labelCol={{ span: 8 }}
+									wrapperCol={{ span: 12 }}
+									label="业务项目图标(大)"
+								>
+									<PicturesWall
+										pictureSign="business_project_max_picture"
+										fileList={this.getCompanyLogoUrl}
+										pictureUrl={this.state.companyLogoUrl}
+									/>
+									<p>图片建议:图片要清晰。(200*200)</p>
+								</FormItem>
+							</div>
+							<Button
+								className="set-submit"
+								type="primary"
+								htmlType="submit"
+								style={{ marginLeft: '160px', marginBottom: '20px', marginTop: '20px' }}
+							>
+								保存
+							</Button>
+							<Button
+								className="set-submit"
+								type="ghost"
+								onClick={(e) => {
+									this.submission(e,1)
+								}}
+							>
+								提交审核
+							</Button>
+							<Button
+								className="set-submit"
+								type="ghost"
+								onClick={this.cancelFun}
+							>
+								取消
+							</Button>
+						</Spin>
+					</Form>
+				</div>
+			);
+		}
+	})
+);
+export default DemandDetailForm;

File diff suppressed because it is too large
+ 722 - 780
js/component/account/business/businessProject.jsx


+ 1 - 1
js/component/account/setAccount/expert.jsx

@@ -480,7 +480,7 @@ const Expert = React.createClass({
 					</Spin>
 				</Form>
 				<Modal visible={this.state.visible} onOk={this.handleOk} onCancel={this.handleCancel}>
-					<p>是否申请个人用户认证?</p>
+					<p>是否申请专家认证?</p>
 				</Modal>
 			</div>
 		);

+ 751 - 0
js/component/administration/business/businessProject.jsx

@@ -0,0 +1,751 @@
+import React from 'react';
+import $ from 'jquery/src/ajax';
+import { citySelect } from '@/NewDicProvinceListAll';
+import {
+	Form,
+	Icon,
+	Button,
+	Input,
+	Select,
+	Spin,
+	Table,
+	message,
+	DatePicker,
+	Modal,
+	Upload,
+	Popconfirm,
+	Cascader,
+	InputNumber,
+	Radio
+} from 'antd';
+import { getGameState, splitUrl, getprovince } from '@/tools.js';
+
+//图片组件
+const PicturesWall = React.createClass({
+	getInitialState() {
+		return {
+			previewVisible: false,
+			previewImage: '',
+			fileList: []
+		};
+	},
+	handleCancel() {
+		this.setState({ previewVisible: false });
+	},
+	handlePreview(file) {
+		this.setState({
+			previewImage: file.url || file.thumbUrl,
+			previewVisible: true
+		});
+	},
+	handleChange(info) {
+		let fileList = info.fileList;
+		this.setState({ fileList });
+		this.props.fileList(fileList);
+	},
+	componentWillReceiveProps(nextProps) {
+		this.state.fileList = nextProps.pictureUrl;
+	},
+	render() {
+		const { previewVisible, previewImage, fileList } = this.state;
+		const uploadButton = (
+			<div>
+				<Icon type="plus" />
+				<div className="ant-upload-text">点击上传</div>
+			</div>
+		);
+		return (
+			<div style={{ display: 'inline-block' }}>
+				<Upload
+					action={globalConfig.context + '/api/admin/jtBusiness/project/uploadPicture'}
+					data={{ sign: 'jt_project_picture' }}
+					listType="picture-card"
+					fileList={fileList}
+					onPreview={this.handlePreview}
+					onChange={this.handleChange}
+				>
+					{fileList.length >= 1 ? null : uploadButton}
+				</Upload>
+				<Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>
+					<img alt="example" style={{ width: '100%' }} src={previewImage} />
+				</Modal>
+			</div>
+		);
+	}
+});
+//主体
+const BusinessProject = Form.create()(
+	React.createClass({
+		loadData(pageNo) {
+			this.state.data = [];
+			this.setState({
+				loading: true,
+				page: pageNo
+			});
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/portal/service/jtProject/list',
+				data: {
+					pageNo: pageNo || 1,
+					pageSize: this.state.pagination.pageSize,
+					secondId: this.state.cid,
+					name: this.state.nameSearch,
+					privateProject: 1,
+					auditStatus:1
+				},
+				success: function(data) {
+					let theArr = [];
+					if (!data.data || !data.data.list) {
+						if (data.error && data.error.length) {
+							message.warning(data.error[0].message);
+						}
+					} else {
+						for (let i = 0; i < data.data.list.length; i++) {
+							let thisdata = data.data.list[i],
+								ProvinceCityArr = [],
+								cname = '',
+								superName = '',
+								ProvinceS = thisdata.province, //getprovince
+								citys = thisdata.city,
+								Areas = thisdata.area;
+							ProvinceCityArr.push(ProvinceS, citys, Areas);
+							this.state.categoryList.map((item) => {
+								if (thisdata.categoryId == item.id) {
+									cname = item.name;
+									superName = item.superName;
+								}
+							});
+							theArr.push({
+								key: i,
+								id: thisdata.id, //业务名称
+								name: thisdata.name, //业务名称
+								categoryId: thisdata.categoryId, //业务品类
+								number: thisdata.number,
+								price: thisdata.price, //市场价
+								superName: superName,
+								cname: cname,
+								city: thisdata.city,
+								activityPrice: thisdata.activityPrice ? thisdata.activityPrice : '', //最低折扣
+								memberPrice: thisdata.memberPrice ? thisdata.memberPrice : '', //会员价
+								offset: thisdata.offset ? thisdata.offset : '',
+								activityPrice: thisdata.activityPrice ? thisdata.activityPrice : '', //活动价
+								activityFlag: thisdata.activityFlag, //活动生效标识
+								status: thisdata.status, //项目状态
+								province: thisdata.province,
+								introduce: thisdata.introduce,
+								createTime: thisdata.createTime ? new Date(thisdata.createTime).toLocaleString() : '',
+								value: thisdata.value,
+								applyConditions: thisdata.applyConditions
+							});
+						}
+						this.state.pagination.current = data.data.pageNo;
+						this.state.pagination.total = data.data.totalCount;
+					}
+					this.setState({
+						dataSource: theArr,
+						pagination: this.state.pagination
+					});
+				}.bind(this)
+			}).always(
+				function() {
+					this.setState({
+						loading: false
+					});
+				}.bind(this)
+			);
+		},
+		getInitialState() {
+			return {
+				searchMore: true,
+				selectedRowKeys: [],
+				selectedRows: [],
+				loading: false,
+				orgCodeUrl: [],
+				companyLogoUrl: [],
+				pagination: {
+					defaultCurrent: 1,
+					defaultPageSize: 10,
+					showQuickJumper: true,
+					pageSize: 10,
+					onChange: function(page) {
+						this.loadData(page);
+						this.setState({
+							selectedRowKeys: []
+						});
+					}.bind(this),
+					showTotal: function(total) {
+						return '共' + total + '条数据';
+					}
+				},
+				columns: [
+					{
+						title: '项目名称',
+						dataIndex: 'name',
+						key: 'bname'
+					},
+					{
+						title: '品类名称',
+						dataIndex: 'cname',
+						key: 'cname'
+					},
+					{
+						title: '上级品类',
+						dataIndex: 'superName',
+						key: 'superName'
+					},
+					{
+						title: '业务地区',
+						dataIndex: 'area',
+						key: 'area',
+						render: (text, rocard) => {
+							return (
+								<div>
+									{rocard.province != 0 ? (
+										<span>{getprovince(rocard.province) + '-' + getprovince(rocard.city)}</span>
+									) : (
+										'全国'
+									)}
+								</div>
+							);
+						}
+					},
+					{
+						title: '市场价',
+						dataIndex: 'price',
+						key: 'price'
+					},
+					{
+						title: '最低折扣',
+						dataIndex: 'offset',
+						key: 'offset'
+					},
+					{
+						title: '会员价',
+						dataIndex: 'memberPrice',
+						key: 'memberPrice'
+					},
+					{
+						title: '活动价',
+						dataIndex: 'activityPrice',
+						key: 'activityPrice'
+					},
+					{
+						title: '活动生效标识',
+						dataIndex: 'activityFlag',
+						key: 'activityFlag',
+						render: (text) => {
+							return getGameState(text);
+						}
+					},
+					{
+						title: '审核',
+						dataIndex: 'caozuo',
+						key: 'caozuo',
+						render: (text, recard) => {
+							return (
+								<div className="btnRight">
+									<Button
+										type="primary"
+										onClick={(e) => {
+											e.stopPropagation();
+											this.tableRowClick(recard);
+										}}
+									>
+										审核
+									</Button>
+								</div>
+							);
+						}
+					}
+				],
+				dataSource: []
+			};
+		},
+		//业务品类列表获取
+		topLevel() {
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/admin/jtBusiness/category/list',
+				data: {
+					pageNo: 1,
+					pageSize: 999
+				},
+				success: function(data) {
+					let theArr = [],
+						firstData = [];
+					if (!data.data || !data.data.list) {
+						if (data.error && data.error.length) {
+							message.warning(data.error[0].message);
+						}
+					} else {
+						for (let i = 0; i < data.data.list.length; i++) {
+							let thisdata = data.data.list[i];
+							theArr.push({
+								key: i,
+								id: thisdata.id,
+								name: thisdata.name,
+								superName: thisdata.superName //上级品类
+							});
+							if (thisdata.layer == '2') {
+								firstData.push({
+									key: i,
+									id: thisdata.id,
+									name: thisdata.name,
+									superName: thisdata.superName //上级品类
+								});
+							}
+						}
+					}
+					this.setState({
+						categoryList: theArr,
+						firstData: firstData
+					});
+					this.loadData();
+				}.bind(this)
+			}).always(
+				function() {
+					this.setState({
+						loading: false
+					});
+				}.bind(this)
+			);
+		},
+		componentWillMount() {
+			this.topLevel();
+		},
+		detailes(recard) {
+			this.setState({
+				loading:true
+			});
+			$.ajax({
+				method: 'get',
+				dataType: 'json',
+				crossDomain: false,
+				url: globalConfig.context + '/api/user/jtBusiness/project/detail',
+				data: {
+					id: recard.id
+				},
+				success: function(data) {
+					let thisData = data.data;
+					if (!thisData) {
+						if (data.error && data.error.length) {
+							message.warning(data.error[0].message);
+						}
+						thisData = {};
+					}
+					let name = '';
+					(this.state.firstData).map((item) => {
+						if (item.id == thisData.categoryId) {
+							name = item.name;
+						}
+					});
+					this.setState({
+						id: thisData.id,
+						data: thisData,
+						name: name,
+						createTime: thisData.createTime ? new Date(thisData.createTime).toLocaleString() : '',
+						auditStatus: thisData.auditStatus,
+						orgCodeUrl: thisData.minImgUrl
+							? splitUrl(thisData.minImgUrl, ',', globalConfig.avatarHost + '/upload')
+							: [],
+						companyLogoUrl: thisData.maxImgUrl
+							? splitUrl(thisData.maxImgUrl, ',', globalConfig.avatarHost + '/upload')
+							: []
+					});
+				}.bind(this)
+			}).always(
+				function() {
+					this.setState({
+						loading: false
+					});
+				}.bind(this)
+			);
+		},
+		//项目列表整行点击
+		tableRowClick(record, index) {
+			this.state.RowData = record;
+			this.setState({
+				editvisible: true
+			});
+			this.detailes(record);
+		},
+		edithandleCancel(e) {
+			this.setState({
+				editvisible: false
+			});
+		},
+		 //审核通过/拒绝
+		 updateFun(index){
+			this.setState({
+				loading:true
+			})
+			$.ajax({
+				method: "post",
+				dataType: "JSON",
+				crossDomain: false,
+				url: globalConfig.context +  '/api/admin/jtBusiness/project/audit',
+				data: {
+					id: this.state.id,
+					auditResult:index,
+					auditInfo:this.state.refuseValue
+				}
+			}).done(function (data) {
+				if (!data.error.length) {
+					message.success('操作成功!');
+					this.setState({
+						loading: false,
+						editvisible:false
+					});
+					if(this.state.pagination.total%10==1){
+						this.loadData((this.state.page)-1);
+					}else{
+						this.loadData(this.state.page);
+					}
+				} else {
+					message.warning(data.error[0].message);
+				};
+			}.bind(this));
+		},
+		//审核拒绝
+		refuse(){
+			this.setState({
+				refuseValue:'',
+				refuseVisible:true
+			})
+		},
+		refuseOk(){
+			if(!this.state.refuseValue){
+				message.warning('请填写拒绝原因。')
+				return;
+			}
+			this.setState({
+				refuseVisible:false
+			})
+			this.updateFun(1)
+		},
+		refuseCancel(){
+			this.setState({
+				refuseValue:'',
+				refuseVisible:false
+			})
+		},
+		search() {
+			this.loadData();
+		},
+		//搜索部分的清零
+		reset() {
+			this.state.nameSearch = ''; //项目名称清零
+			this.state.cid = undefined; //品类名称清零
+			this.state.ressSearch = undefined; //省市区清零
+			this.state.activityFlag = undefined; //活动生效清零
+			this.state.status = undefined; //项目状态清零
+			this.loadData();
+		},
+		//更多搜索的显示与否
+		searchSwitch() {
+			this.setState({
+				searchMore: !this.state.searchMore
+			});
+		},
+
+		render() {
+			const FormItem = Form.Item;
+			const rowSelection = {
+				selectedRowKeys: this.state.selectedRowKeys,
+				onChange: (selectedRowKeys, selectedRows) => {
+					this.setState({
+						selectedRows: selectedRows.slice(-1),
+						selectedRowKeys: selectedRowKeys.slice(-1)
+					});
+				}
+			};
+			const firstData = this.state.firstData || [];
+			const theData = this.state.data || {};
+			return (
+				<div className="user-content">
+					<div className="content-title">
+						<div className="user-search">
+							<Input
+								placeholder="业务项目名称"
+								style={{ width: '150px', marginRight: '10px', marginBottom: '10px' }}
+								value={this.state.nameSearch}
+								onChange={(e) => {
+									this.setState({ nameSearch: e.target.value });
+								}}
+							/>
+							<Select
+								placeholder="业务品类"
+								style={{ width: '200px', marginRight: '10px' }}
+								value={this.state.cid}
+								onChange={(e) => {
+									this.setState({ cid: e });
+								}}
+								notFoundContent="未获取到上级品类列表"
+							>
+								{firstData.map(function(item) {
+									return <Select.Option key={item.id}>{item.name}</Select.Option>;
+								})}
+							</Select>
+							<Button type="primary" onClick={this.search} style={{ marginRight: '10px' }}>
+								搜索
+							</Button>
+							<Button onClick={this.reset} style={{ marginRight: '10px' }}>
+								重置
+							</Button>
+						</div>
+						<div className="patent-table">
+							<Spin spinning={this.state.loading}>
+								<Table
+									columns={this.state.columns}
+									dataSource={this.state.dataSource}
+									rowSelection={rowSelection}
+									pagination={this.state.pagination}
+								/>
+							</Spin>
+						</div>
+						<div className="patent-desc">
+							<Modal
+								className="customeDetails"
+								title="业务项目"
+								width="1000px"
+								visible={this.state.editvisible}
+								onOk={this.edithandleCancel}
+								onCancel={this.edithandleCancel}
+								footer=""
+							>
+								<Form layout="horizontal" onSubmit={this.edithandleSubmit} id="demand-form">
+									<Spin spinning={this.state.loading}>
+										<div className="clearfix">
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="项目名称"
+											>
+												<span>{theData.name}</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="业务品类"
+											>
+												<span>{this.state.name}</span>
+											</FormItem>
+										</div>
+										<div className="clearfix">
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="省份"
+											>
+												<span>
+													{theData.province != '0' ? getprovince(theData.province) : '全国'}
+												</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="热点"
+											>
+												<span>{theData.isHot ? '是' : '否'}</span>
+											</FormItem>
+										</div>
+										<div className="clearfix">
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="市场价"
+											>
+												<span>{theData.price}万元</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="活动价"
+											>
+												<span>{theData.activityPrice}万元</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="最低折扣"
+											>
+												<span>{theData.offset} 万元</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="会员价"
+											>
+												<span>{theData.memberPrice} 万元</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="活动生效"
+											>
+												<span>{theData.activityFlag ? '有效' : '无效'}</span>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="创建时间"
+											>
+												<span>{this.state.createTime}</span>
+											</FormItem>
+										</div>
+										<div className="clearfix">
+											<FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 12 }} label="业务项目服务内容">
+												<span>{theData.introduce}</span>
+											</FormItem>
+										</div>
+										<div className="clearfix">
+											<FormItem
+												labelCol={{ span: 4 }}
+												wrapperCol={{ span: 12 }}
+												label="业务项目价值及作用"
+											>
+												<span>{theData.value}</span>
+											</FormItem>
+										</div>
+										<div className="clearfix">
+											<FormItem
+												labelCol={{ span: 4 }}
+												wrapperCol={{ span: 12 }}
+												label="业务项目客户基本条件"
+											>
+												<span>{theData.applyConditions}</span>
+											</FormItem>
+										</div>
+										<div className="clearfix pictures">
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 10 }}
+												label="业务项目图标(小)"
+											>
+												<Upload
+													className="demandDetailShow-upload"
+													listType="picture-card"
+													fileList={this.state.orgCodeUrl}
+													onPreview={(file) => {
+														this.setState({
+															previewImage: file.url || file.thumbUrl,
+															previewVisible: true
+														});
+													}}
+												/>
+												<Modal
+													maskClosable={false}
+													footer={null}
+													visible={this.state.previewVisible}
+													onCancel={() => {
+														this.setState({ previewVisible: false });
+													}}
+												>
+													<img
+														alt=""
+														style={{ width: '100%' }}
+														src={this.state.previewImage || ''}
+													/>
+												</Modal>
+											</FormItem>
+											<FormItem
+												className="half-item"
+												labelCol={{ span: 8 }}
+												wrapperCol={{ span: 12 }}
+												label="业务项目图标(大)"
+											>
+												<Upload
+													className="demandDetailShow-upload"
+													listType="picture-card"
+													fileList={this.state.companyLogoUrl}
+													onPreview={(file) => {
+														this.setState({
+															previewImage: file.url || file.thumbUrl,
+															previewVisible: true
+														});
+													}}
+												/>
+												<Modal
+													maskClosable={false}
+													footer={null}
+													visible={this.state.previewVisible}
+													onCancel={() => {
+														this.setState({ previewVisible: false });
+													}}
+												>
+													<img
+														alt=""
+														style={{ width: '100%' }}
+														src={this.state.previewImage || ''}
+													/>
+												</Modal>
+											</FormItem>
+											<div className="clearfix">
+													<FormItem wrapperCol={{ span: 12, offset: 3 }}>
+														<Button
+															className="set-submit"
+															type="primary"
+															onClick={(e) => {
+																this.updateFun(0);
+															}}
+														>
+															审核通过
+														</Button>
+														<Button
+															type="danger"
+															style={{ marginRight: 20 }}
+															onClick={(e) => {
+																this.refuse();
+															}}
+														>
+															审核拒绝
+														</Button>
+														<Button
+															className="set-submit"
+															type="ghost"
+															onClick={this.cancelFun}
+														>
+															取消
+														</Button>
+													</FormItem>
+											</div>
+										</div>
+									</Spin>
+								</Form>
+							</Modal>
+						</div>
+					</div>
+					<Modal
+						title="审核拒绝"
+						visible={this.state.refuseVisible}
+						onOk={this.refuseOk}
+						onCancel={this.refuseCancel}
+						>   
+							<div>
+								<FormItem labelCol={{ span: 3 }} wrapperCol={{ span: 18 }} label="拒绝原因">
+									<Input type="textarea" rows={4} value={this.state.refuseValue} placeholder="输入拒绝原因" onChange={(e)=>{this.setState({refuseValue:e.target.value})}}/>
+								</FormItem>
+							</div>
+						</Modal> 
+				</div>
+			);
+		}
+	})
+);
+
+export default BusinessProject;