import React from 'react'; import { Icon, Table, Modal, message, Spin, Input, Select, Button, Form ,Upload,Popconfirm,AutoComplete,DatePicker,Radio,Col} from 'antd'; import ajax from 'jquery/src/ajax/xhr.js'; import $ from 'jquery/src/ajax'; import '../userMangagement.less'; import moment from 'moment'; import Picture from '@/manageCenter/publicComponent/picture'; import {orderTypes,customerType,jiedian,tepi,boutique} from '../../../dataDic.js'; import {splitUrl,getTransactionProject,getChangeState,getTransactionChannel,beforeUploadFile,getProcessStatus,getLiquidationStatus,getboutique} from '../../../tools.js'; const Option = AutoComplete.Option; //图片组件 const PicturesWall = React.createClass({ getInitialState() { return { previewVisible: false, previewImage: '', fileList: [], } }, getDefaultProps(){ return{ changeClick:this.modifyChange } }, handleCancel() { this.setState({ previewVisible: false }) }, handlePreview(file) { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }, handleChange(info) { let fileList = info.fileList; this.setState({ fileList }); this.props.fileList(fileList); }, componentWillReceiveProps(nextProps) { this.state.fileList = nextProps.pictureUrl; }, render() { const { previewVisible, previewImage, fileList } = this.state; const uploadButton = (
点击上传
); return (
{fileList.length >= 18 ? null : uploadButton} example
); } }); const NewService = Form.create()(React.createClass({ //查看项目列表 loadData(record) { this.state.data = []; this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/newOrder/getOrderTask', data: { orderNo:record?record.orderNo:this.props.datauser.orderNo }, success: function (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.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({ dataSource: theArr, pagination: false, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //收款节点 loadDatas(record) { this.state.data = []; this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/newOrder/selectOrderDun', data: { orderNo:record?record.orderNo:this.props.datauser.orderNo }, success: function (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.length; i++) { let thisdata = data.data[i]; theArr.push({ key: i, id:thisdata.id, }); }; } this.setState({ dataSource: theArr, pagination: false, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, getInitialState() { return { loading: false, visible: false, orgCodeUrl:[], customerArr:[], bussStats:false, checkedKeys: [], lookflowList:[], contractUrl:[], applicationUrl:[], active:{ applySign:false }, lookState:false, signBillVisible:false, commod:'', columns: [ { 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
{this.state.processStatus==0?{this.delectRow(record)}} okText="是" cancelText="否"> :""}
} } ], contactList:[], loading:false, ContactsLists: [{ title: '催款科目', dataIndex: 'dunSubject', key: 'dunSubject', render: (text, record, index) => { return } },{ title: '金额(万)', dataIndex: 'money', key: 'money', render: (text, record, index) => { return { record.money = e.target.value; this.setState({ contactList: this.state.contactList }); }} style={{width:'120px'}}/> } }, { title: '催款状态', dataIndex: 'dunStatus', key: 'dunStatus', render: (text, record, index) => { return text?'已完成':'催款中' } }, { title: '操作', dataIndex: 'dels', key: 'dels', render: (text, record, index) => { return
{this.state.processStatus==0?{this.confirmDelet(record.key)}} okText="删除" cancelText="不删除"> :''} {record.id?'': }
} } ], }; }, //新建订单、编辑订单保存 handleSubmit(e) { e.preventDefault(); 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.props.userDetaile){ if(!this.state.contacts){ message.warning('企业负责人不能为空'); this.refs.signFirstPayment.focus() return false; }; if(!this.state.contactMobile){ message.warning('企业负责人电话不能为空'); this.refs.signFirstPayment.focus() return false; }; 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; }; }else{ if(this.state.orderType==undefined){ message.warning('请选择订单类型'); return false; }; if(!this.state.autoId){ message.warning('客户名称不匹配'); return false; }; } this.setState({ loading: true }); let api=this.props.userDetaile?'/api/admin/newOrder/updateServiceOrderNew':'/api/admin/newOrder/createOrder'; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: !this.props.userDetaile?{ uid:this.state.autoId, orderType:this.state.orderType, contractType:this.state.contractType }:{ orderNo: this.state.orderNo,//订单编号 totalAmount: this.state.totalAmount,//总金额 firstAmount: this.state.firstAmount,//首付 isSubmit: this.state.isSubmit,//保存草稿还是提交 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:'', } }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('保存成功!'); this.handleOk(); this.loadData(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //订单详情修改 xiangqingClick(e) { e.preventDefault(); this.setState({ loading: true }); $.ajax({ url: globalConfig.context + '/api/admin/newOrder/updateServiceOrderNew', method: 'post', data: { orderNo: this.state.orderNo,//订单编号 totalAmount: this.state.totalAmount,//总金额 firstAmount: this.state.firstAmount,//首付 isSubmit: this.state.isSubmit,//保存草稿还是提交 signDate: this.state.selTime,//签单日期 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,//订单备注 } }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('保存成功!'); this.loaduser(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //查看基本详情基本信息 loaduser(record){ this.state.orderList=[] $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/newOrder/getOrderNewDetail', data: { orderNo:record?record.orderNo:this.props.datauser.orderNo }, success: function (data) { let thisData = data.data; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; thisData = {}; }; this.setState({ id:thisData.id, kehuId:thisData.buyerId, orderNo:thisData.orderNo,//订单编号 orderType:thisData.orderType,//订单类型 firstAmount:thisData.firstAmount,//首付金额 totalAmount:thisData.totalAmount,//总金额 settlementAmount:thisData.settlementAmount,//结算金额 liquidationStatus:thisData.liquidationStatus,//清算状态 processStatus:thisData.processStatus,//流程状态 approval:thisData.approval.toString(),//特批状态 orderRemarks:thisData.orderRemarks,//订单备注 contractNo:thisData.contractNo,//合同编号 contacts:thisData.contacts,//联系人 contactMobile:thisData.contactMobile,//联系人电话 legalPerson:thisData.legalPerson,//法人 legalPersonTel:thisData.legalPersonTel,//法人电话 contractNo:thisData.contractNo,//合同编号 orgCodeUrl: thisData.contractPictureUrl ? splitUrl(thisData.contractPictureUrl, ',', globalConfig.avatarHost + '/upload') : [],//图片地址 signDate:thisData.signDate,//签单时间 userName:thisData.userName,//客户名称 salesmanName:thisData.salesmanName,//营销员名称 financeName:thisData.financeName,//财务名称 contractNo:thisData.contractNo,//合同编号 approval:thisData.approval==0?thisData.approval.toString():thisData.approval, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //查看催款节点 loaduserss(record){ this.state.orderList=[] this.setState({ orderNoss:record?record.orderNo:this.props.datauser.orderNo, }) $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/newOrder/selectOrderDun', data: { orderNo:record?record.orderNo:this.props.datauser.orderNo }, success: function (data) { let theArr=[]; let thisData=[]; if (!thisData) { if (data.error && data.error.length) { message.warning(data.error[0].message); }; thisData = {}; }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:record?record.orderNo:this.props.datauser.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.orderNoss, orderDun: JSON.stringify(this.state.contactList) } }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('保存成功!'); this.loaduserss(); } 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.orderNoss, dunTarget:this.state.kehuId, }); this.setState({ contactList: this.state.contactList }) console.log(this.state.contactList); }, //删除收款节点 confirmDelet(index) { this.state.contactList.splice(index,1); this.setState({ contactList: this.state.contactList }) this.contactSave(); }, handleOk(e) { this.setState({ visible: false, }); this.props.closeDesc(false, true); }, handleCancel(e) { this.setState({ visible: false, }); this.props.closeDesc(false); }, //点击签单 handleCancels(e) { this.setState({ isSubmit:1 }) }, //点击签单 handleCancelq(e) { this.setState({ isSubmit:0 }) }, //删除 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.loaduser() this.loadData(); } else { message.warning(data.error[0].message); }; }.bind(this)); }, nextCancel() { this.setState({ addnextVisible: false }) }, getOrgCodeUrl(e) { this.setState({ orgCodeUrl: e }); }, componentWillMount() { }, //加载(自动补全) 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 }) }, //客户 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 }) }, //服务值改变时请求客户名称 httpChange(e){ this.state.gid=''; if(e.length>=1){ this.supervisor(e,false); } this.setState({ commodityName:e }) }, //客户名称自动补全 customerChange(e){ this.state.autoId=''; if(e.length>=2){ this.supervisor(e,true); } this.setState({ customerName:e }) }, //点击添加项目明细 addDetailed(){ this.setState({ gid:'', customerArr:[], commodityName:'', commodityQuantity:'', commodityId:'', taskComment:'', main:undefined, commodityPrice:'', addState:1, addnextVisible: true }) }, //新建项目明细保存 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.props.datauser.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.loaduser(this.props.datauser); this.loadData(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //点击打卡项目详情 tableRowClick(record, index) { console.log(record); 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, }); }, //修改项目详情 tabRowSave(e){ e.preventDefault(); if(!this.state.commodityPrice){ message.warning('金额不能为空!'); return false; }; if(!this.state.commodityQuantity){ message.warning('数量不能为空!'); return false; }; if(!this.state.main){ message.warning('请选择是否为主要项目!'); this.refs.commodityQuantity.focus(); return false; }; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context +'/api/admin/newOrder/updateOrderTask' , data: { id:this.state.jid,//项目ID commodityId:this.state.kid,//商品ID orderNo:this.props.datauser.orderNo,//订单编号 main:this.state.main,//是否为主要 commodityPrice:this.state.commodityPrice,//金额 commodityQuantity:this.state.commodityQuantity,//数量 taskComment:this.state.taskComment//备注 } }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('保存成功!'); this.nextCancel() this.loaduser(this.props.datauser); this.loadData(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //签单时间选择 selTime(e,index){ this.setState({ entryTime:e, signDate:e, selTime:index }) }, //退单操作 //点击退单 tuikuan(){ this.setState({ lookVisible:true }) }, //关闭退单 noCancel(){ this.setState({ lookVisible:false }) }, //点击确认退单 tuidanOk(){ let contractUrls = []; let applicationUrls = []; if (this.state.contractUrl.length) { let picArr = []; this.state.contractUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ){ picArr.push(item.response.data); } }); contractUrls = picArr.join(","); }; if (this.state.applicationUrl.length) { let picArr = []; this.state.applicationUrl.map(function (item) { if ( item.response && item.response.data && item.response.data.length ){ picArr.push(item.response.data); } }); applicationUrls = picArr.join(","); }; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context +'/api/admin/newOrder/addOrderRefund' , data: { orderNo:this.state.orderNo,//订单编号 contractUrl:contractUrls.length?contractUrls:'',//终止合同 applicationUrl:applicationUrls.length?applicationUrls:'',//退单申请表 reason:this.state.reason,//退单原因 } }).done(function(data) { this.setState({ loading: false }); if(!data.error.length) { message.success('退单成功!'); this.noCancel(); this.handleCancel(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //开单选择订单类型骚操作 orderTypeFn(e){ if(e==0){ this.setState({ bussStats:true, orderType:e }) this.category(); }else{ this.setState({ contractType:undefined, bussStats:false, orderType:e }) } }, //品类数据获取 category(){ $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/Varieties/getSuperList", data: { }, success: function(data) { let thedata = data.data; let theArr=[]; if(!thedata) { if(data.error && data.error.length) { message.warning(data.error[0].message); }; thedata = {}; }else{ thedata.map(function(item,index){ theArr.push({ key:index, name:item.cname, id:item.id, }) }) } this.setState({ contractType:undefined, categoryArr:theArr, }) }.bind(this), }); }, componentWillReceiveProps(nextProps) { //props改变时触发 this.state.visible = nextProps.showDesc; this.state.signBillVisible=nextProps.signBillVisible; if(this.state.signBillVisible){ this.loaduser(nextProps.uid) }; if(nextProps.userDetaile && nextProps.showDesc) { this.loaduser(nextProps.datauser); this.loaduserss(nextProps.datauser); this.loadData(nextProps.datauser); }else{ this.setState({ orderType:undefined, customerName:'', autoId:'', customerArr:[], contractType:undefined, bussStats:false, customType:undefined }) } }, render() { const FormItem = Form.Item const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const changeHtml=this.state.changeHtml ||[]; const categoryList=this.state.categoryArr ||[]; const orderDetaiel=this.state.orderList || []; const dataSources=this.state.customerArr || []; const options = this.state.states?dataSources.map((group,index) => {group.name} ):dataSources.map((group,index) => {group.bname} ) return(
{!this.props.userDetaile?
*
*
:
{this.state.orderNo} {this.setState({contractNo:e.target.value})}} style={{width:'240px'}} /> {this.state.userName} {getProcessStatus(this.state.processStatus)} {getLiquidationStatus(this.state.liquidationStatus)} {this.state.settlementAmount+'万元'} {this.state.settlementAmount?:''} {this.setState({contacts:e.target.value})}} style={{width:'240px'}} /> * {this.setState({contactMobile:e.target.value})}} style={{width:'240px'}} /> * {this.setState({legalPerson:e.target.value})}} style={{width:'240px'}} /> {this.setState({legalPersonTel:e.target.value})}} style={{width:'240px'}} />
{this.setState({totalAmount:e.target.value})}} style={{width:'240px'}} /> * {this.setState({firstAmount:e.target.value})}} style={{width:'240px'}} /> * {}} value={this.state.signDate ? moment(this.state.signDate) : null} onChange={(data, dataString) => { this.setState({ signDate: dataString }); }} />
*合同扫描件 } >

图片建议:要清晰。

{this.setState({orderRemarks:e.target.value})}}/>
{this.state.salesmanName} {orderDetaiel.projectType}
{this.state.financeName} {orderDetaiel.projectType}
催款节点 {this.state.processStatus==0?:""}
项目业务 {this.state.processStatus==0?:""}
{this.state.processStatus==0?
:""} }
{this.state.addState?
* {this.setState({commodityQuantity:e.target.value})}} ref="commodityQuantity"/> * {this.setState({commodityPrice:e.target.value})}} ref="commodityPrice"/> * *
{this.setState({taskComment:e.target.value})}} />
:
{this.state.commodityName} {this.setState({commodityQuantity:e.target.value})}} /> * {this.setState({commodityPrice:e.target.value})}} /> * *
{this.setState({taskComment:e.target.value})}} />
}
{this.setState({contractUrl:e})}} pictureUrl={this.state.contractUrl} visible={this.props.visible} data={{'sign':'order_refund_file',url:'/api/admin/newOrder/uploadRefundOrderFile',number:8}} />
{this.setState({applicationUrl:e})}} pictureUrl={this.state.applicationUrl} visible={this.props.visible} data={{'sign':'order_refund_file',url:'/api/admin/newOrder/uploadRefundOrderFile',number:8}} />
{this.setState({reason:e.target.value})}}/>
) } })); export default Form.create()(NewService);