import React from "react"; import { Icon, Button, Input, Select, Spin, Table, message, DatePicker, Upload, Form, Modal, Tabs, Col, Popconfirm, Tag } from "antd"; import $ from "jquery/src/ajax"; import moment from "moment"; import { getLiquidationStatus, getApprovedState, getProcessStatus, splitUrl, getjiedian, getboutique, getCuikuan, getProjectStatus, getRefundStatus, ShowModal } from "@/tools.js"; import "./customer.less"; import ShowModalDiv from "@/showModal.jsx"; import ResolutionDetail from "@/resolutionDetail"; const confirm = Modal.confirm; import OrderRiZi from "@/orderRiZi.jsx"; //图片组件 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 = (
点击上传
); return (
{fileList.length >= 10 ? null : uploadButton} example
); } }); const outsourcingPro = Form.create()( React.createClass({ loadData(pageNo) { this.setState({ visitModul: false, loading: true, ispage: pageNo, modalVisible: false, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/outsourceOrg/orderOutsourceList", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, contractNo: this.state.contractNoSearch, name: this.state.nameSearch, //名称 orderNo: this.state.orderNoSearch, //订单编号 starTime: this.state.releaseDate[0], //开始时间 endTime: this.state.releaseDate[1], //结束时间 refundStatus: this.state.refundStatusSearch, //外包审核状态 type: 1, }, success: function (data) { ShowModal(this); 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]; theArr.push({ key: i, tid: thisdata.tid, //用户ID orderNo: thisdata.orderNo, //订单编号 contractNo: thisdata.contractNo, //签单金额 createTime: thisdata.createTime, //流程状态 signTime: thisdata.signTime, //结算状态 userName: thisdata.userName, //特批状态 depName: thisdata.depName, //签单时间 totalAmount: thisdata.totalAmount, //客户名称 adminName: thisdata.adminName, //营销员名称 financeName: thisdata.financeName, //财务名称 liquidationStatus: thisdata.liquidationStatus, //下单时间 refundStatus: thisdata.refundStatus, pname: thisdata.pname, cname: thisdata.cname, bname: thisdata.bname, }); } 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 { rotateDeg: 0, page: 1, releaseDate: [], selectedRowKeys: [], pictureUrl: [], fileUrl: [], attachmentUrl: [], paginations: false, okVisible: false, noVisible: false, activeKey: "1", confirmLoading: false, aloading: false, 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: "orderNo", key: "orderNo", }, { title: "合同编号", dataIndex: "contractNo", key: "contractNo", }, { title: "客户名称", dataIndex: "userName", key: "userName", }, { title: "订单部门", dataIndex: "depName", key: "depName", }, { title: "订单负责人", dataIndex: "adminName", key: "adminName", }, { title: "项目类别", dataIndex: "cname", key: "cname", }, { title: "项目编号", dataIndex: "tid", key: "tid", }, { title: "项目名称", dataIndex: "bname", key: "bname", }, { title: "项目负责人", dataIndex: "pname", key: "pname", }, { title: "外包审核", dataIndex: "refundStatus", key: "refundStatus", render: (text) => { if (text == 0) { return 待审核; } else if (text == 1) { return 审核通过; } else if (text == 2) { return 审核驳回; } }, }, // { // title: "操作", // dataIndex: "caozuo", // key: "caozuo", // render: (text, record) => { // if (record.refundStatus == 0) { // return ( //
// // //
// ) // } // } // } ], data: [], dataSource: [], columnsX: [ { title: "业务项目名称", dataIndex: "commodityName", key: "commodityName", }, { title: "项目类别", dataIndex: "cname", key: "cname", }, { title: "项目数量", dataIndex: "commodityQuantity", key: "commodityQuantity", render: (text, record) => { if (record.splitStatus == 1) { return ( {text}{" "} { e.stopPropagation(); this.showRes(record); }} > 已拆 ); } else { return text; } }, }, { title: "金额(万元)", dataIndex: "commodityPrice", key: "commodityPrice", }, { title: "负责人", dataIndex: "contacts", key: "contacts", }, { title: "负责人电话", dataIndex: "contactsMobile", key: "contactsMobile", }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: (text) => { return getProjectStatus(text); }, }, { 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; }, }, ], resVisible: false, columnsrizhi: [ { title: "流程", dataIndex: "processName", key: "processName", }, { title: "操作人", dataIndex: "adminName", key: "adminName", }, { title: "时间", dataIndex: "createDate", key: "createDate", }, { title: "备注", dataIndex: "remarks", key: "remarks", }, ], dataSourceX: [], ContactsListsNew: [ { title: "项目名称", dataIndex: "commodityName", key: "commodityName", render: (text) => { return {text}; }, }, { title: "项目分类", dataIndex: "projectType", key: "projectType", render: (text) => { let arr = this.state.dataSourceX || []; let str = ""; for (let i = 0; i < arr.length; i++) { if (this.state.dataSourceX[i].sort == text) { str = this.state.dataSourceX[i].cname; return {str}; } } }, }, { title: "催款科目", dataIndex: "dunTypeName", key: "dunTypeName", render: (text) => { return {text}; }, }, { title: "时间(天)", dataIndex: "waitDay", key: "waitDay", render: (text, record) => { if (record.dunTypeName) { return {text}; } }, }, { title: "金额(万元)", dataIndex: "money", key: "money", render: (text, record) => { if (record.dunTypeName) { if (record.appropriationRatio && !record.money) { return {record.appropriationRatio}(拨款比例); } else if (record.appropriationRatio && record.money) { return ( {text}(比例:{record.appropriationRatio}) ); } else { return {text}; } } }, }, { title: "服务年限", dataIndex: "startDate", key: "startDate", render: (text, record) => { if (record.dunTypeName) { return {text}; } }, }, { title: "催款状态", dataIndex: "status", key: "status", render: (text) => { return {text == 1 ? "已启动" : "未启动"}; }, }, ], ContactsLists: [ { title: "催款科目", dataIndex: "dunSubject", key: "dunSubject", render: (text) => { return getjiedian(text); }, }, { title: "金额(万元)", dataIndex: "money", key: "money", }, { title: "催款状态", dataIndex: "dunStatus", key: "dunStatus", render: (text) => { return getCuikuan(text); }, }, ], }; }, cancel() { this.setState({ visible: false, remarks: undefined, activeKey: "1", }); }, 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) { 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({ 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, //首付金额 approval: thisdata.approval, //特批状态 settlementAmount: thisdata.settlementAmount, //已收款项 orderRemarks: thisdata.orderRemarks, //订单留言 orgCodeUrl: thisdata.contractPictureUrl ? splitUrl( thisdata.contractPictureUrl, ",", globalConfig.avatarHost + "/upload" ) : [], //图片地址 replenishUrl: thisdata.agreementUrl ? splitUrl( thisdata.agreementUrl, ",", globalConfig.avatarHost + "/upload" ) : [], //图片地址 salesmanName: thisdata.salesmanName, //营销员名称 salesmanMobile: thisdata.salesmanMobile, //营销员电话 oldSalesmanName: thisdata.oldSalesmanName, //营销员名称 oldSalesmanMobile: thisdata.oldSalesmanMobile, //营销员电话 financeName: thisdata.financeName, //财务名称 financeMobile: thisdata.financeMobile, //财务电话 nowFinance: thisdata.nowFinance, //财务名称 nowFinanceMobile: thisdata.nowFinanceMobile, //财务电话 depName: thisdata.depName, outsource: thisdata.outsource == 0 ? "否" : "是", }); } }.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, //联系人电话 projectStatus: thisdata.projectStatus, //项目状态 splitStatus: thisdata.splitStatus, }); } } this.setState({ dataSourceX: theArr, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, // 拆分详细 showRes(record) { this.setState({ resVisible: true, resRecord: record, }); }, resCancel() { this.setState({ resVisible: false, }); }, rizhi() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: "/api/admin/newOrder/selectOrderLog", data: { orderNo: this.state.orderNo, }, success: function (data) { let theArr = []; let thisData = data.data; if (!thisData.length) { if (data.error && data.error.length) { message.warning(data.error[0].message); } thisData = {}; } else { for (let i = 0; i < data.data.length; i++) { let thisdata = data.data[i]; theArr.push({ processName: thisdata.processName, adminName: thisdata.adminName, createDate: thisdata.createDate, remarks: thisdata.remarks, }); } } this.setState({ dataSourcerizhi: theArr, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, getOrderLog() { this.setState({ rizhivisible: true, }); this.rizhi(); }, closeOrderLog() { this.setState({ rizhivisible: false, }); }, //节点列表 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, //催款状态 }); } this.setState({ contactList: theArr, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, jiedianNew(orderNos) { $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrderDun/selectListNewOrderDun", data: { orderNo: orderNos, }, success: function (data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } else { let theArr = []; let thisData = []; let arr = data.data || []; let totalCui = 0; for (let i = 0; i < arr.length; i++) { thisData = arr[i]; totalCui += +thisData.money; theArr.push({ key: i, dunSubject: thisData.dunSubject ? thisData.dunSubject.toString() : "", //催款科目 id: thisData.id, //节点Id money: thisData.money, //催款金额 // orderNo: record ? record.orderNo : this.props.datauser.orderNo, commodityName: thisData.commodityName, projectType: thisData.projectType, dunTypeName: thisData.dunTypeName, status: thisData.status, waitDay: thisData.waitDay, effectiveCount: thisData.effectiveCount, startDate: thisData.startDate, dunType: thisData.dunType, appropriationRatio: thisData.appropriationRatio, }); } if (!totalCui) { totalCui = 0; } totalCui = (Math.round(totalCui * 10000) / 10000).toFixed(4); this.setState({ contactListNew: theArr, totalCui, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, tableRowClick(record) { this.setState( { visible: true, loading: true, refundStatus: record.refundStatus, tid: record.tid, }, () => { console.log(this.state.tid); } ); this.xiangqing(record.orderNo); this.xiangmu(record.orderNo); this.jiedian(record.orderNo); this.jiedianNew(record.orderNo); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/outsourceOrg/orderOutsourceDtails", data: { orderNo: record.orderNo, tid: record.tid, }, success: function (data) { 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, orderNo: thisdata.orderNo, createTimes: thisdata.createTimes, auditTimes: thisdata.auditTimes, remarks: thisdata.remarks, pictureUrl: thisdata.pictureUrl ? splitUrl( thisdata.pictureUrl, ",", globalConfig.avatarHost + "/upload" ) : [], //图片地址 amount: thisdata.amount, refundStatus: thisdata.refundStatus, companyName: thisdata.companyName, outsourceRemarks: thisdata.outsourceRemarks, unitNumber: thisdata.unitNumber, unitPrice: thisdata.unitPrice, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //页面加载函数 componentWillMount() { this.loadData(); }, //审核 examOk() { if (this.state.remarks == "" || this.state.remarks == undefined) { message.warning("请填写备注信息!"); return; } this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/outsourceOrg/auditOutsourceNew", data: { id: this.state.id, orderNo: this.state.orderNo, tid: this.state.tid, remarks: this.state.remarks, refundStatus: 1, type: 1, }, 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.cancel(); this.loadData(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, examNo() { if (this.state.remarks == "" || this.state.remarks == undefined) { message.warning("请填写备注信息!"); return; } this.setState({ loading: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/outsourceOrg/auditOutsourceNew", data: { id: this.state.id, orderNo: this.state.orderNo, tid: this.state.tid, remarks: this.state.remarks, refundStatus: 2, type: 1, }, 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.cancel(); this.loadData(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //通过发给外包 outsourcing() { if (this.state.flag) return; this.setState({ flag: true, }); $.ajax({ method: "post", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/auditOrderNew", data: { orderNo: this.state.orderNo, orderStatus: 2, outsource: 1, }, 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, flag: false, }); this.reset(); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, getUrl(url) { let theorgCodeUrl = []; if (url.length) { let picArr = []; url.map(function (item) { if ( item.response && item.response.data && item.response.data.length ) { picArr.push(item.response.data); } }); theorgCodeUrl = picArr.join(","); } return theorgCodeUrl; }, //搜索 search() { this.loadData(); }, //重置 reset() { this.state.nameSearch = ""; this.state.contractNoSearch = ""; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.state.refundStatusSearch = undefined; this.loadData(1); }, resets() { this.state.orderNo = ""; this.state.customerName = ""; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; }, getOrgCodeUrl(e) { this.setState({ pictureUrl: e }); }, callback(e) { this.setState({ activeKey: e, }); }, downImg() { let num = 0; for (let i = 0; i < this.state.orgCodeUrl.length; i++) { if (this.state.orgCodeUrl[i].url == this.state.previewImage) { num = i; } } if (num == this.state.orgCodeUrl.length - 1) { return message.warning("已经是最后一张了哦"); } this.state.previewImage = this.state.orgCodeUrl[num + 1].url; this.setState({ previewImage: this.state.previewImage, rotateDeg: 0, }); }, upImg() { let num = 0; for (let i = 0; i < this.state.orgCodeUrl.length; i++) { if (this.state.orgCodeUrl[i].url == this.state.previewImage) { num = i; } } if (num == 0) { return message.warning("已经是第一张了哦"); } this.state.previewImage = this.state.orgCodeUrl[num - 1].url; this.setState({ previewImage: this.state.previewImage, rotateDeg: 0, }); }, rotate() { let rotateDeg = this.state.rotateDeg + 90; this.setState({ rotateDeg, }); }, downImgs() { let num = 0; for (let i = 0; i < this.state.replenishUrl.length; i++) { if (this.state.replenishUrl[i].url == this.state.previewImage) { num = i; } } if (num == this.state.replenishUrl.length - 1) { return message.warning("已经是最后一张了哦"); } this.state.previewImage = this.state.replenishUrl[num + 1].url; this.setState({ previewImage: this.state.previewImage, rotateDeg: 0, }); }, upImgs() { let num = 0; for (let i = 0; i < this.state.replenishUrl.length; i++) { if (this.state.replenishUrl[i].url == this.state.previewImage) { num = i; } } if (num == 0) { return message.warning("已经是第一张了哦"); } this.state.previewImage = this.state.replenishUrl[num - 1].url; this.setState({ previewImage: this.state.previewImage, rotateDeg: 0, }); }, rotates() { let rotateDeg = this.state.rotateDeg + 90; this.setState({ rotateDeg, }); }, render() { const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const FormItem = Form.Item; const { TextArea } = Input; const { TabPane } = Tabs; const { RangePicker } = DatePicker; const cuiDataList = this.state.contactList || []; return (
{this.state.resVisible ? ( ) : ( "" )}
外包项目列表
{ this.setState({ nameSearch: e.target.value }); }} /> { this.setState({ contractNoSearch: e.target.value }); }} /> 下单时间 : { this.setState({ releaseDate: dataString }); }} />
{this.state.orderNo} {this.state.contractNo} {this.state.userName} {this.state.signDate} {getProcessStatus(this.state.processStatus)} {getLiquidationStatus(this.state.liquidationStatus)} {this.state.contacts} {this.state.contactMobile} {this.state.legalPerson} {this.state.legalPersonTel} {this.state.totalAmount} {this.state.firstAmount} {getApprovedState(this.state.approval)} {this.state.settlementAmount} {this.state.depName} {this.state.outsource}
{this.state.orderRemarks}
{ this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > { this.setState({ previewVisible: false, rotateDeg: 0, }); }} > { this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > { this.setState({ previewVisible: false, rotateDeg: 0, }); }} >
{this.state.salesmanName} {this.state.salesmanMobile}
{this.state.nowFinance} {this.state.nowFinanceMobile}
{this.state.oldSalesmanName} {this.state.oldSalesmanMobile}
{this.state.financeName} {this.state.financeMobile}
项目业务 {this.state.processStatus == 0 ? ( ) : ( "" )}
催款节点 金额总计(万元): {this.state.totalCui}
{this.state.companyName}
{this.state.unitPrice}
{this.state.unitNumber}
{this.state.amount}
{this.state.outsourceRemarks}
{ this.setState({ previewImage: file.url || file.thumbUrl, previewVisible: true, }); }} > { this.setState({ previewVisible: false }); }} >
{this.state.refundStatus == 0 ? (

* 审核意见 } > { this.setState({ remarks: e.target.value }); }} style={{ width: "440px" }} /> 通过或驳回都必须填写审核意见!
) : (

{this.state.remarks}
{getRefundStatus(this.state.refundStatus)}
{this.state.auditTimes}
)}
); }, }) ); export default outsourcingPro;