| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239 | import React from 'react';import { Radio, Icon, Button, AutoComplete,Cascader,Input, Select, Spin, Popconfirm, Table, Switch, message,Calendar , DatePicker, Upload, Form ,Modal,Tabs,Card ,Col} from 'antd';import ajax from 'jquery/src/ajax/xhr.js';import $ from 'jquery/src/ajax';import Jquery from 'jquery/dist/jquery.js';import moment from 'moment';import {boutique ,tepi,jiedian} from '@/dataDic.js';import { getLiquidationStatus,getApprovedState,getProcessStatus,splitUrl,getjiedian,getboutique,getCuikuan} from '@/tools.js';import './customer.less';const TabPane = Tabs.TabPane;const Dragger = Upload.Dragger;//图片组件const PicturesWall = React.createClass({	getInitialState() {		return {			previewVisible: false,			previewImage: '',			fileList: [],		}	},	handleCancel() {		this.setState({			previewVisible: false		})	},	handlePreview(file) {		this.setState({			previewImage: file.url || file.thumbUrl,			previewVisible: true,		});	},	handleChange(info) {		let fileList = info.fileList;		this.setState({			fileList		});		this.props.fileList(fileList);	},	componentWillReceiveProps(nextProps) {		this.state.fileList = nextProps.pictureUrl;		this.state.pojectApplicationUrl = undefined;	},	render() {		const {			previewVisible,			previewImage,			fileList		} = this.state;		const uploadButton = (			<div>                <Icon type="plus" />                <div className="ant-upload-text">点击上传</div>            </div>		);		return(			<div style={{display:"inline-block"}}>                <Upload                    action={globalConfig.context + "/api/admin/customer/uploadCustomerImg"}                    data={{ 'sign': '' }}                    listType="picture-card"                    fileList={fileList}                    onPreview={this.handlePreview}                    onChange={this.handleChange} >                    {fileList.length >= 8 ? null : uploadButton}                </Upload>                <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel}>                    <img alt="example" style={{ width: '100%' }} src={previewImage} />                </Modal>            </div>		);	}});const IntentionCustomer = Form.create()(React.createClass({	loadData(pageNo, apiUrl) {		this.setState({			visitModul:false,			loading: true,			ispage:pageNo,			modalVisible:false		});		$.ajax({			method: "get",			dataType: "json",			crossDomain: false,			url: globalConfig.context +"/api/admin/newOrder/orderNewList",			data: {				pageNo: pageNo || 1,				pageSize: this.state.pagination.pageSize,				specially: 2,//审核列表				name: this.state.customerName,//名称				orderNo: this.state.orderNo,//订单编号				starTime: this.state.releaseDate[0],//开始时间				endTime: this.state.releaseDate[1],//结束时间			},			success: function(data) {				let theArr = [];				if(data.error.length || 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];						let diqu=(thisdata.province==null?"":thisdata.province)+(thisdata.city==null?"":"-"+thisdata.city)+(thisdata.area==null?"":"-"+thisdata.area);						theArr.push({							 key: i,							 id: thisdata.id,//用户ID							 orderNo: thisdata.orderNo,//订单编号	                         totalAmount:thisdata.totalAmount,//签单金额	                         processStatus:thisdata.processStatus,//流程状态	                         liquidationStatus:thisdata.liquidationStatus,//结算状态	                         approval:thisdata.approval,//特批状态	                         signDate:thisdata.signDate,//签单时间	                         userName:thisdata.userName,//客户名称	                         salesmanName:thisdata.salesmanName,//营销员名称	                         financeName:thisdata.financeName,//财务名称	                         createDate:thisdata.createDate,//下单时间	                         initiateName:thisdata.initiateName,//驳回人	                         reason:thisdata.reason,//驳回信息	                         backDate:thisdata.backDate,//驳回日期	                         backId:thisdata.backId,//驳回编号						});					};				    this.state.pagination.total = data.data.totalCount;				    this.state.pagination.current = data.data.pageNo;				};				if(data.data&&data.data.list&&!data.data.list.length){					this.state.pagination.total=0				}				this.setState({					dataSource: theArr,					pageNo: pageNo,					pagination: this.state.pagination,					selectedRowKeys:[]				});			}.bind(this),		}).always(function() {			this.setState({				loading: false			});		}.bind(this));	},	getInitialState() {		return {			page:1,			releaseDate: [],			selectedRowKeys: [],			orgCodeUrl:[],			customerArr:[],			pagination: {				defaultCurrent: 1,				defaultPageSize: 10,				showQuickJumper: true,				pageSize: 10,				onChange: function(page) {					this.loadData(page);				}.bind(this),				showTotal: function(total) {					return '共' + total + '条数据';				}			},			columns: [				{                    title: '驳回编号',                    dataIndex: 'backId',                    key: 'backId'                },{                    title: '驳回日期',                    dataIndex: 'backDate',                    key: 'backDate'                },				{                    title: '订单编号',                    dataIndex: 'orderNo',                    key: 'orderNo'                }, {                    title: '客户名称',                    dataIndex: 'userName',                    key: 'userName',                    render:(text)=>{                    	return (text&&text.length>9?text.substr(0,9)+'...':text)                    }                },  {                    title: '驳回人',                    dataIndex: 'initiateName',                    key: 'initiateName'                },{                    title: '驳回原因',                    dataIndex: 'reason',                    key: 'reason',                    render:(text)=>{                    	return (text&&text.length>24?text.substr(0,24)+'...':text)                    }                }			],			data: [],			dataSource: [],			columnsX: [				{                    title: '业务项目名称',                    dataIndex: 'commodityName',                    key: 'commodityName'                }, {                    title: '项目类别',                    dataIndex: 'cname',                    key: 'cname',                                    },{                    title: '项目数量',                    dataIndex: 'commodityQuantity',                    key: 'commodityQuantity'                }, {                    title: '金额(万元)',                    dataIndex: 'commodityPrice',                    key: 'commodityPrice'                }, {                    title: '负责人',                    dataIndex: 'contacts',                    key: 'contacts'                }, {                    title: '负责人电话',                    dataIndex: 'contactsMobile',                    key: 'contactsMobile'                }, {                    title: '主要项目',                    dataIndex: 'main',                    key: 'main',                    render:(text)=>{                    	return (text?'是':'否')                    }                }, {                    title: '项目说明',                    dataIndex: 'taskComment',                    key: 'taskComment',					render:(text)=>{						return (text&&text.length>8?text.substr(0,8)+'…':text)					}                }, {                    title: '操作',                    dataIndex: 'ABC',                    key: 'ABC',                    render: (text, record, index) => {						return <div>									{this.state.processStatus==0?<Popconfirm title="是否删除?" onConfirm={(e)=>{this.delectRow(record)}} okText="是" cancelText="否">										    <Button onClick={(e) =>{ e.stopPropagation()}} type="danger">删除</Button>                 										</Popconfirm>:""}								</div>							}                }			],			dataSourceX: [],			ContactsLists: [{					title: '催款科目',					dataIndex: 'dunSubject',					key: 'dunSubject',					render: (text, record, index) => {						return <Select placeholder="请选择催款科目"  value={record.dunSubject}  style={{width:'150px'}}						    		onChange={(e) => { record.dunSubject = e; this.setState({ contactList: this.state.contactList }); }}>                                  {                                    jiedian.map(function (item) {                                        return <Select.Option key={item.value} >{item.key}</Select.Option>                                    })                                }                            </Select>  				                               					}				},{					title: '金额(万)',					dataIndex: 'money',					key: 'money',					render: (text, record, index) => {						return <Input value={record.money} placeholder="请输入金额(必填项)" key={record.id} required="required"	                  onChange={(e) => { record.money = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/>					}				}, {					title: '催款状态',					dataIndex: 'dunStatus',					key: 'dunStatus',					render:text=>{return getCuikuan(text)}				},				{					title: '操作',					dataIndex: 'dels',					key: 'dels',					render: (text, record, index) => {						return <div>		                        {this.state.processStatus==0?<Popconfirm title="是否删除?" onConfirm={(e)=>{this.confirmDelet(record.key)}} okText="删除" cancelText="不删除">									    <Button style={{marginRight:'10px',color:'#ffffff',background:'#f00',border:'none'}}>删除</Button>									</Popconfirm>									:''}								{record.id?'': <Button  type="primary"  onClick={this.contactSave}>保存</Button>}								                            </div>					}				}			],		};	},	//删除    delectRow(record) {        this.setState({            loading: true        });        $.ajax({            method: "post",            dataType: "json",            crossDomain: false,            url: globalConfig.context + "/api/admin/newOrder/deleteOrderTask",            data: {            	id:record.id            }        }).done(function (data) {            if (!data.error.length) {                message.success('删除成功!');                this.setState({                    loading: false,                });                this.xiangmu(this.state.orderNo)            	this.loadData();            } else {                message.warning(data.error[0].message);            };        }.bind(this));    },	//页面加载函数	componentWillMount() {		this.loadData();	},	//整行点击	tableRowClick(record, index) {		this.setState({			visible:true,		});		this.xiangqing(record.orderNo);		this.xiangmu(record.orderNo);		this.jiedian(record.orderNo);	},		//点击打卡项目详情	tableRowClickX(record, index) {        this.setState({        	jid:record.id,//项目ID        	kid:record.commodityId,//商品ID        	commodityName:record.commodityName,//金额        	commodityPrice:record.commodityPrice,//金额        	commodityQuantity:record.commodityQuantity,//数量        	taskComment:record.taskComment,//备注        	main:record.main.toString(),//是否为主要        	addnextVisible:true,        	addState:0,        });    },    //项目详情关闭    nextCancel() {		this.setState({			addnextVisible: false		})	},    //订单详情	xiangqing(orderNos) {		$.ajax({			method: "get",			dataType: "json",			crossDomain: false,			url: globalConfig.context +"/api/admin/newOrder/getOrderNewDetail",			data: {				orderNo:orderNos			},			success: function(data) {				let theArr = [];								if(data.error.length || data.data.list == "") {					if(data.error && data.error.length) {						message.warning(data.error[0].message);					};				} else {					let thisdata=data.data;					this.setState({						 id:thisdata.id,						 kehuId:thisdata.buyerId,						 orderNo: thisdata.orderNo,//订单编号						 contractNo: thisdata.contractNo,//合同编号						 userName:thisdata.userName,//客户名称						 signDate:thisdata.signDate,//签单时间						 processStatus:thisdata.processStatus,//流程状态	                     liquidationStatus:thisdata.liquidationStatus,//结算状态	                     contacts:thisdata.contacts,//企业联系人	                     contactMobile:thisdata.contactMobile,//联系人电话	                     legalPerson:thisdata.legalPerson,//法人	                     legalPersonTel:thisdata.legalPersonTel,//法人电话	                     firstAmount:thisdata.firstAmount,//签单金额	                     totalAmount:thisdata.totalAmount,//首付金额	                     settlementAmount:thisdata.settlementAmount,//已收款项	                     orderRemarks:thisdata.orderRemarks,//订单留言	                     orgCodeUrl: thisdata.contractPictureUrl ? splitUrl(thisdata.contractPictureUrl, ',', globalConfig.avatarHost + '/upload') : [],//图片地址	                     salesmanName:thisdata.salesmanName,//营销员名称	                     salesmanMobile:thisdata.salesmanMobile,//营销员电话	                     financeName:thisdata.financeName,//财务名称	                     financeMobile:thisdata.financeMobile,//财务电话	                     initiateName:thisdata.initiateName,//驳回人	                     backDate:thisdata.backDate,//驳回时间	                     reason:thisdata.reason,//驳回原因	                     approval:thisdata.approval.toString(),//特批状态	                     //approval:thisdata.approval==0?thisdata.approval.toString():thisdata.approval,//特批状态					})				};							}.bind(this),		}).always(function() {			this.setState({				loading: false			});		}.bind(this));	},	//项目列表	xiangmu(orderNos) {		$.ajax({			method: "get",			dataType: "json",			crossDomain: false,			url: globalConfig.context +"/api/admin/newOrder/getOrderTask",			data: {				orderNo:orderNos			},			success: function(data) {				let theArr = [];								if(data.error.length || data.data.list == "") {					if(data.error && data.error.length) {						message.warning(data.error[0].message);					};				} else {					for (let i = 0; i < data.data.length; i++) {                        let thisdata = data.data[i];                        theArr.push({                             key: i,                             id:thisdata.id,                             orderNo:thisdata.orderNo,//订单编号                              commodityId:thisdata.commodityId,//项目ID                             commodityName:thisdata.commodityName,//项目名称                             cname:thisdata.cname,//项目类别                             commodityPrice:thisdata.commodityPrice,//项目价格                             commodityQuantity:thisdata.commodityQuantity,//项目数量                             main:thisdata.main,//是否为主要任务                             taskComment:thisdata.taskComment,//任务说明                             contacts:thisdata.contacts,//联系人                             contactsMobile:thisdata.contactsMobile,//联系人电话                        });                    };				};				this.setState({                    dataSourceX: theArr,                     paginations: false,                });			}.bind(this),		}).always(function() {			this.setState({				loading: false			});		}.bind(this));	},	//节点列表	jiedian(orderNos) {		$.ajax({			method: "get",			dataType: "json",			crossDomain: false,			url: globalConfig.context +"/api/admin/newOrder/selectOrderDun",			data: {				orderNo:orderNos			},			success: function(data) {				let theArr = [];				let thisData=[];				if(data.error.length || data.data.list == "") {					if(data.error && data.error.length) {						message.warning(data.error[0].message);					};				} else {					for(let i = 0; i < data.data.length; i++) {                		thisData= data.data[i];  	                	theArr.push({	                		key:i,	                		dunSubject:thisData.dunSubject?thisData.dunSubject.toString():"",//催款科目	                		id:thisData.id,//节点Id	                		money:thisData.money,//催款金额	                		dunStatus:thisData.dunStatus,//催款状态	                		orderNo:thisData.orderNo,	                	})                	}                	this.setState({                		contactList:theArr                	})				};							}.bind(this),		}).always(function() {			this.setState({				loading: false			});		}.bind(this));	},	//催款节点保存	contactSave(e) {		this.setState({			loading: true		});		$.ajax({			url: globalConfig.context + '/api/admin/newOrder/createOrderDun',			method: 'post',			data: {				orderNo: this.state.orderNo,				orderDun: JSON.stringify(this.state.contactList)			}		}).done(function(data) {			this.setState({				loading: false			});			if(!data.error.length) {				message.success('保存成功!');				this.jiedian(this.state.orderNo);			} else {				message.warning(data.error[0].message);			}		}.bind(this));	},	//点击新增催款节点	addcontact(record) {		this.state.contactList.push({			key:this.state.contactList.length,			money: '',			dunSubject:undefined,			orderNo: this.state.orderNo,			dunTarget:this.state.kehuId,		});		this.setState({			contactList: this.state.contactList		})	},		//删除收款节点	confirmDelet(index) {		this.state.contactList.splice(index,1);		this.setState({			contactList: this.state.contactList		})		this.contactSave();	},	//重新提交	examOk(){		let theorgCodeUrl = [];        if (this.state.orgCodeUrl.length) {            let picArr = [];            this.state.orgCodeUrl.map(function (item) {				if ( item.response && item.response.data && item.response.data.length ){					picArr.push(item.response.data);				}            });            theorgCodeUrl = picArr.join(",");        };        if(!this.state.totalAmount){        	message.warning('签单金额不能为空');        	this.refs.signFirstPayment.focus()        	return false;        };        if(!this.state.firstAmount){        	message.warning('首付金额不能为空');        	this.refs.signFirstPayment.focus()        	return false;        };        if(!theorgCodeUrl){        	message.warning('企业负责人不能为空');        	this.refs.signFirstPayment.focus()        	return false;        };		$.ajax({			method: "post",			dataType: "json",			crossDomain: false,			url: globalConfig.context +"/api/admin/newOrder/updateServiceOrderNew",			data: {				orderNo: this.state.orderNo,//订单编号				totalAmount: this.state.totalAmount,//总金额				firstAmount: this.state.firstAmount,//首付				isSubmit: 1,//保存草稿还是提交				signDate: this.state.signDate,//签单日期				contacts: this.state.contacts,//企业负责人				contactMobile: this.state.contactMobile,//负责人联系方式				legalPerson: this.state.legalPerson,//企业法人				legalPersonTel: this.state.legalPersonTel,//企业法人联系电话				approval: this.state.approval,//特批状态				contractNo: this.state.contractNo,//合同编号				orderRemarks: this.state.orderRemarks,//订单备注				contractPictureUrl:theorgCodeUrl.length?theorgCodeUrl:'',			},			success: function(data) {				if(data.error.length || data.data.list == "") {					if(data.error && data.error.length) {						message.warning(data.error[0].message);					};				} else {					message.success("该订单已重新提交~");					this.setState({						visible:false,					});					this.resets();					this.loadData();				};							}.bind(this),		}).always(function() {			this.setState({				loading: false			});		}.bind(this));	},	//重新提交	examOks(){				$.ajax({			method: "post",			dataType: "json",			crossDomain: false,			url: globalConfig.context +"/api/admin/newOrder/deleteOrderNew",			data: {				orderNo: this.state.orderNo,//订单编号			},			success: function(data) {				if(data.error.length || data.data.list == "") {					if(data.error && data.error.length) {						message.warning(data.error[0].message);					};				} else {					message.success("该订单已作废~");					this.setState({						visible:false,					});					this.resets();					this.loadData();				};							}.bind(this),		}).always(function() {			this.setState({				loading: false			});		}.bind(this));	},	//新建项目明细保存	nextSubmit(e) {		e.preventDefault();		if(this.state.gid==undefined||!this.state.gid){			message.warning('服务名称不匹配!');			return false;		};		if(!this.state.commodityPrice){			message.warning('请输入金额!');			this.refs.commodityPrice.focus();			return false;		};		if(!this.state.commodityQuantity){			message.warning('请输入商品数量!');			this.refs.commodityQuantity.focus();			return false;		};		if(!this.state.main){			message.warning('请选择是否为主要项目!');			this.refs.commodityQuantity.focus();			return false;		};		this.setState({			loading: true		});		let api=this.state.addState?'/api/admin/newOrder/addOrderTask':'/api/bianji';		$.ajax({			method: "POST",			dataType: "json",			crossDomain: false,			url: globalConfig.context +api ,			data: {				commodityId:this.state.gid,//商品ID				orderNo:this.state.orderNo,//订单编号				commodityName:this.state.commodityName,//商品名称				commodityQuantity:this.state.commodityQuantity,//商品数量				commodityPrice:this.state.commodityPrice,//签单总价				taskComment:this.state.taskComment,//服务说明				main:this.state.main,//是否为主要项目			}		}).done(function(data) {			this.setState({				loading: false			});			if(!data.error.length) {				message.success('保存成功!');				this.nextCancel()				 this.xiangmu(this.state.orderNo)			} else {				message.warning(data.error[0].message);			}		}.bind(this));	},	//点击签单	handleCancels(e) {		this.setState({			isSubmit:1		})	},	//点击签单	handleCancelq(e) {		this.setState({			isSubmit:0		})	},	resets(){    	this.state.orderNo='';    	this.state.customerName='';    	this.state.releaseDate[0] = undefined;		this.state.releaseDate[1] = undefined;    },    //点击添加项目明细	addDetailed(){		this.setState({			gid:'',			customerArr:[],			commodityName:'',			commodityQuantity:'',			commodityId:'',			taskComment:'',			main:undefined,			commodityPrice:'',			addState:1,			addnextVisible: true		})	},		//搜索	search() {    	this.setState({    		//signBillVisible:false    	})        this.loadData();    },	getOrgCodeUrl(e) {        this.setState({ orgCodeUrl: e });    },	//关闭详情	visitCancel(e){		this.setState({			visible:false		})		this.resets();	},	visitOk(e){		this.setState({			visible:false		})		this.resets();	},	//客户	selectAutoCUT(value){		let autoIds;		let fwList=this.state.customerArr;		fwList.map(function(item){			if(value==item.name){				autoIds=item.id			}		})		this.setState({			customerName:value,			autoId:autoIds		})			},	//加载(自动补全)	supervisor(e,state){ //客户名称与服务名称自动补全		let api=state?'/api/admin/customer/getCustomerByName':'/api/admin/order/getBusinessProjectByName';		$.ajax({            method: "get",            dataType: "json",            crossDomain: false,            url: globalConfig.context + api,            data:state?{            	name:e,            	type:this.state.customType            }:{            	businessName:e            },            success: function (data) {                	  				    let thedata=data.data;				    if (!thedata) {                    if (data.error && data.error.length) {                        message.warning(data.error[0].message);                    };	                    thedata = {};                     }; 					this.setState({						states:state,						customerArr:thedata,	                    });				}.bind(this),			}).always(function () {            this.setState({                loading: false            });        }.bind(this));  	},	//上级主管输入框失去焦点是判断客户是否存在	selectAuto(value){		let kid=[];		let fwList=this.state.customerArr;		fwList.map(function(item){			if(value==item.bname){				kid=item			}		})		this.setState({			commodityName:value,			gid:kid.id,			//commodityPrice:kid.price==0?kid.price.toString():kid.price,			commodityFirstPayment:kid.firstPayment==0?kid.firstPayment.toString():kid.firstPayment		})	},	//服务值改变时请求客户名称	httpChange(e){		this.state.gid='';		if(e.length>=1){			this.supervisor(e,false); 		}			this.setState({			commodityName:e		})	},	render() {		const formItemLayout = {			labelCol: { span: 8 },			wrapperCol: { span: 14 },		};		const FormItem = Form.Item;		const { RangePicker } = DatePicker;		const rowSelection = {			selectedRowKeys: this.state.selectedRowKeys,			onChange: (selectedRowKeys, selectedRows) => {				this.setState({					modalVisible:false,					selectedRows: selectedRows.slice(-1),					selectedRowKeys: selectedRowKeys.slice(-1)				});			},			onSelect: (recordt, selected, selectedRows) => {				this.setState({					modalVisible:false,					recordt: recordt.id				})			},		};		const dataSources=this.state.customerArr || [];		const options = this.state.states?dataSources.map((group,index) =>				      <Select.Option key={group.id} value={group.name}>{group.name}</Select.Option>				     ):dataSources.map((group,index) =>				      <Select.Option key={index} value={group.bname}>{group.bname}</Select.Option>				     )		const hasSelected = this.state.selectedRowKeys.length > 0;		return(			<div className="user-content">				<div className="content-title">                                      <span>订单审核</span>                </div>               	<div className="user-search">                                       <Input placeholder="客户名称" style={{width:'150px',marginBottom:'10px'}}	                        value={this.state.customerName}	                        onChange={(e) => { this.setState({ customerName: e.target.value }); }} />                    <Input placeholder="订单编号" style={{width:'150px'}}                        value={this.state.orderNo}                        onChange={(e) => { this.setState({ orderNo: e.target.value }); }} />                    <span style={{marginRight:"10px"}}>合同签订时间 :</span>                    <RangePicker	                        value={[this.state.releaseDate[0] ? moment(this.state.releaseDate[0]) : null,	                        this.state.releaseDate[1] ? moment(this.state.releaseDate[1]) : null]}	                        onChange={(data, dataString) => { this.setState({ releaseDate: dataString }); }} />                    <Button type="primary" onClick={this.search} style={{marginLeft:'10px'}}>搜索</Button>                    <Button onClick={this.reset}>重置</Button>                    	<div className="patent-table">	                    <Spin spinning={this.state.loading}>	                        <Table columns={this.state.columns}	                            dataSource={this.state.dataSource}    	                            rowSelection={rowSelection}	                            pagination={this.state.pagination} 	                            onRowClick={this.tableRowClick}	                           />	                    </Spin>               		 </div>                		<Modal					      className="customeDetails"				      footer=''			          title="订单详情"			          width='900px'			          visible={this.state.visible}			          onOk={this.visitOk}					  onCancel={this.visitCancel}							          							          			        >					        <Form layout="horizontal" onSubmit={this.handleSubmit} id="demand-form" style={{paddingBottom:'40px'}} >				            <Spin spinning={this.state.loading}>				                <div className="clearfix">				                	<FormItem className="half-item"			                            {...formItemLayout}			                            label="订单编号" >			                            <span>{this.state.orderNo}</span>		                    		</FormItem>		                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="合同编号" >  			                             <Input placeholder="请输入合同编号" value={this.state.contractNo}							                onChange={(e)=>{this.setState({contractNo:e.target.value})}} style={{width:'240px'}} />				                    </FormItem>		                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="客户名称" >  			                            <span>{this.state.userName}</span>		                    		</FormItem>		                    				                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="流程状态" >  			                            <span>{getProcessStatus(this.state.processStatus)}</span>		                    		</FormItem>		                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="结算状态" >  			                            <span>{getLiquidationStatus(this.state.liquidationStatus)}</span>		                    		</FormItem>		                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="已收款项(万元)" >  			                            <span>{this.state.settlementAmount}</span>		                    		</FormItem>		                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="企业联系人" >                             		                                 <Input placeholder="请输入联系人" ref='signTotalAmount' value={this.state.contacts} onChange={(e)=>{this.setState({contacts:e.target.value})}} style={{width:'240px'}} />				                    </FormItem>				                     <FormItem className="half-item"			                            {...formItemLayout}			                            label="联系人电话" >                             		                                <Input placeholder="请输入联系人电话" ref='signTotalAmount' value={this.state.contactMobile} onChange={(e)=>{this.setState({contactMobile:e.target.value})}} style={{width:'240px'}} />				                    </FormItem>				                    <FormItem className="half-item"			                            {...formItemLayout}			                            label="企业法人" >                             		                                    <Input placeholder="请输入法人" ref='signTotalAmount' value={this.state.legalPerson} onChange={(e)=>{this.setState({legalPerson:e.target.value})}} style={{width:'240px'}} />				                    </FormItem>				                     <FormItem className="half-item"			                            {...formItemLayout}			                            label="法人电话" >                             		                                    <Input placeholder="请输入法人电话" ref='signTotalAmount' value={this.state.legalPersonTel} onChange={(e)=>{this.setState({legalPersonTel:e.target.value})}} style={{width:'240px'}} />				                    </FormItem>				                     <FormItem className="half-item"			                            {...formItemLayout}			                            label="签单金额(万元)" >                             		                                    <Input placeholder="签单金额" ref='signTotalAmount' value={this.state.totalAmount} onChange={(e)=>{this.setState({totalAmount:e.target.value})}} style={{width:'240px'}} />				                   			<span className="mandatory">*</span>				                    </FormItem>				                    <FormItem className="half-item"				                            {...formItemLayout}				                            label="首付金额(万元)" >                             			                                    <Input placeholder="请输入实签首款金额" ref='signFirstPayment' value={this.state.firstAmount} onChange={(e)=>{this.setState({firstAmount:e.target.value})}} style={{width:'240px'}} />				                    		<span className="mandatory">*</span>				                    </FormItem>		                    		<FormItem className="half-item"			                            {...formItemLayout}			                            label="特批立项" >  			                            <Select placeholder="请选择客户所属类型"				                            style={{ width:'240px'}}				                            value={this.state.approval}				                            onChange={(e)=>{this.setState({approval:e})}}>				                            {			                                    tepi.map(function (item) {			                                        return <Select.Option key={item.value} >{item.key}</Select.Option>			                                    })			                                }				                     </Select>		                    		</FormItem>				                    <FormItem className="half-item" {...formItemLayout} label="合同签订时间">                                        <DatePicker                                         	style={{marginTop:"2px",width: '240px',height:"32px" }}                                            showTime                                            format="YYYY-MM-DD"                                            onOk={(e)=>{}}                                            value={this.state.signDate ? moment(this.state.signDate) : null}                                            onChange={(data, dataString) => { this.setState({ signDate: dataString }); }} />                                    </FormItem>				                    <div className='clearfix'>							            <FormItem							                labelCol={{ span: 4 }}							                wrapperCol={{ span: 18 }}							                label={							                	<span>													<strong style={{ color: '#f00' }}>*</strong>合同扫描件												</span> 							                }							                >							            								                <PicturesWall							                    fileList={this.getOrgCodeUrl}							                    pictureUrl={this.state.orgCodeUrl} />							                    <p>图片建议:要清晰。</p>							            </FormItem>							        </div>							        <div className='clearfix'>							        	<FormItem								            labelCol={{ span: 4 }}								            wrapperCol={{ span: 16 }}								            label="订单留言" >								                <Input type="textarea" placeholder="请输入订单留言" rows={4}  value={this.state.orderRemarks} 									    				onChange={(e)=>{this.setState({orderRemarks:e.target.value})}}/>			                      								        </FormItem>							        </div>							        <div className='clearfix'>			                    		<FormItem className="half-item"				                            {...formItemLayout}				                            label="订单负责人" >  				                            <span>{this.state.salesmanName}</span>			                    		</FormItem>			                    		<FormItem className="half-item"				                            {...formItemLayout}				                            label="订单负责人电话" >                              				<span>{this.state.salesmanMobile}</span>			                    		</FormItem>			                    	</div>			                    	<div className='clearfix'>			                    		<FormItem className="half-item"				                            {...formItemLayout}				                            label="财务负责人" >  				                            <span>{this.state.financeName}</span>			                    		</FormItem>			                    		<FormItem className="half-item"				                            {...formItemLayout}				                            label="财务负责人电话" >                              				<span>{this.state.financeMobile}</span>			                    		</FormItem>			                    	</div>			                    	<div className='clearfix'>			                    		<FormItem className="half-item"				                            {...formItemLayout}				                            label="驳回人" >  				                            <span>{this.state.initiateName}</span>			                    		</FormItem>			                    		<FormItem className="half-item"				                            {...formItemLayout}				                            label="驳回时间" >                              				<span>{this.state.backDate}</span>			                    		</FormItem>			                    	</div>			                    	<div className='clearfix'>			                    		<FormItem 				                            labelCol={{ span: 4 }}								            wrapperCol={{ span: 16 }}				                            label="驳回原因" >  				                            <span>{this.state.reason}</span>			                    		</FormItem>			                    					                    	</div>			                    	<div>					                	<span style={{marginLeft:'50px',fontSize:'20px'}}>催款节点</span>					                	<Button type='primary' onClick={this.addcontact} style={{float:'right',marginRight:'50px',marginBottom:'15px'}}>添加催款节点</Button>					                </div>					                <div className="clearfix">					    			  <Spin spinning={this.state.loading}>					    			        <Form layout="horizontal" id="demand-form"  >										      	<Table 								            	 pagination={false}								            	 columns={this.state.ContactsLists} 								            	 dataSource={this.state.contactList}								            	 />						            	        <Col span={24} offset={9} style={{marginTop:'15px'}}>									                 									            </Col>							            	</Form> 									   </Spin> 									</div>						            <div>					                	<span style={{marginLeft:'50px',fontSize:'20px'}}>项目业务</span>					                	<Button type='primary' onClick={this.addDetailed} style={{float:'right',marginRight:'50px',marginBottom:'15px'}}>添加项目明细</Button>					                </div>					                <div className="patent-table">					                    <Spin spinning={this.state.loading}>					                        <Table columns={this.state.columnsX}					                            dataSource={this.state.dataSourceX}					                            pagination={this.state.paginations}					                            onRowClick={this.tableRowClickX} 					                            />					                    </Spin>						            </div>					                <div className='addSave' style={{marginTop:'15px'}}>					                   <Button className="cancel" type="primary" onClick={this.examOk} style={{marginLeft:"200px"}} htmlType="submit">重新提交</Button>		                               <Button className="cancel" type="primary" onClick={this.examOks} style={{marginLeft:"50px"}} htmlType="submit">订单作废</Button>		                               <Button className="cancel" type="ghost" onClick={this.visitCancel} style={{marginLeft:"50px"}}>取消</Button>	                            	</div>				                </div>				            </Spin>				        </Form>			        </Modal>			         <Modal maskClosable={false} visible={this.state.addnextVisible}                        onOk={this.nextCancel} onCancel={this.nextCancel}                        width='800px'                        title={this.state.addState?'添加项目任务':'项目任务详情'}                                             footer=''                        className="admin-desc-content">			            <Form layout="horizontal" onSubmit={this.nextSubmit} id="demand-form">			                <Spin spinning={this.state.loading}>			                        {this.state.addState?<div className="clearfix">				                    	<FormItem className="half-item"				                            {...formItemLayout}				                            label="服务名称" >   			                                    <AutoComplete										        className="certain-category-search"										        dropdownClassName="certain-category-search-dropdown"										        dropdownMatchSelectWidth={false}										        dropdownStyle={{ width: 200 }}										        style={{ width: '200px' }}										        dataSource={options}										        placeholder="输入服务名称"										        value={this.state.commodityName}										        onChange={this.httpChange}										        filterOption={true}										        onSelect={this.selectAuto}										      >										        <Input/>										      </AutoComplete> 										      <span className="mandatory">*</span>					                    </FormItem>					                     					                    <FormItem className="half-item"					                            {...formItemLayout}					                            label="服务数量" >   				                                    <Input placeholder="请输入服务数量" value={this.state.commodityQuantity} style={{width:'200px'}}				                                    onChange={(e)=>{this.setState({commodityQuantity:e.target.value})}} ref="commodityQuantity"/>				                                <span className="mandatory">*</span>    					                    </FormItem>					                    <FormItem className="half-item"					                            {...formItemLayout}					                            label="实签价格(万元)" >   				                                    <Input placeholder="请输入实签价格" value={this.state.commodityPrice} style={{width:'200px'}}				                                    onChange={(e)=>{this.setState({commodityPrice:e.target.value})}} ref="commodityPrice"/>				                                <span className="mandatory">*</span>    					                    </FormItem>					                    <FormItem className="half-item"				                            {...formItemLayout}				                            label="主要业务" >  				                            <Select placeholder="选择是否为主要业务"					                            style={{ width:'200px'}}					                            value={this.state.main}					                            onChange={(e)=>{this.setState({main:e})}}>					                            {				                                    boutique.map(function (item) {				                                        return <Select.Option key={item.value} >{item.key}</Select.Option>				                                    })				                                }					                    	 </Select>					                    	 <span className="mandatory">*</span>   			                    		</FormItem>					                    <div className='clearfix'>						                    <FormItem 						                            labelCol={{ span: 4 }}										            wrapperCol={{ span: 16 }}						                            label="服务说明" >   					                                    <Input type='textarea' placeholder="请输入服务说明" value={this.state.taskComment} 					                                    onChange={(e)=>{this.setState({taskComment:e.target.value})}} />						                    </FormItem>					                    </div>					                    <FormItem wrapperCol={{ span: 12, offset: 4 }} className="half-middle">					                        <Button className="submitSave" type="primary" htmlType="submit">保存</Button>  					                        <Button className="submitSave" type="ghost" onClick={this.nextCancel}>取消</Button>					                    </FormItem> 				                    </div>:				                    <div className='clearfix'>				                    	<FormItem className="half-item"					                            {...formItemLayout}					                            label="项目名称" >				                    			<span>{this.state.commodityName}</span>				                    	</FormItem>				                    	<FormItem className="half-item"					                            {...formItemLayout}					                            label="项目数量" >				                    			<Input placeholder="请输入数量" value={this.state.commodityQuantity} style={{width:'200px'}}				                                    onChange={(e)=>{this.setState({commodityQuantity:e.target.value})}} />				                                <span className="mandatory">*</span>  				                    	</FormItem>				                    	<FormItem className="half-item"					                            {...formItemLayout}					                            label="金额(万元)" >				                    			<Input placeholder="请输入签单金额" value={this.state.commodityPrice} style={{width:'200px'}}				                                    onChange={(e)=>{this.setState({commodityPrice:e.target.value})}} />				                                <span className="mandatory">*</span>      				                    	</FormItem>					                    <FormItem className="half-item"				                            {...formItemLayout}				                            label="主要项目" >  				                            <Select placeholder="选择是否为主要业务"					                            style={{ width:'200px'}}					                            value={this.state.main}					                            onChange={(e)=>{this.setState({main:e})}}>					                            {				                                    boutique.map(function (item) {				                                        return <Select.Option key={item.value} >{item.key}</Select.Option>				                                    })				                                }					                     	</Select>					                     	<span className="mandatory">*</span>   			                    		</FormItem>					                    <div className='clearfix'>					                    	<FormItem 						                            labelCol={{ span: 4 }}										            wrapperCol={{ span: 16 }}						                            label="服务说明" >					                    			 <Input type='textarea' placeholder="请输入服务说明" value={this.state.taskComment} 					                                    onChange={(e)=>{this.setState({taskComment:e.target.value})}} />					                    	</FormItem>				                    	</div>				                    	<FormItem wrapperCol={{ span: 12, offset: 4 }} className="half-middle">					                        <Button className="submitSave" type="primary" onClick={this.tabRowSave}>保存</Button>  					                        <Button className="submitSave" type="ghost" onClick={this.nextCancel}>取消</Button>					                    </FormItem>				                    </div>}			                </Spin>			            </Form >			        </Modal>               	</div>              </div>			);	}}));export default IntentionCustomer;
 |