import React from "react"; import $ from "jquery/src/ajax"; import { Form, Radio, Icon, Button, Input, Spin, Table, message, DatePicker, Modal, Upload, Cascader, Tabs, Select, Col, Tag, Tooltip, } from "antd"; import NewService from "../../order/orderNew/addService.jsx"; import ResolutionDetail from "@/resolutionDetail"; import moment from "moment"; import "./userMangagement.less"; import { areaSelect } from "@/NewDicProvinceList"; import OrderRiZi from "@/orderRiZi.jsx"; import { getApprovedState, getprovince, getProcessStatus, getLiquidationStatus, getNewOrderStatus, beforeUploadFile, getProvinceA, getInvoiceStatus, splitUrl, ShowModal, getCuikuan, getjiedian, getProjectName, } from "../../../tools.js"; import ShowModalDiv from "@/showModal.jsx"; import { ChooseList } from "../../order/orderNew/chooseList"; import ReactToPrint from "react-to-print"; import Project from "../../../../component/project"; import ImgList from "../../../common/imgList"; import ProjectDetailsReadOnly from "../../../common/projectDetailsReadOnly"; import NewEditProject from "../../../common/projectOperation/newEditProject"; import OrderItemStatus from "../../../common/orderItemStatus"; import LogPopup from "../../../common/logPopup"; import EnterpriseNameChange from "../../../common/enterpriseNameChange"; import OrderCoor from "../../order/orderNew/changeComponent/orderCoor.jsx"; import ContentUrl from "../../order/orderNew/contentUrl.jsx"; import Cascaders from "../../../common/cascaders"; const { Option } = Select; const { TabPane } = Tabs; const PicturesWall = React.createClass({ getInitialState() { return { previewVisible: false, previewImage: "", fileList: this.props.pictureUrl, declarationBatch: 1, dataInfor: {}, }; }, 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 = ( <div> <Icon type="plus" /> <div className="ant-upload-text">点击上传</div> </div> ); return ( <div style={{ display: "inline-block" }}> <Upload beforeUpload={beforeUploadFile} action={ globalConfig.context + "/api/admin/orderInvoice/uploadOrderInvoiceFile" } multiple={true} data={{ sign: "order_invoice_file" }} listType="picture-card" fileList={fileList} onPreview={this.handlePreview} onChange={this.handleChange} > {uploadButton} </Upload> <Modal maskClosable={false} visible={previewVisible} footer={null} onCancel={this.handleCancel} > <img alt="example" style={{ width: "100%" }} src={previewImage} /> </Modal> </div> ); }, }); const Order = Form.create()( React.createClass({ loadData(pageNo) { this.state.data = []; this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/orderNewList", data: { pageNo: pageNo || 1, pageSize: this.state.pagination.pageSize, specially: 6, name: this.state.customerName, orderNo: this.state.searchOrderNo, starTime: this.state.releaseDate[0], endTime: this.state.releaseDate[1], liquidationStatus: this.state.liquidationStatusSearch, contractNo: this.state.contractNoSearch, deps: this.state.departmenttList, amountStatus: this.state.amountStatus, approval: this.state.approvalSearch, }, success: function (data) { ShowModal(this); let theArr = []; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; theArr.push({ key: thisdata.orderNo, id: thisdata.id, orderNo: thisdata.orderNo, //订单编号 totalAmount: thisdata.totalAmount, //签单金额 processStatus: thisdata.processStatus, //流程状态 liquidationStatus: thisdata.liquidationStatus, //结算状态 examineName: !thisdata.examineName ? undefined : thisdata.examineName, approval: thisdata.approval, //特批状态 signDate: thisdata.signDate, //签单时间 userName: thisdata.userName, //客户名称 salesmanName: thisdata.salesmanName, //营销员名称 financeName: thisdata.financeName, //财务名称 createDate: thisdata.createDate, //下单时间 orderStatus: thisdata.orderStatus, //订单状态 depName: thisdata.depName, //部门名称 contractNo: thisdata.contractNo, //合同编号 invoiceAmount: thisdata.invoiceAmount, //开票金额 settlementAmount: thisdata.settlementAmount, //已收款 }); } this.state.pagination.current = data.data.pageNo; this.state.pagination.total = data.data.totalCount; } if (!data.data.list.length) { this.state.pagination.current = 0; this.state.pagination.total = 0; } this.setState({ pageNo: pageNo, dataSource: theArr, pagination: this.state.pagination, selectedRowKeys: [], }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, getInitialState() { return { rotateDeg: 0, orderNos: "", kaiData: { remarks: "", type: undefined, orgCodeUrl: "", invoiceType: undefined, unitName: "", taxNumber: "", amount: "", banks: "", content: "", unitAddress: "", invoiceRemarks: "", unitMobile: "", post: undefined, addressee: "", addresseeMobile: "", addresseeProvince: "", addresseeCity: "", addresseeArea: "", recipientAddress: "", ordapproval: undefined, alreadyAmount: "0", ProvinceCity: [], }, changeList: undefined, datauser: {}, orgCodeUrl: [], selectedRowKeys: [], releaseDate: [], departmentArr: [], signBillState: false, signBillVisible: false, selectedRows: [], recordData: [], flag: false, searchMore: true, loading: false, alreadyAmount: 0, intentOrder: true, formalOrder: true, resVisible: false, pagination: { defaultCurrent: 1, defaultPageSize: 10, showQuickJumper: true, pageSize: 10, onChange: function (page) { this.loadData(page); }.bind(this), showTotal: function (total) { return "共" + total + "条数据"; }, }, columnsX: [ { title: "业务项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record) => { return <span>{text}<span style={{ color: "red" }}>{record.patentTypeName}</span>{"-" + record.id}</span> } }, { title: "项目类别", dataIndex: "cname", key: "cname", }, { title: "项目数量", dataIndex: "commodityQuantity", key: "commodityQuantity", render: (text, record) => { if (record.splitStatus == 1) { return ( <span> {text}{" "} <Tag color="#108ee9" onClick={(e) => { e.stopPropagation(); this.showRes(record); }} > 已拆 </Tag> </span> ); } else { return text; } }, }, { 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: "yearSum", key: "yearSum", render: (text, record) => { return ( <div>{["", "一年", "二年", "三年", "四年", "五年"][text]}</div> ); } }, { title: "年限", dataIndex: "serviceLife", key: "serviceLife", render: (text, record) => { return ( <div>{!!text && JSON.parse(text).toString()}</div> ); } }, { title: "本次派单", dataIndex: "serviceYear", key: "serviceYear", render: (text, record) => { return ( <div>{!text ? "" : text}</div> ); } }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", render: (text) => { return ( <Tooltip title={text}> <div style={{ width: 100, overflow: "hidden", whiteSpace: "nowrap", textOverflow: "ellipsis", }} >{text}</div> </Tooltip> ) }, }, ], ContactsListsNew: [ { title: "项目名称", dataIndex: "commodityName", key: "commodityName", render: (text, record) => { return <span>{text + "-" + record.tid}</span>; }, }, { 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 <span>{str}</span>; } } }, }, { title: "催款科目", dataIndex: "dunTypeName", key: "dunTypeName", render: (text, record) => { if (record.customizeName) { return text + record.customizeName; } return <span>{text}</span>; }, }, { title: "时间(天)", dataIndex: "waitDay", key: "waitDay", render: (text, record) => { if (record.dunTypeName) { if (record.customizeTimes) { return record.customizeTimes; } return <span>{text}</span>; } }, }, { title: "金额(万元)", dataIndex: "money", key: "money", render: (text, record) => { if (record.dunTypeName) { if (record.appropriationRatio) { let percent = Number(record.appropriationRatio * 100).toFixed(2); percent += "%"; return <span>{percent}(拨款比例)</span>; } else { return <span>{text}</span>; } } }, }, { title: "服务年限", dataIndex: "startDate", key: "startDate", render: (text, record) => { if (record.dunTypeName) { return <span>{text}</span>; } }, }, { title: "催款状态", dataIndex: "status", key: "status", render: (text) => { return <span>{text == 1 ? "已启动" : "未启动"}</span>; }, }, ], 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); }, }, ], cuiColumns: [ { title: "序号", dataIndex: "key", key: "key", }, { title: "合同编号", dataIndex: "contractNo", key: "contractNo", }, { title: "订单编号", dataIndex: "orderNo", key: "orderNo", }, { title: "客户名称", dataIndex: "userName", key: "userName", render: (text) => { return ( <Tooltip title={text}> <div // style={{ // maxWidth: "150px", // overflow: "hidden", // textOverflow: "ellipsis", // whiteSpace: "nowrap", // }} > {text} </div> </Tooltip> ); }, }, { title: "订单负责人", dataIndex: "salesmanName", key: "salesmanName", }, { title: "订单部门", dataIndex: "depName", key: "depName", }, { title: "订单状态", dataIndex: "orderStatus", key: "orderStatus", render: (text) => { return getNewOrderStatus(text); }, }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: (text) => { return getProjectName(text); }, }, { title: "签单金额", dataIndex: "totalAmount", key: "totalAmount", }, { title: "结算状态", dataIndex: "liquidationStatus", key: "liquidationStatus", render: (text) => { return getLiquidationStatus(text); }, }, { title: "已收款", dataIndex: "settlementAmount", key: "settlementAmount", }, { title: "应收款", dataIndex: "accountsReceivable", key: "accountsReceivable", }, { title: "催收科目", dataIndex: "dunSubject", key: "dunSubject", // render: text => { // return getjiedian(text); // } }, { title: "催款状态", dataIndex: "dunStatus", key: "dunStatus", }, { title: "催收启动时间", dataIndex: "startDate", key: "startDate", }, ], proColumns: [ { title: "序号", dataIndex: "key", key: "key", }, { title: "合同编号", dataIndex: "contractNo", key: "contractNo", }, { title: "订单编号", dataIndex: "orderNo", key: "orderNo", }, // { // title: "项目编号", // dataIndex: "id", // key: "id" // }, { title: "客户名称", dataIndex: "userName", key: "userName", render: (text) => { return ( <Tooltip title={text}> <div // style={{ // maxWidth: "150px", // overflow: "hidden", // textOverflow: "ellipsis", // whiteSpace: "nowrap", // }} > {text} </div> </Tooltip> ); }, }, { title: "订单负责人", dataIndex: "salesmanName", key: "salesmanName", }, { title: "是否主项目", dataIndex: "main", key: "main", render: (text) => { return text == 0 ? "否" : "是"; }, }, { title: "项目类别", dataIndex: "cname", key: "cname", }, { title: "项目名称", dataIndex: "commodityName", key: "commodityName", }, { title: "项目数量", dataIndex: "commodityQuantity", key: "commodityQuantity", render: (text, record) => { if (record.splitStatus == 1) { return ( <span> {text}{" "} <Tag color="#108ee9" onClick={(e) => { e.stopPropagation(); this.showRes(record); }} > 已拆 </Tag> </span> ); } else { return text; } }, }, { title: "服务市价", dataIndex: "commodityPrice", key: "commodityPrice", render: (text) => { return "****"; }, }, { title: "证书编号", dataIndex: "certificateNumber", key: "certificateNumber", }, { title: "项目状态", dataIndex: "projectStatus", key: "projectStatus", render: (text) => { return getProjectName(text); }, }, { title: "项目说明", dataIndex: "taskComment", key: "taskComment", }, // { // title: "外包(内部)公司", // dataIndex: "outsourceName", // key: "outsourceName", // }, // { // title: "外包(内部)价格", // dataIndex: "outsourcePrice", // key: "outsourcePrice", // render: (text) => { // return "****"; // }, // }, ], columns: [ { title: "合同编号", dataIndex: "contractNo", key: "contractNo", // fixed: 'left' }, { title: "订单编号", dataIndex: "orderNo", key: "orderNo", // fixed: 'left' }, { title: "客户名称", dataIndex: "userName", key: "userName", render: (text) => { return ( <Tooltip title={text}> <div // style={{ // maxWidth: "150px", // overflow: "hidden", // textOverflow: "ellipsis", // whiteSpace: "nowrap", // }} > {text} </div> </Tooltip> ); }, }, { title: "订单部门", dataIndex: "depName", key: "depName", // fixed: 'left' }, { title: "下单时间", dataIndex: "createDate", key: "createTime", }, { title: "合同签订时间", dataIndex: "signDate", key: "signDate", }, { title: "流程状态", dataIndex: "processStatus", key: "processStatus", render: (text, record) => { return getProcessStatus(text, record.examineName, record.approval); }, }, { title: "签单金额(万元)", dataIndex: "totalAmount", key: "totalAmount", }, { title: "开票金额(万元)", dataIndex: "invoiceAmount", key: "invoiceAmount", }, { title: "已收款(万元)", dataIndex: "settlementAmount", key: "settlementAmount", }, { title: "结算状态", dataIndex: "liquidationStatus", key: "liquidationStatus", render: (text) => { return getLiquidationStatus(text); }, }, { title: "是否特批", dataIndex: "approval", key: "approval", render: (text) => { return getApprovedState(text); }, }, { title: "订单状态", dataIndex: "orderStatus", key: "orderStatus", render: (text) => { return getNewOrderStatus(text); }, }, { title: "财务负责人", dataIndex: "financeName", key: "financeName", }, ], columnsDate: [ { title: "编号", dataIndex: "id", key: "id", }, { title: "订单编号", dataIndex: "orderno", key: "orderno", }, { title: "开票金额(万元)", dataIndex: "amount", key: "amount", }, { title: "申请时间", dataIndex: "createTime", key: "createTime", }, { title: "开票状态", dataIndex: "status", key: "status", render: (text, record) => { return <div>{getInvoiceStatus(text, record)} <LogPopup id={record.id} /></div>; }, }, ], dataSource: [], }; }, invoiceData(record) { if (this.state.flagA) return; this.setState({ flagA: true, }); 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(","); } let api = "", api1 = "", method = "", fdata = { orderNo: this.state.orderNo3, type: this.state.type, status: this.state.status, approval: this.state.ordapproval, remarks: this.state.remarks, invoiceType: this.state.invoiceType, unitName: this.state.unitName, taxNumber: this.state.taxNumber, amount: parseFloat(this.state.amount), banks: this.state.banks, content: this.state.content, unitAddress: this.state.unitAddress, invoiceRemarks: this.state.invoiceRemarks, unitMobile: this.state.unitMobile, voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "", post: this.state.post, addressee: this.state.addressee, addresseeMobile: this.state.addresseeMobile, addresseeProvince: this.state.post === 0 ? this.state.ProvinceCity[0] : "", addresseeCity: this.state.post === 0 ? this.state.ProvinceCity[1] : "", addresseeArea: this.state.post === 0 ? this.state.ProvinceCity[2] : "", recipientAddress: this.state.recipientAddress, alreadyAmount: parseFloat(this.state.alreadyAmount), }, sumData = {}, sumData1 = {}; switch (this.state.status) { case 0: api = "/api/admin/orderInvoice/createOrderInvoice"; sumData = fdata; method = "post"; break; case 1: api = "/api/admin/orderInvoice/createOrderInvoice"; api1 = "/api/admin/orderInvoice/updateOrderInvoice"; sumData = fdata; sumData1 = { orderNo: this.state.orderNo3, type: this.state.type, status: this.state.status, approval: this.state.ordapproval, remarks: this.state.remarks, invoiceType: this.state.invoiceType, unitName: this.state.unitName, taxNumber: this.state.taxNumber, amount: parseFloat(this.state.amount), banks: this.state.banks, content: this.state.content, unitAddress: this.state.unitAddress, invoiceRemarks: this.state.invoiceRemarks, unitMobile: this.state.unitMobile, voucherUrl: theorgCodeUrl.length ? theorgCodeUrl : "", post: this.state.post, addressee: this.state.addressee, addresseeMobile: this.state.addresseeMobile, addresseeProvince: this.state.post === 0 ? this.state.ProvinceCity[0] : "", addresseeCity: this.state.post === 0 ? this.state.ProvinceCity[1] : "", addresseeArea: this.state.post === 0 ? this.state.ProvinceCity[2] : "", recipientAddress: this.state.recipientAddress, alreadyAmount: parseFloat(this.state.alreadyAmount), }; sumData1.id = this.state.id; method = "post"; break; case 3: api = "/api/admin/orderInvoice/selectByIdOrderInvoice"; sumData.id = record.id; method = "get"; break; default: api = ""; break; } if (this.state.status === 1 || this.state.status === 0) { if (typeof this.state.type !== "number") { message.warning("省内/外不能为空"); this.setState({ flagA: false, }); return; } if (typeof this.state.invoiceType !== "number") { message.warning("发票类型不能为空"); this.setState({ flagA: false, }); return; } if (typeof theorgCodeUrl !== "string") { message.warning("未上传图片"); this.setState({ flagA: false, }); return; } if (!this.state.unitName) { message.warning("单位名称不能为空"); this.setState({ flagA: false, }); return; } if (!this.state.taxNumber) { message.warning("税号不能为空"); this.setState({ flagA: false, }); return; } if (!this.state.amount) { message.warning("金额不能为空"); this.setState({ flagA: false, }); return; } if (isNaN(this.state.amount)) { message.warning("开票金额包含非法字符,请重新输入"); this.setState({ flagA: false, }); return; } if (isNaN(this.state.alreadyAmount)) { message.warning("开票金额总计包含非法字符,请重新输入"); this.setState({ flagA: false, }); return; } if (parseFloat(this.state.alreadyAmount) < 0) { message.warning("开票金额总计不能小于0,请重新输入"); this.setState({ flagA: false, }); return; } if (!this.state.banks) { message.warning("开户行不能为空"); this.setState({ flagA: false, }); return; } if (!this.state.content) { message.warning("开票内容及说明不能为空"); this.setState({ flagA: false, }); return; } if (!this.state.unitAddress) { message.warning("单位地址不能为空"); this.setState({ flagA: false, }); return; } if (!this.state.unitMobile) { message.warning("单位电话不能为空"); this.setState({ flagA: false, }); return; } if (this.state.alreadyAmount === "") { message.warning("开票金额总计不能为空"); this.setState({ flagA: false, }); return; } } // console.log(this.state.flag,this.state.status) this.setState({ loading: true, }); $.ajax({ method: method, dataType: "json", crossDomain: false, url: globalConfig.context + (this.state.flag ? api1 : api), data: this.state.flag ? sumData1 : sumData, success: function (data) { if (this.state.status === 3 && typeof data.data === "object") { let thisdata = data.data; let ProvinceCityArr = []; let ProvinceS = thisdata.addresseeProvince; //省 let citys = thisdata.addresseeCity; //市 let Areas = thisdata.addresseeArea; //区 ProvinceCityArr.push(ProvinceS, citys, Areas); this.setState({ orderNo: thisdata.orderNo, type: thisdata.type, status: thisdata.status, examineName: !thisdata.examineName ? undefined : thisdata.examineName, ordapproval: thisdata.approval, remarks: thisdata.remarks, invoiceType: thisdata.invoiceType, unitName: thisdata.unitName, taxNumber: thisdata.taxNumber, amount: thisdata.amount + "", banks: thisdata.banks, content: thisdata.content, unitAddress: thisdata.unitAddress, invoiceRemarks: thisdata.invoiceRemarks, unitMobile: thisdata.unitMobile, post: thisdata.post, addressee: thisdata.addressee, addresseeMobile: thisdata.addresseeMobile, addresseeProvince: thisdata.addresseeProvince, addresseeCity: thisdata.addresseeCity, addresseeArea: thisdata.addresseeArea, alreadyAmount: thisdata.alreadyAmount + "", ProvinceCity: ProvinceCityArr[0] != null ? ProvinceCityArr : undefined, //省市区 recipientAddress: thisdata.recipientAddress, orgCodeUrl: thisdata.voucherUrl ? splitUrl( thisdata.voucherUrl, ",", globalConfig.avatarHost + "/upload" ) : [], }); } }.bind(this), }).done( function (data) { this.setState({ loading: false, }); if (!data.error.length) { if (this.state.status === 1) { message.success("提交成功!"); this.visitCancels(); if (this.state.flag) { this.inRecordData(); } this.setState({ flagA: false, }); } else if (this.state.status === 0) { message.success("保存成功!"); this.visitCancels(); this.setState({ flagA: false, }); } else if (this.state.status === 3) { this.setState({ flag: true, flagA: false, }); } } else { message.warning(data.error[0].message); this.setState({ flagA: false, }); } }.bind(this) ); }, areset() { this.setState({ remarks: "", type: undefined, orgCodeUrl: "", invoiceType: undefined, unitName: "", taxNumber: "", amount: "", banks: "", content: "", unitAddress: "", invoiceRemarks: "", unitMobile: "", post: undefined, addressee: "", addresseeMobile: "", addresseeProvince: "", addresseeCity: "", addresseeArea: "", recipientAddress: "", ordapproval: undefined, alreadyAmount: "", ProvinceCity: [], }); }, recompose(record) { // console.log(record) this.setState({ avisible: true, orderNo3: record.orderno, id: record.id, }); this.setState( { status: 3, cvisible: true, flag: false, }, () => { this.invoiceData(record); } ); }, submitApp() { if (this.state.status === 3) { this.setState({ flag: true, }); } this.setState( { status: 1, }, () => { this.invoiceData(); } ); }, saveApp() { this.setState( { status: 0, }, () => { this.invoiceData(); } ); }, reject(record) { this.setState({ visibleR: true, reason: record.rejectReason, }); }, rejectCancels() { this.setState({ visibleR: false, }); }, rizhi() { // console.log(this.state.orderNo); 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, }); }, //开票 visit(record, index) { this.areset(); this.setState({ contractNo: this.state.dataSource[index].contractNo, orderNo3: record.orderNo, avisible: true, flag: false, invoiceType: 0, alreadyAmount: 0, unitName: this.state.dataSource[index].userName, post: 1, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderInvoice/getInvoiceDetails", data: { orderNo: record.orderNo, }, success: (data) => { if (data.error.length) { message.warning(data.error[0].message); } else if (data.data) { const thisdata = data.data; this.setState({ contractNo: thisdata.contractNo, orderNo: thisdata.orderNo, examineName: !thisdata.examineName ? undefined : thisdata.examineName, ordapproval: thisdata.approval, type: thisdata.type, status: thisdata.status, remarks: thisdata.remarks, invoiceType: thisdata.invoiceType, unitName: thisdata.unitName, taxNumber: thisdata.taxNumber, amount: thisdata.amount, banks: thisdata.banks, content: thisdata.content, unitAddress: thisdata.unitAddress, invoiceRemarks: thisdata.invoiceRemarks, unitMobile: thisdata.unitMobile, post: thisdata.post, addressee: thisdata.addressee, addresseeMobile: thisdata.addresseeMobile, addresseeProvince: thisdata.addresseeProvince, addresseeCity: thisdata.addresseeCity, addresseeArea: thisdata.addresseeArea, alreadyAmount: thisdata.alreadyAmount, recipientAddress: thisdata.recipientAddress, orgCodeUrl: thisdata.voucherUrl ? splitUrl( thisdata.voucherUrl, ",", globalConfig.avatarHost + "/upload" ) : [], }); } }, }); }, visitCancels() { this.setState({ avisible: false, cvisible: false, }); }, //查看开票历史记录详情 dtableRowClick(record) { this.setState({ dvisible: true, }); this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderInvoice/selectByIdOrderInvoice", data: { id: record.id, }, success: function (data) { let thisdata = data.data; this.setState({ contractNo: thisdata.contractNo, orderNo: thisdata.orderNo, examineName: !thisdata.examineName ? undefined : thisdata.examineName, ordapproval: thisdata.approval, type: thisdata.type, status: thisdata.status, remarks: thisdata.remarks, invoiceType: thisdata.invoiceType, unitName: thisdata.unitName, taxNumber: thisdata.taxNumber, amount: thisdata.amount, banks: thisdata.banks, content: thisdata.content, unitAddress: thisdata.unitAddress, invoiceRemarks: thisdata.invoiceRemarks, unitMobile: thisdata.unitMobile, post: thisdata.post, addressee: thisdata.addressee, addresseeMobile: thisdata.addresseeMobile, addresseeProvince: thisdata.addresseeProvince, addresseeCity: thisdata.addresseeCity, addresseeArea: thisdata.addresseeArea, alreadyAmount: thisdata.alreadyAmount, recipientAddress: thisdata.recipientAddress, orgCodeUrl: thisdata.voucherUrl ? splitUrl( thisdata.voucherUrl, ",", globalConfig.avatarHost + "/upload" ) : [], }); }.bind(this), }).done( function () { this.setState({ loading: false, }); }.bind(this) ); }, //关闭开票历史记录详情 dvisitCancels() { this.setState({ dvisible: false, }); }, inRecordData() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/orderInvoice/salesmanOrderInvoiceList", data: { orderNo: this.state.orderNo2, }, success: function (data) { let theArr = []; let sum = 0; if (!data.data) { if (data.error && data.error.length) { message.warning(data.error[0].message); } } else { for (let i = 0; i < data.data.list.length; i++) { let thisdata = data.data.list[i]; sum += parseFloat(thisdata.amount); theArr.push({ id: thisdata.id, orderno: thisdata.orderno, //订单编号 amount: thisdata.amount, //签单金额 createTime: thisdata.createTime, //流程状态 status: thisdata.status, //结算状态 rejectReason: thisdata.rejectReason, approval: thisdata.approval, examineName: !thisdata.examineName ? undefined : thisdata.examineName, }); } } this.setState({ recordData: theArr, sum: sum.toFixed(6), }); }.bind(this), }).done( function () { this.setState({ loading: false, }); }.bind(this) ); }, inRecord(record) { this.setState( { bvisible: true, orderNo2: this.state.selectedRowKeys[0], }, () => { this.inRecordData(); } ); }, inRecordCanl() { this.setState({ bvisible: false, }); }, // 拆分详细 showRes(record) { this.setState({ resVisible: true, resRecord: record, }); }, resCancel() { this.setState({ resVisible: false, }); }, //结项 delectRow(record) { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/OrderOver", data: { orderNo: record.orderNo, }, }).done( function (data) { if (!data.error.length) { message.success("该项目已成功结项!"); this.loadData(); } else { message.warning(data.error[0].message); } this.setState({ loading: false, }); }.bind(this) ); }, //是否退款 refundCancel(record) { this.refund(record, 0); }, refundOk(record) { this.refund(record, 1); }, refund(record, index) { this.setState({ signBillVisible: false, selectedRowKeys: [], loading: true, userDetaile: false, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/order/confirmRefund", data: { orderNo: record.orderNo, confirm: index, }, }).done( function (data) { if (!data.error.length) { message.success("操作成功!"); this.setState({ loading: false, showDesc: false, }); } this.loadData(this.state.pageNo); }.bind(this) ); }, //受理订单 admissibleOrderOk(e) { this.admissibleOrder(e, true); }, admissibleOrderCancel(e) { this.admissibleOrder(e, false); }, admissibleOrder(record, index) { this.setState({ signBillVisible: false, selectedRowKeys: [], loading: true, userDetaile: false, }); $.ajax({ method: "POST", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/order/confirmIntention", data: { orderNo: record.orderNo, confirm: index, }, }).done( function (data) { if (!data.error.length) { message.success("操作成功!"); this.setState({ loading: false, showDesc: false, }); } else { message.warning(data.error[0].message); this.setState({ showDesc: true, }); } this.loadData(this.state.pageNo); }.bind(this) ); }, //取消订单 cancelOrder(e) { this.operation(e, 3); }, //作废订单 scrapOrder(e) { this.operation(e, 2); }, //锁定订单 lockOrder(e) { this.operation(e, 0); }, //解锁订单 unlockOrder(e) { this.operation(e, 1); }, //签单 signBill(ids) { this.setState({ uid: ids, signBillVisible: true, }); }, componentWillMount() { this.departmentList(); this.loadData(); }, //整行点击 tableRowClick(record) { this.setState({ visible: true, orderNos: record.orderNo, }); this.xiangqing(record.orderNo); this.xiangmu(record.orderNo); this.jiedian(record.orderNo); this.jiedianNew(record.orderNo); }, //点击打卡项目详情 tableRowClickX(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, dataInfor: record, addState: 0, }); }, //项目详情关闭 nextCancel() { this.setState({ addnextVisible: false, }); }, visitCancel() { this.setState({ visible: 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({ orderUid: thisdata.uid, orderNo: thisdata.orderNo, //订单编号 contractNo: thisdata.contractNo, //合同编号 userName: thisdata.userName, //客户名称 signDate: thisdata.signDate, //签单时间 examineName: thisdata.examineName, 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" ) : [], //图片地址 contentUrl: thisdata.serviceContent ? splitUrl( thisdata.serviceContent, ",", 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 ? "否" : "是", deleteSign: thisdata.deleteSign, }); } }.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]; thisdata.key = i; thisdata.sort = thisdata.cSort; theArr.push(thisdata); } } this.setState({ dataSourceX: theArr, }); }.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, //催款状态 }); } 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, customizeName: thisData.customizeName, customizeTimes: thisData.customizeTimes, tid: thisData.tid, }); } if (!totalCui) { totalCui = 0; } totalCui = (Math.round(totalCui * 1000000) / 1000000).toFixed(6); this.setState({ contactListNew: theArr, totalCui, }); } }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, //列表各种骚操作 operation(record, index) { this.setState({ selectedRowKeys: [], loading: true, showDesc: false, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/order/lockOrRevokeOrder", data: { orderNo: record.orderNo, operatorType: index, }, }).done( function (data) { if (!data.error.length) { message.success("操作成功!"); this.setState({ loading: false, }); } else { message.warning(data.error[0].message); } this.loadData(this.state.pageNo); }.bind(this) ); }, addClick() { this.state.userDetaile = false; this.setState({ signBillVisible: false, showDesc: true, }); }, closeDesc(e, s) { this.state.userDetaile = false; this.state.signBillVisible = false; this.state.showDesc = e; if (s) { this.loadData(this.state.pageNo); } }, searchSwitch() { this.setState({ signBillVisible: false, searchMore: !this.state.searchMore, }); }, getOrgCodeUrl(e) { this.setState({ orgCodeUrl: e }); }, search() { this.setState({ signBillVisible: false, }); this.loadData(); }, reset() { this.setState({ signBillVisible: false, }); this.state.searchOrderNo = undefined; this.state.orderNo = ""; this.state.customerName = ""; this.state.departmenttSearch = undefined; this.state.releaseDate[0] = undefined; this.state.releaseDate[1] = undefined; this.state.projectProgress = undefined; this.state.approval = undefined; this.state.formalOrder = true; this.state.intentOrder = true; (this.state.liquidationStatusSearch = []), (this.state.contractNoSearch = ""); this.state.departmenttList = undefined; this.state.amountStatus = undefined; this.state.approvalSearch = undefined; this.Cascaders.empty(); this.loadData(); }, //部门 departmentList() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/organization/selectSuperId", 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.name, id: item.id, }); }); } this.setState({ departmentArr: theArr, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, changeList(arr) { const newArr = []; this.state.columns.forEach((item) => { arr.forEach((val) => { if (val === item.title) { newArr.push(item); } }); }); this.setState({ changeList: newArr, }); }, onSelectChange(selectedRowKeys) { this.setState({ selectedRowKeys }); // console.log(selectedRowKeys); }, // inRecordData() { // this.setState({ // loading: true // }); // $.ajax({ // method: "get", // dataType: "json", // crossDomain: false, // url: // globalConfig.context + // "/api/admin/orderInvoice/salesmanOrderInvoiceList", // data: { // orderNo: this.state.selectedRowKeys[0], // pageSize: 9999 // }, // success: function(data) { // let theArr = []; // let sum = 0; // if (!data.data) { // if (data.error && data.error.length) { // message.warning(data.error[0].message); // } // } else { // for (let i = 0; i < data.data.list.length; i++) { // let thisdata = data.data.list[i]; // sum += parseFloat(thisdata.amount); // theArr.push({ // id: thisdata.id, // orderno: thisdata.orderno, //订单编号 // amount: thisdata.amount, //签单金额 // createTime: thisdata.createTime, //流程状态 // status: thisdata.status, //结算状态 // rejectReason: thisdata.rejectReason // }); // } // } // this.setState({ // recordData: theArr, // sum: sum.toFixed(4) // }); // }.bind(this) // }).done( // function() { // this.setState({ // loading: false // }); // }.bind(this) // ); // }, cuiData() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/dunOrderNewList", data: { orderNo: this.state.selectedRowKeys[0], pageSize: 9999999, }, success: function (data) { let theArr = []; if (!data.data || !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 + 1, orderNo: thisdata.orderNo, contractNo: thisdata.contractNo, userName: thisdata.userName, buyerName: thisdata.buyerName, departmentName: thisdata.departmentName, salesmanName: thisdata.salesmanName, depName: thisdata.depName, orderStatus: thisdata.orderStatus, projectStatus: thisdata.projectStatus, totalAmount: thisdata.totalAmount, liquidationStatus: thisdata.liquidationStatus, settlementAmount: thisdata.settlementAmount, accountsReceivable: thisdata.accountsReceivable, dunSubject: thisdata.dunSubject, startDate: thisdata.startDate, taskStatus: thisdata.taskStatus, cname: thisdata.cname, id: thisdata.id, taskName: thisdata.taskName, hours: thisdata.hours, taskDistributionTime: thisdata.taskDistributionTime, taskEndTime: thisdata.taskEndTime, dunStatus: thisdata.dunStatus == 0 ? "未触发" : "已触发", }); } } this.setState({ cuiDataList: theArr, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, proData() { this.setState({ loading: true, }); $.ajax({ method: "get", dataType: "json", crossDomain: false, url: globalConfig.context + "/api/admin/newOrder/getOrderTask", data: { orderNo: this.state.selectedRowKeys[0], pageSize: 9999999, }, success: function (data) { let theArr = []; let totalWaibao = 0; 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]; totalWaibao += thisdata.outsourcePrice; thisdata.key = i + 1; theArr.push(thisdata); } } totalWaibao = (Math.round(totalWaibao * 1000000) / 1000000).toFixed( 6 ); this.setState({ proDataList: theArr, totalWaibao, }); }.bind(this), }).always( function () { this.setState({ loading: false, }); }.bind(this) ); }, tableRowClickPro(record) { this.setState({ pvisible: true, record, }); }, 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 FormItem = Form.Item; const formItemLayout = { labelCol: { span: 8 }, wrapperCol: { span: 14 }, }; const RadioGroup = Radio.Group; var departmentArr = this.state.departmentArr || []; const cuiDataList = this.state.contactList || []; const { RangePicker } = DatePicker; const { loading, selectedRowKeys, visible } = this.state; const rowSelection = { selectedRowKeys, onChange: this.onSelectChange, hideDefaultSelections: true, type: "radio", }; return ( <div className="user-content"> {this.state.resVisible ? ( <ResolutionDetail cancel={this.resCancel} detail={this.state.resRecord} visible={this.state.resVisible} id={this.state.resRecord.orderNo} /> ) : ( "" )} <ShowModalDiv ShowModal={this.state.showModal} onClose={() => { this.setState({ showModal: false }) }} /> <div className="content-title"> <span style={{ fontWeight: 900, fontSize: 16, display: "block", marginBottom: 10, }} > 部门订单 </span> <Tabs defaultActiveKey="2" onChange={this.callback} className="test" > <TabPane tab="更改表格显示数据" key="1"> <div style={{ marginLeft: 10 }}> <ChooseList columns={this.state.columns} changeFn={this.changeList} changeList={this.state.changeList} top={55} margin={11} /> </div> </TabPane> <TabPane tab="搜索" key="2"> <div className="user-search" style={{ marginLeft: 10 }}> <Input placeholder="订单编号" style={{ width: "150px" }} value={this.state.searchOrderNo} onChange={(e) => { this.setState({ searchOrderNo: e.target.value }); }} /> <Input placeholder="合同编号" style={{ width: "150px" }} value={this.state.contractNoSearch} onChange={(e) => { this.setState({ contractNoSearch: e.target.value, }); }} /> <Input placeholder="客户名称" style={{ width: "150px" }} value={this.state.customerName} onChange={(e) => { this.setState({ customerName: e.target.value }); }} /> <Cascaders ref={node => this.Cascaders = node} placeholder="订单部门" id="id" name="name" children="list" height={28} onSel={(e) => { this.setState({ departmenttList: JSON.stringify(e), }); }} /> {/* <Select placeholder="订单部门" style={{ width: 150, marginRight: 10 }} value={this.state.departmenttList} onChange={(e) => { this.setState({ departmenttList: e }); }} > {departmentArr.map(function (item) { return <Option key={item.id}>{item.name}</Option>; })} </Select> */} <Select style={{ width: 120 }} placeholder="结算状态" value={this.state.liquidationStatusSearch} onChange={(e) => { this.setState({ liquidationStatusSearch: e, }); }} > <Option value="0">首付待付请</Option> <Option value="1">尾款待付清</Option> <Option value="2">已付清</Option> </Select> <Select style={{ width: 120 }} placeholder="特批状态" value={this.state.approvalSearch} onChange={(e) => { this.setState({ approvalSearch: e, }); }} > <Option value="0">非特批</Option> <Option value="1">特批</Option> </Select> <Select style={{ width: 120 }} placeholder="签单金额" value={this.state.amountStatus} onChange={(e) => { this.setState({ amountStatus: e, }); }} > <Option value="0">10万元以下</Option> <Option value="1">10~20万元</Option> <Option value="2">20~30万元</Option> <Option value="3">30~40万元</Option> <Option value="4">40万元以上</Option> </Select> <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" }} > 搜索 <Icon type="search" /> </Button> <Button onClick={this.reset}> 重置 <Icon type="reload" /> </Button> </div> </TabPane> <TabPane tab="查看" key="3"> <Button type="primary" style={{ margin: "11px 0px 10px 10px" }} onClick={() => { this.inRecord(); this.setState({ bvisible: true, }); }} disabled={this.state.selectedRowKeys.length != 1} > 查看开票详情 </Button> <Button type="primary" style={{ margin: "11px 0px 10px 10px" }} onClick={() => { this.cuiData(); this.setState({ cuiVisible: true, }); }} disabled={this.state.selectedRowKeys.length != 1} > 查看催款详情 </Button> <Button type="primary" style={{ margin: "11px 0px 10px 10px" }} onClick={() => { this.proData(); this.setState({ proVisible: true, }); }} disabled={this.state.selectedRowKeys.length != 1} > 查看项目进度 </Button> </TabPane> </Tabs> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={ this.state.changeList == undefined ? this.state.columns : this.state.changeList } dataSource={this.state.dataSource} scroll={{ x: 1500, y: 0 }} pagination={this.state.pagination} rowSelection={rowSelection} onRowClick={this.tableRowClick} bordered size="small" /> </Spin> </div> <NewService uid={this.state.uid} signBillVisible={this.state.signBillVisible} signBillState={this.state.signBillState} operation={this.operation} admissibleOrder={this.admissibleOrder} userDetaile={this.state.userDetaile} datauser={this.state.datauser} showDesc={this.state.showDesc} closeDesc={this.closeDesc} /> <Modal maskClosable={false} className="admin-desc-content" footer="" title="开具发票申请单" width="1200px" visible={this.state.avisible} onOk={this.visitOks} onCancel={this.visitCancels} style={{ zIndex: 999 }} > <Form layout="horizontal" // id="demand-form" style={{ paddingBottom: "40px" }} > <Spin spinning={this.state.loading}> <div className="clearfix"> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="备注" > { <Input placeholder="填写申请发票原因" value={this.state.remarks} onChange={(e) => { this.setState({ remarks: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="省内/外:" > <RadioGroup value={this.state.type} onChange={(e) => { this.setState({ type: e.target.value }); }} > <Radio value={0}>省内</Radio> <Radio value={1}>省外</Radio> </RadioGroup> <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "20px", }} > 省内:湖南省<br></br>省外:除湖南省以外 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="特批:" > <RadioGroup value={!this.state.ordapproval ? 0 : 1} onChange={(e) => { this.setState({ ordapproval: e.target.value }); }} > <Radio value={0}>否</Radio> <Radio value={1}>是</Radio> </RadioGroup> <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", }} > 注:特批单,省内省外,<br></br>分别由周总,省外总经理 <br></br>特批后,方可至开票流程 </span> </FormItem> </div> <hr style={{ border: "1px dashed #aaa", width: "90%", margin: "auto", }} /> <div style={{ marginTop: "13px", marginLeft: "16px" }}> <span style={{ fontSize: "14px" }}>发票内容</span> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 发票类型 </span> } > <RadioGroup style={{ width: "160%" }} onChange={(e) => { this.setState({ invoiceType: e.target.value }); }} value={this.state.invoiceType} > <Radio value={0}>增值税专用发票</Radio> <Radio value={1}>增值税普通发票</Radio> <Radio value={2}>其他</Radio> </RadioGroup> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位名称 </span> } > { <Input placeholder="请输入单位名称" value={this.state.unitName} onChange={(e) => { this.setState({ unitName: e.target.value }); }} style={{ width: "240px" }} /> } <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", width: "30%", }} > 系统读取单位<br></br>名称,可修改 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong>税号 </span> } > { <Input placeholder="请输入税号" value={this.state.taxNumber} onChange={(e) => { this.setState({ taxNumber: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票金额(万元) </span> } > { <Input placeholder="请输入开票金额" value={this.state.amount} onChange={(e) => { this.setState({ amount: e.target.value }); }} style={{ width: "240px" }} /> } <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", width: "30%", }} > 填写本次开票<br></br>金额 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开户行及银行账号 </span> } > { <Input placeholder="请输入开户行及银行账号" value={this.state.banks} onChange={(e) => { this.setState({ banks: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票内容及说明 </span> } > { <Input placeholder="请输入开票内容及说明" value={this.state.content} onChange={(e) => { this.setState({ content: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位地址 </span> } > { <Input placeholder="请输入单位地址" value={this.state.unitAddress} onChange={(e) => { this.setState({ unitAddress: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label="备注" > { <Input placeholder="请备注开票公司名称" value={this.state.invoiceRemarks} onChange={(e) => { this.setState({ invoiceRemarks: e.target.value, }); }} style={{ width: "240px" }} /> } <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", width: "30%", }} > 开票公司名称,<br></br>如:科德集团 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位电话 </span> } > { <Input placeholder="请输入单位电话" value={this.state.unitMobile} onChange={(e) => { this.setState({ unitMobile: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> </div> <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} /> <span style={{ paddingTop: "10px", paddingLeft: "10px", color: "red", fontSize: "14px", }} > 注:请上传带"公司盖章"的开票申请纸质凭证 </span> <p>图片建议:要清晰。</p> </FormItem> </div> <hr style={{ border: "1px dashed #aaa", width: "90%", margin: "auto", }} /> <div className="clearfix" style={{ marginTop: "10px" }}> <FormItem className="half-item" {...formItemLayout} label="发票是否邮寄:" > <RadioGroup value={this.state.post} onChange={(e) => { this.setState({ post: e.target.value }); }} > <Radio value={0}>是</Radio> <Radio value={1}>否</Radio> </RadioGroup> </FormItem> </div> {this.state.post === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="收信人姓名" > { <Input placeholder="请输入收信人姓名" value={this.state.addressee} onChange={(e) => { this.setState({ addressee: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label="电话" > { <Input placeholder="请输入电话" value={this.state.addresseeMobile} onChange={(e) => { this.setState({ addresseeMobile: e.target.value, }); }} style={{ width: "240px" }} /> } </FormItem> </div> ) : ( "" )} {this.state.post === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="省-市-区" > <Cascader options={areaSelect()} value={this.state.ProvinceCity} placeholder="选择城市" style={{ width: "95%" }} onChange={(e) => { this.setState({ ProvinceCity: e }); }} /> </FormItem> </div> ) : ( "" )} {this.state.post === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="详细地址" > { <Input placeholder="请输入详细地址" value={this.state.recipientAddress} onChange={(e) => { this.setState({ recipientAddress: e.target.value, }); }} style={{ width: "240px" }} /> } </FormItem> </div> ) : ( "" )} {/* <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票金额总计 </span> } > { <Input value={this.state.alreadyAmount} onChange={(e) => { this.setState({ alreadyAmount: e.target.value }); }} style={{ width: "40px" }} /> } 万元 <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", marginLeft: "20px", }} > 默认值为0.新开票订单此项不用填.<br></br> 以前已开票订单,请填写已开票的总计<br></br> 金额,便于审核核对! </span> </FormItem> */} </div> <Button className="cancel" type="primary" style={{ marginRight: "50px", float: "right" }} size="large" onClick={this.submitApp} > 提交申请 </Button> {/*<Button className="cancel" type="primary" style={{marginRight:"50px",float:'right',background:'deepskyblue',border:'none'}} size="large" onClick={this.saveApp}>保存</Button>*/} </Spin> </Form> </Modal> <Modal maskClosable={false} visible={this.state.bvisible} footer="" title="开票历史记录" className="admin-desc-content" width="1200px" onCancel={(e) => { this.setState({ bvisible: false, }); }} style={{ zIndex: 5 }} > <Spin spinning={this.state.loading}> <div className="patent-table"> <Table columns={this.state.columnsDate} onRowClick={this.dtableRowClick} dataSource={this.state.recordData} pagination={false} /> <div className="clearfix" style={{ marginTop: "20px" }}> <FormItem className="half-item" {...formItemLayout} label={<span style={{ fontSize: "14px" }}>开票总计</span>} > <span>{this.state.sum + "(万元)"}</span> </FormItem> </div> </div> </Spin> </Modal> <Modal maskClosable={false} visible={this.state.visibleR} className="admin-desc-content" footer="" title="拒绝理由" width="400px" onCancel={this.rejectCancels} > <Input.TextArea disabled={true} rows={4} value={this.state.reason} style={{ color: "black" }} ></Input.TextArea> </Modal> <Modal maskClosable={false} className="admin-desc-content" footer="" title="开具发票申请单" width="1200px" visible={this.state.cvisible} onOk={this.visitOks} onCancel={this.visitCancels} style={{ zIndex: 999 }} > <Form layout="horizontal" // id="demand-form" style={{ paddingBottom: "40px" }} > <Spin spinning={this.state.loading}> <div className="clearfix"> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="备注" > { <Input placeholder="填写申请发票原因" value={this.state.remarks} onChange={(e) => { this.setState({ remarks: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="省内/外:" > <RadioGroup value={this.state.type} onChange={(e) => { this.setState({ type: e.target.value }); }} > <Radio value={0}>省内</Radio> <Radio value={1}>省外</Radio> </RadioGroup> <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "20px", }} > 省内:湖南省<br></br>省外:除湖南省以外 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="特批:" > <RadioGroup value={!this.state.ordapproval ? 0 : 1} onChange={(e) => { this.setState({ ordapproval: e.target.value }); }} > <Radio value={0}>否</Radio> <Radio value={1}>是</Radio> </RadioGroup> <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", }} > 注:特批单,省内省外,<br></br>分别由周总,省外总经理 <br></br>特批后,方可至开票流程 </span> </FormItem> </div> <hr style={{ border: "1px dashed #aaa", width: "90%", margin: "auto", }} /> <div style={{ marginTop: "13px", marginLeft: "16px" }}> <span style={{ fontSize: "14px" }}>发票内容</span> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 发票类型 </span> } > <RadioGroup style={{ width: "160%" }} onChange={(e) => { this.setState({ invoiceType: e.target.value }); }} value={this.state.invoiceType} > <Radio value={0}>增值税专用发票</Radio> <Radio value={1}>增值税普通发票</Radio> <Radio value={2}>其他</Radio> </RadioGroup> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位名称 </span> } > { <Input placeholder="请输入单位名称" value={this.state.unitName} onChange={(e) => { this.setState({ unitName: e.target.value }); }} style={{ width: "240px" }} /> } <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", width: "30%", }} > 系统读取单位<br></br>名称,可修改 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong>税号 </span> } > { <Input placeholder="请输入税号" value={this.state.taxNumber} onChange={(e) => { this.setState({ taxNumber: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票金额(万元) </span> } > { <Input placeholder="请输入开票金额" value={this.state.amount} onChange={(e) => { this.setState({ amount: e.target.value }); }} style={{ width: "240px" }} /> } <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", width: "30%", }} > 填写本次开票<br></br>金额 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开户行及银行账号 </span> } > { <Input placeholder="请输入开户行及银行账号" value={this.state.banks} onChange={(e) => { this.setState({ banks: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票内容及说明 </span> } > { <Input placeholder="请输入开票内容及说明" value={this.state.content} onChange={(e) => { this.setState({ content: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位地址 </span> } > { <Input placeholder="请输入单位地址" value={this.state.unitAddress} onChange={(e) => { this.setState({ unitAddress: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label="备注" > { <Input placeholder="请备注开票公司名称" value={this.state.invoiceRemarks} onChange={(e) => { this.setState({ invoiceRemarks: e.target.value, }); }} style={{ width: "240px" }} /> } <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", width: "30%", }} > 开票公司名称,<br></br>如:科德集团 </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位电话 </span> } > { <Input placeholder="请输入单位电话" value={this.state.unitMobile} onChange={(e) => { this.setState({ unitMobile: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> </div> <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} /> <span style={{ paddingTop: "10px", paddingLeft: "10px", color: "red", fontSize: "14px", }} > 注:请上传带"公司盖章"的开票申请纸质凭证 </span> <p>图片建议:要清晰。</p> </FormItem> </div> <hr style={{ border: "1px dashed #aaa", width: "90%", margin: "auto", }} /> <div className="clearfix" style={{ marginTop: "10px" }}> <FormItem className="half-item" {...formItemLayout} label="发票是否邮寄:" > <RadioGroup value={this.state.post} onChange={(e) => { this.setState({ post: e.target.value }); }} > <Radio value={0}>是</Radio> <Radio value={1}>否</Radio> </RadioGroup> </FormItem> </div> {this.state.post === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="收信人姓名" > { <Input placeholder="请输入收信人姓名" value={this.state.addressee} onChange={(e) => { this.setState({ addressee: e.target.value }); }} style={{ width: "240px" }} /> } </FormItem> <FormItem className="half-item" {...formItemLayout} label="电话" > { <Input placeholder="请输入电话" value={this.state.addresseeMobile} onChange={(e) => { this.setState({ addresseeMobile: e.target.value, }); }} style={{ width: "240px" }} /> } </FormItem> </div> ) : ( "" )} {this.state.post === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="省-市-区" > <Cascader options={areaSelect()} value={this.state.ProvinceCity} placeholder="选择城市" style={{ width: "95%" }} onChange={(e) => { this.setState({ ProvinceCity: e }); }} /> </FormItem> </div> ) : ( "" )} {this.state.post === 0 ? ( <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="详细地址" > { <Input placeholder="请输入详细地址" value={this.state.recipientAddress} onChange={(e) => { this.setState({ recipientAddress: e.target.value, }); }} style={{ width: "240px" }} /> } </FormItem> </div> ) : ( "" )} {/* <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票金额总计 </span> } > { <Input value={this.state.alreadyAmount} onChange={(e) => { this.setState({ alreadyAmount: e.target.value }); }} style={{ width: "40px" }} /> } 万元 <span style={{ position: "absolute", color: "red", fontSize: "10px", lineHeight: "15px", marginLeft: "20px", }} > 默认值为0.新开票订单此项不用填.<br></br> 以前已开票订单,请填写已开票的总计<br></br> 金额,便于审核核对! </span> </FormItem> */} </div> <Button className="cancel" type="primary" style={{ marginRight: "50px", float: "right" }} size="large" onClick={this.submitApp} > 提交申请 </Button> {/*<Button className="cancel" type="primary" style={{marginRight:"50px",float:'right',background:'deepskyblue',border:'none'}} size="large" onClick={this.saveApp}>保存</Button>*/} </Spin> </Form> </Modal> <Modal maskClosable={false} className="admin-desc-content" footer="" title="开具发票申请单" width="1200px" visible={this.state.dvisible} onOk={this.visitOks} onCancel={this.dvisitCancels} > <Form layout="horizontal" // id="demand-form" style={{ paddingBottom: "40px" }} > <Spin spinning={this.state.loading}> <div className="clearfix"> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="备注" > <span>{this.state.remarks}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 省内/外 </span> } > <span>{getProvinceA(this.state.type)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong>特批 </span> } > <span> {this.state.ordapproval === 0 ? "否" : "是"} </span> </FormItem> </div> <hr style={{ border: "1px dashed #aaa", width: "90%", margin: "auto", }} /> <div style={{ marginTop: "13px", marginLeft: "16px" }}> <span style={{ fontSize: "14px" }}>发票内容</span> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 发票类型 </span> } > <span> {this.state.invoiceType === 0 ? "增值税专用发票" : this.state.invoiceType === 1 ? "增值税普通发票" : "其他"} </span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位名称 </span> } > <span>{this.state.unitName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong>税号 </span> } > <span>{this.state.taxNumber}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票金额(万元) </span> } > <span>{this.state.amount}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开户行银行账号 </span> } > <span>{this.state.banks}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票内容及说明 </span> } > <span>{this.state.content}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位地址 </span> } > <span>{this.state.unitAddress}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="备注" > <span>{this.state.invoiceRemarks}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 单位电话 </span> } > <span>{this.state.unitMobile}</span> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label={ <span> <strong style={{ color: "#f00" }}>*</strong>附件 </span> } > {/*<Upload*/} {/* className="demandDetailShow-upload"*/} {/* listType="picture-card"*/} {/* fileList={this.state.orgCodeUrl}*/} {/* onPreview={(file) => {*/} {/* this.setState({*/} {/* previewImage: file.url || file.thumbUrl,*/} {/* previewVisible: true,*/} {/* });*/} {/* }}*/} {/*/>*/} <div style={{ paddingTop: "10px", paddingBottom: "10px" }} > {this.state.visible && this.state.orgCodeUrl ? ( <ImgList domId={"inquiry2"} fileList={this.state.orgCodeUrl} ItemWidth={"96px"} /> ) : ( <div /> )} </div> <Modal maskClosable={false} footer={null} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false }); }} > <img alt="" style={{ width: "100%" }} src={this.state.previewImage || ""} /> </Modal> </FormItem> </div> <hr style={{ border: "1px dashed #aaa", width: "90%", margin: "auto", }} /> <div className="clearfix" style={{ marginTop: "10px" }}> <FormItem className="half-item" {...formItemLayout} label="发票是否邮寄:" > <span>{this.state.post === 0 ? "是" : "否"}</span> </FormItem> </div> {this.state.post === 0 ? ( <div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="收信人姓名" > <span>{this.state.addressee}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="电话" > <span>{this.state.addresseeMobile}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="省-市-区" > <span> {getprovince(this.state.addresseeProvince)}/ {getprovince(this.state.addresseeCity)}/ {getprovince(this.state.addresseeArea)} </span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} label="详细地址" > <span>{this.state.recipientAddress}</span> </FormItem> </div> </div> ) : ( "" )} </div> {/* <FormItem className="half-item" {...formItemLayout} label={ <span> <strong style={{ color: "#f00" }}>*</strong> 开票金额总计 </span> } > <span>{this.state.alreadyAmount}万元</span> </FormItem> */} </Spin> </Form> </Modal> {/* <Modal visible={this.state.bvisible} footer="" title="开票历史记录" className="admin-desc-content" width="1200px" onCancel={this.inRecordCanl} > <Spin spinning={this.state.loading}> <div className="patent-table" ref={e => { this.refs.kaiPiao = e; }} > <Table columns={this.state.columnsDate} dataSource={this.state.recordData} pagination={false} bordered /> <div className="clearfix" style={{ marginTop: "20px" }}> <FormItem className="half-item" {...formItemLayout} label={<span style={{ fontSize: "14px" }}>开票总计</span>} > <span>{this.state.sum + "(万元)"}</span> </FormItem> </div> <ReactToPrint trigger={() => ( <Button type="primary" style={{ float: "right", // marginTop: 10, position: "absolute", top: -54, right: 30 }} > 打印 </Button> )} content={() => this.refs.kaiPiao} /> </div> </Spin> </Modal> */} <Modal maskClosable={false} visible={this.state.cuiVisible} footer="" title="催款详情" className="admin-desc-content" width="1300px" pagination={false} onCancel={() => { // this.loadData(); this.setState({ cuiVisible: false, }); }} > <Spin spinning={this.state.loading}> <div className="patent-table" style={ { // width: 900, // position: "relative", // left: "50%", // transform: "translate(-50%)", // padding: "25px 0 30px 30px" } } ref={(e) => { this.refs.all = e; }} > <Table columns={this.state.cuiColumns} dataSource={this.state.cuiDataList} scroll={{ x: "max-content", y: 0 }} pagination={false} bordered size="small" /> </div> </Spin> <ReactToPrint trigger={() => ( <Button type="primary" style={{ float: "right", marginTop: 10, position: "absolute", top: 0, right: 30, }} > 打印 </Button> )} content={() => this.refs.all} /> </Modal> <Modal maskClosable={false} visible={this.state.proVisible} footer="" title="项目详情" className="admin-desc-content" width="1300px" pagination={false} onCancel={() => { // this.loadData(); this.setState({ proVisible: false, }); }} > <Spin spinning={this.state.loading}> <Project record={this.state.record} visible={this.state.pvisible} cancel={() => { this.setState({ pvisible: false }); }} /> <div className="patent-table" ref={(e) => { this.refs.all = e; }} > <Table columns={this.state.proColumns} dataSource={this.state.proDataList} onRowClick={this.tableRowClickPro} pagination={false} bordered size="small" /> </div> {/* <span style={{ display: "block", marginTop: 10, color: "red" }}> 外包(内部)价格总计(万元):{this.state.totalWaibao} </span> */} </Spin> <ReactToPrint trigger={() => ( <Button type="primary" style={{ float: "right", marginTop: 10, position: "absolute", top: 0, right: 30, }} > 打印 </Button> )} content={() => this.refs.all} /> </Modal> {this.state.visible ? ( <Modal className="customeDetails" footer="" title="订单详情" width="1200px" 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"> <div style={{ position: "absolute", top: "-52px", left: "81px", zIndex: 10000, }} > <OrderItemStatus deleteSign={this.state.deleteSign} /> </div> <FormItem className="half-item" {...formItemLayout} label="订单编号" > <span>{this.state.orderNo}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="合同编号" > <span>{this.state.contractNo}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="客户名称" > <span>{this.state.userName}</span> <EnterpriseNameChange type="journal" style={{ marginLeft: 10 }} enterpriseId={this.state.orderUid} /> </FormItem> <FormItem className="half-item" {...formItemLayout} label="合同签订时间" > <span>{this.state.signDate}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="流程状态" > <span> {getProcessStatus(this.state.processStatus, this.state.examineName, this.state.approval)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="结算状态" > <span> {getLiquidationStatus(this.state.liquidationStatus)} </span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业联系人" > <span>{this.state.contacts}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="联系人电话" > <span>{this.state.contactMobile}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="企业法人" > <span>{this.state.legalPerson}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="法人电话" > <span>{this.state.legalPersonTel}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="签单金额(万元)" > <span>{this.state.totalAmount}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="首付金额(万元)" > <span>{this.state.firstAmount}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="特批立项" > <span>{getApprovedState(this.state.approval)}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="已收款项(万元)" > <span>{this.state.settlementAmount}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="订单部门" > <span>{this.state.depName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="是否外包" > {this.state.outsource} </FormItem> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 16 }} label="订单留言" > <span>{this.state.orderRemarks}</span> </FormItem> </div> <div className="clearfix"> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label={"合同扫描件"} > <div style={{ paddingTop: "10px", paddingBottom: "10px", }} > {this.state.visible && this.state.orgCodeUrl ? ( <ImgList fileList={this.state.orgCodeUrl} ItemWidth={"96px"} /> ) : ( <div /> )} </div> {/*<Upload*/} {/* className="demandDetailShow-upload"*/} {/* listType="picture-card"*/} {/* fileList={this.state.orgCodeUrl}*/} {/* onPreview={(file) => {*/} {/* this.setState({*/} {/* previewImage: file.url || file.thumbUrl,*/} {/* previewVisible: true,*/} {/* });*/} {/* }}*/} {/*/>*/} <Modal maskClosable={false} footer={null} width={"50%"} visible={this.state.previewVisible} onCancel={() => { this.setState({ previewVisible: false, rotateDeg: 0, }); }} > <img alt="" style={{ width: "100%", transform: `rotate(${this.state.rotateDeg}deg)`, }} src={this.state.previewImage || ""} /> <Button onClick={this.rotate} style={{ position: "relative", left: "50%", transform: "translateX(-50%)", }} > 旋转 </Button> <Button onClick={this.upImg} style={{ position: "absolute", left: -81, top: "50%", transform: "translateY(-50%)", }} > 上一张 </Button> <Button onClick={this.downImg} style={{ position: "absolute", right: -81, top: "50%", transform: "translateY(-50%)", }} > 下一张 </Button> </Modal> <Button style={{ float: "right", marginRight: "140px", marginTop: "20px", }} onClick={this.getOrderLog} > 查看订单 日志 </Button> </FormItem> <FormItem labelCol={{ span: 4 }} wrapperCol={{ span: 18 }} label="补充协议" > {/*<Upload*/} {/* className="demandDetailShow-upload"*/} {/* listType="picture-card"*/} {/* fileList={this.state.replenishUrl}*/} {/* onPreview={(file) => {*/} {/* this.setState({*/} {/* previewImage: file.url || file.thumbUrl,*/} {/* previewVisibles: true,*/} {/* });*/} {/* }}*/} {/*/>*/} <div style={{ paddingTop: "10px", paddingBottom: "10px", }} > {this.state.visible && this.state.replenishUrl ? ( <ImgList domId={"inquiry1"} fileList={this.state.replenishUrl} ItemWidth={"96px"} /> ) : ( <div /> )} </div> <Modal maskClosable={false} footer={null} width={"50%"} visible={this.state.previewVisibles} onCancel={() => { this.setState({ previewVisibles: false, rotateDeg: 0, }); }} > <img alt="" style={{ width: "100%", transform: `rotate(${this.state.rotateDeg}deg)`, }} src={this.state.previewImage || ""} /> <Button onClick={this.rotate} style={{ position: "relative", left: "50%", transform: "translateX(-50%)", }} > 旋转 </Button> <Button onClick={this.upImgs} style={{ position: "absolute", left: -81, top: "50%", transform: "translateY(-50%)", }} > 上一张 </Button> <Button onClick={this.downImgs} style={{ position: "absolute", right: -81, top: "50%", transform: "translateY(-50%)", }} > 下一张 </Button> </Modal> </FormItem> </div> <ContentUrl processStatus={2} domId={"orderContents"} contentUrl={this.state.contentUrl} imgId={"orderContentsImg"} /> <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.nowFinance}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} label="当前财务负责人电话" > <span>{this.state.nowFinanceMobile}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" {...formItemLayout} style={{ opacity: ".5" }} label="原订单负责人" > <span>{this.state.oldSalesmanName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} style={{ opacity: ".5" }} label="原订单负责人电话" > <span>{this.state.oldSalesmanMobile}</span> </FormItem> </div> <div className="clearfix"> <FormItem className="half-item" style={{ opacity: ".5" }} {...formItemLayout} label="实际财务操作人" > <span>{this.state.financeName}</span> </FormItem> <FormItem className="half-item" {...formItemLayout} style={{ opacity: ".5" }} label="实际财务操作人电话" > <span>{this.state.financeMobile}</span> </FormItem> </div> {/* 协单人员 */} <OrderCoor orderNo={this.state.orderNos} /> <div> <span style={{ marginLeft: "50px", fontSize: "20px" }}> 项目业务 </span> </div> <div className="patent-table"> <Spin spinning={this.state.loading}> <Table columns={this.state.columnsX} dataSource={this.state.dataSourceX} pagination={false} onRowClick={this.tableRowClickX} bordered size="small" /> </Spin> </div> <div> <span style={{ marginLeft: "50px", fontSize: "20px" }}> 催款节点 </span> <span style={{ display: cuiDataList.length ? "none" : "inline-block", marginLeft: 10, color: "red", }} > 金额总计(万元): {this.state.totalCui} </span> </div> <div className="clearfix"> <Spin spinning={this.state.loading}> <Form layout="horizontal" id="demand-form"> <Table pagination={false} bordered size="small" columns={ cuiDataList.length ? this.state.ContactsLists : this.state.ContactsListsNew } dataSource={ cuiDataList.length ? this.state.contactList : this.state.contactListNew } /> <Col span={24} offset={9} style={{ marginTop: "15px" }} ></Col> </Form> </Spin> </div> </div> </Spin> </Form> </Modal> ) : ( <div /> )} <OrderRiZi dataSourcerizhi={this.state.dataSourcerizhi} closeOrderLog={this.closeOrderLog} visible={this.state.rizhivisible} loading={this.state.loading} /> </div> {/* {this.state.addnextVisible && ( <ProjectDetailsReadOnly infor={this.state.dataInfor} visible={this.state.addnextVisible} onCancel={this.nextCancel} /> )} */} { // 项目业务详情 this.state.addnextVisible && <NewEditProject readOnly={true} visible={this.state.addnextVisible} dataInfor={this.state.dataInfor} onCancel={this.nextCancel} /> } </div> ); }, }) ); export default Order;