dengzhiguo 7 years ago
parent
commit
f5a41d16fc
41 changed files with 33027 additions and 512 deletions
  1. 0 3
      js/component/manageCenter/achievement/myTechAchievement.jsx
  2. 0 3
      js/component/manageCenter/achievement/techAchievement.jsx
  3. 1 1
      js/component/manageCenter/achievement/techAchievementAudit/auditDesc.jsx
  4. 2 2
      js/component/manageCenter/achievement/techAchievementAudit/techAchievementAudit.jsx
  5. 1 26
      js/component/manageCenter/achievement/techAchievementDesc.jsx
  6. 0 3
      js/component/manageCenter/achievement/techAchievementQuery.jsx
  7. 2 26
      js/component/manageCenter/achievement/techAchievementQueryDesc.jsx
  8. 1 8
      js/component/manageCenter/achievement/techAchievementRelease/techAchievementAudit.jsx
  9. 48 0
      js/component/manageCenter/customer/content.jsx
  10. 9 83
      js/component/manageCenter/customer/customerData/companyCustomer.jsx
  11. 3252 0
      js/component/manageCenter/customer/customerManagement/expertManage.jsx
  12. 1 12
      js/component/manageCenter/customer/customerManagement/organizationManages.jsx
  13. 15 40
      js/component/manageCenter/customer/customerManagement/personalManages.jsx
  14. 3322 97
      js/component/manageCenter/customer/customerManagement/publicManages.jsx
  15. 3238 0
      js/component/manageCenter/customer/individualCustomer/expertQuery.jsx
  16. 0 11
      js/component/manageCenter/customer/individualCustomer/individualCustomer.jsx
  17. 6395 0
      js/component/manageCenter/customer/individualCustomer/publicQuery.jsx
  18. 13 112
      js/component/manageCenter/customer/individualCustomer/queryCustomer.jsx
  19. 3313 0
      js/component/manageCenter/customer/release/expertRelease.jsx
  20. 141 0
      js/component/manageCenter/customer/release/myClient.less
  21. 207 0
      js/component/manageCenter/customer/release/myClientDesc.jsx
  22. 3278 0
      js/component/manageCenter/customer/reviewed/expertReview.jsx
  23. 6511 0
      js/component/manageCenter/customer/reviewed/identityAudits.jsx
  24. 141 0
      js/component/manageCenter/customer/reviewed/myClient.less
  25. 207 0
      js/component/manageCenter/customer/reviewed/myClientDesc.jsx
  26. 1 1
      js/component/manageCenter/demand/content.jsx
  27. 1 1
      js/component/manageCenter/demand/demandAudit/demandAuditDesc.jsx
  28. 2 2
      js/component/manageCenter/demand/demandAudit/techDemandAudit.jsx
  29. 1 9
      js/component/manageCenter/demand/demandRelease/techDemandRelease.jsx
  30. 1 4
      js/component/manageCenter/demand/myTechDemand.jsx
  31. 1 4
      js/component/manageCenter/demand/techDemand.jsx
  32. 1 24
      js/component/manageCenter/demand/techDemandDesc.jsx
  33. 0 3
      js/component/manageCenter/demand/techDemandQuery.jsx
  34. 1 24
      js/component/manageCenter/demand/techDemandQueryDesc.jsx
  35. 11 11
      js/component/manageCenter/idea/content.jsx
  36. 5 1
      js/component/manageCenter/idea/policy/inquiry.jsx
  37. 56 1
      js/component/manageCenter/idea/policy/manage.jsx
  38. 630 0
      js/component/manageCenter/idea/policy/techPolicyAudits.jsx
  39. 635 0
      js/component/manageCenter/idea/policy/techPolicyPublishs.jsx
  40. 1575 0
      js/component/manageCenter/set/business/businessQuery.jsx
  41. 8 0
      js/component/manageCenter/set/content.jsx

+ 0 - 3
js/component/manageCenter/achievement/myTechAchievement.jsx

@@ -340,9 +340,6 @@ const AchievementList = React.createClass({
                     <Input placeholder="关键字"
                         value={this.state.keyword}
                         onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
-                    <Input placeholder="所有人名称"
-                        value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
                     <Radio.Group value={this.state.searchType} onChange={(e) => {
                         this.setState({ searchType: e.target.value })
                     }}>

+ 0 - 3
js/component/manageCenter/achievement/techAchievement.jsx

@@ -340,9 +340,6 @@ const AchievementList = React.createClass({
                     <Input placeholder="关键字"
                         value={this.state.keyword}
                         onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
-                    <Input placeholder="所有人名称"
-                        value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
                     <Radio.Group value={this.state.searchType} onChange={(e) => {
                         this.setState({ searchType: e.target.value })
                     }}>

+ 1 - 1
js/component/manageCenter/achievement/techAchievementAudit/auditDesc.jsx

@@ -755,7 +755,7 @@ const AchievementDetailShow = Form.create()(React.createClass({
                         </FormItem>
                     </div> : <div></div>}
                     <FormItem wrapperCol={{ span: 12, offset: 4 }}>
-                        <Button className="set-submit" type="primary" htmlType="submit">提交审核</Button>
+                        <Button className="set-submit" type="primary" htmlType="submit">确认</Button>
                         <Button className="set-submit" type="ghost" onClick={this.props.closeDesc}>取消</Button>
                         {window.showAuditStatus ? <Button className="set-submit" loading={this.state.buttonLoading} type="primary" onClick={this.buildMatchList} style={{"display":"none"}}>生成匹配列表</Button> : <span></span>}
                     </FormItem>

+ 2 - 2
js/component/manageCenter/achievement/techAchievementAudit/techAchievementAudit.jsx

@@ -381,8 +381,8 @@ const AchievementList = React.createClass({
                     </Radio.Group>
                     <Button type="primary" onClick={this.search}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button>
-                    <Button type='primary' onClick={this.examineOK} disabled={!hasSelected}>审核通过</Button>
-                    <Button type='primary' onClick={this.examineCancel} disabled={!hasSelected}>审核不通过</Button>
+                    <Button type='primary' onClick={this.examineOK} disabled={!hasSelected} style={{"display":"none"}}>审核通过</Button>
+                    <Button type='primary' onClick={this.examineCancel} disabled={!hasSelected} style={{"display":"none"}}>审核不通过</Button>
                     <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
                         disabled={!hasSelected}
                         onClick={this.delectRow}>删除<Icon type="minus" /></Button>

+ 1 - 26
js/component/manageCenter/achievement/techAchievementDesc.jsx

@@ -353,7 +353,6 @@ const AchievementDetailShow = Form.create()(React.createClass({
     },
     render() {
     	const theData = this.state.data || {};
-    	console.log(theData);
     	const { getFieldDecorator } = this.props.form;
         const FormItem = Form.Item
         const formItemLayout = {
@@ -441,30 +440,7 @@ const AchievementDetailShow = Form.create()(React.createClass({
                         </div>
                     </FormItem>:<div></div>}
                     <div className="clearfix">
-                        <FormItem className="half-item"
-                            {...formItemLayout}
-                            label="是否发布" >
-                            {(() => {
-                                switch (theData.releaseStatus) {
-                                    case "0":
-                                        return <span>未发布</span>;
-                                    case "1":
-                                        return <div>
-                                            <span>已发布</span>
-                                            <Button style={{ marginLeft: '10px' }} onClick={() => { this.setState({ releaseSubmitVisible: true }); }}>撤消发布</Button>
-                                            <Modal maskClosable={false} title="确认"
-                                                visible={this.state.releaseSubmitVisible}
-                                                width='300px'
-                                                footer={null}
-                                                onCancel={() => { this.setState({ releaseSubmitVisible: false }) }} >
-                                                <span>确认要撤销发布吗?</span>
-                                                <Button className="modal-submit" type="primary" onClick={this.offShelf} >确认</Button>
-                                                <Button className="modal-submit" type="ghost" onClick={() => { this.setState({ releaseSubmitVisible: false }) }}>取消</Button>
-                                            </Modal>
-                                        </div>;
-                                }
-                            })()}
-                        </FormItem>
+                        
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="发布时间" >
@@ -1101,7 +1077,6 @@ const AchievementDetailForm = Form.create()(React.createClass({
     },
     render() {
         const theData = this.state.data || {};
-        console.log(theData);
         const { getFieldDecorator } = this.props.form;
         const FormItem = Form.Item
         const formItemLayout = {

+ 0 - 3
js/component/manageCenter/achievement/techAchievementQuery.jsx

@@ -340,9 +340,6 @@ const AchievementList = React.createClass({
                     <Input placeholder="关键字"
                         value={this.state.keyword}
                         onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
-                    <Input placeholder="所有人名称"
-                        value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
                     <Radio.Group value={this.state.searchType} onChange={(e) => {
                         this.setState({ searchType: e.target.value })
                     }}>

+ 2 - 26
js/component/manageCenter/achievement/techAchievementQueryDesc.jsx

@@ -441,30 +441,7 @@ const AchievementDetailShow = Form.create()(React.createClass({
                         </div>
                     </FormItem>:<div></div>}
                     <div className="clearfix">
-                        <FormItem className="half-item"
-                            {...formItemLayout}
-                            label="是否发布" >
-                            {(() => {
-                                switch (theData.releaseStatus) {
-                                    case "0":
-                                        return <span>未发布</span>;
-                                    case "1":
-                                        return <div>
-                                            <span>已发布</span>
-                                            <Button style={{ marginLeft: '10px' }} onClick={() => { this.setState({ releaseSubmitVisible: true }); }}>撤消发布</Button>
-                                            <Modal maskClosable={false} title="确认"
-                                                visible={this.state.releaseSubmitVisible}
-                                                width='300px'
-                                                footer={null}
-                                                onCancel={() => { this.setState({ releaseSubmitVisible: false }) }} >
-                                                <span>确认要撤销发布吗?</span>
-                                                <Button className="modal-submit" type="primary" onClick={this.offShelf} >确认</Button>
-                                                <Button className="modal-submit" type="ghost" onClick={() => { this.setState({ releaseSubmitVisible: false }) }}>取消</Button>
-                                            </Modal>
-                                        </div>;
-                                }
-                            })()}
-                        </FormItem>
+                        
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="发布时间" >
@@ -1103,8 +1080,7 @@ const AchievementDetailForm = Form.create()(React.createClass({
             labelCol: { span: 8 },
             wrapperCol: { span: 14 },
         };
-        console.log(this.state.orgDisplay)
-        return (
+		return (
             <Form horizontal onSubmit={this.handleSubmit} id="demand-form">
                 <Spin spinning={this.state.loading}>
                     <div className="clearfix">

+ 1 - 8
js/component/manageCenter/achievement/techAchievementRelease/techAchievementAudit.jsx

@@ -170,8 +170,7 @@ const AchievementList = React.createClass({
                     dataIndex: 'ee',
                     key: 'ee',
                     render: (text, record, index) => {
-                    	console.log(record);
-						return <div>
+                    	return <div>
 							{(!record.releaseStatus)?<Popconfirm title={'请确认发布成果【'+record.name+'】'} onConfirm={(e)=>{this.examineOK(record)}} okText="确认" cancelText="取消">
 							    <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="primary">发布</Button>                 
 							</Popconfirm>:
@@ -408,12 +407,6 @@ const AchievementList = React.createClass({
                             onChange={(e) => { this.setState({ category: e }) }}>
                             {this.state.achievementCategoryOption}
                         </Select>
-                        <Select placeholder="选择审核状态"
-                            style={{ width: 160 }}
-                            value={this.state.auditStatus}
-                            onChange={(e) => { this.setState({ auditStatus: e }) }}>
-                            {this.state.auditStatusOption}
-                        </Select>
                         <Select placeholder="选择是否发布" style={{ width: 120 }}
                             value={this.state.releaseStatus}
                             onChange={(e) => { this.setState({ releaseStatus: e }) }}>

+ 48 - 0
js/component/manageCenter/customer/content.jsx

@@ -63,6 +63,22 @@ class Content extends Component {
 	                });
           	    });
           	    break;
+			case 'expertQuery':
+                require.ensure([], () => {
+	                const ExpertQuery = require('./individualCustomer/expertQuery').default;
+	                this.setState({
+	                    component:<ExpertQuery />,	                    	                  
+	                });
+          	    });
+          	    break;
+          	case 'publicQuery':
+                require.ensure([], () => {
+	                const Qublicquery = require('./individualCustomer/publicquery').default;
+	                this.setState({
+	                    component:<Qublicquery />,	                    	                  
+	                });
+          	    });
+          	    break;
           	case 'personalManage':
                 require.ensure([], () => {
 	                const PersonalManage = require('./customerManagement/personalManages').default;
@@ -71,6 +87,38 @@ class Content extends Component {
 	                });
           	    });
           	    break;
+          	case 'expertManage':
+                require.ensure([], () => {
+	                const ExpertManage = require('./customerManagement/expertManage').default;
+	                this.setState({
+	                    component:<ExpertManage />,	                    	                  
+	                });
+          	    });
+          	    break;
+          	case 'expertAudit':
+                require.ensure([], () => {
+	                const ExpertReview = require('./reviewed/expertReview').default;
+	                this.setState({
+	                    component:<ExpertReview />,	                    	                  
+	                });
+          	    });
+          	    break;
+          	case 'identityAudit':
+                require.ensure([], () => {
+	                const IdentityAudits = require('./reviewed/identityAudits').default;
+	                this.setState({
+	                    component:<IdentityAudits />,	                    	                  
+	                });
+          	    });
+          	    break;
+          	case 'expertPublish':
+                require.ensure([], () => {
+	                const ExpertRelease = require('./release/expertRelease').default;
+	                this.setState({
+	                    component:<ExpertRelease />,	                    	                  
+	                });
+          	    });
+          	    break;
           	case 'publicManage':
                 require.ensure([], () => {
 	                const PublicManages = require('./customerManagement/publicManages').default;

+ 9 - 83
js/component/manageCenter/customer/customerData/companyCustomer.jsx

@@ -288,17 +288,6 @@ const PublicCustomer = Form.create()(React.createClass({
 	                             onChange={(e) => { record.remarks = e.target.value; this.setState({ data: this.state.data }); }}
 	                             style={{width:'120px'}}/> : <span>{text}</span>
 					}
-				}, {
-					title: '操作',
-					dataIndex: 'rrr',
-					key: 'rrr',
-					render: (text, record, index) => {
-						return <div style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>
-                            <Popconfirm title="是否删除?" onConfirm={(e)=>{this.intentionDelet(record,index)}} okText="删除" cancelText="不删除">
-							    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}}>删除</Button>
-							</Popconfirm>
-                        </div>
-					}
 				}
 			],
 			businessIntentionList: [{
@@ -402,17 +391,6 @@ const PublicCustomer = Form.create()(React.createClass({
 				title: '拜访说明',
 				dataIndex: 'result',
 				key: 'result'
-			}, {
-				title: '操作',
-				dataIndex: 'ttt',
-				key: 'ttt',
-				render: (text, record, index) => {
-					return adminData.isSuperAdmin ? <div>
-                            <Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
-							    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
-							</Popconfirm>
-                        </div> : <span></span>
-				}
 			}],
 
 			ContactsLists: [{
@@ -472,18 +450,6 @@ const PublicCustomer = Form.create()(React.createClass({
 						return adminData.isSuperAdmin ? <Input value={record.email} placeholder="电子邮箱" key={record.id}
 	                  onChange={(e) => { record.email = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
 					}
-				},
-				{
-					title: '操作',
-					dataIndex: 'dels',
-					key: 'dels',
-					render: (text, record, index) => {
-						return adminData.isSuperAdmin ? <div>
-                            <Popconfirm title="是否删除?" onConfirm={(e)=>{this.confirmDelet(record)}} okText="删除" cancelText="不删除">
-							    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}}>删除</Button>
-							</Popconfirm>
-                        </div> : <span>无权限</span>
-					}
 				}
 			],
 			columnsman: [{
@@ -574,17 +540,6 @@ const PublicCustomer = Form.create()(React.createClass({
 					dataIndex: 'currentMemberStatus',
 					key: 'currentMemberStatus',
 					render: text => { return getCurrentMember(text) }
-				},
-				{
-					title: '操作',
-					dataIndex: 'abc',
-					key: 'abc',
-					render: (text, record, index) => {
-						return record.shareType == '1' ? <div>
-                               <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
-                                onClick={(e)=>{ e.stopPropagation(),this.changeRow(record)}}>领取<Icon /></Button>  
-                        </div> : <span>无权限</span>
-					}
 				}
 			],
 			data: [],
@@ -2018,7 +1973,7 @@ const PublicCustomer = Form.create()(React.createClass({
 		return(
 			<div className="user-content" >
                 <div className="content-title">                  
-                    <span>我的客户</span>
+                    <span>单位客户查询</span>
                 </div>
                 <div className="user-search">                    
                     <Input placeholder="客户名称"
@@ -2044,10 +1999,7 @@ const PublicCustomer = Form.create()(React.createClass({
 	                        </Select>
                     <Button type="primary" onClick={this.search}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button>                                         				
-					{adminData.isSuperAdmin?<Button type='danger' style={{marginRight:'10px' ,marginLeft:'10px',display:adminData.isSuperAdmin?'inline-block':'none'}}
-	                        disabled={!hasSelected}
-	                        onClick={this.delectRow}>删除<Icon type="minus" />
-	                </Button>:''}			
+							
 	                <span style={{marginLeft:'10px',marginRight:'20px'}}>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
                     <div className='clearfix' style={{marginTop:'5px'}}>
 	                  <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>                    			                  
@@ -2315,18 +2267,7 @@ const PublicCustomer = Form.create()(React.createClass({
 									                        <Radio value={1}>已认证</Radio>
 									                  </Radio.Group>:<span>{this.state.businessAudit?'是':'否'}</span>}
 								            </FormItem>
-						                    <FormItem className="half-item"
-				                   		   		labelCol={{ span: 4 }}
-					                            wrapperCol={{ span: 18 }}
-					                            label="投资机构"
-					                   		    >
-						                   		 <Radio.Group value={this.state.investment} onChange={(e) => {
-								                        this.setState({investment:e.target.value})
-								                    }}>
-								                        <Radio value={0}>否</Radio>
-								                        <Radio value={1}>是</Radio>
-								                  </Radio.Group>
-								            </FormItem>
+						                    
 					                   		<FormItem className="half-item"
 				                   		   		labelCol={{ span: 4 }}
 					                            wrapperCol={{ span: 18 }}
@@ -2402,9 +2343,7 @@ const PublicCustomer = Form.create()(React.createClass({
 											    				onChange={(e)=>{this.setState({introduction:e.target.value})}}/>			                      
 							                    </FormItem>
 						                    </div>
-						                    <Button className="set-submit" type="primary" htmlType="submit" style={{marginLeft:'90px',marginBottom:'30px'}}>保存</Button>  
-					                        <Button className="set-submit" type="ghost" onClick={this.detailsModal}>取消</Button>
-					                    </div>		                	
+						                </div>		                	
 								    </Spin>
 								</Form>	:<Form horizontal id="demand-form">
 					                <Spin spinning={this.state.loading}>
@@ -2602,9 +2541,6 @@ const PublicCustomer = Form.create()(React.createClass({
 								</Form>}	
 							</TabPane>
 						    <TabPane tab="联系人信息" key="2">
-						        <div className="clearfix" >
-						            <Button className="ContactsList" type="primary" onClick={this.addcontact} style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>新增</Button> 
-						        </div>
 						       <div className="clearfix">
                     			  <Spin spinning={this.state.loading}>
                     			     <Form horizontal id="demand-form" onSubmit={this.contactSave} >
@@ -2614,9 +2550,7 @@ const PublicCustomer = Form.create()(React.createClass({
 						            	 dataSource={this.state.contactList}
 						            	 />
 					            	    <div className="clearfix" style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>
-								                <Button  type="primary" htmlType="submit" style={{fontSize:'16px',margin:'20px 25px 40px 120px'}}>保存</Button>  
-				                                <Button  type="ghost" onClick={this.detailsModal} style={{fontSize:'18px'}}>取消</Button>
-								            </div>
+								        </div>
 						            	</Form> 
 								   </Spin> 
 								</div>
@@ -2630,7 +2564,7 @@ const PublicCustomer = Form.create()(React.createClass({
 							                            {...formItemLayout}
 							                            label="注册手机号" >
 							                        {adminData.isSuperAdmin?<div><Input value={this.state.mobile}  disabled onChange={(e) => { this.setState({ mobile: e.target.value }); }} style={{width:'200px',marginRight:'50px'}}/>
-							                    	 <Button onClick={this.modifyPassworld}>修改密码</Button></div>:<span>{this.state.mobile}</span>}
+							                    	 </div>:<span>{this.state.mobile}</span>}
 							                    </FormItem>
 							                    <FormItem className="half-item"
 							                            {...formItemLayout}
@@ -2710,9 +2644,7 @@ const PublicCustomer = Form.create()(React.createClass({
 							                   		</FormItem>
 							                   	</div>
 									            <div className="clearfix" style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>
-									                <Button className='saveBtn' type="primary" htmlType="submit">保存</Button>  
-					                                <Button  type="ghost" onClick={this.detailsModal}>取消</Button>
-									            </div>
+									             </div>
 						    				</Spin>
 						    			</Form>	
 						    		</div>
@@ -2851,9 +2783,7 @@ const PublicCustomer = Form.create()(React.createClass({
 										</div>	 
 					                </div>
 			    			   	</div>
-							    <Button  type="primary" size="large" htmlType="submit" style={{margin:'15px  35px 35px 120px'}}>保存</Button>
-					           	<Button  size="large" onClick={this.visitCancel}>取消</Button>
-					   		</Spin>:<Spin spinning={this.state.loading}>
+							</Spin>:<Spin spinning={this.state.loading}>
 			    			   	<div className="clearfix">
 			    			   		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -2948,8 +2878,6 @@ const PublicCustomer = Form.create()(React.createClass({
 					                         <Input type="password" value={this.state.companyNam1}  onChange={(e) => { this.setState({ companyNam1: e.target.value }); }} required="required" /> 
 					                    </FormItem>
 				                    </div>
-				                    <Button  type="primary" size="large" htmlType="submit" style={{margin:'15px  15px 20px 95px'}}>保存</Button>
-			           				<Button  size="large" onClick={this.passworldCancel}>取消</Button>
 				                </Spin>
 							</Form>                  
 						</div>	                    
@@ -3022,9 +2950,7 @@ const PublicCustomer = Form.create()(React.createClass({
                                 </Col>
                             </Row>
                             <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}>
-                          <Button className="set-submit" type="primary" htmlType="submit"  id="change_keep" style={{marginLeft:'60px'}}>保存</Button>
-			              <Button className="set-submit" type="ghost" onClick={this.addcontactModulcancel} id='change_rem'>取消</Button>
-			            	</Row>
+                          	</Row>
 			            </Spin>
 			        </Form>   
 			    </Modal>

File diff suppressed because it is too large
+ 3252 - 0
js/component/manageCenter/customer/customerManagement/expertManage.jsx


+ 1 - 12
js/component/manageCenter/customer/customerManagement/organizationManages.jsx

@@ -74,7 +74,7 @@ const PublicCustomer = Form.create()(React.createClass({
 			method: "post",
 			dataType: "json",
 			crossDomain: false,
-			url: globalConfig.context + '/api/admin/customer/listAllOrganizationCustomer',
+			url: globalConfig.context + '/api/admin/customer/listAllManageOrganizationCustomer',
 			data: {
 				pageNo: pageNo || 1,
 				pageSize: this.state.pagination.pageSize,
@@ -574,17 +574,6 @@ const PublicCustomer = Form.create()(React.createClass({
 					dataIndex: 'currentMemberStatus',
 					key: 'currentMemberStatus',
 					render: text => { return getCurrentMember(text) }
-				},
-				{
-					title: '操作',
-					dataIndex: 'abc',
-					key: 'abc',
-					render: (text, record, index) => {
-						return record.shareType == '1' ? <div>
-                               <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
-                                onClick={(e)=>{ e.stopPropagation(),this.changeRow(record)}}>领取<Icon /></Button>  
-                        </div> : <span>无权限</span>
-					}
 				}
 			],
 			data: [],

+ 15 - 40
js/component/manageCenter/customer/customerManagement/personalManages.jsx

@@ -74,7 +74,7 @@ const QueryCustomer = Form.create()(React.createClass({
 			method: "post",
 			dataType: "json",
 			crossDomain: false,
-			url: globalConfig.context + '/api/admin/customer/listAllPersonalCustomer',
+			url: globalConfig.context + '/api/admin/customer/listAllManagePersonalCustomer',
 			data: {
 				pageNo: pageNo || 1,
 				pageSize: this.state.pagination.pageSize,
@@ -98,6 +98,7 @@ const QueryCustomer = Form.create()(React.createClass({
 				expert: this.state.expertSearch,
 				industry: this.state.industrySearch,
 				shareType: this.state.shareTypeSearch,
+				
 			},
 			success: function(data) {
 				let theArr = [];
@@ -558,11 +559,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					key: 'expert',
 					render: text => { return getWhether(text) }
 
-				}, {
-					title: '是否明星',
-					dataIndex: 'celebrity',
-					key: 'celebrity',
-					render: text => { return getWhether(text) }
 				},
 				{
 					title: '是否会员',
@@ -571,12 +567,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					render: text => { return getWhether(text) }
 				},
 				{
-					title: '是否咨询师',
-					dataIndex: 'consultant',
-					key: 'consultant',
-					render: text => { return getWhether(text) }
-				},
-				{
 					title: '是否国际',
 					dataIndex: 'international',
 					key: 'international',
@@ -599,18 +589,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					dataIndex: 'status',
 					key: 'status',
 					render: text => { return getStatuslist(text) }
-				},
-
-				{
-					title: '操作',
-					dataIndex: 'abc',
-					key: 'abc',
-					render: (text, record, index) => {
-						return record.shareType == '1' ? <div>
-                            <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
-                                onClick={(e)=>{e.stopPropagation(),this.changeRow(record)}}>领取<Icon /></Button>  
-                        </div> : <span>无权限</span>
-					}
 				}
 			],
 			data: [],
@@ -2255,21 +2233,7 @@ const QueryCustomer = Form.create()(React.createClass({
 							                                <Input ref='consul' placeholder="输入数字且不超过6位" value={this.state.consultationPrice} 
 	    												onChange={(e) => {this.setState({consultationPrice: e.target.value })}}/>
 							                    </FormItem>
-							                    <FormItem className="half-item" 
-									            	{...formItemLayout}
-							                        label="实名认证"
-									            >
-							                   		<Select placeholder="实名认证"
-							                            value={this.state.auditStatus}
-							                            onChange={(e) => { this.setState({ auditStatus: e }) }}>
-							                            {
-						                                    auditStatusL.map(function (item) {
-						                                            return <Select.Option key={item.value} >{item.key}</Select.Option>
-						                                    })
-						                                }
-								                    </Select>
-									        </FormItem>
-											<div className='clearfix'>
+							                <div className='clearfix'>
 							                    <FormItem
 							                        labelCol={{ span: 4 }}
 							                        wrapperCol={{ span: 18 }}
@@ -2313,7 +2277,18 @@ const QueryCustomer = Form.create()(React.createClass({
 								                        <Radio value={'女'}>女</Radio>
 								                  </Radio.Group>
 					                   		 </FormItem>
-					                   		 </div>
+					                   		 <FormItem className="half-item"
+								                {...formItemLayout}
+						                        label="专家"
+								                > 
+						                   		 <Radio.Group value={this.state.expert} onChange={(e) => {
+								                        this.setState({ expert:  e.target.value })
+								                    }}>
+								                        <Radio value={0}>否</Radio>
+								                        <Radio value={1}>是</Radio>
+								                  </Radio.Group>
+								            </FormItem>
+					                   	</div>
 						                   <div className="clearfix pictures">
 						                        <FormItem style={{display:'inline-block',width:'350px',marginTop:'20px',marginLeft:'60px'}}
 							                        labelCol={{ span: 8 }}

File diff suppressed because it is too large
+ 3322 - 97
js/component/manageCenter/customer/customerManagement/publicManages.jsx


File diff suppressed because it is too large
+ 3238 - 0
js/component/manageCenter/customer/individualCustomer/expertQuery.jsx


+ 0 - 11
js/component/manageCenter/customer/individualCustomer/individualCustomer.jsx

@@ -548,17 +548,6 @@ const IndividualCustomer = Form.create()(React.createClass({
 					key: 'expert',
 					render: text => { return getWhether(text) }
 
-				}, {
-					title: '是否明星',
-					dataIndex: 'celebrity',
-					key: 'celebrity',
-					render: text => { return getWhether(text) }
-				},
-				 {
-					title: '是否咨询师',
-					dataIndex: 'consultant',
-					key: 'consultant',
-					render: text => { return getWhether(text) }
 				},
 				{
 					title: '是否会员',

File diff suppressed because it is too large
+ 6395 - 0
js/component/manageCenter/customer/individualCustomer/publicQuery.jsx


+ 13 - 112
js/component/manageCenter/customer/individualCustomer/queryCustomer.jsx

@@ -295,17 +295,6 @@ const QueryCustomer = Form.create()(React.createClass({
 	                             onChange={(e) => { record.remarks = e.target.value; this.setState({ data: this.state.data }); }}
 	                             style={{width:'120px'}}/> : <span>{text}</span>
 					}
-				}, {
-					title: '操作',
-					dataIndex: 'rrr',
-					key: 'rrr',
-					render: (text, record, index) => {
-						return <div style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>
-                            <Popconfirm title="是否删除?" onConfirm={(e)=>{this.intentionDelet(record,index)}} okText="删除" cancelText="不删除">
-							    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}}>删除</Button>
-							</Popconfirm>
-                        </div>
-					}
 				}
 			],
 			businessIntentionList: [{
@@ -412,17 +401,6 @@ const QueryCustomer = Form.create()(React.createClass({
 				render: text => {
 					return <span style={{width:'150px',display:'inline-block',overflow:'hidden'}}>{text}</span>
 				}
-			}, {
-				title: '操作',
-				dataIndex: 'ttt',
-				key: 'ttt',
-				render: (text, record, index) => {
-					return adminData.isSuperAdmin ? <div>
-                            <Popconfirm title="是否删除?" onConfirm={(e)=>{this.visitDelet(record)}} okText="删除" cancelText="不删除">
-							    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}} onClick={(e)=>{e.stopPropagation()}}>删除</Button>
-							</Popconfirm>
-                        </div> : <span></span>
-				}
 			}],
 
 			ContactsLists: [{
@@ -482,18 +460,6 @@ const QueryCustomer = Form.create()(React.createClass({
 						return adminData.isSuperAdmin ? <Input value={record.email} placeholder="电子邮箱" key={record.id}
 	                  onChange={(e) => { record.email = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> : <span>{text}</span>
 					}
-				},
-				{
-					title: '操作',
-					dataIndex: 'dels',
-					key: 'dels',
-					render: (text, record, index) => {
-						return adminData.isSuperAdmin ? <div>
-                            <Popconfirm title="是否删除?" onConfirm={(e)=>{this.confirmDelet(record)}} okText="删除" cancelText="不删除">
-							    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}}>删除</Button>
-							</Popconfirm>
-                        </div> : <span>无权限</span>
-					}
 				}
 			],
 			columnsman: [{
@@ -558,11 +524,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					key: 'expert',
 					render: text => { return getWhether(text) }
 
-				}, {
-					title: '是否明星',
-					dataIndex: 'celebrity',
-					key: 'celebrity',
-					render: text => { return getWhether(text) }
 				},
 				{
 					title: '是否会员',
@@ -571,12 +532,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					render: text => { return getWhether(text) }
 				},
 				{
-					title: '是否咨询师',
-					dataIndex: 'consultant',
-					key: 'consultant',
-					render: text => { return getWhether(text) }
-				},
-				{
 					title: '是否国际',
 					dataIndex: 'international',
 					key: 'international',
@@ -599,18 +554,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					dataIndex: 'status',
 					key: 'status',
 					render: text => { return getStatuslist(text) }
-				},
-
-				{
-					title: '操作',
-					dataIndex: 'abc',
-					key: 'abc',
-					render: (text, record, index) => {
-						return record.shareType == '1' ? <div>
-                            <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
-                                onClick={(e)=>{e.stopPropagation(),this.changeRow(record)}}>领取<Icon /></Button>  
-                        </div> : <span>无权限</span>
-					}
 				}
 			],
 			data: [],
@@ -730,7 +673,7 @@ const QueryCustomer = Form.create()(React.createClass({
 			crossDomain: false,
 			url: globalConfig.context + "/api/admin/customer/deleteFollow",
 			data: {
-				followId: e.followId, //删除的ID    
+				followId: e.followId, //删除的ID
 			}
 		}).done(function(data) {
 			if(!data.error.length) {
@@ -1972,7 +1915,7 @@ const QueryCustomer = Form.create()(React.createClass({
 		return(
 			<div className="user-content" >
                 <div className="content-title">                  
-                    <span>我的客户</span>
+                    <span>个人客户查询</span>
                 </div>
                 <div className="user-search">                    
                     <Input placeholder="客户姓名"
@@ -1998,11 +1941,7 @@ const QueryCustomer = Form.create()(React.createClass({
                     </Select>
                     <Button type="primary" onClick={this.search}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button>                                    					
-					{adminData.isSuperAdmin?<Button type='danger' style={{marginRight:'10px' ,marginLeft:'10px',display:adminData.isSuperAdmin?'inline-block':'none'}}
-	                        disabled={!hasSelected} 
-	                        onClick={this.delectRow}>删除<Icon type="minus" />
-	                </Button>:''}	 
-	                <span style={{marginLeft:'10px',marginRight:'20px'}}>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
+					<span style={{marginLeft:'10px',marginRight:'20px'}}>更多搜索<Switch defaultChecked={false} onChange={this.searchSwitch} /></span>
                     <div className='clearfix' style={{marginTop:'5px'}}>
 	                  <div className="search-more" style={this.state.searchMore ? { display: 'none' } : {}}>                    			                  
 			                <RangePicker
@@ -2093,7 +2032,7 @@ const QueryCustomer = Form.create()(React.createClass({
                 </div> 
                 <Modal	
 				      className="customeDetails"				      
-			          title="单位客户详情"
+			          title="个人客户详情"
 			          width='1200px'
 			          visible={this.state.modal5Visible}
 			          onOk={this.detailsModal}
@@ -2291,17 +2230,7 @@ const QueryCustomer = Form.create()(React.createClass({
 									                        <Radio value={1}>已认证</Radio>
 									                  </Radio.Group>
 									        </FormItem>
-									          <FormItem className="half-item"
-									                {...formItemLayout}
-							                        label="投资机构"
-									                > 
-							                   		 <Radio.Group value={this.state.investment} onChange={(e) => {
-									                        this.setState({ investment:  e.target.value })
-									                    }}>
-									                        <Radio value={0}>否</Radio>
-									                        <Radio value={1}>是</Radio>
-									                  </Radio.Group>
-									            </FormItem>  
+									         
 						                    <FormItem className="half-item"
 								                {...formItemLayout}
 						                        label="专家"
@@ -2317,22 +2246,10 @@ const QueryCustomer = Form.create()(React.createClass({
 								                {...formItemLayout}
 						                        label="明星"
 								                > 
-						                   		 <Radio.Group value={this.state.celebrity} onChange={(e) => {
-								                        this.setState({ celebrity:  e.target.value })
-								                    }}>
-								                        <Radio value={0}>否</Radio>
-								                        <Radio value={1}>是</Radio>
-								                  </Radio.Group>
-								            </FormItem>
-								            <FormItem className="half-item"
-								                {...formItemLayout}
-						                        label="咨询师"
-								                > 
-						                   		 <Radio.Group value={this.state.consultant} onChange={(e) => {
-								                        this.setState({ consultant:  e.target.value })
+						                   		 <Radio.Group value={this.state.expert} onChange={(e) => {
+								                        this.setState({ expert:  e.target.value })
 								                    }}>
-								                        <Radio value={0}>否</Radio>
-								                        <Radio value={1}>是</Radio>
+								                       <Radio value={2}>是</Radio>
 								                  </Radio.Group>
 								            </FormItem>
 								             <FormItem className="half-item"
@@ -2390,9 +2307,7 @@ const QueryCustomer = Form.create()(React.createClass({
 							                            <p>建议:图片要清晰。</p>
 							                    </FormItem>
 							                </div>
-						                    <Button className="set-submit" type="primary" htmlType="submit" style={{marginLeft:'146px',marginBottom:'30px'}}>保存</Button>  
-					                        <Button className="set-submit" type="ghost" onClick={this.detailsModal}>取消</Button>
-					                    </div>		                	
+						                </div>		                	
 								    </Spin>
 								</Form>:
 								<Form horizontal  id="demand-form">
@@ -2663,9 +2578,6 @@ const QueryCustomer = Form.create()(React.createClass({
 								}
 							</TabPane>
 						    <TabPane tab="联系人信息" key="2">
-						        <div className="clearfix" style={{display:adminData.isSuperAdmin?'block':'none'}}>
-						            <Button className="ContactsList" type="primary" onClick={this.addcontact}>新增</Button> 
-						        </div>
 						       <div className="clearfix">
                     			  <Spin spinning={this.state.loading}>
                     			     <Form horizontal id="demand-form" onSubmit={this.contactSave} >
@@ -2675,8 +2587,6 @@ const QueryCustomer = Form.create()(React.createClass({
 						            	 dataSource={this.state.contactList}
 						            	 />
 					            	        <div className="clearfix" style={{display:adminData.isSuperAdmin?'inline-block':'none'}}>
-								                <Button  type="primary" htmlType="submit" style={{fontSize:'16px',margin:'20px 25px 40px 120px'}}>保存</Button>  
-				                                <Button  type="ghost" onClick={this.detailsModal} style={{fontSize:'18px'}}>取消</Button>
 								            </div>
 						            	</Form> 
 								   </Spin> 
@@ -2691,7 +2601,7 @@ const QueryCustomer = Form.create()(React.createClass({
 							                            label="注册手机号" >
 							                         <Input value={this.state.mobile} disabled 
 							                           onChange={(e) => { this.setState({ mobile: e.target.value }); }} style={{width:'200px',marginRight:'50px'}}/>
-							                    	 <Button onClick={this.modifyPassworld}>修改密码</Button>
+							                    	
 							                    </FormItem>
 							                    <FormItem className="half-item"
 							                            {...formItemLayout}
@@ -2769,10 +2679,7 @@ const QueryCustomer = Form.create()(React.createClass({
 					                                    </Select>
 							                   		</FormItem>
 							                   	</div>
-									            <div className="clearfix">
-									                <Button className='saveBtn' type="primary" htmlType="submit">保存</Button>  
-					                                <Button  type="ghost" onClick={this.detailsModal}>取消</Button>
-									            </div>
+									            
 						    				</Spin>
 						    			</Form>	:
 						    			<Form horizontal id="demand-form"  >
@@ -2998,9 +2905,7 @@ const QueryCustomer = Form.create()(React.createClass({
 										</div>	 
 					                </div>
 			    			   	</div>
-							    <Button  type="primary" size="large" htmlType="submit" style={{margin:'15px  35px 35px 120px'}}>保存</Button>
-					           	<Button  size="large" onClick={this.visitCancel}>取消</Button>
-					   		</Spin>:<Spin spinning={this.state.loading}>
+							</Spin>:<Spin spinning={this.state.loading}>
 			    			   	<div className="clearfix">
 			    			   		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -3095,8 +3000,6 @@ const QueryCustomer = Form.create()(React.createClass({
 					                         <Input type="password" value={this.state.companyNam1}  onChange={(e) => { this.setState({ companyNam1: e.target.value }); }} required="required" /> 
 					                    </FormItem>
 				                    </div>
-				                    <Button  type="primary" size="large" htmlType="submit" style={{margin:'15px  15px 20px 95px'}}>保存</Button>
-			           				<Button  size="large" onClick={this.passworldCancel}>取消</Button>
 				                </Spin>
 							</Form>                  
 						</div>	                    
@@ -3169,9 +3072,7 @@ const QueryCustomer = Form.create()(React.createClass({
                                 </Col>
                             </Row>
                             <Row style={{ marginTop: '20px',paddingLeft:'50px' ,marginBottom:'50px'}}>
-                          <Button className="set-submit" type="primary" htmlType="submit"  id="change_keep" style={{marginLeft:'60px'}}>保存</Button>
-			              <Button className="set-submit" type="ghost" onClick={this.addcontactModulcancel} id='change_rem'>取消</Button>
-			            	</Row>
+                            </Row>
 			            </Spin>
 			        </Form>   
 			    </Modal>

File diff suppressed because it is too large
+ 3313 - 0
js/component/manageCenter/customer/release/expertRelease.jsx


+ 141 - 0
js/component/manageCenter/customer/release/myClient.less

@@ -0,0 +1,141 @@
+.user-content {
+    background: #fff;
+    padding: 20px;
+    .content-title {
+        color: #333;
+        font-size: 16px;
+        overflow: hidden;
+    }
+    .user-search {
+        margin-bottom: 10px;
+        >input {
+            width: 140px;
+        }
+        >input,
+        >button,
+        .ant-select {
+            margin-right: 10px;
+            margin-top: 10px;
+        }
+        .ant-switch {
+            margin-left: 10px;
+        }
+        .search-more {
+            margin: 10px 0;
+            >span {
+                margin-right: 10px
+            }
+        }
+    }
+}
+.tabcolor .ant-table-thead > tr > th{background: none!important;}
+.avatar-uploader,
+.avatar-uploader-trigger,
+.avatar {
+    width: 150px;
+    height: 150px;
+}
+
+.modal-box-title{float: left;}
+.modal-box-detail{margin-left: 10px;vertical-align: top;float: left;margin-top: 0px;width: 160px!important;}
+.avatar-uploader-trigger {
+    display: table-cell;
+    vertical-align: middle;
+    font-size: 28px;
+    color: #999;
+}
+.avatar-uploader {
+    display: block;
+    padding: 1px;
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    img {
+        position: absolute;
+        top: -1px;
+        left: -1px;
+        height: 150px;
+    } //
+    float: left;
+    margin-right: 20px;
+}
+.patent-addNew {
+    float: right;
+    margin-left: 20px;
+    >* {
+        float: left;
+        margin-right: 20px;
+    }
+    .addButton {
+        background: #ea0862;
+        color: #fff;
+        border: none;
+        border-radius: 4px;
+        padding: 4px 10px;
+    }
+    .addButton:hover {
+        background: #ea0862;
+    }
+}
+.ant-modal-footer{text-align: left;}
+.ant-modal-footer button{width: 100px;margin-top: 15px;margin-bottom: 15px;}
+.ant-modal-footer button:first-child{margin-left: 80px;margin-right: 30px;}
+.ant-modal-title{font-size: 20px;}
+.ContactsList{float: right;}
+#demand-form {
+    .half-item {
+        float: left;
+        width: 50%;
+        margin-bottom: 10px;
+    }
+    .item-title {
+        line-height: 30px;
+        font-size: 14px;
+        color: #666;
+    }
+    .form-title {
+        font-size: 16px;
+        color: #333;
+    }
+    .keyWord-tips {
+        >button {
+            vertical-align: middle;
+        }
+    }
+    .set-submit {
+        margin-right: 20px;
+    }
+    .demandDetailShow-upload {
+        .anticon-eye-o {
+            margin-left: -8px;
+        }
+        .anticon-delete {
+            display: none
+        }
+    }
+}
+
+.ant-modal-content {
+    .modal-submit {
+        margin-left: 20px;
+    }
+}
+
+.demand-order-content {
+    .ant-row {
+        margin-bottom: 20px;
+    }
+    .ant-input-number-handler-wrap {
+        display: none
+    }
+}
+.ant-table-thead {
+    .ant-table-selection-column {
+        .ant-checkbox-wrapper {
+            display: none;
+        }
+    }
+}
+
+

+ 207 - 0
js/component/manageCenter/customer/release/myClientDesc.jsx

@@ -0,0 +1,207 @@
+import React from 'react';
+import { Icon,  Modal, message,  Spin, Input, Select, Button, Form } from 'antd';
+import './myClient.less';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import {socialAttribute} from '../../../dataDic.js';
+const AchievementDetailForm = Form.create()(React.createClass({
+    getInitialState() {
+        return {
+            loading: false,
+            data: {},           
+        };
+    },
+    handleSubmit(e) {
+        e.preventDefault();
+        this.props.form.validateFields((err, values) => { 
+        	if(values.companyNamet.length>64){
+    		message.warning('联系人字数不超过64个')
+    		return false;
+	    	};
+	    	if(values.telnums.length>13){
+	    		message.warning('电话号码字数不超过13个')
+	    		return false;
+	    	};
+            if (!err) {
+                this.setState({
+                    loading: true
+                });
+                $.ajax({
+                    method: "POST",
+                    dataType: "json",
+                    crossDomain: false,
+                    url: globalConfig.context + '/api/admin/customer/addCustomer',
+                    data: {
+                        contacts:values.companyNamet,
+                        societyTag:values.societyTagt,
+                        name: values.companyNamet, 
+                        contactMobile: values.telnums,
+                        type:'0'
+                    }
+                }).done(function (data) { 
+                    this.setState({
+                        loading: false
+                    });
+                    if (!data.error.length) {
+                        message.success('保存成功!');
+                        this.props.handleOk();
+                    } else {
+                        message.warning(data.error[0].message);
+                    }
+                }.bind(this));
+            }
+        });
+    },
+
+	//去完善
+    addContent(){
+    	let telnum=this.state.telnum;
+    	let companyName=this.state.companyNamet;
+    	let content=this.state.content;
+    	if(!telnum||!companyName||!content){
+    		message.warning('此3项都要填');
+    	}else{
+    		this.props.newmodal(true);
+    		this.props.closeDesc(false);
+    	}	
+    },
+    componentWillMount() {
+        this.state.companyNamet='';
+    	this.state.telnum='';
+    	this.state.depatrments='';
+    	this.state.positions='';
+    	this.state.wechats='';
+    	this.state.qqs='';
+    	this.state.emails='';
+    	
+    },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.state.companyNamet='';
+	    	this.state.telnum='';
+            this.props.form.resetFields(); 
+        };
+    },
+    
+    render() {
+        const theData = this.state.data || {};
+        const { getFieldDecorator } = this.props.form;
+        const FormItem = Form.Item
+        const formItemLayout = {
+            labelCol: { span: 8 },
+            wrapperCol: { span: 14 },
+        };  
+
+        return (
+        <div>
+            <Form horizontal onSubmit={this.handleSubmit} id="demand-form">
+                <Spin spinning={this.state.loading}>
+                    <div className="clearfix">
+                    	<FormItem className="half-item"
+	                            {...formItemLayout}
+	                            label="客户姓名" >   
+	                           {getFieldDecorator('companyNamet', {
+	                                rules: [{ required: true, message: '此项为必填项!' }],
+	                                initialValue: this.state.companyNamet
+                                })(
+                                    <Input placeholder="客户姓名" />
+                                )} 
+	                    </FormItem>
+	                    </div>
+	                    <div className="clearfix">
+                    	<FormItem className="half-item"
+	                            {...formItemLayout}
+	                            label="联系电话" >
+	                    		{getFieldDecorator('telnums', {
+	                                rules: [{ required: true, message: '此项为必填项!' }],
+	                                initialValue: this.state.telnums
+                                })(
+                                    <Input placeholder="联系电话" />
+                                )} 
+	                    </FormItem>
+                    </div>
+                    <div className="clearfix">
+                    	<FormItem className="half-item" 
+                          {...formItemLayout}
+                           label="社会属性"
+                         > 
+                         {getFieldDecorator('societyTagt', {
+	                                rules: [{ required: true, message: '此项为必填项!' }],
+	                                initialValue: this.state.societyTagt
+                                })(
+							  <Select placeholder="客户社会属性"> 
+                                {
+                                    socialAttribute.map(function (item) {
+                                        return <Select.Option key={item.value} >{item.key}</Select.Option>
+                                    })
+                                }
+                              </Select>
+                            )}
+                   		 </FormItem>
+                    </div>
+                    <FormItem wrapperCol={{ span: 12, offset: 4 }}>
+                        <Button className="set-submit" type="primary" htmlType="submit">保存</Button>  
+                        {/*<Button className="set-submit" type="primary"  onClick={(e)=>{this.addContent();this.props.closeDesc}}>去完善</Button>*/}
+                        <Button className="set-submit" type="ghost" onClick={this.props.closeDesc}>取消</Button>
+                    </FormItem> 
+                </Spin>
+            </Form >
+    	</div>
+        )
+    }
+}));
+
+const CustomerDetail = React.createClass({
+    getInitialState() {
+        return {
+            visible: false,
+            tabsKey: 1,
+            loading: false,           
+            dataSource: [],
+        };
+    },    
+    handleCancel(e) {
+        this.setState({
+            visible: false,
+        });
+        this.props.closeDesc(false);
+    },
+    handleOk(e) {
+        this.setState({
+            visible: false,
+        });
+        this.props.closeDesc(false, true);
+    },
+    
+    componentWillReceiveProps(nextProps) {
+        if (!this.state.visible && nextProps.showDesc) {
+            this.state.tabsKey = "1";
+        };
+        this.state.visible = nextProps.showDesc; 
+    },
+    render() {
+        
+            return (
+                <div className="patent-desc">
+                    <Modal maskClosable={false} visible={this.state.visible}
+                        onOk={this.checkPatentProcess} onCancel={this.handleCancel}
+                        width='800px'
+                        title='新建客户'                       
+                        footer=''
+                        className="admin-desc-content">
+                        <Spin spinning={this.state.loading}>               
+                            <AchievementDetailForm
+                                data={this.props.data} 
+                                newmodal={this.props.newmodal}
+                                closeDesc={this.handleCancel}
+                                visible={this.state.visible}
+                                handleOk={this.handleOk} />
+                        </Spin>
+                    </Modal>
+                </div>
+            );        
+    },
+});
+
+
+export default CustomerDetail;

File diff suppressed because it is too large
+ 3278 - 0
js/component/manageCenter/customer/reviewed/expertReview.jsx


File diff suppressed because it is too large
+ 6511 - 0
js/component/manageCenter/customer/reviewed/identityAudits.jsx


+ 141 - 0
js/component/manageCenter/customer/reviewed/myClient.less

@@ -0,0 +1,141 @@
+.user-content {
+    background: #fff;
+    padding: 20px;
+    .content-title {
+        color: #333;
+        font-size: 16px;
+        overflow: hidden;
+    }
+    .user-search {
+        margin-bottom: 10px;
+        >input {
+            width: 140px;
+        }
+        >input,
+        >button,
+        .ant-select {
+            margin-right: 10px;
+            margin-top: 10px;
+        }
+        .ant-switch {
+            margin-left: 10px;
+        }
+        .search-more {
+            margin: 10px 0;
+            >span {
+                margin-right: 10px
+            }
+        }
+    }
+}
+.tabcolor .ant-table-thead > tr > th{background: none!important;}
+.avatar-uploader,
+.avatar-uploader-trigger,
+.avatar {
+    width: 150px;
+    height: 150px;
+}
+
+.modal-box-title{float: left;}
+.modal-box-detail{margin-left: 10px;vertical-align: top;float: left;margin-top: 0px;width: 160px!important;}
+.avatar-uploader-trigger {
+    display: table-cell;
+    vertical-align: middle;
+    font-size: 28px;
+    color: #999;
+}
+.avatar-uploader {
+    display: block;
+    padding: 1px;
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    img {
+        position: absolute;
+        top: -1px;
+        left: -1px;
+        height: 150px;
+    } //
+    float: left;
+    margin-right: 20px;
+}
+.patent-addNew {
+    float: right;
+    margin-left: 20px;
+    >* {
+        float: left;
+        margin-right: 20px;
+    }
+    .addButton {
+        background: #ea0862;
+        color: #fff;
+        border: none;
+        border-radius: 4px;
+        padding: 4px 10px;
+    }
+    .addButton:hover {
+        background: #ea0862;
+    }
+}
+.ant-modal-footer{text-align: left;}
+.ant-modal-footer button{width: 100px;margin-top: 15px;margin-bottom: 15px;}
+.ant-modal-footer button:first-child{margin-left: 80px;margin-right: 30px;}
+.ant-modal-title{font-size: 20px;}
+.ContactsList{float: right;}
+#demand-form {
+    .half-item {
+        float: left;
+        width: 50%;
+        margin-bottom: 10px;
+    }
+    .item-title {
+        line-height: 30px;
+        font-size: 14px;
+        color: #666;
+    }
+    .form-title {
+        font-size: 16px;
+        color: #333;
+    }
+    .keyWord-tips {
+        >button {
+            vertical-align: middle;
+        }
+    }
+    .set-submit {
+        margin-right: 20px;
+    }
+    .demandDetailShow-upload {
+        .anticon-eye-o {
+            margin-left: -8px;
+        }
+        .anticon-delete {
+            display: none
+        }
+    }
+}
+
+.ant-modal-content {
+    .modal-submit {
+        margin-left: 20px;
+    }
+}
+
+.demand-order-content {
+    .ant-row {
+        margin-bottom: 20px;
+    }
+    .ant-input-number-handler-wrap {
+        display: none
+    }
+}
+.ant-table-thead {
+    .ant-table-selection-column {
+        .ant-checkbox-wrapper {
+            display: none;
+        }
+    }
+}
+
+

+ 207 - 0
js/component/manageCenter/customer/reviewed/myClientDesc.jsx

@@ -0,0 +1,207 @@
+import React from 'react';
+import { Icon,  Modal, message,  Spin, Input, Select, Button, Form } from 'antd';
+import './myClient.less';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import {socialAttribute} from '../../../dataDic.js';
+const AchievementDetailForm = Form.create()(React.createClass({
+    getInitialState() {
+        return {
+            loading: false,
+            data: {},           
+        };
+    },
+    handleSubmit(e) {
+        e.preventDefault();
+        this.props.form.validateFields((err, values) => { 
+        	if(values.companyNamet.length>64){
+    		message.warning('联系人字数不超过64个')
+    		return false;
+	    	};
+	    	if(values.telnums.length>13){
+	    		message.warning('电话号码字数不超过13个')
+	    		return false;
+	    	};
+            if (!err) {
+                this.setState({
+                    loading: true
+                });
+                $.ajax({
+                    method: "POST",
+                    dataType: "json",
+                    crossDomain: false,
+                    url: globalConfig.context + '/api/admin/customer/addCustomer',
+                    data: {
+                        contacts:values.companyNamet,
+                        societyTag:values.societyTagt,
+                        name: values.companyNamet, 
+                        contactMobile: values.telnums,
+                        type:'0'
+                    }
+                }).done(function (data) { 
+                    this.setState({
+                        loading: false
+                    });
+                    if (!data.error.length) {
+                        message.success('保存成功!');
+                        this.props.handleOk();
+                    } else {
+                        message.warning(data.error[0].message);
+                    }
+                }.bind(this));
+            }
+        });
+    },
+
+	//去完善
+    addContent(){
+    	let telnum=this.state.telnum;
+    	let companyName=this.state.companyNamet;
+    	let content=this.state.content;
+    	if(!telnum||!companyName||!content){
+    		message.warning('此3项都要填');
+    	}else{
+    		this.props.newmodal(true);
+    		this.props.closeDesc(false);
+    	}	
+    },
+    componentWillMount() {
+        this.state.companyNamet='';
+    	this.state.telnum='';
+    	this.state.depatrments='';
+    	this.state.positions='';
+    	this.state.wechats='';
+    	this.state.qqs='';
+    	this.state.emails='';
+    	
+    },
+    componentWillReceiveProps(nextProps) {
+        if (!this.props.visible && nextProps.visible) {
+            this.state.companyNamet='';
+	    	this.state.telnum='';
+            this.props.form.resetFields(); 
+        };
+    },
+    
+    render() {
+        const theData = this.state.data || {};
+        const { getFieldDecorator } = this.props.form;
+        const FormItem = Form.Item
+        const formItemLayout = {
+            labelCol: { span: 8 },
+            wrapperCol: { span: 14 },
+        };  
+
+        return (
+        <div>
+            <Form horizontal onSubmit={this.handleSubmit} id="demand-form">
+                <Spin spinning={this.state.loading}>
+                    <div className="clearfix">
+                    	<FormItem className="half-item"
+	                            {...formItemLayout}
+	                            label="客户姓名" >   
+	                           {getFieldDecorator('companyNamet', {
+	                                rules: [{ required: true, message: '此项为必填项!' }],
+	                                initialValue: this.state.companyNamet
+                                })(
+                                    <Input placeholder="客户姓名" />
+                                )} 
+	                    </FormItem>
+	                    </div>
+	                    <div className="clearfix">
+                    	<FormItem className="half-item"
+	                            {...formItemLayout}
+	                            label="联系电话" >
+	                    		{getFieldDecorator('telnums', {
+	                                rules: [{ required: true, message: '此项为必填项!' }],
+	                                initialValue: this.state.telnums
+                                })(
+                                    <Input placeholder="联系电话" />
+                                )} 
+	                    </FormItem>
+                    </div>
+                    <div className="clearfix">
+                    	<FormItem className="half-item" 
+                          {...formItemLayout}
+                           label="社会属性"
+                         > 
+                         {getFieldDecorator('societyTagt', {
+	                                rules: [{ required: true, message: '此项为必填项!' }],
+	                                initialValue: this.state.societyTagt
+                                })(
+							  <Select placeholder="客户社会属性"> 
+                                {
+                                    socialAttribute.map(function (item) {
+                                        return <Select.Option key={item.value} >{item.key}</Select.Option>
+                                    })
+                                }
+                              </Select>
+                            )}
+                   		 </FormItem>
+                    </div>
+                    <FormItem wrapperCol={{ span: 12, offset: 4 }}>
+                        <Button className="set-submit" type="primary" htmlType="submit">保存</Button>  
+                        {/*<Button className="set-submit" type="primary"  onClick={(e)=>{this.addContent();this.props.closeDesc}}>去完善</Button>*/}
+                        <Button className="set-submit" type="ghost" onClick={this.props.closeDesc}>取消</Button>
+                    </FormItem> 
+                </Spin>
+            </Form >
+    	</div>
+        )
+    }
+}));
+
+const CustomerDetail = React.createClass({
+    getInitialState() {
+        return {
+            visible: false,
+            tabsKey: 1,
+            loading: false,           
+            dataSource: [],
+        };
+    },    
+    handleCancel(e) {
+        this.setState({
+            visible: false,
+        });
+        this.props.closeDesc(false);
+    },
+    handleOk(e) {
+        this.setState({
+            visible: false,
+        });
+        this.props.closeDesc(false, true);
+    },
+    
+    componentWillReceiveProps(nextProps) {
+        if (!this.state.visible && nextProps.showDesc) {
+            this.state.tabsKey = "1";
+        };
+        this.state.visible = nextProps.showDesc; 
+    },
+    render() {
+        
+            return (
+                <div className="patent-desc">
+                    <Modal maskClosable={false} visible={this.state.visible}
+                        onOk={this.checkPatentProcess} onCancel={this.handleCancel}
+                        width='800px'
+                        title='新建客户'                       
+                        footer=''
+                        className="admin-desc-content">
+                        <Spin spinning={this.state.loading}>               
+                            <AchievementDetailForm
+                                data={this.props.data} 
+                                newmodal={this.props.newmodal}
+                                closeDesc={this.handleCancel}
+                                visible={this.state.visible}
+                                handleOk={this.handleOk} />
+                        </Spin>
+                    </Modal>
+                </div>
+            );        
+    },
+});
+
+
+export default CustomerDetail;

+ 1 - 1
js/component/manageCenter/demand/content.jsx

@@ -18,7 +18,7 @@ class Content extends Component {
         var rid=idk.split('#');
         let menu=getMenu(rid);
         let curry;
-        if(menu[0].subMenus.length>0){
+		if(menu[0].subMenus.length>0){
         	curry=menu[0].subMenus[0].url.split('#');
         }else{
         	curry=menu[0].url.split('#');

+ 1 - 1
js/component/manageCenter/demand/demandAudit/demandAuditDesc.jsx

@@ -685,7 +685,7 @@ const DemandDetailShow = Form.create()(React.createClass({
                         </FormItem>
                     </div>
                     <FormItem wrapperCol={{ span: 12, offset: 3 }}>
-                        <Button className="set-submit" type="primary" htmlType="submit">提交审核</Button>
+                        <Button className="set-submit" type="primary" htmlType="submit">确认</Button>
                         <Button className="set-submit" type="ghost" onClick={this.props.closeDesc}>取消</Button>
                         {window.showAuditStatus ? <Button className="set-submit" loading={this.state.buttonLoading} type="primary" onClick={this.buildMatchList} style={{"display":"none"}}>生成匹配列表</Button> : <span></span>}
                     </FormItem>

+ 2 - 2
js/component/manageCenter/demand/demandAudit/techDemandAudit.jsx

@@ -523,8 +523,8 @@ const TechDemandPublish = React.createClass({
                     </Radio.Group>                   
                     <Button type="primary" onClick={this.search}>搜索</Button>
                     <Button onClick={this.reset}>重置</Button>
-                     <Button type='primary' onClick={this.examineOK} disabled={!hasSelected}>审核通过</Button>
-                    <Button type='primary' onClick={this.examineCancel} disabled={!hasSelected}>审核不通过</Button>
+                     <Button type='primary' onClick={this.examineOK} disabled={!hasSelected} style={{"display":"none"}}>审核通过</Button>
+                    <Button type='primary' onClick={this.examineCancel} disabled={!hasSelected} style={{"display":"none"}}>审核不通过</Button>
                     <Button style={{ background: "#3fcf9e", border: "none", color: "#fff" }}
                         disabled={!hasSelected}
                         onClick={this.delectRow}>删除<Icon type="minus" /></Button>

+ 1 - 9
js/component/manageCenter/demand/demandRelease/techDemandRelease.jsx

@@ -570,15 +570,7 @@ const TechDemandPublish = React.createClass({
                             <Select.Option value="1" >未解决</Select.Option>
                             <Select.Option value="2" >已解决</Select.Option>
                         </Select>
-                        <Select placeholder="选择审核状态" style={{ width: 160 }}
-                            value={this.state.auditStatus}
-                            onChange={(e) => { this.setState({ auditStatus: e }) }}>
-                            <Select.Option value="0" >未提交审核(草稿)</Select.Option>
-                            <Select.Option value="1" >提交审核</Select.Option>
-                            <Select.Option value="2" >审核中</Select.Option>
-                            <Select.Option value="3" >审核通过</Select.Option>
-                            <Select.Option value="4" >审核未通过</Select.Option>
-                        </Select>
+                        
                         <Select placeholder="选择需求类别" style={{ width: 120 }}
                             value={this.state.dataCategory}
                             onChange={(e) => { this.setState({ dataCategory: e }) }}>

+ 1 - 4
js/component/manageCenter/demand/myTechDemand.jsx

@@ -341,7 +341,7 @@ const DemandList = React.createClass({
         };
     },
     tableRowClick(record, index) {
-    	console.log(record);
+    	
         this.state.RowData = record;
         if(index!=undefined){
         	this.setState({
@@ -474,9 +474,6 @@ const DemandList = React.createClass({
                     <Input placeholder="关键字"
                         value={this.state.keyword}
                         onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
-                    <Input placeholder="雇主名称"
-                        value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
                     <Radio.Group value={this.state.searchType} onChange={(e) => {
                         this.setState({ searchType: e.target.value })
                     }}>

+ 1 - 4
js/component/manageCenter/demand/techDemand.jsx

@@ -443,7 +443,7 @@ const DemandList = React.createClass({
                             showUploadList={false}
                             onChange={(info) => {
                                 if (info.file.status !== 'uploading') {
-                                    console.log(info.file, info.fileList);
+                                   
                                 }
                                 if (info.file.status === 'done') {
                                     if (!info.file.response.error.length) {
@@ -473,9 +473,6 @@ const DemandList = React.createClass({
                     <Input placeholder="关键字"
                         value={this.state.keyword}
                         onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
-                    <Input placeholder="雇主名称"
-                        value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
                     <Radio.Group value={this.state.searchType} onChange={(e) => {
                         this.setState({ searchType: e.target.value })
                     }}>

+ 1 - 24
js/component/manageCenter/demand/techDemandDesc.jsx

@@ -462,30 +462,7 @@ const DemandDetailShow = Form.create()(React.createClass({
                         </FormItem>
                     </div>
                     <div className="clearfix">
-                        <FormItem className="half-item"
-                            {...formItemLayout}
-                            label="是否发布" >
-                            {(() => {
-                                switch (theData.releaseStatus) {
-                                    case "0":
-                                        return <span>未发布</span>;
-                                    case "1":
-                                        return <div>
-                                            <span>已发布</span>
-                                            <Button style={{ marginLeft: '10px' }} onClick={() => { this.setState({ releaseSubmitVisible: true }); }}>撤消发布</Button>
-                                            <Modal maskClosable={false} title="确认"
-                                                visible={this.state.releaseSubmitVisible}
-                                                width='300px'
-                                                footer={null}
-                                                onCancel={() => { this.setState({ releaseSubmitVisible: false }) }} >
-                                                <span>确认要撤销发布吗?</span>
-                                                <Button className="modal-submit" type="primary" onClick={this.offShelf} >确认</Button>
-                                                <Button className="modal-submit" type="ghost" onClick={() => { this.setState({ releaseSubmitVisible: false }) }}>取消</Button>
-                                            </Modal>
-                                        </div>;
-                                }
-                            })()}
-                        </FormItem>
+                       
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="发布时间" >

+ 0 - 3
js/component/manageCenter/demand/techDemandQuery.jsx

@@ -473,9 +473,6 @@ const DemandList = React.createClass({
                     <Input placeholder="关键字"
                         value={this.state.keyword}
                         onChange={(e) => { this.setState({ keyword: e.target.value }); }} />
-                    <Input placeholder="雇主名称"
-                        value={this.state.searchName}
-                        onChange={(e) => { this.setState({ searchName: e.target.value }); }} />
                     <Radio.Group value={this.state.searchType} onChange={(e) => {
                         this.setState({ searchType: e.target.value })
                     }}>

+ 1 - 24
js/component/manageCenter/demand/techDemandQueryDesc.jsx

@@ -463,30 +463,7 @@ const DemandDetailShow = Form.create()(React.createClass({
                         </FormItem>
                     </div>
                     <div className="clearfix">
-                        <FormItem className="half-item"
-                            {...formItemLayout}
-                            label="是否发布" >
-                            {(() => {
-                                switch (theData.releaseStatus) {
-                                    case "0":
-                                        return <span>未发布</span>;
-                                    case "1":
-                                        return <div>
-                                            <span>已发布</span>
-                                            <Button style={{ marginLeft: '10px' }} onClick={() => { this.setState({ releaseSubmitVisible: true }); }}>撤消发布</Button>
-                                            <Modal maskClosable={false} title="确认"
-                                                visible={this.state.releaseSubmitVisible}
-                                                width='300px'
-                                                footer={null}
-                                                onCancel={() => { this.setState({ releaseSubmitVisible: false }) }} >
-                                                <span>确认要撤销发布吗?</span>
-                                                <Button className="modal-submit" type="primary" onClick={this.offShelf} >确认</Button>
-                                                <Button className="modal-submit" type="ghost" onClick={() => { this.setState({ releaseSubmitVisible: false }) }}>取消</Button>
-                                            </Modal>
-                                        </div>;
-                                }
-                            })()}
-                        </FormItem>
+                        
                         <FormItem className="half-item"
                             {...formItemLayout}
                             label="发布时间" >

+ 11 - 11
js/component/manageCenter/idea/content.jsx

@@ -120,19 +120,11 @@ class Content extends Component {
                     });
                 });
                 break;
-            case 'techPolicyAudit': //科技政策审核
-                require.ensure([], () => {
-                    const Module = require('../module').default;
-                    this.setState({
-                        component: <Module />,
-                    });
-                });
-                break;
-            case 'techPolicyPublish': //科技政策发布
+           	case 'techPolicyPublish': //科技政策发布
                 require.ensure([], () => {
-                    const Module = require('../module').default;
+                    const TechPolicyPublishs = require('./policy/techPolicyPublishs').default;
                     this.setState({
-                        component: <Module />,
+                        component: <TechPolicyPublishs />,
                     });
                 });
                 break; 
@@ -144,6 +136,14 @@ class Content extends Component {
                     });
                 });
                 break;
+            case 'techPolicyAudit': //科技政策审核
+                require.ensure([], () => {
+                    const TechPolicyAudits = require('./policy/techPolicyAudits').default;
+                    this.setState({
+                        component: <TechPolicyAudits />,
+                    });
+                });
+                break;
             //科技活动   
             case 'techActivityManage': //科技政策管理
                 require.ensure([], () => {

+ 5 - 1
js/component/manageCenter/idea/policy/inquiry.jsx

@@ -228,30 +228,35 @@ const Inquiry=React.createClass({
 				
 			})
 			this.reset();
+			this.loadData(1,1);
 		}
 		if(e == 2) {
 			this.setState({
 				
 			})
 			this.reset();
+			this.loadData(1,2);
 		}
 		if(e == 3) {
 			this.setState({
 				
 			})
 			this.reset();
+			this.loadData(1,3);
 		}
 		if(e == 4) {
 			this.setState({
 				
 			})
 			this.reset();
+			this.loadData(1,4);
 		}
 		if(e == 5) {
 			this.setState({
 				
 			})
 			this.reset();
+			this.loadData(1,5);
 		}
 	},
 	submit() {
@@ -343,7 +348,6 @@ const Inquiry=React.createClass({
         this.state.endDate = undefined;
         this.state.searchSource = undefined;
         this.state.searchHot = undefined;
-        this.loadData(1,this.state.callnub);
     },
      cleanCache(sign) {
         this.setState({

+ 56 - 1
js/component/manageCenter/idea/policy/manage.jsx

@@ -285,6 +285,7 @@ const Manage=React.createClass({
             data: {
                 id: this.state.RowData.id || null, //主键,如果不填主键则为新增记录,填主键则为更新
                 title: this.state.RowData.title,
+                auditStatus:0,
                 titleImg: this.state.RowData.titleImg,
                 author: this.state.RowData.author,
                 type: this.state.callnubs,
@@ -292,6 +293,59 @@ const Manage=React.createClass({
                 source: this.state.RowData.source,
                 sourceUrl: this.state.RowData.sourceUrl,
                 summary: this.state.RowData.summary,
+                releaseStatus: this.state.RowData.releaseStatus,
+                content: this.state.RowData.content,
+                createTimeFormattedDate: this.state.RowData.createTimeFormattedDate,                   
+                provinceId: this.state.RowData.provinceId, 
+            },                      
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('保存成功!');
+                    this.setState({ visible: false });
+                    this.loadData(1,this.state.callnub);
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    submits() {
+        if (!this.state.RowData.title) {
+            message.warning('必须填写一个标题!');
+            return;
+        };
+        if (!this.state.RowData.createTimeFormattedDate) {
+            message.warning('必须选择一个发布时间!');
+            return;
+        };
+        if (!this.state.RowData.author) {
+            message.warning('必须填写一个作者!');
+            return;
+        };
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + (this.state.RowData.id ? '/api/admin/news/update' : '/api/admin/news/add'),
+            data: {
+                id: this.state.RowData.id || null, //主键,如果不填主键则为新增记录,填主键则为更新
+                title: this.state.RowData.title,
+                auditStatus:1,
+                titleImg: this.state.RowData.titleImg,
+                author: this.state.RowData.author,
+                type: this.state.callnubs,
+                hot: this.state.RowData.hot || 0,          
+                source: this.state.RowData.source,
+                sourceUrl: this.state.RowData.sourceUrl,
+                summary: this.state.RowData.summary,
+                releaseStatus: this.state.RowData.releaseStatus,
                 content: this.state.RowData.content,
                 createTimeFormattedDate: this.state.RowData.createTimeFormattedDate,                   
                 provinceId: this.state.RowData.provinceId, 
@@ -591,7 +645,8 @@ const Manage=React.createClass({
                             handleRichText={(value) => { this.state.RowData.content = value; }}
                             visible={this.state.visible} />
                         <div className="modal-box">
-                            <Button type="primary" onClick={this.submit}>提交</Button>
+                            <Button type="primary" onClick={this.submit}>保存草稿</Button>
+                            <Button type="primary" onClick={this.submits}>提交审核</Button>
                             <Button type="ghost" onClick={() => { this.setState({ visible: false }) }}>取消</Button>
                         </div>
                     </Spin>

+ 630 - 0
js/component/manageCenter/idea/policy/techPolicyAudits.jsx

@@ -0,0 +1,630 @@
+import React from 'react';
+import '../../leftTab.less';
+import ReactDom from 'react-dom';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import Editors from '../../../richTextEditors'
+import '../content.less';
+import moment from 'moment';
+import { citySelect,provinceList,areaSelect,provinceSelect,addressList} from '../../../NewDicProvinceList';
+import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload,Popconfirm,AutoComplete,Tabs,Checkbox,Tree,Cascader} from 'antd';
+import {patternOrganization,conditionOrganization,intentionalService,messageType,designatedObjects,socialAttributeS,industry,socialAttribute,industryS,designatedObjectse,auditStatusL} from '../../../dataDic.js';
+import {beforeUpload, getBase64,getprovince} from '../../../tools.js';
+const TabPane = Tabs.TabPane;
+const TreeNodet = Tree.TreeNode;
+const CheckboxGroup = Checkbox.Group;
+const Avatar = React.createClass({
+    getInitialState() {
+        return {
+            imageUrl: ''
+        }
+    },
+    handleChange(info) {
+        if (info.file.status === 'done') {
+            // Get this url from response in real world.
+            getBase64(info.file.originFileObj, imageUrl => this.setState({ imageUrl }));
+            this.props.urlData(info.file.response.data);
+        }
+    },
+    componentWillReceiveProps(nextProps) {
+        if (this.props.visible && !nextProps.visible) {
+            this.state.imageUrl = null;
+        };
+    },
+    render() {
+        const imageUrl = this.state.imageUrl;
+        return (
+            <Upload
+                className="avatar-uploader"
+                name={this.props.name}
+                showUploadList={false}
+                action={globalConfig.context + "/api/admin/news/upload"}
+                data={{ 'sign': 'news_title_picture' }}
+                beforeUpload={beforeUpload}
+                onChange={this.handleChange} >
+                {
+                    (imageUrl || this.props.imageUrl) ?
+                        <img src={imageUrl || this.props.imageUrl} role="presentation" id={this.props.name} /> :
+                        <Icon type="plus" className="avatar-uploader-trigger" />
+                }
+            </Upload>
+        );
+    }
+});
+const Inquiry=React.createClass({
+	loadData(pageNo, theType) {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/news/list',
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                type: theType || 1, //新闻类型
+                auditStatus:1,//审核状态
+                title: this.state.searchTitle,
+                author: this.state.searchAuthor,
+                startCreateTime: this.state.startDate, //新闻开始时间 yyyy-MM-dd
+                endCreateTime: this.state.endDate, //新闻结束时间 yyyy-MM-dd
+                source: this.state.searchSource,
+                hot: this.state.searchHot, //是否放在首页                    
+            },
+            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];
+                        theArr.push({
+                            key: i,
+                            id: thisdata.id ? thisdata.id.toString() : null,
+                            createTime: thisdata.createTime,
+                            editTime: thisdata.editTime,
+                            title: thisdata.title,
+                            titleImg: thisdata.titleImg,
+                            author: thisdata.author,
+                            type: thisdata.type,
+                            hot: thisdata.hot,                                                       
+                            source: thisdata.source,
+                            sourceUrl: thisdata.sourceUrl,
+                            summary: thisdata.summary,
+                            content: thisdata.content,
+                            createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                            
+                        });
+                    };
+                    this.state.pagination.current = data.data.pageNo;
+                    this.state.pagination.total = data.data.totalCount;
+                };
+                this.setState({
+                    tableData: theArr,
+                    pagination: this.state.pagination
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    loadDetailData() {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/news/detail',
+            data: {
+                id: this.state.RowData.id //新闻主键ID(数字类型,非字符串)
+            },
+            success: function (data) {            	
+                let theObj = {};
+                if (!data.data) {               	      			
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }                   
+                } else {
+                    theObj = data.data;  
+                  if(theObj.provinceId==null||theObj.provinceId==''){
+                 	theObj.provinceId=11
+                 }
+                };
+                this.setState({
+                    RowData: theObj,
+                    
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    getInitialState() {
+        return {
+            loading: false,
+            visible: false,
+            callnub:'1',
+            selectedRowKeys: [],
+            selectedRows: [],
+            keysObj: {},
+            RowData: {},
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page,this.state.callnub);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
+            columns: [
+                {
+                    title: '标题',
+                    dataIndex: 'title',
+                    key: 'title',
+                    width: '20%'
+                }, {
+                    title: '发布时间',
+                    dataIndex: 'createTimeFormattedDate',
+                    key: 'createTimeFormattedDate',
+                }, {
+                    title: '作者',
+                    dataIndex: 'author',
+                    key: 'author',
+                }, {
+                    title: '来源',
+                    dataIndex: 'source',
+                    key: 'source',
+                }, {
+                    title: '简介',
+                    dataIndex: 'summary',
+                    key: 'summary',
+                    width: '50%'
+                }
+            ],
+            list:provinceList,
+            tableData: []
+        };
+    },
+    tableRowClick(record, index) {
+        this.state.RowData = record;
+        this.loadDetailData();
+        this.setState({
+            visible: true
+        });
+    },
+    componentWillMount() {
+        this.loadData(1,1);
+    },
+    componentWillReceiveProps(nextProps) {
+        if (this.props.newsType != nextProps.newsType) {
+            this.state.searchTitle = undefined;
+            this.state.searchAuthor = undefined;
+            this.state.startDate = undefined;
+            this.state.endDate = undefined;
+            this.state.searchSource = undefined;
+            this.state.searchHot = undefined;         
+            this.loadData(1, nextProps.newsType);
+        };
+    },
+    callback(e) {
+		this.setState({
+			callnub: e,
+		})
+		if(e == 1) {
+			this.loadData(1,1);
+			this.setState({
+				
+			})
+			this.reset();
+		}
+		if(e == 2) {
+			this.loadData(1,2);
+			this.setState({
+				
+			})
+			this.reset();
+		}
+		if(e == 3) {
+			this.loadData(1,3);
+			this.setState({
+				
+			})
+			this.reset();
+		}
+		if(e == 4) {
+			this.loadData(1,4);
+			this.setState({
+				
+			})
+			this.reset();
+		}
+		if(e == 5) {
+			this.loadData(1,5);
+			this.setState({
+				
+			})
+			this.reset();
+		}
+	},
+	submit() {
+        if (!this.state.RowData.title) {
+            message.warning('必须填写一个标题!');
+            return;
+        };
+        if (!this.state.RowData.createTimeFormattedDate) {
+            message.warning('必须选择一个发布时间!');
+            return;
+        };
+        if (!this.state.RowData.author) {
+            message.warning('必须填写一个作者!');
+            return;
+        };
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + (this.state.RowData.id ? '/api/admin/news/update' : '/api/admin/news/add'),
+            data: {
+                id: this.state.RowData.id || null, //主键,如果不填主键则为新增记录,填主键则为更新
+                title: this.state.RowData.title,
+                titleImg: this.state.RowData.titleImg,
+                author: this.state.RowData.author,
+                type: this.state.callnub,
+                hot: this.state.RowData.hot || 0,          
+                source: this.state.RowData.source,
+                sourceUrl: this.state.RowData.sourceUrl,
+                summary: this.state.RowData.summary,
+                content: this.state.RowData.content,
+                createTimeFormattedDate: this.state.RowData.createTimeFormattedDate,                   
+                provinceId: this.state.RowData.provinceId, 
+            },                      
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('保存成功!');
+                    this.setState({ visible: false });
+                    this.loadData(1,this.state.callnub);
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+	//审核专家通过功能
+	delectRow() {
+		let deletedIds;
+		let rowItem;
+		for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
+			rowItem = this.state.selectedRows[idx];
+			if(rowItem.id) {
+				deletedIds = rowItem.id;
+			};
+			
+		};
+		this.setState({
+			selectedRowKeys: [],
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/news/update",
+			data: {
+				id: deletedIds, //审核通过的ID  
+				auditStatus:2,
+				title: rowItem.title,
+                titleImg: rowItem.titleImg,
+                author: rowItem.author,
+                type: rowItem.type,
+                hot: rowItem.hot || 0,          
+                source:rowItem.source,
+                sourceUrl: rowItem.sourceUrl,
+                summary: rowItem.summary,
+                content:rowItem.content,
+                createTimeFormattedDate: rowItem.createTimeFormattedDate,                   
+                provinceId: rowItem.provinceId, 
+			}
+		}).done(function(data) {
+			if(!data.error.length) {
+				message.success('已成功通过审核!');
+				this.setState({
+					loading: false,
+				});
+			} else {
+				message.warning(data.error[0].message);
+			};
+			this.loadData();
+		}.bind(this));
+	},
+	//审核专家不通过功能
+	//审核专家通过功能
+	delectRows() {
+		let deletedIds;
+		let rowItem;
+		for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
+			rowItem = this.state.selectedRows[idx];
+			if(rowItem.id) {
+				deletedIds = rowItem.id;
+			};
+		};
+		this.setState({
+			selectedRowKeys: [],
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/news/update",
+			data: {
+				id: deletedIds, //审核通过的ID  
+				auditStatus:3,
+				title: rowItem.title,
+                titleImg: rowItem.titleImg,
+                author: rowItem.author,
+                type: rowItem.type,
+                hot: rowItem.hot || 0,          
+                source:rowItem.source,
+                sourceUrl: rowItem.sourceUrl,
+                summary: rowItem.summary,
+                content:rowItem.content,
+                createTimeFormattedDate: rowItem.createTimeFormattedDate,                   
+                provinceId: rowItem.provinceId, 
+			}
+		}).done(function(data) {
+			if(!data.error.length) {
+				message.success('已成功通过审核!');
+				this.setState({
+					loading: false,
+				});
+			} else {
+				message.warning(data.error[0].message);
+			};
+			this.loadData();
+		}.bind(this));
+	},
+    reset() {
+        this.state.searchTitle = undefined;
+        this.state.searchAuthor = undefined;
+        this.state.startDate = undefined;
+        this.state.endDate = undefined;
+        this.state.searchSource = undefined;
+        this.state.searchHot = undefined;
+        },
+     cleanCache(sign) {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/news/cleanCache',
+            data: {
+                'cacheKey': sign
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('清除缓存成功!');
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    clearCache() {
+        if (!this.state.searchKey) {
+            message.warning('必须选择一个位置!');
+            return;
+        };
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/banners/clearCache',
+            data: {
+                key: this.state.searchKey  // 位置标示,必填
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('更新缓存成功!');
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+	render(){
+		const rowSelection = {
+            selectedRowKeys: this.state.selectedRowKeys,
+            onChange: (selectedRowKeys, selectedRows) => {
+                this.setState({
+                    selectedRows: selectedRows.slice(-1),
+                    selectedRowKeys: selectedRowKeys.slice(-1)
+                });
+            }
+        };
+        const hasSelected = this.state.selectedRowKeys.length > 0;
+        return(
+			 <div className="admin-content" >
+				 <div className="admin-content-search">
+				 	
+	                <Input placeholder="标题" style={{ width: 200 ,marginBottom:'10px',marginRight:'10px'}}
+	                    value={this.state.searchTitle}
+	                    onChange={(e) => { this.setState({ searchTitle: e.target.value }); }} />
+	                <Input placeholder="作者" style={{ width: 100 ,marginRight:'10px'}}
+	                    value={this.state.searchAuthor}
+	                    onChange={(e) => { this.setState({ searchAuthor: e.target.value }); }} />
+	                <Input placeholder="来源" style={{ width: 100 ,marginRight:'10px'}}
+	                    value={this.state.searchSource}
+	                    onChange={(e) => { this.setState({ searchSource: e.target.value }); }} />                                                   
+	                {this.props.newsType == 2 || this.props.newsType == 3 ? <Select placeholder="显示在首页"
+	                    style={{ width: 100,marginRight:'10px' }}
+	                    value={this.state.searchHot}
+	                    onChange={(e) => { this.setState({ searchHot: e }) }}>
+	                    <Select.Option value="0" >不显示</Select.Option>
+	                    <Select.Option value="1" >显示</Select.Option>
+	                </Select> : <span></span>}
+	                <span style={{marginRight:'10px'}}>发布时间</span>
+	                <DatePicker style={{ width: 110,marginRight:'10px' }}
+	                    format="YYYY-MM-DD"
+	                    placeholder="选择开始时间"
+	                    value={this.state.startDate ? moment(this.state.startDate, "YYYY-MM-DD") : undefined}
+	                    onChange={(t, str) => {
+	                        this.setState({ startDate: str });
+	                    }} />
+	                <span style={{marginRight:'10px'}}>到</span>
+	                <DatePicker style={{ width: 110 ,marginRight:'10px'}}
+	                    format="YYYY-MM-DD"
+	                    placeholder="选择结束时间"
+	                    value={this.state.endDate ? moment(this.state.endDate, "YYYY-MM-DD") : undefined}
+	                    onChange={(t, str) => {
+	                        this.setState({ endDate: str });
+	                    }} />
+	                <Button type="primary" onClick={() => { this.loadData(1,this.state.callnub) }} style={{marginRight:'10px'}}>搜索</Button>
+	                <Button onClick={this.reset} style={{marginRight:'10px'}}>重置</Button>
+	                <Button type="ghost" onClick={this.clearCache}>清除缓存</Button>
+	                {adminData.isSuperAdmin?<Button type='primary' style={{marginRight:'10px' ,marginLeft:'10px',display:adminData.isSuperAdmin?'inline-block':'none'}}
+	                        disabled={!hasSelected} 
+	                        onClick={this.delectRow}>审核通过</Button>:''}
+					{adminData.isSuperAdmin?<Button type='primary' style={{marginRight:'10px' ,marginLeft:'10px',display:adminData.isSuperAdmin?'inline-block':'none'}}
+	                        disabled={!hasSelected} 
+	                        onClick={this.delectRows}>审核不通过</Button>:''}
+	            </div>
+				<div className="clearfix" style={{marginLeft:'20px'}}>
+				    <Tabs onChange={this.callback} type="card" activeKey={this.state.callnub} style={{paddingLeft:'15px',paddingRight:'15px',marginRight:'20px'}}>
+				         <TabPane tab="科技快讯" key="1" ></TabPane>
+						 <TabPane tab="交易问题" key="2"></TabPane>
+						 <TabPane tab="技淘动态" key="3"></TabPane>
+						 <TabPane tab="国家政策" key="4"></TabPane>
+						 <TabPane tab="地方政策" key="5"></TabPane>
+				    </Tabs>
+				</div>
+				<Spin spinning={this.state.loading}>
+                    <Table className="no-all-select" columns={this.state.columns}
+                        dataSource={this.state.tableData}
+                        pagination={this.state.pagination}
+                        rowSelection={rowSelection}
+                        onRowClick={this.tableRowClick} />
+                </Spin>
+                <Modal title="新闻详情" width={1000} className="news-modal"
+                    visible={this.state.visible}
+                    maskClosable={false}
+                    footer={null}
+                    afterClose={() => { this.state.RowData = {}; }}
+                    onCancel={() => { this.setState({ visible: false }) }} >
+                    <Spin spinning={this.state.loading}>
+                        <div className="clearfix">
+                            <div className="modal-box">
+                                <span className="modal-box-title">新闻标题 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.title}</span>
+                                </div>
+                            </div>
+                            <div className="modal-box">
+                                <span className="modal-box-title">简介 : </span>
+                                <div className="modal-box-detail">
+                                    <span>{this.state.RowData.summary}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box">
+                                <span className="modal-box-title">来源:</span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.source}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box">
+                                <span className="modal-box-title">来源链接 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.sourceUrl}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box" style={{ position: 'absolute', right: '0', width: '480px' }}>
+                                <span className="modal-box-title">标题图片</span>
+                                <div className="modal-box-detail clearfix" style={{ width: '360px' }}>
+                                    <Avatar sign={'news_title_picture'} visible={this.state.visible}
+                                        imageUrl={this.state.RowData.titleImg ? (globalConfig.avatarHost + "/upload" + this.state.RowData.titleImg) : null}
+                                        urlData={(url) => { this.state.RowData.titleImg = url }} />
+                                </div>
+                            </div>
+                        </div>
+                        <div className="clearfix">
+                            <div className="modal-box news-box">
+                                <span className="modal-box-title">作者 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.author}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box news-box">
+                                <span className="modal-box-title">发布时间 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.createTimeFormattedDate}</span>
+                                    
+                                </div>
+                            </div>   	                           
+                            {this.props.newsType == 2 || this.props.newsType == 3 ? <div className="modal-box news-box">
+                                <span className="modal-box-title">发布在首页</span>
+                                <div className="modal-box-detail">
+                                    <Radio.Group value={this.state.RowData.hot} onChange={(e) => {
+                                        this.state.RowData.hot = e.target.value;
+                                        this.setState({ RowData: this.state.RowData });
+                                    }} >
+                                        <Radio value={0}>否</Radio>
+                                        <Radio value={1}>是</Radio>
+                                    </Radio.Group>
+                                </div>
+                            </div> : <div></div>}
+                        </div>
+                        <div className="modal-box">
+                            <span className="modal-box-title">选择省份 : </span> 
+                            <span>{getprovince(this.state.RowData.provinceId)}</span>
+                            
+                        </div>
+                        <Editors textContent={this.state.RowData.content}
+                            uploadUrl={'/api/admin/news/upload'}
+                            uploadSign={'news_content_picture'}
+                            handleRichText={(value) => { this.state.RowData.content = value; }}
+                            visible={this.state.visible} readonly/>
+                        
+                    </Spin>
+                </Modal>
+			</div>
+		)
+	}
+})
+
+export default Inquiry;

+ 635 - 0
js/component/manageCenter/idea/policy/techPolicyPublishs.jsx

@@ -0,0 +1,635 @@
+import React from 'react';
+import '../../leftTab.less';
+import ReactDom from 'react-dom';
+import ajax from 'jquery/src/ajax/xhr.js';
+import $ from 'jquery/src/ajax';
+import Editors from '../../../richTextEditors'
+import '../content.less';
+import moment from 'moment';
+import { citySelect,provinceList,areaSelect,provinceSelect,addressList} from '../../../NewDicProvinceList';
+import { Form,Radio, Icon, Button, Input, Select, Spin, Table, Switch, message, DatePicker, Modal, Upload,Popconfirm,AutoComplete,Tabs,Checkbox,Tree,Cascader} from 'antd';
+import {patternOrganization,conditionOrganization,intentionalService,messageType,designatedObjects,socialAttributeS,industry,socialAttribute,industryS,designatedObjectse,auditStatusL} from '../../../dataDic.js';
+import {beforeUpload, getBase64,getprovince} from '../../../tools.js';
+const TabPane = Tabs.TabPane;
+const TreeNodet = Tree.TreeNode;
+const CheckboxGroup = Checkbox.Group;
+const Avatar = React.createClass({
+    getInitialState() {
+        return {
+            imageUrl: ''
+        }
+    },
+    handleChange(info) {
+        if (info.file.status === 'done') {
+            // Get this url from response in real world.
+            getBase64(info.file.originFileObj, imageUrl => this.setState({ imageUrl }));
+            this.props.urlData(info.file.response.data);
+        }
+    },
+    componentWillReceiveProps(nextProps) {
+        if (this.props.visible && !nextProps.visible) {
+            this.state.imageUrl = null;
+        };
+    },
+    render() {
+        const imageUrl = this.state.imageUrl;
+        return (
+            <Upload
+                className="avatar-uploader"
+                name={this.props.name}
+                showUploadList={false}
+                action={globalConfig.context + "/api/admin/news/upload"}
+                data={{ 'sign': 'news_title_picture' }}
+                beforeUpload={beforeUpload}
+                onChange={this.handleChange} >
+                {
+                    (imageUrl || this.props.imageUrl) ?
+                        <img src={imageUrl || this.props.imageUrl} role="presentation" id={this.props.name} /> :
+                        <Icon type="plus" className="avatar-uploader-trigger" />
+                }
+            </Upload>
+        );
+    }
+});
+const Inquiry=React.createClass({
+	loadData(pageNo, theType) {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/news/list',
+            data: {
+                pageNo: pageNo || 1,
+                pageSize: this.state.pagination.pageSize,
+                type: theType || 1, //新闻类型
+                auditStatus:2,
+                title: this.state.searchTitle,
+                author: this.state.searchAuthor,
+                startCreateTime: this.state.startDate, //新闻开始时间 yyyy-MM-dd
+                endCreateTime: this.state.endDate, //新闻结束时间 yyyy-MM-dd
+                source: this.state.searchSource,
+                hot: this.state.searchHot, //是否放在首页                    
+            },
+            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];
+                        theArr.push({
+                            key: i,
+                            id: thisdata.id ? thisdata.id.toString() : null,
+                            createTime: thisdata.createTime,
+                            editTime: thisdata.editTime,
+                            title: thisdata.title,
+                            titleImg: thisdata.titleImg,
+                            author: thisdata.author,
+                            type: thisdata.type,
+                            hot: thisdata.hot,                                                       
+                            source: thisdata.source,
+                            sourceUrl: thisdata.sourceUrl,
+                            summary: thisdata.summary,
+                            content: thisdata.content,
+                            createTimeFormattedDate: thisdata.createTimeFormattedDate,
+                            releaseStatus: thisdata.releaseStatus,
+                        });
+                    };
+                    this.state.pagination.current = data.data.pageNo;
+                    this.state.pagination.total = data.data.totalCount;
+                };
+                this.setState({
+                    tableData: theArr,
+                    pagination: this.state.pagination
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    loadDetailData() {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/news/detail',
+            data: {
+                id: this.state.RowData.id //新闻主键ID(数字类型,非字符串)
+            },
+            success: function (data) {            	
+                let theObj = {};
+                if (!data.data) {               	      			
+                    if (data.error && data.error.length) {
+                        message.warning(data.error[0].message);
+                    }                   
+                } else {
+                    theObj = data.data;  
+                  if(theObj.provinceId==null||theObj.provinceId==''){
+                 	theObj.provinceId=11
+                 }
+                };
+                this.setState({
+                    RowData: theObj,
+                    
+                });
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    getInitialState() {
+        return {
+            loading: false,
+            visible: false,
+            callnub:'1',
+            selectedRowKeys: [],
+            selectedRows: [],
+            keysObj: {},
+            RowData: {},
+            pagination: {
+                defaultCurrent: 1,
+                defaultPageSize: 10,
+                showQuickJumper: true,
+                pageSize: 10,
+                onChange: function (page) {
+                    this.loadData(page,this.state.callnub);
+                }.bind(this),
+                showTotal: function (total) {
+                    return '共' + total + '条数据';
+                }
+            },
+            columns: [
+                {
+                    title: '标题',
+                    dataIndex: 'title',
+                    key: 'title',
+                    width: '20%'
+                }, {
+                    title: '发布时间',
+                    dataIndex: 'createTimeFormattedDate',
+                    key: 'createTimeFormattedDate',
+                }, {
+                    title: '作者',
+                    dataIndex: 'author',
+                    key: 'author',
+                }, {
+                    title: '来源',
+                    dataIndex: 'source',
+                    key: 'source',
+                }, {
+                    title: '简介',
+                    dataIndex: 'summary',
+                    key: 'summary',
+                    width: '50%'
+                }, {
+                    title: '发布操作',
+                    dataIndex: 'ee',
+                    key: 'ee',
+                    render: (text, record, index) => {
+                    	return <div>
+							{(!record.releaseStatus)?<Popconfirm title={'请确认发布【'+record.name+'】'} onConfirm={(e)=>{this.examineOK(record)}} okText="确认" cancelText="取消">
+							    <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="primary">发布</Button>                 
+							</Popconfirm>:
+							<Popconfirm title={'请确认撤销发布【'+record.name+'】'} onConfirm={(e)=>{this.examineCancel(record)}} okText="确认" cancelText="取消">
+							    <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="danger">撤销发布</Button>                 
+							</Popconfirm>}
+                        </div>
+					}
+                },
+            ],
+            list:provinceList,
+            tableData: []
+        };
+    },
+    //撤销发布
+    examineCancel(record){
+    	let api=0;
+    	this.examine(api,record);
+    },
+    //发布
+    examineOK(record){
+    	let api=1;
+    	this.examine(api,record);
+    },
+    examine(api,record) {
+		let deletedIds;
+		let rowItem;
+		for(let idx = 0; idx < this.state.selectedRows.length; idx++) {
+			rowItem = this.state.selectedRows[idx];
+			if(rowItem.id) {
+				deletedIds = rowItem.id;
+			};
+		};
+		console.log(record);
+		this.setState({
+			selectedRowKeys: [],
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + "/api/admin/news/update",
+			data: {
+				id: record.id, //审核通过的ID  
+				auditStatus:2,
+				releaseStatus:api,
+				title: record.title,
+                titleImg: record.titleImg,
+                author: record.author,
+                type: record.type,
+                hot: record.hot || 0,          
+                source:record.source,
+                sourceUrl: record.sourceUrl,
+                summary: record.summary,
+                content:record.content,
+                createTimeFormattedDate: record.createTimeFormattedDate,                   
+                provinceId: record.provinceId, 
+			}
+		}).done(function(data) {
+			if(!data.error.length) {
+				message.success('已成功发布!');
+				this.setState({
+					loading: false,
+				});
+			} else {
+				message.warning(data.error[0].message);
+			};
+			this.loadData();
+		}.bind(this));
+		
+	},
+    tableRowClick(record, index) {
+        this.state.RowData = record;
+        this.loadDetailData();
+        this.setState({
+            visible: true
+        });
+    },
+    componentWillMount() {
+        this.loadData(1,1);
+    },
+    componentWillReceiveProps(nextProps) {
+        if (this.props.newsType != nextProps.newsType) {
+            this.state.searchTitle = undefined;
+            this.state.searchAuthor = undefined;
+            this.state.startDate = undefined;
+            this.state.endDate = undefined;
+            this.state.searchSource = undefined;
+            this.state.searchHot = undefined;         
+            this.loadData(1, nextProps.newsType);
+        };
+    },
+    callback(e) {
+		this.setState({
+			callnub: e,
+		})
+		if(e == 1) {
+			this.setState({
+				
+			})
+			this.reset();
+			this.loadData(1,1);
+		}
+		if(e == 2) {
+			this.setState({
+				
+			})
+			this.reset();
+			this.loadData(1,2);
+		}
+		if(e == 3) {
+			this.setState({
+				
+			})
+			this.reset();
+			this.loadData(1,3);
+		}
+		if(e == 4) {
+			this.setState({
+				
+			})
+			this.reset();
+			this.loadData(1,4);
+		}
+		if(e == 5) {
+			this.setState({
+				
+			})
+			this.reset();
+			this.loadData(1,5);
+		}
+	},
+	submit() {
+        if (!this.state.RowData.title) {
+            message.warning('必须填写一个标题!');
+            return;
+        };
+        if (!this.state.RowData.createTimeFormattedDate) {
+            message.warning('必须选择一个发布时间!');
+            return;
+        };
+        if (!this.state.RowData.author) {
+            message.warning('必须填写一个作者!');
+            return;
+        };
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + (this.state.RowData.id ? '/api/admin/news/update' : '/api/admin/news/add'),
+            data: {
+                id: this.state.RowData.id || null, //主键,如果不填主键则为新增记录,填主键则为更新
+                title: this.state.RowData.title,
+                titleImg: this.state.RowData.titleImg,
+                author: this.state.RowData.author,
+                type: this.state.callnub,
+                hot: this.state.RowData.hot || 0,          
+                source: this.state.RowData.source,
+                sourceUrl: this.state.RowData.sourceUrl,
+                summary: this.state.RowData.summary,
+                content: this.state.RowData.content,
+                createTimeFormattedDate: this.state.RowData.createTimeFormattedDate,                   
+                provinceId: this.state.RowData.provinceId, 
+            },                      
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('保存成功!');
+                    this.setState({ visible: false });
+                    this.loadData(1,this.state.callnub);
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+	delectRow() {
+        let deletedIds = [];
+        for (let idx = 0; idx < this.state.selectedRows.length; idx++) {
+            let rowItem = this.state.selectedRows[idx];
+            if (rowItem.id) {
+                deletedIds.push(rowItem.id)
+            };
+        };
+        this.setState({
+            selectedRowKeys: [],
+            loading: deletedIds.length > 0
+        });
+        $.ajax({
+            method: "POST",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + "/api/admin/news/delete",
+            data: {
+                ids: deletedIds
+            }
+        }).done(function (data) {
+            if (data.error && data.error.length) {
+                message.warning(data.error[0].message);
+            } else {
+                message.success('删除成功!');
+            };
+            this.setState({
+                loading: false,
+            });
+            this.loadData(1,this.state.callnub);
+        }.bind(this));
+    },
+    reset() {
+        this.state.searchTitle = undefined;
+        this.state.searchAuthor = undefined;
+        this.state.startDate = undefined;
+        this.state.endDate = undefined;
+        this.state.searchSource = undefined;
+        this.state.searchHot = undefined;
+    },
+     cleanCache(sign) {
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "post",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/news/cleanCache',
+            data: {
+                'cacheKey': sign
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('清除缓存成功!');
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+    clearCache() {
+        if (!this.state.searchKey) {
+            message.warning('必须选择一个位置!');
+            return;
+        };
+        this.setState({
+            loading: true
+        });
+        $.ajax({
+            method: "get",
+            dataType: "json",
+            crossDomain: false,
+            url: globalConfig.context + '/api/admin/banners/clearCache',
+            data: {
+                key: this.state.searchKey  // 位置标示,必填
+            },
+            success: function (data) {
+                if (data.error && data.error.length) {
+                    message.warning(data.error[0].message);
+                } else {
+                    message.success('更新缓存成功!');
+                };
+            }.bind(this),
+        }).always(function () {
+            this.setState({
+                loading: false
+            });
+        }.bind(this));
+    },
+	render(){
+		const rowSelection = {
+            selectedRowKeys: this.state.selectedRowKeys,
+            onChange: (selectedRowKeys, selectedRows) => {
+                this.setState({
+                    selectedRows: selectedRows.slice(-1),
+                    selectedRowKeys: selectedRowKeys.slice(-1)
+                });
+            }
+        };
+        const hasSelected = this.state.selectedRowKeys.length > 0;
+        return(
+			 <div className="admin-content" >
+				 <div className="admin-content-search">
+				 	
+	                <Input placeholder="标题" style={{ width: 200 ,marginBottom:'10px',marginRight:'10px'}}
+	                    value={this.state.searchTitle}
+	                    onChange={(e) => { this.setState({ searchTitle: e.target.value }); }} />
+	                <Input placeholder="作者" style={{ width: 100 ,marginRight:'10px'}}
+	                    value={this.state.searchAuthor}
+	                    onChange={(e) => { this.setState({ searchAuthor: e.target.value }); }} />
+	                <Input placeholder="来源" style={{ width: 100 ,marginRight:'10px'}}
+	                    value={this.state.searchSource}
+	                    onChange={(e) => { this.setState({ searchSource: e.target.value }); }} />                                                   
+	                {this.props.newsType == 2 || this.props.newsType == 3 ? <Select placeholder="显示在首页"
+	                    style={{ width: 100,marginRight:'10px' }}
+	                    value={this.state.searchHot}
+	                    onChange={(e) => { this.setState({ searchHot: e }) }}>
+	                    <Select.Option value="0" >不显示</Select.Option>
+	                    <Select.Option value="1" >显示</Select.Option>
+	                </Select> : <span></span>}
+	                <span style={{marginRight:'10px'}}>发布时间</span>
+	                <DatePicker style={{ width: 110,marginRight:'10px' }}
+	                    format="YYYY-MM-DD"
+	                    placeholder="选择开始时间"
+	                    value={this.state.startDate ? moment(this.state.startDate, "YYYY-MM-DD") : undefined}
+	                    onChange={(t, str) => {
+	                        this.setState({ startDate: str });
+	                    }} />
+	                <span style={{marginRight:'10px'}}>到</span>
+	                <DatePicker style={{ width: 110 ,marginRight:'10px'}}
+	                    format="YYYY-MM-DD"
+	                    placeholder="选择结束时间"
+	                    value={this.state.endDate ? moment(this.state.endDate, "YYYY-MM-DD") : undefined}
+	                    onChange={(t, str) => {
+	                        this.setState({ endDate: str });
+	                    }} />
+	                <Button type="primary" onClick={() => { this.loadData(1,this.state.callnub) }} style={{marginRight:'10px'}}>搜索</Button>
+	                <Button onClick={this.reset} style={{marginRight:'10px'}}>重置</Button>
+	                <Button type="ghost" onClick={this.clearCache}>清除缓存</Button>
+	            </div>
+				<div className="clearfix" style={{marginLeft:'20px'}}>
+				    <Tabs onChange={this.callback} type="card" activeKey={this.state.callnub} style={{paddingLeft:'15px',paddingRight:'15px',marginRight:'20px'}}>
+				         <TabPane tab="科技快讯" key="1" ></TabPane>
+						 <TabPane tab="交易问题" key="2"></TabPane>
+						 <TabPane tab="技淘动态" key="3"></TabPane>
+						 <TabPane tab="国家政策" key="4"></TabPane>
+						 <TabPane tab="地方政策" key="5"></TabPane>
+				    </Tabs>
+				</div>
+				<Spin spinning={this.state.loading}>
+                    <Table className="no-all-select" columns={this.state.columns}
+                        dataSource={this.state.tableData}
+                        pagination={this.state.pagination}
+                        rowSelection={rowSelection}
+                        onRowClick={this.tableRowClick} />
+                </Spin>
+                <Modal title="新闻详情" width={1000} className="news-modal"
+                    visible={this.state.visible}
+                    maskClosable={false}
+                    footer={null}
+                    afterClose={() => { this.state.RowData = {}; }}
+                    onCancel={() => { this.setState({ visible: false }) }} >
+                    <Spin spinning={this.state.loading}>
+                        <div className="clearfix">
+                            <div className="modal-box">
+                                <span className="modal-box-title">新闻标题 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.title}</span>
+                                </div>
+                            </div>
+                            <div className="modal-box">
+                                <span className="modal-box-title">简介 : </span>
+                                <div className="modal-box-detail">
+                                    <span>{this.state.RowData.summary}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box">
+                                <span className="modal-box-title">来源:</span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.source}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box">
+                                <span className="modal-box-title">来源链接 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.sourceUrl}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box" style={{ position: 'absolute', right: '0', width: '480px' }}>
+                                <span className="modal-box-title">标题图片</span>
+                                <div className="modal-box-detail clearfix" style={{ width: '360px' }}>
+                                    <Avatar sign={'news_title_picture'} visible={this.state.visible}
+                                        imageUrl={this.state.RowData.titleImg ? (globalConfig.avatarHost + "/upload" + this.state.RowData.titleImg) : null}
+                                        urlData={(url) => { this.state.RowData.titleImg = url }} />
+                                </div>
+                            </div>
+                        </div>
+                        <div className="clearfix">
+                            <div className="modal-box news-box">
+                                <span className="modal-box-title">作者 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.author}</span>
+                                    
+                                </div>
+                            </div>
+                            <div className="modal-box news-box">
+                                <span className="modal-box-title">发布时间 : </span>
+                                <div className="modal-box-detail">
+                                	<span>{this.state.RowData.createTimeFormattedDate}</span>
+                                    
+                                </div>
+                            </div>   	                           
+                            {this.props.newsType == 2 || this.props.newsType == 3 ? <div className="modal-box news-box">
+                                <span className="modal-box-title">发布在首页</span>
+                                <div className="modal-box-detail">
+                                    <Radio.Group value={this.state.RowData.hot} onChange={(e) => {
+                                        this.state.RowData.hot = e.target.value;
+                                        this.setState({ RowData: this.state.RowData });
+                                    }} >
+                                        <Radio value={0}>否</Radio>
+                                        <Radio value={1}>是</Radio>
+                                    </Radio.Group>
+                                </div>
+                            </div> : <div></div>}
+                        </div>
+                        <div className="modal-box">
+                            <span className="modal-box-title">选择省份 : </span> 
+                            <span>{getprovince(this.state.RowData.provinceId)}</span>
+                            
+                        </div>
+                        <Editors textContent={this.state.RowData.content}
+                            uploadUrl={'/api/admin/news/upload'}
+                            uploadSign={'news_content_picture'}
+                            handleRichText={(value) => { this.state.RowData.content = value; }}
+                            visible={this.state.visible} readonly/>
+                        
+                    </Spin>
+                </Modal>
+			</div>
+		)
+	}
+})
+
+export default Inquiry;

File diff suppressed because it is too large
+ 1575 - 0
js/component/manageCenter/set/business/businessQuery.jsx


+ 8 - 0
js/component/manageCenter/set/content.jsx

@@ -55,6 +55,14 @@ class Content extends Component {
                 	});
                 });
             break; 
+            case 'businessQuery':
+            require.ensure([], () => {
+                const BusinessQuery = require('./business/businessQuery').default;
+                this.setState({
+                    component:<BusinessQuery />	    
+                	});
+                });
+            break; 
             case 'user':
                 require.ensure([], () => {
                     const User = require('./userManagementS/user').default;