import React from 'react'; import { Table, Modal, message, Spin, Input, Select, Button, Radio, Form, Upload, Popconfirm, AutoComplete, DatePicker } from 'antd'; import $ from 'jquery/src/ajax'; import '../../userMangagement.less'; import { splitUrl, getOrderType, getProjectState, getOrderState, getTransactionProject, getChangeState, getPaymentState, getOrderChannel, getApprovedState, getTransactionChannel, beforeUploadFile } from '../../../../tools.js'; import ImgList from "../../../../common/imgList"; import EnterpriseNameChange from "../../../../common/enterpriseNameChange"; 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/order/getOrderCommodity', 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, commodityName: thisdata.commodityName, commodityType: thisdata.commodityType, commodityMode: thisdata.commodityMode, commodityQuantity: thisdata.commodityQuantity, commodityPrice: thisdata.commodityPrice, discountPrice: thisdata.discountPrice, commodityFirstPayment: thisdata.commodityFirstPayment, createTimes: thisdata.createTimes, discountFirstPayment: thisdata.discountFirstPayment, remarks: thisdata.remarks, }); }; } this.setState({ dataSource: theArr, pagination: false, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, getInitialState() { return { loading: false, visible: false, orgCodeUrl: [], lookState: false, checkedKeys: [], lookflowList: [], editFw: [], signBillVisible: false, commod: '', columns: [ { title: '业务项目名称', dataIndex: 'commodityName', key: 'commodityName', render: (text, record) => { return ( {text}{record.patentTypeName} ) } }, { title: '项目类别', dataIndex: 'commodityType', key: 'commodityType', render: (text) => { return (getOrderType(text)) } }, { title: '项目数量', dataIndex: 'commodityQuantity', key: 'commodityQuantity' }, { title: '服务市价(万元)', dataIndex: 'commodityPrice', key: 'commodityPrice' }, { title: '实签价格(万元)', dataIndex: 'discountPrice', key: 'discountPrice' }, { title: '下单时间', dataIndex: 'createTimes', key: 'createTimes' }, { title: '项目说明', dataIndex: 'remarks', key: 'remarks', render: (text) => { return (text && text.length > 8 ? text.substr(0, 8) + '…' : text) } }, { title: '操作', dataIndex: 'ABC', key: 'ABC', render: (text, record) => { return
{ this.delectRow(record) }} okText="是" cancelText="否">
} }, ], flowList: [ { title: '平台流水号', dataIndex: 'billNo', key: 'billNo', }, { title: '平台流水时间', dataIndex: 'createTime', key: 'createTime' }, { title: '流水金额(万元)', dataIndex: 'transactionAmount', key: 'transactionAmount' }, { title: '付款人名称', dataIndex: 'payerName', key: 'payerName' }, { title: '收款人名称', dataIndex: 'payeeName', key: 'payeeName' }, { title: '流水科目', dataIndex: 'transactionSubject', key: 'transactionSubject', render: (text) => { return getTransactionProject(text) } }, { title: '流水外联', dataIndex: 'transactionChannel', key: 'transactionChannel', render: (text) => { return getTransactionChannel(text) } }, { title: '财务流水号', dataIndex: 'financialPayNo', key: 'financialPayNo', }, { title: '财务流水时间', dataIndex: 'financialPayTime', key: 'financialPayTime', }, { title: '流水确认', dataIndex: 'confirmSign', key: 'confirmSign', render: (text) => { return text ? '已确认' : '待确认' } }, { title: '确认时间', dataIndex: 'confirmTime', key: 'confirmTime', } ] }; }, //新建订单、编辑订单保存 handleSubmit(e) { e.preventDefault(); if (this.props.userDetaile) { if (!this.state.signTotalAmount) { message.warning('请输入实签订单金额!'); this.refs.signFirstPayment.focus() return false; }; if (!this.state.signFirstPayment) { message.warning('实签首款金额不能为空'); this.refs.signFirstPayment.focus() return false; }; } else { if (this.state.orderType == undefined) { message.warning('请选择订单类型'); return false; } if (this.state.autoId == undefined || !this.state.autoId) { message.warning('客户名称不匹配'); return false; }; } this.props.form.validateFields((err) => { if (!err) { this.setState({ loading: true }); let api = this.props.userDetaile ? '/api/admin/order/updateServiceOrder' : '/api/admin/order/createOrder'; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: !this.props.userDetaile ? { uid: this.state.autoId, orderType: this.state.orderType } : { orderNo: this.props.datauser.orderNo, // firstPayment:this.state.firstPayment, // orderAmount:this.state.orderAmount, signTotalAmount: this.state.signTotalAmount, signFirstPayment: this.state.signFirstPayment, orderRemarks: this.state.orderRemarks, contractNo: this.state.contractNo } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('保存成功!'); this.handleOk() } 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/order/getServiceOrderDetail', 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({ orderUid: thisData.buyerId, id: thisData.id, orderList: thisData, changeStatus: thisData.changeStatus, orderAmount: thisData.orderAmount, firstPayment: thisData.firstPayment, signTotalAmount: thisData.signTotalAmount, signFirstPayment: thisData.signFirstPayment, approval: thisData.approval == 0 ? thisData.approval.toString() : thisData.approval, orderRemarks: thisData.orderRemarks, orgCodeUrl: thisData.contractPictureUrl ? splitUrl(thisData.contractPictureUrl, ',', globalConfig.avatarHost + '/upload') : [], //签单 orderNo: thisData.orderNo,//订单编号 buyerName: thisData.buyerName, contractNo: thisData.contractNo }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, handleOk() { this.setState({ visible: false, }); this.props.closeDesc(false, true); }, handleCancel() { this.setState({ visible: false, }); this.props.closeDesc(false); }, //删除 delectRow(record) { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/order/deleteOrderCommodity", data: { detailId: record.id } }).done(function (data) { if (!data.error.length) { message.success('删除成功!'); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); }; this.loadData(); }.bind(this)); }, //添加明细 addDetailed() { this.setState({ customerArr: [], commodityName: '', commodityId: '', commodityMode: '', commodityQuantity: '', commodityPrice: '', discountPrice: '', commodityFirstPayment: '', discountFirstPayment: '', remarks: '', addState: 1, addnextVisible: true }) }, nextCancel() { this.setState({ addnextVisible: false }) }, tableRowClick(record) { this.setState({ editFw: record, addnextVisible: true, addState: 0, }); }, componentWillMount() { }, //查看订单详情里面的各种骚操作 //受理订单 admissibleOrderOK() { let idArr = this.props.datauser; this.props.admissibleOrder(idArr, true) }, //拒绝受理 admissibleOrderCancel() { let idArr = this.props.datauser; this.props.admissibleOrder(idArr, false) }, //取消订单 cancelOrder() { let idArr = this.props.datauser; this.props.operation(idArr, 3) }, //作废订单 scrapOrder() { let idArr = this.props.datauser; this.props.operation(idArr, 2) }, //锁定订单 lockOrder() { let idArr = this.props.datauser; this.props.operation(idArr, 0) }, //解锁订单 unlockOrder() { let idArr = this.props.datauser; this.props.operation(idArr, 1) }, //签单 signBitt() { this.setState({ contractNo: this.state.contractNo, signVisible: true, entryTime: undefined, selTime: undefined }) }, signBittOk() { this.setState({ signVisible: false }) }, signBillOk() { this.setState({ signBillVisible: false }) }, signBillCancel() { this.setState({ signVisible: false, signBillVisible: false, }); this.props.closeDesc(false, true); }, //加载(自动补全) supervisor(e, state) { //客户名称与服务名称自动补全 let api = state ? '/api/admin/customer/findCustomerByName' : '/api/admin/order/getBusinessProjectByName'; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: state ? { name: e } : { 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 }) }, //新建明细保存 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.discountPrice) { message.warning('请输入实签价格!'); this.refs.discountPrice.focus(); return false; }; if (!this.state.commodityQuantity) { message.warning('请输入商品数量!'); this.refs.commodityQuantity.focus(); return false; }; if (!this.state.commodityFirstPayment) { message.warning('请输入市场首付金额!'); this.refs.commodityFirstPayment.focus(); return false; }; if (!this.state.discountFirstPayment) { message.warning('请输入签单首付金额!'); this.refs.discountFirstPayment.focus(); return false; }; this.setState({ loading: true }); let api = this.state.addState ? '/api/admin/order/addOrderCommodity' : '/api/bianji'; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: { commodityId: this.state.gid, orderNo: this.props.datauser.orderNo, commodityName: this.state.commodityName,//商品名称 commodityMode: this.state.commodityMode,//商品规格 commodityQuantity: this.state.commodityQuantity,//商品数量 commodityType: 0,//商品类型 commodityPrice: this.state.commodityPrice,//市场总价 discountPrice: this.state.discountPrice,//签单总价 commodityFirstPayment: this.state.commodityFirstPayment,//市场首付金额 discountFirstPayment: this.state.discountFirstPayment,//签单首付金额 remarks: this.state.remarks,//服务说明 } }).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)); }, //签单保存 signOk(e) { e.preventDefault(); this.temporarySave(false) }, //暂存信息 temporary() { this.temporarySave(true) }, //签单时间选择 selTime(e, index) { this.setState({ entryTime: e, selTime: index }) }, signSub(e) { e.preventDefault(); if (!this.state.selTime) { message.warning("请选择签单时间!"); return false; }; this.setState({ loading: true }); $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/order/signServiceOrder', data: { orderNo: this.props.datauser.orderNo, signTotalAmount: this.state.signTotalAmount, signFirstPayment: this.state.signFirstPayment, approval: this.state.approval, orderRemarks: this.state.orderRemarks, contractNo: this.state.contractNo, signTime: this.state.selTime } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('操作成功!'); this.signBillCancel() } else { message.warning(data.error[0].message); } }.bind(this)); }, //签单保存与暂存函数 temporarySave(e) { if (!this.state.signTotalAmount) { message.warning('实签款项不能为空!') return false; }; if (!this.state.signTotalAmount) { message.warning('实签首款不能为空!') return false; }; if (this.state.approval == undefined) { message.warning('实签首款不能为空!') return false; }; if (!this.state.contractNo) { message.warning("请输入合同编号!"); return false; } this.setState({ loading: true }); let api = e ? '/api/admin/order/updateServiceOrder' : '/api/admin/order/signServiceOrder'; $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + api, data: { orderNo: this.props.uid ? this.props.uid.orderNo : this.props.datauser.orderNo, signTotalAmount: this.state.signTotalAmount, signFirstPayment: this.state.signFirstPayment, approval: this.state.approval, orderRemarks: this.state.orderRemarks, contractNo: this.state.contractNo } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('操作成功!'); this.signBillCancel() } else { message.warning(data.error[0].message); } }.bind(this)); }, lookflow() { this.setState({ loading: true, lookVisible: true, }) this.state.lookSource = []; $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/order/getBillByOrderNo', data: { 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, billNo: thisdata.billNo, transactionAmount: thisdata.transactionAmount, createTime: thisdata.createTime, payerName: thisdata.payerName, payeeName: thisdata.payeeName, transactionSubject: thisdata.transactionSubject, transactionChannel: thisdata.transactionChannel, financialPayNo: thisdata.financialPayNo, financialPayTime: thisdata.financialPayTime, orderNo: thisdata.orderNo, departmentName: thisdata.departmentName, salesmanName: thisdata.salesmanName, financeName: thisdata.financeName, confirmSign: thisdata.confirmSign, deleteSign: thisdata.deleteSign, confirmTime: thisdata.confirmTime }); }; }; this.setState({ lookflowList: theArr, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, lookCancel() { this.setState({ lookVisible: false }) }, /* -----变更操作开始----- */ //新建变更 addChange() { this.setState({ addChangeState: true, stateAdd: 1, changeRemarks: '' }) }, //产看变更记录 lookChange() { this.setState({ addChangeState: true, stateAdd: 0 }) this.lookChangeData() }, //查看变更列表修改变更 modifyChangeCancel() { this.setState({ modifyChangeState: false }) }, //获取变更记录 lookChangeData() { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/order/viewOrderChange', data: { 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++) { theArr = data.data; }; }; this.setState({ changeHtml: theArr, }); }.bind(this), }).always(function () { this.setState({ loading: false }); }.bind(this)); }, //添加变更状态 addChangeCancel() { this.setState({ addChangeState: false }) }, //新建变更 subChangeState(e) { e.preventDefault(); this.setState({ loading: true }); $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/order/addOrderChange', data: { orderNo: this.props.datauser.orderNo, changeComment: this.state.changeRemarks } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('保存成功!'); this.addChangeCancel(); this.loaduser(); } else { message.warning(data.error[0].message); } }.bind(this)); }, //查看修改变更 modifyChange(item) { this.setState({ modifyChangeState: true, changePromoter: item.creater, changeTime: item.createTime, changeState: item.changeStatus, changeRemarks: item.changeComment, idt: item.changeId, orderNot: item.orderNo }) }, //删除变更 modifyDelete(item) { this.setState({ loading: true }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/order/deleteOrderChange', data: { changeId: item.changeId, } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('删除成功!'); this.lookChangeData(); this.loaduser() } else { message.warning(data.error[0].message); } }.bind(this)); }, //修改变更保存 changeModify(e) { e.preventDefault(); this.setState({ loading: true }); $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + '/api/admin/order/updateOrderChange', data: { changeId: this.state.idt, changeStatus: this.state.changeState, changeComment: this.state.changeRemarks } }).done(function (data) { this.setState({ loading: false }); if (!data.error.length) { message.success('保存成功!'); this.modifyChangeCancel(); this.lookChangeData(); this.loaduser() } else { message.warning(data.error[0].message); } }.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.loadData(nextProps.datauser); } else { this.setState({ orderType: undefined, customerName: '', autoId: '', customerArr: [] }) } }, render() { const FormItem = Form.Item const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const changeHtml = this.state.changeHtml || []; const editFws = this.state.editFw; const orderDetaiel = this.state.orderList || [] const dataSources = this.state.customerArr || []; const options = this.state.states ? dataSources.map((group, index) => {group.name} ) : dataSources.map((group) => {group.bname} ) return (
{this.state.visible ?
{!this.props.userDetaile ?
:
{orderDetaiel.orderNo} {orderDetaiel.createTime} {orderDetaiel.buyerName} {getOrderType(orderDetaiel.orderType)} {getOrderChannel(orderDetaiel.orderChannel)} {getOrderState(orderDetaiel.orderStatus)} {orderDetaiel.actuallyTotalAmount + '万元'} {getPaymentState(orderDetaiel.liquidationStatus)} {orderDetaiel.orderAmount + '万元'} {orderDetaiel.firstPayment + '万元'} {orderDetaiel.deleteSign == 0 && orderDetaiel.orderStatus == 2 || orderDetaiel.changeStatus == 1 ?
{ this.setState({ signTotalAmount: e.target.value }) }} style={{ width: '240px' }} /> * { this.setState({ signFirstPayment: e.target.value }) }} style={{ width: '240px' }} /> * {getApprovedState(this.state.approval)} { this.setState({ contractNo: e.target.value }) }} style={{ width: '240px' }} />
{ this.setState({ orderRemarks: e.target.value }) }} />
{getChangeState(orderDetaiel.changeStatus)}
{orderDetaiel.orderStatus >= 3 &&
}
:
{orderDetaiel.signTotalAmount + '万元'} {orderDetaiel.signFirstPayment + '万元'} {getApprovedState(orderDetaiel.approval)} {orderDetaiel.contractNo}
{/* {*/} {/* this.setState({*/} {/* previewImage: file.url || file.thumbUrl,*/} {/* previewVisible: true,*/} {/* });*/} {/* }} />*/} {this.state.orgCodeUrl && this.state.visible ?
:
} { this.setState({ previewVisible: false }) }}>

{this.state.orderRemarks}

{getChangeState(orderDetaiel.changeStatus)}
{orderDetaiel.orderStatus >= 3 &&
}
}
{orderDetaiel.salesmanName} {orderDetaiel.projectType}
{orderDetaiel.createTime} {orderDetaiel.signTime} {orderDetaiel.financeName} {orderDetaiel.technicianName} {orderDetaiel.setUpTime} {getProjectState(orderDetaiel.projectStage)}
项目业务 {this.props.datauser.active.applySign || orderDetaiel.changeStatus == 1 ? : ''}
}
{!this.props.userDetaile || orderDetaiel.deleteSign == 0 && orderDetaiel.orderStatus == 2 || orderDetaiel.changeStatus == 1 ? : ''} {this.props.userDetaile ?
{this.props.datauser.active.confirmIntention && { this.admissibleOrderOK() }} onCancel={() => { this.admissibleOrderCancel() }} okText="同意" cancelText="拒绝"> } {this.props.datauser.active.applySign && } {this.props.datauser.active.applyForCancel && { this.cancelOrder() }} okText="确认" cancelText="取消"> } {this.props.datauser.active.applyRevoke && { this.scrapOrder() }} okText="确认" cancelText="取消"> } {this.props.datauser.active.applyLock && { this.lockOrder() }} okText="确认" cancelText="取消"> } {this.props.datauser.active.applyUnLock && { this.unlockOrder() }} okText="确认" cancelText="取消"> }
: ''}
:
}
{this.state.addState ?
* {this.state.commodityPrice} { this.setState({ discountPrice: e.target.value }) }} ref="discountPrice" /> * { this.setState({ commodityQuantity: e.target.value }) }} ref="commodityQuantity" /> * {this.state.commodityFirstPayment} { this.setState({ discountFirstPayment: e.target.value }) }} ref='discountFirstPayment' /> * { this.setState({ commodityMode: e.target.value }) }} />
{ this.setState({ remarks: e.target.value }) }} />
:
{editFws.commodityName} {editFws.commodityPrice} {editFws.discountPrice + '万元'} {editFws.commodityQuantity} {editFws.commodityMode} {editFws.commodityFirstPayment + '万元'} {editFws.discountFirstPayment + '万元'}
{editFws.remarks}
}
{this.state.orderNo} {this.state.buyerName} { this.setState({ signTotalAmount: e.target.value }) }} /> * { this.setState({ signFirstPayment: e.target.value }) }} /> * * { this.setState({ contractNo: e.target.value }) }} style={{ width: '200px' }} /> *
{ this.setState({ orderRemarks: e.target.value }) }} />
{/**/}
*
{ this.selTime(e, time) }} />*
{this.state.stateAdd ?
{ this.setState({ changeRemarks: e.target.value }) }} />
:
{ changeHtml.length ? changeHtml.map(function (item, index) { return (
{item.creater} {item.createTime}
{getChangeState(item.changeStatus)} {/**/}

{item.changeComment}

) }, this) :

暂无变更记录

}
}
{this.state.changePromoter} {this.state.changeTime}
{ this.setState({ changeState: e.target.value }) }} value={this.state.changeState}> 变更中 变更完成
{ this.setState({ changeRemarks: e.target.value }) }} />
) } })); export default NewService;