|
@@ -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>
|