浏览代码

下级搜索

liting2017 7 年之前
父节点
当前提交
602cf17c16

+ 164 - 32
js/component/manageCenter/servicesManage/projectOrder/projectManagement/projectManageDetaile.jsx

@@ -1,10 +1,11 @@
 import React from 'react';
-import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,Radio} from 'antd';
+import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,Radio,DatePicker} from 'antd';
 import ajax from 'jquery/src/ajax/xhr.js';
 import $ from 'jquery/src/ajax';
 import '../userMangagement.less';
 import {orderType} from '../../../../dataDic.js';
 import {getOrderType,getProjectState,getTaskStatus,getOrderChannel,getOrderState,getPaymentState ,getChangeState,getApprovedState} from '../../../../tools.js';
+import moment from 'moment';
 
 const MySettlementDetaile = Form.create()(React.createClass({
 	loadData(record) {
@@ -60,6 +61,8 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			orderSelect:false,
 			transferState:false,
 			orgCodeUrl:[],
+			lvState:true,
+			lvRadio:0,
 			customerArr:[],
 			checkedKeys: [],
             //派单
@@ -101,7 +104,7 @@ const MySettlementDetaile = Form.create()(React.createClass({
                     key: 'rrtk',
                     render:(text,record,index)=>{
                     	return (
-                    		<div>
+                    		<div style={{display:!this.props.queryProject?'block':'none'}}>
 								{record.taskStatus<=1&&<Popconfirm title={'您将删除项目任务 【'+record.commodityName+'】,系统将自动同步作废项目资料单,请确认!'} onConfirm={(e)=>{this.voidOperation(record)}} okText="确认" cancelText="取消">
 							   	   <Button style={{marginRight:'5px'}} onClick={(e) =>{ e.stopPropagation()}} type="danger">删除</Button>                 
 								</Popconfirm>}
@@ -260,6 +263,19 @@ const MySettlementDetaile = Form.create()(React.createClass({
             });
         }.bind(this));  
     },
+    //时间选择
+    selTime(e,index){
+    	this.setState({
+    		completeDate:e,
+    		selTime:index
+    	})
+    },
+    setTime(e,index){
+    	this.setState({
+    		signDate:e,
+    		setTime:index
+    	})
+    },
     //查看详情
     loaduser(record){
     	if(record){
@@ -281,11 +297,19 @@ const MySettlementDetaile = Form.create()(React.createClass({
                     thisData = {};
                 };
                 this.setState({
+                	signTime:thisData.signDate,
+                	completeTime:thisData.completeDate,
+                	signComment:thisData.signComment,
+                	completeComment:thisData.completeComment,
+	                completeDate:thisData.completeDate?moment(thisData.completeDate,'YYYY-MM-DD HH:mm:ss'):undefined,
+	                signDate:thisData.signDate?moment(thisData.signDate,'YYYY-MM-DD HH:mm:ss'):undefined,
                 	buyerId:thisData.uid,
 					id:record.id,
 					orderNok:thisData.orderNo,
 					orderList:thisData,
 					technicianName:thisData.technicianName, //任务负责人
+					selTime:'',
+					setTime:''
                 });                  
             }.bind(this),
        }).always(function () {
@@ -453,8 +477,13 @@ const MySettlementDetaile = Form.create()(React.createClass({
     		userDetaile:false,
     		distributionVisible:true,
     		transferState:false,
+    		lvState:true,
+    		distributionList:[]
     	});
-    	this.resetOrder();
+    	this.state.departmenttList=undefined;
+    	this.state.financeNameSearch='';
+    	this.state.lvRadio=0;
+    	this.contactList();
     },
     distributionCancel(){
     	this.setState({
@@ -468,40 +497,62 @@ const MySettlementDetaile = Form.create()(React.createClass({
     },
     //分配对象列表
     contactList(){
+    	this.setState({
+            loading: true
+        });
+    	let api = this.state.lvRadio==2?'/api/admin/superviser/adminList':'/api/admin/superviser/selectAdminByOrg'
         $.ajax({
             method: "get",
             dataType: "json",
             crossDomain: false,
-            url: globalConfig.context + '/api/admin/superviser/adminList',
-            data: {
+            url: globalConfig.context + api,
+            data: this.state.lvRadio==2?{
                 pageNo: 1,
                 pageSize: 99,
                 departmentId:this.state.departmenttList,
                 name:this.state.financeNameSearch,
+            }:{
+            	//subOrSame:!this.state.lvRadio?"SUB":"SAME"
             },
             success: function (data) {
+            	console.log(data)
                 let theArr = [];
                 if (!data.data) {
                     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,
-	                         userNo: thisdata.userNo,
-	                         name:thisdata.name,
-	                         departmentName:thisdata.departmentName,
-	                         departmentId:thisdata.departmentId,
-	                         position:thisdata.position,
-	                         mobile:thisdata.mobile,
-                        });
-                    };
-                  
+                	if(data.data.list){
+                		for (let i = 0; i < data.data.list.length; i++) {
+	                        let thisdata = data.data.list[i];
+	                        theArr.push({
+	                             key: i,
+		                         id: thisdata.id,
+		                         userNo: thisdata.userNo,
+		                         name:thisdata.name,
+		                         departmentName:thisdata.departmentName,
+		                         departmentId:thisdata.departmentId,
+		                         position:thisdata.position,
+		                         mobile:thisdata.mobile,
+	                        });
+                    	};
+                	}else{
+                		for (let i = 0; i < data.data.length; i++) {
+	                        let thisdata = data.data[i];
+	                        theArr.push({
+	                             key: i,
+		                         id: thisdata.id,
+		                         userNo: thisdata.userNo,
+		                         name:thisdata.name,
+		                         departmentName:thisdata.departmentName,
+		                         departmentId:thisdata.departmentId,
+		                         position:thisdata.position,
+		                         mobile:thisdata.mobile,
+	                        });
+                   		};
+                	}
+                    
                 };
-               
                 this.setState({
                     distributionList: theArr,
                 });
@@ -582,9 +633,12 @@ const MySettlementDetaile = Form.create()(React.createClass({
     resetOrder(){
     	this.state.departmenttList=undefined;
     	this.state.financeNameSearch='';
+    	this.state.lvRadio=0;
     	this.setState({
+    		lvState:true,
     		distributionList:[]
     	})
+    	this.contactList();
     },
     //添加任务
     addTask(){
@@ -759,13 +813,47 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			}
 		}.bind(this));
 	},
+	//保存详情
+	knotSave(){
+		this.setState({
+			loading: true
+		});
+		$.ajax({
+			method: "post",
+			dataType: "json",
+			crossDomain: false,
+			url: globalConfig.context + '/api/admin/techproject/updateProject',
+			data: {
+				contractId:this.props.datauser.id,
+				completeComment:this.state.completeComment,
+				signComment:this.state.signComment,
+				signDate:this.state.setTime?this.state.setTime:this.state.signTime,
+				completeDate:this.state.selTime?this.state.selTime:this.state.completeTime  
+			}
+		}).done(function(data) {
+			this.setState({
+				loading: false
+			});
+			if(!data.error.length) {
+				message.success('保存成功!');
+				this.handleOk()
+			} else {
+				message.warning(data.error[0].message);
+			}
+		}.bind(this));
+	},
 	//负责人转交
 	transfer(){
 		this.setState({
 			distributionVisible:true,
 			transferState:true,
+			lvState:true,
+    		distributionList:[]
 		});
-		this.resetOrder();
+		this.state.departmenttList=undefined;
+    	this.state.financeNameSearch='';
+    	this.state.lvRadio=0;
+		this.contactList();
 	},
 	/* -----变更操作开始----- */
 	//新建变更
@@ -927,6 +1015,21 @@ const MySettlementDetaile = Form.create()(React.createClass({
 		}.bind(this));
 	},
 	/*-----变更操作结束----*/
+	//派单阶级操作
+	lvRadioFn(e){
+		if(e.target.value==2){
+			this.setState({
+				lvRadio:e.target.value,
+				lvState:false
+			})
+		}else{
+			this.setState({
+				lvRadio:e.target.value,
+				lvState:true
+			})
+		}
+	},
+	
 	
 	tableRowClick(record, index) {
         this.setState({
@@ -1114,7 +1217,15 @@ const MySettlementDetaile = Form.create()(React.createClass({
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
 			                            label="立项时间" >  
-			                            <span>{orderDetaiel.signDate}</span>
+			                            {!this.props.queryProject&&orderDetaiel.projectStatus==2?
+			                            	<DatePicker style={{marginTop:'2px',width:'200px'}}
+										      showTime
+										      format="YYYY-MM-DD HH:mm:ss"
+										      placeholder="选择时间"
+										      value={this.state.signDate}
+										      onChange={(e,time)=>{this.setTime(e,time)}}
+										    />:
+			                            <span>{orderDetaiel.signDate}</span>}
 		                    		</FormItem>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
@@ -1126,15 +1237,24 @@ const MySettlementDetaile = Form.create()(React.createClass({
 								            labelCol={{ span: 4 }}
 								            wrapperCol={{ span: 16 }}
 								            label="立项说明" >
-							        		 <span>{orderDetaiel.signComment}</span>			                      
+							        		{!this.props.queryProject&&orderDetaiel.projectStatus==2?<Input type="textarea" placeholder="请输入立项说明" rows={4}  value={this.state.signComment} 
+													onChange={(e)=>{this.setState({signComment:e.target.value})}}/>:<span>{orderDetaiel.signComment}</span>}		                      
 								        </FormItem>
 							        </div>
 		                        </div>
 		                        <div className='clearfix'>
 		                    		<FormItem className="half-item"
 			                            {...formItemLayout}
-			                            label="结项日期" >  
-			                            <span>{orderDetaiel.completeDate}</span>
+			                            label="结项日期" > 
+			                            {!this.props.queryProject&&orderDetaiel.projectStatus==3?
+			                            	<DatePicker style={{marginTop:'2px',width:'200px'}}
+										      showTime
+										      format="YYYY-MM-DD HH:mm:ss"
+										      placeholder="选择时间"
+										      value={this.state.completeDate}
+										      onChange={(e,time)=>{this.selTime(e,time)}}
+										    />:
+			                            <span>{orderDetaiel.completeDate}</span>}
 		                    		</FormItem>
 		                    	</div>
 		                    	<div className='clearfix'>
@@ -1142,7 +1262,10 @@ const MySettlementDetaile = Form.create()(React.createClass({
 								            labelCol={{ span: 4 }}
 								            wrapperCol={{ span: 16 }}
 								            label="结项说明" >
-							        		<span>{orderDetaiel.completeComment}</span>			                      
+							        		{!this.props.queryProject&&orderDetaiel.projectStatus==3?<Input type="textarea" placeholder="请输入立项说明" rows={4}  value={this.state.completeComment} 
+													onChange={(e)=>{this.setState({completeComment:e.target.value})}}/>:
+													<span>{orderDetaiel.completeComment}</span>
+											}
 								        </FormItem>
 							        </div>
 		                    	<div className='clearfix'>
@@ -1187,9 +1310,14 @@ const MySettlementDetaile = Form.create()(React.createClass({
 				                            />
 				                    </Spin>
 					            </div>
-					            {!this.props.projectState?<div>
-					            </div>:
+					            {!this.props.projectState?<div style={{marginTop:'30px',paddingLeft:'160px'}}>
+					            	<div style={{display:orderDetaiel.projectStatus==3||orderDetaiel.projectStatus==2&&!this.props.queryProject?'block':'none'}}>
+					            		<Button type="primary" onClick={this.knotSave} style={{margin:'15px'}}>保存</Button>
+					           			<Button type="ghost" onClick={this.handleCancel}>返回</Button>
+					           		</div>
+					           </div>:
 					            <div style={{marginTop:'30px',paddingLeft:'100px'}}>
+					            	{orderDetaiel.projectStatus==3||orderDetaiel.projectStatus==2?<Button type="primary" onClick={this.knotSave} style={{margin:'15px'}}>保存</Button>:''} 
 					            	<Button type="danger" onClick={this.removeItem}>撤项</Button>  
 						            <Button type="primary" onClick={this.Knot} style={{margin:'15px'}}>结项</Button>
 						            <Button type="ghost" onClick={this.handleCancel}>返回</Button>
@@ -1417,7 +1545,11 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			            <Form layout="horizontal"  id="demand-form" style={{paddingBottom:'40px'}} >
 			                <Spin spinning={this.state.loading}>
 			                	<div>
-			                		<Select placeholder="部门"
+			                		<Radio.Group onChange={this.lvRadioFn} value={this.state.lvRadio}>
+								        <Radio value={0}>下级</Radio>
+								        <Radio value={2}>其他</Radio>
+								    </Radio.Group>
+			                		{!this.state.lvState&&<Select placeholder="部门"
 				                            style={{ width: 150 ,marginRight:'10px',marginLeft:'10px'}}
 				                            value={this.state.departmenttList}
 				                            onChange={(e) => { this.setState({ departmenttList: e }) }}>
@@ -1426,10 +1558,10 @@ const MySettlementDetaile = Form.create()(React.createClass({
 			                                            return <Select.Option key={item.id} >{item.name}</Select.Option>
 			                                    })
 			                                }
-				                    </Select>
-				                    <Input placeholder={this.state.transferState?"责任人":"咨询师"} style={{width:'150px',marginLeft:'10px'}}
+				                    </Select>}
+				                    {!this.state.lvState&&<Input placeholder={this.state.transferState?"责任人":"咨询师"} style={{width:'150px',marginLeft:'10px'}}
 				                        value={this.state.financeNameSearch}
-				                        onChange={(e) => { this.setState({ financeNameSearch: e.target.value }); }} />  
+				                        onChange={(e) => { this.setState({ financeNameSearch: e.target.value }); }} />}  
 				                    <Button type="primary" onClick={this.searchOrder} style={{marginLeft:'10px',marginRight:'10px'}}>搜索</Button>
 	                    			<Button onClick={this.resetOrder}>重置</Button>
 			                	</div>